From 4bc4624bc9528c329d26176d03bcc06094634f28 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:29:01 -0800 Subject: [PATCH 1/4] feat: add further MovementAI skeleton (#1499) * add movement ai skeleton Zone loading code is tested to load and read the correct values using logs. other ldf data is unaffected as I walked around crux and dragons/apes can still spawn and be killed. * format --- dCommon/dEnums/eWaypointCommandType.h | 59 +++++ dGame/dComponents/TriggerComponent.cpp | 309 +++++++++++++++---------- dGame/dComponents/TriggerComponent.h | 6 + dZoneManager/Zone.cpp | 17 +- dZoneManager/Zone.h | 9 + 5 files changed, 271 insertions(+), 129 deletions(-) create mode 100644 dCommon/dEnums/eWaypointCommandType.h diff --git a/dCommon/dEnums/eWaypointCommandType.h b/dCommon/dEnums/eWaypointCommandType.h new file mode 100644 index 00000000..308f3764 --- /dev/null +++ b/dCommon/dEnums/eWaypointCommandType.h @@ -0,0 +1,59 @@ + +#ifndef __EWAYPOINTCOMMANDTYPES__H__ +#define __EWAYPOINTCOMMANDTYPES__H__ + +#include + +enum class eWaypointCommandType : uint32_t { + INVALID, + BOUNCE, + STOP, + GROUP_EMOTE, + SET_VARIABLE, + CAST_SKILL, + EQUIP_INVENTORY, + UNEQUIP_INVENTORY, + DELAY, + EMOTE, + TELEPORT, + PATH_SPEED, + REMOVE_NPC, + CHANGE_WAYPOINT, + DELETE_SELF, + KILL_SELF, + SPAWN_OBJECT, + PLAY_SOUND, +}; + +class WaypointCommandType { +public: + static eWaypointCommandType StringToWaypointCommandType(std::string commandString) { + const std::map WaypointCommandTypeMap = { + {"bounce", eWaypointCommandType::BOUNCE}, + {"stop", eWaypointCommandType::STOP}, + {"groupemote", eWaypointCommandType::GROUP_EMOTE}, + {"setvar", eWaypointCommandType::SET_VARIABLE}, + {"castskill", eWaypointCommandType::CAST_SKILL}, + {"eqInvent", eWaypointCommandType::EQUIP_INVENTORY}, + {"unInvent", eWaypointCommandType::UNEQUIP_INVENTORY}, + {"delay", eWaypointCommandType::DELAY}, + {"femote", eWaypointCommandType::EMOTE}, + {"emote", eWaypointCommandType::EMOTE}, + {"teleport", eWaypointCommandType::TELEPORT}, + {"pathspeed", eWaypointCommandType::PATH_SPEED}, + {"removeNPC", eWaypointCommandType::REMOVE_NPC}, + {"changeWP", eWaypointCommandType::CHANGE_WAYPOINT}, + {"DeleteSelf", eWaypointCommandType::DELETE_SELF}, + {"killself", eWaypointCommandType::KILL_SELF}, + {"removeself", eWaypointCommandType::DELETE_SELF}, + {"spawnOBJ", eWaypointCommandType::SPAWN_OBJECT}, + {"playSound", eWaypointCommandType::PLAY_SOUND}, + }; + + auto intermed = WaypointCommandTypeMap.find(commandString); + return (intermed != WaypointCommandTypeMap.end()) ? intermed->second : eWaypointCommandType::INVALID; + }; +}; + + +#endif //!__EWAYPOINTCOMMANDTYPES__H__ diff --git a/dGame/dComponents/TriggerComponent.cpp b/dGame/dComponents/TriggerComponent.cpp index e43ebc5d..a9d00b15 100644 --- a/dGame/dComponents/TriggerComponent.cpp +++ b/dGame/dComponents/TriggerComponent.cpp @@ -15,8 +15,9 @@ #include "PlayerManager.h" #include "Game.h" #include "EntityManager.h" +#include "MovementAIComponent.h" -TriggerComponent::TriggerComponent(Entity* parent, const std::string triggerInfo): Component(parent) { +TriggerComponent::TriggerComponent(Entity* parent, const std::string triggerInfo) : Component(parent) { m_Parent = parent; m_Trigger = nullptr; @@ -43,7 +44,7 @@ void TriggerComponent::TriggerEvent(eTriggerEventType event, Entity* optionalTar } void TriggerComponent::HandleTriggerCommand(LUTriggers::Command* command, Entity* optionalTarget) { - auto argArray = GeneralUtils::SplitString(command->args, ','); + auto argArray = GeneralUtils::SplitString(command->args, ','); // determine targets std::vector targetEntities = GatherTargets(command, optionalTarget); @@ -55,107 +56,119 @@ void TriggerComponent::HandleTriggerCommand(LUTriggers::Command* command, Entity if (!targetEntity) continue; switch (command->id) { - case eTriggerCommandType::ZONE_PLAYER: break; - case eTriggerCommandType::FIRE_EVENT: - HandleFireEvent(targetEntity, command->args); - break; - case eTriggerCommandType::DESTROY_OBJ: - HandleDestroyObject(targetEntity, command->args); - break; - case eTriggerCommandType::TOGGLE_TRIGGER: - HandleToggleTrigger(targetEntity, command->args); - break; - case eTriggerCommandType::RESET_REBUILD: - HandleResetRebuild(targetEntity, command->args); - break; - case eTriggerCommandType::SET_PATH: break; - case eTriggerCommandType::SET_PICK_TYPE: break; - case eTriggerCommandType::MOVE_OBJECT: - HandleMoveObject(targetEntity, argArray); - break; - case eTriggerCommandType::ROTATE_OBJECT: - HandleRotateObject(targetEntity, argArray); - break; - case eTriggerCommandType::PUSH_OBJECT: - HandlePushObject(targetEntity, argArray); - break; - case eTriggerCommandType::REPEL_OBJECT: - HandleRepelObject(targetEntity, command->args); - break; - case eTriggerCommandType::SET_TIMER: - HandleSetTimer(targetEntity, argArray); - break; - case eTriggerCommandType::CANCEL_TIMER: - HandleCancelTimer(targetEntity, command->args); - break; - case eTriggerCommandType::PLAY_CINEMATIC: - HandlePlayCinematic(targetEntity, argArray); - break; - case eTriggerCommandType::TOGGLE_BBB: - HandleToggleBBB(targetEntity, command->args); - break; - case eTriggerCommandType::UPDATE_MISSION: - HandleUpdateMission(targetEntity, argArray); - break; - case eTriggerCommandType::SET_BOUNCER_STATE: break; - case eTriggerCommandType::BOUNCE_ALL_ON_BOUNCER: break; - case eTriggerCommandType::TURN_AROUND_ON_PATH: break; - case eTriggerCommandType::GO_FORWARD_ON_PATH: break; - case eTriggerCommandType::GO_BACKWARD_ON_PATH: break; - case eTriggerCommandType::STOP_PATHING: break; - case eTriggerCommandType::START_PATHING: break; - case eTriggerCommandType::LOCK_OR_UNLOCK_CONTROLS: break; - case eTriggerCommandType::PLAY_EFFECT: - HandlePlayEffect(targetEntity, argArray); - break; - case eTriggerCommandType::STOP_EFFECT: - GameMessages::SendStopFXEffect(targetEntity, true, command->args); - break; - case eTriggerCommandType::CAST_SKILL: - HandleCastSkill(targetEntity, command->args); - break; - case eTriggerCommandType::DISPLAY_ZONE_SUMMARY: - GameMessages::SendDisplayZoneSummary(targetEntity->GetObjectID(), targetEntity->GetSystemAddress(), false, command->args == "1", m_Parent->GetObjectID()); - break; - case eTriggerCommandType::SET_PHYSICS_VOLUME_EFFECT: - HandleSetPhysicsVolumeEffect(targetEntity, argArray); - break; - case eTriggerCommandType::SET_PHYSICS_VOLUME_STATUS: - HandleSetPhysicsVolumeStatus(targetEntity, command->args); - break; - case eTriggerCommandType::SET_MODEL_TO_BUILD: break; - case eTriggerCommandType::SPAWN_MODEL_BRICKS: break; - case eTriggerCommandType::ACTIVATE_SPAWNER_NETWORK: - HandleActivateSpawnerNetwork(command->args); - break; - case eTriggerCommandType::DEACTIVATE_SPAWNER_NETWORK: - HandleDeactivateSpawnerNetwork(command->args); - break; - case eTriggerCommandType::RESET_SPAWNER_NETWORK: - HandleResetSpawnerNetwork(command->args); - break; - case eTriggerCommandType::DESTROY_SPAWNER_NETWORK_OBJECTS: - HandleDestroySpawnerNetworkObjects(command->args); - break; - case eTriggerCommandType::GO_TO_WAYPOINT: break; - case eTriggerCommandType::ACTIVATE_PHYSICS: - HandleActivatePhysics(targetEntity, command->args); - break; + case eTriggerCommandType::ZONE_PLAYER: break; + case eTriggerCommandType::FIRE_EVENT: + HandleFireEvent(targetEntity, command->args); + break; + case eTriggerCommandType::DESTROY_OBJ: + HandleDestroyObject(targetEntity, command->args); + break; + case eTriggerCommandType::TOGGLE_TRIGGER: + HandleToggleTrigger(targetEntity, command->args); + break; + case eTriggerCommandType::RESET_REBUILD: + HandleResetRebuild(targetEntity, command->args); + break; + case eTriggerCommandType::SET_PATH: + HandleSetPath(targetEntity, argArray); + break; + case eTriggerCommandType::SET_PICK_TYPE: break; + case eTriggerCommandType::MOVE_OBJECT: + HandleMoveObject(targetEntity, argArray); + break; + case eTriggerCommandType::ROTATE_OBJECT: + HandleRotateObject(targetEntity, argArray); + break; + case eTriggerCommandType::PUSH_OBJECT: + HandlePushObject(targetEntity, argArray); + break; + case eTriggerCommandType::REPEL_OBJECT: + HandleRepelObject(targetEntity, command->args); + break; + case eTriggerCommandType::SET_TIMER: + HandleSetTimer(targetEntity, argArray); + break; + case eTriggerCommandType::CANCEL_TIMER: + HandleCancelTimer(targetEntity, command->args); + break; + case eTriggerCommandType::PLAY_CINEMATIC: + HandlePlayCinematic(targetEntity, argArray); + break; + case eTriggerCommandType::TOGGLE_BBB: + HandleToggleBBB(targetEntity, command->args); + break; + case eTriggerCommandType::UPDATE_MISSION: + HandleUpdateMission(targetEntity, argArray); + break; + case eTriggerCommandType::SET_BOUNCER_STATE: break; + case eTriggerCommandType::BOUNCE_ALL_ON_BOUNCER: break; + case eTriggerCommandType::TURN_AROUND_ON_PATH: + HandleTurnAroundOnPath(targetEntity); + break; + case eTriggerCommandType::GO_FORWARD_ON_PATH: + HandleGoForwardOnPath(targetEntity); + break; + case eTriggerCommandType::GO_BACKWARD_ON_PATH: + HandleGoBackwardOnPath(targetEntity); + break; + case eTriggerCommandType::STOP_PATHING: + HandleStopPathing(targetEntity); + break; + case eTriggerCommandType::START_PATHING: + HandleStartPathing(targetEntity); + break; + case eTriggerCommandType::LOCK_OR_UNLOCK_CONTROLS: break; + case eTriggerCommandType::PLAY_EFFECT: + HandlePlayEffect(targetEntity, argArray); + break; + case eTriggerCommandType::STOP_EFFECT: + GameMessages::SendStopFXEffect(targetEntity, true, command->args); + break; + case eTriggerCommandType::CAST_SKILL: + HandleCastSkill(targetEntity, command->args); + break; + case eTriggerCommandType::DISPLAY_ZONE_SUMMARY: + GameMessages::SendDisplayZoneSummary(targetEntity->GetObjectID(), targetEntity->GetSystemAddress(), false, command->args == "1", m_Parent->GetObjectID()); + break; + case eTriggerCommandType::SET_PHYSICS_VOLUME_EFFECT: + HandleSetPhysicsVolumeEffect(targetEntity, argArray); + break; + case eTriggerCommandType::SET_PHYSICS_VOLUME_STATUS: + HandleSetPhysicsVolumeStatus(targetEntity, command->args); + break; + case eTriggerCommandType::SET_MODEL_TO_BUILD: break; + case eTriggerCommandType::SPAWN_MODEL_BRICKS: break; + case eTriggerCommandType::ACTIVATE_SPAWNER_NETWORK: + HandleActivateSpawnerNetwork(command->args); + break; + case eTriggerCommandType::DEACTIVATE_SPAWNER_NETWORK: + HandleDeactivateSpawnerNetwork(command->args); + break; + case eTriggerCommandType::RESET_SPAWNER_NETWORK: + HandleResetSpawnerNetwork(command->args); + break; + case eTriggerCommandType::DESTROY_SPAWNER_NETWORK_OBJECTS: + HandleDestroySpawnerNetworkObjects(command->args); + break; + case eTriggerCommandType::GO_TO_WAYPOINT: break; + case eTriggerCommandType::ACTIVATE_PHYSICS: + HandleActivatePhysics(targetEntity, command->args); + break; // DEPRECATED BLOCK START - case eTriggerCommandType::ACTIVATE_MUSIC_CUE: break; - case eTriggerCommandType::DEACTIVATE_MUSIC_CUE: break; - case eTriggerCommandType::FLASH_MUSIC_CUE: break; - case eTriggerCommandType::SET_MUSIC_PARAMETER: break; - case eTriggerCommandType::PLAY_2D_AMBIENT_SOUND: break; - case eTriggerCommandType::STOP_2D_AMBIENT_SOUND: break; - case eTriggerCommandType::PLAY_3D_AMBIENT_SOUND: break; - case eTriggerCommandType::STOP_3D_AMBIENT_SOUND: break; - case eTriggerCommandType::ACTIVATE_MIXER_PROGRAM: break; - case eTriggerCommandType::DEACTIVATE_MIXER_PROGRAM: break; + case eTriggerCommandType::ACTIVATE_MUSIC_CUE: break; + case eTriggerCommandType::DEACTIVATE_MUSIC_CUE: break; + case eTriggerCommandType::FLASH_MUSIC_CUE: break; + case eTriggerCommandType::SET_MUSIC_PARAMETER: break; + case eTriggerCommandType::PLAY_2D_AMBIENT_SOUND: break; + case eTriggerCommandType::STOP_2D_AMBIENT_SOUND: break; + case eTriggerCommandType::PLAY_3D_AMBIENT_SOUND: break; + case eTriggerCommandType::STOP_3D_AMBIENT_SOUND: break; + case eTriggerCommandType::ACTIVATE_MIXER_PROGRAM: break; + case eTriggerCommandType::DEACTIVATE_MIXER_PROGRAM: break; // DEPRECATED BLOCK END - default: - LOG_DEBUG("Event %i was not handled!", command->id); - break; + default: + LOG_DEBUG("Event %i was not handled!", command->id); + break; } } } @@ -164,20 +177,25 @@ std::vector TriggerComponent::GatherTargets(LUTriggers::Command* comman std::vector entities = {}; if (command->target == "self") entities.push_back(m_Parent); - else if (command->target == "zone") { /*TODO*/ } - else if (command->target == "target" && optionalTarget) entities.push_back(optionalTarget); - else if (command->target == "targetTeam" && optionalTarget) { + else if (command->target == "zone") { + /*TODO*/ + } else if (command->target == "target" && optionalTarget) { + entities.push_back(optionalTarget); + } else if (command->target == "targetTeam" && optionalTarget) { auto* team = TeamManager::Instance()->GetTeam(optionalTarget->GetObjectID()); for (const auto memberId : team->members) { auto* member = Game::entityManager->GetEntity(memberId); if (member) entities.push_back(member); } - } else if (command->target == "objGroup") entities = Game::entityManager->GetEntitiesInGroup(command->targetName); - else if (command->target == "allPlayers") { + } else if (command->target == "objGroup") { + entities = Game::entityManager->GetEntitiesInGroup(command->targetName); + } else if (command->target == "allPlayers") { for (auto* player : PlayerManager::GetAllPlayers()) { entities.push_back(player); } - } else if (command->target == "allNPCs") { /*UNUSED*/ } + } else if (command->target == "allNPCs") { + /*UNUSED*/ + } return entities; } @@ -186,12 +204,12 @@ void TriggerComponent::HandleFireEvent(Entity* targetEntity, std::string args) { targetEntity->GetScript()->OnFireEventServerSide(targetEntity, m_Parent, args, 0, 0, 0); } -void TriggerComponent::HandleDestroyObject(Entity* targetEntity, std::string args){ +void TriggerComponent::HandleDestroyObject(Entity* targetEntity, std::string args) { const eKillType killType = GeneralUtils::TryParse(args).value_or(eKillType::VIOLENT); targetEntity->Smash(m_Parent->GetObjectID(), killType); } -void TriggerComponent::HandleToggleTrigger(Entity* targetEntity, std::string args){ +void TriggerComponent::HandleToggleTrigger(Entity* targetEntity, std::string args) { auto* triggerComponent = targetEntity->GetComponent(); if (!triggerComponent) { LOG_DEBUG("Trigger component not found!"); @@ -200,7 +218,7 @@ void TriggerComponent::HandleToggleTrigger(Entity* targetEntity, std::string arg triggerComponent->SetTriggerEnabled(args == "1"); } -void TriggerComponent::HandleResetRebuild(Entity* targetEntity, std::string args){ +void TriggerComponent::HandleResetRebuild(Entity* targetEntity, std::string args) { auto* quickBuildComponent = targetEntity->GetComponent(); if (!quickBuildComponent) { LOG_DEBUG("Rebuild component not found!"); @@ -209,7 +227,7 @@ void TriggerComponent::HandleResetRebuild(Entity* targetEntity, std::string args quickBuildComponent->ResetQuickBuild(args == "1"); } -void TriggerComponent::HandleMoveObject(Entity* targetEntity, std::vector argArray){ +void TriggerComponent::HandleMoveObject(Entity* targetEntity, std::vector argArray) { if (argArray.size() <= 2) return; NiPoint3 position = targetEntity->GetPosition(); @@ -219,7 +237,7 @@ void TriggerComponent::HandleMoveObject(Entity* targetEntity, std::vectorSetPosition(position); } -void TriggerComponent::HandleRotateObject(Entity* targetEntity, std::vector argArray){ +void TriggerComponent::HandleRotateObject(Entity* targetEntity, std::vector argArray) { if (argArray.size() <= 2) return; const NiPoint3 vector = GeneralUtils::TryParse(argArray).value_or(NiPoint3Constant::ZERO); @@ -228,7 +246,7 @@ void TriggerComponent::HandleRotateObject(Entity* targetEntity, std::vectorSetRotation(rotation); } -void TriggerComponent::HandlePushObject(Entity* targetEntity, std::vector argArray){ +void TriggerComponent::HandlePushObject(Entity* targetEntity, std::vector argArray) { if (argArray.size() < 3) return; auto* phantomPhysicsComponent = m_Parent->GetComponent(); @@ -246,7 +264,7 @@ void TriggerComponent::HandlePushObject(Entity* targetEntity, std::vectorGetComponent(); if (!phantomPhysicsComponent) { LOG_DEBUG("Phantom Physics component not found!"); @@ -270,7 +288,7 @@ void TriggerComponent::HandleRepelObject(Entity* targetEntity, std::string args) Game::entityManager->SerializeEntity(m_Parent); } -void TriggerComponent::HandleSetTimer(Entity* targetEntity, std::vector argArray){ +void TriggerComponent::HandleSetTimer(Entity* targetEntity, std::vector argArray) { if (argArray.size() != 2) { LOG_DEBUG("Not enough variables!"); return; @@ -279,7 +297,7 @@ void TriggerComponent::HandleSetTimer(Entity* targetEntity, std::vectorAddTimer(argArray.at(0), time); } -void TriggerComponent::HandleCancelTimer(Entity* targetEntity, std::string args){ +void TriggerComponent::HandleCancelTimer(Entity* targetEntity, std::string args) { m_Parent->CancelTimer(args); } @@ -327,7 +345,7 @@ void TriggerComponent::HandleUpdateMission(Entity* targetEntity, std::vectorGetComponent(); - if (!missionComponent){ + if (!missionComponent) { LOG_DEBUG("Mission component not found!"); return; } @@ -339,7 +357,7 @@ void TriggerComponent::HandlePlayEffect(Entity* targetEntity, std::vector(argArray.at(1)); if (!effectID) return; std::u16string effectType = GeneralUtils::UTF8ToUTF16(argArray.at(2)); - + float priority = 1; if (argArray.size() == 4) { priority = GeneralUtils::TryParse(argArray.at(3)).value_or(priority); @@ -348,7 +366,7 @@ void TriggerComponent::HandlePlayEffect(Entity* targetEntity, std::vectorGetComponent(); if (!skillComponent) { LOG_DEBUG("Skill component not found!"); @@ -376,7 +394,7 @@ void TriggerComponent::HandleSetPhysicsVolumeEffect(Entity* targetEntity, std::v phantomPhysicsComponent->SetEffectType(effectType); phantomPhysicsComponent->SetDirectionalMultiplier(std::stof(argArray.at(1))); if (argArray.size() > 4) { - const NiPoint3 direction = + const NiPoint3 direction = GeneralUtils::TryParse(argArray.at(2), argArray.at(3), argArray.at(4)).value_or(NiPoint3Constant::ZERO); phantomPhysicsComponent->SetDirection(direction); @@ -402,25 +420,25 @@ void TriggerComponent::HandleSetPhysicsVolumeStatus(Entity* targetEntity, std::s Game::entityManager->SerializeEntity(targetEntity); } -void TriggerComponent::HandleActivateSpawnerNetwork(std::string args){ +void TriggerComponent::HandleActivateSpawnerNetwork(std::string args) { for (auto* spawner : Game::zoneManager->GetSpawnersByName(args)) { if (spawner) spawner->Activate(); } } -void TriggerComponent::HandleDeactivateSpawnerNetwork(std::string args){ +void TriggerComponent::HandleDeactivateSpawnerNetwork(std::string args) { for (auto* spawner : Game::zoneManager->GetSpawnersByName(args)) { if (spawner) spawner->Deactivate(); } } -void TriggerComponent::HandleResetSpawnerNetwork(std::string args){ +void TriggerComponent::HandleResetSpawnerNetwork(std::string args) { for (auto* spawner : Game::zoneManager->GetSpawnersByName(args)) { if (spawner) spawner->Reset(); } } -void TriggerComponent::HandleDestroySpawnerNetworkObjects(std::string args){ +void TriggerComponent::HandleDestroySpawnerNetworkObjects(std::string args) { for (auto* spawner : Game::zoneManager->GetSpawnersByName(args)) { if (spawner) spawner->DestroyAllEntities(); } @@ -429,9 +447,50 @@ void TriggerComponent::HandleDestroySpawnerNetworkObjects(std::string args){ void TriggerComponent::HandleActivatePhysics(Entity* targetEntity, std::string args) { if (args == "true") { // TODO add physics entity if there isn't one - } else if (args == "false"){ + } else if (args == "false") { // TODO remove Phsyics entity if there is one } else { LOG_DEBUG("Invalid argument for ActivatePhysics Trigger: %s", args.c_str()); } } + +void TriggerComponent::HandleSetPath(Entity* targetEntity, std::vector argArray) { + auto* movementAIComponent = targetEntity->GetComponent(); + if (!movementAIComponent) return; + // movementAIComponent->SetupPath(argArray.at(0)); + if (argArray.size() >= 2) { + auto index = GeneralUtils::TryParse(argArray.at(1)); + if (!index) return; + // movementAIComponent->SetPathStartingWaypointIndex(index.value()); + } + if (argArray.size() >= 3 && argArray.at(2) == "1") { + // movementAIComponent->ReversePath(); + } +} + +void TriggerComponent::HandleTurnAroundOnPath(Entity* targetEntity) { + auto* movementAIComponent = targetEntity->GetComponent(); + // if (movementAIComponent) movementAIComponent->ReversePath(); +} + +void TriggerComponent::HandleGoForwardOnPath(Entity* targetEntity) { + auto* movementAIComponent = targetEntity->GetComponent(); + if (!movementAIComponent) return; + // if (movementAIComponent->GetIsInReverse()) movementAIComponent->ReversePath(); +} + +void TriggerComponent::HandleGoBackwardOnPath(Entity* targetEntity) { + auto* movementAIComponent = targetEntity->GetComponent(); + if (!movementAIComponent) return; + // if (!movementAIComponent->GetIsInReverse()) movementAIComponent->ReversePath(); +} + +void TriggerComponent::HandleStopPathing(Entity* targetEntity) { + auto* movementAIComponent = targetEntity->GetComponent(); + // if (movementAIComponent) movementAIComponent->Pause(); +} + +void TriggerComponent::HandleStartPathing(Entity* targetEntity) { + auto* movementAIComponent = targetEntity->GetComponent(); + // if (movementAIComponent) movementAIComponent->Resume(); +} diff --git a/dGame/dComponents/TriggerComponent.h b/dGame/dComponents/TriggerComponent.h index 5610f24a..94a7682e 100644 --- a/dGame/dComponents/TriggerComponent.h +++ b/dGame/dComponents/TriggerComponent.h @@ -44,6 +44,12 @@ private: void HandleResetSpawnerNetwork(std::string args); void HandleDestroySpawnerNetworkObjects(std::string args); void HandleActivatePhysics(Entity* targetEntity, std::string args); + void HandleTurnAroundOnPath(Entity* targetEntity); + void HandleGoForwardOnPath(Entity* targetEntity); + void HandleGoBackwardOnPath(Entity* targetEntity); + void HandleStopPathing(Entity* targetEntity); + void HandleStartPathing(Entity* targetEntity); + void HandleSetPath(Entity* targetEntity, std::vector argArray); LUTriggers::Trigger* m_Trigger; }; diff --git a/dZoneManager/Zone.cpp b/dZoneManager/Zone.cpp index 38c3a1ee..44532fc9 100644 --- a/dZoneManager/Zone.cpp +++ b/dZoneManager/Zone.cpp @@ -17,6 +17,7 @@ #include "eTriggerCommandType.h" #include "eTriggerEventType.h" +#include "eWaypointCommandType.h" #include "dNavMesh.h" Zone::Zone(const LWOMAPID& mapID, const LWOINSTANCEID& instanceID, const LWOCLONEID& cloneID) : @@ -452,15 +453,23 @@ void Zone::LoadPath(std::istream& file) { std::string value; BinaryIO::ReadString(file, value, BinaryIO::ReadType::WideString); - LDFBaseData* ldfConfig = nullptr; if (path.pathType == PathType::Movement || path.pathType == PathType::Rail) { - ldfConfig = LDFBaseData::DataFromString(parameter + "=0:" + value); + // cause NetDevil puts spaces in things that don't need spaces + parameter.erase(std::remove_if(parameter.begin(), parameter.end(), ::isspace), parameter.end()); + auto waypointCommand = WaypointCommandType::StringToWaypointCommandType(parameter); + if (waypointCommand == eWaypointCommandType::DELAY) value.erase(std::remove_if(value.begin(), value.end(), ::isspace), value.end()); + if (waypointCommand != eWaypointCommandType::INVALID) { + auto& command = waypoint.commands.emplace_back(); + command.command = waypointCommand; + command.data = value; + } else LOG("Tried to load invalid waypoint command '%s'", parameter.c_str()); } else { - ldfConfig = LDFBaseData::DataFromString(parameter + "=" + value); + waypoint.config.emplace_back(LDFBaseData::DataFromString(parameter + "=" + value)); } - if (ldfConfig) waypoint.config.push_back(ldfConfig); + } } + // We verify the waypoint heights against the navmesh because in many movement paths, // the waypoint is located near 0 height, if (path.pathType == PathType::Movement) { diff --git a/dZoneManager/Zone.h b/dZoneManager/Zone.h index 2f394510..c5bac6a6 100644 --- a/dZoneManager/Zone.h +++ b/dZoneManager/Zone.h @@ -13,6 +13,14 @@ namespace LUTriggers { class Level; +enum class eWaypointCommandType : uint32_t; + +struct WaypointCommand { + eWaypointCommandType command; + std::string data; +}; + + struct SceneRef { std::string filename; uint32_t id; @@ -69,6 +77,7 @@ struct PathWaypoint { RacingPathWaypoint racing; float speed; std::vector config; + std::vector commands; }; enum class PathType : uint32_t { From 0b4f70a76b64671c751043f8249363f4c8dddda5 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:29:40 -0800 Subject: [PATCH 2/4] Update StoryBoxInteractServer.cpp (#1500) Update StoryBoxInteractServer.cpp --- dScripts/02_server/Map/General/StoryBoxInteractServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dScripts/02_server/Map/General/StoryBoxInteractServer.cpp b/dScripts/02_server/Map/General/StoryBoxInteractServer.cpp index dd0a86d9..4ad78d6a 100644 --- a/dScripts/02_server/Map/General/StoryBoxInteractServer.cpp +++ b/dScripts/02_server/Map/General/StoryBoxInteractServer.cpp @@ -29,7 +29,7 @@ void StoryBoxInteractServer::OnUse(Entity* self, Entity* user) { return; } - if (!self->HasVar(u"storyText") || !self->HasVar(u"altFlagID")) return; + if (!self->HasVar(u"storyText")) return; const auto storyText = self->GetVarAsString(u"storyText"); if (storyText.length() > 2) { auto storyValue = GeneralUtils::TryParse(storyText.substr(storyText.length() - 2)); From b9092a3cce71ed1275554aa4a42294169d05066d Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 9 Mar 2024 23:15:43 -0800 Subject: [PATCH 3/4] update serialization, remove unused variable (#1501) Tested that players show up as normal on each others screens, tested that money magnet still works with item 8600, tested that gravity still works in Moon Base. --- .../ControllablePhysicsComponent.cpp | 26 +++++++++---------- .../ControllablePhysicsComponent.h | 17 ------------ 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/dGame/dComponents/ControllablePhysicsComponent.cpp b/dGame/dComponents/ControllablePhysicsComponent.cpp index 99b51af8..dccbe915 100644 --- a/dGame/dComponents/ControllablePhysicsComponent.cpp +++ b/dGame/dComponents/ControllablePhysicsComponent.cpp @@ -26,7 +26,6 @@ ControllablePhysicsComponent::ControllablePhysicsComponent(Entity* entity) : Phy m_SpeedMultiplier = 1; m_GravityScale = 1; m_DirtyCheats = false; - m_IgnoreMultipliers = false; m_DirtyEquippedItemInfo = true; m_PickupRadius = 0.0f; @@ -92,31 +91,31 @@ void ControllablePhysicsComponent::Serialize(RakNet::BitStream& outBitStream, bo outBitStream.Write(m_ImmuneToStunInteractCount); } - if (m_IgnoreMultipliers) m_DirtyCheats = false; - - outBitStream.Write(m_DirtyCheats); - if (m_DirtyCheats) { + outBitStream.Write(m_DirtyCheats || bIsInitialUpdate); + if (m_DirtyCheats || bIsInitialUpdate) { outBitStream.Write(m_GravityScale); outBitStream.Write(m_SpeedMultiplier); - m_DirtyCheats = false; + if (!bIsInitialUpdate) m_DirtyCheats = false; } - outBitStream.Write(m_DirtyEquippedItemInfo); - if (m_DirtyEquippedItemInfo) { + outBitStream.Write(m_DirtyEquippedItemInfo || bIsInitialUpdate); + if (m_DirtyEquippedItemInfo || bIsInitialUpdate) { outBitStream.Write(m_PickupRadius); outBitStream.Write(m_InJetpackMode); - m_DirtyEquippedItemInfo = false; + + if (!bIsInitialUpdate) m_DirtyEquippedItemInfo = false; } - outBitStream.Write(m_DirtyBubble); - if (m_DirtyBubble) { + outBitStream.Write(m_DirtyBubble || bIsInitialUpdate); + if (m_DirtyBubble || bIsInitialUpdate) { outBitStream.Write(m_IsInBubble); if (m_IsInBubble) { outBitStream.Write(m_BubbleType); outBitStream.Write(m_SpecialAnims); } - m_DirtyBubble = false; + + if (!bIsInitialUpdate) m_DirtyBubble = false; } outBitStream.Write(m_DirtyPosition || bIsInitialUpdate); @@ -149,7 +148,8 @@ void ControllablePhysicsComponent::Serialize(RakNet::BitStream& outBitStream, bo outBitStream.Write(m_AngularVelocity.z); } - outBitStream.Write0(); + outBitStream.Write0(); // local_space_info, always zero for now. + if (!bIsInitialUpdate) { m_DirtyPosition = false; outBitStream.Write(m_IsTeleporting); diff --git a/dGame/dComponents/ControllablePhysicsComponent.h b/dGame/dComponents/ControllablePhysicsComponent.h index a0cc6aef..8834128a 100644 --- a/dGame/dComponents/ControllablePhysicsComponent.h +++ b/dGame/dComponents/ControllablePhysicsComponent.h @@ -174,18 +174,6 @@ public: */ const float GetGravityScale() const { return m_GravityScale; } - /** - * Sets the ignore multipliers value, allowing you to skip the serialization of speed and gravity multipliers - * @param value whether or not to ignore multipliers - */ - void SetIgnoreMultipliers(bool value) { m_IgnoreMultipliers = value; } - - /** - * Returns the current ignore multipliers value - * @return the current ignore multipliers value - */ - const bool GetIgnoreMultipliers() const { return m_IgnoreMultipliers; } - /** * Can make an entity static, making it unable to move around * @param value whether or not the entity is static @@ -353,11 +341,6 @@ private: */ bool m_DirtyCheats; - /** - * Makes it so that the speed multiplier and gravity scale are no longer serialized if false - */ - bool m_IgnoreMultipliers; - /** * Whether this entity is static, making it unable to move */ From 35ce8771e5a4a034c4843784bfab10efe9bb89eb Mon Sep 17 00:00:00 2001 From: jadebenn Date: Sun, 17 Mar 2024 20:48:09 -0500 Subject: [PATCH 4/4] chore: supress warnings on external library headers and actually get rid of the last old-style casts (#1502) * chore: supress warnings on external library headers and actually get rid of the last old-style casts * remove commented out section I forgot * update cmake required version to 3.25 unless we can find another way to do this * update readme * Update CMakeLists.txt --- CMakeLists.txt | 31 +- README.md | 2 +- cmake/FindMariaDB.cmake | 2 +- dMasterServer/MasterServer.cpp | 2 +- dPhysics/dpGrid.cpp | 16 +- dWorldServer/WorldServer.cpp | 10 +- tests/dCommonTests/TestLDFFormat.cpp | 38 +- .../dGameMessagesTests/GameMessageTests.cpp | 24 +- .../LegacyGameMessageTests.cpp | 586 +++++++++--------- 9 files changed, 353 insertions(+), 358 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c256724c..0f2b1bb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.18) +cmake_minimum_required(VERSION 3.25) project(Darkflame) include(CTest) @@ -213,29 +213,29 @@ if (APPLE) endif() # Load all of our third party directories -add_subdirectory(thirdparty) +add_subdirectory(thirdparty SYSTEM) # Create our list of include directories -set(INCLUDED_DIRECTORIES +include_directories( "dPhysics" "dNavigation" "dNet" - "thirdparty/magic_enum/include/magic_enum" - "thirdparty/raknet/Source" - "thirdparty/tinyxml2" - "thirdparty/recastnavigation" - "thirdparty/SQLite" - "thirdparty/cpplinq" - "thirdparty/cpp-httplib" - "thirdparty/MD5" - "tests" "tests/dCommonTests" "tests/dGameTests" "tests/dGameTests/dComponentsTests" + + SYSTEM "thirdparty/magic_enum/include/magic_enum" + SYSTEM "thirdparty/raknet/Source" + SYSTEM "thirdparty/tinyxml2" + SYSTEM "thirdparty/recastnavigation" + SYSTEM "thirdparty/SQLite" + SYSTEM "thirdparty/cpplinq" + SYSTEM "thirdparty/cpp-httplib" + SYSTEM "thirdparty/MD5" ) # Add system specfic includes for Apple, Windows and Other Unix OS' (including Linux) @@ -244,14 +244,9 @@ if(APPLE) include_directories("/usr/local/include/") endif() -# Actually include the directories from our list -foreach(dir ${INCLUDED_DIRECTORIES}) - include_directories(${PROJECT_SOURCE_DIR}/${dir}) -endforeach() - # Add linking directories: if (UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast -Werror") # Warning flags endif() file( GLOB HEADERS_DZONEMANAGER diff --git a/README.md b/README.md index f0f2ac36..a0dffaad 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ git clone --recursive https://github.com/DarkflameUniverse/DarkflameServer ### Windows packages Ensure that you have either the [MSVC C++ compiler](https://visualstudio.microsoft.com/vs/features/cplusplus/) (recommended) or the [Clang compiler](https://github.com/llvm/llvm-project/releases/) installed. -You'll also need to download and install [CMake](https://cmake.org/download/) (version **CMake version 3.18** or later!). +You'll also need to download and install [CMake](https://cmake.org/download/) (version **CMake version 3.25** or later!). ### MacOS packages Ensure you have [brew](https://brew.sh) installed. diff --git a/cmake/FindMariaDB.cmake b/cmake/FindMariaDB.cmake index f42ac47b..d3f89931 100644 --- a/cmake/FindMariaDB.cmake +++ b/cmake/FindMariaDB.cmake @@ -141,6 +141,6 @@ elseif(APPLE) endif() # Add directories to include lists -target_include_directories(MariaDB::ConnCpp INTERFACE ${MARIADB_INCLUDE_DIR}) +target_include_directories(MariaDB::ConnCpp SYSTEM INTERFACE ${MARIADB_INCLUDE_DIR}) set(MariaDB_FOUND TRUE) diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index 4104f5ea..3d5f4aff 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -675,7 +675,7 @@ void HandlePacket(Packet* packet) { const auto& zone = instance->GetZoneID(); - MasterPackets::SendZoneTransferResponse(Game::server, packet->systemAddress, requestID, (bool)mythranShift, zone.GetMapID(), instance->GetInstanceID(), zone.GetCloneID(), instance->GetIP(), instance->GetPort()); + MasterPackets::SendZoneTransferResponse(Game::server, packet->systemAddress, requestID, static_cast(mythranShift), zone.GetMapID(), instance->GetInstanceID(), zone.GetCloneID(), instance->GetIP(), instance->GetPort()); break; } diff --git a/dPhysics/dpGrid.cpp b/dPhysics/dpGrid.cpp index 8ec944fd..7a0db1f8 100644 --- a/dPhysics/dpGrid.cpp +++ b/dPhysics/dpGrid.cpp @@ -26,8 +26,8 @@ dpGrid::~dpGrid() { void dpGrid::Add(dpEntity* entity) { //Determine which grid cell it's in. - int cellX = (int)std::round(entity->m_Position.x) / dpGrid::CELL_SIZE + NUM_CELLS / 2; - int cellZ = (int)std::round(entity->m_Position.z) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int cellX = static_cast(std::round(entity->m_Position.x)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int cellZ = static_cast(std::round(entity->m_Position.z)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; // Clamp values to the range [0, NUM_CELLS - 1] cellX = std::clamp(cellX, 0, NUM_CELLS - 1); @@ -42,11 +42,11 @@ void dpGrid::Add(dpEntity* entity) { } void dpGrid::Move(dpEntity* entity, float x, float z) { - int oldCellX = (int)std::round(entity->m_Position.x) / dpGrid::CELL_SIZE + NUM_CELLS / 2; - int oldCellZ = (int)std::round(entity->m_Position.z) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int oldCellX = static_cast(std::round(entity->m_Position.x)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int oldCellZ = static_cast(std::round(entity->m_Position.z)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; - int cellX = (int)std::round(x) / dpGrid::CELL_SIZE + NUM_CELLS / 2; - int cellZ = (int)std::round(z) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int cellX = static_cast(std::round(x)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int cellZ = static_cast(std::round(z)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; // Clamp values to the range [0, NUM_CELLS - 1] cellX = std::clamp(cellX, 0, NUM_CELLS - 1); @@ -73,8 +73,8 @@ void dpGrid::Move(dpEntity* entity, float x, float z) { void dpGrid::Delete(dpEntity* entity) { if (!entity) return; - int oldCellX = (int)std::round(entity->m_Position.x) / dpGrid::CELL_SIZE + NUM_CELLS / 2; - int oldCellZ = (int)std::round(entity->m_Position.z) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int oldCellX = static_cast(std::round(entity->m_Position.x)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; + int oldCellZ = static_cast(std::round(entity->m_Position.z)) / dpGrid::CELL_SIZE + NUM_CELLS / 2; // Clamp values to the range [0, NUM_CELLS - 1] oldCellX = std::clamp(oldCellX, 0, NUM_CELLS - 1); diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index fde5a2a6..5f7a8b3e 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -335,7 +335,7 @@ int main(int argc, char** argv) { // Update to the new framerate and scale all timings to said new framerate if (newFrameDelta != currentFrameDelta) { - float_t ratioBeforeToAfter = (float)currentFrameDelta / (float)newFrameDelta; + float_t ratioBeforeToAfter = static_cast(currentFrameDelta) / static_cast(newFrameDelta); currentFrameDelta = newFrameDelta; currentFramerate = MS_TO_FRAMES(newFrameDelta); LOG_DEBUG("Framerate for zone/instance/clone %i/%i/%i is now %i", zoneID, instanceID, cloneID, currentFramerate); @@ -728,8 +728,8 @@ void HandleMasterPacket(Packet* packet) { { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::PLAYER_ADDED); - bitStream.Write((LWOMAPID)Game::server->GetZoneID()); - bitStream.Write((LWOINSTANCEID)instanceID); + bitStream.Write(Game::server->GetZoneID()); + bitStream.Write(instanceID); Game::server->SendToMaster(bitStream); } } @@ -830,8 +830,8 @@ void HandlePacket(Packet* packet) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::PLAYER_REMOVED); - bitStream.Write((LWOMAPID)Game::server->GetZoneID()); - bitStream.Write((LWOINSTANCEID)instanceID); + bitStream.Write(Game::server->GetZoneID()); + bitStream.Write(instanceID); Game::server->SendToMaster(bitStream); } diff --git a/tests/dCommonTests/TestLDFFormat.cpp b/tests/dCommonTests/TestLDFFormat.cpp index 7baa5a0b..b761096c 100644 --- a/tests/dCommonTests/TestLDFFormat.cpp +++ b/tests/dCommonTests/TestLDFFormat.cpp @@ -27,7 +27,7 @@ TEST_F(LDFTests, LDFUTF16Test) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_16); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), u"IAmA weird string with :::: and spac,./;'][\\es that I expect to be parsed correctly...; "); + ASSERT_EQ((static_cast*>(data.get()))->GetValue(), u"IAmA weird string with :::: and spac,./;'][\\es that I expect to be parsed correctly...; "); ASSERT_EQ(data->GetString(), testWord); } @@ -37,7 +37,7 @@ TEST_F(LDFTests, LDFUTF16EmptyTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_16); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), u""); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), u""); ASSERT_EQ(data->GetString(), testWord); } @@ -47,7 +47,7 @@ TEST_F(LDFTests, LDFUTF16ColonTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_16); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), u"::"); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), u"::"); ASSERT_EQ(data->GetString(), testWord); } @@ -57,7 +57,7 @@ TEST_F(LDFTests, LDFUTF16EqualsTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_16); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), u"=="); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), u"=="); ASSERT_EQ(data->GetString(), testWord); } @@ -66,7 +66,7 @@ TEST_F(LDFTests, LDFS32Test) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_S32); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), -15); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), -15); ASSERT_EQ(data->GetString(), "KEY=1:-15"); } TEST_F(LDFTests, LDFU32Test) { @@ -74,7 +74,7 @@ TEST_F(LDFTests, LDFU32Test) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_U32); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 15); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 15); ASSERT_EQ(data->GetString(), "KEY=5:15"); } @@ -83,7 +83,7 @@ TEST_F(LDFTests, LDFU32TrueTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_U32); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 1); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 1); ASSERT_EQ(data->GetString(), "KEY=5:1"); } @@ -92,7 +92,7 @@ TEST_F(LDFTests, LDFU32FalseTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_U32); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 0); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 0); ASSERT_EQ(data->GetString(), "KEY=5:0"); } @@ -103,7 +103,7 @@ TEST_F(LDFTests, LDFFloatTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_FLOAT); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 15.5f); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 15.5f); ASSERT_EQ(data->GetString().find("KEY=3:15.5"), 0); } @@ -112,7 +112,7 @@ TEST_F(LDFTests, LDFDoubleTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_DOUBLE); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 15.5); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 15.5); ASSERT_EQ(data->GetString().find("KEY=4:15.5"), 0); } @@ -122,7 +122,7 @@ TEST_F(LDFTests, LDFBoolTrueTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_BOOLEAN); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), true); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), true); ASSERT_EQ(data->GetString(), "KEY=7:1"); } @@ -131,7 +131,7 @@ TEST_F(LDFTests, LDFBoolFalseTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_BOOLEAN); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), false); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), false); ASSERT_EQ(data->GetString(), "KEY=7:0"); } @@ -140,7 +140,7 @@ TEST_F(LDFTests, LDFBoolIntTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_BOOLEAN); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), true); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), true); ASSERT_EQ(data->GetString(), "KEY=7:1"); } @@ -149,7 +149,7 @@ TEST_F(LDFTests, LDFU64Test) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_U64); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 15); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 15); ASSERT_EQ(data->GetString(), "KEY=8:15"); } @@ -158,7 +158,7 @@ TEST_F(LDFTests, LDFLWOOBJIDTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_OBJID); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), 15); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), 15); ASSERT_EQ(data->GetString(), "KEY=9:15"); } @@ -168,7 +168,7 @@ TEST_F(LDFTests, LDFUTF8Test) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_8); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), "IAmA weird string with :::: and spac,./;'][\\es that I expect to be parsed correctly...; "); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), "IAmA weird string with :::: and spac,./;'][\\es that I expect to be parsed correctly...; "); ASSERT_EQ(data->GetString(), testWord); } @@ -178,7 +178,7 @@ TEST_F(LDFTests, LDFUTF8EmptyTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_8); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), ""); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), ""); ASSERT_EQ(data->GetString(), testWord); } @@ -188,7 +188,7 @@ TEST_F(LDFTests, LDFUTF8ColonsTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_8); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), "::"); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), "::"); ASSERT_EQ(data->GetString(), testWord); } TEST_F(LDFTests, LDFUTF8EqualsTest) { @@ -197,7 +197,7 @@ TEST_F(LDFTests, LDFUTF8EqualsTest) { ASSERT_NE(data, nullptr); ASSERT_EQ(data->GetValueType(), eLDFType::LDF_TYPE_UTF_8); ASSERT_EQ(data->GetKey(), u"KEY"); - ASSERT_EQ(((LDFData*)data.get())->GetValue(), "=="); + ASSERT_EQ(static_cast*>(data.get())->GetValue(), "=="); ASSERT_EQ(data->GetString(), testWord); } diff --git a/tests/dGameTests/dGameMessagesTests/GameMessageTests.cpp b/tests/dGameTests/dGameMessagesTests/GameMessageTests.cpp index 5bcdddef..2d37d102 100644 --- a/tests/dGameTests/dGameMessagesTests/GameMessageTests.cpp +++ b/tests/dGameTests/dGameMessagesTests/GameMessageTests.cpp @@ -87,7 +87,7 @@ TEST_F(GameMessageTests, SendBlueprintLoadItemResponse) { TEST_F(GameMessageTests, ControlBehaviorAddStrip) { auto data = ReadFromFile("addStrip"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); AddStripMessage addStrip(ReadArrayFromBitStream(inStream)); ASSERT_FLOAT_EQ(addStrip.GetPosition().GetX(), 50.65); ASSERT_FLOAT_EQ(addStrip.GetPosition().GetY(), 178.05); @@ -102,7 +102,7 @@ TEST_F(GameMessageTests, ControlBehaviorAddStrip) { TEST_F(GameMessageTests, ControlBehaviorRemoveStrip) { auto data = ReadFromFile("removeStrip"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); RemoveStripMessage removeStrip(ReadArrayFromBitStream(inStream)); ASSERT_EQ(static_cast(removeStrip.GetActionContext().GetStripId()), 1); ASSERT_EQ(static_cast(removeStrip.GetActionContext().GetStateId()), 0); @@ -111,7 +111,7 @@ TEST_F(GameMessageTests, ControlBehaviorRemoveStrip) { TEST_F(GameMessageTests, ControlBehaviorMergeStrips) { auto data = ReadFromFile("mergeStrips"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); MergeStripsMessage mergeStrips(ReadArrayFromBitStream(inStream)); ASSERT_EQ(mergeStrips.GetSourceActionContext().GetStripId(), 2); ASSERT_EQ(mergeStrips.GetDestinationActionContext().GetStripId(), 0); @@ -123,7 +123,7 @@ TEST_F(GameMessageTests, ControlBehaviorMergeStrips) { TEST_F(GameMessageTests, ControlBehaviorSplitStrip) { auto data = ReadFromFile("splitStrip"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); SplitStripMessage splitStrip(ReadArrayFromBitStream(inStream)); ASSERT_EQ(splitStrip.GetBehaviorId(), -1); @@ -138,7 +138,7 @@ TEST_F(GameMessageTests, ControlBehaviorSplitStrip) { TEST_F(GameMessageTests, ControlBehaviorUpdateStripUI) { auto data = ReadFromFile("updateStripUI"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); UpdateStripUiMessage updateStripUi(ReadArrayFromBitStream(inStream)); ASSERT_FLOAT_EQ(updateStripUi.GetPosition().GetX(), 116.65); ASSERT_FLOAT_EQ(updateStripUi.GetPosition().GetY(), 35.35); @@ -149,7 +149,7 @@ TEST_F(GameMessageTests, ControlBehaviorUpdateStripUI) { TEST_F(GameMessageTests, ControlBehaviorAddAction) { auto data = ReadFromFile("addAction"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); AddActionMessage addAction(ReadArrayFromBitStream(inStream)); ASSERT_EQ(addAction.GetActionIndex(), 3); ASSERT_EQ(addAction.GetActionContext().GetStripId(), 0); @@ -163,7 +163,7 @@ TEST_F(GameMessageTests, ControlBehaviorAddAction) { TEST_F(GameMessageTests, ControlBehaviorMigrateActions) { auto data = ReadFromFile("migrateActions"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); MigrateActionsMessage migrateActions(ReadArrayFromBitStream(inStream)); ASSERT_EQ(migrateActions.GetSrcActionIndex(), 1); ASSERT_EQ(migrateActions.GetDstActionIndex(), 2); @@ -176,7 +176,7 @@ TEST_F(GameMessageTests, ControlBehaviorMigrateActions) { TEST_F(GameMessageTests, ControlBehaviorRearrangeStrip) { auto data = ReadFromFile("rearrangeStrip"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); RearrangeStripMessage rearrangeStrip(ReadArrayFromBitStream(inStream)); ASSERT_EQ(rearrangeStrip.GetSrcActionIndex(), 2); ASSERT_EQ(rearrangeStrip.GetDstActionIndex(), 1); @@ -187,7 +187,7 @@ TEST_F(GameMessageTests, ControlBehaviorRearrangeStrip) { TEST_F(GameMessageTests, ControlBehaviorAdd) { auto data = ReadFromFile("add"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); AddMessage add(ReadArrayFromBitStream(inStream)); ASSERT_EQ(add.GetBehaviorId(), 10446); ASSERT_EQ(add.GetBehaviorIndex(), 0); @@ -195,7 +195,7 @@ TEST_F(GameMessageTests, ControlBehaviorAdd) { TEST_F(GameMessageTests, ControlBehaviorRemoveActions) { auto data = ReadFromFile("removeActions"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); RemoveActionsMessage removeActions(ReadArrayFromBitStream(inStream)); ASSERT_EQ(removeActions.GetBehaviorId(), -1); ASSERT_EQ(removeActions.GetActionIndex(), 1); @@ -205,7 +205,7 @@ TEST_F(GameMessageTests, ControlBehaviorRemoveActions) { TEST_F(GameMessageTests, ControlBehaviorRename) { auto data = ReadFromFile("rename"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); RenameMessage rename(ReadArrayFromBitStream(inStream)); ASSERT_EQ(rename.GetName(), "test"); ASSERT_EQ(rename.GetBehaviorId(), BehaviorMessageBase::DefaultBehaviorId); @@ -213,7 +213,7 @@ TEST_F(GameMessageTests, ControlBehaviorRename) { TEST_F(GameMessageTests, ControlBehaviorUpdateAction) { auto data = ReadFromFile("updateAction"); - RakNet::BitStream inStream((unsigned char*)data.c_str(), data.length(), true); + RakNet::BitStream inStream(reinterpret_cast(&data[0]), data.length(), true); UpdateActionMessage updateAction(ReadArrayFromBitStream(inStream)); ASSERT_EQ(updateAction.GetAction().GetType(), "FlyDown"); ASSERT_EQ(updateAction.GetAction().GetValueParameterName(), "Distance"); diff --git a/tests/dGameTests/dGameMessagesTests/LegacyGameMessageTests.cpp b/tests/dGameTests/dGameMessagesTests/LegacyGameMessageTests.cpp index 0226b0ad..47b930ed 100644 --- a/tests/dGameTests/dGameMessagesTests/LegacyGameMessageTests.cpp +++ b/tests/dGameTests/dGameMessagesTests/LegacyGameMessageTests.cpp @@ -2,297 +2,297 @@ #include "eGameMessageType.h" TEST(LegacyGameMessageTests, AssertLegacyGmValues) { - EXPECT_EQ(eGameMessageType::TELEPORT, (eGameMessageType)19); - EXPECT_EQ(eGameMessageType::SET_PLAYER_CONTROL_SCHEME, (eGameMessageType)26); - EXPECT_EQ(eGameMessageType::DROP_CLIENT_LOOT, (eGameMessageType)30); - EXPECT_EQ(eGameMessageType::DIE, (eGameMessageType)37); - EXPECT_EQ(eGameMessageType::REQUEST_DIE, (eGameMessageType)38); - EXPECT_EQ(eGameMessageType::PLAY_EMOTE, (eGameMessageType)41); - EXPECT_EQ(eGameMessageType::PLAY_ANIMATION, (eGameMessageType)43); - EXPECT_EQ(eGameMessageType::CONTROL_BEHAVIORS, (eGameMessageType)48); - EXPECT_EQ(eGameMessageType::SET_NAME, (eGameMessageType)72); - EXPECT_EQ(eGameMessageType::ECHO_START_SKILL, (eGameMessageType)118); - EXPECT_EQ(eGameMessageType::START_SKILL, (eGameMessageType)119); - EXPECT_EQ(eGameMessageType::VERIFY_ACK, (eGameMessageType)121); - EXPECT_EQ(eGameMessageType::ADD_SKILL, (eGameMessageType)127); - EXPECT_EQ(eGameMessageType::REMOVE_SKILL, (eGameMessageType)128); - EXPECT_EQ(eGameMessageType::SET_CURRENCY, (eGameMessageType)133); - EXPECT_EQ(eGameMessageType::PICKUP_CURRENCY, (eGameMessageType)137); - EXPECT_EQ(eGameMessageType::PICKUP_ITEM, (eGameMessageType)139); - EXPECT_EQ(eGameMessageType::TEAM_PICKUP_ITEM, (eGameMessageType)140); - EXPECT_EQ(eGameMessageType::PLAY_FX_EFFECT, (eGameMessageType)154); - EXPECT_EQ(eGameMessageType::STOP_FX_EFFECT, (eGameMessageType)155); - EXPECT_EQ(eGameMessageType::REQUEST_RESURRECT, (eGameMessageType)159); - EXPECT_EQ(eGameMessageType::RESURRECT, (eGameMessageType)160); - EXPECT_EQ(eGameMessageType::PUSH_EQUIPPED_ITEMS_STATE, (eGameMessageType)191); - EXPECT_EQ(eGameMessageType::POP_EQUIPPED_ITEMS_STATE, (eGameMessageType)192); - EXPECT_EQ(eGameMessageType::SET_GM_LEVEL, (eGameMessageType)193); - EXPECT_EQ(eGameMessageType::SET_STUNNED, (eGameMessageType)198); - EXPECT_EQ(eGameMessageType::SET_STUN_IMMUNITY, (eGameMessageType)200); - EXPECT_EQ(eGameMessageType::KNOCKBACK, (eGameMessageType)202); - EXPECT_EQ(eGameMessageType::REBUILD_CANCEL, (eGameMessageType)209); - EXPECT_EQ(eGameMessageType::ENABLE_REBUILD, (eGameMessageType)213); - EXPECT_EQ(eGameMessageType::MOVE_ITEM_IN_INVENTORY, (eGameMessageType)224); - EXPECT_EQ(eGameMessageType::ADD_ITEM_TO_INVENTORY_CLIENT_SYNC, (eGameMessageType)227); - EXPECT_EQ(eGameMessageType::REMOVE_ITEM_FROM_INVENTORY, (eGameMessageType)230); - EXPECT_EQ(eGameMessageType::EQUIP_INVENTORY, (eGameMessageType)231); - EXPECT_EQ(eGameMessageType::UN_EQUIP_INVENTORY, (eGameMessageType)233); - EXPECT_EQ(eGameMessageType::OFFER_MISSION, (eGameMessageType)248); - EXPECT_EQ(eGameMessageType::RESPOND_TO_MISSION, (eGameMessageType)249); - EXPECT_EQ(eGameMessageType::NOTIFY_MISSION, (eGameMessageType)254); - EXPECT_EQ(eGameMessageType::NOTIFY_MISSION_TASK, (eGameMessageType)255); - EXPECT_EQ(eGameMessageType::REBUILD_NOTIFY_STATE, (eGameMessageType)336); - EXPECT_EQ(eGameMessageType::TERMINATE_INTERACTION, (eGameMessageType)357); - EXPECT_EQ(eGameMessageType::SERVER_TERMINATE_INTERACTION, (eGameMessageType)358); - EXPECT_EQ(eGameMessageType::REQUEST_USE, (eGameMessageType)364); - EXPECT_EQ(eGameMessageType::VENDOR_OPEN_WINDOW, (eGameMessageType)369); - EXPECT_EQ(eGameMessageType::BUY_FROM_VENDOR, (eGameMessageType)373); - EXPECT_EQ(eGameMessageType::SELL_TO_VENDOR, (eGameMessageType)374); - EXPECT_EQ(eGameMessageType::TEAM_SET_OFF_WORLD_FLAG, (eGameMessageType)383); - EXPECT_EQ(eGameMessageType::SET_INVENTORY_SIZE, (eGameMessageType)389); - EXPECT_EQ(eGameMessageType::ACKNOWLEDGE_POSSESSION, (eGameMessageType)391); - EXPECT_EQ(eGameMessageType::SET_SHOOTING_GALLERY_PARAMS, (eGameMessageType)400); - EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_START_STOP, (eGameMessageType)402); - EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_ENTER, (eGameMessageType)403); - EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_EXIT, (eGameMessageType)404); - EXPECT_EQ(eGameMessageType::ACTIVITY_ENTER, (eGameMessageType)405); - EXPECT_EQ(eGameMessageType::ACTIVITY_EXIT, (eGameMessageType)406); - EXPECT_EQ(eGameMessageType::ACTIVITY_START, (eGameMessageType)407); - EXPECT_EQ(eGameMessageType::ACTIVITY_STOP, (eGameMessageType)408); - EXPECT_EQ(eGameMessageType::SHOOTING_GALLERY_CLIENT_AIM_UPDATE, (eGameMessageType)409); - EXPECT_EQ(eGameMessageType::SHOOTING_GALLERY_FIRE, (eGameMessageType)411); - EXPECT_EQ(eGameMessageType::REQUEST_VENDOR_STATUS_UPDATE, (eGameMessageType)416); - EXPECT_EQ(eGameMessageType::VENDOR_STATUS_UPDATE, (eGameMessageType)417); - EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_SHOOTING_GALLERY_SCORE, (eGameMessageType)425); - EXPECT_EQ(eGameMessageType::CONSUME_CLIENT_ITEM, (eGameMessageType)427); - EXPECT_EQ(eGameMessageType::CLIENT_ITEM_CONSUMED, (eGameMessageType)428); - EXPECT_EQ(eGameMessageType::UPDATE_SHOOTING_GALLERY_ROTATION, (eGameMessageType)448); - EXPECT_EQ(eGameMessageType::SET_FLAG, (eGameMessageType)471); - EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_FLAG_CHANGE, (eGameMessageType)472); - EXPECT_EQ(eGameMessageType::VENDOR_TRANSACTION_RESULT, (eGameMessageType)476); - EXPECT_EQ(eGameMessageType::HAS_BEEN_COLLECTED, (eGameMessageType)486); - EXPECT_EQ(eGameMessageType::DISPLAY_CHAT_BUBBLE, (eGameMessageType)495); - EXPECT_EQ(eGameMessageType::SPAWN_PET, (eGameMessageType)498); - EXPECT_EQ(eGameMessageType::DESPAWN_PET, (eGameMessageType)499); - EXPECT_EQ(eGameMessageType::PLAYER_LOADED, (eGameMessageType)505); - EXPECT_EQ(eGameMessageType::PLAYER_READY, (eGameMessageType)509); - EXPECT_EQ(eGameMessageType::REQUEST_LINKED_MISSION, (eGameMessageType)515); - EXPECT_EQ(eGameMessageType::INVALID_ZONE_TRANSFER_LIST, (eGameMessageType)519); - EXPECT_EQ(eGameMessageType::MISSION_DIALOGUE_OK, (eGameMessageType)520); - EXPECT_EQ(eGameMessageType::DISPLAY_MESSAGE_BOX, (eGameMessageType)529); - EXPECT_EQ(eGameMessageType::MESSAGE_BOX_RESPOND, (eGameMessageType)530); - EXPECT_EQ(eGameMessageType::CHOICE_BOX_RESPOND, (eGameMessageType)531); - EXPECT_EQ(eGameMessageType::SMASH, (eGameMessageType)537); - EXPECT_EQ(eGameMessageType::UN_SMASH, (eGameMessageType)538); - EXPECT_EQ(eGameMessageType::PLACE_MODEL_RESPONSE, (eGameMessageType)547); - EXPECT_EQ(eGameMessageType::SET_SHOOTING_GALLERY_RETICULE_EFFECT, (eGameMessageType)546); - EXPECT_EQ(eGameMessageType::SET_JET_PACK_MODE, (eGameMessageType)561); - EXPECT_EQ(eGameMessageType::REGISTER_PET_ID, (eGameMessageType)565); - EXPECT_EQ(eGameMessageType::REGISTER_PET_DBID, (eGameMessageType)566); - EXPECT_EQ(eGameMessageType::SHOW_ACTIVITY_COUNTDOWN, (eGameMessageType)568); - EXPECT_EQ(eGameMessageType::START_ACTIVITY_TIME, (eGameMessageType)576); - EXPECT_EQ(eGameMessageType::ACTIVITY_PAUSE, (eGameMessageType)602); - EXPECT_EQ(eGameMessageType::USE_NON_EQUIPMENT_ITEM, (eGameMessageType)603); - EXPECT_EQ(eGameMessageType::USE_ITEM_RESULT, (eGameMessageType)607); - EXPECT_EQ(eGameMessageType::COMMAND_PET, (eGameMessageType)640); - EXPECT_EQ(eGameMessageType::PET_RESPONSE, (eGameMessageType)641); - EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_SUMMARY_LEADERBOARD_DATA, (eGameMessageType)648); - EXPECT_EQ(eGameMessageType::SEND_ACTIVITY_SUMMARY_LEADERBOARD_DATA, (eGameMessageType)649); - EXPECT_EQ(eGameMessageType::NOTIFY_OBJECT, (eGameMessageType)656); - EXPECT_EQ(eGameMessageType::CLIENT_NOTIFY_PET, (eGameMessageType)659); - EXPECT_EQ(eGameMessageType::NOTIFY_PET, (eGameMessageType)660); - EXPECT_EQ(eGameMessageType::NOTIFY_PET_TAMING_MINIGAME, (eGameMessageType)661); - EXPECT_EQ(eGameMessageType::START_SERVER_PET_MINIGAME_TIMER, (eGameMessageType)662); - EXPECT_EQ(eGameMessageType::CLIENT_EXIT_TAMING_MINIGAME, (eGameMessageType)663); - EXPECT_EQ(eGameMessageType::PET_NAME_CHANGED, (eGameMessageType)686); - EXPECT_EQ(eGameMessageType::PET_TAMING_MINIGAME_RESULT, (eGameMessageType)667); - EXPECT_EQ(eGameMessageType::PET_TAMING_TRY_BUILD_RESULT, (eGameMessageType)668); - EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_BUILD_SUCCESS, (eGameMessageType)673); - EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_MODEL_LOADED_ON_SERVER, (eGameMessageType)674); - EXPECT_EQ(eGameMessageType::ACTIVATE_BUBBLE_BUFF, (eGameMessageType)678); - EXPECT_EQ(eGameMessageType::DECTIVATE_BUBBLE_BUFF, (eGameMessageType)679); - EXPECT_EQ(eGameMessageType::ADD_PET_TO_PLAYER, (eGameMessageType)681); - EXPECT_EQ(eGameMessageType::REQUEST_SET_PET_NAME, (eGameMessageType)683); - EXPECT_EQ(eGameMessageType::SET_PET_NAME, (eGameMessageType)684); - EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_PUZZLE_SELECTED, (eGameMessageType)675); - EXPECT_EQ(eGameMessageType::SHOW_PET_ACTION_BUTTON, (eGameMessageType)692); - EXPECT_EQ(eGameMessageType::SET_EMOTE_LOCK_STATE, (eGameMessageType)693); - EXPECT_EQ(eGameMessageType::USE_ITEM_REQUIREMENTS_RESPONSE, (eGameMessageType)703); - EXPECT_EQ(eGameMessageType::PLAY_EMBEDDED_EFFECT_ON_ALL_CLIENTS_NEAR_OBJECT, (eGameMessageType)713); - EXPECT_EQ(eGameMessageType::DOWNLOAD_PROPERTY_DATA, (eGameMessageType)716); - EXPECT_EQ(eGameMessageType::QUERY_PROPERTY_DATA, (eGameMessageType)717); - EXPECT_EQ(eGameMessageType::PROPERTY_EDITOR_BEGIN, (eGameMessageType)724); - EXPECT_EQ(eGameMessageType::PROPERTY_EDITOR_END, (eGameMessageType)725); - EXPECT_EQ(eGameMessageType::IS_MINIFIG_IN_A_BUBBLE, (eGameMessageType)729); - EXPECT_EQ(eGameMessageType::START_PATHING, (eGameMessageType)733); - EXPECT_EQ(eGameMessageType::ACTIVATE_BUBBLE_BUFF_FROM_SERVER, (eGameMessageType)734); - EXPECT_EQ(eGameMessageType::DEACTIVATE_BUBBLE_BUFF_FROM_SERVER, (eGameMessageType)735); - EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_ZONE_OBJECT, (eGameMessageType)737); - EXPECT_EQ(eGameMessageType::UPDATE_REPUTATION, (eGameMessageType)746); - EXPECT_EQ(eGameMessageType::PROPERTY_RENTAL_RESPONSE, (eGameMessageType)750); - EXPECT_EQ(eGameMessageType::REQUEST_PLATFORM_RESYNC, (eGameMessageType)760); - EXPECT_EQ(eGameMessageType::PLATFORM_RESYNC, (eGameMessageType)761); - EXPECT_EQ(eGameMessageType::PLAY_CINEMATIC, (eGameMessageType)762); - EXPECT_EQ(eGameMessageType::END_CINEMATIC, (eGameMessageType)763); - EXPECT_EQ(eGameMessageType::CINEMATIC_UPDATE, (eGameMessageType)764); - EXPECT_EQ(eGameMessageType::TOGGLE_GHOST_REFERENCE_OVERRIDE, (eGameMessageType)767); - EXPECT_EQ(eGameMessageType::SET_GHOST_REFERENCE_POSITION, (eGameMessageType)768); - EXPECT_EQ(eGameMessageType::FIRE_EVENT_SERVER_SIDE, (eGameMessageType)770); - EXPECT_EQ(eGameMessageType::SCRIPT_NETWORK_VAR_UPDATE, (eGameMessageType)781); - EXPECT_EQ(eGameMessageType::UPDATE_MODEL_FROM_CLIENT, (eGameMessageType)793); - EXPECT_EQ(eGameMessageType::DELETE_MODEL_FROM_CLIENT, (eGameMessageType)794); - EXPECT_EQ(eGameMessageType::PLAY_ND_AUDIO_EMITTER, (eGameMessageType)821); - EXPECT_EQ(eGameMessageType::PLAY2_D_AMBIENT_SOUND, (eGameMessageType)831); - EXPECT_EQ(eGameMessageType::ENTER_PROPERTY1, (eGameMessageType)840); - EXPECT_EQ(eGameMessageType::ENTER_PROPERTY2, (eGameMessageType)841); - EXPECT_EQ(eGameMessageType::PROPERTY_ENTRANCE_SYNC, (eGameMessageType)842); - EXPECT_EQ(eGameMessageType::PROPERTY_SELECT_QUERY, (eGameMessageType)845); - EXPECT_EQ(eGameMessageType::PARSE_CHAT_MESSAGE, (eGameMessageType)850); - EXPECT_EQ(eGameMessageType::BROADCAST_TEXT_TO_CHATBOX, (eGameMessageType)858); - EXPECT_EQ(eGameMessageType::OPEN_PROPERTY_MANAGEMENT, (eGameMessageType)860); - EXPECT_EQ(eGameMessageType::OPEN_PROPERTY_VENDOR, (eGameMessageType)861); - EXPECT_EQ(eGameMessageType::UPDATE_PROPERTY_OR_MODEL_FOR_FILTER_CHECK, (eGameMessageType)863); - EXPECT_EQ(eGameMessageType::CLIENT_TRADE_REQUEST, (eGameMessageType)868); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_REQUEST, (eGameMessageType)869); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_INVITE, (eGameMessageType)870); - EXPECT_EQ(eGameMessageType::CLIENT_TRADE_REPLY, (eGameMessageType)871); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_REPLY, (eGameMessageType)872); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_INITIAL_REPLY, (eGameMessageType)873); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_FINAL_REPLY, (eGameMessageType)874); - EXPECT_EQ(eGameMessageType::CLIENT_TRADE_UPDATE, (eGameMessageType)875); - EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_UPDATE, (eGameMessageType)876); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_UPDATE, (eGameMessageType)877); - EXPECT_EQ(eGameMessageType::CLIENT_TRADE_CANCEL, (eGameMessageType)878); - EXPECT_EQ(eGameMessageType::CLIENT_SIDE_TRADE_CANCEL, (eGameMessageType)879); - EXPECT_EQ(eGameMessageType::CLIENT_TRADE_ACCEPT, (eGameMessageType)880); - EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_ACCEPT, (eGameMessageType)881); - EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_CANCEL, (eGameMessageType)882); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_CANCEL, (eGameMessageType)883); - EXPECT_EQ(eGameMessageType::SERVER_TRADE_ACCEPT, (eGameMessageType)884); - EXPECT_EQ(eGameMessageType::READY_FOR_UPDATES, (eGameMessageType)888); - EXPECT_EQ(eGameMessageType::ORIENT_TO_OBJECT, (eGameMessageType)905); - EXPECT_EQ(eGameMessageType::ORIENT_TO_POSITION, (eGameMessageType)906); - EXPECT_EQ(eGameMessageType::ORIENT_TO_ANGLE, (eGameMessageType)907); - EXPECT_EQ(eGameMessageType::BOUNCER_ACTIVE_STATUS, (eGameMessageType)942); - EXPECT_EQ(eGameMessageType::UN_USE_BBB_MODEL, (eGameMessageType)999); - EXPECT_EQ(eGameMessageType::BBB_LOAD_ITEM_REQUEST, (eGameMessageType)1000); - EXPECT_EQ(eGameMessageType::BBB_SAVE_REQUEST, (eGameMessageType)1001); - EXPECT_EQ(eGameMessageType::BBB_SAVE_RESPONSE, (eGameMessageType)1005); - EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_OBJECT, (eGameMessageType)1042); - EXPECT_EQ(eGameMessageType::DISPLAY_ZONE_SUMMARY, (eGameMessageType)1043); - EXPECT_EQ(eGameMessageType::ZONE_SUMMARY_DISMISSED, (eGameMessageType)1044); - EXPECT_EQ(eGameMessageType::ACTIVITY_STATE_CHANGE_REQUEST, (eGameMessageType)1053); - EXPECT_EQ(eGameMessageType::MODIFY_PLAYER_ZONE_STATISTIC, (eGameMessageType)1046); - EXPECT_EQ(eGameMessageType::START_BUILDING_WITH_ITEM, (eGameMessageType)1057); - EXPECT_EQ(eGameMessageType::START_ARRANGING_WITH_ITEM, (eGameMessageType)1061); - EXPECT_EQ(eGameMessageType::FINISH_ARRANGING_WITH_ITEM, (eGameMessageType)1062); - EXPECT_EQ(eGameMessageType::DONE_ARRANGING_WITH_ITEM, (eGameMessageType)1063); - EXPECT_EQ(eGameMessageType::SET_BUILD_MODE, (eGameMessageType)1068); - EXPECT_EQ(eGameMessageType::BUILD_MODE_SET, (eGameMessageType)1069); - EXPECT_EQ(eGameMessageType::SET_BUILD_MODE_CONFIRMED, (eGameMessageType)1073); - EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_FAILED_PRECONDITION, (eGameMessageType)1081); - EXPECT_EQ(eGameMessageType::MOVE_ITEM_BETWEEN_INVENTORY_TYPES, (eGameMessageType)1093); - EXPECT_EQ(eGameMessageType::MODULAR_BUILD_BEGIN, (eGameMessageType)1094); - EXPECT_EQ(eGameMessageType::MODULAR_BUILD_END, (eGameMessageType)1095); - EXPECT_EQ(eGameMessageType::MODULAR_BUILD_MOVE_AND_EQUIP, (eGameMessageType)1096); - EXPECT_EQ(eGameMessageType::MODULAR_BUILD_FINISH, (eGameMessageType)1097); - EXPECT_EQ(eGameMessageType::REPORT_BUG, (eGameMessageType)1198); - EXPECT_EQ(eGameMessageType::MISSION_DIALOGUE_CANCELLED, (eGameMessageType)1129); - EXPECT_EQ(eGameMessageType::ECHO_SYNC_SKILL, (eGameMessageType)1144); - EXPECT_EQ(eGameMessageType::SYNC_SKILL, (eGameMessageType)1145); - EXPECT_EQ(eGameMessageType::REQUEST_SERVER_PROJECTILE_IMPACT, (eGameMessageType)1148); - EXPECT_EQ(eGameMessageType::DO_CLIENT_PROJECTILE_IMPACT, (eGameMessageType)1151); - EXPECT_EQ(eGameMessageType::MODULAR_BUILD_CONVERT_MODEL, (eGameMessageType)1155); - EXPECT_EQ(eGameMessageType::SET_PLAYER_ALLOWED_RESPAWN, (eGameMessageType)1165); - EXPECT_EQ(eGameMessageType::UI_MESSAGE_SERVER_TO_SINGLE_CLIENT, (eGameMessageType)1184); - EXPECT_EQ(eGameMessageType::UI_MESSAGE_SERVER_TO_ALL_CLIENTS, (eGameMessageType)1185); - EXPECT_EQ(eGameMessageType::PET_TAMING_TRY_BUILD, (eGameMessageType)1197); - EXPECT_EQ(eGameMessageType::REQUEST_SMASH_PLAYER, (eGameMessageType)1202); - EXPECT_EQ(eGameMessageType::FIRE_EVENT_CLIENT_SIDE, (eGameMessageType)1213); - EXPECT_EQ(eGameMessageType::TOGGLE_GM_INVIS, (eGameMessageType)1218); - EXPECT_EQ(eGameMessageType::CHANGE_OBJECT_WORLD_STATE, (eGameMessageType)1223); - EXPECT_EQ(eGameMessageType::VEHICLE_LOCK_INPUT, (eGameMessageType)1230); - EXPECT_EQ(eGameMessageType::VEHICLE_UNLOCK_INPUT, (eGameMessageType)1231); - EXPECT_EQ(eGameMessageType::RACING_RESET_PLAYER_TO_LAST_RESET, (eGameMessageType)1252); - EXPECT_EQ(eGameMessageType::RACING_SERVER_SET_PLAYER_LAP_AND_PLANE, (eGameMessageType)1253); - EXPECT_EQ(eGameMessageType::RACING_SET_PLAYER_RESET_INFO, (eGameMessageType)1254); - EXPECT_EQ(eGameMessageType::RACING_PLAYER_INFO_RESET_FINISHED, (eGameMessageType)1255); - EXPECT_EQ(eGameMessageType::LOCK_NODE_ROTATION, (eGameMessageType)1260); - EXPECT_EQ(eGameMessageType::VEHICLE_SET_WHEEL_LOCK_STATE, (eGameMessageType)1273); - EXPECT_EQ(eGameMessageType::NOTIFY_VEHICLE_OF_RACING_OBJECT, (eGameMessageType)1276); - EXPECT_EQ(eGameMessageType::SET_NAME_BILLBOARD_STATE, (eGameMessageType)1284); - EXPECT_EQ(eGameMessageType::PLAYER_REACHED_RESPAWN_CHECKPOINT, (eGameMessageType)1296); - EXPECT_EQ(eGameMessageType::HANDLE_UGC_POST_DELETE_BASED_ON_EDIT_MODE, (eGameMessageType)1300); - EXPECT_EQ(eGameMessageType::HANDLE_UGC_POST_CREATE_BASED_ON_EDIT_MODE, (eGameMessageType)1301); - EXPECT_EQ(eGameMessageType::PROPERTY_CONTENTS_FROM_CLIENT, (eGameMessageType)1305); - EXPECT_EQ(eGameMessageType::GET_MODELS_ON_PROPERTY, (eGameMessageType)1306); - EXPECT_EQ(eGameMessageType::MATCH_REQUEST, (eGameMessageType)1308); - EXPECT_EQ(eGameMessageType::MATCH_RESPONSE, (eGameMessageType)1309); - EXPECT_EQ(eGameMessageType::MATCH_UPDATE, (eGameMessageType)1310); - EXPECT_EQ(eGameMessageType::MODULE_ASSEMBLY_DB_DATA_FOR_CLIENT, (eGameMessageType)1131); - EXPECT_EQ(eGameMessageType::MODULE_ASSEMBLY_QUERY_DATA, (eGameMessageType)1132); - EXPECT_EQ(eGameMessageType::SHOW_BILLBOARD_INTERACT_ICON, (eGameMessageType)1337); - EXPECT_EQ(eGameMessageType::CHANGE_IDLE_FLAGS, (eGameMessageType)1338); - EXPECT_EQ(eGameMessageType::VEHICLE_ADD_PASSIVE_BOOST_ACTION, (eGameMessageType)1340); - EXPECT_EQ(eGameMessageType::VEHICLE_REMOVE_PASSIVE_BOOST_ACTION, (eGameMessageType)1341); - EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_ADD_PASSIVE_BOOST_ACTION, (eGameMessageType)1342); - EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_REMOVE_PASSIVE_BOOST_ACTION, (eGameMessageType)1343); - EXPECT_EQ(eGameMessageType::VEHICLE_ADD_SLOWDOWN_ACTION, (eGameMessageType)1344); - EXPECT_EQ(eGameMessageType::VEHICLE_REMOVE_SLOWDOWN_ACTION, (eGameMessageType)1345); - EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_ADD_SLOWDOWN_ACTION, (eGameMessageType)1346); - EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_REMOVE_SLOWDOWN_ACTION, (eGameMessageType)1347); - EXPECT_EQ(eGameMessageType::BUYBACK_FROM_VENDOR, (eGameMessageType)1350); - EXPECT_EQ(eGameMessageType::SET_PROPERTY_ACCESS, (eGameMessageType)1366); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_PLACED, (eGameMessageType)1369); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_ROTATED, (eGameMessageType)1370); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_REMOVED_WHILE_EQUIPPED, (eGameMessageType)1371); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_EQUIPPED, (eGameMessageType)1372); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_PICKED_UP, (eGameMessageType)1373); - EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_REMOVED, (eGameMessageType)1374); - EXPECT_EQ(eGameMessageType::NOTIFY_RACING_CLIENT, (eGameMessageType)1390); - EXPECT_EQ(eGameMessageType::RACING_PLAYER_HACK_CAR, (eGameMessageType)1391); - EXPECT_EQ(eGameMessageType::RACING_PLAYER_LOADED, (eGameMessageType)1392); - EXPECT_EQ(eGameMessageType::RACING_CLIENT_READY, (eGameMessageType)1393); - EXPECT_EQ(eGameMessageType::UPDATE_CHAT_MODE, (eGameMessageType)1395); - EXPECT_EQ(eGameMessageType::VEHICLE_NOTIFY_FINISHED_RACE, (eGameMessageType)1396); - EXPECT_EQ(eGameMessageType::SET_CONSUMABLE_ITEM, (eGameMessageType)1409); - EXPECT_EQ(eGameMessageType::SET_STATUS_IMMUNITY, (eGameMessageType)1435); - EXPECT_EQ(eGameMessageType::SET_PET_NAME_MODERATED, (eGameMessageType)1448); - EXPECT_EQ(eGameMessageType::MODIFY_LEGO_SCORE, (eGameMessageType)1459); - EXPECT_EQ(eGameMessageType::RESTORE_TO_POST_LOAD_STATS, (eGameMessageType)1468); - EXPECT_EQ(eGameMessageType::SET_RAIL_MOVEMENT, (eGameMessageType)1471); - EXPECT_EQ(eGameMessageType::START_RAIL_MOVEMENT, (eGameMessageType)1472); - EXPECT_EQ(eGameMessageType::CANCEL_RAIL_MOVEMENT, (eGameMessageType)1474); - EXPECT_EQ(eGameMessageType::CLIENT_RAIL_MOVEMENT_READY, (eGameMessageType)1476); - EXPECT_EQ(eGameMessageType::PLAYER_RAIL_ARRIVED_NOTIFICATION, (eGameMessageType)1477); - EXPECT_EQ(eGameMessageType::UPDATE_PLAYER_STATISTIC, (eGameMessageType)1481); - EXPECT_EQ(eGameMessageType::MODULAR_ASSEMBLY_NIF_COMPLETED, (eGameMessageType)1498); - EXPECT_EQ(eGameMessageType::NOTIFY_NOT_ENOUGH_INV_SPACE, (eGameMessageType)1516); - EXPECT_EQ(eGameMessageType::TEAM_SET_LEADER, (eGameMessageType)1557); - EXPECT_EQ(eGameMessageType::TEAM_INVITE_CONFIRM, (eGameMessageType)1558); - EXPECT_EQ(eGameMessageType::TEAM_GET_STATUS_RESPONSE, (eGameMessageType)1559); - EXPECT_EQ(eGameMessageType::TEAM_ADD_PLAYER, (eGameMessageType)1562); - EXPECT_EQ(eGameMessageType::TEAM_REMOVE_PLAYER, (eGameMessageType)1563); - EXPECT_EQ(eGameMessageType::START_CELEBRATION_EFFECT, (eGameMessageType)1618); - EXPECT_EQ(eGameMessageType::ADD_BUFF, (eGameMessageType)1647); - EXPECT_EQ(eGameMessageType::SERVER_DONE_LOADING_ALL_OBJECTS, (eGameMessageType)1642); - EXPECT_EQ(eGameMessageType::PLACE_PROPERTY_MODEL, (eGameMessageType)1170); - EXPECT_EQ(eGameMessageType::VEHICLE_NOTIFY_HIT_IMAGINATION_SERVER, (eGameMessageType)1606); - EXPECT_EQ(eGameMessageType::ADD_RUN_SPEED_MODIFIER, (eGameMessageType)1505); - EXPECT_EQ(eGameMessageType::GET_HOT_PROPERTY_DATA, (eGameMessageType)1511); - EXPECT_EQ(eGameMessageType::SEND_HOT_PROPERTY_DATA, (eGameMessageType)1510); - EXPECT_EQ(eGameMessageType::REMOVE_RUN_SPEED_MODIFIER, (eGameMessageType)1506); - EXPECT_EQ(eGameMessageType::UPDATE_PROPERTY_PERFORMANCE_COST, (eGameMessageType)1547); - EXPECT_EQ(eGameMessageType::PROPERTY_ENTRANCE_BEGIN, (eGameMessageType)1553); - EXPECT_EQ(eGameMessageType::SET_RESURRECT_RESTORE_VALUES, (eGameMessageType)1591); - EXPECT_EQ(eGameMessageType::VEHICLE_STOP_BOOST, (eGameMessageType)1617); - EXPECT_EQ(eGameMessageType::REMOVE_BUFF, (eGameMessageType)1648); - EXPECT_EQ(eGameMessageType::REQUEST_MOVE_ITEM_BETWEEN_INVENTORY_TYPES, (eGameMessageType)1666); - EXPECT_EQ(eGameMessageType::RESPONSE_MOVE_ITEM_BETWEEN_INVENTORY_TYPES, (eGameMessageType)1667); - EXPECT_EQ(eGameMessageType::PLAYER_SET_CAMERA_CYCLING_MODE, (eGameMessageType)1676); - EXPECT_EQ(eGameMessageType::SET_MOUNT_INVENTORY_ID, (eGameMessageType)1727); - EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_LEVEL_PROCESSING_COMPLETE, (eGameMessageType)1734); - EXPECT_EQ(eGameMessageType::NOTIFY_LEVEL_REWARDS, (eGameMessageType)1735); - EXPECT_EQ(eGameMessageType::DISMOUNT_COMPLETE, (eGameMessageType)1756); - EXPECT_EQ(eGameMessageType::MARK_INVENTORY_ITEM_AS_ACTIVE, (eGameMessageType)1767); + EXPECT_EQ(eGameMessageType::TELEPORT, static_cast(19)); + EXPECT_EQ(eGameMessageType::SET_PLAYER_CONTROL_SCHEME, static_cast(26)); + EXPECT_EQ(eGameMessageType::DROP_CLIENT_LOOT, static_cast(30)); + EXPECT_EQ(eGameMessageType::DIE, static_cast(37)); + EXPECT_EQ(eGameMessageType::REQUEST_DIE, static_cast(38)); + EXPECT_EQ(eGameMessageType::PLAY_EMOTE, static_cast(41)); + EXPECT_EQ(eGameMessageType::PLAY_ANIMATION, static_cast(43)); + EXPECT_EQ(eGameMessageType::CONTROL_BEHAVIORS, static_cast(48)); + EXPECT_EQ(eGameMessageType::SET_NAME, static_cast(72)); + EXPECT_EQ(eGameMessageType::ECHO_START_SKILL, static_cast(118)); + EXPECT_EQ(eGameMessageType::START_SKILL, static_cast(119)); + EXPECT_EQ(eGameMessageType::VERIFY_ACK, static_cast(121)); + EXPECT_EQ(eGameMessageType::ADD_SKILL, static_cast(127)); + EXPECT_EQ(eGameMessageType::REMOVE_SKILL, static_cast(128)); + EXPECT_EQ(eGameMessageType::SET_CURRENCY, static_cast(133)); + EXPECT_EQ(eGameMessageType::PICKUP_CURRENCY, static_cast(137)); + EXPECT_EQ(eGameMessageType::PICKUP_ITEM, static_cast(139)); + EXPECT_EQ(eGameMessageType::TEAM_PICKUP_ITEM, static_cast(140)); + EXPECT_EQ(eGameMessageType::PLAY_FX_EFFECT, static_cast(154)); + EXPECT_EQ(eGameMessageType::STOP_FX_EFFECT, static_cast(155)); + EXPECT_EQ(eGameMessageType::REQUEST_RESURRECT, static_cast(159)); + EXPECT_EQ(eGameMessageType::RESURRECT, static_cast(160)); + EXPECT_EQ(eGameMessageType::PUSH_EQUIPPED_ITEMS_STATE, static_cast(191)); + EXPECT_EQ(eGameMessageType::POP_EQUIPPED_ITEMS_STATE, static_cast(192)); + EXPECT_EQ(eGameMessageType::SET_GM_LEVEL, static_cast(193)); + EXPECT_EQ(eGameMessageType::SET_STUNNED, static_cast(198)); + EXPECT_EQ(eGameMessageType::SET_STUN_IMMUNITY, static_cast(200)); + EXPECT_EQ(eGameMessageType::KNOCKBACK, static_cast(202)); + EXPECT_EQ(eGameMessageType::REBUILD_CANCEL, static_cast(209)); + EXPECT_EQ(eGameMessageType::ENABLE_REBUILD, static_cast(213)); + EXPECT_EQ(eGameMessageType::MOVE_ITEM_IN_INVENTORY, static_cast(224)); + EXPECT_EQ(eGameMessageType::ADD_ITEM_TO_INVENTORY_CLIENT_SYNC, static_cast(227)); + EXPECT_EQ(eGameMessageType::REMOVE_ITEM_FROM_INVENTORY, static_cast(230)); + EXPECT_EQ(eGameMessageType::EQUIP_INVENTORY, static_cast(231)); + EXPECT_EQ(eGameMessageType::UN_EQUIP_INVENTORY, static_cast(233)); + EXPECT_EQ(eGameMessageType::OFFER_MISSION, static_cast(248)); + EXPECT_EQ(eGameMessageType::RESPOND_TO_MISSION, static_cast(249)); + EXPECT_EQ(eGameMessageType::NOTIFY_MISSION, static_cast(254)); + EXPECT_EQ(eGameMessageType::NOTIFY_MISSION_TASK, static_cast(255)); + EXPECT_EQ(eGameMessageType::REBUILD_NOTIFY_STATE, static_cast(336)); + EXPECT_EQ(eGameMessageType::TERMINATE_INTERACTION, static_cast(357)); + EXPECT_EQ(eGameMessageType::SERVER_TERMINATE_INTERACTION, static_cast(358)); + EXPECT_EQ(eGameMessageType::REQUEST_USE, static_cast(364)); + EXPECT_EQ(eGameMessageType::VENDOR_OPEN_WINDOW, static_cast(369)); + EXPECT_EQ(eGameMessageType::BUY_FROM_VENDOR, static_cast(373)); + EXPECT_EQ(eGameMessageType::SELL_TO_VENDOR, static_cast(374)); + EXPECT_EQ(eGameMessageType::TEAM_SET_OFF_WORLD_FLAG, static_cast(383)); + EXPECT_EQ(eGameMessageType::SET_INVENTORY_SIZE, static_cast(389)); + EXPECT_EQ(eGameMessageType::ACKNOWLEDGE_POSSESSION, static_cast(391)); + EXPECT_EQ(eGameMessageType::SET_SHOOTING_GALLERY_PARAMS, static_cast(400)); + EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_START_STOP, static_cast(402)); + EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_ENTER, static_cast(403)); + EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_EXIT, static_cast(404)); + EXPECT_EQ(eGameMessageType::ACTIVITY_ENTER, static_cast(405)); + EXPECT_EQ(eGameMessageType::ACTIVITY_EXIT, static_cast(406)); + EXPECT_EQ(eGameMessageType::ACTIVITY_START, static_cast(407)); + EXPECT_EQ(eGameMessageType::ACTIVITY_STOP, static_cast(408)); + EXPECT_EQ(eGameMessageType::SHOOTING_GALLERY_CLIENT_AIM_UPDATE, static_cast(409)); + EXPECT_EQ(eGameMessageType::SHOOTING_GALLERY_FIRE, static_cast(411)); + EXPECT_EQ(eGameMessageType::REQUEST_VENDOR_STATUS_UPDATE, static_cast(416)); + EXPECT_EQ(eGameMessageType::VENDOR_STATUS_UPDATE, static_cast(417)); + EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_SHOOTING_GALLERY_SCORE, static_cast(425)); + EXPECT_EQ(eGameMessageType::CONSUME_CLIENT_ITEM, static_cast(427)); + EXPECT_EQ(eGameMessageType::CLIENT_ITEM_CONSUMED, static_cast(428)); + EXPECT_EQ(eGameMessageType::UPDATE_SHOOTING_GALLERY_ROTATION, static_cast(448)); + EXPECT_EQ(eGameMessageType::SET_FLAG, static_cast(471)); + EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_FLAG_CHANGE, static_cast(472)); + EXPECT_EQ(eGameMessageType::VENDOR_TRANSACTION_RESULT, static_cast(476)); + EXPECT_EQ(eGameMessageType::HAS_BEEN_COLLECTED, static_cast(486)); + EXPECT_EQ(eGameMessageType::DISPLAY_CHAT_BUBBLE, static_cast(495)); + EXPECT_EQ(eGameMessageType::SPAWN_PET, static_cast(498)); + EXPECT_EQ(eGameMessageType::DESPAWN_PET, static_cast(499)); + EXPECT_EQ(eGameMessageType::PLAYER_LOADED, static_cast(505)); + EXPECT_EQ(eGameMessageType::PLAYER_READY, static_cast(509)); + EXPECT_EQ(eGameMessageType::REQUEST_LINKED_MISSION, static_cast(515)); + EXPECT_EQ(eGameMessageType::INVALID_ZONE_TRANSFER_LIST, static_cast(519)); + EXPECT_EQ(eGameMessageType::MISSION_DIALOGUE_OK, static_cast(520)); + EXPECT_EQ(eGameMessageType::DISPLAY_MESSAGE_BOX, static_cast(529)); + EXPECT_EQ(eGameMessageType::MESSAGE_BOX_RESPOND, static_cast(530)); + EXPECT_EQ(eGameMessageType::CHOICE_BOX_RESPOND, static_cast(531)); + EXPECT_EQ(eGameMessageType::SMASH, static_cast(537)); + EXPECT_EQ(eGameMessageType::UN_SMASH, static_cast(538)); + EXPECT_EQ(eGameMessageType::PLACE_MODEL_RESPONSE, static_cast(547)); + EXPECT_EQ(eGameMessageType::SET_SHOOTING_GALLERY_RETICULE_EFFECT, static_cast(546)); + EXPECT_EQ(eGameMessageType::SET_JET_PACK_MODE, static_cast(561)); + EXPECT_EQ(eGameMessageType::REGISTER_PET_ID, static_cast(565)); + EXPECT_EQ(eGameMessageType::REGISTER_PET_DBID, static_cast(566)); + EXPECT_EQ(eGameMessageType::SHOW_ACTIVITY_COUNTDOWN, static_cast(568)); + EXPECT_EQ(eGameMessageType::START_ACTIVITY_TIME, static_cast(576)); + EXPECT_EQ(eGameMessageType::ACTIVITY_PAUSE, static_cast(602)); + EXPECT_EQ(eGameMessageType::USE_NON_EQUIPMENT_ITEM, static_cast(603)); + EXPECT_EQ(eGameMessageType::USE_ITEM_RESULT, static_cast(607)); + EXPECT_EQ(eGameMessageType::COMMAND_PET, static_cast(640)); + EXPECT_EQ(eGameMessageType::PET_RESPONSE, static_cast(641)); + EXPECT_EQ(eGameMessageType::REQUEST_ACTIVITY_SUMMARY_LEADERBOARD_DATA, static_cast(648)); + EXPECT_EQ(eGameMessageType::SEND_ACTIVITY_SUMMARY_LEADERBOARD_DATA, static_cast(649)); + EXPECT_EQ(eGameMessageType::NOTIFY_OBJECT, static_cast(656)); + EXPECT_EQ(eGameMessageType::CLIENT_NOTIFY_PET, static_cast(659)); + EXPECT_EQ(eGameMessageType::NOTIFY_PET, static_cast(660)); + EXPECT_EQ(eGameMessageType::NOTIFY_PET_TAMING_MINIGAME, static_cast(661)); + EXPECT_EQ(eGameMessageType::START_SERVER_PET_MINIGAME_TIMER, static_cast(662)); + EXPECT_EQ(eGameMessageType::CLIENT_EXIT_TAMING_MINIGAME, static_cast(663)); + EXPECT_EQ(eGameMessageType::PET_NAME_CHANGED, static_cast(686)); + EXPECT_EQ(eGameMessageType::PET_TAMING_MINIGAME_RESULT, static_cast(667)); + EXPECT_EQ(eGameMessageType::PET_TAMING_TRY_BUILD_RESULT, static_cast(668)); + EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_BUILD_SUCCESS, static_cast(673)); + EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_MODEL_LOADED_ON_SERVER, static_cast(674)); + EXPECT_EQ(eGameMessageType::ACTIVATE_BUBBLE_BUFF, static_cast(678)); + EXPECT_EQ(eGameMessageType::DECTIVATE_BUBBLE_BUFF, static_cast(679)); + EXPECT_EQ(eGameMessageType::ADD_PET_TO_PLAYER, static_cast(681)); + EXPECT_EQ(eGameMessageType::REQUEST_SET_PET_NAME, static_cast(683)); + EXPECT_EQ(eGameMessageType::SET_PET_NAME, static_cast(684)); + EXPECT_EQ(eGameMessageType::NOTIFY_TAMING_PUZZLE_SELECTED, static_cast(675)); + EXPECT_EQ(eGameMessageType::SHOW_PET_ACTION_BUTTON, static_cast(692)); + EXPECT_EQ(eGameMessageType::SET_EMOTE_LOCK_STATE, static_cast(693)); + EXPECT_EQ(eGameMessageType::USE_ITEM_REQUIREMENTS_RESPONSE, static_cast(703)); + EXPECT_EQ(eGameMessageType::PLAY_EMBEDDED_EFFECT_ON_ALL_CLIENTS_NEAR_OBJECT, static_cast(713)); + EXPECT_EQ(eGameMessageType::DOWNLOAD_PROPERTY_DATA, static_cast(716)); + EXPECT_EQ(eGameMessageType::QUERY_PROPERTY_DATA, static_cast(717)); + EXPECT_EQ(eGameMessageType::PROPERTY_EDITOR_BEGIN, static_cast(724)); + EXPECT_EQ(eGameMessageType::PROPERTY_EDITOR_END, static_cast(725)); + EXPECT_EQ(eGameMessageType::IS_MINIFIG_IN_A_BUBBLE, static_cast(729)); + EXPECT_EQ(eGameMessageType::START_PATHING, static_cast(733)); + EXPECT_EQ(eGameMessageType::ACTIVATE_BUBBLE_BUFF_FROM_SERVER, static_cast(734)); + EXPECT_EQ(eGameMessageType::DEACTIVATE_BUBBLE_BUFF_FROM_SERVER, static_cast(735)); + EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_ZONE_OBJECT, static_cast(737)); + EXPECT_EQ(eGameMessageType::UPDATE_REPUTATION, static_cast(746)); + EXPECT_EQ(eGameMessageType::PROPERTY_RENTAL_RESPONSE, static_cast(750)); + EXPECT_EQ(eGameMessageType::REQUEST_PLATFORM_RESYNC, static_cast(760)); + EXPECT_EQ(eGameMessageType::PLATFORM_RESYNC, static_cast(761)); + EXPECT_EQ(eGameMessageType::PLAY_CINEMATIC, static_cast(762)); + EXPECT_EQ(eGameMessageType::END_CINEMATIC, static_cast(763)); + EXPECT_EQ(eGameMessageType::CINEMATIC_UPDATE, static_cast(764)); + EXPECT_EQ(eGameMessageType::TOGGLE_GHOST_REFERENCE_OVERRIDE, static_cast(767)); + EXPECT_EQ(eGameMessageType::SET_GHOST_REFERENCE_POSITION, static_cast(768)); + EXPECT_EQ(eGameMessageType::FIRE_EVENT_SERVER_SIDE, static_cast(770)); + EXPECT_EQ(eGameMessageType::SCRIPT_NETWORK_VAR_UPDATE, static_cast(781)); + EXPECT_EQ(eGameMessageType::UPDATE_MODEL_FROM_CLIENT, static_cast(793)); + EXPECT_EQ(eGameMessageType::DELETE_MODEL_FROM_CLIENT, static_cast(794)); + EXPECT_EQ(eGameMessageType::PLAY_ND_AUDIO_EMITTER, static_cast(821)); + EXPECT_EQ(eGameMessageType::PLAY2_D_AMBIENT_SOUND, static_cast(831)); + EXPECT_EQ(eGameMessageType::ENTER_PROPERTY1, static_cast(840)); + EXPECT_EQ(eGameMessageType::ENTER_PROPERTY2, static_cast(841)); + EXPECT_EQ(eGameMessageType::PROPERTY_ENTRANCE_SYNC, static_cast(842)); + EXPECT_EQ(eGameMessageType::PROPERTY_SELECT_QUERY, static_cast(845)); + EXPECT_EQ(eGameMessageType::PARSE_CHAT_MESSAGE, static_cast(850)); + EXPECT_EQ(eGameMessageType::BROADCAST_TEXT_TO_CHATBOX, static_cast(858)); + EXPECT_EQ(eGameMessageType::OPEN_PROPERTY_MANAGEMENT, static_cast(860)); + EXPECT_EQ(eGameMessageType::OPEN_PROPERTY_VENDOR, static_cast(861)); + EXPECT_EQ(eGameMessageType::UPDATE_PROPERTY_OR_MODEL_FOR_FILTER_CHECK, static_cast(863)); + EXPECT_EQ(eGameMessageType::CLIENT_TRADE_REQUEST, static_cast(868)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_REQUEST, static_cast(869)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_INVITE, static_cast(870)); + EXPECT_EQ(eGameMessageType::CLIENT_TRADE_REPLY, static_cast(871)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_REPLY, static_cast(872)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_INITIAL_REPLY, static_cast(873)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_FINAL_REPLY, static_cast(874)); + EXPECT_EQ(eGameMessageType::CLIENT_TRADE_UPDATE, static_cast(875)); + EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_UPDATE, static_cast(876)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_UPDATE, static_cast(877)); + EXPECT_EQ(eGameMessageType::CLIENT_TRADE_CANCEL, static_cast(878)); + EXPECT_EQ(eGameMessageType::CLIENT_SIDE_TRADE_CANCEL, static_cast(879)); + EXPECT_EQ(eGameMessageType::CLIENT_TRADE_ACCEPT, static_cast(880)); + EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_ACCEPT, static_cast(881)); + EXPECT_EQ(eGameMessageType::SERVER_SIDE_TRADE_CANCEL, static_cast(882)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_CANCEL, static_cast(883)); + EXPECT_EQ(eGameMessageType::SERVER_TRADE_ACCEPT, static_cast(884)); + EXPECT_EQ(eGameMessageType::READY_FOR_UPDATES, static_cast(888)); + EXPECT_EQ(eGameMessageType::ORIENT_TO_OBJECT, static_cast(905)); + EXPECT_EQ(eGameMessageType::ORIENT_TO_POSITION, static_cast(906)); + EXPECT_EQ(eGameMessageType::ORIENT_TO_ANGLE, static_cast(907)); + EXPECT_EQ(eGameMessageType::BOUNCER_ACTIVE_STATUS, static_cast(942)); + EXPECT_EQ(eGameMessageType::UN_USE_BBB_MODEL, static_cast(999)); + EXPECT_EQ(eGameMessageType::BBB_LOAD_ITEM_REQUEST, static_cast(1000)); + EXPECT_EQ(eGameMessageType::BBB_SAVE_REQUEST, static_cast(1001)); + EXPECT_EQ(eGameMessageType::BBB_SAVE_RESPONSE, static_cast(1005)); + EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_OBJECT, static_cast(1042)); + EXPECT_EQ(eGameMessageType::DISPLAY_ZONE_SUMMARY, static_cast(1043)); + EXPECT_EQ(eGameMessageType::ZONE_SUMMARY_DISMISSED, static_cast(1044)); + EXPECT_EQ(eGameMessageType::ACTIVITY_STATE_CHANGE_REQUEST, static_cast(1053)); + EXPECT_EQ(eGameMessageType::MODIFY_PLAYER_ZONE_STATISTIC, static_cast(1046)); + EXPECT_EQ(eGameMessageType::START_BUILDING_WITH_ITEM, static_cast(1057)); + EXPECT_EQ(eGameMessageType::START_ARRANGING_WITH_ITEM, static_cast(1061)); + EXPECT_EQ(eGameMessageType::FINISH_ARRANGING_WITH_ITEM, static_cast(1062)); + EXPECT_EQ(eGameMessageType::DONE_ARRANGING_WITH_ITEM, static_cast(1063)); + EXPECT_EQ(eGameMessageType::SET_BUILD_MODE, static_cast(1068)); + EXPECT_EQ(eGameMessageType::BUILD_MODE_SET, static_cast(1069)); + EXPECT_EQ(eGameMessageType::SET_BUILD_MODE_CONFIRMED, static_cast(1073)); + EXPECT_EQ(eGameMessageType::NOTIFY_CLIENT_FAILED_PRECONDITION, static_cast(1081)); + EXPECT_EQ(eGameMessageType::MOVE_ITEM_BETWEEN_INVENTORY_TYPES, static_cast(1093)); + EXPECT_EQ(eGameMessageType::MODULAR_BUILD_BEGIN, static_cast(1094)); + EXPECT_EQ(eGameMessageType::MODULAR_BUILD_END, static_cast(1095)); + EXPECT_EQ(eGameMessageType::MODULAR_BUILD_MOVE_AND_EQUIP, static_cast(1096)); + EXPECT_EQ(eGameMessageType::MODULAR_BUILD_FINISH, static_cast(1097)); + EXPECT_EQ(eGameMessageType::REPORT_BUG, static_cast(1198)); + EXPECT_EQ(eGameMessageType::MISSION_DIALOGUE_CANCELLED, static_cast(1129)); + EXPECT_EQ(eGameMessageType::ECHO_SYNC_SKILL, static_cast(1144)); + EXPECT_EQ(eGameMessageType::SYNC_SKILL, static_cast(1145)); + EXPECT_EQ(eGameMessageType::REQUEST_SERVER_PROJECTILE_IMPACT, static_cast(1148)); + EXPECT_EQ(eGameMessageType::DO_CLIENT_PROJECTILE_IMPACT, static_cast(1151)); + EXPECT_EQ(eGameMessageType::MODULAR_BUILD_CONVERT_MODEL, static_cast(1155)); + EXPECT_EQ(eGameMessageType::SET_PLAYER_ALLOWED_RESPAWN, static_cast(1165)); + EXPECT_EQ(eGameMessageType::UI_MESSAGE_SERVER_TO_SINGLE_CLIENT, static_cast(1184)); + EXPECT_EQ(eGameMessageType::UI_MESSAGE_SERVER_TO_ALL_CLIENTS, static_cast(1185)); + EXPECT_EQ(eGameMessageType::PET_TAMING_TRY_BUILD, static_cast(1197)); + EXPECT_EQ(eGameMessageType::REQUEST_SMASH_PLAYER, static_cast(1202)); + EXPECT_EQ(eGameMessageType::FIRE_EVENT_CLIENT_SIDE, static_cast(1213)); + EXPECT_EQ(eGameMessageType::TOGGLE_GM_INVIS, static_cast(1218)); + EXPECT_EQ(eGameMessageType::CHANGE_OBJECT_WORLD_STATE, static_cast(1223)); + EXPECT_EQ(eGameMessageType::VEHICLE_LOCK_INPUT, static_cast(1230)); + EXPECT_EQ(eGameMessageType::VEHICLE_UNLOCK_INPUT, static_cast(1231)); + EXPECT_EQ(eGameMessageType::RACING_RESET_PLAYER_TO_LAST_RESET, static_cast(1252)); + EXPECT_EQ(eGameMessageType::RACING_SERVER_SET_PLAYER_LAP_AND_PLANE, static_cast(1253)); + EXPECT_EQ(eGameMessageType::RACING_SET_PLAYER_RESET_INFO, static_cast(1254)); + EXPECT_EQ(eGameMessageType::RACING_PLAYER_INFO_RESET_FINISHED, static_cast(1255)); + EXPECT_EQ(eGameMessageType::LOCK_NODE_ROTATION, static_cast(1260)); + EXPECT_EQ(eGameMessageType::VEHICLE_SET_WHEEL_LOCK_STATE, static_cast(1273)); + EXPECT_EQ(eGameMessageType::NOTIFY_VEHICLE_OF_RACING_OBJECT, static_cast(1276)); + EXPECT_EQ(eGameMessageType::SET_NAME_BILLBOARD_STATE, static_cast(1284)); + EXPECT_EQ(eGameMessageType::PLAYER_REACHED_RESPAWN_CHECKPOINT, static_cast(1296)); + EXPECT_EQ(eGameMessageType::HANDLE_UGC_POST_DELETE_BASED_ON_EDIT_MODE, static_cast(1300)); + EXPECT_EQ(eGameMessageType::HANDLE_UGC_POST_CREATE_BASED_ON_EDIT_MODE, static_cast(1301)); + EXPECT_EQ(eGameMessageType::PROPERTY_CONTENTS_FROM_CLIENT, static_cast(1305)); + EXPECT_EQ(eGameMessageType::GET_MODELS_ON_PROPERTY, static_cast(1306)); + EXPECT_EQ(eGameMessageType::MATCH_REQUEST, static_cast(1308)); + EXPECT_EQ(eGameMessageType::MATCH_RESPONSE, static_cast(1309)); + EXPECT_EQ(eGameMessageType::MATCH_UPDATE, static_cast(1310)); + EXPECT_EQ(eGameMessageType::MODULE_ASSEMBLY_DB_DATA_FOR_CLIENT, static_cast(1131)); + EXPECT_EQ(eGameMessageType::MODULE_ASSEMBLY_QUERY_DATA, static_cast(1132)); + EXPECT_EQ(eGameMessageType::SHOW_BILLBOARD_INTERACT_ICON, static_cast(1337)); + EXPECT_EQ(eGameMessageType::CHANGE_IDLE_FLAGS, static_cast(1338)); + EXPECT_EQ(eGameMessageType::VEHICLE_ADD_PASSIVE_BOOST_ACTION, static_cast(1340)); + EXPECT_EQ(eGameMessageType::VEHICLE_REMOVE_PASSIVE_BOOST_ACTION, static_cast(1341)); + EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_ADD_PASSIVE_BOOST_ACTION, static_cast(1342)); + EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_REMOVE_PASSIVE_BOOST_ACTION, static_cast(1343)); + EXPECT_EQ(eGameMessageType::VEHICLE_ADD_SLOWDOWN_ACTION, static_cast(1344)); + EXPECT_EQ(eGameMessageType::VEHICLE_REMOVE_SLOWDOWN_ACTION, static_cast(1345)); + EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_ADD_SLOWDOWN_ACTION, static_cast(1346)); + EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_VEHICLE_REMOVE_SLOWDOWN_ACTION, static_cast(1347)); + EXPECT_EQ(eGameMessageType::BUYBACK_FROM_VENDOR, static_cast(1350)); + EXPECT_EQ(eGameMessageType::SET_PROPERTY_ACCESS, static_cast(1366)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_PLACED, static_cast(1369)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_ROTATED, static_cast(1370)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_REMOVED_WHILE_EQUIPPED, static_cast(1371)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_EQUIPPED, static_cast(1372)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_PICKED_UP, static_cast(1373)); + EXPECT_EQ(eGameMessageType::ZONE_PROPERTY_MODEL_REMOVED, static_cast(1374)); + EXPECT_EQ(eGameMessageType::NOTIFY_RACING_CLIENT, static_cast(1390)); + EXPECT_EQ(eGameMessageType::RACING_PLAYER_HACK_CAR, static_cast(1391)); + EXPECT_EQ(eGameMessageType::RACING_PLAYER_LOADED, static_cast(1392)); + EXPECT_EQ(eGameMessageType::RACING_CLIENT_READY, static_cast(1393)); + EXPECT_EQ(eGameMessageType::UPDATE_CHAT_MODE, static_cast(1395)); + EXPECT_EQ(eGameMessageType::VEHICLE_NOTIFY_FINISHED_RACE, static_cast(1396)); + EXPECT_EQ(eGameMessageType::SET_CONSUMABLE_ITEM, static_cast(1409)); + EXPECT_EQ(eGameMessageType::SET_STATUS_IMMUNITY, static_cast(1435)); + EXPECT_EQ(eGameMessageType::SET_PET_NAME_MODERATED, static_cast(1448)); + EXPECT_EQ(eGameMessageType::MODIFY_LEGO_SCORE, static_cast(1459)); + EXPECT_EQ(eGameMessageType::RESTORE_TO_POST_LOAD_STATS, static_cast(1468)); + EXPECT_EQ(eGameMessageType::SET_RAIL_MOVEMENT, static_cast(1471)); + EXPECT_EQ(eGameMessageType::START_RAIL_MOVEMENT, static_cast(1472)); + EXPECT_EQ(eGameMessageType::CANCEL_RAIL_MOVEMENT, static_cast(1474)); + EXPECT_EQ(eGameMessageType::CLIENT_RAIL_MOVEMENT_READY, static_cast(1476)); + EXPECT_EQ(eGameMessageType::PLAYER_RAIL_ARRIVED_NOTIFICATION, static_cast(1477)); + EXPECT_EQ(eGameMessageType::UPDATE_PLAYER_STATISTIC, static_cast(1481)); + EXPECT_EQ(eGameMessageType::MODULAR_ASSEMBLY_NIF_COMPLETED, static_cast(1498)); + EXPECT_EQ(eGameMessageType::NOTIFY_NOT_ENOUGH_INV_SPACE, static_cast(1516)); + EXPECT_EQ(eGameMessageType::TEAM_SET_LEADER, static_cast(1557)); + EXPECT_EQ(eGameMessageType::TEAM_INVITE_CONFIRM, static_cast(1558)); + EXPECT_EQ(eGameMessageType::TEAM_GET_STATUS_RESPONSE, static_cast(1559)); + EXPECT_EQ(eGameMessageType::TEAM_ADD_PLAYER, static_cast(1562)); + EXPECT_EQ(eGameMessageType::TEAM_REMOVE_PLAYER, static_cast(1563)); + EXPECT_EQ(eGameMessageType::START_CELEBRATION_EFFECT, static_cast(1618)); + EXPECT_EQ(eGameMessageType::ADD_BUFF, static_cast(1647)); + EXPECT_EQ(eGameMessageType::SERVER_DONE_LOADING_ALL_OBJECTS, static_cast(1642)); + EXPECT_EQ(eGameMessageType::PLACE_PROPERTY_MODEL, static_cast(1170)); + EXPECT_EQ(eGameMessageType::VEHICLE_NOTIFY_HIT_IMAGINATION_SERVER, static_cast(1606)); + EXPECT_EQ(eGameMessageType::ADD_RUN_SPEED_MODIFIER, static_cast(1505)); + EXPECT_EQ(eGameMessageType::GET_HOT_PROPERTY_DATA, static_cast(1511)); + EXPECT_EQ(eGameMessageType::SEND_HOT_PROPERTY_DATA, static_cast(1510)); + EXPECT_EQ(eGameMessageType::REMOVE_RUN_SPEED_MODIFIER, static_cast(1506)); + EXPECT_EQ(eGameMessageType::UPDATE_PROPERTY_PERFORMANCE_COST, static_cast(1547)); + EXPECT_EQ(eGameMessageType::PROPERTY_ENTRANCE_BEGIN, static_cast(1553)); + EXPECT_EQ(eGameMessageType::SET_RESURRECT_RESTORE_VALUES, static_cast(1591)); + EXPECT_EQ(eGameMessageType::VEHICLE_STOP_BOOST, static_cast(1617)); + EXPECT_EQ(eGameMessageType::REMOVE_BUFF, static_cast(1648)); + EXPECT_EQ(eGameMessageType::REQUEST_MOVE_ITEM_BETWEEN_INVENTORY_TYPES, static_cast(1666)); + EXPECT_EQ(eGameMessageType::RESPONSE_MOVE_ITEM_BETWEEN_INVENTORY_TYPES, static_cast(1667)); + EXPECT_EQ(eGameMessageType::PLAYER_SET_CAMERA_CYCLING_MODE, static_cast(1676)); + EXPECT_EQ(eGameMessageType::SET_MOUNT_INVENTORY_ID, static_cast(1727)); + EXPECT_EQ(eGameMessageType::NOTIFY_SERVER_LEVEL_PROCESSING_COMPLETE, static_cast(1734)); + EXPECT_EQ(eGameMessageType::NOTIFY_LEVEL_REWARDS, static_cast(1735)); + EXPECT_EQ(eGameMessageType::DISMOUNT_COMPLETE, static_cast(1756)); + EXPECT_EQ(eGameMessageType::MARK_INVENTORY_ITEM_AS_ACTIVE, static_cast(1767)); }