the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 381 lines 8.2 kB view raw
1#include "stdafx.h" 2#include "ColourTable.h" 3#include "..\..\..\Minecraft.World\StringHelpers.h" 4 5unordered_map<wstring,eMinecraftColour> ColourTable::s_colourNamesMap; 6 7wchar_t *ColourTable::ColourTableElements[eMinecraftColour_COUNT] = 8{ 9 L"NOTSET", 10 11 L"Foliage_Evergreen", 12 L"Foliage_Birch", 13 L"Foliage_Default", 14 L"Foliage_Common", 15 L"Foliage_Ocean", 16 L"Foliage_Plains", 17 L"Foliage_Desert", 18 L"Foliage_ExtremeHills", 19 L"Foliage_Forest", 20 L"Foliage_Taiga", 21 L"Foliage_Swampland", 22 L"Foliage_River", 23 L"Foliage_Hell", 24 L"Foliage_Sky", 25 L"Foliage_FrozenOcean", 26 L"Foliage_FrozenRiver", 27 L"Foliage_IcePlains", 28 L"Foliage_IceMountains", 29 L"Foliage_MushroomIsland", 30 L"Foliage_MushroomIslandShore", 31 L"Foliage_Beach", 32 L"Foliage_DesertHills", 33 L"Foliage_ForestHills", 34 L"Foliage_TaigaHills", 35 L"Foliage_ExtremeHillsEdge", 36 L"Foliage_Jungle", 37 L"Foliage_JungleHills", 38 39 L"Grass_Common", 40 L"Grass_Ocean", 41 L"Grass_Plains", 42 L"Grass_Desert", 43 L"Grass_ExtremeHills", 44 L"Grass_Forest", 45 L"Grass_Taiga", 46 L"Grass_Swampland", 47 L"Grass_River", 48 L"Grass_Hell", 49 L"Grass_Sky", 50 L"Grass_FrozenOcean", 51 L"Grass_FrozenRiver", 52 L"Grass_IcePlains", 53 L"Grass_IceMountains", 54 L"Grass_MushroomIsland", 55 L"Grass_MushroomIslandShore", 56 L"Grass_Beach", 57 L"Grass_DesertHills", 58 L"Grass_ForestHills", 59 L"Grass_TaigaHills", 60 L"Grass_ExtremeHillsEdge", 61 L"Grass_Jungle", 62 L"Grass_JungleHills", 63 64 L"Water_Ocean", 65 L"Water_Plains", 66 L"Water_Desert", 67 L"Water_ExtremeHills", 68 L"Water_Forest", 69 L"Water_Taiga", 70 L"Water_Swampland", 71 L"Water_River", 72 L"Water_Hell", 73 L"Water_Sky", 74 L"Water_FrozenOcean", 75 L"Water_FrozenRiver", 76 L"Water_IcePlains", 77 L"Water_IceMountains", 78 L"Water_MushroomIsland", 79 L"Water_MushroomIslandShore", 80 L"Water_Beach", 81 L"Water_DesertHills", 82 L"Water_ForestHills", 83 L"Water_TaigaHills", 84 L"Water_ExtremeHillsEdge", 85 L"Water_Jungle", 86 L"Water_JungleHills", 87 88 L"Sky_Ocean", 89 L"Sky_Plains", 90 L"Sky_Desert", 91 L"Sky_ExtremeHills", 92 L"Sky_Forest", 93 L"Sky_Taiga", 94 L"Sky_Swampland", 95 L"Sky_River", 96 L"Sky_Hell", 97 L"Sky_Sky", 98 L"Sky_FrozenOcean", 99 L"Sky_FrozenRiver", 100 L"Sky_IcePlains", 101 L"Sky_IceMountains", 102 L"Sky_MushroomIsland", 103 L"Sky_MushroomIslandShore", 104 L"Sky_Beach", 105 L"Sky_DesertHills", 106 L"Sky_ForestHills", 107 L"Sky_TaigaHills", 108 L"Sky_ExtremeHillsEdge", 109 L"Sky_Jungle", 110 L"Sky_JungleHills", 111 112 L"Tile_RedstoneDust", 113 L"Tile_RedstoneDustUnlit", 114 L"Tile_RedstoneDustLitMin", 115 L"Tile_RedstoneDustLitMax", 116 L"Tile_StemMin", 117 L"Tile_StemMax", 118 L"Tile_WaterLily", 119 120 L"Sky_Dawn_Dark", 121 L"Sky_Dawn_Bright", 122 123 L"Material_None", 124 L"Material_Grass", 125 L"Material_Sand", 126 L"Material_Cloth", 127 L"Material_Fire", 128 L"Material_Ice", 129 L"Material_Metal", 130 L"Material_Plant", 131 L"Material_Snow", 132 L"Material_Clay", 133 L"Material_Dirt", 134 L"Material_Stone", 135 L"Material_Water", 136 L"Material_Wood", 137 L"Material_Emerald", 138 139 L"Particle_Note_00", 140 L"Particle_Note_01", 141 L"Particle_Note_02", 142 L"Particle_Note_03", 143 L"Particle_Note_04", 144 L"Particle_Note_05", 145 L"Particle_Note_06", 146 L"Particle_Note_07", 147 L"Particle_Note_08", 148 L"Particle_Note_09", 149 L"Particle_Note_10", 150 L"Particle_Note_11", 151 L"Particle_Note_12", 152 L"Particle_Note_13", 153 L"Particle_Note_14", 154 L"Particle_Note_15", 155 L"Particle_Note_16", 156 L"Particle_Note_17", 157 L"Particle_Note_18", 158 L"Particle_Note_19", 159 L"Particle_Note_20", 160 L"Particle_Note_21", 161 L"Particle_Note_22", 162 L"Particle_Note_23", 163 L"Particle_Note_24", 164 165 L"Particle_NetherPortal", 166 L"Particle_EnderPortal", 167 L"Particle_Smoke", 168 L"Particle_Ender", 169 170 L"Particle_Explode", 171 L"Particle_HugeExplosion", 172 173 L"Particle_DripWater", 174 L"Particle_DripLavaStart", 175 L"Particle_DripLavaEnd", 176 177 L"Particle_EnchantmentTable", 178 L"Particle_DragonBreathMin", 179 L"Particle_DragonBreathMax", 180 L"Particle_Suspend", 181 182 L"Particle_CritStart", // arrow in air 183 L"Particle_CritEnd", // arrow in air 184 185 L"Effect_MovementSpeed", 186 L"Effect_MovementSlowDown", 187 L"Effect_DigSpeed", 188 L"Effect_DigSlowdown", 189 L"Effect_DamageBoost", 190 L"Effect_Heal", 191 L"Effect_Harm", 192 L"Effect_Jump", 193 L"Effect_Confusion", 194 L"Effect_Regeneration", 195 L"Effect_DamageResistance", 196 L"Effect_FireResistance", 197 L"Effect_WaterBreathing", 198 L"Effect_Invisiblity", 199 L"Effect_Blindness", 200 L"Effect_NightVision", 201 L"Effect_Hunger", 202 L"Effect_Weakness", 203 L"Effect_Poison", 204 L"Effect_Wither", 205 L"Effect_HealthBoost", 206 L"Effect_Absorption", 207 L"Effect_Saturation", 208 209 L"Potion_BaseColour", 210 211 L"Mob_Creeper_Colour1", 212 L"Mob_Creeper_Colour2", 213 L"Mob_Skeleton_Colour1", 214 L"Mob_Skeleton_Colour2", 215 L"Mob_Spider_Colour1", 216 L"Mob_Spider_Colour2", 217 L"Mob_Zombie_Colour1", 218 L"Mob_Zombie_Colour2", 219 L"Mob_Slime_Colour1", 220 L"Mob_Slime_Colour2", 221 L"Mob_Ghast_Colour1", 222 L"Mob_Ghast_Colour2", 223 L"Mob_PigZombie_Colour1", 224 L"Mob_PigZombie_Colour2", 225 L"Mob_Enderman_Colour1", 226 L"Mob_Enderman_Colour2", 227 L"Mob_CaveSpider_Colour1", 228 L"Mob_CaveSpider_Colour2", 229 L"Mob_Silverfish_Colour1", 230 L"Mob_Silverfish_Colour2", 231 L"Mob_Blaze_Colour1", 232 L"Mob_Blaze_Colour2", 233 L"Mob_LavaSlime_Colour1", 234 L"Mob_LavaSlime_Colour2", 235 L"Mob_Pig_Colour1", 236 L"Mob_Pig_Colour2", 237 L"Mob_Sheep_Colour1", 238 L"Mob_Sheep_Colour2", 239 L"Mob_Cow_Colour1", 240 L"Mob_Cow_Colour2", 241 L"Mob_Chicken_Colour1", 242 L"Mob_Chicken_Colour2", 243 L"Mob_Squid_Colour1", 244 L"Mob_Squid_Colour2", 245 L"Mob_Wolf_Colour1", 246 L"Mob_Wolf_Colour2", 247 L"Mob_MushroomCow_Colour1", 248 L"Mob_MushroomCow_Colour2", 249 L"Mob_Ocelot_Colour1", 250 L"Mob_Ocelot_Colour2", 251 L"Mob_Villager_Colour1", 252 L"Mob_Villager_Colour2", 253 L"Mob_Bat_Colour1", 254 L"Mob_Bat_Colour2", 255 L"Mob_Witch_Colour1", 256 L"Mob_Witch_Colour2", 257 L"Mob_Horse_Colour1", 258 L"Mob_Horse_Colour2", 259 260 L"Armour_Default_Leather_Colour", 261 L"Under_Water_Clear_Colour", 262 L"Under_Lava_Clear_Colour", 263 L"In_Cloud_Base_Colour", 264 265 L"Under_Water_Fog_Colour", 266 L"Under_Lava_Fog_Colour", 267 L"In_Cloud_Fog_Colour", 268 269 L"Default_Fog_Colour", 270 L"Nether_Fog_Colour", 271 L"End_Fog_Colour", 272 273 L"Sign_Text", 274 L"Map_Text", 275 276 L"Leash_Light_Colour", 277 L"Leash_Dark_Colour", 278 279 L"Fire_Overlay", 280 281 L"HTMLColor_0", 282 L"HTMLColor_1", 283 L"HTMLColor_2", 284 L"HTMLColor_3", 285 L"HTMLColor_4", 286 L"HTMLColor_5", 287 L"HTMLColor_6", 288 L"HTMLColor_7", 289 L"HTMLColor_8", 290 L"HTMLColor_9", 291 L"HTMLColor_a", 292 L"HTMLColor_b", 293 L"HTMLColor_c", 294 L"HTMLColor_d", 295 L"HTMLColor_e", 296 L"HTMLColor_f", 297 L"HTMLColor_dark_0", 298 L"HTMLColor_dark_1", 299 L"HTMLColor_dark_2", 300 L"HTMLColor_dark_3", 301 L"HTMLColor_dark_4", 302 L"HTMLColor_dark_5", 303 L"HTMLColor_dark_6", 304 L"HTMLColor_dark_7", 305 L"HTMLColor_dark_8", 306 L"HTMLColor_dark_9", 307 L"HTMLColor_dark_a", 308 L"HTMLColor_dark_b", 309 L"HTMLColor_dark_c", 310 L"HTMLColor_dark_d", 311 L"HTMLColor_dark_e", 312 L"HTMLColor_dark_f", 313 L"HTMLColor_T1", 314 L"HTMLColor_T2", 315 L"HTMLColor_T3", 316 L"HTMLColor_Black", 317 L"HTMLColor_White", 318 L"Color_EnchantText", 319 L"Color_EnchantTextFocus", 320 L"Color_EnchantTextDisabled", 321 L"Color_RenamedItemTitle", 322}; 323 324void ColourTable::staticCtor() 325{ 326 for(unsigned int i = eMinecraftColour_NOT_SET; i < eMinecraftColour_COUNT; ++i) 327 { 328 s_colourNamesMap.insert( unordered_map<wstring,eMinecraftColour>::value_type( ColourTableElements[i], (eMinecraftColour)i) ); 329 } 330} 331 332ColourTable::ColourTable(PBYTE pbData, DWORD dwLength) 333{ 334 loadColoursFromData(pbData, dwLength); 335} 336 337ColourTable::ColourTable(ColourTable *defaultColours, PBYTE pbData, DWORD dwLength) 338{ 339 // 4J Stu - Default the colours that of the table passed in 340 XMemCpy( (void *)m_colourValues, (void *)defaultColours->m_colourValues, sizeof(int) * eMinecraftColour_COUNT); 341 loadColoursFromData(pbData, dwLength); 342} 343void ColourTable::loadColoursFromData(PBYTE pbData, DWORD dwLength) 344{ 345 byteArray src(pbData, dwLength); 346 347 ByteArrayInputStream bais(src); 348 DataInputStream dis(&bais); 349 350 int versionNumber = dis.readInt(); 351 int coloursCount = dis.readInt(); 352 353 for(int i = 0; i < coloursCount; ++i) 354 { 355 wstring colourId = dis.readUTF(); 356 int colourValue = dis.readInt(); 357 setColour(colourId, colourValue); 358 AUTO_VAR(it,s_colourNamesMap.find(colourId)); 359 } 360 361 bais.reset(); 362} 363 364void ColourTable::setColour(const wstring &colourName, int value) 365{ 366 AUTO_VAR(it,s_colourNamesMap.find(colourName)); 367 if(it != s_colourNamesMap.end()) 368 { 369 m_colourValues[(int)it->second] = value; 370 } 371} 372 373void ColourTable::setColour(const wstring &colourName, const wstring &value) 374{ 375 setColour(colourName, _fromHEXString<int>(value)); 376} 377 378unsigned int ColourTable::getColour(eMinecraftColour id) 379{ 380 return m_colourValues[(int)id]; 381}