From 307e7aaff5c454b703db4d536c40d5715d96032b Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Thu, 14 Sep 2017 09:48:57 +0100 Subject: 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 --- src/Protocol/Protocol_1_12.cpp | 98 ++++++++++++++++++++++++++++-------------- 1 file changed, 65 insertions(+), 33 deletions(-) (limited to 'src/Protocol/Protocol_1_12.cpp') diff --git a/src/Protocol/Protocol_1_12.cpp b/src/Protocol/Protocol_1_12.cpp index 166078aef..627131576 100644 --- a/src/Protocol/Protocol_1_12.cpp +++ b/src/Protocol/Protocol_1_12.cpp @@ -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(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(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(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(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(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(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(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(Rabbit.GetRabbitType())); + break; + } // case mtRabbit + case mtSheep: { auto & Sheep = reinterpret_cast(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(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(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()) } -- cgit v1.2.3