diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-06-30 00:16:41 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-06-30 00:16:41 +0200 |
commit | cfca26c2641f684533e07d9933ba1f31e5ef8204 (patch) | |
tree | 2de18d2a88b377689322d34e0f524d512dc7a7fa /src/server/game | |
parent | a161b6cd328bbcf56950664f677fba716659f0d5 (diff) |
Core/WorldStates: Migrate instance script worldstates to new system
Diffstat (limited to 'src/server/game')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 81 | ||||
-rw-r--r-- | src/server/game/Instances/InstanceScript.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Instances/InstanceScript.h | 11 |
3 files changed, 4 insertions, 96 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e4dc5573c5c..ad76fa5779e 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -9205,7 +9205,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId) uint32 mapId = GetMapId(); Battleground* battleground = GetBattleground(); OutdoorPvP* outdoorPvP = sOutdoorPvPMgr->GetOutdoorPvPToZoneId(zoneId); - InstanceScript* instance = GetInstanceScript(); TC_LOG_DEBUG("network", "Player::SendInitWorldStates: Sending SMSG_INIT_WORLD_STATES for Map: %u, Zone: %u", mapId, zoneId); @@ -9687,86 +9686,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId) packet.Worldstates.emplace_back(4345, 1); // unk } break; - case 4987: // The Ruby Sanctum - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(5049, 50); // WORLDSTATE_CORPOREALITY_MATERIAL - packet.Worldstates.emplace_back(5050, 50); // WORLDSTATE_CORPOREALITY_TWILIGHT - packet.Worldstates.emplace_back(5051, 0); // WORLDSTATE_CORPOREALITY_TOGGLE - } - break; - case 4812: // Icecrown Citadel - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(4903, 0); // WORLDSTATE_SHOW_TIMER (Blood Quickening weekly) - packet.Worldstates.emplace_back(4904, 30); // WORLDSTATE_EXECUTION_TIME - packet.Worldstates.emplace_back(4940, 0); // WORLDSTATE_SHOW_ATTEMPTS - packet.Worldstates.emplace_back(4941, 50); // WORLDSTATE_ATTEMPTS_REMAINING - packet.Worldstates.emplace_back(4942, 50); // WORLDSTATE_ATTEMPTS_MAX - } - break; - case 4100: // The Culling of Stratholme - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(3479, 0); // WORLDSTATE_SHOW_CRATES - packet.Worldstates.emplace_back(3480, 0); // WORLDSTATE_CRATES_REVEALED - packet.Worldstates.emplace_back(3504, 0); // WORLDSTATE_WAVE_COUNT - packet.Worldstates.emplace_back(3931, 25); // WORLDSTATE_TIME_GUARDIAN - packet.Worldstates.emplace_back(3932, 0); // WORLDSTATE_TIME_GUARDIAN_SHOW - } - break; - case 4228: // The Oculus - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(3524, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW - packet.Worldstates.emplace_back(3486, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT - } - break; - case 4273: // Ulduar - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(4132, 0); // WORLDSTATE_ALGALON_TIMER_ENABLED - packet.Worldstates.emplace_back(4131, 0); // WORLDSTATE_ALGALON_DESPAWN_TIMER - } - break; - case 4415: // Violet Hold - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(3816, 0); // WORLD_STATE_VH_SHOW - packet.Worldstates.emplace_back(3815, 100); // WORLD_STATE_VH_PRISON_STATE - packet.Worldstates.emplace_back(3810, 0); // WORLD_STATE_VH_WAVE_COUNT - } - break; - case 4820: // Halls of Refection - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(4884, 0); // WORLD_STATE_HOR_WAVES_ENABLED - packet.Worldstates.emplace_back(4882, 0); // WORLD_STATE_HOR_WAVE_COUNT - } - break; - case 3805: // Zul Aman - if (instance) - instance->FillInitialWorldStates(packet); - else - { - packet.Worldstates.emplace_back(3104, 0); // WORLD_STATE_ZULAMAN_TIMER_ENABLED - packet.Worldstates.emplace_back(3106, 0); // WORLD_STATE_ZULAMAN_TIMER - } - break; case 5031: // Twin Peaks if (battleground && battleground->GetTypeID(true) == BATTLEGROUND_TP) battleground->FillInitialWorldStates(packet); diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 215411c528a..67b73ffc33a 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -37,6 +37,7 @@ #include "SpellMgr.h" #include "World.h" #include "WorldSession.h" +#include "WorldStateMgr.h" #include <sstream> #include <cstdarg> @@ -608,12 +609,9 @@ void InstanceScript::DoRespawnGameObject(ObjectGuid guid, Seconds timeToDespawn TC_LOG_DEBUG("scripts", "InstanceScript: DoRespawnGameObject failed"); } -void InstanceScript::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData) +void InstanceScript::DoUpdateWorldState(int32 worldStateId, int32 value) { - instance->DoOnPlayers([uiStateId, uiStateData](Player const* player) - { - player->SendUpdateWorldState(uiStateId, uiStateData); - }); + sWorldStateMgr->SetValue(worldStateId, value, instance); } // Send Notify to all players in instance diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 353f363174c..e3076222d21 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -42,13 +42,6 @@ struct InstanceSpawnGroupInfo; enum class CriteriaType : uint8; enum class CriteriaStartEvent : uint8; enum EncounterCreditType : uint8; -namespace WorldPackets -{ - namespace WorldState - { - class InitWorldStates; - } -} enum EncounterFrameType { @@ -216,7 +209,7 @@ class TC_GAME_API InstanceScript : public ZoneScript void DoRespawnGameObject(ObjectGuid guid, Seconds timeToDespawn = 1min); // Sends world state update to all players in instance - void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue); + void DoUpdateWorldState(int32 worldStateId, int32 value); // Send Notify to all players in instance void DoSendNotifyToInstance(char const* format, ...); @@ -257,8 +250,6 @@ class TC_GAME_API InstanceScript : public ZoneScript // Returns completed encounters mask for packets uint32 GetCompletedEncounterMask() const { return completedEncounters; } - virtual void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*packet*/) { } - uint32 GetEncounterCount() const { return uint32(bosses.size()); } // Sets the entrance location (WorldSafeLoc) id |