From 88ff97c1f96381565c47f8ca1993bdc7fce19fd6 Mon Sep 17 00:00:00 2001 From: Teleqraph Date: Thu, 20 Jul 2023 19:09:27 +0200 Subject: Core/Units: Added helper functions to modify UNIT_FLAG_UNINTERACTIBLE (#29159) Co-authored-by: Shauren --- src/server/scripts/World/boss_emerald_dragons.cpp | 9 ++++++--- src/server/scripts/World/npcs_special.cpp | 10 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src/server/scripts/World') diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 8131f134dca..cdb4ee81eaa 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -95,7 +95,8 @@ struct emerald_dragonAI : public WorldBossAI void Reset() override { WorldBossAI::Reset(); - me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetUninteractible(false); me->SetReactState(REACT_AGGRESSIVE); DoCast(me, SPELL_MARK_OF_NATURE_AURA, true); events.ScheduleEvent(EVENT_TAIL_SWEEP, 4s); @@ -633,7 +634,8 @@ class boss_taerar : public CreatureScript _shades += count; DoCast(SPELL_SHADE); - me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetUninteractible(true); me->SetReactState(REACT_PASSIVE); ++_stage; @@ -670,7 +672,8 @@ class boss_taerar : public CreatureScript { _banished = false; - me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetUninteractible(false); me->RemoveAurasDueToSpell(SPELL_SHADE); me->SetReactState(REACT_AGGRESSIVE); } diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index ade17b58a2b..25d8237f808 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -637,7 +637,7 @@ public: void Reset() override { Initialize(); - me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUninteractible(false); } void BeginEvent(Player* player) @@ -662,7 +662,7 @@ public: } Event = true; - me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUninteractible(true); } void PatientDied(Position const* point) @@ -770,7 +770,7 @@ public: Initialize(); //no select - me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUninteractible(false); //no regen health me->SetUnitFlag(UNIT_FLAG_IN_COMBAT); @@ -811,7 +811,7 @@ public: ENSURE_AI(npc_doctor::npc_doctorAI, doctor->AI())->PatientSaved(me, player, Coord); //make uninteractible - me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUninteractible(true); //regen health me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT); @@ -848,7 +848,7 @@ public: if (me->IsAlive() && me->GetHealth() <= 6) { me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT); - me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUninteractible(true); me->setDeathState(JUST_DIED); me->SetUnitFlag3(UNIT_FLAG3_FAKE_DEAD); -- cgit v1.2.3