aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2019-03-04 16:33:08 +0100
committerccrs <ccrs@users.noreply.github.com>2019-03-04 16:33:08 +0100
commite69570dd7662848ae38628c4af71cce002dd1c3d (patch)
treedb5a867f01d34307437b288b9bfba8fbd5baa43b /src/server/scripts/Northrend
parente1aafddc2e90c01d0e2511518d7c23ac6baca935 (diff)
Core/Misc: use/implement/portfrommaster InitWorldState packet definition
WorldPackets::WorldState::InitWorldStates
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp14
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp18
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp16
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp13
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp13
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp15
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp11
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp23
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h38
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp14
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.h1
12 files changed, 109 insertions, 77 deletions
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index 72269798a8a..8f783a5073f 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -15,15 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "ruby_sanctum.h"
#include "AreaBoundary.h"
#include "CreatureAI.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
-#include "ruby_sanctum.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
Position const HalionControllerSpawnPos = { 3156.037f, 533.2656f, 72.97205f, 0.0f };
@@ -197,11 +197,11 @@ class instance_ruby_sanctum : public InstanceMapScript
return BaltharusSharedHealth;
}
- void FillInitialWorldStates(WorldPacket& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- data << uint32(WORLDSTATE_CORPOREALITY_MATERIAL) << uint32(50);
- data << uint32(WORLDSTATE_CORPOREALITY_TWILIGHT) << uint32(50);
- data << uint32(WORLDSTATE_CORPOREALITY_TOGGLE) << uint32(0);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
}
protected:
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index adaa87f184f..fbab443f327 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -15,15 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
#include "halls_of_reflection.h"
#include "InstanceScript.h"
#include "Map.h"
#include "Player.h"
#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Transport.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
Position const JainaSpawnPos = { 5236.659f, 1929.894f, 707.7781f, 0.8726646f }; // Jaina Spawn Position
Position const SylvanasSpawnPos = { 5236.667f, 1929.906f, 707.7781f, 0.8377581f }; // Sylvanas Spawn Position (sniffed)
@@ -290,10 +290,10 @@ class instance_halls_of_reflection : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPacket& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- data << uint32(WORLD_STATE_HOR_WAVES_ENABLED) << uint32(_introState == DONE && GetBossState(DATA_MARWYN) != DONE);
- data << uint32(WORLD_STATE_HOR_WAVE_COUNT) << uint32(_waveCount);
+ packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVES_ENABLED, (_introState == DONE && GetBossState(DATA_MARWYN) != DONE) ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
}
bool SetBossState(uint32 type, EncounterState state) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 024dd39f462..3f6f2f59f6e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -15,19 +15,19 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "icecrown_citadel.h"
#include "AreaBoundary.h"
#include "CreatureAI.h"
-#include "icecrown_citadel.h"
#include "InstanceScript.h"
#include "Map.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "PoolMgr.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Transport.h"
#include "TransportMgr.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
enum EventIds
{
@@ -166,13 +166,13 @@ class instance_icecrown_citadel : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPacket& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- data << uint32(WORLDSTATE_SHOW_TIMER) << uint32(BloodQuickeningState == IN_PROGRESS);
- data << uint32(WORLDSTATE_EXECUTION_TIME) << uint32(BloodQuickeningMinutes);
- data << uint32(WORLDSTATE_SHOW_ATTEMPTS) << uint32(instance->IsHeroic());
- data << uint32(WORLDSTATE_ATTEMPTS_REMAINING) << uint32(HeroicAttempts);
- data << uint32(WORLDSTATE_ATTEMPTS_MAX) << uint32(MaxHeroicAttempts);
+ packet.Worldstates.emplace_back(WORLDSTATE_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
+ packet.Worldstates.emplace_back(WORLDSTATE_SHOW_ATTEMPTS, instance->IsHeroic() ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
+ packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_MAX, MaxHeroicAttempts);
}
void OnPlayerEnter(Player* player) override
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index f2a32072a00..feb075aaf85 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -15,16 +15,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "oculus.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
-#include "oculus.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
DoorData const doorData[] =
{
@@ -145,17 +145,17 @@ class instance_oculus : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPacket& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
if (GetBossState(DATA_DRAKOS) == DONE && GetBossState(DATA_VAROS) != DONE)
{
- data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW) << uint32(1);
- data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT) << uint32(CentrifugueConstructCounter);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter);
}
else
{
- data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW) << uint32(0);
- data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT) << uint32(0);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 12820df6dbf..bc11a51c016 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -526,9 +526,18 @@ class spell_auriaya_sentinel_blast : public SpellScript
{
PrepareSpellScript(spell_auriaya_sentinel_blast);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if(PlayerOrPetCheck());
+ targets.remove_if([](WorldObject* object) -> bool
+ {
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
+ });
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 375dab28cf9..c32d16f5129 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -617,9 +617,18 @@ class spell_kologarn_stone_shout : public SpellScriptLoader
{
PrepareSpellScript(spell_kologarn_stone_shout_SpellScript);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if(PlayerOrPetCheck());
+ targets.remove_if([](WorldObject* object) -> bool
+ {
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
+ });
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index c69a542c873..cf200c689af 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -599,7 +599,7 @@ class boss_thorim : public CreatureScript
events.ScheduleEvent(EVENT_OUTRO_2, _hardMode ? 8000 : 11000);
events.ScheduleEvent(EVENT_OUTRO_3, _hardMode ? 19000 : 21000);
- me->m_Events.AddEvent(new KeeperDespawnEvent(me), me->m_Events.CalculateTime(35000));
+ me->m_Events.AddEvent(new UlduarKeeperDespawnEvent(me), me->m_Events.CalculateTime(35000));
}
void MovementInform(uint32 type, uint32 id) override
@@ -1730,9 +1730,18 @@ class spell_thorim_frostbolt_volley : public SpellScriptLoader
{
PrepareSpellScript(spell_thorim_frostbolt_volley_SpellScript);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if(PlayerOrPetCheck());
+ targets.remove_if([](WorldObject* object) -> bool
+ {
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
+ });
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index a51a3ce8cd2..d974bd2b7e0 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -853,7 +853,16 @@ class spell_xt002_tympanic_tantrum : public SpellScript
void FilterTargets(std::list<WorldObject*>& targets)
{
- targets.remove_if(PlayerOrPetCheck());
+ targets.remove_if([](WorldObject* object) -> bool
+ {
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
+ });
}
void RecalculateDamage()
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index efcecae2537..75e167cbf1d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -15,7 +15,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "ulduar.h"
#include "AreaBoundary.h"
#include "CreatureAI.h"
#include "GameObject.h"
@@ -23,12 +23,12 @@
#include "Item.h"
#include "Map.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
-#include "ulduar.h"
#include "Vehicle.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
static BossBoundaryData const boundaries =
{
@@ -142,6 +142,17 @@ ObjectData const objectData[] =
{ 0, 0 }
};
+UlduarKeeperDespawnEvent::UlduarKeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset) : _owner(owner), _despawnTimer(despawnTimerOffset)
+{
+}
+
+bool UlduarKeeperDespawnEvent::Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
+{
+ _owner->CastSpell(_owner, SPELL_TELEPORT_KEEPER_VISUAL);
+ _owner->DespawnOrUnsummon(1000 + _despawnTimer);
+ return true;
+}
+
class instance_ulduar : public InstanceMapScript
{
public:
@@ -215,10 +226,10 @@ class instance_ulduar : public InstanceMapScript
bool Unbroken;
bool IsDriveMeCrazyEligible;
- void FillInitialWorldStates(WorldPacket& packet) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet << uint32(WORLD_STATE_ALGALON_TIMER_ENABLED) << uint32(_algalonTimer && _algalonTimer <= 60);
- packet << uint32(WORLD_STATE_ALGALON_DESPAWN_TIMER) << uint32(std::min<uint32>(_algalonTimer, 60));
+ packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_TIMER_ENABLED, (_algalonTimer && _algalonTimer <= 60) ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_DESPAWN_TIMER, std::min<int32>(_algalonTimer, 60));
}
void OnPlayerEnter(Player* player) override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
index 2c75a2cc0cb..345bbfbcbed 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
@@ -19,6 +19,8 @@
#define DEF_ULDUAR_H
#include "CreatureAIImpl.h"
+#include "EventProcessor.h"
+#include "Position.h"
#define UlduarScriptName "instance_ulduar"
#define DataHeader "UU"
@@ -506,44 +508,26 @@ enum YoggSaronIllusions
STORMWIND_ILLUSION = 2,
};
-template <class AI, class T>
-inline AI* GetUlduarAI(T* obj)
-{
- return GetInstanceAI<AI, T>(obj, UlduarScriptName);
-}
-
-#define RegisterUlduarCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetUlduarAI)
+class Creature;
-class KeeperDespawnEvent : public BasicEvent
+class UlduarKeeperDespawnEvent : public BasicEvent
{
public:
- KeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset = 500) : _owner(owner), _despawnTimer(despawnTimerOffset) { }
+ UlduarKeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset = 500);
- bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
- {
- _owner->CastSpell(_owner, SPELL_TELEPORT_KEEPER_VISUAL);
- _owner->DespawnOrUnsummon(1000 + _despawnTimer);
- return true;
- }
+ bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override;
private:
Creature* _owner;
uint32 _despawnTimer;
};
-class PlayerOrPetCheck
+template <class AI, class T>
+inline AI* GetUlduarAI(T* obj)
{
- public:
- bool operator()(WorldObject* object) const
- {
- if (object->GetTypeId() == TYPEID_PLAYER)
- return false;
-
- if (Creature* creature = object->ToCreature())
- return !creature->IsPet();
+ return GetInstanceAI<AI, T>(obj, UlduarScriptName);
+}
- return true;
- }
-};
+#define RegisterUlduarCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetUlduarAI)
#endif
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index fde6f9585ef..e665752c054 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -15,16 +15,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "violet_hold.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
#include "Player.h"
#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "violet_hold.h"
-#include "WorldPacket.h"
+#include "WorldStatePackets.h"
/*
* TODO:
@@ -290,11 +290,11 @@ class instance_violet_hold : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPacket& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- data << uint32(WORLD_STATE_VH_SHOW) << uint32(EventState == IN_PROGRESS ? 1 : 0);
- data << uint32(WORLD_STATE_VH_PRISON_STATE) << uint32(DoorIntegrity);
- data << uint32(WORLD_STATE_VH_WAVE_COUNT) << uint32(WaveCount);
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_SHOW, EventState == IN_PROGRESS ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_PRISON_STATE, DoorIntegrity);
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_WAVE_COUNT, WaveCount);
}
bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.h b/src/server/scripts/Northrend/VioletHold/violet_hold.h
index 601ce93a49e..283c620afc1 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.h
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.h
@@ -19,6 +19,7 @@
#define VIOLET_HOLD_H_
#include "CreatureAIImpl.h"
+#include "Position.h"
#define VioletHoldScriptName "instance_violet_hold"
#define DataHeader "VH"