Fix switch warnings (#4013)
* Fix switch warnings * Fix a variety of -Wswitch and -Wswitch-enum warnings * Remove unneeded -Wno-error flags * Reorganise some eMonsterType switches * Alpha sort eMonsterType cases in WriteMobMetadata and in cNBTChunkSerializer::AddMonsterEntity * List all mob types in protocol 1.12 and NBTChunkSerializer * cStructGenTrees::GetNumTrees: remove switch default * cWSSAnvil::LoadOldMinecartFromNBT: Log unhandled minecart type
This commit is contained in:
parent
e24186bb13
commit
307e7aaff5
src
@ -169,7 +169,6 @@ set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPER
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(Bindings.cpp PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} "-Wno-old-style-cast -Wno-missing-prototypes")
|
||||
set_source_files_properties(LuaWindow.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
|
@ -64,8 +64,11 @@ bool cBlockEntity::IsBlockEntityBlockType(BLOCKTYPE a_BlockType)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -95,12 +98,15 @@ cBlockEntity * cBlockEntity::CreateByBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE
|
||||
case E_BLOCK_SIGN_POST: return new cSignEntity (a_BlockType, a_BlockMeta, a_BlockX, a_BlockY, a_BlockZ, a_World);
|
||||
case E_BLOCK_TRAPPED_CHEST: return new cChestEntity (a_BlockType, a_BlockMeta, a_BlockX, a_BlockY, a_BlockZ, a_World);
|
||||
case E_BLOCK_WALLSIGN: return new cSignEntity (a_BlockType, a_BlockMeta, a_BlockX, a_BlockY, a_BlockZ, a_World);
|
||||
default:
|
||||
{
|
||||
LOGD("%s: Requesting creation of an unknown block entity - block type %d (%s)",
|
||||
__FUNCTION__, a_BlockType, ItemTypeToString(a_BlockType).c_str()
|
||||
);
|
||||
ASSERT(!"Requesting creation of an unknown block entity");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
LOGD("%s: Requesting creation of an unknown block entity - block type %d (%s)",
|
||||
__FUNCTION__, a_BlockType, ItemTypeToString(a_BlockType).c_str()
|
||||
);
|
||||
ASSERT(!"Requesting creation of an unknown block entity");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,10 +46,6 @@ SET (HDRS
|
||||
SignEntity.h
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(BeaconEntity.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(BlockEntities ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -1,4 +1,4 @@
|
||||
project (Cuberite)
|
||||
project (Cuberite)
|
||||
|
||||
|
||||
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/")
|
||||
@ -165,13 +165,9 @@ include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/TCLAP/include")
|
||||
configure_file("BuildInfo.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo.h")
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(BiomeDef.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
set_source_files_properties(BlockID.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(BoundingBox.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(ByteBuffer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(ClientHandle.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors ")
|
||||
set_source_files_properties(CompositeChat.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(MobSpawner.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
set_source_files_properties(Statistics.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
endif()
|
||||
|
||||
|
@ -60,10 +60,6 @@ SET (HDRS
|
||||
ThrownSnowballEntity.h
|
||||
WitherSkullEntity.h)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(Entity.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(Entities ${SRCS} ${HDRS})
|
||||
target_link_libraries(Entities WorldStorage)
|
||||
|
@ -71,14 +71,7 @@ SET (HDRS
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(BioGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
set_source_files_properties(CompoGenBiomal.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors ")
|
||||
set_source_files_properties(ComposableGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
set_source_files_properties(FinishGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch")
|
||||
set_source_files_properties(PieceGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(Prefab.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(StructGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch")
|
||||
set_source_files_properties(VillageGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=switch-enum")
|
||||
set_source_files_properties(CompoGenBiomal.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
|
@ -586,9 +586,11 @@ bool cFinishGenVines::IsJungleVariant(EMCSBiome a_Biome)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -198,65 +198,88 @@ int cStructGenTrees::GetNumTrees(
|
||||
const cChunkDef::BiomeMap & a_Biomes
|
||||
)
|
||||
{
|
||||
int NumTrees = 0;
|
||||
for (int x = 0; x < cChunkDef::Width; x++) for (int z = 0; z < cChunkDef::Width; z++)
|
||||
auto BiomeTrees = [](EMCSBiome a_Biome)
|
||||
{
|
||||
int Add = 0;
|
||||
switch (cChunkDef::GetBiome(a_Biomes, x, z))
|
||||
switch (a_Biome)
|
||||
{
|
||||
case biOcean: Add = 2; break;
|
||||
case biDesert: Add = 0; break;
|
||||
case biPlains: Add = 1; break;
|
||||
case biExtremeHills: Add = 3; break;
|
||||
case biForest: Add = 30; break;
|
||||
case biTaiga: Add = 30; break;
|
||||
case biSwampland: Add = 8; break;
|
||||
case biIcePlains: Add = 1; break;
|
||||
case biIceMountains: Add = 1; break;
|
||||
case biMushroomIsland: Add = 3; break;
|
||||
case biMushroomShore: Add = 3; break;
|
||||
case biForestHills: Add = 20; break;
|
||||
case biTaigaHills: Add = 20; break;
|
||||
case biExtremeHillsEdge: Add = 5; break;
|
||||
case biJungle: Add = 120; break;
|
||||
case biJungleHills: Add = 90; break;
|
||||
case biJungleEdge: Add = 90; break;
|
||||
case biBirchForest: Add = 30; break;
|
||||
case biBirchForestHills: Add = 20; break;
|
||||
case biRoofedForest: Add = 50; break;
|
||||
case biColdTaiga: Add = 20; break;
|
||||
case biColdTaigaHills: Add = 15; break;
|
||||
case biMegaTaiga: Add = 30; break;
|
||||
case biMegaTaigaHills: Add = 25; break;
|
||||
case biExtremeHillsPlus: Add = 3; break;
|
||||
case biSavanna: Add = 8; break;
|
||||
case biSavannaPlateau: Add = 12; break;
|
||||
case biMesa: Add = 2; break;
|
||||
case biMesaPlateauF: Add = 8; break;
|
||||
case biMesaPlateau: Add = 8; break;
|
||||
case biSunflowerPlains: Add = 1; break;
|
||||
case biDesertM: Add = 0; break;
|
||||
case biExtremeHillsM: Add = 4; break;
|
||||
case biFlowerForest: Add = 30; break;
|
||||
case biTaigaM: Add = 30; break;
|
||||
case biSwamplandM: Add = 8; break;
|
||||
case biIcePlainsSpikes: Add = 1; break;
|
||||
case biJungleM: Add = 120; break;
|
||||
case biJungleEdgeM: Add = 90; break;
|
||||
case biBirchForestM: Add = 30; break;
|
||||
case biBirchForestHillsM: Add = 20; break;
|
||||
case biRoofedForestM: Add = 40; break;
|
||||
case biColdTaigaM: Add = 30; break;
|
||||
case biMegaSpruceTaiga: Add = 30; break;
|
||||
case biMegaSpruceTaigaHills: Add = 30; break;
|
||||
case biExtremeHillsPlusM: Add = 4; break;
|
||||
case biSavannaM: Add = 8; break;
|
||||
case biSavannaPlateauM: Add = 12; break;
|
||||
case biMesaBryce: Add = 4; break;
|
||||
case biMesaPlateauFM: Add = 12; break;
|
||||
case biMesaPlateauM: Add = 12; break;
|
||||
case biOcean: return 2;
|
||||
case biPlains: return 1;
|
||||
case biDesert: return 0;
|
||||
case biExtremeHills: return 3;
|
||||
case biForest: return 30;
|
||||
case biTaiga: return 30;
|
||||
case biSwampland: return 8;
|
||||
case biRiver: return 0;
|
||||
case biNether: return 0;
|
||||
case biEnd: return 0;
|
||||
case biFrozenOcean: return 0;
|
||||
case biFrozenRiver: return 0;
|
||||
case biIcePlains: return 1;
|
||||
case biIceMountains: return 1;
|
||||
case biMushroomIsland: return 3;
|
||||
case biMushroomShore: return 3;
|
||||
case biBeach: return 0;
|
||||
case biDesertHills: return 0;
|
||||
case biForestHills: return 20;
|
||||
case biTaigaHills: return 20;
|
||||
case biExtremeHillsEdge: return 5;
|
||||
case biJungle: return 120;
|
||||
case biJungleHills: return 90;
|
||||
case biJungleEdge: return 90;
|
||||
case biDeepOcean: return 0;
|
||||
case biStoneBeach: return 0;
|
||||
case biColdBeach: return 0;
|
||||
case biBirchForest: return 30;
|
||||
case biBirchForestHills: return 20;
|
||||
case biRoofedForest: return 50;
|
||||
case biColdTaiga: return 20;
|
||||
case biColdTaigaHills: return 15;
|
||||
case biMegaTaiga: return 30;
|
||||
case biMegaTaigaHills: return 25;
|
||||
case biExtremeHillsPlus: return 3;
|
||||
case biSavanna: return 8;
|
||||
case biSavannaPlateau: return 12;
|
||||
case biMesa: return 2;
|
||||
case biMesaPlateauF: return 8;
|
||||
case biMesaPlateau: return 8;
|
||||
// Biome variants
|
||||
case biSunflowerPlains: return 1;
|
||||
case biDesertM: return 0;
|
||||
case biExtremeHillsM: return 4;
|
||||
case biFlowerForest: return 30;
|
||||
case biTaigaM: return 30;
|
||||
case biSwamplandM: return 8;
|
||||
case biIcePlainsSpikes: return 1;
|
||||
case biJungleM: return 120;
|
||||
case biJungleEdgeM: return 90;
|
||||
case biBirchForestM: return 30;
|
||||
case biBirchForestHillsM: return 20;
|
||||
case biRoofedForestM: return 40;
|
||||
case biColdTaigaM: return 30;
|
||||
case biMegaSpruceTaiga: return 30;
|
||||
case biMegaSpruceTaigaHills: return 30;
|
||||
case biExtremeHillsPlusM: return 4;
|
||||
case biSavannaM: return 8;
|
||||
case biSavannaPlateauM: return 12;
|
||||
case biMesaBryce: return 4;
|
||||
case biMesaPlateauFM: return 12;
|
||||
case biMesaPlateauM: return 12;
|
||||
// Non-biomes
|
||||
case biInvalidBiome:
|
||||
case biNumBiomes:
|
||||
case biVariant:
|
||||
case biNumVariantBiomes:
|
||||
{
|
||||
ASSERT(!"Invalid biome in cStructGenTrees::GetNumTrees");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
NumTrees += Add;
|
||||
};
|
||||
|
||||
int NumTrees = 0;
|
||||
for (auto Biome : a_Biomes)
|
||||
{
|
||||
NumTrees += BiomeTrees(Biome);
|
||||
}
|
||||
return NumTrees / 1024;
|
||||
}
|
||||
|
@ -32,11 +32,6 @@ SET (HDRS
|
||||
UrlParser.h
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(HTTPServer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors ")
|
||||
set_source_files_properties(HTTPServerConnection.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(HTTPServer ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -58,10 +58,6 @@ SET (HDRS
|
||||
ItemAxe.h
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(ItemHandler.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(Items ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -659,9 +659,9 @@ char cItemHandler::GetMaxStackSize(void)
|
||||
case E_ITEM_SUGAR_CANE: return 64;
|
||||
case E_ITEM_TIPPED_ARROW: return 64;
|
||||
case E_ITEM_WHEAT: return 64;
|
||||
// By default items don't stack:
|
||||
default: return 1;
|
||||
}
|
||||
// By default items don't stack:
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -81,10 +81,6 @@ SET (HDRS
|
||||
Zombie.h
|
||||
ZombiePigman.h)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(Monster.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch -Wno-error=switch-enum")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(Mobs ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -1034,10 +1034,12 @@ cMonster::eFamily cMonster::FamilyFromType(eMonsterType a_Type)
|
||||
case mtZombie: return mfHostile;
|
||||
case mtZombiePigman: return mfHostile;
|
||||
|
||||
case mtInvalidType: break;
|
||||
default:
|
||||
{
|
||||
ASSERT(!"Unhandled mob type");
|
||||
return mfUnhandled;
|
||||
}
|
||||
}
|
||||
ASSERT(!"Unhandled mob type");
|
||||
return mfUnhandled;
|
||||
}
|
||||
|
||||
|
||||
@ -1053,10 +1055,12 @@ int cMonster::GetSpawnDelay(cMonster::eFamily a_MobFamily)
|
||||
case mfAmbient: return 40;
|
||||
case mfWater: return 400;
|
||||
case mfNoSpawn: return -1;
|
||||
case mfUnhandled: break;
|
||||
default:
|
||||
{
|
||||
ASSERT(!"Unhandled mob family");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
ASSERT(!"Unhandled mob family");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,14 +32,6 @@ SET (HDRS
|
||||
ProtocolRecognizer.h
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(Protocol_1_9.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch")
|
||||
set_source_files_properties(Protocol_1_8.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch")
|
||||
set_source_files_properties(Protocol_1_10.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch")
|
||||
set_source_files_properties(Protocol_1_11.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch")
|
||||
set_source_files_properties(Protocol_1_12.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch")
|
||||
endif()
|
||||
|
||||
if (NOT MSVC)
|
||||
add_library(Protocol ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -707,6 +707,26 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtBat
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtCreeper:
|
||||
{
|
||||
auto & Creeper = reinterpret_cast<const cCreeper &>(a_Mob);
|
||||
@ -821,26 +841,6 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtOcelot
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtPig:
|
||||
{
|
||||
auto & Pig = reinterpret_cast<const cPig &>(a_Mob);
|
||||
@ -856,6 +856,19 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtPig
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSheep:
|
||||
{
|
||||
auto & Sheep = reinterpret_cast<const cSheep &>(a_Mob);
|
||||
@ -876,19 +889,6 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtSheep
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSkeleton:
|
||||
{
|
||||
auto & Skeleton = reinterpret_cast<const cSkeleton &>(a_Mob);
|
||||
@ -1003,5 +1003,7 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
a_Pkt.WriteBool(ZombiePigman.IsBaby());
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
@ -841,6 +841,26 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtBat
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtCreeper:
|
||||
{
|
||||
auto & Creeper = reinterpret_cast<const cCreeper &>(a_Mob);
|
||||
@ -978,26 +998,6 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtOcelot
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtPig:
|
||||
{
|
||||
auto & Pig = reinterpret_cast<const cPig &>(a_Mob);
|
||||
@ -1014,6 +1014,19 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtPig
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSheep:
|
||||
{
|
||||
auto & Sheep = reinterpret_cast<const cSheep &>(a_Mob);
|
||||
@ -1034,19 +1047,6 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtSheep
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSkeleton:
|
||||
{
|
||||
// XXX Skeletons are separate entities; all skeletons are currently treated as regular ones
|
||||
@ -1165,6 +1165,8 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
a_Pkt.WriteBool(ZombiePigman.IsBaby());
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
|
@ -654,6 +654,26 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
break;
|
||||
} // case mtBat
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtCreeper:
|
||||
{
|
||||
auto & Creeper = reinterpret_cast<const cCreeper &>(a_Mob);
|
||||
@ -791,26 +811,6 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
break;
|
||||
} // case mtOcelot
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtPig:
|
||||
{
|
||||
auto & Pig = reinterpret_cast<const cPig &>(a_Mob);
|
||||
@ -827,6 +827,19 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
break;
|
||||
} // case mtPig
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSheep:
|
||||
{
|
||||
auto & Sheep = reinterpret_cast<const cSheep &>(a_Mob);
|
||||
@ -847,19 +860,6 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
break;
|
||||
} // case mtSheep
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(RABBIT_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSkeleton:
|
||||
{
|
||||
// XXX Skeletons are separate entities; all skeletons are currently treated as regular ones
|
||||
@ -978,6 +978,38 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
a_Pkt.WriteBool(ZombiePigman.IsBaby());
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtBlaze:
|
||||
case mtEnderDragon:
|
||||
case mtGuardian:
|
||||
case mtIronGolem:
|
||||
case mtSnowGolem:
|
||||
case mtSpider:
|
||||
{
|
||||
// TODO: Mobs with extra fields that aren't implemented
|
||||
break;
|
||||
}
|
||||
|
||||
case mtMooshroom:
|
||||
case mtCaveSpider:
|
||||
{
|
||||
// Not mentioned on http://wiki.vg/Entities
|
||||
break;
|
||||
}
|
||||
|
||||
case mtGiant:
|
||||
case mtSilverfish:
|
||||
case mtSquid:
|
||||
{
|
||||
// Mobs with no extra fields
|
||||
break;
|
||||
}
|
||||
|
||||
case mtInvalidType:
|
||||
{
|
||||
ASSERT(!"cProtocol_1_12::WriteMobMetadata: Recieved mob of invalid type");
|
||||
break;
|
||||
}
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
|
@ -3414,6 +3414,22 @@ void cProtocol_1_8_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtBat
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(Chicken.IsBaby() ? -1 : (Chicken.IsInLoveCooldown() ? 1 : 0));
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(Cow.IsBaby() ? -1 : (Cow.IsInLoveCooldown() ? 1 : 0));
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtCreeper:
|
||||
{
|
||||
auto & Creeper = reinterpret_cast<const cCreeper &>(a_Mob);
|
||||
@ -3504,22 +3520,6 @@ void cProtocol_1_8_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtOcelot
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(Cow.IsBaby() ? -1 : (Cow.IsInLoveCooldown() ? 1 : 0));
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(Chicken.IsBaby() ? -1 : (Chicken.IsInLoveCooldown() ? 1 : 0));
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtPig:
|
||||
{
|
||||
auto & Pig = reinterpret_cast<const cPig &>(a_Mob);
|
||||
@ -3650,6 +3650,8 @@ void cProtocol_1_8_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
a_Pkt.WriteBEInt8(ZombiePigman.IsBaby() ? 1 : -1);
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
|
@ -3434,6 +3434,7 @@ void cProtocol_1_9_0::WriteItem(cPacketizer & a_Pkt, const cItem & a_Item)
|
||||
case cEntityEffect::effInstantDamage: PotionID = "harming"; break;
|
||||
case cEntityEffect::effWaterBreathing: PotionID = "water_breathing"; break;
|
||||
case cEntityEffect::effInvisibility: PotionID = "invisibility"; break;
|
||||
default: ASSERT(!"Unknown potion effect"); break;
|
||||
}
|
||||
if (cEntityEffect::GetPotionEffectIntensity(a_Item.m_ItemDamage) == 1)
|
||||
{
|
||||
@ -3835,6 +3836,26 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtBat
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtCreeper:
|
||||
{
|
||||
auto & Creeper = reinterpret_cast<const cCreeper &>(a_Mob);
|
||||
@ -3949,26 +3970,6 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtOcelot
|
||||
|
||||
case mtCow:
|
||||
{
|
||||
auto & Cow = reinterpret_cast<const cCow &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Cow.IsBaby());
|
||||
break;
|
||||
} // case mtCow
|
||||
|
||||
case mtChicken:
|
||||
{
|
||||
auto & Chicken = reinterpret_cast<const cChicken &>(a_Mob);
|
||||
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Chicken.IsBaby());
|
||||
break;
|
||||
} // case mtChicken
|
||||
|
||||
case mtPig:
|
||||
{
|
||||
auto & Pig = reinterpret_cast<const cPig &>(a_Mob);
|
||||
@ -3984,6 +3985,19 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtPig
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(12); // Index 12: Type
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSheep:
|
||||
{
|
||||
auto & Sheep = reinterpret_cast<const cSheep &>(a_Mob);
|
||||
@ -4004,19 +4018,6 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtSheep
|
||||
|
||||
case mtRabbit:
|
||||
{
|
||||
auto & Rabbit = reinterpret_cast<const cRabbit &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Rabbit.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(12); // Index 12: Type
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(Rabbit.GetRabbitType()));
|
||||
break;
|
||||
} // case mtRabbit
|
||||
|
||||
case mtSkeleton:
|
||||
{
|
||||
auto & Skeleton = reinterpret_cast<const cSkeleton &>(a_Mob);
|
||||
@ -4131,6 +4132,8 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
a_Pkt.WriteBool(ZombiePigman.IsBaby());
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
|
@ -34,11 +34,6 @@ SET (HDRS
|
||||
MinecartWithChestWindow.h
|
||||
WindowOwner.h)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(SlotArea.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum ")
|
||||
set_source_files_properties(Window.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum ")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(UI ${SRCS} ${HDRS})
|
||||
endif()
|
||||
|
@ -1235,8 +1235,11 @@ bool cSlotAreaBeacon::IsPlaceableItem(short a_ItemType)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -2406,8 +2409,8 @@ bool cSlotAreaArmor::CanPlaceArmorInSlot(int a_SlotNum, const cItem & a_Item)
|
||||
case 1: return ItemCategory::IsChestPlate(a_Item.m_ItemType);
|
||||
case 2: return ItemCategory::IsLeggings(a_Item.m_ItemType);
|
||||
case 3: return ItemCategory::IsBoots(a_Item.m_ItemType);
|
||||
default: return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,13 +28,6 @@ SET (HDRS
|
||||
WorldStorage.h
|
||||
)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set_source_files_properties(FireworksSerializer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum ")
|
||||
set_source_files_properties(NBTChunkSerializer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum ")
|
||||
set_source_files_properties(SchematicFileSerializer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
||||
set_source_files_properties(WSSAnvil.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch -Wno-error=switch-enum ")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_library(WorldStorage ${SRCS} ${HDRS})
|
||||
|
||||
|
@ -643,6 +643,35 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
|
||||
m_Writer.AddInt("Size", reinterpret_cast<const cMagmaCube *>(a_Monster)->GetSize());
|
||||
break;
|
||||
}
|
||||
case mtOcelot:
|
||||
{
|
||||
const auto *Ocelot = reinterpret_cast<const cOcelot *>(a_Monster);
|
||||
if (!Ocelot->GetOwnerName().empty())
|
||||
{
|
||||
m_Writer.AddString("Owner", Ocelot->GetOwnerName());
|
||||
}
|
||||
if (!Ocelot->GetOwnerUUID().IsNil())
|
||||
{
|
||||
m_Writer.AddString("OwnerUUID", Ocelot->GetOwnerUUID().ToShortString());
|
||||
}
|
||||
m_Writer.AddByte("Sitting", Ocelot->IsSitting() ? 1 : 0);
|
||||
m_Writer.AddInt("CatType", Ocelot->GetOcelotType());
|
||||
m_Writer.AddInt("Age", Ocelot->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtPig:
|
||||
{
|
||||
m_Writer.AddInt("Age", reinterpret_cast<const cPig *>(a_Monster)->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtRabbit:
|
||||
{
|
||||
const cRabbit * Rabbit = reinterpret_cast<const cRabbit *>(a_Monster);
|
||||
m_Writer.AddInt("RabbitType", static_cast<Int32>(Rabbit->GetRabbitType()));
|
||||
m_Writer.AddInt("MoreCarrotTicks", Rabbit->GetMoreCarrotTicks());
|
||||
m_Writer.AddInt("Age", Rabbit->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtSheep:
|
||||
{
|
||||
const cSheep *Sheep = reinterpret_cast<const cSheep *>(a_Monster);
|
||||
@ -703,36 +732,6 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
|
||||
m_Writer.AddInt("Age", reinterpret_cast<const cZombiePigman *>(a_Monster)->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtOcelot:
|
||||
{
|
||||
const auto *Ocelot = reinterpret_cast<const cOcelot *>(a_Monster);
|
||||
if (!Ocelot->GetOwnerName().empty())
|
||||
{
|
||||
m_Writer.AddString("Owner", Ocelot->GetOwnerName());
|
||||
}
|
||||
if (!Ocelot->GetOwnerUUID().IsNil())
|
||||
{
|
||||
m_Writer.AddString("OwnerUUID", Ocelot->GetOwnerUUID().ToShortString());
|
||||
}
|
||||
m_Writer.AddByte("Sitting", Ocelot->IsSitting() ? 1 : 0);
|
||||
m_Writer.AddInt ("CatType", Ocelot->GetOcelotType());
|
||||
m_Writer.AddInt ("Age", Ocelot->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtPig:
|
||||
{
|
||||
m_Writer.AddInt("Age", reinterpret_cast<const cPig *>(a_Monster)->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtRabbit:
|
||||
{
|
||||
const cRabbit * Rabbit = reinterpret_cast<const cRabbit *>(a_Monster);
|
||||
m_Writer.AddInt("RabbitType", static_cast<Int32>(Rabbit->GetRabbitType()));
|
||||
m_Writer.AddInt("MoreCarrotTicks", Rabbit->GetMoreCarrotTicks());
|
||||
m_Writer.AddInt("Age", Rabbit->GetAge());
|
||||
break;
|
||||
}
|
||||
case mtInvalidType:
|
||||
case mtBlaze:
|
||||
case mtCaveSpider:
|
||||
case mtChicken:
|
||||
@ -752,6 +751,11 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
|
||||
// Other mobs have no special tags.
|
||||
break;
|
||||
}
|
||||
case mtInvalidType:
|
||||
{
|
||||
ASSERT(!"cNBTChunkSerializer::AddMonsterEntity: Recieved mob of invalid type");
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_Writer.EndCompound();
|
||||
}
|
||||
|
@ -716,22 +716,25 @@ cBlockEntity * cWSSAnvil::LoadBlockEntityFromNBT(const cParsedNBT & a_NBT, int a
|
||||
|
||||
// Blocktypes that have block entities but don't load their contents from disk:
|
||||
case E_BLOCK_ENDER_CHEST: return nullptr;
|
||||
}
|
||||
|
||||
// All the other blocktypes should have no entities assigned to them. Report an error:
|
||||
// Get the "id" tag:
|
||||
int TagID = a_NBT.FindChildByName(a_Tag, "id");
|
||||
AString TypeName("<unknown>");
|
||||
if (TagID >= 0)
|
||||
{
|
||||
TypeName.assign(a_NBT.GetData(TagID), static_cast<size_t>(a_NBT.GetDataLength(TagID)));
|
||||
default:
|
||||
{
|
||||
// All the other blocktypes should have no entities assigned to them. Report an error:
|
||||
// Get the "id" tag:
|
||||
int TagID = a_NBT.FindChildByName(a_Tag, "id");
|
||||
AString TypeName("<unknown>");
|
||||
if (TagID >= 0)
|
||||
{
|
||||
TypeName.assign(a_NBT.GetData(TagID), static_cast<size_t>(a_NBT.GetDataLength(TagID)));
|
||||
}
|
||||
LOGINFO("WorldLoader(%s): Block entity mismatch: block type %s (%d), type \"%s\", at {%d, %d, %d}; the entity will be lost.",
|
||||
m_World->GetName().c_str(),
|
||||
ItemTypeToString(a_BlockType).c_str(), a_BlockType, TypeName.c_str(),
|
||||
a_BlockX, a_BlockY, a_BlockZ
|
||||
);
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
LOGINFO("WorldLoader(%s): Block entity mismatch: block type %s (%d), type \"%s\", at {%d, %d, %d}; the entity will be lost.",
|
||||
m_World->GetName().c_str(),
|
||||
ItemTypeToString(a_BlockType).c_str(), a_BlockType, TypeName.c_str(),
|
||||
a_BlockX, a_BlockY, a_BlockZ
|
||||
);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@ -1645,13 +1648,15 @@ void cWSSAnvil::LoadOldMinecartFromNBT(cEntityList & a_Entities, const cParsedNB
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (a_NBT.GetInt(TypeTag))
|
||||
int MinecartType = a_NBT.GetInt(TypeTag);
|
||||
switch (MinecartType)
|
||||
{
|
||||
case 0: LoadMinecartRFromNBT(a_Entities, a_NBT, a_TagIdx); break; // Rideable minecart
|
||||
case 1: LoadMinecartCFromNBT(a_Entities, a_NBT, a_TagIdx); break; // Minecart with chest
|
||||
case 2: LoadMinecartFFromNBT(a_Entities, a_NBT, a_TagIdx); break; // Minecart with furnace
|
||||
case 3: LoadMinecartTFromNBT(a_Entities, a_NBT, a_TagIdx); break; // Minecart with TNT
|
||||
case 4: LoadMinecartHFromNBT(a_Entities, a_NBT, a_TagIdx); break; // Minecart with Hopper
|
||||
default: LOGWARNING("cWSSAnvil::LoadOldMinecartFromNBT: Unhandled minecart type (%d)", MinecartType); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user