diff options
author | LDA <lda@ldasuku.net> | 2023-06-26 11:48:27 -0700 |
---|---|---|
committer | LDA <lda@ldasuku.net> | 2023-06-26 11:58:35 -0700 |
commit | c9e889723b7af832322d178975e6e440d6cd3ae5 (patch) | |
tree | a8429c30ecf46ed1388df13b614141e73973cd9f /source/game/StarNetPackets.cpp | |
parent | 4585c9cafa87cad6b54397af7e9375cc31b72f89 (diff) |
resolved most of the compiler warnings/errors under gcc
also update xxhash and tinyformat
Diffstat (limited to 'source/game/StarNetPackets.cpp')
-rw-r--r-- | source/game/StarNetPackets.cpp | 151 |
1 files changed, 73 insertions, 78 deletions
diff --git a/source/game/StarNetPackets.cpp b/source/game/StarNetPackets.cpp index 327dc4a..e6c856b 100644 --- a/source/game/StarNetPackets.cpp +++ b/source/game/StarNetPackets.cpp @@ -77,87 +77,82 @@ EnumMap<PacketType> const PacketTypeNames{ {PacketType::SystemObjectSpawn, "SystemObjectSpawn"} }; -typedef decltype(&make_shared<Packet>) PacketMakePtr; -Array<PacketMakePtr, 69> const PacketTypeMakers = { - (PacketMakePtr)&make_shared<ProtocolRequestPacket>, - (PacketMakePtr)&make_shared<ProtocolResponsePacket>, - (PacketMakePtr)&make_shared<ServerDisconnectPacket>, - (PacketMakePtr)&make_shared<ConnectSuccessPacket>, - (PacketMakePtr)&make_shared<ConnectFailurePacket>, - (PacketMakePtr)&make_shared<HandshakeChallengePacket>, - (PacketMakePtr)&make_shared<ChatReceivePacket>, - (PacketMakePtr)&make_shared<UniverseTimeUpdatePacket>, - (PacketMakePtr)&make_shared<CelestialResponsePacket>, - (PacketMakePtr)&make_shared<PlayerWarpResultPacket>, - (PacketMakePtr)&make_shared<PlanetTypeUpdatePacket>, - (PacketMakePtr)&make_shared<PausePacket>, - (PacketMakePtr)&make_shared<ServerInfoPacket>, - (PacketMakePtr)&make_shared<ClientConnectPacket>, - (PacketMakePtr)&make_shared<ClientDisconnectRequestPacket>, - (PacketMakePtr)&make_shared<HandshakeResponsePacket>, - (PacketMakePtr)&make_shared<PlayerWarpPacket>, - (PacketMakePtr)&make_shared<FlyShipPacket>, - (PacketMakePtr)&make_shared<ChatSendPacket>, - (PacketMakePtr)&make_shared<CelestialRequestPacket>, - (PacketMakePtr)&make_shared<ClientContextUpdatePacket>, - (PacketMakePtr)&make_shared<WorldStartPacket>, - (PacketMakePtr)&make_shared<WorldStopPacket>, - (PacketMakePtr)&make_shared<WorldLayoutUpdatePacket>, - (PacketMakePtr)&make_shared<WorldParametersUpdatePacket>, - (PacketMakePtr)&make_shared<CentralStructureUpdatePacket>, - (PacketMakePtr)&make_shared<TileArrayUpdatePacket>, - (PacketMakePtr)&make_shared<TileUpdatePacket>, - (PacketMakePtr)&make_shared<TileLiquidUpdatePacket>, - (PacketMakePtr)&make_shared<TileDamageUpdatePacket>, - (PacketMakePtr)&make_shared<TileModificationFailurePacket>, - (PacketMakePtr)&make_shared<GiveItemPacket>, - (PacketMakePtr)&make_shared<EnvironmentUpdatePacket>, - (PacketMakePtr)&make_shared<UpdateTileProtectionPacket>, - (PacketMakePtr)&make_shared<SetDungeonGravityPacket>, - (PacketMakePtr)&make_shared<SetDungeonBreathablePacket>, - (PacketMakePtr)&make_shared<SetPlayerStartPacket>, - (PacketMakePtr)&make_shared<FindUniqueEntityResponsePacket>, - (PacketMakePtr)&make_shared<PongPacket>, - (PacketMakePtr)&make_shared<ModifyTileListPacket>, - (PacketMakePtr)&make_shared<DamageTileGroupPacket>, - (PacketMakePtr)&make_shared<CollectLiquidPacket>, - (PacketMakePtr)&make_shared<RequestDropPacket>, - (PacketMakePtr)&make_shared<SpawnEntityPacket>, - (PacketMakePtr)&make_shared<ConnectWirePacket>, - (PacketMakePtr)&make_shared<DisconnectAllWiresPacket>, - (PacketMakePtr)&make_shared<WorldClientStateUpdatePacket>, - (PacketMakePtr)&make_shared<FindUniqueEntityPacket>, - (PacketMakePtr)&make_shared<WorldStartAcknowledgePacket>, - (PacketMakePtr)&make_shared<PingPacket>, - (PacketMakePtr)&make_shared<EntityCreatePacket>, - (PacketMakePtr)&make_shared<EntityUpdateSetPacket>, - (PacketMakePtr)&make_shared<EntityDestroyPacket>, - (PacketMakePtr)&make_shared<EntityInteractPacket>, - (PacketMakePtr)&make_shared<EntityInteractResultPacket>, - (PacketMakePtr)&make_shared<HitRequestPacket>, - (PacketMakePtr)&make_shared<DamageRequestPacket>, - (PacketMakePtr)&make_shared<DamageNotificationPacket>, - (PacketMakePtr)&make_shared<EntityMessagePacket>, - (PacketMakePtr)&make_shared<EntityMessageResponsePacket>, - (PacketMakePtr)&make_shared<UpdateWorldPropertiesPacket>, - (PacketMakePtr)&make_shared<StepUpdatePacket>, - (PacketMakePtr)&make_shared<SystemWorldStartPacket>, - (PacketMakePtr)&make_shared<SystemWorldUpdatePacket>, - (PacketMakePtr)&make_shared<SystemObjectCreatePacket>, - (PacketMakePtr)&make_shared<SystemObjectDestroyPacket>, - (PacketMakePtr)&make_shared<SystemShipCreatePacket>, - (PacketMakePtr)&make_shared<SystemShipDestroyPacket>, - (PacketMakePtr)&make_shared<SystemObjectSpawnPacket> -}; - Packet::~Packet() {} PacketPtr createPacket(PacketType type) { - unsigned i = (unsigned)type; - if (i < PacketTypeMakers.size()) - return PacketTypeMakers[i](); - else - throw StarPacketException(strf("Unrecognized packet type %s", i)); + switch (type) { + case PacketType::ProtocolRequest: return make_shared<ProtocolRequestPacket>(); + case PacketType::ProtocolResponse: return make_shared<ProtocolResponsePacket>(); + case PacketType::ServerDisconnect: return make_shared<ServerDisconnectPacket>(); + case PacketType::ConnectSuccess: return make_shared<ConnectSuccessPacket>(); + case PacketType::ConnectFailure: return make_shared<ConnectFailurePacket>(); + case PacketType::HandshakeChallenge: return make_shared<HandshakeChallengePacket>(); + case PacketType::ChatReceive: return make_shared<ChatReceivePacket>(); + case PacketType::UniverseTimeUpdate: return make_shared<UniverseTimeUpdatePacket>(); + case PacketType::CelestialResponse: return make_shared<CelestialResponsePacket>(); + case PacketType::PlayerWarpResult: return make_shared<PlayerWarpResultPacket>(); + case PacketType::PlanetTypeUpdate: return make_shared<PlanetTypeUpdatePacket>(); + case PacketType::Pause: return make_shared<PausePacket>(); + case PacketType::ServerInfo: return make_shared<ServerInfoPacket>(); + case PacketType::ClientConnect: return make_shared<ClientConnectPacket>(); + case PacketType::ClientDisconnectRequest: return make_shared<ClientDisconnectRequestPacket>(); + case PacketType::HandshakeResponse: return make_shared<HandshakeResponsePacket>(); + case PacketType::PlayerWarp: return make_shared<PlayerWarpPacket>(); + case PacketType::FlyShip: return make_shared<FlyShipPacket>(); + case PacketType::ChatSend: return make_shared<ChatSendPacket>(); + case PacketType::CelestialRequest: return make_shared<CelestialRequestPacket>(); + case PacketType::ClientContextUpdate: return make_shared<ClientContextUpdatePacket>(); + case PacketType::WorldStart: return make_shared<WorldStartPacket>(); + case PacketType::WorldStop: return make_shared<WorldStopPacket>(); + case PacketType::WorldLayoutUpdate: return make_shared<WorldLayoutUpdatePacket>(); + case PacketType::WorldParametersUpdate: return make_shared<WorldParametersUpdatePacket>(); + case PacketType::CentralStructureUpdate: return make_shared<CentralStructureUpdatePacket>(); + case PacketType::TileArrayUpdate: return make_shared<TileArrayUpdatePacket>(); + case PacketType::TileUpdate: return make_shared<TileUpdatePacket>(); + case PacketType::TileLiquidUpdate: return make_shared<TileLiquidUpdatePacket>(); + case PacketType::TileDamageUpdate: return make_shared<TileDamageUpdatePacket>(); + case PacketType::TileModificationFailure: return make_shared<TileModificationFailurePacket>(); + case PacketType::GiveItem: return make_shared<GiveItemPacket>(); + case PacketType::EnvironmentUpdate: return make_shared<EnvironmentUpdatePacket>(); + case PacketType::UpdateTileProtection: return make_shared<UpdateTileProtectionPacket>(); + case PacketType::SetDungeonGravity: return make_shared<SetDungeonGravityPacket>(); + case PacketType::SetDungeonBreathable: return make_shared<SetDungeonBreathablePacket>(); + case PacketType::SetPlayerStart: return make_shared<SetPlayerStartPacket>(); + case PacketType::FindUniqueEntityResponse: return make_shared<FindUniqueEntityResponsePacket>(); + case PacketType::Pong: return make_shared<PongPacket>(); + case PacketType::ModifyTileList: return make_shared<ModifyTileListPacket>(); + case PacketType::DamageTileGroup: return make_shared<DamageTileGroupPacket>(); + case PacketType::CollectLiquid: return make_shared<CollectLiquidPacket>(); + case PacketType::RequestDrop: return make_shared<RequestDropPacket>(); + case PacketType::SpawnEntity: return make_shared<SpawnEntityPacket>(); + case PacketType::ConnectWire: return make_shared<ConnectWirePacket>(); + case PacketType::DisconnectAllWires: return make_shared<DisconnectAllWiresPacket>(); + case PacketType::WorldClientStateUpdate: return make_shared<WorldClientStateUpdatePacket>(); + case PacketType::FindUniqueEntity: return make_shared<FindUniqueEntityPacket>(); + case PacketType::WorldStartAcknowledge: return make_shared<WorldStartAcknowledgePacket>(); + case PacketType::Ping: return make_shared<PingPacket>(); + case PacketType::EntityCreate: return make_shared<EntityCreatePacket>(); + case PacketType::EntityUpdateSet: return make_shared<EntityUpdateSetPacket>(); + case PacketType::EntityDestroy: return make_shared<EntityDestroyPacket>(); + case PacketType::EntityInteract: return make_shared<EntityInteractPacket>(); + case PacketType::EntityInteractResult: return make_shared<EntityInteractResultPacket>(); + case PacketType::HitRequest: return make_shared<HitRequestPacket>(); + case PacketType::DamageRequest: return make_shared<DamageRequestPacket>(); + case PacketType::DamageNotification: return make_shared<DamageNotificationPacket>(); + case PacketType::EntityMessage: return make_shared<EntityMessagePacket>(); + case PacketType::EntityMessageResponse: return make_shared<EntityMessageResponsePacket>(); + case PacketType::UpdateWorldProperties: return make_shared<UpdateWorldPropertiesPacket>(); + case PacketType::StepUpdate: return make_shared<StepUpdatePacket>(); + case PacketType::SystemWorldStart: return make_shared<SystemWorldStartPacket>(); + case PacketType::SystemWorldUpdate: return make_shared<SystemWorldUpdatePacket>(); + case PacketType::SystemObjectCreate: return make_shared<SystemObjectCreatePacket>(); + case PacketType::SystemObjectDestroy: return make_shared<SystemObjectDestroyPacket>(); + case PacketType::SystemShipCreate: return make_shared<SystemShipCreatePacket>(); + case PacketType::SystemShipDestroy: return make_shared<SystemShipDestroyPacket>(); + case PacketType::SystemObjectSpawn: return make_shared<SystemObjectSpawnPacket>(); + default: + throw StarPacketException(strf("Unrecognized packet type %s", (unsigned int)type)); + } } ProtocolRequestPacket::ProtocolRequestPacket() |