aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2024-12-29 00:17:07 +0100
committerOvahlord <dreadkiller@gmx.de>2024-12-29 12:17:25 +0100
commit74f9ad8c2e3efa6b18ecb0f7df6a6e37a85d3c3f (patch)
tree2c4b208e5aebf6f37ef271ff6ee1e471238841a2 /src
parent1f81c961f24337abdc8de25bd23d9834d0c7392b (diff)
Core/AI: Remove default arguments for inter-script communication
(cherry picked from commit 6b96facee3389f79e579e8a325440051891fa27e)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/CoreAI/AreaTriggerAI.h6
-rw-r--r--src/server/game/AI/CoreAI/ConversationAI.h6
-rw-r--r--src/server/game/AI/CoreAI/GameObjectAI.h6
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.h10
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.cpp2
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h8
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp10
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp11
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp10
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp12
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp12
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp13
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp13
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp11
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp2
20 files changed, 112 insertions, 59 deletions
diff --git a/src/server/game/AI/CoreAI/AreaTriggerAI.h b/src/server/game/AI/CoreAI/AreaTriggerAI.h
index 55e8f188586..c1639291143 100644
--- a/src/server/game/AI/CoreAI/AreaTriggerAI.h
+++ b/src/server/game/AI/CoreAI/AreaTriggerAI.h
@@ -61,10 +61,10 @@ class TC_GAME_API AreaTriggerAI
// Pass parameters between AI
virtual void DoAction([[maybe_unused]] int32 param) { }
- virtual uint32 GetData([[maybe_unused]] uint32 id = 0) const { return 0; }
+ virtual uint32 GetData([[maybe_unused]] uint32 id) const { return 0; }
virtual void SetData([[maybe_unused]] uint32 id, [[maybe_unused]] uint32 value) { }
- virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id = 0) { }
- virtual ObjectGuid GetGUID([[maybe_unused]] int32 id = 0) const { return ObjectGuid::Empty; }
+ virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id) { }
+ virtual ObjectGuid GetGUID([[maybe_unused]] int32 id) const { return ObjectGuid::Empty; }
// Gets the id of the AI (script id)
uint32 GetId() const { return _scriptId; }
diff --git a/src/server/game/AI/CoreAI/ConversationAI.h b/src/server/game/AI/CoreAI/ConversationAI.h
index 25adc8bc68b..3a41d0f1b60 100644
--- a/src/server/game/AI/CoreAI/ConversationAI.h
+++ b/src/server/game/AI/CoreAI/ConversationAI.h
@@ -55,10 +55,10 @@ class TC_GAME_API ConversationAI
// Pass parameters between AI
virtual void DoAction([[maybe_unused]] int32 param) { }
- virtual uint32 GetData([[maybe_unused]] uint32 id = 0) const { return 0; }
+ virtual uint32 GetData([[maybe_unused]] uint32 id) const { return 0; }
virtual void SetData([[maybe_unused]] uint32 id, [[maybe_unused]] uint32 value) { }
- virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id = 0) { }
- virtual ObjectGuid GetGUID([[maybe_unused]] int32 id = 0) const { return ObjectGuid::Empty; }
+ virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id) { }
+ virtual ObjectGuid GetGUID([[maybe_unused]] int32 id) const { return ObjectGuid::Empty; }
// Gets the id of the AI (script id)
uint32 GetId() const { return _scriptId; }
diff --git a/src/server/game/AI/CoreAI/GameObjectAI.h b/src/server/game/AI/CoreAI/GameObjectAI.h
index b99a9e8180c..40e56887244 100644
--- a/src/server/game/AI/CoreAI/GameObjectAI.h
+++ b/src/server/game/AI/CoreAI/GameObjectAI.h
@@ -63,9 +63,9 @@ class TC_GAME_API GameObjectAI
virtual void Reset() { }
// Pass parameters between AI
- virtual void DoAction(int32 /*param = 0 */) { }
- virtual void SetGUID(ObjectGuid const& /*guid*/, int32 /*id = 0 */) { }
- virtual ObjectGuid GetGUID(int32 /*id = 0 */) const { return ObjectGuid::Empty; }
+ virtual void DoAction([[maybe_unused]] int32 param) { }
+ virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id) { }
+ virtual ObjectGuid GetGUID([[maybe_unused]] int32 id) const { return ObjectGuid::Empty; }
static int32 Permissible(GameObject const* go);
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h
index b5cda811617..6da9179b961 100644
--- a/src/server/game/AI/CoreAI/UnitAI.h
+++ b/src/server/game/AI/CoreAI/UnitAI.h
@@ -69,11 +69,11 @@ class TC_GAME_API UnitAI
virtual void OnCharmed(bool isNew);
// Pass parameters between AI
- virtual void DoAction(int32 /*param*/) { }
- virtual uint32 GetData(uint32 /*id = 0*/) const { return 0; }
- virtual void SetData(uint32 /*id*/, uint32 /*value*/) { }
- virtual void SetGUID(ObjectGuid const& /*guid*/, int32 /*id*/ = 0) { }
- virtual ObjectGuid GetGUID(int32 /*id*/ = 0) const { return ObjectGuid::Empty; }
+ virtual void DoAction([[maybe_unused]] int32 param) { }
+ virtual uint32 GetData([[maybe_unused]] uint32 id) const { return 0; }
+ virtual void SetData([[maybe_unused]] uint32 id, [[maybe_unused]] uint32 value) { }
+ virtual void SetGUID([[maybe_unused]] ObjectGuid const& guid, [[maybe_unused]] int32 id) { }
+ virtual ObjectGuid GetGUID([[maybe_unused]] int32 id) const { return ObjectGuid::Empty; }
// Select the best target (in <targetType> order) from the threat list that fulfill the following:
// - Not among the first <offset> entries in <targetType> order (or SelectTargetMethod::MaxThreat order,
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp
index d4aa01e1a54..cc992d12d13 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -950,7 +950,7 @@ PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec()
case SPEC_SHAMAN_ELEMENTAL:
if (Unit* victim = me->GetVictim())
{
- if (victim->GetAuraOfRankedSpell(SPELL_FLAME_SHOCK, GetGUID()))
+ if (victim->GetAuraOfRankedSpell(SPELL_FLAME_SHOCK, me->GetGUID()))
VerifyAndPushSpellCast(spells, SPELL_LAVA_BURST, TARGET_VICTIM, 5);
else
VerifyAndPushSpellCast(spells, SPELL_FLAME_SHOCK, TARGET_VICTIM, 3);
diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h
index 16a7790a645..02e9b73bb76 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.h
+++ b/src/server/game/AI/SmartScripts/SmartAI.h
@@ -174,20 +174,20 @@ class TC_GAME_API SmartAI : public CreatureAI
void OnCharmed(bool isNew) override;
// Used in scripts to share variables
- void DoAction(int32 param = 0) override;
+ void DoAction(int32 param) override;
// Used in scripts to share variables
- uint32 GetData(uint32 id = 0) const override;
+ uint32 GetData(uint32 id) const override;
// Used in scripts to share variables
void SetData(uint32 id, uint32 value) override { SetData(id, value, nullptr); }
void SetData(uint32 id, uint32 value, Unit* invoker);
// Used in scripts to share variables
- void SetGUID(ObjectGuid const& guid, int32 id = 0) override;
+ void SetGUID(ObjectGuid const& guid, int32 id) override;
// Used in scripts to share variables
- ObjectGuid GetGUID(int32 id = 0) const override;
+ ObjectGuid GetGUID(int32 id) const override;
// Makes the creature run/walk
void SetRun(bool run = true);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 9c2969e0704..ccd5dbe4b7d 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -73,6 +73,11 @@ enum UnworthyInitiatePhase
PHASE_ATTACKING,
};
+enum UnworthyInitiateData
+{
+ DATA_PRISONER_GUID = 0
+};
+
uint32 acherus_soul_prison[12] =
{
191577,
@@ -191,7 +196,7 @@ public:
{
if (Creature* anchor = me->FindNearestCreature(29521, 30))
{
- anchor->AI()->SetGUID(me->GetGUID());
+ anchor->AI()->SetGUID(me->GetGUID(), DATA_PRISONER_GUID);
anchor->CastSpell(me, SPELL_SOUL_PRISON_CHAIN, true);
anchorGUID = anchor->GetGUID();
}
@@ -312,8 +317,11 @@ public:
ObjectGuid prisonerGUID;
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_PRISONER_GUID)
+ return;
+
prisonerGUID = guid;
}
@@ -337,7 +345,7 @@ class go_acherus_soul_prison : public GameObjectScript
{
if (Creature* anchor = me->FindNearestCreature(29521, 15))
{
- ObjectGuid prisonerGUID = anchor->AI()->GetGUID();
+ ObjectGuid prisonerGUID = anchor->AI()->GetGUID(DATA_PRISONER_GUID);
if (!prisonerGUID.IsEmpty())
if (Creature* prisoner = ObjectAccessor::GetCreature(*player, prisonerGUID))
ENSURE_AI(npc_unworthy_initiate::npc_unworthy_initiateAI, prisoner->AI())->EventStart(anchor, player);
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index 108ce771e0b..9dce483983b 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -88,12 +88,13 @@ enum Action
ACTION_REVIVE = 1
};
-enum Misc
+enum MandokirMisc
{
POINT_START_REVIVE = 1,
DATA_OHGANOT_SO_FAST = 5762,
+ DATA_REVIVE_GUID = 0,
};
enum SummonGroups
@@ -198,7 +199,7 @@ struct boss_mandokir : public BossAI
{
if (Creature* chainedSpirit = ObjectAccessor::GetCreature(*me, (*itr)->GetGUID()))
{
- chainedSpirit->AI()->SetGUID(_reviveGUID);
+ chainedSpirit->AI()->SetGUID(_reviveGUID, DATA_REVIVE_GUID);
chainedSpirit->AI()->DoAction(ACTION_REVIVE);
_reviveGUID.Clear();
}
@@ -219,7 +220,7 @@ struct boss_mandokir : public BossAI
return 0;
}
- void SetGUID(ObjectGuid const& guid, int32 /*type = 0 */) override
+ void SetGUID(ObjectGuid const& guid, int32 /*type*/) override
{
_reviveGUID = guid;
}
@@ -343,7 +344,7 @@ struct npc_chained_spirit : public ScriptedAI
_revivePlayerGUID.Clear();
}
- void SetGUID(ObjectGuid const& guid, int32 /*type = 0 */) override
+ void SetGUID(ObjectGuid const& guid, int32 /*type*/) override
{
_revivePlayerGUID = guid;
}
@@ -383,7 +384,7 @@ struct npc_chained_spirit : public ScriptedAI
if (Creature* mandokir = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MANDOKIR)))
{
- mandokir->GetAI()->SetGUID(target->GetGUID());
+ mandokir->GetAI()->SetGUID(target->GetGUID(), DATA_REVIVE_GUID);
mandokir->GetAI()->DoAction(ACTION_START_REVIVE);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index c44c56bb0f1..2889c7e4e05 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -85,7 +85,8 @@ enum InnEventLines
enum InnEventMisc
{
DATA_REQUEST_FACING = 0,
- DATA_REACHED_WP = 1
+ DATA_REACHED_WP = 1,
+ DATA_INVOKING_PLAYER_GUID,
};
class npc_hearthsinger_forresten_cot : public CreatureScript
@@ -158,8 +159,11 @@ class npc_hearthsinger_forresten_cot : public CreatureScript
}
// Player has hit the Belfast stairs areatrigger, we are taking him over for a moment
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_INVOKING_PLAYER_GUID)
+ return;
+
if (_hadBelfast)
return;
_hadBelfast = true;
@@ -226,7 +230,7 @@ class at_stratholme_inn_stairs_cot : public AreaTriggerScript
if (instance->GetData(DATA_INSTANCE_PROGRESS) <= CRATES_IN_PROGRESS)
// Forrest's script will handle Belfast for this, since SmartAI lacks the features to do it (we can't pass a custom target)
if (Creature* forrest = player->FindNearestCreature(NPC_FORREST, 200.0f, true))
- forrest->AI()->SetGUID(player->GetGUID());
+ forrest->AI()->SetGUID(player->GetGUID(), DATA_INVOKING_PLAYER_GUID);
return true;
}
};
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
index fc9e400c7a0..b59e43a4075 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
@@ -218,7 +218,7 @@ struct boss_baleroc : public firelands_bossAI
firelands_bossAI::UpdateAI(diff);
}
- void SetGUID(ObjectGuid const& guid, int32 type = 0) override
+ void SetGUID(ObjectGuid const& guid, int32 type) override
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 5694682b7bd..637dc68e499 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -54,7 +54,9 @@ enum PrinceTaldaramMisc
{
DATA_EMBRACE_DMG = 20000,
H_DATA_EMBRACE_DMG = 40000,
- SUMMON_GROUP_CONTROLLERS = 1
+ SUMMON_GROUP_CONTROLLERS = 1,
+
+ DATA_FLAME_SPHERE_TARGET_GUID = 0,
};
enum PrinceTaldaramYells
@@ -123,7 +125,7 @@ struct boss_prince_taldaram : public BossAI
case NPC_FLAME_SPHERE_1:
case NPC_FLAME_SPHERE_2:
case NPC_FLAME_SPHERE_3:
- summon->AI()->SetGUID(_flameSphereTargetGUID);
+ summon->AI()->SetGUID(_flameSphereTargetGUID, DATA_FLAME_SPHERE_TARGET_GUID);
break;
case NPC_JEDOGA_CONTROLLER:
summon->CastSpell(me, SPELL_BEAM_VISUAL);
@@ -307,8 +309,11 @@ struct npc_prince_taldaram_flame_sphere : public ScriptedAI
_events.ScheduleEvent(EVENT_DESPAWN, 13s);
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_FLAME_SPHERE_TARGET_GUID)
+ return;
+
_flameSphereTargetGUID = guid;
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index 9a295622a7b..f0ee0c58f96 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -116,7 +116,8 @@ enum Data
{
DATA_CRUSHER_PACK_ID = 1,
DATA_HADRONOX_ENTERED_COMBAT,
- DATA_HADRONOX_WEBBED_DOORS
+ DATA_HADRONOX_WEBBED_DOORS,
+ DATA_ANUBAR_GUID,
};
enum Creatures
@@ -264,8 +265,11 @@ struct boss_hadronox : public BossAI
nerubian->DespawnOrUnsummon();
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_ANUBAR_GUID)
+ return;
+
_anubar.push_back(guid);
}
@@ -664,7 +668,7 @@ struct npc_hadronox_foeAI : public ScriptedAI
{
ScriptedAI::InitializeAI();
if (Creature* hadronox = _instance->GetCreature(DATA_HADRONOX))
- hadronox->AI()->SetGUID(me->GetGUID());
+ hadronox->AI()->SetGUID(me->GetGUID(), DATA_ANUBAR_GUID);
}
void MovementInform(uint32 type, uint32 id) override
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 0d9673d354b..be50f9066d4 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -179,7 +179,8 @@ enum Misc
DATA_MATERIAL_DAMAGE_TAKEN = 2,
DATA_STACKS_DISPELLED = 3,
DATA_FIGHT_PHASE = 4,
- DATA_SPAWNED_FLAMES = 5
+ DATA_SPAWNED_FLAMES = 5,
+ DATA_ROOT_GUID = 6,
};
enum OrbCarrierSeats
@@ -1110,7 +1111,7 @@ class npc_meteor_strike : public CreatureScript
{
Position pos = me->GetNearPosition(5.0f, frand(-static_cast<float>(M_PI / 6.0f), static_cast<float>(M_PI / 6.0f)));
if (Creature* flame = me->SummonCreature(NPC_METEOR_STRIKE_FLAME, pos, TEMPSUMMON_TIMED_DESPAWN, 25s))
- flame->AI()->SetGUID(me->GetGUID());
+ flame->AI()->SetGUID(me->GetGUID(), DATA_ROOT_GUID);
}
}
@@ -1139,8 +1140,11 @@ class npc_meteor_strike_flame : public CreatureScript
SetCombatMovement(false);
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_ROOT_GUID)
+ return;
+
_rootOwnerGuid = guid;
_events.ScheduleEvent(EVENT_SPAWN_METEOR_FLAME, Milliseconds(800));
}
@@ -1170,7 +1174,7 @@ class npc_meteor_strike_flame : public CreatureScript
Position pos = me->GetNearPosition(5.0f, frand(-static_cast<float>(M_PI / 6.0f), static_cast<float>(M_PI / 6.0f)));
if (Creature* flame = me->SummonCreature(NPC_METEOR_STRIKE_FLAME, pos, TEMPSUMMON_TIMED_DESPAWN, 25s))
- flame->AI()->SetGUID(_rootOwnerGuid);
+ flame->AI()->SetGUID(_rootOwnerGuid, DATA_ROOT_GUID);
}
void EnterEvadeMode(EvadeReason /*why*/) override { }
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index ccbed6d6e31..0ca2b57d1eb 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -170,7 +170,8 @@ enum Misc
SUMMON_PRINCES_GROUP = 1,
DATA_INTRO = 2,
DATA_INTRO_DONE = 3,
- DATA_PRINCE_EVADE = 4
+ DATA_PRINCE_EVADE = 4,
+ DATA_CHASE_TARGET_GUID = 5,
};
class StandUpEvent : public BasicEvent
@@ -698,7 +699,7 @@ struct boss_prince_taldaram_icc : public BloodPrincesBossAI
Talk(EMOTE_TALDARAM_FLAME, target);
if (target)
- summon->AI()->SetGUID(target->GetGUID());
+ summon->AI()->SetGUID(target->GetGUID(), DATA_CHASE_TARGET_GUID);
}
void UpdateAI(uint32 diff) override
@@ -930,8 +931,11 @@ struct npc_ball_of_flame : public ScriptedAI
}
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_CHASE_TARGET_GUID)
+ return;
+
_chaseGUID = guid;
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index b6948a05f50..b28d92a4175 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -166,6 +166,11 @@ enum Actions
ACTION_START_INTRO
};
+enum LadyDeathwhisperData
+{
+ DATA_VENGEFUL_SHADE_TARGET_GUID = 0
+};
+
#define NPC_DARNAVAN RAID_MODE<uint32>(NPC_DARNAVAN_10, NPC_DARNAVAN_25, NPC_DARNAVAN_10, NPC_DARNAVAN_25)
#define NPC_DARNAVAN_CREDIT RAID_MODE<uint32>(NPC_DARNAVAN_CREDIT_10, NPC_DARNAVAN_CREDIT_25, NPC_DARNAVAN_CREDIT_10, NPC_DARNAVAN_CREDIT_25)
#define QUEST_DEPROGRAMMING RAID_MODE<uint32>(QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25, QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25)
@@ -477,7 +482,7 @@ struct boss_lady_deathwhisper : public BossAI
case NPC_VENGEFUL_SHADE:
if (_nextVengefulShadeTargetGUID.empty())
break;
- summon->AI()->SetGUID(_nextVengefulShadeTargetGUID.front());
+ summon->AI()->SetGUID(_nextVengefulShadeTargetGUID.front(), DATA_VENGEFUL_SHADE_TARGET_GUID);
_nextVengefulShadeTargetGUID.pop_front();
break;
case NPC_CULT_ADHERENT:
@@ -782,8 +787,11 @@ struct npc_vengeful_shade : public ScriptedAI
});
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_VENGEFUL_SHADE_TARGET_GUID)
+ return;
+
_targetGUID = guid;
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index b7236028725..9de7dea9523 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -291,7 +291,7 @@ struct boss_lord_marrowgar : public BossAI
return &_coldflameLastPos;
}
- ObjectGuid GetGUID(int32 type /*= 0 */) const override
+ ObjectGuid GetGUID(int32 type) const override
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index a4cf8553ea9..a8eac473250 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -358,13 +358,11 @@ enum MiscData
SOUND_PAIN = 17360, // separate sound, not attached to any text
EQUIP_ASHBRINGER_GLOWING = 50442,
- EQUIP_BROKEN_FROSTMOURNE = 50840
-};
+ EQUIP_BROKEN_FROSTMOURNE = 50840,
-enum Misc
-{
DATA_PLAGUE_STACK = 70337,
DATA_VILE = 45814622,
+ DATA_GRABBED_PLAYER_GUID = 0,
GOSSIP_MENU_START_INTRO = 10993
};
@@ -1500,8 +1498,11 @@ struct npc_valkyr_shadowguard : public ScriptedAI
}
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_GRABBED_PLAYER_GUID)
+ return;
+
_grabbedPlayer = guid;
}
@@ -2304,7 +2305,7 @@ class spell_the_lich_king_valkyr_target_search : public SpellScript
_target = Trinity::Containers::SelectRandomContainerElement(targets);
targets.clear();
targets.push_back(_target);
- GetCaster()->GetAI()->SetGUID(_target->GetGUID());
+ GetCaster()->GetAI()->SetGUID(_target->GetGUID(), DATA_GRABBED_PLAYER_GUID);
}
void ReplaceTarget(std::list<WorldObject*>& targets)
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
index 7a2b208929b..9aa6f4d2636 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
@@ -69,6 +69,11 @@ enum Events
EVENT_SUMMON,
};
+enum MaexxnaData
+{
+ DATA_WEBWRAP_VICTIM_GUID = 0
+};
+
const float WEB_WRAP_MOVE_SPEED = 20.0f;
struct WebTargetSelector
@@ -143,7 +148,7 @@ struct boss_maexxna : public BossAI
target->RemoveAura(SPELL_WEB_SPRAY);
if (Creature* wrap = DoSummon(NPC_WEB_WRAP, WrapPositions[wrapPos], 70s, TEMPSUMMON_TIMED_DESPAWN))
{
- wrap->AI()->SetGUID(target->GetGUID()); // handles application of debuff
+ wrap->AI()->SetGUID(target->GetGUID(), DATA_WEBWRAP_VICTIM_GUID); // handles application of debuff
target->GetMotionMaster()->MoveJump(WrapPositions[wrapPos], WEB_WRAP_MOVE_SPEED, WEB_WRAP_MOVE_SPEED); // move after stun to avoid stun cancelling move
}
}
@@ -188,10 +193,14 @@ struct npc_webwrap : public NullCreatureAI
me->SetVisible(false);
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_WEBWRAP_VICTIM_GUID)
+ return;
+
if (!guid)
return;
+
victimGUID = guid;
if (Unit* victim = ObjectAccessor::GetUnit(*me, victimGUID))
{
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index 1bdff8f8adf..b4ac065ce14 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -1260,7 +1260,9 @@ enum BloodsporeRuination
NPC_BLOODMAGE_LAURITH = 25381,
SAY_BLOODMAGE_LAURITH = 0,
EVENT_TALK = 1,
- EVENT_RESET_ORIENTATION
+ EVENT_RESET_ORIENTATION,
+
+ DATA_FACING_PLAYER_GUID = 0
};
// 45997 - Bloodspore Ruination
@@ -1270,7 +1272,7 @@ class spell_q11719_bloodspore_ruination_45997 : public SpellScript
{
if (Unit* caster = GetCaster())
if (Creature* laurith = caster->FindNearestCreature(NPC_BLOODMAGE_LAURITH, 100.0f))
- laurith->AI()->SetGUID(caster->GetGUID());
+ laurith->AI()->SetGUID(caster->GetGUID(), DATA_FACING_PLAYER_GUID);
}
void Register() override
@@ -1289,8 +1291,11 @@ struct npc_bloodmage_laurith : public ScriptedAI
_playerGUID.Clear();
}
- void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
+ void SetGUID(ObjectGuid const& guid, int32 id) override
{
+ if (id != DATA_FACING_PLAYER_GUID)
+ return;
+
if (!_playerGUID.IsEmpty())
return;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 4db5d93b6e6..0c6aa3f1fb5 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -102,7 +102,7 @@ struct npc_inner_demon : public ScriptedAI
victimGUID = guid;
}
- ObjectGuid GetGUID(int32 id/* = 0 */) const override
+ ObjectGuid GetGUID(int32 id) const override
{
if (id == INNER_DEMON_VICTIM)
return victimGUID;