aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-06-30 00:16:41 +0200
committerShauren <shauren.trinity@gmail.com>2022-06-30 00:16:41 +0200
commitcfca26c2641f684533e07d9933ba1f31e5ef8204 (patch)
tree2de18d2a88b377689322d34e0f524d512dc7a7fa /src/server/game
parenta161b6cd328bbcf56950664f677fba716659f0d5 (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.cpp81
-rw-r--r--src/server/game/Instances/InstanceScript.cpp8
-rw-r--r--src/server/game/Instances/InstanceScript.h11
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