aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-08-23 14:33:28 +0200
committerShauren <shauren.trinity@gmail.com>2021-10-22 23:47:51 +0200
commite4e8c1c59c8b37216814526b4d2551f23934f465 (patch)
treea135fb3fc2adff0bded65f29d0e165b668a63c5c /src/server/scripts
parent6a91fe3fbe28e3bf36ab6107b9c6cbb842f65262 (diff)
Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
(cherry picked from commit 042f5515e4f3e52b0d2e23d9b9e147041849ce12)
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp6
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp4
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp10
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp11
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp21
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp7
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp8
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp4
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp17
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp4
30 files changed, 58 insertions, 84 deletions
diff --git a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
index 525879f6cc7..f4cdd4c4360 100644
--- a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
+++ b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
@@ -560,7 +560,7 @@ class spell_garothi_fel_bombardment_selector : public SpellScript
void HandleWarningEffect(SpellEffIndex /*effIndex*/)
{
Creature* caster = GetCaster() ? GetCaster()->ToCreature() : nullptr;
- if (!caster || !caster->IsAIEnabled)
+ if (!caster || !caster->IsAIEnabled())
return;
Unit* target = GetHitUnit();
@@ -693,7 +693,7 @@ class spell_garothi_decimation_selector : public SpellScript
{
caster->CastSpell(GetHitUnit(), SPELL_DECIMATION_WARNING, true);
if (Creature* decimator = caster->ToCreature())
- if (decimator->IsAIEnabled)
+ if (decimator->IsAIEnabled())
decimator->AI()->Talk(SAY_ANNOUNCE_DECIMATION, GetHitUnit());
}
}
@@ -843,7 +843,7 @@ class spell_garothi_cannon_chooser : public SpellScript
void HandleDummyEffect(SpellEffIndex /*effIndex*/)
{
Creature* caster = GetHitCreature();
- if (!caster || !caster->IsAIEnabled)
+ if (!caster || !caster->IsAIEnabled())
return;
InstanceScript* instance = caster->GetInstanceScript();
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 752fcc19386..f78442af163 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -1354,10 +1354,8 @@ public:
if (!player)
return false;
Creature* target = handler->getSelectedCreature();
- if (!target || !target->IsAIEnabled || !target->AI())
- {
+ if (!target || !target->IsAIEnabled())
return false;
- }
char* fill_str = args ? strtok((char*)args, " ") : nullptr;
char* duration_str = args ? strtok(nullptr, " ") : nullptr;
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 8d6ba06b49a..229f1ea9b64 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -1584,7 +1584,7 @@ public:
return false;
}
- if (!creatureTarget->IsAIEnabled)
+ if (!creatureTarget->IsAIEnabled())
{
handler->PSendSysMessage(LANG_CREATURE_NOT_AI_ENABLED);
handler->SetSentErrorMessage(true);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 95543c71159..b9fc7583725 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -396,7 +396,7 @@ class npc_eye_of_acherus : public CreatureScript
_events.ScheduleEvent(EVENT_MOVE_START, 7s);
}
- void OnCharmed(bool /*apply*/) override { }
+ void OnCharmed(bool /*isNew*/) override { }
void UpdateAI(uint32 diff) override
{
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index 8db37e7275a..3e473f74ad3 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -226,7 +226,7 @@ class instance_zulaman : public InstanceMapScript
case EVENT_START_ZULAMAN:
if (Creature* voljin = instance->GetCreature(VoljinGUID))
{
- if (voljin->IsAIEnabled)
+ if (voljin->IsAIEnabled())
voljin->AI()->DoAction(ACTION_START_ZULAMAN);
}
break;
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
index 2307954145d..ceda6ec369b 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp
@@ -326,7 +326,7 @@ class spell_baleroc_blades_of_baleroc : public SpellScript
void ChooseBlade(SpellEffIndex /*effIndex*/)
{
Creature* caster = GetCaster()->ToCreature();
- if (!caster || !caster->IsAIEnabled)
+ if (!caster || !caster->IsAIEnabled())
return;
switch (urand(1, 2))
@@ -364,13 +364,13 @@ class spell_baleroc_inferno_blade : public AuraScript
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->IsAIEnabled)
+ if (GetTarget()->IsAIEnabled())
GetTarget()->GetAI()->DoAction(ACTION_EQUIP_INFERNO_BLADE);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->IsAIEnabled)
+ if (GetTarget()->IsAIEnabled())
GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DEFAULT);
}
@@ -393,13 +393,13 @@ class spell_baleroc_decimation_blade : public AuraScript
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->IsAIEnabled)
+ if (GetTarget()->IsAIEnabled())
GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DECIMATION_BLADE);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- if (GetTarget()->IsAIEnabled)
+ if (GetTarget()->IsAIEnabled())
GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DEFAULT);
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index 8862eeb7eb4..11415bff291 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -1291,7 +1291,7 @@ public:
{
if (TempSummon* summon = me->ToTempSummon())
if (Unit* summoner = summon->GetSummoner())
- if (summoner->IsAIEnabled)
+ if (summoner->IsAIEnabled())
summoner->GetAI()->DoAction(ACTION_FLESH_TENTACLE_KILLED);
}
};
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index c15529ec5d4..1d24d0e25ac 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -1614,7 +1614,7 @@ class spell_halion_damage_aoe_summon : public SpellScriptLoader
Position pos = caster->GetPosition();
if (Creature* summon = caster->GetMap()->SummonCreature(entry, pos, properties, duration, caster, GetSpellInfo()->Id))
- if (summon->IsAIEnabled)
+ if (summon->IsAIEnabled())
summon->AI()->SetData(DATA_STACKS_DISPELLED, GetSpellValue()->EffectBasePoints[EFFECT_1]);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index b2658110776..fef166d403e 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -1079,7 +1079,7 @@ class spell_gormok_ride_player : public AuraScript
return;
if (Unit *caster = GetCaster())
- if (caster->IsAIEnabled)
+ if (caster->IsAIEnabled())
caster->GetAI()->SetGUID(target->GetGUID(), DATA_NEW_TARGET);
}
@@ -1300,7 +1300,7 @@ class spell_icehowl_trample : public SpellScript
void CheckTargets(std::list<WorldObject*>& targets)
{
Creature* caster = GetCaster()->ToCreature();
- if (!caster || !caster->IsAIEnabled)
+ if (!caster || !caster->IsAIEnabled())
return;
if (targets.empty())
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 73fe05ed0f3..0ab9547e3f2 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -449,10 +449,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
return;
Player* pTarget = GetTarget()->ToPlayer();
- oldAI = pTarget->AI();
- oldAIState = pTarget->IsAIEnabled;
GetTarget()->SetAI(new player_overlord_brandAI(pTarget, GetCasterGUID()));
- GetTarget()->IsAIEnabled = true;
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -460,10 +457,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
return;
- GetTarget()->IsAIEnabled = oldAIState;
- PlayerAI* thisAI = GetTarget()->ToPlayer()->AI();
- GetTarget()->SetAI(oldAI);
- delete thisAI;
+ GetTarget()->SetAI(nullptr);
}
void Register() override
@@ -471,9 +465,6 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
AfterEffectApply += AuraEffectApplyFn(spell_tyrannus_overlord_brand_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_tyrannus_overlord_brand_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
-
- PlayerAI* oldAI = nullptr;
- bool oldAIState = false;
};
AuraScript* GetAuraScript() const override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index 7609c5c6992..1efd753228c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -1786,7 +1786,7 @@ class npc_gunship_cannon : public CreatureScript
{
}
- void OnCharmed(bool /*apply*/) override { }
+ void OnCharmed(bool /*isNew*/) override { }
void PassengerBoarded(Unit* /*passenger*/, int8 /*seat*/, bool apply) override
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 0ec4ace8d67..b0daf19085c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -629,7 +629,7 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader
bool Load() override
{
- return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled;
+ return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled();
}
SpellCastResult CheckCast()
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 3de744e67aa..f74c3d0395f 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -2350,8 +2350,8 @@ class spell_the_lich_king_quake : public SpellScriptLoader
void HandleSendEvent(SpellEffIndex /*effIndex*/)
{
- if (GetCaster()->IsAIEnabled)
- GetCaster()->GetAI()->DoAction(ACTION_START_ATTACK);
+ if (UnitAI* AI = GetCaster()->GetAI())
+ AI->DoAction(ACTION_START_ATTACK);
}
void Register() override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index 35787628e51..e056c325bf9 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -1282,7 +1282,7 @@ class spell_dreamwalker_summon_suppresser : public SpellScriptLoader
void HandleSummon(Unit* caster)
{
- if (!caster || !caster->IsAIEnabled)
+ if (!caster || !caster->IsAIEnabled())
return;
std::list<Creature*> summoners;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
index 028bd2d4974..1cad6aa47f8 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
@@ -216,24 +216,11 @@ class npc_dk_understudy : public CreatureScript
DoMeleeAttackIfReady();
}
- void OnCharmed(bool apply) override
+ void OnCharmed(bool isNew) override
{
- ScriptedAI::OnCharmed(apply);
- if (apply)
- {
- if (!me->IsInCombat())
- JustEngagedWith(nullptr);
- me->StopMoving();
- me->SetReactState(REACT_PASSIVE);
- _charmer = me->GetCharmerGUID();
- }
- else
- {
- me->SetReactState(REACT_AGGRESSIVE);
- if (Unit* charmer = ObjectAccessor::GetUnit(*me, _charmer))
- AddThreat(charmer, 100000.0f);
- DoZoneInCombat();
- }
+ if (me->IsCharmed() && !me->IsEngaged())
+ JustEngagedWith(nullptr);
+ ScriptedAI::OnCharmed(isNew);
}
private:
InstanceScript* const _instance;
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 25416696d1f..43d96cea444 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -834,7 +834,7 @@ public:
{
Creature* casterDiskSummon = me->SummonCreature(NPC_HOVER_DISK_CASTER, RangeHoverDisksSpawnPositions[rangeDisks]);
- if (casterDiskSummon->IsAIEnabled)
+ if (casterDiskSummon->IsAIEnabled())
casterDiskSummon->AI()->DoAction(rangeDisks);
}
@@ -855,7 +855,7 @@ public:
{
Creature* casterDiskSummon = me->SummonCreature(NPC_HOVER_DISK_CASTER, RangeHoverDisksSpawnPositions[rangeDisks]);
- if (casterDiskSummon->IsAIEnabled)
+ if (casterDiskSummon->IsAIEnabled())
casterDiskSummon->AI()->DoAction(rangeDisks);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 706bf99204a..2e4a561dc56 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -1232,7 +1232,7 @@ class spell_algalon_big_bang : public SpellScriptLoader
private:
bool Load() override
{
- return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled;
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
void CountTargets(std::list<WorldObject*>& targets)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 6f6a52b763a..cd76f07a932 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -553,7 +553,7 @@ class spell_auriaya_agro_creator : public SpellScript
void HandleDummyEffect(SpellEffIndex /*effIndex*/)
{
Creature* caster = GetCaster()->ToCreature();
- if (!caster || !caster->IsAIEnabled || caster->HasReactState(REACT_PASSIVE))
+ if (!caster || !caster->IsAIEnabled() || caster->HasReactState(REACT_PASSIVE))
return;
if (Unit* target = caster->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, CatsTargetSelector(caster, 5.0f, 10.0f)))
@@ -583,7 +583,7 @@ class spell_auriaya_random_agro_periodic : public AuraScript
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
Creature* owner = GetUnitOwner()->ToCreature();
- if (!owner || !owner->IsAIEnabled || owner->HasReactState(REACT_PASSIVE))
+ if (!owner || !owner->IsAIEnabled() || owner->HasReactState(REACT_PASSIVE))
return;
bool farTarget = true;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index fe76f6c875d..20074dba079 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -496,8 +496,8 @@ class achievement_ignis_shattered : public AchievementCriteriaScript
bool OnCheck(Player* /*source*/, Unit* target) override
{
- if (target && target->IsAIEnabled)
- return target->GetAI()->GetData(DATA_SHATTERED) != 0;
+ if (UnitAI* ai = target ? target->GetAI() : nullptr)
+ return ai->GetData(DATA_SHATTERED) != 0;
return false;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index b78f7289f1e..b810c15411a 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -1709,7 +1709,7 @@ class achievement_iron_dwarf_medium_rare : public AchievementCriteriaScript
bool OnCheck(Player* /*player*/, Unit* target) override
{
- return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_IRON_DWARF_MEDIUM_RARE);
+ return target && target->GetAI() && target->GetAI()->GetData(DATA_IRON_DWARF_MEDIUM_RARE);
}
};
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index 6b4b3a1aa1f..73afc6f7e81 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -372,7 +372,7 @@ class achievement_on_the_rocks : public AchievementCriteriaScript
bool OnCheck(Player* /*source*/, Unit* target) override
{
- return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_ON_THE_ROCKS);
+ return target && target->GetAI() && target->GetAI()->GetData(DATA_ON_THE_ROCKS);
}
};
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 334436bb49f..638cc511472 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -606,7 +606,7 @@ class achievement_incredible_hulk : public AchievementCriteriaScript
bool OnCheck(Player* /*player*/, Unit* target) override
{
- return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_INCREDIBLE_HULK);
+ return target && target->GetAI() && target->GetAI()->GetData(DATA_INCREDIBLE_HULK);
}
};
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index 126d24da50c..1e20cbb4562 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -181,13 +181,12 @@ class spell_toravon_random_aggro : public SpellScript
void HandleScript(SpellEffIndex /*effIndex*/)
{
Creature* caster = GetCaster()->ToCreature();
- if (!caster->IsAIEnabled)
- return;
caster->GetThreatManager().ResetAllThreat();
- if (Unit* target = caster->AI()->SelectTarget(SELECT_TARGET_RANDOM, 1))
- caster->GetThreatManager().AddThreat(target, 1000000);
+ if (CreatureAI* ai = caster->AI())
+ if (Unit* target = ai->SelectTarget(SELECT_TARGET_RANDOM, 1))
+ caster->GetThreatManager().AddThreat(target, 1000000);
}
void Register() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index c79f707e650..9b72f64d13b 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -324,8 +324,8 @@ class spell_ichoron_drained : public SpellScriptLoader
GetTarget()->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
- if (GetTarget()->IsAIEnabled)
- GetTarget()->GetAI()->DoAction(ACTION_DRAINED);
+ if (UnitAI* ai = GetTarget()->GetAI())
+ ai->DoAction(ACTION_DRAINED);
}
void Register() override
@@ -398,8 +398,8 @@ class spell_ichoron_protective_bubble : public SpellScriptLoader
{
//if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
if (GetAura()->GetCharges() <= 1)
- if (GetTarget()->IsAIEnabled)
- GetTarget()->GetAI()->DoAction(ACTION_PROTECTIVE_BUBBLE_SHATTERED);
+ if (UnitAI* targetAI = GetTarget()->GetAI())
+ targetAI->DoAction(ACTION_PROTECTIVE_BUBBLE_SHATTERED);
}
void Register() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index 2a2737bd127..1f22d400708 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -103,7 +103,7 @@ class spell_moragg_ray : public SpellScriptLoader
{
PreventDefaultAction();
- if (!GetTarget()->IsAIEnabled)
+ if (!GetTarget()->GetAI())
return;
if (Unit* target = GetTarget()->GetAI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true))
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 8febf564b50..7e705934f96 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -1368,8 +1368,8 @@ class spell_violet_hold_portal_periodic : public SpellScriptLoader
void PeriodicTick(AuraEffect const* aurEff)
{
PreventDefaultAction();
- if (GetTarget()->IsAIEnabled)
- GetTarget()->GetAI()->SetData(DATA_PORTAL_PERIODIC_TICK, aurEff->GetTickNumber());
+ if (UnitAI* targetAI = GetTarget()->GetAI())
+ targetAI->SetData(DATA_PORTAL_PERIODIC_TICK, aurEff->GetTickNumber());
}
void Register() override
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index 958d068eb79..d64644bab46 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -365,7 +365,7 @@ public:
}
void JustDied(Unit* /*killer*/) override { }
- void OnCharmed(bool /*apply*/) override { }
+ void OnCharmed(bool /*isNew*/) override { }
void UpdateAI(uint32 diff) override
{
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
index 21bf50ee269..8bf5a4cc888 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
@@ -57,16 +57,15 @@ enum Events
class BlackheartCharmedPlayerAI : public SimpleCharmedPlayerAI
{
using SimpleCharmedPlayerAI::SimpleCharmedPlayerAI;
- void OnCharmed(bool apply) override
+ void OnCharmed(bool isNew) override
{
- SimpleCharmedPlayerAI::OnCharmed(apply);
- if (!me->GetMap()->IsDungeon())
- return;
- if (Creature* blackheart = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_BLACKHEART_THE_INCITER)))
- {
- blackheart->AI()->SetData(0, apply);
- blackheart->GetThreatManager().AddThreat(me, 0.0f);
- }
+ if (me->GetMap()->IsDungeon())
+ if (Creature* blackheart = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_BLACKHEART_THE_INCITER)))
+ {
+ blackheart->AI()->SetData(0, me->IsCharmed());
+ blackheart->GetThreatManager().AddThreat(me, 0.0f);
+ }
+ SimpleCharmedPlayerAI::OnCharmed(isNew);
}
};
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index c203bda137c..83436b4986e 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1536,7 +1536,7 @@ class spell_ethereal_pet_aura : public AuraScript
GetUnitOwner()->GetAllMinionsByEntry(minionList, NPC_ETHEREAL_SOUL_TRADER);
for (Creature* minion : minionList)
{
- if (minion->IsAIEnabled)
+ if (minion->IsAIEnabled())
{
minion->AI()->Talk(SAY_STEAL_ESSENCE);
minion->CastSpell(eventInfo.GetProcTarget(), SPELL_STEAL_ESSENCE_VISUAL);
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 991b7d275ec..d429eafd36b 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -54,8 +54,8 @@ class spell_generic_quest_update_entry_SpellScript : public SpellScript
if (!creatureTarget->IsPet() && creatureTarget->GetEntry() == _originalEntry)
{
creatureTarget->UpdateEntry(_newEntry);
- if (_shouldAttack && creatureTarget->IsAIEnabled)
- creatureTarget->AI()->AttackStart(GetCaster());
+ if (_shouldAttack)
+ creatureTarget->EngageWithTarget(GetCaster());
if (_despawnTime)
creatureTarget->DespawnOrUnsummon(_despawnTime);