diff options
232 files changed, 1587 insertions, 1436 deletions
diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp index c11bdc4ed21..d2b5a61dcd7 100644 --- a/src/server/game/AI/CoreAI/PassiveAI.cpp +++ b/src/server/game/AI/CoreAI/PassiveAI.cpp @@ -36,7 +36,7 @@ NullCreatureAI::NullCreatureAI(Creature* creature) : CreatureAI(creature) int32 NullCreatureAI::Permissible(Creature const* creature) { - if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK)) + if (creature->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) return PERMIT_BASE_PROACTIVE + 50; if (creature->IsTrigger()) @@ -70,7 +70,7 @@ void PossessedAI::UpdateAI(uint32 /*diff*/) void PossessedAI::JustDied(Unit* /*u*/) { // We died while possessed, disable our loot - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); } void CritterAI::JustEngagedWith(Unit* /*who*/) diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp index ee73d4b2b7d..af4a9ed93a4 100644 --- a/src/server/game/AI/CoreAI/PetAI.cpp +++ b/src/server/game/AI/CoreAI/PetAI.cpp @@ -402,7 +402,7 @@ void PetAI::HandleReturnMovement() me->GetMotionMaster()->MoveFollow(me->GetCharmerOrOwner(), PET_FOLLOW_DIST, me->GetFollowAngle()); } } - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates that we're actively going after a target - we're returning, so remove it + me->RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates that we're actively going after a target - we're returning, so remove it } void PetAI::DoAttack(Unit* target, bool chase) @@ -412,7 +412,7 @@ void PetAI::DoAttack(Unit* target, bool chase) if (me->Attack(target, true)) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it + me->SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it // Play sound to let the player know the pet is attacking something it picked on its own if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack()) me->SendPetAIReaction(me->GetGUID()); diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index 73a67a0a981..c1e57fe9527 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -384,10 +384,10 @@ int32 CreatureAI::VisualizeBoundary(Seconds duration, Unit* owner, bool fill) co if (TempSummon* point = owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, Position(startPosition.GetPositionX() + front.first * BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + front.second * BOUNDARY_VISUALIZE_STEP_SIZE, spawnZ), TEMPSUMMON_TIMED_DESPAWN, duration)) { point->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE); - point->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + point->SetUnitFlag(UNIT_FLAG_STUNNED); point->SetImmuneToAll(true); if (!hasOutOfBoundsNeighbor) - point->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + point->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } } diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 0f1260bf1fc..4625876abb9 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -305,7 +305,7 @@ SpellInfo const* ScriptedAI::SelectSpell(Unit* target, uint32 school, uint32 mec return nullptr; // Silenced so we can't cast - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)) + if (me->HasUnitFlag(UNIT_FLAG_SILENCED)) return nullptr; // Using the extended script system we first create a list of viable spells @@ -471,13 +471,13 @@ void ScriptedAI::SetEquipmentSlots(bool loadDefault, int32 mainHand /*= EQUIP_NO } if (mainHand >= 0) - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(mainHand)); + me->SetVirtualItem(0, uint32(mainHand)); if (offHand >= 0) - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(offHand)); + me->SetVirtualItem(1, uint32(offHand)); if (ranged >= 0) - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, uint32(ranged)); + me->SetVirtualItem(2, uint32(ranged)); } void ScriptedAI::SetCombatMovement(bool allowMovement) diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp index 4ad42066d77..ca5d4c5484e 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp @@ -321,7 +321,7 @@ void EscortAI::Start(bool isActiveAttacker /* = true*/, bool run /* = false */, me->GetMotionMaster()->Clear(MOTION_PRIORITY_NORMAL); // disable npcflags - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); if (me->IsImmuneToNPC()) { _hasImmuneToNPCFlags = true; diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp index d945512a9bf..876e1f4b916 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp @@ -185,7 +185,7 @@ void FollowerAI::StartFollow(Player* player, uint32 factionForFollower, uint32 q me->GetMotionMaster()->Clear(MOTION_PRIORITY_NORMAL); me->PauseMovement(); - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); AddFollowState(STATE_FOLLOW_INPROGRESS); diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 751337ca3d1..c7dbdfe6653 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -68,8 +68,8 @@ void SmartAI::StartPath(bool run/* = false*/, uint32 pathId/* = 0*/, bool repeat if (invoker && invoker->GetTypeId() == TYPEID_PLAYER) { - _escortNPCFlags = me->GetUInt32Value(UNIT_NPC_FLAGS); - me->SetFlag(UNIT_NPC_FLAGS, 0); + _escortNPCFlags = me->GetNpcFlags(); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); } me->GetMotionMaster()->MovePath(_path, _repeatWaypointPath); @@ -193,7 +193,7 @@ void SmartAI::EndPath(bool fail) if (_escortNPCFlags) { - me->SetFlag(UNIT_NPC_FLAGS, _escortNPCFlags); + me->ReplaceAllNpcFlags((NPCFlags)_escortNPCFlags); _escortNPCFlags = 0; } diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index b9aa990a071..285e736317d 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -727,7 +727,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { if (IsUnit(target)) { - target->ToUnit()->SetUInt32Value(UNIT_NPC_EMOTESTATE, e.action.emote.emote); + target->ToUnit()->SetEmoteState(Emote(e.action.emote.emote)); TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_SET_EMOTE_STATE. Unit %s set emotestate to %u", target->GetGUID().ToString().c_str(), e.action.emote.emote); } @@ -1526,7 +1526,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u for (uint32 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i) if (!e.action.equip.mask || (e.action.equip.mask & (1 << i))) - npc->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, slot[i]); + npc->SetVirtualItem(i, slot[i]); } } break; @@ -1625,21 +1625,21 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->SetUInt32Value(UNIT_NPC_FLAGS, e.action.flag.flag); + target->ToUnit()->ReplaceAllNpcFlags(NPCFlags(e.action.flag.flag)); break; } case SMART_ACTION_ADD_NPC_FLAG: { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->SetFlag(UNIT_NPC_FLAGS, e.action.flag.flag); + target->ToUnit()->SetNpcFlag(NPCFlags(e.action.flag.flag)); break; } case SMART_ACTION_REMOVE_NPC_FLAG: { for (WorldObject* target : targets) if (IsCreature(target)) - target->ToUnit()->RemoveFlag(UNIT_NPC_FLAGS, e.action.flag.flag); + target->ToUnit()->RemoveNpcFlag(NPCFlags(e.action.flag.flag)); break; } case SMART_ACTION_CROSS_CAST: @@ -1768,15 +1768,51 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u case SMART_ACTION_SET_UNIT_FIELD_BYTES_1: { for (WorldObject* target : targets) + { if (IsUnit(target)) - target->ToUnit()->SetByteFlag(UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1); + { + switch (e.action.setunitByte.type) + { + case 0: + target->ToUnit()->SetStandState(UnitStandStateType(e.action.setunitByte.byte1)); + break; + case 1: + // pet talent points + break; + case 2: + target->ToUnit()->SetVisFlag(UnitVisFlags(e.action.setunitByte.byte1)); + break; + case 3: + target->ToUnit()->SetAnimTier(AnimTier(e.action.setunitByte.byte1)); + break; + } + } + } break; } case SMART_ACTION_REMOVE_UNIT_FIELD_BYTES_1: { for (WorldObject* target : targets) + { if (IsUnit(target)) - target->ToUnit()->RemoveByteFlag(UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1); + { + switch (e.action.setunitByte.type) + { + case 0: + target->ToUnit()->SetStandState(UNIT_STAND_STATE_STAND); + break; + case 1: + // pet talent points + break; + case 2: + target->ToUnit()->RemoveVisFlag(UnitVisFlags(e.action.setunitByte.byte1)); + break; + case 3: + target->ToUnit()->SetAnimTier(AnimTier::Ground); + break; + } + } + } break; } case SMART_ACTION_INTERRUPT_SPELL: @@ -2234,9 +2270,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsUnit(target)) { if (e.action.setImmunePC.immunePC) - target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); else - target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); } } break; @@ -2248,9 +2284,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsUnit(target)) { if (e.action.setImmuneNPC.immuneNPC) - target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); else - target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); } } break; @@ -2262,9 +2298,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsUnit(target)) { if (e.action.setUninteractible.uninteractible) - target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->ToUnit()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); else - target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } } break; @@ -2767,7 +2803,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui { if (!me || !me->IsEngaged() || !me->GetMaxPower(POWER_MANA)) return; - uint32 perc = uint32(100.0f * me->GetPower(POWER_MANA) / me->GetMaxPower(POWER_MANA)); + uint32 perc = uint32(me->GetPowerPct(POWER_MANA)); if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min) return; ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax); diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index cbe8a6aa313..99fedbaa4f7 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -478,7 +478,7 @@ void Battlefield::HideNpc(Creature* creature) { creature->CombatStop(); creature->SetReactState(REACT_PASSIVE); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); creature->SetPhaseMask(2, true); creature->DisappearAndDie(); creature->SetVisible(false); @@ -488,14 +488,14 @@ void Battlefield::ShowNpc(Creature* creature, bool aggressive) { creature->SetPhaseMask(1, true); creature->SetVisible(true); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); if (!creature->IsAlive()) creature->Respawn(true); if (aggressive) creature->SetReactState(REACT_AGGRESSIVE); else { - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->SetReactState(REACT_PASSIVE); } } diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 9594fc82ab3..234148b02fb 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1568,9 +1568,9 @@ bool Battleground::AddSpiritGuide(uint32 type, float x, float y, float z, float /// @todo Fix display here // creature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL); // casting visual effect - creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL); + creature->SetChannelSpellId(SPELL_SPIRIT_HEAL_CHANNEL); // correct cast speed - creature->SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); + creature->SetModCastingSpeed(1.0f); //creature->CastSpell(creature, SPELL_SPIRIT_HEAL_CHANNEL, true); return true; } @@ -1692,7 +1692,7 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer) if (!isArena()) { // To be able to remove insignia -- ONLY IN Battlegrounds - victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + victim->SetUnitFlag(UNIT_FLAG_SKINNABLE); RewardXPAtKill(killer, victim); } } diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp index 0e07f0e1b39..daca43f5b57 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp @@ -143,9 +143,9 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff) { if (siege->IsAlive()) { - if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_CANNOT_SWIM|UNIT_FLAG_IMMUNE_TO_PC)) + if (siege->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANNOT_SWIM | UNIT_FLAG_IMMUNE_TO_PC)) // following sniffs the vehicle always has UNIT_FLAG_CANNOT_SWIM - siege->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_IMMUNE_TO_PC); + siege->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_IMMUNE_TO_PC); else siege->SetHealth(siege->GetMaxHealth()); } @@ -582,7 +582,7 @@ void BattlegroundIC::HandleContestedNodes(ICNodePoint* node) for (Creature* cannon : cannons) { cannon->GetVehicleKit()->RemoveAllPassengers(); - cannon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + cannon->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } } else if (node->nodeType == NODE_TYPE_WORKSHOP) @@ -614,7 +614,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture) gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f); for (Creature* cannon : cannons) - cannon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + cannon->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u) { @@ -769,7 +769,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture) if (Creature* siegeEngine = GetBGCreature(siegeType)) { - siegeEngine->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_CANNOT_SWIM); + siegeEngine->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANNOT_SWIM); siegeEngine->SetImmuneToPC(true); siegeEngine->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); } diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp index 4484824002b..b3a1c1d0b4d 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp @@ -682,9 +682,9 @@ void BattlegroundSA::DemolisherStartState(bool start) if (Creature* dem = GetBGCreature(i)) { if (start) - dem->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + dem->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); else - dem->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + dem->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); } } } diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp index f35feb7cf92..b5b8b24e068 100644 --- a/src/server/game/Combat/CombatManager.cpp +++ b/src/server/game/Combat/CombatManager.cpp @@ -229,8 +229,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who) if (!IsInCombatWith(ref.first)) { Unit* target = ref.second->GetOther(who); - if ((_owner->IsImmuneToPC() && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) || - (_owner->IsImmuneToNPC() && !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))) + if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) || + (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) continue; SetInCombatWith(target); } @@ -238,8 +238,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who) for (auto& ref : mgr._pvpRefs) { Unit* target = ref.second->GetOther(who); - if ((_owner->IsImmuneToPC() && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) || - (_owner->IsImmuneToNPC() && !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))) + if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) || + (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) continue; SetInCombatWith(target); } @@ -368,14 +368,14 @@ bool CombatManager::UpdateOwnerCombatState() const if (combatState) { - _owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + _owner->SetUnitFlag(UNIT_FLAG_IN_COMBAT); _owner->AtEnterCombat(); if (_owner->GetTypeId() != TYPEID_UNIT) _owner->AtEngage(GetAnyTarget()); } else { - _owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + _owner->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT); _owner->AtExitCombat(); if (_owner->GetTypeId() != TYPEID_UNIT) _owner->AtDisengage(); diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index a40810582f1..d1eaa230139 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -85,14 +85,14 @@ void ThreatReference::UpdateOffline() { if (a->GetTypeId() == TYPEID_UNIT && a->ToCreature()->IsTrigger()) return false; - if (a->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (a->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { - if (b->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC)) + if (b->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC)) return false; } else { - if (b->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC)) + if (b->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC)) return false; } return true; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 3660518b1e8..0fa99cfe2cc 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -508,7 +508,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/) SetName(normalInfo->Name); // at normal entry always - SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); + SetModCastingSpeed(1.0f); SetSpeedRate(MOVE_WALK, cinfo->speed_walk); SetSpeedRate(MOVE_RUN, cinfo->speed_run); @@ -518,7 +518,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/) // Will set UNIT_FIELD_BOUNDINGRADIUS and UNIT_FIELD_COMBATREACH SetObjectScale(GetNativeObjectScale()); - SetFloatValue(UNIT_FIELD_HOVERHEIGHT, cinfo->HoverHeight); + SetHoverHeight(cinfo->HoverHeight); SetCanDualWield(cinfo->flags_extra & CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK); @@ -548,23 +548,23 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/, SetFaction(cInfo->faction); - uint32 npcflag, unit_flags, dynamicflags; - ObjectMgr::ChooseCreatureFlags(cInfo, &npcflag, &unit_flags, &dynamicflags, data); + uint32 npcFlags, unitFlags, dynamicFlags; + ObjectMgr::ChooseCreatureFlags(cInfo, &npcFlags, &unitFlags, &dynamicFlags, data); if (cInfo->flags_extra & CREATURE_FLAG_EXTRA_WORLDEVENT) - SetUInt32Value(UNIT_NPC_FLAGS, npcflag | sGameEventMgr->GetNPCFlag(this)); - else - SetUInt32Value(UNIT_NPC_FLAGS, npcflag); + npcFlags |= sGameEventMgr->GetNPCFlag(this); + + ReplaceAllNpcFlags(NPCFlags(npcFlags)); // if unit is in combat, keep this flag - unit_flags &= ~UNIT_FLAG_IN_COMBAT; + unitFlags &= ~UNIT_FLAG_IN_COMBAT; if (IsInCombat()) - unit_flags |= UNIT_FLAG_IN_COMBAT; + unitFlags |= UNIT_FLAG_IN_COMBAT; - SetUInt32Value(UNIT_FIELD_FLAGS, unit_flags); - SetUInt32Value(UNIT_FIELD_FLAGS_2, cInfo->unit_flags2); + ReplaceAllUnitFlags(UnitFlags(unitFlags)); + ReplaceAllUnitFlags2(UnitFlags2(cInfo->unit_flags2)); - SetUInt32Value(UNIT_DYNAMIC_FLAGS, dynamicflags); + ReplaceAllDynamicFlags(dynamicFlags); SetCanDualWield(cInfo->flags_extra & CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK); @@ -611,7 +611,7 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/, // trigger creature is always uninteractible and can not be attacked if (IsTrigger()) - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); InitializeReactState(); @@ -870,7 +870,7 @@ void Creature::Regenerate(Powers power) uint32 curValue = GetPower(power); uint32 maxValue = GetMaxPower(power); - if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER)) + if (!HasUnitFlag2(UNIT_FLAG2_REGENERATE_POWER)) return; if (curValue >= maxValue) @@ -1259,7 +1259,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup) { m_lootRecipient.Clear(); m_lootRecipientGroup = 0; - RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE|UNIT_DYNFLAG_TAPPED); + RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE|UNIT_DYNFLAG_TAPPED); return; } @@ -1279,7 +1279,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup) else m_lootRecipientGroup = ObjectGuid::Empty; - SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED); + SetDynamicFlag(UNIT_DYNFLAG_TAPPED); } // return true if this creature is tapped by the player or by a member of his group. @@ -1319,9 +1319,9 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask) CreatureData& data = sObjectMgr->NewOrExistCreatureData(m_spawnId); uint32 displayId = GetNativeDisplayId(); - uint32 npcflag = GetUInt32Value(UNIT_NPC_FLAGS); - uint32 unit_flags = GetUInt32Value(UNIT_FIELD_FLAGS); - uint32 dynamicflags = GetUInt32Value(UNIT_DYNAMIC_FLAGS); + uint32 npcflag = GetNpcFlags(); + uint32 unit_flags = GetUnitFlags(); + uint32 dynamicflags = GetDynamicFlags(); // check if it's a custom model and if not, use 0 for displayId CreatureTemplate const* cinfo = GetCreatureTemplate(); @@ -1702,7 +1702,7 @@ void Creature::LoadEquipment(int8 id, bool force /*= true*/) if (force) { for (uint8 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i) - SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, 0); + SetVirtualItem(i, 0); m_equipmentId = 0; } @@ -1715,7 +1715,7 @@ void Creature::LoadEquipment(int8 id, bool force /*= true*/) m_equipmentId = id; for (uint8 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i) - SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, einfo->ItemEntry[i]); + SetVirtualItem(i, einfo->ItemEntry[i]); } void Creature::SetSpawnHealth() @@ -1860,8 +1860,8 @@ bool Creature::CanStartAttack(Unit const* who, bool force) const return false; // This set of checks is should be done only for creatures - if ((IsImmuneToNPC() && !who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) - || (IsImmuneToPC() && who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))) + if ((IsImmuneToNPC() && !who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + || (IsImmuneToPC() && who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) return false; // Do not attack non-combat pets @@ -1923,7 +1923,7 @@ float Creature::GetAttackDistance(Unit const* player) const // The aggro radius for creatures with equal level as the player is 20 yards. // The combatreach should not get taken into account for the distance so we drop it from the range (see Supremus as expample) - float baseAggroDistance = 20.0f - GetFloatValue(UNIT_FIELD_COMBATREACH); + float baseAggroDistance = 20.0f - GetCombatReach(); // + - 1 yard for each level difference between player and creature float aggroRadius = baseAggroDistance + float(levelDifference); @@ -1984,9 +1984,9 @@ void Creature::setDeathState(DeathState s) DoNotReacquireSpellFocusTarget(); // cancel delayed re-target SetTarget(ObjectGuid::Empty); // drop target - dead mobs shouldn't ever target things - SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); - SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); // if creature is mounted on a virtual mount, remove it at death + SetMountDisplayId(0); // if creature is mounted on a virtual mount, remove it at death setActive(false); @@ -2028,9 +2028,9 @@ void Creature::setDeathState(DeathState s) uint32 npcflag, unit_flags, dynamicflags; ObjectMgr::ChooseCreatureFlags(cinfo, &npcflag, &unit_flags, &dynamicflags, creatureData); - SetUInt32Value(UNIT_NPC_FLAGS, npcflag); - SetUInt32Value(UNIT_FIELD_FLAGS, unit_flags); - SetUInt32Value(UNIT_DYNAMIC_FLAGS, dynamicflags); + ReplaceAllNpcFlags(NPCFlags(npcflag)); + ReplaceAllUnitFlags(UnitFlags(unit_flags)); + ReplaceAllDynamicFlags(dynamicflags); SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool)); @@ -2364,7 +2364,7 @@ bool Creature::CanAssistTo(Unit const* u, Unit const* enemy, bool checkfaction / if (IsCivilian()) return false; - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE) || IsImmuneToNPC()) + if (HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE) || IsImmuneToNPC()) return false; // skip fighting creature @@ -2409,7 +2409,7 @@ bool Creature::_IsTargetAcceptable(Unit const* target) const if (target->HasUnitState(UNIT_STATE_DIED)) { // some creatures can detect fake death - if (CanIgnoreFeignDeath() && target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH)) + if (CanIgnoreFeignDeath() && target->HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH)) return true; else return false; @@ -2523,12 +2523,9 @@ bool Creature::LoadCreaturesAddon() // 2 StandFlags // 3 StandMiscFlags - SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, uint8(cainfo->bytes1 & 0xFF)); - //SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_PET_TALENTS, uint8((cainfo->bytes1 >> 8) & 0xFF)); - SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_PET_TALENTS, 0); - SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, uint8((cainfo->bytes1 >> 16) & 0xFF)); - - SetAnimTier(static_cast<AnimTier>((cainfo->bytes1 >> 24) & 0xFF)); + SetStandState(UnitStandStateType(cainfo->bytes1 & 0xFF)); + ReplaceAllVisFlags(UnitVisFlags((cainfo->bytes1 >> 16) & 0xFF)); + SetAnimTier(AnimTier((cainfo->bytes1 >> 24) & 0xFF)); //! Suspected correlation between UNIT_FIELD_BYTES_1, offset 3, value 0x2: //! If no inhabittype_fly (if no MovementFlag_DisableGravity or MovementFlag_CanFly flag found in sniffs) @@ -2546,16 +2543,14 @@ bool Creature::LoadCreaturesAddon() // 2 PetFlags Pet only, so always 0 for default creature // 3 ShapeshiftForm Must be determined/set by shapeshift spell/aura - SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE, uint8(cainfo->bytes2 & 0xFF)); - //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, uint8((cainfo->bytes2 >> 8) & 0xFF)); - //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, uint8((cainfo->bytes2 >> 16) & 0xFF)); - SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, 0); - //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHAPESHIFT_FORM, uint8((cainfo->bytes2 >> 24) & 0xFF)); - SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHAPESHIFT_FORM, 0); + SetSheath(SheathState(cainfo->bytes2 & 0xFF)); + ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_NONE); + ReplaceAllPetFlags(UNIT_PET_FLAG_NONE); + SetShapeshiftForm(FORM_NONE); } if (cainfo->emote != 0) - SetUInt32Value(UNIT_NPC_EMOTESTATE, cainfo->emote); + SetEmoteState(Emote(cainfo->emote)); // Check if visibility distance different if (cainfo->visibilityDistanceType != VisibilityDistanceType::Normal) @@ -2722,19 +2717,19 @@ bool Creature::CanEnterWater() const void Creature::RefreshCanSwimFlag(bool recheck) { if (!_isMissingCanSwimFlagOutOfCombat || recheck) - _isMissingCanSwimFlagOutOfCombat = !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM); + _isMissingCanSwimFlagOutOfCombat = !HasUnitFlag(UNIT_FLAG_CAN_SWIM); // Check if the creature has UNIT_FLAG_CAN_SWIM and add it if it's missing // Creatures must be able to chase a target in water if they can enter water if (_isMissingCanSwimFlagOutOfCombat && CanEnterWater()) - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM); + SetUnitFlag(UNIT_FLAG_CAN_SWIM); } void Creature::AllLootRemovedFromCorpse() { if (loot.loot_type != LOOT_SKINNING && !IsPet() && GetCreatureTemplate()->SkinLootId && hasLootRecipient()) if (LootTemplates_Skinning.HaveLootFor(GetCreatureTemplate()->SkinLootId)) - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + SetUnitFlag(UNIT_FLAG_SKINNABLE); time_t now = GameTime::GetGameTime(); // Do not reset corpse remove time if corpse is already removed @@ -3109,8 +3104,8 @@ void Creature::SetObjectScale(float scale) if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(GetDisplayId())) { - SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, (IsPet() ? 1.0f : minfo->bounding_radius) * scale); - SetFloatValue(UNIT_FIELD_COMBATREACH, (IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * scale); + SetBoundingRadius((IsPet() ? 1.0f : minfo->bounding_radius) * scale); + SetCombatReach((IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * scale); } } @@ -3120,8 +3115,8 @@ void Creature::SetDisplayId(uint32 modelId) if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId)) { - SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, (IsPet() ? 1.0f : minfo->bounding_radius) * GetObjectScale()); - SetFloatValue(UNIT_FIELD_COMBATREACH, (IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * GetObjectScale()); + SetBoundingRadius((IsPet() ? 1.0f : minfo->bounding_radius) * GetObjectScale()); + SetCombatReach((IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * GetObjectScale()); } } @@ -3140,11 +3135,11 @@ void Creature::SetSpellFocus(Spell const* focusSpell, WorldObject const* target) return; // Prevent dead / feign death creatures from setting a focus target - if (!IsAlive() || HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH) || HasAuraType(SPELL_AURA_FEIGN_DEATH)) + if (!IsAlive() || HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH) || HasAuraType(SPELL_AURA_FEIGN_DEATH)) return; // Don't allow stunned creatures to set a focus target - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED)) + if (HasUnitFlag(UNIT_FLAG_STUNNED)) return; // some spells shouldn't track targets @@ -3173,7 +3168,7 @@ void Creature::SetSpellFocus(Spell const* focusSpell, WorldObject const* target) _spellFocusInfo.Spell = focusSpell; bool const noTurnDuringCast = spellInfo->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST); - bool const turnDisabled = HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN); + bool const turnDisabled = HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN); // set target, then force send update packet to players if it changed to provide appropriate facing ObjectGuid newTarget = (target && !noTurnDuringCast && !turnDisabled) ? target->GetGUID() : ObjectGuid::Empty; if (GetGuidValue(UNIT_FIELD_TARGET) != newTarget) @@ -3219,7 +3214,7 @@ void Creature::ReleaseSpellFocus(Spell const* focusSpell, bool withDelay) if (IsPet()) // player pets do not use delay system { - if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN)) + if (!HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN)) ReacquireSpellFocusTarget(); } else // don't allow re-target right away to prevent visual bugs @@ -3238,7 +3233,7 @@ void Creature::ReacquireSpellFocusTarget() SetGuidValue(UNIT_FIELD_TARGET, _spellFocusInfo.Target); - if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN)) + if (!HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN)) { if (_spellFocusInfo.Target) { @@ -3371,8 +3366,8 @@ void Creature::AtDisengage() Unit::AtDisengage(); ClearUnitState(UNIT_STATE_ATTACK_PLAYER); - if (IsAlive() && HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED)) - SetUInt32Value(UNIT_DYNAMIC_FLAGS, GetCreatureTemplate()->dynamicflags); + if (IsAlive() && HasDynamicFlag(UNIT_DYNFLAG_TAPPED)) + ReplaceAllDynamicFlags(GetCreatureTemplate()->dynamicflags); if (IsPet() || IsGuardian()) // update pets' speed for catchup OOC speed { diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index c955e5d102b..a207088ec5b 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1567,7 +1567,7 @@ void GameObject::Use(Unit* user) if (Player* playerUser = user->ToPlayer()) { - if (m_goInfo->CannotBeUsedUnderImmunity() && playerUser->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE)) + if (m_goInfo->CannotBeUsedUnderImmunity() && playerUser->HasUnitFlag(UNIT_FLAG_IMMUNE)) return; if (!m_goInfo->IsUsableMounted()) @@ -1694,7 +1694,7 @@ void GameObject::Use(Unit* user) { itr->second = player->GetGUID(); //this slot in now used by player player->TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET); - player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->chair.height); + player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->chair.height)); return; } } @@ -2135,7 +2135,7 @@ void GameObject::Use(Unit* user) WorldPacket data(SMSG_ENABLE_BARBER_SHOP, 0); player->SendDirectMessage(&data); - player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->barberChair.chairheight); + player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight)); return; } default: diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index ec0547c2aaa..84128744eee 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -89,6 +89,9 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject> void RemoveFromWorld() override; void CleanupsBeforeDelete(bool finalCleanup = true) override; + uint32 GetDynamicFlags() const override { return GetUInt32Value(GAMEOBJECT_DYNAMIC); } + void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(GAMEOBJECT_DYNAMIC, flag); } + bool Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, uint32 phaseMask, Position const& pos, QuaternionData const& rotation, uint32 animprogress, GOState go_state, uint32 artKit = 0, bool dynamic = false, ObjectGuid::LowType spawnid = 0); void Update(uint32 p_time) override; GameObjectTemplate const* GetGOInfo() const { return m_goInfo; } diff --git a/src/server/game/Entities/Object/MovementInfo.h b/src/server/game/Entities/Object/MovementInfo.h index 40cad80f3dc..e399be0ac0c 100644 --- a/src/server/game/Entities/Object/MovementInfo.h +++ b/src/server/game/Entities/Object/MovementInfo.h @@ -85,7 +85,9 @@ struct MovementInfo bool HasMovementFlag(uint32 flag) const { return (flags & flag) != 0; } uint16 GetExtraMovementFlags() const { return flags2; } + void SetExtraMovementFlags(uint16 flag) { flags2 = flag; } void AddExtraMovementFlag(uint16 flag) { flags2 |= flag; } + void RemoveExtraMovementFlag(uint16 flag) { flags2 &= ~flag; } bool HasExtraMovementFlag(uint16 flag) const { return (flags2 & flag) != 0; } void SetFallTime(uint32 val) { fallTime = val; } diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 7cc0625c247..cbc5f448e11 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -550,7 +550,7 @@ uint32 Object::GetUpdateFieldData(Player const* target, uint32*& flags) const if (ToUnit()->GetOwnerGUID() == target->GetGUID()) visibleFlag |= UF_FLAG_OWNER; - if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO)) + if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO)) if (ToUnit()->HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID())) visibleFlag |= UF_FLAG_SPECIAL_INFO; @@ -1941,7 +1941,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert return nullptr; } - summon->SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId); + summon->SetCreatedBySpell(spellId); summon->SetHomePosition(pos); @@ -2671,9 +2671,9 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const Unit const* unit = Coalesce<const Unit>(ToUnit(), selfPlayerOwner); Unit const* targetUnit = Coalesce<const Unit>(target->ToUnit(), targetPlayerOwner); - if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { - if (targetUnit && targetUnit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (targetUnit && targetUnit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (selfPlayerOwner && targetPlayerOwner) { @@ -2702,7 +2702,7 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const { if (ReputationRank const* repRank = selfPlayerOwner->GetReputationMgr().GetForcedRankIfAny(targetFactionTemplateEntry)) return *repRank; - if (!selfPlayerOwner->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_IGNORE_REPUTATION)) + if (!selfPlayerOwner->HasUnitFlag2(UNIT_FLAG2_IGNORE_REPUTATION)) { if (FactionEntry const* targetFactionEntry = sFactionStore.LookupEntry(targetFactionTemplateEntry->Faction)) { @@ -2747,7 +2747,7 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const return REP_HOSTILE; if (ReputationRank const* repRank = targetPlayerOwner->GetReputationMgr().GetForcedRankIfAny(factionTemplateEntry)) return *repRank; - if (target->ToUnit() && !target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_IGNORE_REPUTATION)) + if (target->IsUnit() && !target->ToUnit()->HasUnitFlag2(UNIT_FLAG2_IGNORE_REPUTATION)) { if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplateEntry->Faction)) { @@ -2892,7 +2892,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const return false; // can't attack untargetable - if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) return false; if (Player const* playerAttacker = ToPlayer()) @@ -2902,7 +2902,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const } // check flags - if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)) return false; Unit const* unitOrOwner = unit; @@ -2913,29 +2913,29 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const // ignore immunity flags when assisting if (unitOrOwner && unitTarget && !(isPositiveSpell && bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))) { - if (!unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToNPC()) + if (!unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToNPC()) return false; - if (!unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToNPC()) + if (!unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToNPC()) return false; - if (unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToPC()) + if (unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToPC()) return false; - if (unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToPC()) + if (unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToPC()) return false; } // CvC case - can attack each other only when one of them is hostile - if (unit && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && !unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (unit && !unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) return IsHostileTo(unitTarget) || unitTarget->IsHostileTo(this); // Traps without owner or with NPC owner versus Creature case - can attack to creature only when one of them is hostile if (go && go->GetGoType() == GAMEOBJECT_TYPE_TRAP) { Unit const* goOwner = go->GetOwner(); - if (!goOwner || !goOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) - if (unitTarget && !unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (!goOwner || !goOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + if (unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) return IsHostileTo(unitTarget) || unitTarget->IsHostileTo(this); } @@ -2944,8 +2944,8 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const if (IsFriendlyTo(target) || target->IsFriendlyTo(this)) return false; - Player const* playerAffectingAttacker = unit && HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) ? GetAffectingPlayer() : go ? GetAffectingPlayer() : nullptr; - Player const* playerAffectingTarget = unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) ? unitTarget->GetAffectingPlayer() : nullptr; + Player const* playerAffectingAttacker = unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? GetAffectingPlayer() : go ? GetAffectingPlayer() : nullptr; + Player const* playerAffectingTarget = unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? unitTarget->GetAffectingPlayer() : nullptr; // Not all neutral creatures can be attacked (even some unfriendly faction does not react aggresive to you, like Sporaggar) if ((playerAffectingAttacker && !playerAffectingTarget) || (!playerAffectingAttacker && playerAffectingTarget)) @@ -2979,7 +2979,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const // PvP case - can't attack when attacker or target are in sanctuary // however, 13850 client doesn't allow to attack when one of the unit's has sanctuary flag and is pvp - if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner && unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && (unitTarget->IsInSanctuary() || unitOrOwner->IsInSanctuary())) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner && unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && (unitTarget->IsInSanctuary() || unitOrOwner->IsInSanctuary())) return false; // additional checks - only PvP case @@ -2991,8 +2991,8 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const if (playerAffectingAttacker->IsFFAPvP() && playerAffectingTarget->IsFFAPvP()) return true; - return playerAffectingAttacker->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_UNK1) || - playerAffectingTarget->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_UNK1); + return playerAffectingAttacker->HasPvpFlag(UNIT_BYTE2_FLAG_UNK1) || + playerAffectingTarget->HasPvpFlag(UNIT_BYTE2_FLAG_UNK1); } return true; @@ -3039,16 +3039,16 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const return false; // can't assist untargetable - if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) return false; // check flags for negative spells - if (isNegativeSpell && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)) + if (isNegativeSpell && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)) return false; if (isNegativeSpell || !bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG)) { - if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (unitTarget && unitTarget->IsImmuneToPC()) return false; @@ -3065,9 +3065,9 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const return false; // PvP case - if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { - if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { Player const* selfPlayerOwner = GetAffectingPlayer(); Player const* targetPlayerOwner = unitTarget->GetAffectingPlayer(); @@ -3088,8 +3088,8 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const } } // PvC case - player can assist creature only if has specific type flags - // !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && - else if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + // !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && + else if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG)) if (unitTarget && !unitTarget->IsPvP()) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 907e7b47f35..7a32337a74b 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -82,6 +82,12 @@ class TC_GAME_API Object float GetObjectScale() const { return GetFloatValue(OBJECT_FIELD_SCALE_X); } virtual void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); } + virtual uint32 GetDynamicFlags() const { return 0; } + bool HasDynamicFlag(uint32 flag) const { return (GetDynamicFlags() & flag) != 0; } + virtual void SetDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() | flag); } + virtual void RemoveDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() & ~flag); } + virtual void ReplaceAllDynamicFlags([[maybe_unused]] uint32 flag) { } + TypeID GetTypeId() const { return m_objectTypeId; } bool isType(uint16 mask) const { return (mask & m_objectType) != 0; } diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 711feb9718c..26297f26f63 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -228,7 +228,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c setPetType(petInfo->Type); SetFaction(owner->GetFaction()); - SetUInt32Value(UNIT_CREATED_BY_SPELL, petInfo->CreatedBySpellId); + SetCreatedBySpell(petInfo->CreatedBySpellId); if (IsCritter()) { @@ -252,26 +252,22 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c SetDisplayId(petInfo->DisplayId); SetNativeDisplayId(petInfo->DisplayId); uint8 petlevel = petInfo->Level; - SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); SetName(petInfo->Name); switch (getPetType()) { case SUMMON_PET: petlevel = owner->GetLevel(); - SetClass(CLASS_MAGE); - SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); - // this enables popup window (pet dismiss, cancel) + ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet dismiss, cancel) break; case HUNTER_PET: SetClass(CLASS_WARRIOR); SetGender(GENDER_NONE); SetSheath(SHEATH_STATE_MELEE); - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, petInfo->WasRenamed ? UNIT_CAN_BE_ABANDONED : UNIT_CAN_BE_RENAMED | UNIT_CAN_BE_ABANDONED); - - SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); - // this enables popup window (pet abandon, cancel) + ReplaceAllPetFlags(petInfo->WasRenamed ? UNIT_PET_FLAG_CAN_BE_ABANDONED : (UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED)); + ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet abandon, cancel) SetMaxPower(POWER_HAPPINESS, GetCreatePowerValue(POWER_HAPPINESS)); SetPower(POWER_HAPPINESS, petInfo->Happiness); break; @@ -281,11 +277,11 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c break; } - SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped here + SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped here SetCreatorGUID(owner->GetGUID()); InitStatsForLevel(petlevel); - SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, petInfo->Experience); + SetPetExperience(petInfo->Experience); SynchronizeLevelWithOwner(); @@ -518,7 +514,7 @@ void Pet::SavePetToDB(PetSaveMode mode) stmt->setUInt8(6, GetReactState()); stmt->setUInt8(7, mode); stmt->setString(8, m_name); - stmt->setUInt8(9, HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED) ? 0 : 1); + stmt->setUInt8(9, HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED) ? 0 : 1); stmt->setUInt32(10, curhealth); stmt->setUInt32(11, curmana); stmt->setUInt32(12, GetPower(POWER_HAPPINESS)); @@ -547,7 +543,7 @@ void Pet::FillPetInfo(PetStable::PetInfo* petInfo) const petInfo->Experience = GetUInt32Value(UNIT_FIELD_PETEXPERIENCE); petInfo->ReactState = GetReactState(); petInfo->Name = GetName(); - petInfo->WasRenamed = !HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED); + petInfo->WasRenamed = !HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED); petInfo->Health = GetHealth(); petInfo->Mana = GetPower(POWER_MANA); petInfo->Happiness = GetPower(POWER_HAPPINESS); @@ -592,19 +588,19 @@ void Pet::setDeathState(DeathState s) // overwrite virtual if (getPetType() == HUNTER_PET) { // pet corpse non lootable and non skinnable - SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE); - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE); + RemoveUnitFlag(UNIT_FLAG_SKINNABLE); // lose happiness when died and not in BG/Arena if (!GetMap()->IsBattlegroundOrArena()) ModifyPower(POWER_HAPPINESS, -HAPPINESS_LEVEL_SIZE); - //SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + //SetUnitFlag(UNIT_FLAG_STUNNED); } } else if (getDeathState() == ALIVE) { - //RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + //RemoveUnitFlag(UNIT_FLAG_STUNNED); CastPetAuras(true); } } @@ -773,7 +769,7 @@ void Pet::GivePetXP(uint32 xp) nextLvlXP = GetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP); } // Not affected by special conditions - give it new XP - SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, petlevel < maxlevel ? newXP : 0); + SetPetExperience(petlevel < maxlevel ? newXP : 0); } void Pet::GivePetLevel(uint8 level) @@ -783,8 +779,8 @@ void Pet::GivePetLevel(uint8 level) if (getPetType() == HUNTER_PET) { - SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); - SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32(sObjectMgr->GetXPForLevel(level)*PET_XP_FACTOR)); + SetPetExperience(0); + SetPetNextLevelExperience(uint32(sObjectMgr->GetXPForLevel(level)*PET_XP_FACTOR)); } InitStatsForLevel(level); @@ -848,17 +844,17 @@ bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phas SetMaxPower(POWER_HAPPINESS, GetCreatePowerValue(POWER_HAPPINESS)); SetPower(POWER_HAPPINESS, 166500); - SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, 0); - SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); - SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32(sObjectMgr->GetXPForLevel(GetLevel()+1)*PET_XP_FACTOR)); - SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + SetPetNameTimestamp(0); + SetPetExperience(0); + SetPetNextLevelExperience(uint32(sObjectMgr->GetXPForLevel(GetLevel()+1)*PET_XP_FACTOR)); + ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); if (cinfo->type == CREATURE_TYPE_BEAST) { SetClass(CLASS_WARRIOR); SetGender(GENDER_NONE); SetSheath(SHEATH_STATE_MELEE); - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED | UNIT_CAN_BE_ABANDONED); + ReplaceAllPetFlags(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED); } return true; @@ -904,7 +900,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) SetAttackTime(OFF_ATTACK, BASE_ATTACK_TIME); SetAttackTime(RANGED_ATTACK, BASE_ATTACK_TIME); - SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); + SetModCastingSpeed(1.0f); //scale SetObjectScale(GetNativeObjectScale()); @@ -1885,7 +1881,7 @@ bool Pet::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 return false; // Force regen flag for player pets, just like we do for players themselves - SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER); + SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER); SetSheath(SHEATH_STATE_MELEE); GetThreatManager().Initialize(); diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h index fb669dd943d..7828cdc23cb 100644 --- a/src/server/game/Entities/Pet/Pet.h +++ b/src/server/game/Entities/Pet/Pet.h @@ -83,6 +83,8 @@ class TC_GAME_API Pet : public Guardian HappinessState GetHappinessState(); void GivePetXP(uint32 xp); void GivePetLevel(uint8 level); + void SetPetExperience(uint32 xp) { SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, xp); } + void SetPetNextLevelExperience(uint32 xp) { SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, xp); } void SynchronizeLevelWithOwner(); bool HaveInDiet(ItemTemplate const* item) const; uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel) const; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9ec2fc4e1c5..2ab7e8f9b92 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -508,17 +508,17 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo SetRace(createInfo->Race); SetClass(createInfo->Class); - SetGender(createInfo->Gender); + SetGender(Gender(createInfo->Gender)); SetPowerType(Powers(powertype), false); InitDisplayIds(); if (sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_PVP || sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_RPPVP) { - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + SetPvpFlag(UNIT_BYTE2_FLAG_PVP); + SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } - SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER); - SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); // fix cast time showed in spell tooltip on client - SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f); // default for players in 3.0.3 + SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER); + SetModCastingSpeed(1.0f); // fix cast time showed in spell tooltip on client + SetHoverHeight(1.0f); // default for players in 3.0.3 SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1)); // -1 is default value @@ -528,7 +528,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo SetHairColorId(createInfo->HairColor); SetFacialStyle(createInfo->FacialHair); SetRestState((GetSession()->IsARecruiter() || GetSession()->GetRecruiterId() != 0) ? REST_STATE_RAF_LINKED : REST_STATE_NOT_RAF_LINKED); - SetNativeGender(createInfo->Gender); + SetNativeGender(Gender(createInfo->Gender)); SetArenaFaction(0); SetUInt32Value(PLAYER_GUILDID, 0); @@ -1972,8 +1972,8 @@ void Player::RemoveFromWorld() void Player::SetObjectScale(float scale) { Unit::SetObjectScale(scale); - SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, scale * DEFAULT_PLAYER_BOUNDING_RADIUS); - SetFloatValue(UNIT_FIELD_COMBATREACH, scale * DEFAULT_PLAYER_COMBAT_REACH); + SetBoundingRadius(scale * DEFAULT_PLAYER_BOUNDING_RADIUS); + SetCombatReach(scale * DEFAULT_PLAYER_COMBAT_REACH); } bool Player::IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInfo const& spellEffectInfo, WorldObject const* caster) const @@ -2256,7 +2256,7 @@ bool Player::CanInteractWithQuestGiver(Object* questGiver) const return false; } -Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflagmask) const +Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, NPCFlags npcFlags) const { // unit checks if (!guid) @@ -2282,7 +2282,7 @@ Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflag return nullptr; // appropriate npc type - if (npcflagmask && !creature->HasFlag(UNIT_NPC_FLAGS, npcflagmask)) + if (npcFlags && !creature->HasNpcFlag(npcFlags)) return nullptr; // not allow interaction under control, but allow with own pets @@ -2367,12 +2367,12 @@ void Player::SetGameMaster(bool on) m_ExtraFlags |= PLAYER_EXTRA_GM_ON; SetFaction(FACTION_FRIENDLY); SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM); - SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS); + SetUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS); if (Pet* pet = GetPet()) pet->SetFaction(FACTION_FRIENDLY); - RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); ResetContestedPvP(); CombatStopWithPets(); @@ -2397,14 +2397,14 @@ void Player::SetGameMaster(bool on) m_ExtraFlags &= ~ PLAYER_EXTRA_GM_ON; SetFactionForRace(GetRace()); RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM); - RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS); + RemoveUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS); if (Pet* pet = GetPet()) pet->SetFaction(GetFaction()); // restore FFA PvP Server state if (sWorld->IsFFAPvPRealm()) - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); // restore FFA PvP area state, remove not allowed for GM mounts UpdateArea(m_areaUpdateId); @@ -2733,7 +2733,7 @@ void Player::InitStatsForLevel(bool reapplyMods) UpdateSkillsForLevel(); // set default cast time multiplier - SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); + SetModCastingSpeed(1.0f); // reset size before reapply auras SetObjectScale(1.0f); @@ -2777,12 +2777,12 @@ void Player::InitStatsForLevel(bool reapplyMods) SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, 0.0f); SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, 0.0f); - SetInt32Value(UNIT_FIELD_ATTACK_POWER, 0); - SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, 0); - SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, 0.0f); - SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, 0); - SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 0); - SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER, 0.0f); + SetAttackPower(0); + SetAttackPowerModPos(0); + SetAttackPowerMultiplier(0.0f); + SetRangedAttackPower(0); + SetRangedAttackPowerModPos(0); + SetRangedAttackPowerMultiplier(0.0f); // Base crit values (will be recalculated in UpdateAllStats() at loading and in _ApplyAllStatBonuses() at reset SetFloatValue(PLAYER_CRIT_PERCENTAGE, 0.0f); @@ -2832,25 +2832,25 @@ void Player::InitStatsForLevel(bool reapplyMods) SetMaxHealth(classInfo.basehealth); // stamina bonus will applied later // cleanup mounted state (it will set correctly at aura loading if player saved at mount. - SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); + SetMountDisplayId(0); // cleanup unit flags (will be re-applied if need at aura load). - RemoveFlag(UNIT_FIELD_FLAGS, + RemoveUnitFlag( UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_LOOTING | UNIT_FLAG_PET_IN_COMBAT | UNIT_FLAG_SILENCED | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED | UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_ON_TAXI ); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); // must be set + SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); // must be set - SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER);// must be set + SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);// must be set // cleanup player flags (will be re-applied if need at aura load), to avoid have ghost flag without ghost aura, for example. RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST | PLAYER_ALLOW_ONLY_ABILITY); - RemoveStandFlags(UNIT_STAND_FLAGS_ALL); // one form stealth modified bytes - RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY); + RemoveVisFlag(UNIT_VIS_FLAGS_ALL); // one form stealth modified bytes + RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY); // restore if need some important flags SetUInt32Value(PLAYER_FIELD_BYTES2, 0); // flags empty by default @@ -4530,7 +4530,7 @@ void Player::BuildPlayerRepop() SetMovement(MOVE_UNROOT); // BG - remove insignia related - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + RemoveUnitFlag(UNIT_FLAG_SKINNABLE); int32 corpseReclaimDelay = CalculateCorpseReclaimDelay(); @@ -4562,7 +4562,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0)) - SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND); + SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND); setDeathState(ALIVE); @@ -4641,9 +4641,9 @@ void Player::KillPlayer() StopMirrorTimers(); //disable timers(bars) setDeathState(CORPSE); - //SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_IN_PVP); + //SetUnitFlag(UNIT_FLAG_NOT_IN_PVP); - SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE); + ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE); ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)); // 6 minutes until repop at graveyard @@ -7010,13 +7010,13 @@ void Player::UpdateArea(uint32 newArea) pvpInfo.IsInNoPvPArea = false; if (area && area->IsSanctuary()) // in sanctuary { - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY); + SetPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY); pvpInfo.IsInNoPvPArea = true; if (!duel && GetCombatManager().HasPvPCombat()) CombatStopWithPets(); } else - RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY); + RemovePvpFlag(UNIT_BYTE2_FLAG_SANCTUARY); uint32 const areaRestFlag = (GetTeam() == ALLIANCE) ? AREA_FLAG_REST_ZONE_ALLIANCE : AREA_FLAG_REST_ZONE_HORDE; if (area && area->Flags & areaRestFlag) @@ -8620,7 +8620,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type) else { // exploit fix - if (!creature->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE)) + if (!creature->HasDynamicFlag(UNIT_DYNFLAG_LOOTABLE)) { SendLootError(guid, LOOT_ERROR_DIDNT_KILL); return; @@ -8734,7 +8734,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type) loot->AddLooter(GetGUID()); if (loot_type == LOOT_CORPSE && !guid.IsItem()) - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_LOOTING); + SetUnitFlag(UNIT_FLAG_LOOTING); } else SendLootError(GetLootGUID(), LOOT_ERROR_DIDNT_KILL); @@ -13444,7 +13444,7 @@ void Player::SendSellError(SellResult msg, Creature* creature, ObjectGuid guid, bool Player::IsUseEquipedWeapon(bool mainhand) const { // disarm applied only to mainhand weapon - return !IsInFeralForm() && (!mainhand || !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED)); + return !IsInFeralForm() && (!mainhand || !HasUnitFlag(UNIT_FLAG_DISARMED)); } void Player::SetCanTitanGrip(bool value, uint32 penaltySpellId /*= 0*/) @@ -14322,7 +14322,7 @@ void Player::SendPreparedGossip(WorldObject* source) if (source->GetTypeId() == TYPEID_UNIT) { // in case no gossip flag and quest menu not empty, open quest menu (client expect gossip menu with this flag) - if (!source->ToCreature()->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) && !PlayerTalkClass->GetQuestMenu().Empty()) + if (!source->ToCreature()->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP) && !PlayerTalkClass->GetQuestMenu().Empty()) { SendPreparedQuest(source->GetGUID()); return; @@ -16928,7 +16928,7 @@ void Player::SendQuestGiverStatusMultiple() Creature* questgiver = ObjectAccessor::GetCreatureOrPetOrVehicle(*this, *itr); if (!questgiver || questgiver->IsHostileTo(this)) continue; - if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)) + if (!questgiver->HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER)) continue; questStatus = GetQuestDialogStatus(questgiver); @@ -17197,10 +17197,10 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol // overwrite possible wrong/corrupted guid SetGuidValue(OBJECT_FIELD_GUID, guid); - uint8 gender = fields[5].GetUInt8(); + Gender gender = Gender(fields[5].GetUInt8()); if (!IsValidGender(gender)) { - TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player (%s) has wrong gender (%u), can't load.", guid.ToString().c_str(), gender); + TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player (%s) has wrong gender (%u), can't load.", guid.ToString().c_str(), uint32(gender)); return false; } @@ -17226,7 +17226,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol TC_LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player (%s) has invalid knowntitles mask (%s). Forcing partial load.", guid.ToString().c_str(), fields[69].GetCString()); SetObjectScale(1.0f); - SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f); + SetHoverHeight(1.0f); // load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria) m_achievementMgr->LoadFromDB(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS)); @@ -17243,7 +17243,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol SetFacialStyle(fields[13].GetUInt8()); SetBankBagSlotCount(fields[14].GetUInt8()); SetRestState(fields[15].GetUInt8()); - SetNativeGender(fields[5].GetUInt8()); + SetNativeGender(Gender(fields[5].GetUInt8())); SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_INEBRIATION, fields[54].GetUInt8()); if (!ValidateAppearance( @@ -17660,7 +17660,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol // clear channel spell data (if saved at channel spell casting) SetChannelObjectGuid(ObjectGuid::Empty); - SetUInt32Value(UNIT_CHANNEL_SPELL, 0); + SetChannelSpellId(0); // clear charm/summon related fields SetOwnerGUID(ObjectGuid::Empty); @@ -17670,7 +17670,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol SetGuidValue(PLAYER_FARSIGHT, ObjectGuid::Empty); SetCreatorGUID(ObjectGuid::Empty); - RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT); + RemoveUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT); // reset some aura modifiers before aura apply SetUInt32Value(PLAYER_TRACK_CREATURES, 0); @@ -17857,7 +17857,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol // RaF stuff. m_grantableLevels = fields[71].GetUInt8(); if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0)) - SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND); + SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND); if (m_grantableLevels > 0) SetByteValue(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTES_OFFSET_RAF_GRANTABLE_LEVEL, 0x01); @@ -21307,7 +21307,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc return false; } - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL)) + if (HasUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL)) return false; // taximaster case @@ -21502,7 +21502,7 @@ void Player::CleanupAfterTaxiFlight() { m_taxi.ClearTaxiDestinations(); // not destinations, clear source node Dismount(); - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); + RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); } void Player::ContinueTaxiFlight() const @@ -21564,7 +21564,7 @@ void Player::SendTaxiNodeStatusMultiple() Creature* creature = ObjectAccessor::GetCreature(*this, *itr); if (!creature || creature->IsHostileTo(this)) continue; - if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER)) + if (!creature->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER)) continue; uint32 nearestNode = sObjectMgr->GetNearestTaxiNode(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), creature->GetMapId(), GetTeam()); if (!nearestNode) @@ -21935,16 +21935,16 @@ void Player::UpdatePvPState(bool onlyFFA) { if (!IsFFAPvP()) { - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); for (ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) - (*itr)->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + (*itr)->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); } } else if (IsFFAPvP()) { - RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); for (ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) - (*itr)->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + (*itr)->RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); } if (onlyFFA) @@ -22478,7 +22478,7 @@ void Player::UpdateTriggerVisibility() { Creature* creature = GetMap()->GetCreature(*itr); // Update fields of triggers, transformed units or uninteractible units (values dependent on GM state) - if (!creature || (!creature->IsTrigger() && !creature->HasAuraType(SPELL_AURA_TRANSFORM) && !creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))) + if (!creature || (!creature->IsTrigger() && !creature->HasAuraType(SPELL_AURA_TRANSFORM) && !creature->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))) continue; creature->SetFieldNotifyFlag(UF_FLAG_PUBLIC); @@ -23191,14 +23191,14 @@ void Player::LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue) void Player::SendAurasForTarget(Unit* target) const { - if (!target || target->GetVisibleAuras()->empty()) // speedup things + if (!target || target->GetVisibleAuras().empty()) // speedup things return; WorldPacket data(SMSG_AURA_UPDATE_ALL); data << target->GetPackGUID(); - Unit::VisibleAuraMap const* visibleAuras = target->GetVisibleAuras(); - for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras->begin(); itr != visibleAuras->end(); ++itr) + Unit::VisibleAuraMap const& visibleAuras = target->GetVisibleAuras(); + for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras.begin(); itr != visibleAuras.end(); ++itr) { AuraApplication * auraApp = itr->second; auraApp->BuildUpdatePacket(data, false); @@ -23551,7 +23551,7 @@ void Player::UpdateVisibleGameobjectsOrSpellClicks() continue; // check if this unit requires quest specific flags - if (!obj->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK)) + if (!obj->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) continue; auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(obj->GetEntry()); @@ -23741,7 +23741,7 @@ bool Player::CanNoReagentCast(SpellInfo const* spellInfo) const { // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP if (spellInfo->HasAttribute(SPELL_ATTR5_NO_REAGENT_WHILE_PREP) && - HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION)) + HasUnitFlag(UNIT_FLAG_PREPARATION)) return true; // Check no reagent use mask @@ -25505,7 +25505,7 @@ bool Player::IsPetNeedBeTemporaryUnsummoned() const bool Player::CanSeeSpellClickOn(Creature const* c) const { - if (!c->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK)) + if (!c->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) return false; auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(c->GetEntry()); @@ -26780,8 +26780,7 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy pet->SetCreatorGUID(GetGUID()); pet->SetFaction(GetFaction()); - pet->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - pet->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); + pet->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); pet->InitStatsForLevel(GetLevel()); SetMinion(pet, true); @@ -26792,11 +26791,11 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy // this enables pet details window (Shift+P) pet->GetCharmInfo()->SetPetNumber(pet_number, true); pet->SetClass(CLASS_MAGE); - pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); - pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000); + pet->SetPetExperience(0); + pet->SetPetNextLevelExperience(1000); pet->SetFullHealth(); pet->SetPower(POWER_MANA, pet->GetMaxPower(POWER_MANA)); - pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped in this case + pet->SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped in this case break; default: break; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 376ebe3f72e..b4aafb4c65c 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -926,7 +926,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time, bool welcome) const; bool CanInteractWithQuestGiver(Object* questGiver) const; - Creature* GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflagmask) const; + Creature* GetNPCIfCanInteractWith(ObjectGuid const& guid, NPCFlags npcFlags) const; GameObject* GetGameObjectIfCanInteractWith(ObjectGuid const& guid) const; GameObject* GetGameObjectIfCanInteractWith(ObjectGuid const& guid, GameobjectTypes type) const; @@ -996,8 +996,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> uint32 GetTotalPlayedTime() const { return m_Played_time[PLAYED_TIME_TOTAL]; } uint32 GetLevelPlayedTime() const { return m_Played_time[PLAYED_TIME_LEVEL]; } - uint8 GetNativeGender() const override { return GetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER); } - void SetNativeGender(uint8 gender) override { SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER, gender); } + Gender GetNativeGender() const override { return Gender(GetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER)); } + void SetNativeGender(Gender gender) override { SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER, gender); } uint8 GetSkinId() const { return GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); } void SetSkinId(uint8 skin) { SetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID, skin); } uint8 GetFaceId() const { return GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_FACE_ID); } diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index 9364d71e2a6..f1d45b935a4 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -475,7 +475,7 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu return nullptr; } - summon->SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId); + summon->SetCreatedBySpell(spellId); summon->SetTransport(this); summon->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index c1939f60dd5..142affc27cf 100644 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -341,16 +341,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged) UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER; - uint16 index = UNIT_FIELD_ATTACK_POWER; - uint16 index_mod = UNIT_FIELD_ATTACK_POWER_MODS; - uint16 index_mult = UNIT_FIELD_ATTACK_POWER_MULTIPLIER; - if (ranged) { - index = UNIT_FIELD_RANGED_ATTACK_POWER; - index_mod = UNIT_FIELD_RANGED_ATTACK_POWER_MODS; - index_mult = UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER; - switch (GetClass()) { case CLASS_HUNTER: @@ -480,9 +472,18 @@ void Player::UpdateAttackPowerAndDamage(bool ranged) float attPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f; - SetInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field - SetInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field - SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field + if (ranged) + { + SetRangedAttackPower(int32(base_attPower)); + SetRangedAttackPowerModPos(int32(attPowerMod)); + SetRangedAttackPowerMultiplier(attPowerMultiplier); + } + else + { + SetAttackPower(int32(base_attPower)); + SetAttackPowerModPos(int32(attPowerMod)); + SetAttackPowerMultiplier(attPowerMultiplier); + } Pet* pet = GetPet(); //update pet's AP Guardian* guardian = GetGuardianPet(); @@ -1043,24 +1044,22 @@ void Creature::UpdateAttackPowerAndDamage(bool ranged) { UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER; - uint16 index = UNIT_FIELD_ATTACK_POWER; - uint16 indexMod = UNIT_FIELD_ATTACK_POWER_MODS; - uint16 indexMulti = UNIT_FIELD_ATTACK_POWER_MULTIPLIER; - - if (ranged) - { - index = UNIT_FIELD_RANGED_ATTACK_POWER; - indexMod = UNIT_FIELD_RANGED_ATTACK_POWER_MODS; - indexMulti = UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER; - } - float baseAttackPower = GetFlatModifierValue(unitMod, BASE_VALUE) * GetPctModifierValue(unitMod, BASE_PCT); float attackPowerMod = GetFlatModifierValue(unitMod, TOTAL_VALUE); float attackPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f; - SetInt32Value(index, uint32(baseAttackPower)); // UNIT_FIELD_(RANGED)_ATTACK_POWER - SetInt32Value(indexMod, uint32(attackPowerMod)); // UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS - SetFloatValue(indexMulti, attackPowerMultiplier); // UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER + if (ranged) + { + SetRangedAttackPower(int32(baseAttackPower)); + SetRangedAttackPowerModPos(int32(attackPowerMod)); + SetRangedAttackPowerMultiplier(attackPowerMultiplier); + } + else + { + SetAttackPower(int32(baseAttackPower)); + SetAttackPowerModPos(int32(attackPowerMod)); + SetAttackPowerMultiplier(attackPowerMultiplier); + } // automatically update weapon damage after attack power modification if (ranged) @@ -1423,12 +1422,9 @@ void Guardian::UpdateAttackPowerAndDamage(bool ranged) float attPowerMod = GetFlatModifierValue(unitMod, TOTAL_VALUE); float attPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f; - //UNIT_FIELD_(RANGED)_ATTACK_POWER field - SetInt32Value(UNIT_FIELD_ATTACK_POWER, (int32)base_attPower); - //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field - SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, (int32)attPowerMod); - //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field - SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attPowerMultiplier); + SetAttackPower(int32(base_attPower)); + SetAttackPowerModPos(int32(attPowerMod)); + SetAttackPowerMultiplier(attPowerMultiplier); //automatically update weapon damage after attack power modification UpdateDamagePhysical(BASE_ATTACK); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ba811094c58..13ef25a631d 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -301,7 +301,7 @@ Unit::Unit(bool isWorldObject) : m_removedAurasCount(0), m_charmer(nullptr), m_charmed(nullptr), i_motionMaster(new MotionMaster(this)), m_regenTimer(0), m_vehicle(nullptr), m_vehicleKit(nullptr), m_unitTypeMask(UNIT_MASK_NONE), m_Diminishing(), m_combatManager(this), m_threatManager(this), - m_aiLocked(false), m_comboTarget(nullptr), m_comboPoints(0), m_spellHistory(new SpellHistory(this)) + m_aiLocked(false), m_comboTarget(nullptr), m_comboPoints(0), _spellHistory(new SpellHistory(this)) { m_objectType |= TYPEMASK_UNIT; m_objectTypeId = TYPEID_UNIT; @@ -412,7 +412,7 @@ Unit::~Unit() delete i_motionMaster; delete m_charmInfo; delete movespline; - delete m_spellHistory; + delete _spellHistory; ASSERT(!m_duringRemoveFromWorld); ASSERT(!m_attacking); @@ -659,14 +659,14 @@ void Unit::UpdateInterruptMask() m_interruptMask |= spell->m_spellInfo->ChannelInterruptFlags; } -bool Unit::HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, uint32 familyFlags) const +bool Unit::HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, flag96 familyFlags) const { if (!HasAuraType(auraType)) return false; AuraEffectList const& auras = GetAuraEffectsByType(auraType); for (AuraEffectList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) if (SpellInfo const* iterSpellProto = (*itr)->GetSpellInfo()) - if (iterSpellProto->SpellFamilyName == familyName && iterSpellProto->SpellFamilyFlags[0] & familyFlags) + if (iterSpellProto->SpellFamilyName == familyName && iterSpellProto->SpellFamilyFlags & familyFlags) return true; return false; } @@ -1109,7 +1109,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama damageInfo->damage = dmgInfo.GetDamage(); } -void Unit::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss) +void Unit::DealSpellDamage(SpellNonMeleeDamage const* damageInfo, bool durabilityLoss) { if (!damageInfo) return; @@ -2073,7 +2073,7 @@ void Unit::HandleEmoteCommand(Emote emoteId) void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra) { - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) + if (HasUnitFlag(UNIT_FLAG_PACIFIED)) return; if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra) @@ -2094,7 +2094,7 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr if (!extra && _lastExtraAttackSpell) _lastExtraAttackSpell = 0; - if (GetTypeId() == TYPEID_UNIT && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED) && !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN)) + if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_POSSESSED) && !HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) // melee attack spell cast at main hand attack only - no normal melee dmg dealt @@ -2413,11 +2413,11 @@ bool Unit::CanUseAttackType(uint8 attacktype) const switch (attacktype) { case BASE_ATTACK: - return !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED); + return !HasUnitFlag(UNIT_FLAG_DISARMED); case OFF_ATTACK: - return !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND); + return !HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); case RANGED_ATTACK: - return !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_RANGED); + return !HasUnitFlag2(UNIT_FLAG2_DISARM_RANGED); default: return true; } @@ -2924,7 +2924,7 @@ void Unit::_UpdateSpells(uint32 time) } } - m_spellHistory->Update(); + _spellHistory->Update(); } void Unit::_UpdateAutoRepeatSpell() @@ -5066,17 +5066,20 @@ void Unit::_UnregisterDynObject(DynamicObject* dynObj) m_dynObj.remove(dynObj); } -DynamicObject* Unit::GetDynObject(uint32 spellId) +DynamicObject* Unit::GetDynObject(uint32 spellId) const { - if (m_dynObj.empty()) - return nullptr; - for (DynObjectList::const_iterator i = m_dynObj.begin(); i != m_dynObj.end();++i) - { - DynamicObject* dynObj = *i; - if (dynObj->GetSpellId() == spellId) - return dynObj; - } - return nullptr; + std::vector<DynamicObject*> dynamicobjects = GetDynObjects(spellId); + return dynamicobjects.empty() ? nullptr : dynamicobjects.front(); +} + +std::vector<DynamicObject*> Unit::GetDynObjects(uint32 spellId) const +{ + std::vector<DynamicObject*> dynamicobjects; + for (DynObjectList::const_iterator i = m_dynObj.begin(); i != m_dynObj.end(); ++i) + if ((*i)->GetSpellId() == spellId) + dynamicobjects.push_back(*i); + + return dynamicobjects; } void Unit::RemoveDynObject(uint32 spellId) @@ -5104,11 +5107,18 @@ void Unit::RemoveAllDynObjects() GameObject* Unit::GetGameObject(uint32 spellId) const { + std::vector<GameObject*> gameobjects = GetGameObjects(spellId); + return gameobjects.empty() ? nullptr : gameobjects.front(); +} + +std::vector<GameObject*> Unit::GetGameObjects(uint32 spellId) const +{ + std::vector<GameObject*> gameobjects; for (GameObjectList::const_iterator i = m_gameObj.begin(); i != m_gameObj.end(); ++i) if ((*i)->GetSpellId() == spellId) - return *i; + gameobjects.push_back(*i); - return nullptr; + return gameobjects; } void Unit::AddGameObject(GameObject* gameObj) @@ -5203,7 +5213,7 @@ void Unit::RemoveAllGameObjects() } } -void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log) +void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const* log) { WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+4+1+4+4+1+1+4+4+1)); // we guess size data << log->target->GetPackGUID(); @@ -5640,7 +5650,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack) creature->CallAssistance(); // Remove emote state - will be restored on creature reset - SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + SetEmoteState(EMOTE_ONESHOT_NONE); } // delay offhand weapon attack by 50% of the base attack time @@ -5822,7 +5832,7 @@ void Unit::ModifyAuraState(AuraStateType flag, bool apply) } } -uint32 Unit::BuildAuraStateUpdateForTarget(Unit* target) const +uint32 Unit::BuildAuraStateUpdateForTarget(Unit const* target) const { uint32 auraStates = GetUInt32Value(UNIT_FIELD_AURASTATE) &~(PER_CASTER_AURA_STATE_MASK); for (AuraStateAurasMap::const_iterator itr = m_auraStateAuras.begin(); itr != m_auraStateAuras.end(); ++itr) @@ -5950,7 +5960,7 @@ void Unit::SetMinion(Minion *minion, bool apply) if (GetTypeId() == TYPEID_PLAYER) { minion->m_ControlledByPlayer = true; - minion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + minion->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } // Can only have one pet. If a new one is summoned, dismiss the old one. @@ -5983,7 +5993,7 @@ void Unit::SetMinion(Minion *minion, bool apply) SetCritterGUID(minion->GetGUID()); // PvP, FFAPvP - minion->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); + minion->ReplaceAllPvpFlags(GetPvpFlags()); // FIXME: hack, speed must be set only at follow if (GetTypeId() == TYPEID_PLAYER && minion->IsPet()) @@ -6114,13 +6124,13 @@ void Unit::SetCharm(Unit* charm, bool apply) charm->m_ControlledByPlayer = true; /// @todo maybe we can use this flag to check if controlled by player - charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } else charm->m_ControlledByPlayer = false; // PvP, FFAPvP - charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); + charm->ReplaceAllPvpFlags(GetPvpFlags()); ASSERT_WITH_SIDE_EFFECTS(charm->AddGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()), "Unit %u is being charmed, but it already has a charmer %s", charm->GetEntry(), charm->GetCharmerGUID().ToString().c_str()); @@ -6153,20 +6163,20 @@ void Unit::SetCharm(Unit* charm, bool apply) if (charm->GetTypeId() == TYPEID_PLAYER) { charm->m_ControlledByPlayer = true; - charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); charm->ToPlayer()->UpdatePvPState(); } else if (Player* player = charm->GetCharmerOrOwnerPlayerOrPlayerItself()) { charm->m_ControlledByPlayer = true; - charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); - charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, player->GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); + charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + charm->ReplaceAllPvpFlags(player->GetPvpFlags()); } else { charm->m_ControlledByPlayer = false; - charm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); - charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, 0); + charm->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + charm->ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_NONE); } if (charm->IsWalking() != _isWalkingBeforeCharm) @@ -6295,7 +6305,7 @@ void Unit::RemoveAllControlled() if (GetCharmedGUID()) TC_LOG_FATAL("entities.unit", "Unit %u is not able to release its charm %s", GetEntry(), GetCharmedGUID().ToString().c_str()); if (!IsPet()) // pets don't use the flag for this - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // m_controlled is now empty, so we know none of our minions are in combat + RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // m_controlled is now empty, so we know none of our minions are in combat } bool Unit::isPossessedByPlayer() const @@ -8148,9 +8158,9 @@ float Unit::GetPPMProcChance(uint32 WeaponSpeed, float PPM, SpellInfo const* spe void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) { if (mount) - SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mount); + SetMountDisplayId(mount); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT); + SetUnitFlag(UNIT_FLAG_MOUNT); if (Player* player = ToPlayer()) { @@ -8180,7 +8190,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) Battleground* bg = ToPlayer()->GetBattleground(); // don't unsummon pet in arena but SetFlag UNIT_FLAG_STUNNED to disable pet's interface if (bg && bg->isArena()) - pet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + pet->SetUnitFlag(UNIT_FLAG_STUNNED); else player->UnsummonPetTemporaryIfAny(); } @@ -8188,7 +8198,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) // if we have charmed npc, stun him also (everywhere) if (Unit* charm = player->GetCharmed()) if (charm->GetTypeId() == TYPEID_UNIT) - charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + charm->SetUnitFlag(UNIT_FLAG_STUNNED); WorldPacket data(SMSG_MOVE_SET_COLLISION_HGT, GetPackGUID().size() + 4 + 4); data << GetPackGUID(); @@ -8205,8 +8215,8 @@ void Unit::Dismount() if (!IsMounted()) return; - SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT); + SetMountDisplayId(0); + RemoveUnitFlag(UNIT_FLAG_MOUNT); if (Player* thisPlayer = ToPlayer()) { @@ -8242,22 +8252,22 @@ void Unit::Dismount() { if (Pet* pPet = player->GetPet()) { - if (pPet->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && !pPet->HasUnitState(UNIT_STATE_STUNNED)) - pPet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + if (pPet->HasUnitFlag(UNIT_FLAG_STUNNED) && !pPet->HasUnitState(UNIT_STATE_STUNNED)) + pPet->RemoveUnitFlag(UNIT_FLAG_STUNNED); } else player->ResummonPetTemporaryUnSummonedIfAny(); // if we have charmed npc, remove stun also if (Unit* charm = player->GetCharmed()) - if (charm->GetTypeId() == TYPEID_UNIT && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && !charm->HasUnitState(UNIT_STATE_STUNNED)) - charm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + if (charm->GetTypeId() == TYPEID_UNIT && charm->HasUnitFlag(UNIT_FLAG_STUNNED) && !charm->HasUnitState(UNIT_STATE_STUNNED)) + charm->RemoveUnitFlag(UNIT_FLAG_STUNNED); } } bool Unit::IsServiceProvider() const { - return HasFlag(UNIT_NPC_FLAGS, + return HasNpcFlag( UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER | UNIT_NPC_FLAG_PETITIONER | UNIT_NPC_FLAG_BATTLEMASTER | UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_INNKEEPER | UNIT_NPC_FLAG_SPIRITHEALER | @@ -8279,59 +8289,59 @@ void Unit::SetImmuneToAll(bool apply, bool keepCombat) { if (apply) { - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); ValidateAttackersAndOwnTarget(); if (!keepCombat) m_combatManager.EndAllCombat(); } else - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); } void Unit::SetImmuneToPC(bool apply, bool keepCombat) { if (apply) { - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); ValidateAttackersAndOwnTarget(); if (!keepCombat) { std::list<CombatReference*> toEnd; for (auto const& pair : m_combatManager.GetPvECombatRefs()) - if (pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (auto const& pair : m_combatManager.GetPvPCombatRefs()) - if (pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (CombatReference* ref : toEnd) ref->EndCombat(); } } else - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); } void Unit::SetImmuneToNPC(bool apply, bool keepCombat) { if (apply) { - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); ValidateAttackersAndOwnTarget(); if (!keepCombat) { std::list<CombatReference*> toEnd; for (auto const& pair : m_combatManager.GetPvECombatRefs()) - if (!pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (auto const& pair : m_combatManager.GetPvPCombatRefs()) - if (!pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) + if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (CombatReference* ref : toEnd) ref->EndCombat(); } } else - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); } bool Unit::IsThreatened() const @@ -8344,8 +8354,7 @@ bool Unit::isTargetableForAttack(bool checkFakeDeath) const if (!IsAlive()) return false; - if (HasFlag(UNIT_FIELD_FLAGS, - UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE)) + if (HasUnitFlag( UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE)) return false; if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->IsGameMaster()) @@ -8740,14 +8749,14 @@ void Unit::setDeathState(DeathState s) // do not why since in IncreaseMaxHealth currenthealth is checked SetHealth(0); SetPower(GetPowerType(), 0); - SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + SetEmoteState(EMOTE_ONESHOT_NONE); // players in instance don't have ZoneScript, but they have InstanceScript if (ZoneScript* zoneScript = GetZoneScript() ? GetZoneScript() : GetInstanceScript()) zoneScript->OnUnitDeath(this); } else if (s == JUST_RESPAWNED) - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground) + RemoveUnitFlag(UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground) } //====================================================================== @@ -8793,9 +8802,9 @@ void Unit::UpdatePetCombatState() } if (state) - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); + SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT); else - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); + RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT); } //====================================================================== @@ -9908,9 +9917,9 @@ void CharmInfo::SetPetNumber(uint32 petnumber, bool statwindow) { _petnumber = petnumber; if (statwindow) - _unit->SetUInt32Value(UNIT_FIELD_PETNUMBER, _petnumber); + _unit->SetPetNumberForClient(_petnumber); else - _unit->SetUInt32Value(UNIT_FIELD_PETNUMBER, 0); + _unit->SetPetNumberForClient(0); } void CharmInfo::LoadPetActionBar(const std::string& data) @@ -10322,7 +10331,7 @@ bool Unit::IsStandState() const return !IsSitState() && s != UNIT_STAND_STATE_SLEEP && s != UNIT_STAND_STATE_KNEEL; } -void Unit::SetStandState(uint8 state) +void Unit::SetStandState(UnitStandStateType state) { SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, state); @@ -10371,7 +10380,7 @@ void Unit::SetDisplayId(uint32 modelId) SetUInt32Value(UNIT_FIELD_DISPLAYID, modelId); // Set Gender by modelId if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId)) - SetGender(minfo->gender); + SetGender(Gender(minfo->gender)); } void Unit::RestoreDisplayId() @@ -10615,7 +10624,7 @@ void Unit::ApplyCastTimePercentMod(float val, bool apply) else ApplyPercentModFloatVar(amount, -val, apply); - SetFloatValue(UNIT_MOD_CAST_SPEED, amount); + SetModCastingSpeed(amount); } uint32 Unit::GetCastingTimeForBonus(SpellInfo const* spellProto, DamageEffectType damagetype, uint32 CastingTime) const @@ -10868,10 +10877,10 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id) pet->SetCreatorGUID(GetGUID()); pet->SetFaction(GetFaction()); - pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id); + pet->SetCreatedBySpell(spell_id); if (GetTypeId() == TYPEID_PLAYER) - pet->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + pet->ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); if (!pet->InitStatsForLevel(level)) { @@ -11110,7 +11119,7 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id) { // must be after setDeathState which resets dynamic flags if (!creature->loot.isLooted()) - creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); else creature->AllLootRemovedFromCorpse(); } @@ -11320,7 +11329,7 @@ void Unit::SetStunned(bool apply) m_rootTimes++; SetTarget(ObjectGuid::Empty); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + SetUnitFlag(UNIT_FLAG_STUNNED); // MOVEMENTFLAG_ROOT cannot be used in conjunction with MOVEMENTFLAG_MASK_MOVING (tested 3.3.5a) // this will freeze clients. That's why we remove MOVEMENTFLAG_MASK_MOVING before @@ -11356,7 +11365,7 @@ void Unit::SetStunned(bool apply) // don't remove UNIT_FLAG_STUNNED for pet when owner is mounted (disabled pet's interface) Unit* owner = GetCharmerOrOwner(); if (!owner || owner->GetTypeId() != TYPEID_PLAYER || !owner->ToPlayer()->IsMounted()) - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + RemoveUnitFlag(UNIT_FLAG_STUNNED); if (!HasUnitState(UNIT_STATE_ROOT)) // prevent moving if it also has root effect { @@ -11615,13 +11624,13 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au switch (type) { case CHARM_TYPE_VEHICLE: - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); + SetUnitFlag(UNIT_FLAG_POSSESSED); playerCharmer->SetClientControl(this, true); playerCharmer->VehicleSpellInitialize(); break; case CHARM_TYPE_POSSESS: - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); - charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL); + SetUnitFlag(UNIT_FLAG_POSSESSED); + charmer->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL); playerCharmer->SetClientControl(this, true); playerCharmer->PossessSpellInitialize(); AddUnitState(UNIT_STATE_POSSESSED); @@ -11640,7 +11649,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true); // if charmed two demons the same session, the 2nd gets the 1st one's name - SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped + SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped } } playerCharmer->CharmSpellInitialize(); @@ -11719,14 +11728,14 @@ void Unit::RemoveCharmedBy(Unit* charmer) case CHARM_TYPE_VEHICLE: playerCharmer->SetClientControl(this, false); playerCharmer->SetClientControl(charmer, true); - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); + RemoveUnitFlag(UNIT_FLAG_POSSESSED); break; case CHARM_TYPE_POSSESS: ClearUnitState(UNIT_STATE_POSSESSED); playerCharmer->SetClientControl(this, false); playerCharmer->SetClientControl(charmer, true); - charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL); - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED); + charmer->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL); + RemoveUnitFlag(UNIT_FLAG_POSSESSED); break; case CHARM_TYPE_CHARM: if (GetTypeId() == TYPEID_UNIT && charmer->GetClass() == CLASS_WARLOCK) @@ -11813,7 +11822,7 @@ void Unit::RemoveVehicleKit() m_updateFlag &= ~UPDATEFLAG_VEHICLE; m_unitTypeMask &= ~UNIT_MASK_VEHICLE; - RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE); + RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE); } bool Unit::IsOnVehicle(Unit const* vehicle) const @@ -11954,9 +11963,9 @@ bool Unit::IsContestedGuard() const void Unit::SetPvP(bool state) { if (state) - SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); + SetPvpFlag(UNIT_BYTE2_FLAG_PVP); else - RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); + RemovePvpFlag(UNIT_BYTE2_FLAG_PVP); } Aura* Unit::AddAura(uint32 spellId, Unit* target) @@ -12822,15 +12831,15 @@ bool Unit::IsFalling() const bool Unit::CanSwim() const { // Mirror client behavior, if this method returns false then client will not use swimming animation and for players will apply gravity as if there was no water - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CANNOT_SWIM)) + if (HasUnitFlag(UNIT_FLAG_CANNOT_SWIM)) return false; - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) // is player + if (HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // is player return true; - if (HasFlag(UNIT_FIELD_FLAGS_2, 0x1000000)) + if (HasUnitFlag2(UNIT_FLAG2_UNUSED_6)) return false; - if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT)) + if (HasUnitFlag(UNIT_FLAG_PET_IN_COMBAT)) return true; - return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM); + return HasUnitFlag(UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM); } void Unit::NearTeleportTo(Position const& pos, bool casting /*= false*/) @@ -13164,7 +13173,7 @@ void Unit::SendClearTarget() SendMessageToSet(&data, false); } -uint32 Unit::GetResistance(SpellSchoolMask mask) const +int32 Unit::GetResistance(SpellSchoolMask mask) const { int32 resist = -1; for (int32 i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i) @@ -13172,7 +13181,7 @@ uint32 Unit::GetResistance(SpellSchoolMask mask) const resist = int32(GetResistance(SpellSchools(i))); // resist value will never be negative here - return uint32(resist); + return resist; } void CharmInfo::SetIsCommandAttack(bool val) @@ -13390,6 +13399,11 @@ bool Unit::SetHover(bool enable, bool /*packetOnly = false*/, bool /*updateAnimT return true; } +bool Unit::IsSplineEnabled() const +{ + return movespline->Initialized() && !movespline->Finalized(); +} + void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const { if (!target) @@ -13409,7 +13423,7 @@ void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) if (GetOwnerGUID() == target->GetGUID()) visibleFlag |= UF_FLAG_OWNER; - if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO)) + if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO)) if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID())) visibleFlag |= UF_FLAG_SPECIAL_INFO; @@ -13661,6 +13675,22 @@ void Unit::Whisper(std::string_view text, Language language, Player* target, boo target->SendDirectMessage(&data); } +uint32 Unit::GetVirtualItemId(uint32 slot) const +{ + if (slot >= MAX_EQUIPMENT_ITEMS) + return 0; + + return GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot); +} + +void Unit::SetVirtualItem(uint32 slot, uint32 itemId) +{ + if (slot >= MAX_EQUIPMENT_ITEMS) + return; + + SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot, itemId); +} + void Unit::Talk(uint32 textId, ChatMsg msgType, float textRange, WorldObject const* target) { if (!sObjectMgr->GetBroadcastText(textId)) @@ -13715,7 +13745,7 @@ float Unit::GetCollisionHeight() const if (IsMounted()) { - if (CreatureDisplayInfoEntry const* mountDisplayInfo = sCreatureDisplayInfoStore.LookupEntry(GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID))) + if (CreatureDisplayInfoEntry const* mountDisplayInfo = sCreatureDisplayInfoStore.LookupEntry(GetMountDisplayId())) { if (CreatureModelDataEntry const* mountModelData = sCreatureModelDataStore.LookupEntry(mountDisplayInfo->ModelID)) { diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 1eeb501dc26..bf8e2b2753e 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -93,8 +93,13 @@ class UnitAura; class Vehicle; class VehicleJoinEvent; -enum ZLiquidStatus : uint32; enum MovementGeneratorType : uint8; +enum ZLiquidStatus : uint32; + +namespace Movement +{ + class MoveSpline; +} typedef std::list<Unit*> UnitList; @@ -367,10 +372,6 @@ enum UnitTypeMask UNIT_MASK_ACCESSORY = 0x00000200 }; -namespace Movement{ - class MoveSpline; -} - struct DiminishingReturn { DiminishingReturn() : stack(0), hitTime(0), hitCount(DIMINISHING_LEVEL_1) { } @@ -787,6 +788,7 @@ class TC_GAME_API Unit : public WorldObject typedef std::list<AuraEffect*> AuraEffectList; typedef std::list<Aura*> AuraList; typedef std::list<AuraApplication*> AuraApplicationList; + typedef std::array<DiminishingReturn, DIMINISHING_MAX> Diminishing; typedef std::vector<std::pair<uint8 /*procEffectMask*/, AuraApplication*>> AuraApplicationProcContainer; @@ -814,6 +816,9 @@ class TC_GAME_API Unit : public WorldObject void CleanupBeforeRemoveFromMap(bool finalCleanup); void CleanupsBeforeDelete(bool finalCleanup = true) override; // used in ~Creature/~Player (or before mass creature delete to remove cross-references to already deleted units) + uint32 GetDynamicFlags() const override { return GetUInt32Value(UNIT_DYNAMIC_FLAGS); } + void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(UNIT_DYNAMIC_FLAGS, flag); } + virtual bool IsAffectedByDiminishingReturns() const { return (GetCharmerOrOwnerPlayerOrPlayerItself() != nullptr); } DiminishingLevels GetDiminishing(DiminishingGroup group) const; void IncrDiminishing(SpellInfo const* auraSpellInfo, bool triggered); @@ -830,7 +835,10 @@ class TC_GAME_API Unit : public WorldObject bool haveOffhandWeapon() const; bool CanDualWield() const { return m_canDualWield; } virtual void SetCanDualWield(bool value) { m_canDualWield = value; } - float GetCombatReach() const override { return m_floatValues[UNIT_FIELD_COMBATREACH]; } + float GetCombatReach() const override { return GetFloatValue(UNIT_FIELD_COMBATREACH); } + void SetCombatReach(float combatReach) { SetFloatValue(UNIT_FIELD_COMBATREACH, combatReach); } + float GetBoundingRadius() const { return GetFloatValue(UNIT_FIELD_BOUNDINGRADIUS); } + void SetBoundingRadius(float boundingRadius) { SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, boundingRadius); } bool IsWithinCombatRange(Unit const* obj, float dist2compare) const; bool IsWithinMeleeRange(Unit const* obj) const { return IsWithinMeleeRangeAt(GetPosition(), obj); } bool IsWithinMeleeRangeAt(Position const& pos, Unit const* obj) const; @@ -884,21 +892,21 @@ class TC_GAME_API Unit : public WorldObject void SetRace(uint8 race) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_RACE, race); } uint32 GetRaceMask() const { return 1 << (GetRace() - 1); } uint8 GetClass() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS); } - void SetClass(uint8 unitClass) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS, unitClass); } + void SetClass(uint8 classId) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS, classId); } uint32 GetClassMask() const { return 1 << (GetClass() - 1); } - uint8 GetGender() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER); } - void SetGender(uint8 gender) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, gender); } - virtual uint8 GetNativeGender() const { return GetGender(); } - virtual void SetNativeGender(uint8 gender) { SetGender(gender); } + Gender GetGender() const { return Gender(GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER)); } + void SetGender(Gender gender) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, gender); } + virtual Gender GetNativeGender() const { return GetGender(); } + virtual void SetNativeGender(Gender gender) { SetGender(gender); } float GetStat(Stats stat) const { return float(GetUInt32Value(UNIT_FIELD_STAT0+stat)); } void SetStat(Stats stat, int32 val) { SetStatInt32Value(UNIT_FIELD_STAT0+stat, val); } uint32 GetArmor() const { return GetResistance(SPELL_SCHOOL_NORMAL); } void SetArmor(int32 val) { SetResistance(SPELL_SCHOOL_NORMAL, val); } - uint32 GetResistance(SpellSchools school) const { return GetUInt32Value(UNIT_FIELD_RESISTANCES+school); } - uint32 GetResistance(SpellSchoolMask mask) const; - void SetResistance(SpellSchools school, int32 val) { SetStatInt32Value(UNIT_FIELD_RESISTANCES+school, val); } + int32 GetResistance(SpellSchools school) const { return GetInt32Value(UNIT_FIELD_RESISTANCES + school); } + int32 GetResistance(SpellSchoolMask mask) const; + void SetResistance(SpellSchools school, int32 val) { SetStatInt32Value(UNIT_FIELD_RESISTANCES + school, val); } static float CalculateAverageResistReduction(WorldObject const* caster, SpellSchoolMask schoolMask, Unit const* victim, SpellInfo const* spellInfo = nullptr); uint32 GetHealth() const { return GetUInt32Value(UNIT_FIELD_HEALTH); } @@ -924,6 +932,8 @@ class TC_GAME_API Unit : public WorldObject void UpdateDisplayPower(); uint32 GetPower(Powers power) const { return GetUInt32Value(UNIT_FIELD_POWER1 +power); } uint32 GetMaxPower(Powers power) const { return GetUInt32Value(UNIT_FIELD_MAXPOWER1+power); } + float GetPowerPct(Powers power) const { return GetMaxPower(power) ? 100.f * GetPower(power) / GetMaxPower(power) : 0.0f; } + int32 CountPctFromMaxPower(Powers power, int32 pct) const { return CalculatePct(GetMaxPower(power), pct); } void SetPower(Powers power, uint32 val, bool withPowerUpdate = true); void SetMaxPower(Powers power, uint32 val); inline void SetFullPower(Powers power) { SetPower(power, GetMaxPower(power)); } @@ -935,6 +945,25 @@ class TC_GAME_API Unit : public WorldObject void ApplyAttackTimePercentMod(WeaponAttackType att, float val, bool apply); void ApplyCastTimePercentMod(float val, bool apply); + void SetModCastingSpeed(float castingSpeed) { SetFloatValue(UNIT_MOD_CAST_SPEED, castingSpeed); } + + UnitFlags GetUnitFlags() const { return UnitFlags(GetUInt32Value(UNIT_FIELD_FLAGS)); } + bool HasUnitFlag(UnitFlags flags) const { return HasFlag(UNIT_FIELD_FLAGS, flags); } + void SetUnitFlag(UnitFlags flags) { SetFlag(UNIT_FIELD_FLAGS, flags); } + void RemoveUnitFlag(UnitFlags flags) { RemoveFlag(UNIT_FIELD_FLAGS, flags); } + void ReplaceAllUnitFlags(UnitFlags flags) { SetUInt32Value(UNIT_FIELD_FLAGS, flags); } + + UnitFlags2 GetUnitFlags2() const { return UnitFlags2(GetUInt32Value(UNIT_FIELD_FLAGS_2)); } + bool HasUnitFlag2(UnitFlags2 flags) const { return HasFlag(UNIT_FIELD_FLAGS_2, flags); } + void SetUnitFlag2(UnitFlags2 flags) { SetFlag(UNIT_FIELD_FLAGS_2, flags); } + void RemoveUnitFlag2(UnitFlags2 flags) { RemoveFlag(UNIT_FIELD_FLAGS_2, flags); } + void ReplaceAllUnitFlags2(UnitFlags2 flags) { SetUInt32Value(UNIT_FIELD_FLAGS_2, flags); } + + void SetCreatedBySpell(int32 spellId) { SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId); } + + Emote GetEmoteState() const { return Emote(GetUInt32Value(UNIT_NPC_EMOTESTATE)); } + void SetEmoteState(Emote emote) { SetUInt32Value(UNIT_NPC_EMOTESTATE, emote); } + SheathState GetSheath() const { return SheathState(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE)); } virtual void SetSheath(SheathState sheathed) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE, sheathed); } @@ -946,27 +975,42 @@ class TC_GAME_API Unit : public WorldObject bool IsInRaidWith(Unit const* unit) const; void GetPartyMembers(std::list<Unit*> &units); bool IsContestedGuard() const; - bool IsInSanctuary() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY); } - bool IsPvP() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); } - bool IsFFAPvP() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); } + + UnitPVPStateFlags GetPvpFlags() const { return UnitPVPStateFlags(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); } + bool HasPvpFlag(UnitPVPStateFlags flags) const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); } + void SetPvpFlag(UnitPVPStateFlags flags) { SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); } + void RemovePvpFlag(UnitPVPStateFlags flags) { RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); } + void ReplaceAllPvpFlags(UnitPVPStateFlags flags) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); } + + bool IsInSanctuary() const { return HasPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY); } + bool IsPvP() const { return HasPvpFlag(UNIT_BYTE2_FLAG_PVP); } + bool IsFFAPvP() const { return HasPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); } virtual void SetPvP(bool state); + UnitPetFlag GetPetFlags() const { return UnitPetFlag(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS)); } + bool HasPetFlag(UnitPetFlag flags) const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); } + void SetPetFlag(UnitPetFlag flags) { SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); } + void RemovePetFlag(UnitPetFlag flags) { RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); } + void ReplaceAllPetFlags(UnitPetFlag flags) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); } + uint32 GetCreatureType() const; uint32 GetCreatureTypeMask() const; - uint8 GetStandState() const { return GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE); } + UnitStandStateType GetStandState() const { return UnitStandStateType(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE)); } bool IsSitState() const; bool IsStandState() const; - void SetStandState(uint8 state); + void SetStandState(UnitStandStateType state); - void SetAnimTier(AnimTier tier); - AnimTier GetAnimTier() const { return static_cast<AnimTier>(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER)); } + void SetVisFlag(UnitVisFlags flags) { SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); } + void RemoveVisFlag(UnitVisFlags flags) { RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); } + void ReplaceAllVisFlags(UnitVisFlags flags) { SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); } - void SetStandFlags(uint8 flags) { SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); } - void RemoveStandFlags(uint8 flags) { RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); } + AnimTier GetAnimTier() const { return AnimTier(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER)); } + void SetAnimTier(AnimTier animTier); - bool IsMounted() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT); } - uint32 GetMountID() const { return GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID); } + bool IsMounted() const { return HasUnitFlag(UNIT_FLAG_MOUNT); } + uint32 GetMountDisplayId() const { return GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID); } + void SetMountDisplayId(uint32 mountDisplayId) { SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mountDisplayId); } void Mount(uint32 mount, uint32 vehicleId = 0, uint32 creatureEntry = 0); void Dismount(); @@ -1001,7 +1045,7 @@ class TC_GAME_API Unit : public WorldObject ObjectGuid GetLastDamagedTargetGuid() const { return _lastDamagedTargetGuid; } void CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 damage, SpellInfo const* spellInfo, WeaponAttackType attackType = BASE_ATTACK, bool crit = false, Spell* spell = nullptr); - void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss); + void DealSpellDamage(SpellNonMeleeDamage const* damageInfo, bool durabilityLoss); // player or player's pet resilience (-1%) float GetMeleeCritChanceReduction() const { return GetCombatRatingReduction(CR_CRIT_TAKEN_MELEE); } @@ -1040,27 +1084,34 @@ class TC_GAME_API Unit : public WorldObject uint32 GetShieldBlockValue(uint32 soft_cap, uint32 hard_cap) const; uint32 GetDefenseSkillValue(Unit const* target = nullptr) const; uint32 GetWeaponSkillValue(WeaponAttackType attType, Unit const* target = nullptr) const; + float GetWeaponProcChance() const; float GetPPMProcChance(uint32 WeaponSpeed, float PPM, SpellInfo const* spellProto) const; MeleeHitOutcome RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackType attType) const; - bool IsVendor() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR); } - bool IsTrainer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TRAINER); } - bool IsQuestGiver() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); } - bool IsGossip() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); } - bool IsTaxi() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER); } - bool IsGuildMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PETITIONER); } - bool IsBattleMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BATTLEMASTER); } - bool IsBanker() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER); } - bool IsInnkeeper() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_INNKEEPER); } - bool IsSpiritHealer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER); } - bool IsSpiritGuide() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); } - bool IsTabardDesigner()const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TABARDDESIGNER); } - bool IsAuctioner() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_AUCTIONEER); } - bool IsArmorer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_REPAIR); } + NPCFlags GetNpcFlags() const { return NPCFlags(GetUInt32Value(UNIT_NPC_FLAGS)); } + bool HasNpcFlag(NPCFlags flags) const { return HasFlag(UNIT_NPC_FLAGS, flags) != 0; } + void SetNpcFlag(NPCFlags flags) { SetFlag(UNIT_NPC_FLAGS, flags); } + void RemoveNpcFlag(NPCFlags flags) { RemoveFlag(UNIT_NPC_FLAGS, flags); } + void ReplaceAllNpcFlags(NPCFlags flags) { SetUInt32Value(UNIT_NPC_FLAGS, flags); } + + bool IsVendor() const { return HasNpcFlag(UNIT_NPC_FLAG_VENDOR); } + bool IsTrainer() const { return HasNpcFlag(UNIT_NPC_FLAG_TRAINER); } + bool IsQuestGiver() const { return HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } + bool IsGossip() const { return HasNpcFlag(UNIT_NPC_FLAG_GOSSIP); } + bool IsTaxi() const { return HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER); } + bool IsGuildMaster() const { return HasNpcFlag(UNIT_NPC_FLAG_PETITIONER); } + bool IsBattleMaster() const { return HasNpcFlag(UNIT_NPC_FLAG_BATTLEMASTER); } + bool IsBanker() const { return HasNpcFlag(UNIT_NPC_FLAG_BANKER); } + bool IsInnkeeper() const { return HasNpcFlag(UNIT_NPC_FLAG_INNKEEPER); } + bool IsSpiritHealer() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER); } + bool IsSpiritGuide() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITGUIDE); } + bool IsTabardDesigner() const { return HasNpcFlag(UNIT_NPC_FLAG_TABARDDESIGNER); } + bool IsAuctioner() const { return HasNpcFlag(UNIT_NPC_FLAG_AUCTIONEER); } + bool IsArmorer() const { return HasNpcFlag(UNIT_NPC_FLAG_REPAIR); } bool IsServiceProvider() const; - bool IsSpiritService() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); } + bool IsSpiritService() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); } bool IsCritter() const { return GetCreatureType() == CREATURE_TYPE_CRITTER; } bool IsInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); } @@ -1081,14 +1132,14 @@ class TC_GAME_API Unit : public WorldObject bool IsImmuneToAll() const { return IsImmuneToPC() && IsImmuneToNPC(); } void SetImmuneToAll(bool apply, bool keepCombat); virtual void SetImmuneToAll(bool apply) { SetImmuneToAll(apply, false); } - bool IsImmuneToPC() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); } + bool IsImmuneToPC() const { return HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); } void SetImmuneToPC(bool apply, bool keepCombat); virtual void SetImmuneToPC(bool apply) { SetImmuneToPC(apply, false); } - bool IsImmuneToNPC() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); } + bool IsImmuneToNPC() const { return HasUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); } void SetImmuneToNPC(bool apply, bool keepCombat); virtual void SetImmuneToNPC(bool apply) { SetImmuneToNPC(apply, false); } - bool IsInCombat() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); } + bool IsInCombat() const { return HasUnitFlag(UNIT_FLAG_IN_COMBAT); } bool IsInCombatWith(Unit const* who) const { return who && m_combatManager.IsInCombatWith(who); } void SetInCombatWith(Unit* enemy) { if (enemy) m_combatManager.SetInCombatWith(enemy); } void ClearInCombat() { m_combatManager.EndAllCombat(); } @@ -1104,7 +1155,7 @@ class TC_GAME_API Unit : public WorldObject void SendClearTarget(); - bool HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, uint32 familyFlags) const; + bool HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, flag96 familyFlags) const; bool virtual HasSpell(uint32 /*spellID*/) const { return false; } bool HasBreakableByDamageAuraType(AuraType type, uint32 excludeAura = 0) const; bool HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel = nullptr) const; @@ -1138,7 +1189,7 @@ class TC_GAME_API Unit : public WorldObject void SendAttackStateUpdate(CalcDamageInfo* damageInfo); void SendAttackStateUpdate(uint32 HitInfo, Unit* target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount); - void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log); + void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const* log); void SendSpellNonMeleeDamageLog(Unit* target, uint32 spellID, uint32 damage, SpellSchoolMask damageSchoolMask, uint32 absorbedDamage, uint32 resist, bool isPeriodic, uint32 blocked, bool criticalHit = false, bool split = false); void SendPeriodicAuraLog(SpellPeriodicAuraLogInfo* pInfo); void SendSpellDamageResist(Unit* target, uint32 spellId); @@ -1158,10 +1209,10 @@ class TC_GAME_API Unit : public WorldObject void JumpTo(WorldObject* obj, float speedZ, bool withOrientation = false); void MonsterMoveWithSpeed(float x, float y, float z, float speed, bool generatePath = false, bool forceDestination = false); - //void SetFacing(float ori, WorldObject* obj = nullptr); - //void SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 type, uint32 MovementFlags, uint32 Time, Player* player = nullptr); void SendMovementFlagUpdate(bool self = false); + void SetHoverHeight(float hoverHeight) { SetFloatValue(UNIT_FIELD_HOVERHEIGHT, hoverHeight); } + bool IsGravityDisabled() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); } bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING); } bool IsHovering() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_HOVER); } @@ -1192,10 +1243,10 @@ class TC_GAME_API Unit : public WorldObject void SetCreatorGUID(ObjectGuid creator) { SetGuidValue(UNIT_FIELD_CREATEDBY, creator); } ObjectGuid GetMinionGUID() const { return GetGuidValue(UNIT_FIELD_SUMMON); } void SetMinionGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_SUMMON, guid); } - void SetPetGUID(ObjectGuid guid) { m_SummonSlot[SUMMON_SLOT_PET] = guid; } ObjectGuid GetPetGUID() const { return m_SummonSlot[SUMMON_SLOT_PET]; } - void SetCritterGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CRITTER, guid); } + void SetPetGUID(ObjectGuid guid) { m_SummonSlot[SUMMON_SLOT_PET] = guid; } ObjectGuid GetCritterGUID() const { return GetGuidValue(UNIT_FIELD_CRITTER); } + void SetCritterGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CRITTER, guid); } ObjectGuid GetCharmerGUID() const { return GetGuidValue(UNIT_FIELD_CHARMEDBY); } Unit* GetCharmer() const { return m_charmer; } @@ -1235,6 +1286,8 @@ class TC_GAME_API Unit : public WorldObject CharmInfo* GetCharmInfo() { return m_charmInfo; } CharmInfo* InitCharmInfo(); void DeleteCharmInfo(); + void SetPetNumberForClient(uint32 petNumber) { SetUInt32Value(UNIT_FIELD_PETNUMBER, petNumber); } + void SetPetNameTimestamp(uint32 timestamp) { SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, timestamp); } // base client control of this unit (possess effects, vehicles and similar). Not affected by temporary CC. bool IsCharmerOrSelfPlayer() const { return GetCharmerOrSelf()->IsPlayer(); } @@ -1328,6 +1381,7 @@ class TC_GAME_API Unit : public WorldObject void _ApplyAllAuraStatMods(); AuraEffectList const& GetAuraEffectsByType(AuraType type) const { return m_modAuras[type]; } + AuraEffectList& GetAuraEffectsByType(AuraType type) { return m_modAuras[type]; } AuraList & GetSingleCastAuras() { return m_scAuras; } AuraList const& GetSingleCastAuras() const { return m_scAuras; } @@ -1400,6 +1454,8 @@ class TC_GAME_API Unit : public WorldObject float GetNegStat(Stats stat) const { return GetFloatValue(UNIT_FIELD_NEGSTAT0+stat); } float GetCreateStat(Stats stat) const { return m_createStats[stat]; } + uint32 GetChannelSpellId() const { return GetUInt32Value(UNIT_CHANNEL_SPELL); } + void SetChannelSpellId(uint32 channelSpellId) { SetUInt32Value(UNIT_CHANNEL_SPELL, channelSpellId); } ObjectGuid GetChannelObjectGuid() const { return GetGuidValue(UNIT_FIELD_CHANNEL_OBJECT); } void SetChannelObjectGuid(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CHANNEL_OBJECT, guid); } @@ -1424,8 +1480,8 @@ class TC_GAME_API Unit : public WorldObject virtual bool HasSpellFocus(Spell const* /*focusSpell*/ = nullptr) const { return false; } virtual bool IsMovementPreventedByCasting() const; - SpellHistory* GetSpellHistory() { return m_spellHistory; } - SpellHistory const* GetSpellHistory() const { return m_spellHistory; } + SpellHistory* GetSpellHistory() { return _spellHistory; } + SpellHistory const* GetSpellHistory() const { return _spellHistory; } ObjectGuid m_SummonSlot[MAX_SUMMON_SLOT]; ObjectGuid m_ObjectSlot[MAX_GAMEOBJECT_SLOT]; @@ -1443,6 +1499,7 @@ class TC_GAME_API Unit : public WorldObject int32 m_baseSpellCritChance; float m_modAttackSpeedPct[MAX_ATTACK]; + uint32 m_attackTimer[MAX_ATTACK]; // stat system void HandleStatFlatModifier(UnitMods unitMod, UnitModifierFlatType modifierType, float amount, bool apply); @@ -1480,6 +1537,14 @@ class TC_GAME_API Unit : public WorldObject virtual void UpdateMaxHealth() = 0; virtual void UpdateMaxPower(Powers power) = 0; virtual void UpdateAttackPowerAndDamage(bool ranged = false) = 0; + void SetAttackPower(int32 attackPower) { SetInt32Value(UNIT_FIELD_ATTACK_POWER, attackPower); } + void SetAttackPowerModPos(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_ATTACK_POWER_MODS, 0, attackPowerMod); } + void SetAttackPowerModNeg(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_ATTACK_POWER_MODS, 1, attackPowerMod); } + void SetAttackPowerMultiplier(float attackPowerMult) { SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attackPowerMult); } + void SetRangedAttackPower(int32 attackPower) { SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, attackPower); } + void SetRangedAttackPowerModPos(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 0, attackPowerMod); } + void SetRangedAttackPowerModNeg(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 1, attackPowerMod); } + void SetRangedAttackPowerMultiplier(float attackPowerMult) { SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER, attackPowerMult); } virtual void UpdateDamagePhysical(WeaponAttackType attType); float GetTotalAttackPowerValue(WeaponAttackType attType) const; float GetWeaponDamageRange(WeaponAttackType attType, WeaponDamageRange type, uint8 damageIndex = 0) const; @@ -1502,13 +1567,13 @@ class TC_GAME_API Unit : public WorldObject SpellImmuneContainer m_spellImmune[MAX_SPELL_IMMUNITY]; uint32 m_lastSanctuaryTime; - VisibleAuraMap const* GetVisibleAuras() { return &m_visibleAuras; } - AuraApplication * GetVisibleAura(uint8 slot) const; - void SetVisibleAura(uint8 slot, AuraApplication * aur); + VisibleAuraMap const& GetVisibleAuras() const { return m_visibleAuras; } + AuraApplication* GetVisibleAura(uint8 slot) const; + void SetVisibleAura(uint8 slot, AuraApplication* aurApp); void RemoveVisibleAura(uint8 slot); - uint32 GetInterruptMask() const { return m_interruptMask; } - void AddInterruptMask(uint32 mask) { m_interruptMask |= mask; } + bool HasInterruptFlag(uint32 flags) const { return (m_interruptMask & flags) != 0; } + void AddInterruptMask(uint32 flags) { m_interruptMask |= flags; } void UpdateInterruptMask(); virtual float GetNativeObjectScale() const { return 1.0f; } @@ -1517,25 +1582,27 @@ class TC_GAME_API Unit : public WorldObject virtual void SetDisplayId(uint32 modelId); uint32 GetNativeDisplayId() const { return GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID); } void RestoreDisplayId(); - void SetNativeDisplayId(uint32 modelId) { SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, modelId); } + void SetNativeDisplayId(uint32 displayId) { SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, displayId); } void SetTransformSpell(uint32 spellid) { m_transformSpell = spellid;} uint32 GetTransformSpell() const { return m_transformSpell;} // DynamicObject management void _RegisterDynObject(DynamicObject* dynObj); void _UnregisterDynObject(DynamicObject* dynObj); - DynamicObject* GetDynObject(uint32 spellId); + DynamicObject* GetDynObject(uint32 spellId) const; + std::vector<DynamicObject*> GetDynObjects(uint32 spellId) const; void RemoveDynObject(uint32 spellId); void RemoveAllDynObjects(); GameObject* GetGameObject(uint32 spellId) const; + std::vector<GameObject*> GetGameObjects(uint32 spellId) const; void AddGameObject(GameObject* gameObj); void RemoveGameObject(GameObject* gameObj, bool del); void RemoveGameObject(uint32 spellid, bool del); void RemoveAllGameObjects(); void ModifyAuraState(AuraStateType flag, bool apply); - uint32 BuildAuraStateUpdateForTarget(Unit* target) const; + uint32 BuildAuraStateUpdateForTarget(Unit const* target) const; bool HasAuraState(AuraStateType flag, SpellInfo const* spellProto = nullptr, Unit const* Caster = nullptr) const; void UnsummonAllTotems(); bool IsMagnet() const; @@ -1606,17 +1673,19 @@ class TC_GAME_API Unit : public WorldObject void PauseMovement(uint32 timer = 0, uint8 slot = 0, bool forced = true); // timer in ms void ResumeMovement(uint32 timer = 0, uint8 slot = 0); // timer in ms - void AddUnitMovementFlag(uint32 f) { m_movementInfo.flags |= f; } - void RemoveUnitMovementFlag(uint32 f) { m_movementInfo.flags &= ~f; } - bool HasUnitMovementFlag(uint32 f) const { return (m_movementInfo.flags & f) == f; } - uint32 GetUnitMovementFlags() const { return m_movementInfo.flags; } - void SetUnitMovementFlags(uint32 f) { m_movementInfo.flags = f; } + void AddUnitMovementFlag(uint32 f) { m_movementInfo.AddMovementFlag(f); } + void RemoveUnitMovementFlag(uint32 f) { m_movementInfo.RemoveMovementFlag(f); } + bool HasUnitMovementFlag(uint32 f) const { return m_movementInfo.HasMovementFlag(f); } + uint32 GetUnitMovementFlags() const { return m_movementInfo.GetMovementFlags(); } + void SetUnitMovementFlags(uint32 f) { m_movementInfo.SetMovementFlags(f); } + + void AddExtraUnitMovementFlag(uint32 f) { m_movementInfo.AddExtraMovementFlag(f); } + void RemoveExtraUnitMovementFlag(uint32 f) { m_movementInfo.RemoveExtraMovementFlag(f); } + bool HasExtraUnitMovementFlag(uint32 f) const { return m_movementInfo.HasExtraMovementFlag(f); } + uint32 GetExtraUnitMovementFlags() const { return m_movementInfo.GetExtraMovementFlags(); } + void SetExtraUnitMovementFlags(uint32 f) { m_movementInfo.SetExtraMovementFlags(f); } - void AddExtraUnitMovementFlag(uint16 f) { m_movementInfo.flags2 |= f; } - void RemoveExtraUnitMovementFlag(uint16 f) { m_movementInfo.flags2 &= ~f; } - uint16 HasExtraUnitMovementFlag(uint16 f) const { return m_movementInfo.flags2 & f; } - uint16 GetExtraUnitMovementFlags() const { return m_movementInfo.flags2; } - void SetExtraUnitMovementFlags(uint16 f) { m_movementInfo.flags2 = f; } + bool IsSplineEnabled() const; void SetControlled(bool apply, UnitState state); void ApplyControlStatesIfNeeded(); @@ -1637,8 +1706,8 @@ class TC_GAME_API Unit : public WorldObject void ClearComboPointHolders(); ///----------Pet responses methods----------------- - void SendPetActionFeedback (uint8 msg); - void SendPetTalk (uint32 pettalk); + void SendPetActionFeedback(uint8 msg); + void SendPetTalk(uint32 pettalk); void SendPetAIReaction(ObjectGuid guid); ///----------End of Pet responses methods---------- @@ -1748,6 +1817,8 @@ class TC_GAME_API Unit : public WorldObject virtual void Whisper(uint32 textId, Player* target, bool isBossWhisper = false); float GetCollisionHeight() const override; + uint32 GetVirtualItemId(uint32 slot) const; + void SetVirtualItem(uint32 slot, uint32 itemId); // returns if the unit can't enter combat bool IsCombatDisallowed() const { return _isCombatDisallowed; } @@ -1755,6 +1826,7 @@ class TC_GAME_API Unit : public WorldObject void SetIsCombatDisallowed(bool apply) { _isCombatDisallowed = apply; } std::string GetDebugInfo() const override; + protected: explicit Unit (bool isWorldObject); @@ -1769,8 +1841,6 @@ class TC_GAME_API Unit : public WorldObject bool m_AutoRepeatFirstCast; - uint32 m_attackTimer[MAX_ATTACK]; - float m_createStats[MAX_STATS]; AttackerSet m_attackers; @@ -1806,6 +1876,7 @@ class TC_GAME_API Unit : public WorldObject float m_auraPctModifiersGroup[UNIT_MOD_END][MODIFIER_TYPE_PCT_END]; float m_weaponDamage[MAX_ATTACK][2][2]; bool m_canModifyStats; + VisibleAuraMap m_visibleAuras; float m_speed_rate[MAX_MOVE_TYPE]; @@ -1856,7 +1927,6 @@ class TC_GAME_API Unit : public WorldObject void ProcSkillsAndReactives(bool isVictim, Unit* procTarget, uint32 typeMask, uint32 hitMask, WeaponAttackType attType); protected: - void SetFeared(bool apply); void SetConfused(bool apply); void SetStunned(bool apply); @@ -1870,7 +1940,7 @@ class TC_GAME_API Unit : public WorldObject uint32 m_lastManaUse; // msecs TimeTracker m_splineSyncTimer; - DiminishingReturn m_Diminishing[DIMINISHING_MAX]; + Diminishing m_Diminishing; // Threat+combat management friend class CombatManager; @@ -1902,7 +1972,8 @@ class TC_GAME_API Unit : public WorldObject uint32 _oldFactionId; ///< faction before charm bool _isWalkingBeforeCharm; ///< Are we walking before we were charmed? - SpellHistory* m_spellHistory; + SpellHistory* _spellHistory; + PositionUpdateInfo _positionUpdateInfo; bool _isCombatDisallowed; @@ -1928,15 +1999,15 @@ namespace Trinity { Unit const* a = objA->ToUnit(); Unit const* b = objB->ToUnit(); - float rA = (a && a->GetMaxPower(_power)) ? float(a->GetPower(_power)) / float(a->GetMaxPower(_power)) : 0.0f; - float rB = (b && b->GetMaxPower(_power)) ? float(b->GetPower(_power)) / float(b->GetMaxPower(_power)) : 0.0f; + float rA = a ? a->GetPowerPct(_power) : 0.0f; + float rB = b ? b->GetPowerPct(_power) : 0.0f; return _ascending ? rA < rB : rA > rB; } bool operator()(Unit const* a, Unit const* b) const { - float rA = a->GetMaxPower(_power) ? float(a->GetPower(_power)) / float(a->GetMaxPower(_power)) : 0.0f; - float rB = b->GetMaxPower(_power) ? float(b->GetPower(_power)) / float(b->GetMaxPower(_power)) : 0.0f; + float rA = a->GetPowerPct(_power); + float rB = b->GetPowerPct(_power); return _ascending ? rA < rB : rA > rB; } diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h index 269798d99bb..b95c0d4c1ac 100644 --- a/src/server/game/Entities/Unit/UnitDefines.h +++ b/src/server/game/Entities/Unit/UnitDefines.h @@ -19,6 +19,7 @@ #define UnitDefines_h__ #include "Define.h" +#include "EnumFlag.h" #include <string> #define BASE_MINDAMAGE 1.0f @@ -43,14 +44,14 @@ enum UnitStandStateType : uint8 }; // byte flag value (UNIT_FIELD_BYTES_1, 2) -enum UnitStandFlags : uint8 +enum UnitVisFlags : uint8 { - UNIT_STAND_FLAGS_UNK1 = 0x01, - UNIT_STAND_FLAGS_CREEP = 0x02, - UNIT_STAND_FLAGS_UNTRACKABLE = 0x04, - UNIT_STAND_FLAGS_UNK4 = 0x08, - UNIT_STAND_FLAGS_UNK5 = 0x10, - UNIT_STAND_FLAGS_ALL = 0xFF + UNIT_VIS_FLAGS_UNK1 = 0x01, + UNIT_VIS_FLAGS_CREEP = 0x02, + UNIT_VIS_FLAGS_UNTRACKABLE = 0x04, + UNIT_VIS_FLAGS_UNK4 = 0x08, + UNIT_VIS_FLAGS_UNK5 = 0x10, + UNIT_VIS_FLAGS_ALL = 0xFF }; enum UnitBytes0Offsets : uint8 @@ -100,6 +101,7 @@ enum SheathState : uint8 // byte (1 from 0..3) of UNIT_FIELD_BYTES_2 enum UnitPVPStateFlags : uint8 { + UNIT_BYTE2_FLAG_NONE = 0x00, UNIT_BYTE2_FLAG_PVP = 0x01, UNIT_BYTE2_FLAG_UNK1 = 0x02, UNIT_BYTE2_FLAG_FFA_PVP = 0x04, @@ -110,13 +112,18 @@ enum UnitPVPStateFlags : uint8 UNIT_BYTE2_FLAG_UNK7 = 0x80 }; +DEFINE_ENUM_FLAG(UnitPVPStateFlags); + // byte (2 from 0..3) of UNIT_FIELD_BYTES_2 -enum UnitRename : uint8 +enum UnitPetFlag : uint8 { - UNIT_CAN_BE_RENAMED = 0x01, - UNIT_CAN_BE_ABANDONED = 0x02 + UNIT_PET_FLAG_NONE = 0x0, + UNIT_PET_FLAG_CAN_BE_RENAMED = 0x01, + UNIT_PET_FLAG_CAN_BE_ABANDONED = 0x02 }; +DEFINE_ENUM_FLAG(UnitPetFlag); + // Value masks for UNIT_FIELD_FLAGS // EnumUtils: DESCRIBE THIS enum UnitFlags : uint32 @@ -165,6 +172,8 @@ enum UnitFlags : uint32 UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED) }; +DEFINE_ENUM_FLAG(UnitFlags); + // Value masks for UNIT_FIELD_FLAGS_2 enum UnitFlags2 : uint32 { @@ -214,6 +223,8 @@ enum UnitFlags2 : uint32 UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED) }; +DEFINE_ENUM_FLAG(UnitFlags2); + /// Non Player Character flags // EnumUtils: DESCRIBE THIS enum NPCFlags : uint32 @@ -248,6 +259,8 @@ enum NPCFlags : uint32 UNIT_NPC_FLAG_MAILBOX = 0x04000000 // TITLE is mailbox }; +DEFINE_ENUM_FLAG(NPCFlags); + enum MovementFlags : uint32 { MOVEMENTFLAG_NONE = 0x00000000, diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 9f8f757e7f2..b2a81e4a12c 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -50,9 +50,9 @@ UsableSeatNum(0), _me(unit), _vehicleInfo(vehInfo), _creatureEntry(creatureEntry // Set or remove correct flags based on available seats. Will overwrite db data (if wrong). if (UsableSeatNum) - _me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); + _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); else - _me->RemoveFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); + _me->RemoveNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); InitMovementInfoForBase(); } @@ -506,11 +506,11 @@ Vehicle* Vehicle::RemovePassenger(Unit* unit) unit->GetName().c_str(), _me->GetEntry(), _vehicleInfo->ID, _me->GetGUID().ToString().c_str(), (int32)seat->first); if (seat->second.SeatInfo->CanEnterOrExit() && ++UsableSeatNum) - _me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); + _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK)); // Remove UNIT_FLAG_UNINTERACTIBLE if passenger did not have it before entering vehicle if (seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE && !seat->second.Passenger.IsUninteractible) - unit->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + unit->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); seat->second.Passenger.Reset(); @@ -819,7 +819,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32) Passenger->SetVehicle(Target); Seat->second.Passenger.Guid = Passenger->GetGUID(); - Seat->second.Passenger.IsUninteractible = Passenger->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Seat->second.Passenger.IsUninteractible = Passenger->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Seat->second.SeatInfo->CanEnterOrExit()) { ASSERT(Target->UsableSeatNum); @@ -827,9 +827,9 @@ bool VehicleJoinEvent::Execute(uint64, uint32) if (!Target->UsableSeatNum) { if (Target->GetBase()->GetTypeId() == TYPEID_PLAYER) - Target->GetBase()->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE); + Target->GetBase()->RemoveNpcFlag(UNIT_NPC_FLAG_PLAYER_VEHICLE); else - Target->GetBase()->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); + Target->GetBase()->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); } } @@ -854,7 +854,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32) } if (veSeat->HasFlag(VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE)) - Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Passenger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); float o = veSeatAddon ? veSeatAddon->SeatOrientationOffset : 0.f; float x = veSeat->AttachmentOffset.X; diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 88a47de0c40..db842a39461 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -1221,7 +1221,7 @@ void GameEventMgr::UpdateEventNPCFlags(uint16 event_id) if (CreatureTemplate const* creatureTemplate = creature->GetCreatureTemplate()) npcflag |= creatureTemplate->npcflag; - creature->SetUInt32Value(UNIT_NPC_FLAGS, npcflag); + creature->ReplaceAllNpcFlags(NPCFlags(npcflag)); // reset gossip options, since the flag change might have added / removed some //cr->ResetGossipOptions(); } diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 5fa661038fc..f6e51d9aeb7 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -883,7 +883,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder) // Set FFA PvP for non GM in non-rest mode if (sWorld->IsFFAPvPRealm() && !pCurrChar->IsGameMaster() && !pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING)) - pCurrChar->SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + pCurrChar->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); if (pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CONTESTED_PVP)) pCurrChar->SetContestedPvP(); @@ -1333,7 +1333,7 @@ void WorldSession::HandleAlterAppearance(WorldPacket& recvData) _player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, 1); - _player->SetStandState(0); // stand up + _player->SetStandState(UNIT_STAND_STATE_STAND); } void WorldSession::HandleRemoveGlyph(WorldPacket& recvData) diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index b711826f51e..05b25c334b2 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -258,7 +258,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) player->SetLootGUID(ObjectGuid::Empty); player->SendLootRelease(lguid); - player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_LOOTING); + player->RemoveUnitFlag(UNIT_FLAG_LOOTING); if (!player->IsInWorld()) return; @@ -358,7 +358,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) loot = &creature->loot; if (loot->isLooted()) { - creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + creature->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); // skip pickpocketing loot for speed, skinning timer reduction is no-op in fact if (!creature->IsAlive()) diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index f549f75b49f..ec577cf5f77 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -394,7 +394,7 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequ if (GetPlayer()->GetStandState() == UNIT_STAND_STATE_STAND) GetPlayer()->SetStandState(UNIT_STAND_STATE_SIT); GetPlayer()->SetRooted(true); - GetPlayer()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + GetPlayer()->SetUnitFlag(UNIT_FLAG_STUNNED); } SetLogoutStartTime(GameTime::GetGameTime()); @@ -424,7 +424,7 @@ void WorldSession::HandleLogoutCancelOpcode(WorldPackets::Character::LogoutCance GetPlayer()->SetStandState(UNIT_STAND_STATE_STAND); //! DISABLE_ROTATE - GetPlayer()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + GetPlayer()->RemoveUnitFlag(UNIT_FLAG_STUNNED); } } @@ -491,7 +491,7 @@ void WorldSession::HandleStandStateChangeOpcode(WorldPacket& recvData) return; } - _player->SetStandState(animstate); + _player->SetStandState(UnitStandStateType(animstate)); } void WorldSession::HandleBugOpcode(WorldPacket& recvData) @@ -635,7 +635,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData) player->SetRestFlag(REST_FLAG_IN_TAVERN, atEntry->ID); if (sWorld->IsFFAPvPRealm()) - player->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); + player->RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); return; } diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 95409b0a88d..a068faff376 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -598,7 +598,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData) PetStable* petStable = _player->GetPetStable(); Pet* pet = ObjectAccessor::GetPet(*_player, petguid); - if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType() != HUNTER_PET || !pet->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED) || + if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType() != HUNTER_PET || !pet->HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED) || pet->GetOwnerGUID() != _player->GetGUID() || !pet->GetCharmInfo() || !petStable || !petStable->CurrentPet || petStable->CurrentPet->PetNumber != pet->GetCharmInfo()->GetPetNumber()) return; @@ -621,7 +621,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData) if (pet->GetOwner()->GetGroup()) pet->GetOwner()->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_NAME); - pet->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED); + pet->RemovePetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED); petStable->CurrentPet->Name = name; petStable->CurrentPet->WasRenamed = true; @@ -669,7 +669,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData) CharacterDatabase.CommitTransaction(trans); - pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped + pet->SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped } void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet) @@ -901,7 +901,7 @@ void WorldSession::HandleRequestPetInfo(WorldPackets::Pet::RequestPetInfo& /*pac if (charm->HasUnitState(UNIT_STATE_POSSESSED)) _player->PossessSpellInitialize(); // Packet sent when player controlling a vehicle - else if (charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED)) + else if (charm->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasUnitFlag(UNIT_FLAG_POSSESSED)) _player->VehicleSpellInitialize(); // Packet sent when player has a charmed unit else diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index a2793fa2e98..1c6cdf1ce89 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -43,7 +43,7 @@ void WorldSession::SendTaxiStatus(ObjectGuid guid) { Player* const player = GetPlayer(); Creature* unit = ObjectAccessor::GetCreature(*player, guid); - if (!unit || unit->IsHostileTo(player) || !unit->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER)) + if (!unit || unit->IsHostileTo(player) || !unit->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER)) { TC_LOG_DEBUG("network", "WorldSession::SendTaxiStatus - %s not found or you can't interact with him.", guid.ToString().c_str()); return; diff --git a/src/server/game/Maps/MapScripts.cpp b/src/server/game/Maps/MapScripts.cpp index 63c4113348e..76743e9ba33 100644 --- a/src/server/game/Maps/MapScripts.cpp +++ b/src/server/game/Maps/MapScripts.cpp @@ -448,7 +448,7 @@ void Map::ScriptsProcess() if (Creature* cSource = _GetScriptCreatureSourceOrTarget(source, target, step.script)) { if (step.script->Emote.Flags & SF_EMOTE_USE_STATE) - cSource->SetUInt32Value(UNIT_NPC_EMOTESTATE, step.script->Emote.EmoteID); + cSource->SetEmoteState(Emote(step.script->Emote.EmoteID)); else cSource->HandleEmoteCommand(static_cast<Emote>(step.script->Emote.EmoteID)); } diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp index 983591d6718..77331379a75 100755 --- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp @@ -49,7 +49,7 @@ void ConfusedMovementGenerator<T>::DoInitialize(T* owner) return; // TODO: UNIT_FIELD_FLAGS should not be handled by generators - owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); + owner->SetUnitFlag(UNIT_FLAG_CONFUSED); owner->StopMoving(); _timer.Reset(0); @@ -144,7 +144,7 @@ void ConfusedMovementGenerator<Player>::DoFinalize(Player* owner, bool active, b if (active) { - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); + owner->RemoveUnitFlag(UNIT_FLAG_CONFUSED); owner->StopMoving(); } } @@ -156,7 +156,7 @@ void ConfusedMovementGenerator<Creature>::DoFinalize(Creature* owner, bool activ if (active) { - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); + owner->RemoveUnitFlag(UNIT_FLAG_CONFUSED); owner->ClearUnitState(UNIT_STATE_CONFUSED_MOVE); if (owner->GetVictim()) owner->SetTarget(owner->EnsureVictim()->GetGUID()); diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp index cf724b38f88..66d596e3c12 100644 --- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp @@ -54,7 +54,7 @@ void FleeingMovementGenerator<T>::DoInitialize(T* owner) return; // TODO: UNIT_FIELD_FLAGS should not be handled by generators - owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); + owner->SetUnitFlag(UNIT_FLAG_FLEEING); _path = nullptr; SetTargetLocation(owner); @@ -113,7 +113,7 @@ void FleeingMovementGenerator<Player>::DoFinalize(Player* owner, bool active, bo if (active) { - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); + owner->RemoveUnitFlag(UNIT_FLAG_FLEEING); owner->ClearUnitState(UNIT_STATE_FLEEING_MOVE); owner->StopMoving(); } @@ -126,7 +126,7 @@ void FleeingMovementGenerator<Creature>::DoFinalize(Creature* owner, bool active if (active) { - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); + owner->RemoveUnitFlag(UNIT_FLAG_FLEEING); owner->ClearUnitState(UNIT_STATE_FLEEING_MOVE); if (owner->GetVictim()) owner->SetTarget(owner->EnsureVictim()->GetGUID()); @@ -256,7 +256,7 @@ void TimedFleeingMovementGenerator::Finalize(Unit* owner, bool active, bool move if (!active) return; - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); + owner->RemoveUnitFlag(UNIT_FLAG_FLEEING); owner->StopMoving(); if (Unit* victim = owner->GetVictim()) { diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp index 88237cfc6a7..9c8dd63af2d 100644 --- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp @@ -72,7 +72,7 @@ void FlightPathMovementGenerator::DoReset(Player* owner) RemoveFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED); owner->CombatStopWithPets(); - owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); + owner->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); uint32 end = GetPathAtMapEnd(); uint32 currentNodeId = GetCurrentNode(); @@ -156,7 +156,7 @@ void FlightPathMovementGenerator::DoFinalize(Player* owner, bool active, bool/* uint32 taxiNodeId = owner->m_taxi.GetTaxiDestination(); owner->m_taxi.ClearTaxiDestinations(); owner->Dismount(); - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); + owner->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI); if (owner->m_taxi.empty()) { diff --git a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp index 2e44fc4ce3d..9d2f98ac4b4 100644 --- a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp @@ -145,7 +145,7 @@ void HomeMovementGenerator<Creature>::DoFinalize(Creature* owner, bool active, b if (movementInform && HasFlag(MOVEMENTGENERATOR_FLAG_INFORM_ENABLED)) { if (!owner->HasCanSwimFlagOutOfCombat()) - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM); + owner->RemoveUnitFlag(UNIT_FLAG_CAN_SWIM); owner->SetSpawnHealth(); owner->LoadCreaturesAddon(); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 471d1f059eb..6e4ed60221b 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1467,7 +1467,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo target->m_stealth.AddFlag(type); target->m_stealth.AddValue(type, GetAmount()); - target->SetStandFlags(UNIT_STAND_FLAGS_CREEP); + target->SetVisFlag(UNIT_VIS_FLAGS_CREEP); if (target->GetTypeId() == TYPEID_PLAYER) target->SetByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_AURA_VISION, PLAYER_FIELD_BYTE2_STEALTH); } @@ -1479,7 +1479,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo { target->m_stealth.DelFlag(type); - target->RemoveStandFlags(UNIT_STAND_FLAGS_CREEP); + target->RemoveVisFlag(UNIT_VIS_FLAGS_CREEP); if (target->GetTypeId() == TYPEID_PLAYER) target->RemoveByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_AURA_VISION, PLAYER_FIELD_BYTE2_STEALTH); } @@ -2096,8 +2096,8 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode, target->SetDisplayId(model_id); // Dragonmaw Illusion (set mount model also) - if (GetId() == 42016 && target->GetMountID() && !target->GetAuraEffectsByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED).empty()) - target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 16314); + if (GetId() == 42016 && target->GetMountDisplayId() && !target->GetAuraEffectsByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED).empty()) + target->SetMountDisplayId(16314); } } } @@ -2124,7 +2124,7 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode, target->RestoreDisplayId(); // Dragonmaw Illusion (restore mount model) - if (GetId() == 42016 && target->GetMountID() == 16314) + if (GetId() == 42016 && target->GetMountDisplayId() == 16314) { if (!target->GetAuraEffectsByType(SPELL_AURA_MOUNTED).empty()) { @@ -2134,7 +2134,7 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode, uint32 displayID = ObjectMgr::ChooseDisplayId(ci); sObjectMgr->GetCreatureModelRandomGender(&displayID); - target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID); + target->SetMountDisplayId(displayID); } } } @@ -2165,12 +2165,12 @@ void AuraEffect::HandleAuraCloneCaster(AuraApplication const* aurApp, uint8 mode // What must be cloned? at least display and scale target->SetDisplayId(caster->GetDisplayId()); //target->SetObjectScale(caster->GetObjectScale()); // we need retail info about how scaling is handled (aura maybe?) - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_MIRROR_IMAGE); + target->SetUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE); } else { target->SetDisplayId(target->GetNativeDisplayId()); - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_MIRROR_IMAGE); + target->RemoveUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE); } } @@ -2236,9 +2236,9 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo if (aurApp->GetRemoveMode()) return; - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->AddUnitState(UNIT_STATE_DIED); if (Creature* creature = target->ToCreature()) @@ -2253,9 +2253,9 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo target->SendMessageToSet(&data, true); */ - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->ClearUnitState(UNIT_STATE_DIED); if (Creature* creature = target->ToCreature()) @@ -2274,7 +2274,10 @@ void AuraEffect::HandleModUnattackable(AuraApplication const* aurApp, uint8 mode if (!apply && target->HasAuraType(SPELL_AURA_MOD_UNATTACKABLE)) return; - target->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2, apply); + if (apply) + target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2); + else + target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2); // call functions which may have additional effects after changing state of unit if (apply && (mode & AURA_EFFECT_HANDLE_REAL)) @@ -2303,26 +2306,34 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode, if (apply ? target->GetAuraEffectsByType(type).size() > 1 : target->HasAuraType(type)) return; - uint32 field, flag, slot; + void(*flagChangeFunc)(Unit * u) = nullptr; + + uint32 slot; WeaponAttackType attType; switch (type) { case SPELL_AURA_MOD_DISARM: - field = UNIT_FIELD_FLAGS; - flag = UNIT_FLAG_DISARMED; + if (apply) + flagChangeFunc = [](Unit* u) { u->SetUnitFlag(UNIT_FLAG_DISARMED); }; + else + flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag(UNIT_FLAG_DISARMED); }; slot = EQUIPMENT_SLOT_MAINHAND; attType = BASE_ATTACK; break; case SPELL_AURA_MOD_DISARM_OFFHAND: - field = UNIT_FIELD_FLAGS_2; - flag = UNIT_FLAG2_DISARM_OFFHAND; + if (apply) + flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); }; + else + flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); }; slot = EQUIPMENT_SLOT_OFFHAND; attType = OFF_ATTACK; break; case SPELL_AURA_MOD_DISARM_RANGED: - field = UNIT_FIELD_FLAGS_2; - flag = UNIT_FLAG2_DISARM_RANGED; - slot = EQUIPMENT_SLOT_RANGED; + if (apply) + flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_RANGED); }; + else + flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_RANGED); }; + slot = EQUIPMENT_SLOT_MAINHAND; attType = RANGED_ATTACK; break; default: @@ -2330,10 +2341,8 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode, } // set/remove flag before weapon bonuses so it's properly reflected in CanUseAttackType - if (apply) - target->SetFlag(field, flag); - else - target->RemoveFlag(field, flag); + if (flagChangeFunc) + flagChangeFunc(target); // Handle damage modification, shapeshifted druids are not affected if (target->GetTypeId() == TYPEID_PLAYER && !target->IsInFeralForm()) @@ -2366,7 +2375,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode, if (apply) { - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED); + target->SetUnitFlag(UNIT_FLAG_SILENCED); // call functions which may have additional effects after changing state of unit // Stop cast only spells vs PreventionType == SPELL_PREVENTION_TYPE_SILENCE @@ -2382,7 +2391,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode, if (target->HasAuraType(SPELL_AURA_MOD_SILENCE) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) return; - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED); + target->RemoveUnitFlag(UNIT_FLAG_SILENCED); } } @@ -2394,13 +2403,13 @@ void AuraEffect::HandleAuraModPacify(AuraApplication const* aurApp, uint8 mode, Unit* target = aurApp->GetTarget(); if (apply) - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + target->SetUnitFlag(UNIT_FLAG_PACIFIED); else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (target->HasAuraType(SPELL_AURA_MOD_PACIFY) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) return; - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + target->RemoveUnitFlag(UNIT_FLAG_PACIFIED); } } @@ -2416,9 +2425,9 @@ void AuraEffect::HandleAuraModPacifyAndSilence(AuraApplication const* aurApp, ui if (m_spellInfo->Id == 45839) { if (apply) - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); else - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } if (!(apply)) { @@ -2515,12 +2524,12 @@ void AuraEffect::HandleAuraModStalked(AuraApplication const* aurApp, uint8 mode, // used by spells: Hunter's Mark, Mind Vision, Syndicate Tracker (MURP) DND if (apply) - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT); + target->SetDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT); else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (!target->HasAuraType(GetAuraType())) - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT); + target->RemoveDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT); } // call functions which may have additional effects after changing state of unit @@ -2536,13 +2545,13 @@ void AuraEffect::HandleAuraUntrackable(AuraApplication const* aurApp, uint8 mode Unit* target = aurApp->GetTarget(); if (apply) - target->SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_STAND_FLAGS_UNTRACKABLE); + target->SetVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE); else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (target->HasAuraType(GetAuraType())) return; - target->RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_STAND_FLAGS_UNTRACKABLE); + target->RemoveVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE); } } @@ -2733,13 +2742,13 @@ void AuraEffect::HandleForceMoveForward(AuraApplication const* aurApp, uint8 mod Unit* target = aurApp->GetTarget(); if (apply) - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT); + target->SetUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT); else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (target->HasAuraType(GetAuraType())) return; - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT); + target->RemoveUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT); } } @@ -3056,8 +3065,8 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp, target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_POLYMORPH, apply); // Dragonmaw Illusion (overwrite mount model, mounted aura already applied) - if (apply && target->HasAuraEffect(42016, 0) && target->GetMountID()) - target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 16314); + if (apply && target->HasAuraEffect(42016, 0) && target->GetMountDisplayId()) + target->SetMountDisplayId(16314); } } } @@ -3192,7 +3201,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint if (apply) { - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE); + target->SetUnitFlag(UNIT_FLAG_IMMUNE); target->GetThreatManager().EvaluateSuppressed(); } else @@ -3200,7 +3209,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint // do not remove unit flag if there are more than this auraEffect of that kind on unit if (target->HasAuraType(GetAuraType()) || target->HasAuraType(SPELL_AURA_DAMAGE_IMMUNITY)) return; - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE); + target->RemoveUnitFlag(UNIT_FLAG_IMMUNE); } } @@ -3214,7 +3223,7 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m if (apply) { - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE); + target->SetUnitFlag(UNIT_FLAG_IMMUNE); target->GetThreatManager().EvaluateSuppressed(); } else @@ -3222,7 +3231,7 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m // do not remove unit flag if there are more than this auraEffect of that kind on unit if (target->HasAuraType(GetAuraType()) || target->HasAuraType(SPELL_AURA_SCHOOL_IMMUNITY)) return; - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE); + target->RemoveUnitFlag(UNIT_FLAG_IMMUNE); } } @@ -4290,13 +4299,13 @@ void AuraEffect::HandleArenaPreparation(AuraApplication const* aurApp, uint8 mod Unit* target = aurApp->GetTarget(); if (apply) - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION); + target->SetUnitFlag(UNIT_FLAG_PREPARATION); else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit if (target->HasAuraType(GetAuraType())) return; - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION); + target->RemoveUnitFlag(UNIT_FLAG_PREPARATION); } } @@ -4621,7 +4630,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool uint32 displayID = ObjectMgr::ChooseDisplayId(creatureInfo); sObjectMgr->GetCreatureModelRandomGender(&displayID); - target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID); + target->SetMountDisplayId(displayID); } } break; @@ -4781,7 +4790,12 @@ void AuraEffect::HandleAuraEmpathy(AuraApplication const* aurApp, uint8 mode, bo } if (target->GetCreatureType() == CREATURE_TYPE_BEAST) - target->ApplyModUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO, apply); + { + if (apply) + target->SetDynamicFlag(UNIT_DYNFLAG_SPECIALINFO); + else + target->RemoveDynamicFlag(UNIT_DYNFLAG_SPECIALINFO); + } } void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -4795,13 +4809,13 @@ void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode, { target->SetFaction(GetMiscValue()); if (target->GetTypeId() == TYPEID_PLAYER) - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + target->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } else { target->RestoreFaction(); if (target->GetTypeId() == TYPEID_PLAYER) - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + target->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } } @@ -4813,13 +4827,13 @@ void AuraEffect::HandleComprehendLanguage(AuraApplication const* aurApp, uint8 m Unit* target = aurApp->GetTarget(); if (apply) - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_COMPREHEND_LANG); + target->SetUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG); else { if (target->HasAuraType(GetAuraType())) return; - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_COMPREHEND_LANG); + target->RemoveUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG); } } diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 17a0d08bad0..ee58689813f 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -66,12 +66,12 @@ _flags(AFLAG_NONE), _effectsToApply(effMask), _needClientUpdate(false) } else { - Unit::VisibleAuraMap const* visibleAuras = GetTarget()->GetVisibleAuras(); + Unit::VisibleAuraMap const& visibleAuras = GetTarget()->GetVisibleAuras(); // lookup for free slots in units visibleAuras - Unit::VisibleAuraMap::const_iterator itr = visibleAuras->find(0); + Unit::VisibleAuraMap::const_iterator itr = visibleAuras.find(0); for (uint32 freeSlot = 0; freeSlot < MAX_AURAS; ++itr, ++freeSlot) { - if (itr == visibleAuras->end() || itr->first != freeSlot) + if (itr == visibleAuras.end() || itr->first != freeSlot) { slot = freeSlot; break; diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 3dff5e0439e..a72bffb6aa3 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2691,7 +2691,7 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, bool scaleAura, TargetInfo& if (m_caster != unit) { // Recheck UNIT_FLAG_NON_ATTACKABLE for delayed spells - if (m_spellInfo->Speed > 0.0f && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) && unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID()) + if (m_spellInfo->Speed > 0.0f && unit->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) && unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID()) return SPELL_MISS_EVADE; if (m_caster->IsValidAttackTarget(unit, m_spellInfo)) @@ -2714,7 +2714,7 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, bool scaleAura, TargetInfo& if (m_originalCaster && unit->IsInCombat() && m_spellInfo->HasInitialAggro()) { - if (m_originalCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) // only do explicit combat forwarding for PvP enabled units + if (m_originalCaster->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // only do explicit combat forwarding for PvP enabled units m_originalCaster->GetCombatManager().InheritCombatStatesFrom(unit); // for creature v creature combat, the threat forward does it for us unit->GetThreatManager().ForwardThreatForAssistingMe(m_originalCaster, 0.0f, nullptr, true); } @@ -3099,7 +3099,7 @@ SpellCastResult Spell::prepare(SpellCastTargets const& targets, AuraEffect const } // Creatures focus their target when possible - if (m_casttime && m_caster->IsCreature() && !m_spellInfo->IsNextMeleeSwingSpell() && !IsAutoRepeat() && !m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED)) + if (m_casttime && m_caster->IsCreature() && !m_spellInfo->IsNextMeleeSwingSpell() && !IsAutoRepeat() && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_POSSESSED)) { // Channeled spells and some triggered spells do not focus a cast target. They face their target later on via channel object guid and via spell attribute or not at all bool const focusTarget = !m_spellInfo->IsChanneled() && !(_triggeredCastFlags & TRIGGERED_IGNORE_SET_FACING); @@ -3352,7 +3352,7 @@ void Spell::_cast(bool skipCheck) } // The spell focusing is making sure that we have a valid cast target guid when we need it so only check for a guid value here. if (Creature* creatureCaster = m_caster->ToCreature()) - if (!creatureCaster->GetTarget().IsEmpty() && !creatureCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED)) + if (!creatureCaster->GetTarget().IsEmpty() && !creatureCaster->HasUnitFlag(UNIT_FLAG_POSSESSED)) if (WorldObject const* target = ObjectAccessor::GetUnit(*creatureCaster, creatureCaster->GetTarget())) creatureCaster->SetInFront(target); @@ -4364,13 +4364,13 @@ void Spell::UpdateSpellCastDataAmmo(WorldPackets::Spells::SpellAmmo& ammo) } } } - else if (m_caster->GetTypeId() == TYPEID_UNIT) + else if (Unit const* unitCaster = m_caster->ToUnit()) { uint32 nonRangedAmmoDisplayID = 0; uint32 nonRangedAmmoInventoryType = 0; for (uint8 i = BASE_ATTACK; i < MAX_ATTACK; ++i) { - if (uint32 item_id = m_caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i)) + if (uint32 item_id = unitCaster->GetVirtualItemId(i)) { if (ItemEntry const* itemEntry = sItemStore.LookupEntry(item_id)) { @@ -4583,7 +4583,7 @@ void Spell::SendChannelUpdate(uint32 time) if (time == 0) { unitCaster->SetChannelObjectGuid(ObjectGuid::Empty); - unitCaster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0); + unitCaster->SetChannelSpellId(0); } WorldPacket data(MSG_CHANNEL_UPDATE, 8+4); @@ -4622,7 +4622,7 @@ void Spell::SendChannelStart(uint32 duration) creatureCaster->SetSpellFocus(this, ObjectAccessor::GetWorldObject(*creatureCaster, channelTarget)); } - unitCaster->SetUInt32Value(UNIT_CHANNEL_SPELL, m_spellInfo->Id); + unitCaster->SetChannelSpellId(m_spellInfo->Id); } void Spell::SendResurrectRequest(Player* target) @@ -5082,7 +5082,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint // Prevent cheating in case the player has an immunity effect and tries to interact with a non-allowed gameobject. The error message is handled by the client so we don't report anything here if (m_caster->ToPlayer() && m_targets.GetGOTarget()) { - if (m_targets.GetGOTarget()->GetGOInfo()->CannotBeUsedUnderImmunity() && m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE)) + if (m_targets.GetGOTarget()->GetGOInfo()->CannotBeUsedUnderImmunity() && m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_IMMUNE)) return SPELL_FAILED_DONT_REPORT; } @@ -5109,7 +5109,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint } } - if (m_spellInfo->HasAttribute(SPELL_ATTR7_IS_CHEAT_SPELL) && !m_caster->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS)) + if (m_spellInfo->HasAttribute(SPELL_ATTR7_IS_CHEAT_SPELL) && m_caster->IsUnit() && !m_caster->ToUnit()->HasUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS)) { m_customError = SPELL_CUSTOM_ERROR_GM_ONLY; return SPELL_FAILED_CUSTOM_ERROR; @@ -5591,7 +5591,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint if (m_caster->GetTypeId() != TYPEID_PLAYER || !m_targets.GetUnitTarget() || m_targets.GetUnitTarget()->GetTypeId() != TYPEID_UNIT) return SPELL_FAILED_BAD_TARGETS; - if (!(m_targets.GetUnitTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & UNIT_FLAG_SKINNABLE)) + if (!m_targets.GetUnitTarget()->HasUnitFlag(UNIT_FLAG_SKINNABLE)) return SPELL_FAILED_TARGET_UNSKINNABLE; Creature* creature = m_targets.GetUnitTarget()->ToCreature(); @@ -5843,8 +5843,8 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint dispelMask = SpellInfo::GetDispelMask(DispelType(spellEffectInfo.MiscValue)); bool hasStealableAura = false; - Unit::VisibleAuraMap const* visibleAuras = m_targets.GetUnitTarget()->GetVisibleAuras(); - for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras->begin(); itr != visibleAuras->end(); ++itr) + Unit::VisibleAuraMap const& visibleAuras = m_targets.GetUnitTarget()->GetVisibleAuras(); + for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras.begin(); itr != visibleAuras.end(); ++itr) { if (!itr->second->IsPositive()) continue; @@ -6159,7 +6159,7 @@ SpellCastResult Spell::CheckCasterAuras(uint32* param1) const SpellCastResult result = SPELL_CAST_OK; // Get unit state - uint32 const unitflag = unitCaster->GetUInt32Value(UNIT_FIELD_FLAGS); + uint32 const unitflag = unitCaster->GetUnitFlags(); // this check should only be done when player does cast directly // (ie not when it's called from a script) Breaks for example PlayerAI when charmed @@ -7324,7 +7324,7 @@ bool Spell::CheckEffectTarget(Unit const* target, SpellEffectInfo const& spellEf { if (!m_targets.GetCorpseTargetGUID()) { - if (target->IsWithinLOSInMap(m_caster, LINEOFSIGHT_ALL_CHECKS, VMAP::ModelIgnoreFlags::M2) && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE)) + if (target->IsWithinLOSInMap(m_caster, LINEOFSIGHT_ALL_CHECKS, VMAP::ModelIgnoreFlags::M2) && target->HasUnitFlag(UNIT_FLAG_SKINNABLE)) return true; return false; @@ -7389,7 +7389,7 @@ bool Spell::IsProcDisabled() const bool Spell::IsChannelActive() const { - return m_caster->GetUInt32Value(UNIT_CHANNEL_SPELL) != 0; + return m_caster->IsUnit() && m_caster->ToUnit()->GetChannelSpellId() != 0; } bool Spell::IsAutoActionResetSpell() const diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 720aadbb2d0..45e7a53603e 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1793,7 +1793,7 @@ void Spell::EffectOpenLock() { GameObjectTemplate const* goInfo = gameObjTarget->GetGOInfo(); - if (goInfo->CannotBeUsedUnderImmunity() && m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE)) + if (goInfo->CannotBeUsedUnderImmunity() && player->HasUnitFlag(UNIT_FLAG_IMMUNE)) return; // Arathi Basin banner opening. /// @todo Verify correctness of this check @@ -2139,7 +2139,7 @@ void Spell::EffectSummonType() return; summon->SelectLevel(); // some summoned creaters have different from 1 DB data for level/hp - summon->SetUInt32Value(UNIT_NPC_FLAGS, summon->GetCreatureTemplate()->npcflag); + summon->ReplaceAllNpcFlags(NPCFlags(summon->GetCreatureTemplate()->npcflag)); summon->SetImmuneToAll(true); break; } @@ -2916,7 +2916,7 @@ void Spell::EffectSummonPet() pet->SetReactState(REACT_DEFENSIVE); } - pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id); + pet->SetCreatedBySpell(m_spellInfo->Id); // generate new name for summon pet std::string new_name = sObjectMgr->GeneratePetName(petentry); @@ -4226,8 +4226,8 @@ void Spell::EffectSkinning() uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill(); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); - creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + creature->RemoveUnitFlag(UNIT_FLAG_SKINNABLE); + creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); player->SendLoot(creature->GetGUID(), LOOT_SKINNING); int32 const reqValue = targetLevel < 10 ? 0 : (targetLevel < 20 ? (targetLevel - 10) * 10 : targetLevel * 5); @@ -4541,8 +4541,8 @@ void Spell::EffectResurrectPet() pet->Relocate(x, y, z, player->GetOrientation()); // This is needed so SaveStayPosition() will get the proper coords. } - pet->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE); - pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + pet->ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE); + pet->RemoveUnitFlag(UNIT_FLAG_SKINNABLE); pet->setDeathState(ALIVE); pet->ClearUnitState(UNIT_STATE_ALL_ERASABLE); pet->SetHealth(pet->CountPctFromMaxHealth(damage)); @@ -5259,7 +5259,7 @@ void Spell::SummonGuardian(SpellEffectInfo const& spellEffectInfo, uint32 entry, if (uint32 weapon = unitCaster->GetUInt32Value(PLAYER_VISIBLE_ITEM_16_ENTRYID)) { summon->SetDisplayId(11686); // modelid2 - summon->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, weapon); + summon->SetVirtualItem(0, weapon); } else summon->SetDisplayId(1126); // modelid1 @@ -5278,7 +5278,7 @@ void Spell::EffectRenamePet() !unitTarget->IsPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET) return; - unitTarget->SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED); + unitTarget->SetPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED); } void Spell::EffectPlayMusic() diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 0abf694251a..65834d7c741 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1627,7 +1627,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co if (unitTarget) { // spells cannot be cast if target has a pet in combat either - if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT) && (unitTarget->IsInCombat() || unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT))) + if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT) && (unitTarget->IsInCombat() || unitTarget->HasUnitFlag(UNIT_FLAG_PET_IN_COMBAT))) return SPELL_FAILED_TARGET_AFFECTING_COMBAT; // only spells with SPELL_ATTR3_ONLY_TARGET_GHOSTS can target ghosts @@ -1666,7 +1666,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co if (!player->GetWeaponForAttack(BASE_ATTACK) || !player->IsUseEquipedWeapon(true)) return SPELL_FAILED_TARGET_NO_WEAPONS; } - else if (!unitTarget->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID)) + else if (!unitTarget->GetVirtualItemId(0)) return SPELL_FAILED_TARGET_NO_WEAPONS; } } @@ -1700,7 +1700,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co return SPELL_FAILED_BAD_TARGETS; // checked in Unit::IsValidAttack/AssistTarget, shouldn't be checked for ENTRY targets - //if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE) && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + //if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE) && target->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) // return SPELL_FAILED_BAD_TARGETS; //if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS)) diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp index d13fadbf729..9d3c98fdd77 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.cpp +++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp @@ -968,7 +968,7 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim) HandlePromotion(killer, victim); // Allow to Skin non-released corpse - victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + victim->SetUnitFlag(UNIT_FLAG_SKINNABLE); } /// @todoRecent PvP activity worldstate diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index d2bd8f3e824..da9b6ad5ec7 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -225,35 +225,35 @@ public: if (!pfactionid) { uint32 factionid = target->GetFaction(); - uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS); - uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS); - uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS); + uint32 flag = target->GetUnitFlags(); + uint32 npcflag = target->GetNpcFlags(); + uint32 dyflag = target->GetDynamicFlags(); handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag); return true; } uint32 factionid = atoi(pfactionid); - uint32 flag; + UnitFlags flag; char *pflag = strtok(nullptr, " "); if (!pflag) - flag = target->GetUInt32Value(UNIT_FIELD_FLAGS); + flag = target->GetUnitFlags(); else - flag = atoi(pflag); + flag = UnitFlags(atoi(pflag)); char* pnpcflag = strtok(nullptr, " "); - uint32 npcflag; + NPCFlags npcflag; if (!pnpcflag) - npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS); + npcflag = target->GetNpcFlags(); else - npcflag = atoi(pnpcflag); + npcflag = NPCFlags(atoi(pnpcflag)); char* pdyflag = strtok(nullptr, " "); uint32 dyflag; if (!pdyflag) - dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS); + dyflag = target->GetDynamicFlags(); else dyflag = atoi(pdyflag); @@ -267,9 +267,9 @@ public: handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag); target->SetFaction(factionid); - target->SetUInt32Value(UNIT_FIELD_FLAGS, flag); - target->SetUInt32Value(UNIT_NPC_FLAGS, npcflag); - target->SetUInt32Value(UNIT_DYNAMIC_FLAGS, dyflag); + target->ReplaceAllUnitFlags(flag); + target->ReplaceAllNpcFlags(npcflag); + target->ReplaceAllDynamicFlags(dyflag); return true; } @@ -857,7 +857,7 @@ public: return false; uint32 anim_id = atoi((char*)args); - handler->GetSession()->GetPlayer()->SetUInt32Value(UNIT_NPC_EMOTESTATE, anim_id); + handler->GetSession()->GetPlayer()->SetEmoteState(Emote(anim_id)); return true; } diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index a232da2ef1b..e4ee87db7b6 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -403,7 +403,7 @@ public: return false; } - creature->SetUInt32Value(UNIT_NPC_FLAGS, npcFlags); + creature->ReplaceAllNpcFlags(npcFlags); WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_NPCFLAG); @@ -469,7 +469,7 @@ public: CreatureTemplate const* cInfo = target->GetCreatureTemplate(); uint32 faction = target->GetFaction(); - uint32 npcflags = target->GetUInt32Value(UNIT_NPC_FLAGS); + uint32 npcflags = target->GetNpcFlags(); uint32 mechanicImmuneMask = cInfo->MechanicImmuneMask; uint32 displayid = target->GetDisplayId(); uint32 nativeid = target->GetNativeDisplayId(); @@ -494,12 +494,12 @@ public: handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth()); handler->PSendSysMessage(LANG_NPCINFO_MOVEMENT_DATA, target->GetMovementTemplate().ToString().c_str()); - handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS)); + handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUnitFlags()); for (UnitFlags flag : EnumUtils::Iterate<UnitFlags>()) - if (target->GetUInt32Value(UNIT_FIELD_FLAGS) & flag) + if (target->HasUnitFlag(flag)) handler->PSendSysMessage("* %s (0x%X)", EnumUtils::ToTitle(flag), flag); - handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS_2), target->GetUInt32Value(UNIT_DYNAMIC_FLAGS), target->GetFaction()); + handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUnitFlags2(), target->GetDynamicFlags(), target->GetFaction()); handler->PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(), curRespawnDelayStr.c_str()); handler->PSendSysMessage(LANG_NPCINFO_LOOT, cInfo->lootid, cInfo->pickpocketLootId, cInfo->SkinLootId); handler->PSendSysMessage(LANG_NPCINFO_DUNGEON_ID, target->GetInstanceId()); @@ -624,7 +624,7 @@ public: } //play npc emote - static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, uint32 emote) + static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, Emote emote) { Creature* target = handler->getSelectedCreature(); if (!target) @@ -634,7 +634,7 @@ public: return false; } - target->SetUInt32Value(UNIT_NPC_EMOTESTATE, emote); + target->SetEmoteState(emote); return true; } diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp index 604e9cc5aed..be78a9054b7 100644 --- a/src/server/scripts/Commands/cs_reset.cpp +++ b/src/server/scripts/Commands/cs_reset.cpp @@ -117,9 +117,9 @@ public: if (player->GetShapeshiftForm() == FORM_NONE) player->InitDisplayIds(); - player->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); + player->ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_PVP); - player->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + player->ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); //-1 is default value player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1)); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index b16a28afc8f..7641143d621 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -159,9 +159,9 @@ class boss_doomrel : public CreatureScript me->SetImmuneToPC(true); if (_instance->GetData(DATA_GHOSTKILL) >= 7) - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); else - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void JustEngagedWith(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp index e2e22704f2a..4bdaea4afad 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp @@ -77,7 +77,7 @@ struct boss_pyroguard_emberseer : public BossAI void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); events.Reset(); // Apply auras on spawn and reset @@ -140,7 +140,7 @@ struct boss_pyroguard_emberseer : public BossAI me->CastSpell(me, SPELL_EMBERSEER_FULL_STRENGTH); Talk(EMOTE_FREE_OF_BONDS); Talk(YELL_FREE_OF_BONDS); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); events.ScheduleEvent(EVENT_ENTER_COMBAT, 2s); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index b02c6558c83..193fd6ad699 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -185,7 +185,7 @@ struct boss_victor_nefarius : public BossAI me->SetVisible(true); me->SetPhaseMask(1, true); - me->SetUInt32Value(UNIT_NPC_FLAGS, 1); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetFaction(FACTION_FRIENDLY); me->SetStandState(UNIT_STAND_STATE_SIT_HIGH_CHAIR); me->RemoveAura(SPELL_NEFARIANS_BARRIER); @@ -204,7 +204,7 @@ struct boss_victor_nefarius : public BossAI Talk(SAY_GAMESBEGIN_2); me->SetFaction(FACTION_DRAGONFLIGHT_BLACK); - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); DoCast(me, SPELL_NEFARIANS_BARRIER); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetImmuneToPC(false); @@ -220,7 +220,7 @@ struct boss_victor_nefarius : public BossAI if (summon->GetEntry() != NPC_NEFARIAN) { summon->UpdateEntry(NPC_BONE_CONSTRUCT); - summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + summon->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); summon->SetReactState(REACT_PASSIVE); summon->SetStandState(UNIT_STAND_STATE_DEAD); } @@ -561,7 +561,7 @@ struct boss_nefarian : public BossAI { (*itr)->Respawn(); DoZoneInCombat((*itr)); - (*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + (*itr)->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); (*itr)->SetReactState(REACT_AGGRESSIVE); (*itr)->SetStandState(UNIT_STAND_STATE_STAND); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index b854edacdca..dfc591f591d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -69,9 +69,9 @@ struct boss_vaelastrasz : public BossAI boss_vaelastrasz(Creature* creature) : BossAI(creature, DATA_VAELASTRAZ_THE_CORRUPT) { Initialize(); - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); creature->SetFaction(FACTION_FRIENDLY); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void Initialize() @@ -108,7 +108,7 @@ struct boss_vaelastrasz : public BossAI void BeginSpeech(Unit* target) { PlayerGUID = target->GetGUID(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); events.ScheduleEvent(EVENT_SPEECH_1, 1s); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp index 6980cc0073f..d4af2951a09 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp @@ -160,7 +160,7 @@ struct boss_majordomo : public BossAI { case EVENT_OUTRO_1: me->NearTeleportTo(RagnarosTelePos.GetPositionX(), RagnarosTelePos.GetPositionY(), RagnarosTelePos.GetPositionZ(), RagnarosTelePos.GetOrientation()); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; case EVENT_OUTRO_2: instance->instance->SummonCreature(NPC_RAGNAROS, RagnarosSummonPos); @@ -179,7 +179,7 @@ struct boss_majordomo : public BossAI { if (action == ACTION_START_RAGNAROS) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_SUMMON_MAJ); events.ScheduleEvent(EVENT_OUTRO_2, 8s); events.ScheduleEvent(EVENT_OUTRO_3, 24s); @@ -187,7 +187,7 @@ struct boss_majordomo : public BossAI else if (action == ACTION_START_RAGNAROS_ALT) { me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 915b8a20078..ebd9f7e8403 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -82,7 +82,7 @@ struct boss_ragnaros : public BossAI Initialize(); _introState = 0; me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); SetCombatMovement(false); } @@ -98,7 +98,7 @@ struct boss_ragnaros : public BossAI { BossAI::Reset(); Initialize(); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); } void JustEngagedWith(Unit* victim) override @@ -156,7 +156,7 @@ struct boss_ragnaros : public BossAI break; case EVENT_INTRO_5: me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(false); _introState = 2; break; @@ -172,8 +172,8 @@ struct boss_ragnaros : public BossAI //Become unbanished again me->SetReactState(REACT_AGGRESSIVE); me->SetFaction(FACTION_MONSTER); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) AttackStart(target); @@ -250,8 +250,8 @@ struct boss_ragnaros : public BossAI //Root self //DoCast(me, 23973); me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetEmoteState(EMOTE_STATE_SUBMERGED); me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE); instance->SetData(DATA_RAGNAROS_ADDS, 0); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index 057f5384dfe..69c28424726 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -163,7 +163,7 @@ public: _scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/) { me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoZoneInCombat(); }); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index e85a7d205a8..35394225430 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -158,7 +158,7 @@ public: events.SetPhase(PHASE_INTRO); me->setActive(true); me->SetFarVisible(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->GetMotionMaster()->MoveAlongSplineChain(POINT_INTRO_START, SPLINE_CHAIN_INTRO_START, false); HandleTerraceDoors(false); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 9bd1c87cd1a..9360d3200ee 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -158,7 +158,7 @@ public: if (spellInfo->Id == SPELL_INFERNAL_RELAY) { me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID)); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); HellfireTimer = 4000; CleanupTimer = 170000; } @@ -449,7 +449,7 @@ public: Creature* axe = me->SummonCreature(MALCHEZARS_AXE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1s); if (axe) { - axe->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + axe->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); axe->SetFaction(me->GetFaction()); axes[i] = axe->GetGUID(); if (target) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index 40f82077314..f06c6246569 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -246,7 +246,7 @@ public: else FrostCooldown = 0; } - if (!Drinking && me->GetMaxPower(POWER_MANA) && (me->GetPower(POWER_MANA)*100 / me->GetMaxPower(POWER_MANA)) < 20) + if (!Drinking && me->GetMaxPower(POWER_MANA) && me->GetPowerPct(POWER_MANA) < 20.f) { Drinking = true; me->InterruptNonMeleeSpells(false); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 9ca1f23d69f..2e6314c1748 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -182,7 +182,7 @@ public: void AttackStart(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -191,7 +191,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -203,7 +203,7 @@ public: { if (AggroTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; } else AggroTimer -= diff; } @@ -347,7 +347,7 @@ public: void AttackStart(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -356,7 +356,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -403,7 +403,7 @@ public: { if (AggroTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; } else AggroTimer -= diff; } @@ -481,7 +481,7 @@ public: void AttackStart(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -490,7 +490,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -514,7 +514,7 @@ public: { if (AggroTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; } else AggroTimer -= diff; } @@ -585,7 +585,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -593,7 +593,7 @@ public: void AttackStart(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -627,7 +627,7 @@ public: { if (AggroTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; } else AggroTimer -= diff; } @@ -683,7 +683,7 @@ public: // Anyway, I digress. // @todo This line below is obviously a hack. Duh. I'm just coming in here to hackfix the encounter to actually be completable. // It needs a rewrite. Badly. Please, take good care of it. - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(false); CycloneTimer = 30000; ChainLightningTimer = 10000; @@ -1019,7 +1019,7 @@ void PretendToDie(Creature* creature) creature->InterruptNonMeleeSpells(true); creature->RemoveAllAuras(); creature->SetHealth(0); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); creature->GetMotionMaster()->Clear(); creature->GetMotionMaster()->MoveIdle(); creature->SetStandState(UNIT_STAND_STATE_DEAD); @@ -1027,7 +1027,7 @@ void PretendToDie(Creature* creature) void Resurrect(Creature* target) { - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->SetFullHealth(); target->SetStandState(UNIT_STAND_STATE_STAND); target->CastSpell(target, SPELL_RES_VISUAL, true); @@ -1115,7 +1115,7 @@ public: void AttackStart(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -1124,7 +1124,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -1252,11 +1252,11 @@ public: { if (Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID))) { - Julianne->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Julianne->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Julianne->GetMotionMaster()->Clear(); Julianne->setDeathState(JUST_DIED); Julianne->CombatStop(true); - Julianne->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + Julianne->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE); } return; } @@ -1292,7 +1292,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -1380,7 +1380,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff) if (AggroYellTimer <= diff) { Talk(SAY_JULIANNE_AGGRO); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetFaction(FACTION_MONSTER_2); AggroYellTimer = 0; } else AggroYellTimer -= diff; @@ -1521,11 +1521,11 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& dama { if (Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID))) { - Romulo->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Romulo->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Romulo->GetMotionMaster()->Clear(); Romulo->setDeathState(JUST_DIED); Romulo->CombatStop(true); - Romulo->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + Romulo->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE); } return; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index cfcaae42b14..206c8b2646e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -196,7 +196,7 @@ public: me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 1min)) { - spotlight->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + spotlight->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); spotlight->CastSpell(spotlight, SPELL_SPOTLIGHT, false); m_uiSpotlightGUID = spotlight->GetGUID(); } @@ -272,11 +272,7 @@ public: float PosX = Spawns[index][1]; if (Creature* creature = me->SummonCreature(entry, PosX, SPAWN_Y, SPAWN_Z, SPAWN_O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 2h)) - { - // In case database has bad flags - creature->SetUInt32Value(UNIT_FIELD_FLAGS, 0); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - } + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } RaidWiped = false; @@ -467,7 +463,7 @@ public: void Reset() override { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (instance->GetGuidData(DATA_IMAGE_OF_MEDIVH).IsEmpty()) { diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index ca3a96f9497..d0a6cee6b06 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -283,7 +283,7 @@ struct boss_felblood_kaelthas : public BossAI { case EVENT_TALK_INTRO_1: Talk(SAY_INTRO_1); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); + me->SetEmoteState(EMOTE_STATE_TALK); events.ScheduleEvent(EVENT_TALK_INTRO_2, 20s + 600ms, 0, PHASE_INTRO); events.ScheduleEvent(EVENT_LAUGH_EMOTE, 15s + 600ms, 0, PHASE_INTRO); break; @@ -295,7 +295,7 @@ struct boss_felblood_kaelthas : public BossAI me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH_NO_SHEATHE); break; case EVENT_FINISH_INTRO: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->SetImmuneToPC(false); break; case EVENT_FIREBALL: @@ -412,7 +412,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI me->AttackStop(); me->SetReactState(REACT_PASSIVE); me->RemoveAllAuras(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_EMBER_BLAST); // DoCastSelf(SPELL_SUMMON_PHOENIX_EGG); -- We do a manual summon for now. Feel free to move it to spelleffect_dbc if (Creature* egg = DoSummon(NPC_PHOENIX_EGG, me->GetPosition(), 0s)) @@ -469,7 +469,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI _isInEgg = false; DoCastSelf(SPELL_FULL_HEAL); DoCastSelf(SPELL_BURN); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _events.ScheduleEvent(EVENT_ATTACK_PLAYERS, 2s); break; default: diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 8a8dcd29a8f..1747d99f3db 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -242,10 +242,7 @@ public: if (instance->GetData(DATA_DELRISSA_DEATH_COUNT) == MAX_ACTIVE_LACKEY) instance->SetBossState(DATA_PRIESTESS_DELRISSA, DONE); else - { - if (me->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE)) - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - } + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); } void UpdateAI(uint32 diff) override @@ -424,8 +421,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI //time to make her lootable and complete event if she died before lackeys if (!delrissa->IsAlive()) { - if (!delrissa->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE)) - delrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + delrissa->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); instance->SetBossState(DATA_PRIESTESS_DELRISSA, DONE); } diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index 98bd562cb22..8cb2c5e0d10 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -153,7 +153,7 @@ class boss_selin_fireheart : public CreatureScript Unit* CrystalChosen = ObjectAccessor::GetUnit(*me, CrystalGUID); if (CrystalChosen && CrystalChosen->IsAlive()) { - CrystalChosen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + CrystalChosen->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); CrystalChosen->CastSpell(me, SPELL_MANA_RAGE, true); events.ScheduleEvent(EVENT_EMPOWER, 10s, PHASE_DRAIN); } @@ -222,7 +222,7 @@ class boss_selin_fireheart : public CreatureScript return; } - if (me->GetPower(POWER_MANA) * 100 / me->GetMaxPower(POWER_MANA) < 10) + if (me->GetPowerPct(POWER_MANA) < 10.f) { if (events.IsInPhase(PHASE_NORMAL) && !_scheduledEvents) { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 4d6065bb503..587f4a67d43 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -569,7 +569,7 @@ public: me->RestoreFaction(); CombatAI::Reset(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM); + me->SetUnitFlag(UNIT_FLAG_CAN_SWIM); } void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override @@ -661,7 +661,7 @@ public: return true; me->SetImmuneToPC(false); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM); + me->RemoveUnitFlag(UNIT_FLAG_CAN_SWIM); player->CastSpell(me, SPELL_DUEL, false); player->CastSpell(player, SPELL_DUEL_FLAG, true); @@ -884,7 +884,7 @@ class spell_deliver_stolen_horse : public SpellScript Unit* caster = GetCaster(); caster->RemoveAurasDueToSpell(SPELL_EFFECT_STOLEN_HORSE); - caster->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); + caster->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); caster->SetFaction(FACTION_FRIENDLY); caster->CastSpell(caster, SPELL_CALL_DARK_RIDER, true); @@ -926,8 +926,8 @@ public: return; deathcharger->RestoreFaction(); - deathcharger->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - deathcharger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + deathcharger->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); + deathcharger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (!me->GetVehicle() && deathcharger->IsVehicle() && deathcharger->GetVehicleKit()->HasEmptySeat(0)) me->EnterVehicle(deathcharger); } @@ -940,8 +940,8 @@ public: if (killer->GetTypeId() == TYPEID_PLAYER && deathcharger->GetTypeId() == TYPEID_UNIT && deathcharger->IsVehicle()) { - deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - deathcharger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + deathcharger->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); + deathcharger->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); deathcharger->SetFaction(FACTION_SCARLET_CRUSADE_2); } } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 539150de929..f50d6c03f3a 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -138,9 +138,9 @@ struct npc_koltira_deathweaver : public ScriptedAI void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_DEAD); + me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); + me->SetStandState(UNIT_STAND_STATE_DEAD); me->RemoveAllAuras(); _events.Reset(); @@ -164,14 +164,14 @@ struct npc_koltira_deathweaver : public ScriptedAI switch (eventId) { case EVENT_INTRO_0: - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_SIT); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetStandState(UNIT_STAND_STATE_SIT); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_KOLTIRA_0); _events.ScheduleEvent(EVENT_INTRO_1, 5s); break; case EVENT_INTRO_1: - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); + me->SetStandState(UNIT_STAND_STATE_STAND); Talk(SAY_KOLTIRA_1); _events.ScheduleEvent(EVENT_INTRO_2, 2s); @@ -190,7 +190,7 @@ struct npc_koltira_deathweaver : public ScriptedAI case EVENT_INTRO_4: DoCastSelf(SPELL_KOLTIRA_TRANSFORM); me->LoadEquipment(POINT_ID_1); - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); + me->SetStandState(UNIT_STAND_STATE_STAND); me->GetMotionMaster()->MovePoint(POINT_ID_2, koltiraPos[2], true, 3.839724f); break; @@ -202,8 +202,8 @@ struct npc_koltira_deathweaver : public ScriptedAI break; case EVENT_INTRO_6: Talk(SAY_KOLTIRA_3); - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetStandState(UNIT_STAND_STATE_KNEEL); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); _eventGossip = true; break; @@ -240,8 +240,8 @@ struct npc_koltira_deathweaver : public ScriptedAI break; case EVENT_OUTRO_1: me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE); - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetStandState(UNIT_STAND_STATE_STAND); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_KOLTIRA_8); _events.ScheduleEvent(EVENT_OUTRO_2, 7s); @@ -259,7 +259,7 @@ struct npc_koltira_deathweaver : public ScriptedAI break; case EVENT_OUTRO_4: me->SetWalk(false); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); DoCastSelf(SPELL_HERO_AGGRO); me->GetMotionMaster()->MovePath(NPC_KOLTIRA, false); @@ -290,7 +290,7 @@ struct npc_koltira_deathweaver : public ScriptedAI { if (pointId == POINT_ID_1) { - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL); + me->SetStandState(UNIT_STAND_STATE_KNEEL); FakeValrothTalk(SAY_VALROTH_0); _events.ScheduleEvent(EVENT_SPAWN_WAVE_1, 1s); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index 9b33e002de8..b5d5607ac09 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -526,7 +526,7 @@ public: if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID)) { temp->SetWalk(true); - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); + temp->SetEmoteState(EMOTE_STATE_READY2H); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10]); } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID)) @@ -566,7 +566,7 @@ public: JumpToNextStep(2000); break; case 8: - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP)); + me->SetVirtualItem(0, uint32(EQUIP_UNEQUIP)); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) me->CastSpell(temp, SPELL_ASHBRINGER, true); Talk(EMOTE_LIGHT_OF_DAWN14); @@ -600,7 +600,7 @@ public: //UpdateWorldState(me->GetMap(), WORLD_STATE_REMAINS, 1); UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 0); UpdateWorldState(me->GetMap(), WORLD_STATE_EVENT_BEGIN, 1); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(3000); break; @@ -758,7 +758,7 @@ public: case 15: // summon gate if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 5min)) { - temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + temp->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); temp->CastSpell(temp, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true); temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN06); uiAlexandrosGUID = temp->GetGUID(); @@ -769,7 +769,7 @@ public: case 16: // Alexandros out if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID)) { - temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + temp->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23]); temp->AI()->Talk(SAY_LIGHT_OF_DAWN32); } @@ -974,7 +974,7 @@ public: if (fLichPositionX && fLichPositionY) { Unit* temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10s); - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED); + temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED); temp->SetWalk(false); temp->SetSpeedRate(MOVE_RUN, 2.0f); temp->SetFaction(me->GetFaction()); @@ -982,7 +982,7 @@ public: uiDefenderGUID[0] = temp->GetGUID(); temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10s); - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED); + temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED); temp->SetWalk(false); temp->SetSpeedRate(MOVE_RUN, 2.0f); temp->SetFaction(me->GetFaction()); @@ -991,7 +991,7 @@ public: } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED); + temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED); temp->SetWalk(false); temp->SetSpeedRate(MOVE_RUN, 2.0f); temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ); @@ -999,7 +999,7 @@ public: } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED); + temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED); temp->SetWalk(false); temp->SetSpeedRate(MOVE_RUN, 2.0f); temp->HandleEmoteCommand(EMOTE_STATE_ATTACK_UNARMED); @@ -1007,7 +1007,7 @@ public: } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED); + temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED); temp->SetWalk(false); temp->SetSpeedRate(MOVE_RUN, 2.0f); temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ); @@ -1022,21 +1022,21 @@ public: if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + temp->SetEmoteState(EMOTE_ONESHOT_NONE); temp->SetSpeedRate(MOVE_RUN, 6.0f); temp->SetStandState(UNIT_STAND_STATE_DEAD); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[14]); } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + temp->SetEmoteState(EMOTE_ONESHOT_NONE); temp->SetSpeedRate(MOVE_RUN, 6.0f); temp->SetStandState(UNIT_STAND_STATE_DEAD); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[11]); } if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID)) { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + temp->SetEmoteState(EMOTE_ONESHOT_NONE); temp->SetSpeedRate(MOVE_RUN, 6.0f); temp->SetStandState(UNIT_STAND_STATE_DEAD); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[17]); @@ -1086,7 +1086,7 @@ public: if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) { temp->SetStandState(UNIT_STAND_STATE_STAND); - temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_HIGHLORD_TIRION_FORDRING)); + temp->SetVirtualItem(0, uint32(EQUIP_HIGHLORD_TIRION_FORDRING)); temp->CastSpell(temp, SPELL_REBIRTH_OF_THE_ASHBRINGER, false); } JumpToNextStep(1000); @@ -1131,7 +1131,7 @@ public: { temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN16); temp->CastSpell(temp, SPELL_TIRION_CHARGE, false); // jumping charge - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); + temp->SetEmoteState(EMOTE_STATE_READY2H); temp->SetSpeedRate(MOVE_RUN, 3.0f); // workarounds, make Tirion still running temp->SetWalk(false); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2]); @@ -1186,7 +1186,7 @@ public: temp->CastSpell(temp, SPELL_TELEPORT_VISUAL, false); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) // Tirion runs to Darion { - temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + temp->SetEmoteState(EMOTE_ONESHOT_NONE); temp->SetSpeedRate(MOVE_RUN, 1.0f); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[6]); } @@ -1378,7 +1378,7 @@ public: if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].GetPositionWithOffset({ 0.0f, 0.0f, 0.0f, 1.528f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10min)) { temp->SetFaction(me->GetFaction()); - temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP)); + temp->SetVirtualItem(0, uint32(EQUIP_UNEQUIP)); temp->AI()->Talk(SAY_LIGHT_OF_DAWN25); uiTirionGUID = temp->GetGUID(); } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 74b4410b45e..9bb3b7c0a00 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -199,7 +199,7 @@ struct npc_headless_horseman_head : public PassiveAI void HandleInitialSetup() { DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_HEAD_STUN); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _phase = PHASE_1; _events.SetPhase(PHASE_1); } @@ -256,7 +256,7 @@ struct npc_headless_horseman_head : public PassiveAI { me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_C_HEAD_STUN); DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_HEAD_VISUAL, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->GetMotionMaster()->MoveRandom(30.0f); switch (_phase) @@ -311,11 +311,11 @@ struct npc_headless_horseman_head : public PassiveAI DoCast(horseman, SPELL_HEADLESS_HORSEMAN_C_RETURN_HEAD, true); me->RemoveAllAttackers(); me->GetMotionMaster()->Clear(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); break; case EVENT_RAIN_OF_TREATS: DoCastSelf(SPELL_RAIN_OF_TREATS); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _instance->SetData(DATA_PREPARE_RESET, 0); if (GameObject* pumpkin = me->SummonGameObject(GO_PUMPKIN_SHRINE, GOPumpkinSpawnPosition, GOPumpkinSpawnQuat, 7_days)) me->RemoveGameObject(pumpkin, false); @@ -707,8 +707,8 @@ struct npc_sir_thomas : public PassiveAI void Reset() override { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_HEADLESS_HORSEMAN_WISP_INVIS); _scheduler.Schedule(9s, [this](TaskContext /*context*/) @@ -721,8 +721,8 @@ struct npc_sir_thomas : public PassiveAI { if (spellInfo->Id == SPELL_HEADLESS_HORSEMAN_WISP_FLIGHT_PORT) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_WISP_INVIS); DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_GHOST_VISUAL, true); } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index 0b9ebe6b2ce..e81e35e53e5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -96,7 +96,7 @@ public: _killYellTimer.Reset(0s); DoCastSelf(SPELL_RETRIBUTION_AURA, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetReactState(REACT_AGGRESSIVE); @@ -170,7 +170,7 @@ public: me->ClearComboPointHolders(); me->RemoveAllAuras(); me->ClearAllReactives(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetStandState(UNIT_STAND_STATE_DEAD); me->SetReactState(REACT_PASSIVE); // prevent Mograine from attacking while fake death @@ -192,7 +192,7 @@ public: // Say text Talk(SAY_MO_RESURRECTED); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetStandState(UNIT_STAND_STATE_STAND); }); @@ -203,7 +203,7 @@ public: events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE, 10s, 15s); // We can now die - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); _canDie = true; DoCastSelf(SPELL_RETRIBUTION_AURA, true); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp index 3c84527a48e..97a0d1fa435 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp @@ -90,14 +90,14 @@ public: break; case EVENT_ILLUSION: DoCast(SPELL_ILLUSION); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisplayId(11686); // Invisible Model ModifyThreatByPercent(me->GetVictim(), -99); events.ScheduleEvent(EVENT_SET_VISIBILITY, 3s); events.ScheduleEvent(EVENT_ILLUSION, 25s); break; case EVENT_SET_VISIBILITY: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisplayId(11073); //Jandice Model break; default: diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index 63cc9e551a1..05ec449e8d1 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -129,7 +129,7 @@ class boss_kirtonos_the_herald : public CreatureScript events.ScheduleEvent(INTRO_1, 500ms); me->SetDisableGravity(true); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); Talk(EMOTE_SUMMONED); } @@ -178,8 +178,8 @@ class boss_kirtonos_the_herald : public CreatureScript break; case INTRO_5: me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF)); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); + me->SetVirtualItem(0, uint32(WEAPON_KIRTONOS_STAFF)); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); events.ScheduleEvent(INTRO_6, 5s); break; @@ -233,13 +233,13 @@ class boss_kirtonos_the_herald : public CreatureScript if (me->HasAura(SPELL_KIRTONOS_TRANSFORM)) { me->RemoveAura(SPELL_KIRTONOS_TRANSFORM); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0)); + me->SetVirtualItem(0, uint32(0)); me->SetCanFly(false); } else { DoCast(me, SPELL_KIRTONOS_TRANSFORM); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF)); + me->SetVirtualItem(0, uint32(WEAPON_KIRTONOS_STAFF)); me->SetCanFly(true); } events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 16s, 18s); diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp index fbf53d96f7d..8531267112a 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp @@ -101,7 +101,7 @@ struct boss_apothecary_hummel : public BossAI { if (menuId == GOSSIP_MENU_HUMMEL && gossipListId == GOSSIP_OPTION_START) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); CloseGossipMenuFor(player); DoAction(ACTION_START_EVENT); } @@ -150,7 +150,7 @@ struct boss_apothecary_hummel : public BossAI _isDead = true; me->RemoveAurasDueToSpell(SPELL_ALLURING_PERFUME); DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Talk(SAY_HUMMEL_DEATH); } } @@ -171,7 +171,7 @@ struct boss_apothecary_hummel : public BossAI Talk(SAY_HUMMEL_DEATH); events.Reset(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); instance->SetBossState(DATA_APOTHECARY_HUMMEL, DONE); Map::PlayerList const& players = me->GetMap()->GetPlayers(); @@ -302,7 +302,7 @@ struct npc_apothecary_genericAI : public ScriptedAI void MovementInform(uint32 type, uint32 pointId) override { if (type == POINT_MOTION_TYPE && pointId == 1) - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); } protected: diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp index 5e624ae41e4..c4a2df94fe2 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -170,7 +170,7 @@ class instance_stratholme : public InstanceMapScript break; case NPC_YSIDA: ysidaGUID = creature->GetGUID(); - creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); break; } } @@ -278,7 +278,7 @@ class instance_stratholme : public InstanceMapScript ysida->CastSpell(nullptr, SPELL_YSIDA_SAVED, true); ysida->SetWalk(true); ysida->AI()->Talk(SAY_YSIDA_SAVED); - ysida->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + ysida->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); ysida->GetClosePoint(x, y, z, ysida->GetObjectScale() / 3, 4.0f); ysida->GetMotionMaster()->MovePoint(1, x, y, z); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 549797c12fb..ee0104f9b0f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -158,7 +158,7 @@ public: IsIntro = true; Madrigosa->SetMaxHealth(me->GetMaxHealth()); Madrigosa->SetHealth(me->GetMaxHealth()); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->Attack(Madrigosa, true); Madrigosa->Attack(me, true); } @@ -172,7 +172,7 @@ public: void EndIntro() { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); Intro = false; IsIntro = false; } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 09062b079fd..4a40289eb12 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -158,7 +158,7 @@ public: instance->SetBossState(DATA_EREDAR_TWINS, DONE); } else - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); } void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override @@ -438,7 +438,7 @@ public: instance->SetBossState(DATA_EREDAR_TWINS, DONE); } else - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); } void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index e75f3860926..ebaf536ccdb 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -147,8 +147,8 @@ public: events.Reset(); me->SetDisableGravity(true); - me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); - me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); + me->SetBoundingRadius(10); + me->SetCombatReach(10); DespawnSummons(NPC_VAPOR_TRAIL); me->setActive(false); @@ -560,7 +560,7 @@ public: { DoCast(me, SPELL_TRAIL_TRIGGER, true); me->SetTarget(me->GetGUID()); - me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01f); // core bug + me->SetBoundingRadius(0.01f); // core bug } void Reset() override { } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 4ed378da0b7..7b2e2ef6fcf 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -263,7 +263,7 @@ public: { Initialize(); me->SetDisableGravity(true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->setActive(true); me->SetFarVisible(true); @@ -443,8 +443,8 @@ public: void InitializeAI() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->AddUnitState(UNIT_STATE_STUNNED); ScriptedAI::InitializeAI(); @@ -589,7 +589,7 @@ public: if (Creature* pKalec = instance->GetCreature(DATA_KALECGOS_KJ)) pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); - me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12); + me->SetCombatReach(12); summons.DespawnAll(); } @@ -616,8 +616,8 @@ public: { if (summoned->GetEntry() == NPC_ARMAGEDDON_TARGET) { - summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + summoned->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // summoned->SetVisibility(VISIBILITY_OFF); //with this we cant see the armageddon visuals } else @@ -1037,7 +1037,7 @@ public: void Reset() override { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_NON_ATTACKABLE); } void JustSummoned(Creature* summoned) override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 27609a0688c..83ddf0563af 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -233,7 +233,7 @@ struct boss_muru : public BossAI { _Reset(); Initialize(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(true); } @@ -280,7 +280,7 @@ struct boss_muru : public BossAI _phase = PHASE_TWO; me->RemoveAllAuras(); DoCast(me, SPELL_OPEN_ALL_PORTALS, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); scheduler.Schedule(Seconds(6), [this](TaskContext /*context*/) { @@ -372,7 +372,7 @@ struct npc_dark_fiend : public ScriptedAI _scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/) { me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Creature* _summoner = ObjectAccessor::GetCreature(*me, _summonerGUID)) if (Unit* target = _summoner->AI()->SelectTarget(SelectTargetMethod::Random, 0)) diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp index 316cc7524c8..116a555c2e5 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp @@ -101,7 +101,7 @@ class boss_archaedas : public CreatureScript instance->SetData(0, 5); // respawn any dead minions me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); me->AddAura(SPELL_FREEZE_ANIM, me); } @@ -114,7 +114,7 @@ class boss_archaedas : public CreatureScript { DoCast(minion, SPELL_AWAKEN_VAULT_WALKER, flag); minion->CastSpell(minion, SPELL_ARCHAEDAS_AWAKEN, true); - minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + minion->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); minion->SetControlled(false, UNIT_STATE_ROOT); minion->SetFaction(FACTION_MONSTER); minion->RemoveAura(SPELL_MINION_FREEZE_ANIM); @@ -124,7 +124,7 @@ class boss_archaedas : public CreatureScript void JustEngagedWith(Unit* /*who*/) override { me->SetFaction(FACTION_MONSTER); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); } @@ -264,7 +264,7 @@ class npc_archaedas_minions : public CreatureScript Initialize(); me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); me->RemoveAllAuras(); me->AddAura(SPELL_MINION_FREEZE_ANIM, me); @@ -274,7 +274,7 @@ class npc_archaedas_minions : public CreatureScript { me->SetFaction(FACTION_MONSTER); me->RemoveAllAuras(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); bAmIAwake = true; } @@ -353,7 +353,7 @@ class npc_stonekeepers : public CreatureScript void Reset() override { me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); me->RemoveAllAuras(); me->AddAura(SPELL_MINION_FREEZE_ANIM, me); @@ -362,7 +362,7 @@ class npc_stonekeepers : public CreatureScript void JustEngagedWith(Unit* /*who*/) override { me->SetFaction(FACTION_MONSTER); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); } diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp index 399a13d7e1a..ec21f8fddc5 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp @@ -151,7 +151,7 @@ class instance_uldaman : public InstanceMapScript { creature->SetFaction(FACTION_FRIENDLY); creature->RemoveAllAuras(); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); creature->SetControlled(true, UNIT_STATE_ROOT); creature->AddAura(SPELL_MINION_FREEZE_ANIM, creature); } @@ -185,7 +185,7 @@ class instance_uldaman : public InstanceMapScript continue; target->SetControlled(false, UNIT_STATE_ROOT); target->SetFaction(FACTION_MONSTER); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->RemoveAura(SPELL_MINION_FREEZE_ANIM); return; // only want the first one we find @@ -208,7 +208,7 @@ class instance_uldaman : public InstanceMapScript if (!target || !target->IsAlive() || target->GetFaction() == FACTION_MONSTER) continue; target->SetControlled(false, UNIT_STATE_ROOT); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->SetFaction(FACTION_MONSTER); target->RemoveAura(SPELL_MINION_FREEZE_ANIM); archaedas->CastSpell(target, SPELL_AWAKEN_VAULT_WALKER, true); @@ -263,7 +263,7 @@ class instance_uldaman : public InstanceMapScript archaedas->RemoveAura(SPELL_FREEZE_ANIM); archaedas->CastSpell(archaedas, SPELL_ARCHAEDAS_AWAKEN, false); archaedas->SetFaction(FACTION_TITAN); - archaedas->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + archaedas->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); whoWokeuiArchaedasGUID = target; } } @@ -276,7 +276,7 @@ class instance_uldaman : public InstanceMapScript ironaya->SetFaction(FACTION_TITAN); ironaya->SetControlled(false, UNIT_STATE_ROOT); - ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + ironaya->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); ironaya->GetMotionMaster()->Clear(); ironaya->GetMotionMaster()->MovePoint(0, IronayaPoint); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index 7cdbd1eacd8..ad5f9e9588c 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -191,7 +191,7 @@ class boss_akilzon : public CreatureScript trigger->SetFaction(FACTION_FRIENDLY); trigger->SetMaxHealth(100000); trigger->SetHealth(100000); - trigger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + trigger->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Cloud) { CastSpellExtraArgs args; @@ -291,7 +291,7 @@ class boss_akilzon : public CreatureScript Cloud->SetFaction(FACTION_FRIENDLY); Cloud->SetMaxHealth(9999999); Cloud->SetHealth(9999999); - Cloud->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Cloud->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } StormCount = 1; events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 1min); // 60 seconds(bosskillers) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index eeb31d4ccc3..7a2eeef610a 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -184,7 +184,7 @@ class boss_halazzi : public CreatureScript if (Unit* pLynx = ObjectAccessor::GetUnit(*me, LynxGUID)) { Talk(SAY_MERGE); - pLynx->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + pLynx->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); pLynx->GetMotionMaster()->Clear(); pLynx->GetMotionMaster()->MoveFollow(me, 0, 0); me->GetMotionMaster()->Clear(); @@ -371,7 +371,7 @@ class npc_halazzi_lynx : public CreatureScript void AttackStart(Unit* who) override { - if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) ScriptedAI::AttackStart(who); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 5c3d213f2cc..3a5dc9f3e87 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -429,7 +429,7 @@ class boss_hexlord_malacrass : public CreatureScript else { trigger->SetDisplayId(11686); - trigger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + trigger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); trigger->CastSpell(target, SPELL_SIPHON_SOUL, true); trigger->GetMotionMaster()->MoveChase(me); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 195750663a0..ec661a69469 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -278,9 +278,9 @@ class boss_janalai : public CreatureScript { if (Unit* FireBomb = ObjectAccessor::GetUnit(*me, FireBombGUIDs[BombCount])) { - FireBomb->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + FireBomb->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCast(FireBomb, SPELL_FIRE_BOMB_THROW, true); - FireBomb->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + FireBomb->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } ++BombCount; if (BombCount == 40) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index 8d44c4b3c74..09be494a80c 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -132,8 +132,8 @@ class boss_nalorakk : public CreatureScript if (MoveEvent) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); inMove = false; waitTimer = 0; me->SetSpeedRate(MOVE_RUN, 2); @@ -225,8 +225,8 @@ class boss_nalorakk : public CreatureScript Talk(YELL_NALORAKK_WAVE4); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); MoveEvent = false; } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 2a38d1e586e..e1c4f20c7fd 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -197,7 +197,7 @@ class boss_zuljin : public CreatureScript Initialize(); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 33975); + me->SetVirtualItem(0, 33975); //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 218172674); //me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE); } @@ -226,7 +226,7 @@ class boss_zuljin : public CreatureScript Talk(YELL_DEATH); if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[3])) - Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD); + Temp->SetStandState(UNIT_STAND_STATE_DEAD); } void AttackStart(Unit* who) override @@ -267,8 +267,8 @@ class boss_zuljin : public CreatureScript if (Creature* creature = me->SummonCreature(SpiritInfo[i].entry, SpiritInfo[i].pos, TEMPSUMMON_DEAD_DESPAWN)) { creature->CastSpell(creature, SPELL_SPIRIT_AURA, true); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); SpiritGUID[i] = creature->GetGUID(); } } @@ -302,14 +302,14 @@ class boss_zuljin : public CreatureScript case 4: DoTeleportTo(CENTER_X, CENTER_Y, CENTER_Z, 100); ResetThreatList(); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); + me->SetVirtualItem(0, 0); me->RemoveAurasDueToSpell(Transform[Phase].unaura); DoCast(me, Transform[Phase].spell); Talk(Transform[Phase].text); if (Phase > 0) { if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[Phase - 1])) - Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD); + Temp->SetStandState(UNIT_STAND_STATE_DEAD); } if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[NextPhase - 1])) Temp->CastSpell(me, SPELL_SIPHON_SOUL, false); // should m cast on temp diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 9a755e05246..736cdd27286 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -161,8 +161,8 @@ class instance_zulaman : public InstanceMapScript { if (Unit* hostage = player->SummonCreature(HostageInfo[num].npc, HostageInfo[num].pos, TEMPSUMMON_DEAD_DESPAWN)) { - hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + hostage->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + hostage->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } } } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 879ecdc4dc4..d0bb49544f0 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -71,10 +71,10 @@ class npc_zulaman_hostage : public CreatureScript if (action == GOSSIP_ACTION_INFO_DEF + 1) CloseGossipMenuFor(player); - if (!me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP)) + if (!me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP)) return true; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); //uint8 progress = instance->GetData(DATA_CHESTLOOTED); instance->SetData(DATA_CHESTLOOTED, 0); @@ -198,7 +198,7 @@ class npc_harrison_jones : public CreatureScript { CloseGossipMenuFor(player); me->SetFacingToObject(player); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_HARRISON_0); _gongEvent = GONG_EVENT_1; _gongTimer = 4000; @@ -214,8 +214,8 @@ class npc_harrison_jones : public CreatureScript me->SetEntry(NPC_HARRISON_JONES_2); me->SetDisplayId(MODEL_HARRISON_JONES_2); me->SetTarget(ObjectGuid::Empty); - me->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_DEAD); - me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + me->SetStandState(UNIT_STAND_STATE_DEAD); + me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); instance->SetData(DATA_GONGEVENT, DONE); } } @@ -237,7 +237,7 @@ class npc_harrison_jones : public CreatureScript me->SetFacingTo(6.235659f); Talk(SAY_HARRISON_1); DoCast(me, SPELL_BANGING_THE_GONG); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_MACE)); + me->SetVirtualItem(0, uint32(WEAPON_MACE)); me->SetSheath(SHEATH_STATE_MELEE); _gongEvent = GONG_EVENT_3; _gongTimer = 4000; @@ -278,7 +278,7 @@ class npc_harrison_jones : public CreatureScript _gongEvent = GONG_EVENT_6; break; case GONG_EVENT_6: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); Talk(SAY_HARRISON_3); _gongTimer = 7000; _gongEvent = GONG_EVENT_7; @@ -291,7 +291,7 @@ class npc_harrison_jones : public CreatureScript { if (target->GetPositionX() > 120) { - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_SPEAR)); + target->SetVirtualItem(0, uint32(WEAPON_SPEAR)); target->SetImmuneToPC(true); target->SetReactState(REACT_PASSIVE); target->AI()->SetData(0, 1); @@ -312,8 +312,8 @@ class npc_harrison_jones : public CreatureScript } case GONG_EVENT_8: DoCast(me, SPELL_STEALTH); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0)); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetVirtualItem(0, uint32(0)); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->GetMotionMaster()->MovePath(HARRISON_MOVE_3, false); _gongTimer = 1000; _gongEvent = 0; @@ -329,7 +329,7 @@ class npc_harrison_jones : public CreatureScript _gongTimer = 6000; break; case GONG_EVENT_11: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); instance->SetData(DATA_GONGEVENT, NOT_STARTED); _gongEvent = 0; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp index f6fb41230ec..02150827d45 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp @@ -108,8 +108,8 @@ struct boss_arlokk : public BossAI me->ApplyStatPctModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, DamageDecrease); // hack _Reset(); Initialize(); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER)); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER)); + me->SetVirtualItem(0, uint32(WEAPON_DAGGER)); + me->SetVirtualItem(1, uint32(WEAPON_DAGGER)); me->SetWalk(false); me->GetMotionMaster()->MovePoint(0, PosMoveOnSpawn[0]); } @@ -228,8 +228,8 @@ struct boss_arlokk : public BossAI case EVENT_TRANSFORM: { DoCast(me, SPELL_PANTHER_TRANSFORM); // SPELL_AURA_TRANSFORM - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP)); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(EQUIP_UNEQUIP)); + me->SetVirtualItem(0, uint32(EQUIP_UNEQUIP)); + me->SetVirtualItem(1, uint32(EQUIP_UNEQUIP)); /* CreatureTemplate const* cinfo = me->GetCreatureTemplate(); me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35))); @@ -239,7 +239,7 @@ struct boss_arlokk : public BossAI me->AttackStop(); ResetThreatList(); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); DoCast(me, SPELL_VANISH_VISUAL); DoCast(me, SPELL_VANISH); events.ScheduleEvent(EVENT_VANISH, 1s, 0, PHASE_ONE); @@ -258,7 +258,7 @@ struct boss_arlokk : public BossAI break; case EVENT_VISIBLE: me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) AttackStart(target); me->RemoveAura(SPELL_SUPER_INVIS); @@ -276,8 +276,8 @@ struct boss_arlokk : public BossAI { me->RemoveAura(SPELL_PANTHER_TRANSFORM); // SPELL_AURA_TRANSFORM DoCast(me, SPELL_VANISH_VISUAL); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER)); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER)); + me->SetVirtualItem(0, uint32(WEAPON_DAGGER)); + me->SetVirtualItem(1, uint32(WEAPON_DAGGER)); /* CreatureTemplate const* cinfo = me->GetCreatureTemplate(); me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg)); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp index 3ddb4e8360b..284fc8937a7 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp @@ -64,7 +64,7 @@ struct boss_renataki : public BossAI me->InterruptSpell(CURRENT_GENERIC_SPELL); SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); me->SetDisplayId(11686); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _invisible = true; _invisibleTimer = urand(15000, 30000); } @@ -95,7 +95,7 @@ struct boss_renataki : public BossAI me->InterruptSpell(CURRENT_GENERIC_SPELL); me->SetDisplayId(15268); SetEquipmentSlots(false, EQUIP_ID_MAIN_HAND, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _invisible = false; _visibleTimer = 4000; } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp index 30b0347095d..473de6c9cfa 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp @@ -129,7 +129,7 @@ struct boss_thekal : public BossAI _Reset(); Initialize(); me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); } void JustDied(Unit* /*killer*/) override @@ -301,7 +301,7 @@ struct boss_thekal : public BossAI // Trigger phase change _isChangingPhase = false; DoCastSelf(SPELL_TIGER_FORM); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); me->ApplyStatPctModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, DamageIncrease); ResetThreatList(); me->SetControlled(false, UNIT_STATE_ROOT); @@ -401,7 +401,7 @@ struct npc_zealot_lorkhan : public ScriptedAI { _events.Reset(); me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC); } void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override @@ -499,7 +499,7 @@ struct npc_zealot_zath : public ScriptedAI { _events.Reset(); me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); } void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp index 2e1b8db6887..fd1b09f4bf8 100644 --- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp +++ b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp @@ -141,7 +141,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI { if (action == ACTION_START_QUEST) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (Creature* thalorien = me->SummonCreature(NPC_THALORIEN_DAWNSEEKER, thalorienSummon, TEMPSUMMON_CORPSE_DESPAWN)) _thalorienGUID = thalorien->GetGUID(); @@ -153,7 +153,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI void Reset() override { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); _summons.DespawnAll(); _playerGUID.Clear(); _morlenGUID.Clear(); @@ -258,7 +258,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI { thalorien->SetWalk(true); thalorien->GetMotionMaster()->MovePoint(0, thalorienFight); - thalorien->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); + thalorien->SetEmoteState(EMOTE_STATE_READY2H); thalorien->SetHomePosition(thalorienFight); } @@ -320,7 +320,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI creature->GetEntry() == NPC_MORLEN_GOLDGRIP) continue; - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + creature->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); if (Creature* thalorien = ObjectAccessor::GetCreature(*me, _thalorienGUID)) creature->AI()->AttackStart(thalorien); } @@ -334,7 +334,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI case EVENT_MORLEN_ATTACK: if (Creature* morlen = ObjectAccessor::GetCreature(*me, _morlenGUID)) { - morlen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); + morlen->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); if (Creature* thalorien = ObjectAccessor::GetCreature(*me, _thalorienGUID)) morlen->AI()->AttackStart(thalorien); } @@ -374,7 +374,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI thalorien->DespawnOrUnsummon(5s); } - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; } diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp index 1f990fcb29d..b06667b2ea9 100644 --- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp @@ -105,7 +105,7 @@ public: _events.ScheduleEvent(EVENT_SET_QUESTGIVER_FLAG, 12s); break; case EVENT_SET_QUESTGIVER_FLAG: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); _events.ScheduleEvent(EVENT_STAND, 3s); break; case EVENT_STAND: @@ -128,7 +128,7 @@ public: me->SetFaction(FACTION_ENEMY); me->SetImmuneToPC(false); AttackStart(player); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } } diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp index 03a07e69e37..1ed0500eb40 100644 --- a/src/server/scripts/Events/hallows_end.cpp +++ b/src/server/scripts/Events/hallows_end.cpp @@ -140,16 +140,16 @@ class spell_hallow_end_trick : public SpellScript switch (urand(0, 5)) { case 1: - spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE; break; case 2: - spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE; break; case 3: - spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE; break; case 4: - spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE; break; case 5: spellId = SPELL_SKELETON_COSTUME; diff --git a/src/server/scripts/Events/operation_gnomeregan.cpp b/src/server/scripts/Events/operation_gnomeregan.cpp index 656f7fc7dd4..99365f3faab 100644 --- a/src/server/scripts/Events/operation_gnomeregan.cpp +++ b/src/server/scripts/Events/operation_gnomeregan.cpp @@ -54,10 +54,10 @@ class spell_operation_gnomeregan_basic_orders_emote : public AuraScript target->HandleEmoteCommand(EMOTE_ONESHOT_CHEER); break; case SPELL_TEST_DANCE: - target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE); + target->SetEmoteState(EMOTE_STATE_DANCE); break; case SPELL_TEST_STOP_DANCE: - target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + target->SetEmoteState(EMOTE_STATE_NONE); break; default: return; diff --git a/src/server/scripts/Events/zalazane_fall.cpp b/src/server/scripts/Events/zalazane_fall.cpp index 1b0e2e856f9..cdebdca63d8 100644 --- a/src/server/scripts/Events/zalazane_fall.cpp +++ b/src/server/scripts/Events/zalazane_fall.cpp @@ -187,7 +187,7 @@ struct npc_tiger_matriarch : public ScriptedAI if (HealthBelowPct(20)) { damage = 0; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (Unit* vehSummoner = attacker->ToTempSummon()->GetSummonerUnit()) { vehSummoner->AddAura(SPELL_SUMMON_ZENTABRA_TRIGGER, vehSummoner); diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index d84139c7511..2949d9ed40b 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -175,7 +175,7 @@ struct npc_morridune : public EscortAI void Reset() override { Talk(SAY_MORRIDUNE_1); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Start(false); } @@ -186,7 +186,7 @@ struct npc_morridune : public EscortAI case 4: SetEscortPaused(true); me->SetFacingTo(1.775791f); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_MORRIDUNE_2); break; } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index abd39632f41..319d5b26823 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -128,7 +128,7 @@ public: ArchimondeGUID = instance->GetGuidData(DATA_ARCHIMONDE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void JustEngagedWith(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index 15bc6025bfb..3d9e1d8b687 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -405,7 +405,7 @@ void hyjalAI::Reset() } //Flags - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); //Reset Instance Data for trash count if ((!instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == JAINA) || (instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == THRALL)) @@ -600,7 +600,7 @@ void hyjalAI::StartEvent(Player* player) CheckTimer = 5000; PlayerGUID = player->GetGUID(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); instance->DoUpdateWorldState(WORLD_STATE_WAVES, 0); instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); @@ -632,7 +632,7 @@ void hyjalAI::Retreat() Creature* JainaDummy = me->SummonCreature(JAINA, JainaDummySpawn[0][0], JainaDummySpawn[0][1], JainaDummySpawn[0][2], JainaDummySpawn[0][3], TEMPSUMMON_TIMED_DESPAWN, 1min); if (JainaDummy) { - JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + JainaDummy->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); ENSURE_AI(hyjalAI, JainaDummy->AI())->IsDummy = true; DummyGuid = JainaDummy->GetGUID(); } @@ -642,7 +642,7 @@ void hyjalAI::Retreat() } SpawnVeins(); Overrun = true; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started } void hyjalAI::SpawnVeins() @@ -836,7 +836,7 @@ void hyjalAI::UpdateAI(uint32 diff) } EventBegun = false; CheckTimer = 0; - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); BossGUID[i].Clear(); instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it } @@ -999,7 +999,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) { (*itr)->CastSpell(*itr, SPELL_TELEPORT_VISUAL, true); (*itr)->SetFaction(FACTION_FRIENDLY);//make them friendly so mobs won't attack them - (*itr)->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + (*itr)->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } DoCast(me, SPELL_TELEPORT_VISUAL); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 669bf59583d..7025555e253 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -404,7 +404,7 @@ void hyjal_trashAI::JustDied(Unit* /*killer*/) instance->SetData(DATA_TRASH, 0);//signal trash is dead if ((instance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !me->isWorldBoss()) || (damageTaken < me->GetMaxHealth()/4 && me->isWorldBoss())) - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);//no loot } class npc_giant_infernal : public CreatureScript @@ -420,8 +420,8 @@ public: meteor = false;//call once! CanMove = false; Delay = rand32() % 30000; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisplayId(MODEL_INVIS); go = false; Initialize(); @@ -486,8 +486,8 @@ public: } else if (!CanMove){ if (spawnTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID)); CanMove = true; if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT)) @@ -690,7 +690,7 @@ public: } if (waypointId == LastOverronPos && IsOverrun) { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK_UNARMED); + me->SetEmoteState(EMOTE_ONESHOT_ATTACK_UNARMED); if ((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21)) { me->DespawnOrUnsummon(); 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 7778be61390..49e8d584bb8 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -616,7 +616,7 @@ struct npc_martha_goslin : public CreatureScript InterruptTimer = 12000; SplineChainMovementGenerator::GetResumeInfo(ResumeInfo, me); me->GetMotionMaster()->Clear(); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); } void MovementInform(uint32 type, uint32 id) override @@ -626,12 +626,12 @@ struct npc_martha_goslin : public CreatureScript switch (id) { case MOVEID_EVENT1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); me->SetFacingTo(marthaIdleOrientation1, true); Events.ScheduleEvent(EVENT_MARTHA_IDLE2, Seconds(9), Seconds(15)); break; case MOVEID_EVENT2: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); me->SetFacingTo(marthaIdleOrientation2, true); Events.ScheduleEvent(EVENT_MARTHA_IDLE1, Seconds(9), Seconds(15)); break; @@ -668,11 +668,11 @@ struct npc_martha_goslin : public CreatureScript switch (eventId) { case EVENT_MARTHA_IDLE1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->GetMotionMaster()->MoveAlongSplineChain(MOVEID_EVENT1, CHAIN_MARTHA_IDLE1, true); break; case EVENT_MARTHA_IDLE2: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->GetMotionMaster()->MoveAlongSplineChain(MOVEID_EVENT2, CHAIN_MARTHA_IDLE2, true); break; default: @@ -683,7 +683,7 @@ struct npc_martha_goslin : public CreatureScript void JustAppeared() override { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); Events.RescheduleEvent(EVENT_MARTHA_IDLE2, Seconds(5), Seconds(10)); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp index db01f05052b..fb1cac8b123 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp @@ -576,9 +576,9 @@ public: // Adjust gossip flag based on whether we have a gossip menu or not if (target.HasGossip) - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); else - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); TC_LOG_TRACE("scripts.cos", "npc_arthas_stratholmeAI::AdvanceToState: has snapback for this state, distance = %f", target.SnapbackPosition->GetExactDist(me)); // Snapback handling - if we're too far from where we're supposed to be, teleport there @@ -1074,7 +1074,7 @@ public: DoCast(citizen, SPELL_CRUSADER_STRIKE, TRIGGERED_IGNORE_SET_FACING); if (Creature* resident = me->FindNearestCreature(NPC_RESIDENT, 100.0f, true)) { - resident->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER); + resident->SetEmoteState(EMOTE_STATE_COWER); resident->AI()->Talk(RP2_LINE_RESIDENT1, ObjectAccessor::GetUnit(*me, _eventStarterGuid)); } break; @@ -1465,7 +1465,7 @@ public: case RP5_EVENT_CHROMIE_SPAWN: if (Creature* chromie = instance->instance->SummonCreature(NPC_CHROMIE_3, ArthasPositions[RP5_CHROMIE_SPAWN])) { - chromie->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + chromie->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); Movement::PointsArray path(ChromieSplinePos, ChromieSplinePos + chromiePathSize); Movement::MoveSplineInit init(chromie); init.SetFly(); @@ -1476,14 +1476,14 @@ public: break; case RP5_EVENT_CHROMIE_LAND: if (Creature* chromie = me->FindNearestCreature(NPC_CHROMIE_3, 100.0f, true)) - chromie->SetByteValue(UNIT_FIELD_BYTES_1, 3, 0); + chromie->SetAnimTier(AnimTier::Ground); break; case RP5_EVENT_CHROMIE_TRANSFORM: if (Creature* chromie = me->FindNearestCreature(NPC_CHROMIE_3, 100.0f, true)) { chromie->CastSpell(chromie, SPELL_CHROMIE_3_TRANSFORM); chromie->AI()->Talk(RP5_LINE_CHROMIE0); - chromie->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + chromie->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); } break; default: diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index f6cc956b256..d787b6e0d23 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -227,12 +227,8 @@ public: break; case 9: Talk(SAY_TH_ARMORY); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THRALL_WEAPON_ITEM); - //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO); - //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, THRALL_SHIELD_ITEM); - //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO); - //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038); + me->SetVirtualItem(0, THRALL_WEAPON_ITEM); + me->SetVirtualItem(1, THRALL_SHIELD_ITEM); break; case 10: me->SetDisplayId(THRALL_MODEL_EQUIPPED); @@ -265,7 +261,7 @@ public: break; case 30: SetEscortPaused(true); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); SetRun(false); break; case 31: @@ -289,7 +285,7 @@ public: me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); //make horsie run off SetEscortPaused(true); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); instance->SetData(TYPE_THRALL_PART2, DONE); SetRun(); break; @@ -387,8 +383,8 @@ public: { DoUnmount(); HadMount = false; - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); + me->SetVirtualItem(0, 0); + me->SetVirtualItem(1, 0); me->SetDisplayId(THRALL_MODEL_UNEQUIPPED); } if (HasEscortState(STATE_ESCORT_ESCORTING)) @@ -398,7 +394,7 @@ public: } void StartWP() { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); SetEscortPaused(false); } void DoMount() diff --git a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp index 0e64baa3a11..36fd1c605d7 100644 --- a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp +++ b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp @@ -91,7 +91,7 @@ public: // we make Immolthar non attackable, otherwise players with pets can pull him out of the forcefield // TODO: this change isnt correct but since of today (13.09.2020) mmaps dont support doors if (GetBossState(DATA_FORCEFIELD) != DONE) - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); break; default: break; @@ -262,7 +262,7 @@ public: ffield->SetGoState(GO_STATE_ACTIVE); // remove previously set non attackable flag if (Creature* immo = instance->GetCreature(_immoGUID)) - immo->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + immo->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp index 53fe8fd3ad2..ac6d038bfa9 100644 --- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp +++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp @@ -83,7 +83,7 @@ public: { //Become visible again me->SetFaction(FACTION_MONSTER); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); //Noxxion model me->SetDisplayId(11172); Invisible = false; @@ -123,7 +123,7 @@ public: //me->m_canMove = true; me->InterruptNonMeleeSpells(false); me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); // Invisible Model me->SetDisplayId(11686); SummonAdds(me->GetVictim()); diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index f88160a72e3..ccf78432e41 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -105,7 +105,7 @@ public: channeling = false; eventProgress = 0; spawnerCount = 0; - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } } @@ -134,7 +134,7 @@ public: { eventInProgress = true; Talk(SAY_QUEST_ACCEPTED); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE); me->GetMotionMaster()->MovePath(PATH_ESCORT, false); } diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp index e2fb8652be2..f42ca486a00 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp +++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp @@ -100,7 +100,7 @@ public: break; case 45: Talk(SAY_WIN, player); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); player->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me); break; case 46: diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index f20fabca27e..971df3b696e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -86,7 +86,7 @@ public: void JustDied(Unit* /*killer*/) override { if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); instance->SetData(DATA_BUG_TRIO_DEATH, 1); } @@ -178,7 +178,7 @@ public: { instance->SetData(DATA_VEM_DEATH, 0); if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); instance->SetData(DATA_BUG_TRIO_DEATH, 1); } @@ -263,7 +263,7 @@ public: void JustDied(Unit* /*killer*/) override { if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); instance->SetData(DATA_BUG_TRIO_DEATH, 1); for (uint8 i = 0; i < 10; ++i) diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index fbd8edec371..639011f9ff9 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -209,7 +209,7 @@ public: //Reset flags me->RemoveAurasDueToSpell(SPELL_RED_COLORATION); me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetVisible(true); //Reset Phase @@ -420,7 +420,7 @@ public: me->RemoveAurasDueToSpell(SPELL_RED_COLORATION); //Reset to normal emote state and prevent select and attack - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); //Remove Target field me->SetTarget(ObjectGuid::Empty); @@ -523,7 +523,7 @@ public: //Reset flags me->RemoveAurasDueToSpell(SPELL_TRANSFORM); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetVisible(false); instance->SetData(DATA_CTHUN_PHASE, PHASE_NOT_STARTED); @@ -632,7 +632,7 @@ public: me->SetFullHealth(); me->SetVisible(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); //Emerging phase //AttackStart(ObjectAccessor::GetUnit(*me, HoldpPlayer)); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp index a0621a3670a..baa45489f71 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp @@ -112,7 +112,7 @@ public: { //Cast me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetFaction(FACTION_FRIENDLY); DoCast(me, SPELL_DIRTMOUND_PASSIVE); @@ -132,7 +132,7 @@ public: //Back_Timer if (Submerged && Back_Timer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetFaction(FACTION_MONSTER); DoCastVictim(SPELL_GROUND_RUPTURE); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index b6fc641f95c..e13337d64dc 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -124,7 +124,7 @@ struct boss_twinemperorsAI : public BossAI if (ohealth <= 0) { pOtherBoss->setDeathState(JUST_DIED); - pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); } } } @@ -136,7 +136,7 @@ struct boss_twinemperorsAI : public BossAI { pOtherBoss->SetHealth(0); pOtherBoss->setDeathState(JUST_DIED); - pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); ENSURE_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true; } if (!DontYellWhenDead) // I hope AI is not threaded diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp index f281f3bb894..d7e72ff0751 100644 --- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp +++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp @@ -100,7 +100,7 @@ public: switch (waypointId) { case 0: - me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); + me->SetStandState(UNIT_STAND_STATE_STAND); if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20)) Cage->SetGoState(GO_STATE_ACTIVE); break; diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp index 74a30497e9a..d75840e81fc 100644 --- a/src/server/scripts/Kalimdor/zone_azshara.cpp +++ b/src/server/scripts/Kalimdor/zone_azshara.cpp @@ -267,7 +267,7 @@ public: if (me->IsWithinDist(player, 10) && me->GetPositionX() > player->GetPositionX() && !Reached) { Talk(SAY_RIZZLE_FINAL); - me->SetUInt32Value(UNIT_NPC_FLAGS, 1); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetFaction(FACTION_FRIENDLY); me->GetMotionMaster()->MoveIdle(); me->RemoveAurasDueToSpell(SPELL_PERIODIC_DEPTH_CHARGE); @@ -337,7 +337,7 @@ public: { me->SetHover(true); me->SetSwim(true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Initialize(); } diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 0af9d3be92c..1e874a9644a 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -91,8 +91,8 @@ public: DoCast(me, SPELL_IRRIDATION, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + me->SetUnitFlag(UNIT_FLAG_IN_COMBAT); me->SetHealth(me->CountPctFromMaxHealth(10)); me->SetStandState(UNIT_STAND_STATE_SLEEP); } @@ -115,7 +115,7 @@ public: { if (spellInfo->SpellFamilyFlags[2] & 0x080000000) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + me->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); me->SetStandState(UNIT_STAND_STATE_STAND); DoCast(me, SPELL_STUNNED, true); @@ -202,7 +202,7 @@ public: { Initialize(); NormFaction = creature->GetFaction(); - NpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS); + NpcFlags = creature->GetNpcFlags(); } void Initialize() @@ -221,7 +221,7 @@ public: Initialize(); me->SetFaction(NormFaction); - me->SetUInt32Value(UNIT_NPC_FLAGS, NpcFlags); + me->ReplaceAllNpcFlags(NpcFlags); } void JustEngagedWith(Unit* who) override @@ -265,7 +265,7 @@ public: private: uint32 NormFaction; - uint32 NpcFlags; + NPCFlags NpcFlags; uint32 DynamiteTimer; uint32 EmoteTimer; bool IsTreeEvent; @@ -292,7 +292,7 @@ public: void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + me->SetUnitFlag(UNIT_FLAG_IN_COMBAT); me->SetHealth(me->CountPctFromMaxHealth(15)); switch (urand(0, 1)) { @@ -412,7 +412,7 @@ public: _events.ScheduleEvent(EVENT_STAND, 2s); break; case EVENT_STAND: // Remove kneel standstate. Using a separate delayed event because it causes unwanted delay before starting waypoint movement. - me->SetByteValue(UNIT_FIELD_BYTES_1, 0, 0); + me->SetStandState(UNIT_STAND_STATE_STAND); break; case EVENT_TALK_END: if (Player* player = ObjectAccessor::GetPlayer(*me, _player)) @@ -509,7 +509,7 @@ public: { SparkGUID = Spark->GetGUID(); Spark->setActive(true); - Spark->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + Spark->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } SayTimer = 8000; } diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp index 536d3508358..a555fa15079 100644 --- a/src/server/scripts/Kalimdor/zone_desolace.cpp +++ b/src/server/scripts/Kalimdor/zone_desolace.cpp @@ -97,12 +97,12 @@ public: me->GetMotionMaster()->MoveFollow(unitCaster, PET_FOLLOW_DIST, me->GetFollowAngle()); me->setActive(true); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } } else if (spellInfo->Id == SPELL_KODO_KOMBO_GOSSIP) { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp index 43c92e36920..b58dda79e99 100644 --- a/src/server/scripts/Kalimdor/zone_moonglade.cpp +++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp @@ -198,7 +198,7 @@ public: PlayerGUID = player->GetGUID(); Start(true, false, PlayerGUID); me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } return; } @@ -252,12 +252,12 @@ public: switch (Step) { case 0: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133); + me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE); EventTimer = 5000; Step = 1; break; case 1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); // Needs text EventOnWait = false; break; @@ -267,12 +267,12 @@ public: switch (Step) { case 0: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133); + me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE); EventTimer = 5000; Step = 1; break; case 1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); EventOnWait = false; break; } @@ -311,12 +311,12 @@ public: switch (Step) { case 0: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133); + me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE); EventTimer = 5000; Step = 1; break; case 1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); EventOnWait = false; break; } @@ -338,14 +338,14 @@ public: switch (Step) { case 0: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2); + me->SetEmoteState(EMOTE_ONESHOT_BOW); // Needs text player->CompleteQuest(10965); EventTimer = 1500; Step = 1; break; case 1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); EventTimer = 3000; Step = 2; break; diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 796d04b6480..4c40bf54350 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -645,7 +645,7 @@ public: if (Creature* stormwindPortal = me->SummonCreature(NPC_PORTAL_STORMWIND, PortalSpawnPosition)) { - stormwindPortal->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + stormwindPortal->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); stormwindPortalGUID = stormwindPortal->GetGUID(); } @@ -654,7 +654,7 @@ public: if (Creature* guards = ObjectAccessor::GetCreature(*me, guardsGUIDs[i])) { guards->SetWalk(false); - guards->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); + guards->SetEmoteState(EMOTE_STATE_READY2H); guards->GetMotionMaster()->MovePoint(1, GuardsMovePosition[i]); } } @@ -688,7 +688,7 @@ public: if (Creature* guard = ObjectAccessor::GetCreature(*me, guardsGUIDs[i])) { guard->GetMotionMaster()->MoveTargetedHome(); - guard->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + guard->SetEmoteState(EMOTE_STATE_NONE); } } events.ScheduleEvent(EVENT_HERALD_SCENE2, 3s); diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 9eba0cf104d..916b1b98756 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -363,7 +363,7 @@ public: { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void HandleAnimation() @@ -847,7 +847,7 @@ public: if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer)) { if (spawn->GetEntry() == NPC_KALDOREI_INFANTRY) - spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15427 + rand32() % 4); + spawn->SetDisplayId(15427 + rand32() % 4); if (i >= 30) WaveCount = 1; if (i >= 33) WaveCount = 2; if (i >= 45) WaveCount = 3; @@ -985,25 +985,25 @@ public: if (Merithra) { - Merithra->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - Merithra->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); - Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID, MERITHRA_NIGHT_ELF_FORM); + Merithra->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + Merithra->SetStandState(UNIT_STAND_STATE_STAND); + Merithra->SetDisplayId(MERITHRA_NIGHT_ELF_FORM); Merithra->SetFaction(FACTION_FRIENDLY); } if (Caelestrasz) { - Caelestrasz->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - Caelestrasz->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); - Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID, CAELESTRASZ_NIGHT_ELF_FORM); + Caelestrasz->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + Caelestrasz->SetStandState(UNIT_STAND_STATE_STAND); + Caelestrasz->SetDisplayId(CAELESTRASZ_NIGHT_ELF_FORM); Caelestrasz->SetFaction(FACTION_FRIENDLY); } if (Arygos) { - Arygos->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - Arygos->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); - Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID, ARYGOS_GNOME_FORM); + Arygos->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + Arygos->SetStandState(UNIT_STAND_STATE_STAND); + Arygos->SetDisplayId(ARYGOS_GNOME_FORM); Arygos->SetFaction(FACTION_FRIENDLY); } diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index 65e372b0ec5..3874e7c688c 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -382,8 +382,8 @@ public: if (!creature) continue; creature->SetFaction(35); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); AffrayChallenger[i] = creature->GetGUID(); } @@ -419,8 +419,8 @@ public: Creature* creature = ObjectAccessor::GetCreature(*me, AffrayChallenger[Wave]); if (creature && (creature->IsAlive())) { - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); creature->SetFaction(14); creature->AI()->AttackStart(warrior); @@ -451,8 +451,8 @@ public: } else // Makes BIG WILL attackable. { - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); creature->SetFaction(14); creature->AI()->AttackStart(warrior); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp index fa4363a42e6..8618b9e72a3 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp @@ -152,7 +152,7 @@ struct boss_volazj : public BossAI ResetPlayersPhaseMask(); // Cleanup - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_STUNNED); } @@ -192,7 +192,7 @@ struct boss_volazj : public BossAI void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) damage = 0; if ((GetHealthPct(0) >= 66 && GetHealthPct(damage) < 66) || (GetHealthPct(0) >= 33 && GetHealthPct(damage) < 33)) @@ -223,7 +223,7 @@ struct boss_volazj : public BossAI Talk(SAY_INSANITY); DoCastSelf(SPELL_WHISPER_INSANITY, true); // Unattackable - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_STUNNED); } // phase mask @@ -344,7 +344,7 @@ struct boss_volazj : public BossAI return; _insanityHandled = 0; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_STUNNED); me->RemoveAurasDueToSpell(INSANITY_VISUAL); } diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp index 301e4e1cdcb..8f8202d30c4 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp @@ -279,7 +279,7 @@ struct boss_jedoga_shadowseeker : public BossAI switch (pointId) { case POINT_GROUND: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); events.ScheduleEvent(EVENT_CYCLONE_STRIKE, 3s); @@ -329,7 +329,7 @@ struct boss_jedoga_shadowseeker : public BossAI me->SetReactState(REACT_PASSIVE); me->AttackStop(); me->InterruptNonMeleeSpells(true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->GetMotionMaster()->MovePoint(POINT_PHASE_TWO, JedogaGroundPosition); break; case EVENT_FLY_DELAY: @@ -416,7 +416,7 @@ struct npc_twilight_volunteer : public ScriptedAI me->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL_VOLUNTEER); Talk(SAY_CHOSEN); me->SetStandState(UNIT_STAND_STATE_STAND); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetWalk(true); me->GetMotionMaster()->MovePoint(POINT_SACRIFICE, JedogaSacrificePosition); } 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 5b2b2051729..dc888672538 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp @@ -273,7 +273,7 @@ struct boss_prince_taldaram : public BossAI void RemovePrison() { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); summons.DespawnEntry(NPC_JEDOGA_CONTROLLER); me->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL); me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), PrinceTaldaramGroundPositionZ, me->GetOrientation()); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index b7303f8ecd7..c8100dfc797 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -117,7 +117,7 @@ struct boss_anub_arak : public BossAI void Reset() override { BossAI::Reset(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_GOTTA_GO_START_EVENT); _nextSubmerge = 75; _petCount = 0; @@ -328,7 +328,7 @@ struct boss_anub_arak : public BossAI { me->RemoveAurasDueToSpell(SPELL_SUBMERGE); me->RemoveAurasDueToSpell(SPELL_IMPALE_AURA); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_EMERGE); events.SetPhase(PHASE_EMERGE); events.ScheduleEvent(EVENT_POUND, 13s, 18s, 0, PHASE_EMERGE); @@ -358,7 +358,7 @@ struct boss_anub_arak : public BossAI { if (spellInfo->Id == SPELL_SUBMERGE) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->RemoveAurasDueToSpell(SPELL_LEECHING_SWARM); DoCastSelf(SPELL_IMPALE_AURA, true); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp index 0e3ca170eb0..63490558494 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp @@ -273,8 +273,8 @@ struct boss_hadronox : public BossAI { BossAI::InitializeAI(); me->SetReactState(REACT_AGGRESSIVE); - me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f); - me->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f); + me->SetBoundingRadius(9.0f); + me->SetCombatReach(9.0f); _enteredCombat = false; _doorsWebbed = false; _lastPlayerCombatState = false; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 2dba7e316a9..89083426350 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -219,8 +219,8 @@ struct boss_sartharion : public BossAI tenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f); if (tenebron->IsAlive()) { - if (tenebron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - tenebron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (tenebron->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + tenebron->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); tenebron->GetMotionMaster()->MoveTargetedHome(); } else @@ -239,8 +239,8 @@ struct boss_sartharion : public BossAI shadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f); if (shadron->IsAlive()) { - if (shadron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - shadron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (shadron->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + shadron->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); shadron->GetMotionMaster()->MoveTargetedHome(); } else @@ -259,8 +259,8 @@ struct boss_sartharion : public BossAI vesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f); if (vesperon->IsAlive()) { - if (vesperon->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - vesperon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (vesperon->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + vesperon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); vesperon->GetMotionMaster()->MoveTargetedHome(); } else @@ -296,8 +296,8 @@ struct boss_sartharion : public BossAI } fetchTene->GetMotionMaster()->MovePoint(POINT_ID_INIT, TenebronPositions[0]); - if (!fetchTene->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - fetchTene->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (!fetchTene->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + fetchTene->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } @@ -314,8 +314,8 @@ struct boss_sartharion : public BossAI } fetchShad->GetMotionMaster()->MovePoint(POINT_ID_INIT, ShadronPositions[0]); - if (!fetchShad->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - fetchShad->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (!fetchShad->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + fetchShad->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } @@ -332,8 +332,8 @@ struct boss_sartharion : public BossAI } fetchVesp->GetMotionMaster()->MovePoint(POINT_ID_INIT, VesperonPositions[0]); - if (!fetchVesp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - fetchVesp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (!fetchVesp->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + fetchVesp->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } @@ -349,8 +349,8 @@ struct boss_sartharion : public BossAI { temp->SetWalk(false); - if (temp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (temp->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); uint8 textId = 0; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp index edca5e597d0..fc44875bf1d 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp @@ -177,8 +177,8 @@ struct dummy_dragonAI : public ScriptedAI void Reset() override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); events.Reset(); Initialize(); @@ -805,7 +805,7 @@ struct npc_flame_tsunami : public ScriptedAI me->SetReactState(REACT_PASSIVE); events.ScheduleEvent(EVENT_TSUNAMI_TIMER, 100ms); events.ScheduleEvent(EVENT_TSUNAMI_BUFF, 1s); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); } void UpdateAI(uint32 diff) override @@ -851,7 +851,7 @@ struct npc_twilight_fissure : public ScriptedAI void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->AddAura(46265, me); // Wrong, can't find proper visual me->AddAura(69422, me); events.ScheduleEvent(EVENT_VOID_BLAST, 5s); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index f7d2c400df9..43605254fd8 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -73,7 +73,7 @@ struct boss_general_zarithrian : public BossAI _Reset(); if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); } } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index dd6d9b8d203..22c59cfeb48 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -289,7 +289,7 @@ class boss_halion : public CreatureScript Talk(SAY_PHASE_TWO); me->CastStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_TWILIGHT_PHASING); if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER)) @@ -416,7 +416,7 @@ class boss_twilight_halion : public CreatureScript me->SetHealth(halion->GetHealth()); me->SetPhaseMask(0x20, true); me->SetReactState(REACT_DEFENSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + me->SetUnitFlag(UNIT_FLAG_IN_COMBAT); events.ScheduleEvent(EVENT_TAIL_LASH, 12s); events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 15s); } @@ -671,7 +671,7 @@ class npc_halion_controller : public CreatureScript continue; halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING); - halion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + halion->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } // Summon Twilight portals 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 cdeb50b7fff..c1be17907d8 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp @@ -176,7 +176,7 @@ class instance_ruby_sanctum : public InstanceMapScript if (GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE) if (Creature* zarithrian = GetCreature(DATA_GENERAL_ZARITHRIAN)) { - zarithrian->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + zarithrian->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); zarithrian->SetImmuneToPC(false); } } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp index 33dd1372999..e66831280f2 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp @@ -66,7 +66,7 @@ struct npc_xerestrasza : public ScriptedAI void Reset() override { _events.Reset(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } void DoAction(int32 action) override @@ -126,7 +126,7 @@ struct npc_xerestrasza : public ScriptedAI Talk(SAY_XERESTRASZA_EVENT_6); break; case EVENT_XERESTRASZA_EVENT_7: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); Talk(SAY_XERESTRASZA_EVENT_7); me->setActive(false); me->SetFarVisible(false); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index 218f3d55a0f..dbbdb2eb37a 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -163,7 +163,7 @@ public: Initialize(); instance = creature->GetInstanceScript(); creature->SetReactState(REACT_PASSIVE); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void Initialize() @@ -274,7 +274,7 @@ public: instance = creature->GetInstanceScript(); creature->SetReactState(REACT_PASSIVE); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->RestoreFaction(); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index 17e6c4598aa..2a32a48fcfb 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -110,7 +110,7 @@ void AggroAllPlayers(Creature* temp) if (player->IsAlive()) { - temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); temp->SetImmuneToPC(true); temp->SetReactState(REACT_AGGRESSIVE); temp->EngageWithTarget(player); @@ -328,7 +328,7 @@ public: me->SetReactState(REACT_PASSIVE); // THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); } @@ -466,7 +466,7 @@ public: me->SetReactState(REACT_PASSIVE); // THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); } @@ -610,7 +610,7 @@ public: me->SetReactState(REACT_PASSIVE); // THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); } @@ -762,7 +762,7 @@ public: me->SetReactState(REACT_PASSIVE); // THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); } @@ -923,7 +923,7 @@ public: me->SetReactState(REACT_PASSIVE); // THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp index df582dfa0a4..8a19f8d8d1f 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp @@ -171,7 +171,7 @@ public: if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID)) { pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f); - pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_CHAMPIONS_LOOT_H : GO_CHAMPIONS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h); } } @@ -183,7 +183,7 @@ public: if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID)) { pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f); - pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_EADRIC_LOOT_H : GO_EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h); } } @@ -194,7 +194,7 @@ public: if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID)) { pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f); - pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_PALETRESS_LOOT_H : GO_PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h); } } @@ -222,7 +222,7 @@ public: if (Creature* pBoss = instance->GetCreature(uiArgentChampionGUID)) { pBoss->GetMotionMaster()->MovePoint(0, 746.88f, 618.74f, 411.06f); - pBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + pBoss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); pBoss->SetReactState(REACT_AGGRESSIVE); } } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index c83674848a9..b34e27a9c7d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -92,8 +92,8 @@ public: uiTimer = 0; me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); SetGrandChampionsForEncounter(); SetArgentChampion(); @@ -351,7 +351,7 @@ public: void StartEncounter() { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (instance->GetBossState(BOSS_BLACK_KNIGHT) == NOT_STARTED) { @@ -387,7 +387,7 @@ public: if (player->IsAlive()) { temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); - temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); temp->SetReactState(REACT_AGGRESSIVE); AddThreat(player, 0.0f, temp); } @@ -431,7 +431,7 @@ public: { if (instance->GetBossState(BOSS_GRAND_CHAMPIONS) == NOT_STARTED) { - summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); summon->SetReactState(REACT_PASSIVE); } } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index e5d4389b3aa..15b30d81441 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -189,7 +189,7 @@ struct boss_anubarak_trial : public BossAI events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, 20s); Initialize(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); // clean up spawned Frost Spheres std::list<Creature*> FrostSphereList; me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f); @@ -269,7 +269,7 @@ struct boss_anubarak_trial : public BossAI { BossAI::JustEngagedWith(who); Talk(SAY_AGGRO); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); // Despawn Scarab Swarms neutral EntryCheckPredicate pred(NPC_SCARAB); @@ -332,7 +332,7 @@ struct boss_anubarak_trial : public BossAI { DoCast(me, SPELL_SUBMERGE_ANUBARAK); DoCast(me, SPELL_CLEAR_ALL_DEBUFFS); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); Talk(EMOTE_BURROWER); events.SetPhase(PHASE_SUBMERGED); events.ScheduleEvent(EVENT_PURSUING_SPIKE, 2s, 0, PHASE_SUBMERGED); @@ -368,7 +368,7 @@ struct boss_anubarak_trial : public BossAI DoCast(SPELL_SPIKE_TELE); summons.DespawnEntry(NPC_SPIKE); me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); DoCast(me, SPELL_EMERGE_ANUBARAK); Talk(EMOTE_EMERGE); events.SetPhase(PHASE_MELEE); @@ -557,14 +557,14 @@ struct npc_nerubian_burrower : public ScriptedAI me->RemoveAurasDueToSpell(SPELL_SUBMERGE_EFFECT); DoCast(me, SPELL_EMERGE_EFFECT); DoCast(me, SPELL_AWAKENED); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } else { if (!me->HasAura(SPELL_PERMAFROST_HELPER)) { DoCast(me, SPELL_SUBMERGE_EFFECT); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCast(me, SPELL_PERSISTENT_DIRT, true); } } @@ -605,7 +605,7 @@ struct npc_frost_sphere : public ScriptedAI { // we are close to the ground me->GetMotionMaster()->MoveIdle(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->RemoveAurasDueToSpell(SPELL_FROST_SPHERE); DoCast(SPELL_PERMAFROST_MODEL); DoCast(SPELL_PERMAFROST); @@ -615,7 +615,7 @@ struct npc_frost_sphere : public ScriptedAI { // we are in air me->GetMotionMaster()->MoveIdle(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); //At hit the ground me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH); me->GetMotionMaster()->MoveFall(POINT_FALL_GROUND); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index eea736e30d7..b9a80933aa0 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -478,7 +478,7 @@ struct boss_toc_champion_controller : public BossAI { summons.Summon(champion); champion->SetReactState(REACT_PASSIVE); - champion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + champion->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); champion->SetImmuneToPC(false); if (playerTeam == ALLIANCE) { @@ -510,7 +510,7 @@ struct boss_toc_champion_controller : public BossAI if (Creature* summon = ObjectAccessor::GetCreature(*me, *i)) { summon->SetReactState(REACT_AGGRESSIVE); - summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); summon->SetImmuneToPC(false); } } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp index 9ff2dedfea3..4a09f73bae2 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp @@ -324,7 +324,7 @@ struct npc_infernal_volcano : public ScriptedAI me->SetReactState(REACT_PASSIVE); DoCastSelf(SPELL_INFERNAL_ERUPTION_EFFECT, true); if (IsHeroic()) - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } }; @@ -386,7 +386,7 @@ struct npc_nether_portal : public ScriptedAI me->SetReactState(REACT_PASSIVE); DoCastSelf(SPELL_NETHER_PORTAL_EFFECT, true); if (IsHeroic()) - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } }; 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 fa8d0445df3..005f3db756b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -380,7 +380,7 @@ struct boss_gormok : public boss_northrend_beastsAI if (Unit* snobold = me->GetVehicleKit()->GetPassenger(i)) { snobold->ExitVehicle(); - snobold->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + snobold->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); snobold->GetAI()->DoAction(ACTION_DISABLE_FIRE_BOMB); snobold->CastSpell(me, SPELL_JUMP_TO_HAND, true); break; @@ -484,7 +484,7 @@ struct npc_snobold_vassal : public ScriptedAI } else { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); _events.CancelEvent(EVENT_CHECK_MOUNT); _events.CancelEvent(EVENT_FIRE_BOMB); me->AttackStop(); @@ -743,7 +743,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI DoCastSelf(SPELL_GROUND_VISUAL_0, true); events.SetPhase(PHASE_SUBMERGED); events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); } else { @@ -755,7 +755,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI events.SetPhase(PHASE_SUBMERGED); me->SetControlled(false, UNIT_STATE_ROOT); events.ScheduleEvent(EVENT_EMERGE, 6s, 0, PHASE_SUBMERGED); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); } me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ() + me->GetCollisionHeight()); } @@ -768,7 +768,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0); DoCastSelf(SPELL_EMERGE); DoCastAOE(SPELL_HATE_TO_ZERO, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) AttackStart(target); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index b58f57c29ac..a16ba46f84d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -241,8 +241,8 @@ struct boss_twin_baseAI : public BossAI { if (!pSister->IsAlive()) { - me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); + pSister->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE); events.Reset(); summons.DespawnAll(); HandleRemoveAuras(); @@ -250,7 +250,7 @@ struct boss_twin_baseAI : public BossAI } else { - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); instance->SetBossState(DATA_TWIN_VALKIRIES, SPECIAL); } } @@ -555,7 +555,7 @@ struct npc_unleashed_ballAI : public ScriptedAI void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_PASSIVE); me->SetDisableGravity(true); me->SetCanFly(true); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index af5e59a7184..ffc8272bbf1 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -233,7 +233,7 @@ struct npc_barrett_toc : public ScriptedAI { if (Creature* fordring = _instance->GetCreature(DATA_FORDRING)) fordring->AI()->DoAction(action); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->GetMotionMaster()->MoveAlongSplineChain(POINT_BARRETT_DESPAWN, SPLINE_INITIAL_MOVEMENT, false); } @@ -337,7 +337,7 @@ struct boss_lich_king_toc : public ScriptedAI _instance->SetBossState(DATA_LICH_KING, DONE); break; case EVENT_EMOTE_TALK: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); + me->SetEmoteState(EMOTE_STATE_TALK); me->GetMap()->SetZoneWeather(AREA_TRIAL_OF_THE_CRUSADER, WEATHER_STATE_FOG, 0.0f); _events.ScheduleEvent(EVENT_EMOTE_EXCLAMATION, 10s); break; @@ -728,10 +728,10 @@ struct npc_fizzlebang_toc : public ScriptedAI fordring->AI()->DoAction(ACTION_KILL_JARAXXUS); break; case EVENT_EMOTE_TALK: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); + me->SetEmoteState(EMOTE_STATE_TALK); break; case EVENT_REMOVE_EMOTE_TALK: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); break; default: break; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index e3b510eea81..684982ff1f4 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -198,15 +198,15 @@ private: _bubbled = state; if (!state) { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (me->HasUnitState(UNIT_STATE_CASTING)) me->CastStop(); } else { - if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); DoCast(SPELL_ARCANE_FIELD); } } diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp index bbcebee96c4..30d3707a80f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp @@ -82,7 +82,7 @@ struct npc_sylvanas_fos : public ScriptedAI { Initialize(); instance = me->GetInstanceScript(); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void Initialize() @@ -107,7 +107,7 @@ struct npc_sylvanas_fos : public ScriptedAI { CloseGossipMenuFor(player); phase = PHASE_INTRO; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); events.Reset(); events.ScheduleEvent(EVENT_INTRO_1, 1s); } @@ -169,7 +169,7 @@ struct npc_jaina_fos: public ScriptedAI { Initialize(); instance = me->GetInstanceScript(); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void Initialize() @@ -194,7 +194,7 @@ struct npc_jaina_fos: public ScriptedAI { CloseGossipMenuFor(player); phase = PHASE_INTRO; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); events.Reset(); events.ScheduleEvent(EVENT_INTRO_1, 1s); } diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index f690a3137dd..cc493bcf086 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -382,12 +382,12 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript case 0: player->PlayerTalkClass->SendCloseGossip(); _events.ScheduleEvent(EVENT_START_INTRO, 1s); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; case 1: player->PlayerTalkClass->SendCloseGossip(); _events.ScheduleEvent(EVENT_SKIP_INTRO, 1s); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; default: break; @@ -402,7 +402,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript _utherGUID.Clear(); _lichkingGUID.Clear(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); me->SetStandState(UNIT_STAND_STATE_STAND); _events.ScheduleEvent(EVENT_WALK_INTRO1, 3s); } @@ -435,7 +435,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript Talk(SAY_JAINA_INTRO_2); else Talk(SAY_SYLVANAS_INTRO_2); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; case EVENT_START_INTRO: if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN))) @@ -631,7 +631,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript } if (Creature* uther = ObjectAccessor::GetCreature(*me, _utherGUID)) { - uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER); + uther->SetEmoteState(EMOTE_STATE_COWER); if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) uther->AI()->Talk(SAY_UTHER_INTRO_A2_9); else @@ -902,7 +902,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript { case 0: player->PlayerTalkClass->SendCloseGossip(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _events.ScheduleEvent(EVENT_ESCAPE_6, 0s); break; default: @@ -966,7 +966,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript me->RemoveAurasDueToSpell(SPELL_JAINA_ICE_BARRIER); else me->RemoveAurasDueToSpell(SPELL_SYLVANAS_CLOAK_OF_DARKNESS); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetHealth(JAINA_SYLVANAS_MAX_HEALTH); me->SetFacingTo(SylvanasShadowThroneDoorPosition.GetOrientation()); break; @@ -1013,7 +1013,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript lichking->AI()->AttackStart(me); } me->SetHealth(JAINA_SYLVANAS_MAX_HEALTH); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; case EVENT_ESCAPE_1: if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) @@ -1038,7 +1038,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { lichking->SetReactState(REACT_PASSIVE); - lichking->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + lichking->SetUnitFlag(UNIT_FLAG_PACIFIED); } _events.ScheduleEvent(EVENT_ESCAPE_3, 1500ms); @@ -1071,7 +1071,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript case EVENT_ESCAPE_6: if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE))) { - lichking->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + lichking->RemoveUnitFlag(UNIT_FLAG_PACIFIED); lichking->SetImmuneToPC(false); if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) @@ -1156,7 +1156,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else Talk(SAY_SYLVANAS_ESCAPE_9); DoCast(me, SPELL_CREDIT_ESCAPING_ARTHAS); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); break; default: break; 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 4c02dc6fbd3..9fcc7df1730 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 @@ -123,7 +123,7 @@ class instance_halls_of_reflection : public InstanceMapScript case NPC_KORELN: case NPC_LORALEN: if (GetBossState(DATA_MARWYN) != DONE) - creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); KorelnOrLoralenGUID = creature->GetGUID(); break; case NPC_THE_LICH_KING_INTRO: @@ -317,7 +317,7 @@ class instance_halls_of_reflection : public InstanceMapScript bunny->CastSpell(bunny, SPELL_START_HALLS_OF_REFLECTION_QUEST_AE, true); if (Creature* korelnOrLoralen = instance->GetCreature(KorelnOrLoralenGUID)) - korelnOrLoralen->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + korelnOrLoralen->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); HandleGameObject(EntranceDoorGUID, true); HandleGameObject(ImpenetrableDoorGUID, true); @@ -590,7 +590,7 @@ class instance_halls_of_reflection : public InstanceMapScript if (Creature* temp = instance->GetCreature(guid)) { temp->CastSpell(temp, SPELL_SPIRIT_ACTIVATE, false); - temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + temp->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); temp->SetImmuneToAll(false); temp->AI()->DoZoneInCombat(temp); } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index 71c508df17c..fae90261770 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -318,7 +318,7 @@ struct boss_krick : public ScriptedAI Initialize(); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void KilledUnit(Unit* victim) override 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 438fb0af2de..0c11c0b8b20 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -147,7 +147,7 @@ struct boss_tyrannus : public BossAI events.Reset(); events.SetPhase(PHASE_NONE); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); instance->SetBossState(DATA_TYRANNUS, NOT_STARTED); } @@ -163,7 +163,7 @@ struct boss_tyrannus : public BossAI void AttackStart(Unit* victim) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; if (victim && me->Attack(victim, true) && !events.IsInPhase(PHASE_INTRO)) @@ -238,7 +238,7 @@ struct boss_tyrannus : public BossAI if (Creature* rimefang = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RIMEFANG))) rimefang->AI()->DoAction(ACTION_START_RIMEFANG); //set rimefang also infight events.SetPhase(PHASE_COMBAT); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); DoCast(me, SPELL_FULL_HEAL); DoZoneInCombat(); @@ -300,7 +300,7 @@ struct boss_rimefang : public ScriptedAI Initialize(); me->SetCanFly(true); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void JustReachedHome() 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 5ad5a8a0174..2dcf6181879 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp @@ -240,7 +240,7 @@ struct boss_blood_council_controller : public BossAI for (uint32 bossData : PrincesData) if (Creature* prince = ObjectAccessor::GetCreature(*me, instance->GetGuidData(bossData))) { - prince->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + prince->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); prince->SetImmuneToPC(false); if (bossData == DATA_PRINCE_VALANAR) { @@ -529,7 +529,7 @@ struct BloodPrincesBossAI : public BossAI _isEmpowered = false; if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL))) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); controller->AI()->SetData(DATA_PRINCE_EVADE, 1); } } @@ -555,7 +555,7 @@ struct BloodPrincesBossAI : public BossAI { case ACTION_STAND_UP: me->RemoveAurasDueToSpell(SPELL_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why me->m_Events.AddEvent(new StandUpEvent(me), me->m_Events.CalculateTime(1s)); @@ -779,7 +779,7 @@ struct boss_prince_valanar_icc : public BloodPrincesBossAI summon->GetPosition(x, y, z); float ground_Z = summon->GetMap()->GetHeight(summon->GetPhaseMask(), x, y, z, true, 500.0f); summon->GetMotionMaster()->MovePoint(POINT_KINETIC_BOMB_IMPACT, x, y, ground_Z); - summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + summon->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); break; } case NPC_SHOCK_VORTEX: diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp index 9024f032af2..fd37731f973 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp @@ -209,7 +209,7 @@ struct boss_blood_queen_lana_thel : public BossAI player->RewardPlayerAndGroupAtEvent(Is25ManRaid() ? NPC_INFILTRATOR_MINCHAR_BQ_25 : NPC_INFILTRATOR_MINCHAR_BQ, player); if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f)) { - minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + minchar->SetEmoteState(EMOTE_ONESHOT_NONE); minchar->SetAnimTier(AnimTier::Ground); minchar->SetCanFly(false); minchar->RemoveAllAuras(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 6be1c323706..9f7bdea2263 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -364,7 +364,7 @@ struct boss_deathbringer_saurfang : public BossAI _dead = true; _JustDied(); _EnterEvadeMode(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); me->RemoveAurasOnEvade(); DoCastAOE(SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION); @@ -461,7 +461,7 @@ struct boss_deathbringer_saurfang : public BossAI switch (eventId) { case EVENT_INTRO_ALLIANCE_2: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetFaction(FACTION_UNDEAD_SCOURGE); Talk(SAY_INTRO_ALLIANCE_2); break; @@ -474,7 +474,7 @@ struct boss_deathbringer_saurfang : public BossAI DoCastSelf(SPELL_GRIP_OF_AGONY); break; case EVENT_INTRO_HORDE_2: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetFaction(FACTION_UNDEAD_SCOURGE); Talk(SAY_INTRO_HORDE_2); break; @@ -661,7 +661,7 @@ struct npc_high_overlord_saurfang_icc : public ScriptedAI for (auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr) (*itr)->AI()->SetData(0, x); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_INTRO_HORDE_1); _events.SetPhase(PHASE_INTRO_H); _events.ScheduleEvent(EVENT_INTRO_HORDE_3, 18500ms, 0, PHASE_INTRO_H); @@ -729,8 +729,8 @@ struct npc_high_overlord_saurfang_icc : public ScriptedAI if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG))) { deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true); // for the packet logs. - deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - deathbringer->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED); + deathbringer->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + deathbringer->SetEmoteState(EMOTE_STATE_DROWNED); } _events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 1s); // move _events.ScheduleEvent(EVENT_OUTRO_HORDE_6, 4s); // say @@ -862,7 +862,7 @@ struct npc_muradin_bronzebeard_icc : public ScriptedAI for (auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr) (*itr)->AI()->SetData(0, x); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); Talk(SAY_INTRO_ALLIANCE_1); _events.ScheduleEvent(EVENT_INTRO_ALLIANCE_4, 29500ms, 0, PHASE_INTRO_A); _instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true); 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 c53184ae5a8..33e30a051e0 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -956,7 +956,7 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI bool OnGossipSelect(Player* /*player*/, uint32 /*menuId*/, uint32 /*gossipListId*/) override { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->GetTransport()->EnableMovement(true); _events.SetPhase(PHASE_INTRO); _events.ScheduleEvent(EVENT_INTRO_H_1, 5s, 0, PHASE_INTRO); @@ -1209,7 +1209,7 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI bool OnGossipSelect(Player* /*player*/, uint32 /*menuId*/, uint32 /*gossipListId*/) override { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->GetTransport()->EnableMovement(true); _events.SetPhase(PHASE_INTRO); _events.ScheduleEvent(EVENT_INTRO_A_1, 5s); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index 5333e753d4c..81aca39d354 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -271,7 +271,7 @@ struct boss_lady_deathwhisper : public BossAI void AttackStart(Unit* victim) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; if (victim && me->Attack(victim, true) && _phase != PHASE_ONE) @@ -644,12 +644,12 @@ struct npc_cult_fanatic : public ScriptedAI DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH); DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS); DoCastSelf(SPELL_FULL_HEAL, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); }) .Schedule(Seconds(6), [this](TaskContext /*context*/) { me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(me); @@ -735,12 +735,12 @@ struct npc_cult_adherent : public ScriptedAI DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH); DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS); DoCastSelf(SPELL_FULL_HEAL, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); }) .Schedule(Seconds(6), [this](TaskContext /*context*/) { me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); DoCastSelf(SPELL_SHROUD_OF_THE_OCCULT); DoZoneInCombat(me); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index d357279019a..60cc7afc273 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -244,7 +244,7 @@ struct boss_professor_putricide : public BossAI if (instance->GetBossState(DATA_ROTFACE) == DONE && instance->GetBossState(DATA_FESTERGUT) == DONE) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); } } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 0eb1b7c3227..3153a91f7b9 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -323,7 +323,7 @@ struct boss_sindragosa : public BossAI me->SetCanFly(true); me->SetDisableGravity(true); me->SetSpeedRate(MOVE_FLIGHT, 4.0f); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); Milliseconds moveTime = Milliseconds(uint64(me->GetExactDist(&SindragosaFlyPos) / (me->GetSpeed(MOVE_FLIGHT) * 0.001f))); me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SindragosaLandPos), me->m_Events.CalculateTime(moveTime + 250ms)); me->GetMotionMaster()->MovePoint(POINT_FROSTWYRM_FLY_IN, SindragosaFlyPos); @@ -357,7 +357,7 @@ struct boss_sindragosa : public BossAI me->SetCanFly(false); me->SetDisableGravity(false); me->SetHomePosition(SindragosaLandPos); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetSpeedRate(MOVE_FLIGHT, 2.5f); // Sindragosa enters combat as soon as she lands @@ -694,7 +694,7 @@ struct npc_spinestalker : public ScriptedAI me->setActive(true); me->SetFarVisible(true); me->SetSpeedRate(MOVE_FLIGHT, 2.0f); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); Milliseconds moveTime = Milliseconds(uint64(me->GetExactDist(&SpinestalkerFlyPos) / (me->GetSpeed(MOVE_FLIGHT) * 0.001f))); me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SpinestalkerLandPos), me->m_Events.CalculateTime(moveTime + 250ms)); me->SetDefaultMovementType(IDLE_MOTION_TYPE); @@ -716,7 +716,7 @@ struct npc_spinestalker : public ScriptedAI me->SetDisableGravity(false); me->SetHomePosition(SpinestalkerLandPos); me->SetFacingTo(SpinestalkerLandPos.GetOrientation()); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp index 4c35e0ec6fc..e10f14f3ab7 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp @@ -467,7 +467,7 @@ struct boss_sister_svalna : public BossAI CastSpellExtraArgs args; args.AddSpellBP0(1); summon->CastSpell(target, VEHICLE_SPELL_RIDE_HARDCODED, args); - summon->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_ENEMY_INTERACT); + summon->SetUnitFlag2(UNIT_FLAG2_ALLOW_ENEMY_INTERACT); } break; default: 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 4a5efbe4252..5dd848c2045 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1166,7 +1166,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI { _events.Reset(); if (_instance->GetBossState(DATA_THE_LICH_KING) == DONE) - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void MovementInform(uint32 type, uint32 id) override @@ -1177,7 +1177,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI switch (id) { case POINT_TIRION_INTRO: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); + me->SetEmoteState(EMOTE_STATE_READY2H); if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) theLichKing->AI()->DoAction(ACTION_START_ENCOUNTER); break; @@ -1218,7 +1218,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI if (me->GetCreatureTemplate()->GossipMenuId == menuId && !gossipListId) { _events.SetPhase(PHASE_INTRO); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetWalk(true); me->GetMotionMaster()->MovePoint(POINT_TIRION_INTRO, TirionIntro); } @@ -1227,7 +1227,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI void JustReachedHome() override { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); } void UpdateAI(uint32 diff) override @@ -1500,7 +1500,7 @@ struct npc_valkyr_shadowguard : public ScriptedAI case POINT_CHARGE: if (Player* target = ObjectAccessor::GetPlayer(*me, _grabbedPlayer)) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_ARTHAS_PLATFORM))) { std::list<Creature*> triggers; @@ -1737,7 +1737,7 @@ struct npc_terenas_menethil : public ScriptedAI damage = me->GetHealth() - 1; if (!me->HasAura(SPELL_TERENAS_LOSES_INSIDE) && !IsHeroic()) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCast(SPELL_TERENAS_LOSES_INSIDE); _events.ScheduleEvent(EVENT_TELEPORT_BACK, 1s); if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f)) @@ -1798,7 +1798,7 @@ struct npc_terenas_menethil : public ScriptedAI } break; case EVENT_DESTROY_SOUL: - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f)) warden->CastSpell(nullptr, SPELL_DESTROY_SOUL, TRIGGERED_NONE); DoCast(SPELL_TERENAS_LOSES_INSIDE); @@ -2548,7 +2548,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScript summoner->GetAI()->SetData(DATA_VILE, 1); GetCaster()->CastSpell(nullptr, SPELL_SPIRIT_BURST, true); GetCaster()->ToCreature()->DespawnOrUnsummon(3s); - GetCaster()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + GetCaster()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } 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 465ef579e2d..7da5f75564d 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -378,7 +378,7 @@ struct boss_valithria_dreamwalker : public ScriptedAI DoCastSelf(SPELL_REPUTATION_BOSS_KILL, true); // this display id was found in sniff instead of the one on aura me->SetDisplayId(11686); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->DespawnOrUnsummon(4s); if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER))) Unit::Kill(me, trigger); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index e381bfb22a2..a03f6eb844e 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1023,7 +1023,7 @@ struct npc_icc_nerubar_broodkeeper : public ScriptedAI { me->SetDisableGravity(true); me->SetImmuneToAll(true); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_03); + me->SetEmoteState(EMOTE_STATE_CUSTOM_SPELL_03); } void Reset() override @@ -1050,7 +1050,7 @@ struct npc_icc_nerubar_broodkeeper : public ScriptedAI me->SetHomePosition(x, y, z, me->GetOrientation()); me->GetMotionMaster()->MoveLand(POINT_LAND, Position(x, y, z)); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); } void MovementInform(uint32 type, uint32 id) override @@ -1313,9 +1313,9 @@ class spell_icc_stoneform : public AuraScript if (Creature* target = GetTarget()->ToCreature()) { target->SetReactState(REACT_PASSIVE); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->SetImmuneToPC(true); - target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_02); + target->SetEmoteState(EMOTE_STATE_CUSTOM_SPELL_02); } } @@ -1324,9 +1324,9 @@ class spell_icc_stoneform : public AuraScript if (Creature* target = GetTarget()->ToCreature()) { target->SetReactState(REACT_AGGRESSIVE); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->SetImmuneToPC(false); - target->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + target->SetEmoteState(EMOTE_ONESHOT_NONE); } } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index a8185a2599d..5c781128fe5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -272,7 +272,7 @@ class instance_icecrown_citadel : public InstanceMapScript break; case NPC_INFILTRATOR_MINCHAR_BQ: // keep him in air - creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + creature->SetEmoteState(EMOTE_ONESHOT_NONE); creature->SetDisableGravity(true); break; case NPC_CROK_SCOURGEBANE: diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 0c997074a7a..55385b646b0 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -224,7 +224,7 @@ struct boss_kelthuzad : public BossAI return; _Reset(); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); _skeletonCount = 0; _bansheeCount = 0; @@ -429,7 +429,7 @@ struct boss_kelthuzad : public BossAI case EVENT_PHASE_TWO: me->CastStop(); events.SetPhase(PHASE_TWO); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); ResetThreatList(); me->SetReactState(REACT_AGGRESSIVE); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp index 42dd01c4cf0..567acea1156 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp @@ -97,7 +97,7 @@ struct boss_noth : public BossAI _Reset(); me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); balconyCount = 0; events.SetPhase(PHASE_NONE); @@ -233,7 +233,7 @@ struct boss_noth : public BossAI case EVENT_BALCONY: events.SetPhase(PHASE_BALCONY); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->AttackStop(); me->StopMoving(); me->RemoveAllAuras(); @@ -289,7 +289,7 @@ struct boss_noth : public BossAI EnterPhaseGround(); break; case EVENT_GROUND_ATTACKABLE: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp index 67b7eb05f17..19bb9649717 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp @@ -170,7 +170,7 @@ struct npc_dk_understudy : public ScriptedAI void JustEngagedWith(Unit* /*who*/) override { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); if (Creature* razuvious = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_RAZUVIOUS))) razuvious->AI()->DoZoneInCombat(); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index 062346066cc..9116e778146 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -141,7 +141,7 @@ struct boss_sapphiron : public BossAI if (!instance->GetData(DATA_HAD_SAPPHIRON_BIRTH)) { me->SetVisible(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_PASSIVE); } @@ -394,7 +394,7 @@ struct boss_sapphiron : public BossAI return; case EVENT_BIRTH: me->SetVisible(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); return; case EVENT_DRAIN: diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index 120487e8418..8dd494f7855 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -298,7 +298,7 @@ public: { events.SetPhase(PHASE_TRANSITION); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); events.ScheduleEvent(EVENT_TRANSITION_1, 10s, 0, PHASE_TRANSITION); events.ScheduleEvent(EVENT_TRANSITION_2, 12s, 0, PHASE_TRANSITION); @@ -316,7 +316,7 @@ public: me->DespawnOrUnsummon(0s, 30s); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); me->SetImmuneToPC(true); me->setActive(false); me->SetFarVisible(false); @@ -504,7 +504,7 @@ public: me->SetFullHealth(); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); Talk(EMOTE_FEIGN_REVIVE); isFeignDeath = false; @@ -575,7 +575,7 @@ public: if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) thaddius->AI()->DoAction(ACTION_STALAGG_DIED); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->RemoveAllAuras(); me->SetReactState(REACT_PASSIVE); me->AttackStop(); @@ -738,7 +738,7 @@ public: me->SetFullHealth(); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); Talk(EMOTE_FEIGN_REVIVE); isFeignDeath = false; @@ -814,7 +814,7 @@ public: if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS))) thaddius->AI()->DoAction(ACTION_FEUGEN_DIED); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->RemoveAllAuras(); me->SetReactState(REACT_PASSIVE); me->AttackStop(); diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 2afd6fc82de..4e882bb0a55 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -370,7 +370,7 @@ struct boss_malygos : public BossAI me->SetDisableGravity(true); me->SetImmuneToAll(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); // TO DO: find what in core is making boss slower than in retail (when correct speed data) or find missing movement flag update or forced spline change me->SetSpeedRate(MOVE_FLIGHT, _flySpeed * 0.25f); if (_despawned) @@ -682,7 +682,7 @@ struct boss_malygos : public BossAI if (!_firstCyclicMovementStarted) { _firstCyclicMovementStarted = true; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID))) me->SetFacingToObject(alexstraszaBunny); events.ScheduleEvent(EVENT_SUMMON_ARCANE_BOMB, 1s, 0, PHASE_TWO); @@ -916,7 +916,7 @@ struct boss_malygos : public BossAI me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_DEFAULT, LIGHT_OBSCURE_ARCANE_RUNES, 1s); DoCast(me, SPELL_CLEAR_ALL_DEBUFFS); DoCast(me, SPELL_IMMUNE_CURSES); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); SetPhase(PHASE_THREE, true); @@ -1131,7 +1131,7 @@ struct npc_melee_hover_disk : public VehicleAI { me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisableGravity(false); me->SetCanFly(false); } @@ -1161,7 +1161,7 @@ struct npc_melee_hover_disk : public VehicleAI if (vehicleTemp->GetPassenger(0) && vehicleTemp->GetPassenger(0)->GetTypeId() == TYPEID_PLAYER) { vehicleTemp->RemoveAllPassengers(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } } diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp index 4cd27f3b58a..5afea688814 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp @@ -123,7 +123,7 @@ struct boss_magus_telestra : public ScriptedAI { Initialize(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(true); instance->SetBossState(DATA_MAGUS_TELESTRA, NOT_STARTED); @@ -237,7 +237,7 @@ struct boss_magus_telestra : public ScriptedAI me->AttackStop(); if (uiIsWaitingToAppearTimer <= diff) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); bIsWaitingToAppear = false; } else uiIsWaitingToAppearTimer -= diff; return; @@ -274,7 +274,7 @@ struct boss_magus_telestra : public ScriptedAI me->CastStop(); me->RemoveAllAuras(); me->SetVisible(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS); uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS); uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS); @@ -291,7 +291,7 @@ struct boss_magus_telestra : public ScriptedAI me->CastStop(); me->RemoveAllAuras(); me->SetVisible(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS); uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS); uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS); diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index f889e11a66c..406c6adf578 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -82,7 +82,7 @@ class instance_oculus : public InstanceMapScript BelgaristraszGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS) == DONE) { - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); creature->Relocate(BelgaristraszMove); } break; @@ -90,7 +90,7 @@ class instance_oculus : public InstanceMapScript EternosGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS) == DONE) { - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); creature->Relocate(EternosMove); } break; @@ -98,7 +98,7 @@ class instance_oculus : public InstanceMapScript VerdisaGUID = creature->GetGUID(); if (GetBossState(DATA_DRAKOS) == DONE) { - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); creature->Relocate(VerdisaMove); } break; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index 5a09a369d79..4424322d492 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -196,7 +196,7 @@ struct npc_verdisa_beglaristrasz_eternos : public ScriptedAI Talk(SAY_BELGARISTRASZ); // The gossip flag should activate when Drakos die and not from DB - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } }; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp index df601183119..cf585bda529 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp @@ -106,7 +106,7 @@ struct boss_ionar : public ScriptedAI Initialize(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); if (!me->IsVisible()) @@ -146,7 +146,7 @@ struct boss_ionar : public ScriptedAI me->AttackStop(); me->SetVisible(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); me->GetMotionMaster()->Clear(); @@ -230,7 +230,7 @@ struct boss_ionar : public ScriptedAI else if (lSparkList.empty()) { me->SetVisible(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(false, UNIT_STATE_ROOT); DoCast(me, SPELL_SPARK_DESPAWN, false); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index def07dee654..80f35573d52 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -234,7 +234,7 @@ struct npc_tribuna_controller : public ScriptedAI if (Creature* summon = me->SummonCreature(NPC_DARK_MATTER_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1s)) { summon->SetDisplayId(11686); - summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); summon->CastSpell(target, SPELL_DARK_MATTER, true); } } @@ -250,7 +250,7 @@ struct npc_tribuna_controller : public ScriptedAI if (Creature* summon = me->SummonCreature(NPC_SEARING_GAZE_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1s)) { summon->SetDisplayId(11686); - summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); summon->CastSpell(target, SPELL_SEARING_GAZE, true); } } @@ -385,7 +385,7 @@ struct npc_brann_hos : public EscortAI void StartWP() { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); SetEscortPaused(false); uiStep = 1; Start(); @@ -650,7 +650,7 @@ struct npc_brann_hos : public EscortAI Player* player = GetPlayerForEscort(); if (player) player->GroupEventHappens(QUEST_HALLS_OF_STONE, me); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(180000); break; } 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 f7200681e51..b38be3aa41b 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 @@ -313,7 +313,7 @@ struct boss_algalon_the_observer : public BossAI { case ACTION_START_INTRO: { - me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DO_NOT_FADE_IN); + me->SetUnitFlag2(UNIT_FLAG2_DO_NOT_FADE_IN); me->SetDisableGravity(true); DoCastSelf(SPELL_ARRIVAL, true); DoCastSelf(SPELL_RIDE_THE_LIGHTNING, true); @@ -343,7 +343,7 @@ struct boss_algalon_the_observer : public BossAI events.ScheduleEvent(EVENT_DESPAWN_ALGALON_2, 17s); events.ScheduleEvent(EVENT_DESPAWN_ALGALON_3, 26s); me->DespawnOrUnsummon(34s); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToNPC(true); break; case ACTION_INIT_ALGALON: @@ -363,7 +363,7 @@ struct boss_algalon_the_observer : public BossAI void JustEngagedWith(Unit* who) override { Milliseconds introDelay = 0ms; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToNPC(true); events.Reset(); events.SetPhase(PHASE_ROLE_PLAY); @@ -487,7 +487,7 @@ struct boss_algalon_the_observer : public BossAI events.SetPhase(PHASE_ROLE_PLAY); me->SetReactState(REACT_PASSIVE); me->AttackStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_SELF_STUN); events.Reset(); summons.DespawnAll(); @@ -562,7 +562,7 @@ struct boss_algalon_the_observer : public BossAI { events.SetPhase(PHASE_NORMAL); me->SetSheath(SHEATH_STATE_MELEE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToNPC(false); me->SetReactState(REACT_DEFENSIVE); DoCastAOE(SPELL_SUPERMASSIVE_FAIL, true); @@ -639,7 +639,7 @@ struct boss_algalon_the_observer : public BossAI me->RemoveAllAuras(); ResetThreatList(); me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME); + me->SetUnitFlag(UNIT_FLAG_RENAME); events.ScheduleEvent(EVENT_OUTRO_2, 2s); break; case EVENT_OUTRO_2: @@ -654,7 +654,7 @@ struct boss_algalon_the_observer : public BossAI break; case EVENT_OUTRO_4: DoCastAOE(SPELL_SUPERMASSIVE_FAIL); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); break; case EVENT_OUTRO_5: if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos)) @@ -749,7 +749,7 @@ struct npc_living_constellation : public CreatureAI if (Unit* target = algalon->AI()->SelectTarget(SelectTargetMethod::Random, 0, NonTankTargetSelector(algalon))) { me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); AttackStart(target); DoZoneInCombat(); _isActive = true; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index 90ff67b6821..a08bb9af91f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -422,7 +422,7 @@ struct npc_feral_defender : public ScriptedAI case EVENT_RESPAWN_DEFENDER_3: me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH); DoCastSelf(SPELL_FULL_HEAL, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); me->SetDisableGravity(false); me->SetHover(false); @@ -451,7 +451,7 @@ struct npc_feral_defender : public ScriptedAI { me->SetReactState(REACT_PASSIVE); me->AttackStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->RemoveAurasDueToSpell(SPELL_RANDOM_AGRO_PERIODIC); DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true); DoCastSelf(SPELL_FERAL_ESSENCE_APPLICATION_REMOVAL, true); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 231630afe9c..78387df18e8 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -248,7 +248,7 @@ class boss_flame_leviathan : public CreatureScript DoCast(SPELL_INVIS_AND_STEALTH_DETECT); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); me->SetReactState(REACT_PASSIVE); } @@ -568,7 +568,7 @@ class boss_flame_leviathan : public CreatureScript if (id != ACTION_MOVE_TO_CENTER_POSITION) return; me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); } private: @@ -635,17 +635,17 @@ class boss_flame_leviathan_seat : public CreatureScript if (Creature* turret = turretPassenger->ToCreature()) { turret->SetFaction(me->GetVehicleBase()->GetFaction()); - turret->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // uninteractible + turret->ReplaceAllUnitFlags(UnitFlags(0)); // unselectable turret->AI()->AttackStart(who); } if (Unit* devicePassenger = me->GetVehicleKit()->GetPassenger(SEAT_DEVICE)) if (Creature* device = devicePassenger->ToCreature()) { - device->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - device->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + device->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); + device->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } else if (seatId == SEAT_TURRET) { @@ -654,8 +654,8 @@ class boss_flame_leviathan_seat : public CreatureScript if (Unit* device = ASSERT_NOTNULL(me->GetVehicleKit())->GetPassenger(SEAT_DEVICE)) { - device->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - device->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // uninteractible + device->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); + device->ReplaceAllUnitFlags(UnitFlags(0)); // unselectable } } } @@ -770,8 +770,8 @@ class boss_flame_leviathan_overload_device : public CreatureScript if (me->GetVehicle()) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Unit* player = me->GetVehicle()->GetPassenger(SEAT_PLAYER)) { @@ -898,7 +898,7 @@ class npc_pool_of_tar : public CreatureScript { npc_pool_of_tarAI(Creature* creature) : ScriptedAI(creature) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_PASSIVE); me->CastSpell(me, SPELL_TAR_PASSIVE, true); } @@ -967,7 +967,7 @@ class npc_thorims_hammer : public CreatureScript { npc_thorims_hammerAI(Creature* creature) : ScriptedAI(creature) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->CastSpell(me, AURA_DUMMY_BLUE, true); } @@ -1006,7 +1006,7 @@ public: npc_mimirons_infernoAI(Creature* creature) : EscortAI(creature) { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->CastSpell(me, AURA_DUMMY_YELLOW, true); me->SetReactState(REACT_PASSIVE); } @@ -1063,7 +1063,7 @@ class npc_hodirs_fury : public CreatureScript { npc_hodirs_furyAI(Creature* creature) : ScriptedAI(creature) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->CastSpell(me, AURA_DUMMY_GREEN, true); } @@ -1211,10 +1211,10 @@ class npc_brann_bronzebeard_ulduar_intro : public CreatureScript { if (menuId == GOSSIP_MENU_BRANN_BRONZEBEARD && gossipListId == GOSSIP_OPTION_BRANN_BRONZEBEARD) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); player->PlayerTalkClass->SendCloseGossip(); if (Creature* loreKeeper = _instance->GetCreature(DATA_LORE_KEEPER_OF_NORGANNON)) - loreKeeper->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + loreKeeper->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } return false; } @@ -1265,7 +1265,7 @@ class npc_lorekeeper : public CreatureScript { if (menuId == GOSSIP_MENU_LORE_KEEPER && gossipListId == GOSSIP_OPTION_LORE_KEEPER) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); player->PlayerTalkClass->SendCloseGossip(); _instance->instance->LoadGrid(364, -16); // make sure leviathan is loaded @@ -1278,7 +1278,7 @@ class npc_lorekeeper : public CreatureScript { if (Creature* brann = _instance->GetCreature(DATA_BRANN_BRONZEBEARD_INTRO)) { - brann->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + brann->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); delorah->GetMotionMaster()->MovePoint(0, brann->GetPositionX() - 4, brann->GetPositionY(), brann->GetPositionZ()); /// @todo delorah->AI()->Talk(xxxx, brann->GetGUID()); when reached at branz } @@ -1674,7 +1674,7 @@ class spell_systems_shutdown : public SpellScriptLoader //! This could probably in the SPELL_EFFECT_SEND_EVENT handler too: owner->AddUnitState(UNIT_STATE_STUNNED | UNIT_STATE_ROOT); - owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + owner->SetUnitFlag(UNIT_FLAG_STUNNED); owner->RemoveAurasDueToSpell(SPELL_GATHERING_SPEED); } @@ -1684,7 +1684,7 @@ class spell_systems_shutdown : public SpellScriptLoader if (!owner) return; - owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + owner->RemoveUnitFlag(UNIT_FLAG_STUNNED); } void Register() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index bffcd48126c..d0e77013d93 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -1364,7 +1364,7 @@ class npc_healthy_spore : public CreatureScript npc_healthy_sporeAI(Creature* creature) : ScriptedAI(creature) { SetCombatMovement(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); me->SetReactState(REACT_PASSIVE); DoCast(me, SPELL_HEALTHY_SPORE_VISUAL); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index 3d861c31b54..cd9c171a4de 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -424,7 +424,7 @@ class npc_saronite_vapors : public CreatureScript if (damage >= me->GetHealth()) { damage = 0; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); me->SetStandState(UNIT_STAND_STATE_DEAD); me->SetHealth(me->GetMaxHealth()); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index d12f3c96a90..1b78fcef629 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -187,7 +187,7 @@ class npc_flash_freeze : public CreatureScript Initialize(); instance = me->GetInstanceScript(); me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); + me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); } @@ -267,7 +267,7 @@ class npc_ice_block : public CreatureScript { instance = me->GetInstanceScript(); me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); + me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); } @@ -282,7 +282,7 @@ class npc_ice_block : public CreatureScript return; targetGUID = summoner->GetGUID(); - summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); + summoner->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); summoner->SetControlled(true, UNIT_STATE_ROOT); me->SetInCombatWith(summoner); AddThreat(summoner, 250.0f); @@ -299,7 +299,7 @@ class npc_ice_block : public CreatureScript { if (Creature* helper = ObjectAccessor::GetCreature(*me, targetGUID)) { - helper->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); + helper->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); helper->SetControlled(false, UNIT_STATE_ROOT); if (Creature* hodir = instance->GetCreature(DATA_HODIR)) @@ -403,7 +403,7 @@ class boss_hodir : public CreatureScript me->RemoveAllAttackers(); me->AttackStop(); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetControlled(true, UNIT_STATE_ROOT); me->InterruptNonMeleeSpells(true); me->StopMoving(); @@ -671,7 +671,7 @@ class npc_hodir_priest : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED)) + if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED)) return; events.Update(diff); @@ -753,7 +753,7 @@ class npc_hodir_shaman : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED)) + if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED)) return; events.Update(diff); @@ -818,7 +818,7 @@ class npc_hodir_druid : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED)) + if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED)) return; events.Update(diff); @@ -896,7 +896,7 @@ class npc_hodir_mage : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED)) + if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED)) return; events.Update(diff); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index 66f8dbbc1a0..b510f458648 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -181,7 +181,7 @@ class boss_ignis : public CreatureScript { summon->SetFaction(FACTION_MONSTER_2); summon->SetReactState(REACT_AGGRESSIVE); - summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED); + summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED); summon->SetImmuneToPC(false); summon->SetControlled(false, UNIT_STATE_ROOT); } @@ -383,7 +383,7 @@ class npc_scorch_ground : public CreatureScript npc_scorch_groundAI(Creature* creature) : ScriptedAI(creature) { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index fd2f7483566..b9ead2ee63e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -107,7 +107,7 @@ class boss_kologarn : public CreatureScript boss_kologarnAI(Creature* creature) : BossAI(creature, DATA_KOLOGARN), left(false), right(false) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetControlled(true, UNIT_STATE_ROOT); DoCast(SPELL_KOLOGARN_REDUCE_PARRY); @@ -139,7 +139,7 @@ class boss_kologarn : public CreatureScript void Reset() override { _Reset(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); eyebeamTarget.Clear(); } @@ -148,7 +148,7 @@ class boss_kologarn : public CreatureScript Talk(SAY_DEATH); DoCast(SPELL_KOLOGARN_PACIFY); me->GetMotionMaster()->MoveTargetedHome(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetCorpseDelay(604800); // Prevent corpse from despawning. _JustDied(); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 6a9eacaedfd..174795375dc 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -427,7 +427,7 @@ class boss_mimiron : public CreatureScript return; BossAI::JustEngagedWith(who); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->RemoveAurasDueToSpell(SPELL_WELD); DoCast(me->GetVehicleBase(), SPELL_SEAT_6); @@ -462,7 +462,7 @@ class boss_mimiron : public CreatureScript aerial->AI()->EnterEvadeMode(); _Reset(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (GameObject* elevator = instance->GetGameObject(DATA_MIMIRON_ELEVATOR)) elevator->SetGoState(GO_STATE_ACTIVE); @@ -512,7 +512,7 @@ class boss_mimiron : public CreatureScript { DoCast(mkii, SPELL_SEAT_7); mkii->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM); - mkii->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + mkii->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); } events.ScheduleEvent(EVENT_INTRO_3, 2s); break; @@ -658,7 +658,7 @@ class boss_mimiron : public CreatureScript break; case EVENT_OUTTRO_3: DoCast(me, SPELL_TELEPORT_VISUAL); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->DespawnOrUnsummon(1s); // sniffs say 6 sec after, but it doesnt matter. break; default: @@ -700,7 +700,7 @@ class boss_leviathan_mk_ii : public CreatureScript if (damage >= me->GetHealth()) { damage = me->GetHealth() - 1; // Let creature fall to 1 hp, but do not let it die or damage itself with SetHealth(). - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); DoCast(me, SPELL_VEHICLE_DAMAGED, true); me->AttackStop(); me->SetReactState(REACT_PASSIVE); @@ -751,7 +751,7 @@ class boss_leviathan_mk_ii : public CreatureScript break; case DO_ASSEMBLED_COMBAT: me->SetStandState(UNIT_STAND_STATE_STAND); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); events.SetPhase(PHASE_VOL7RON); @@ -800,7 +800,7 @@ class boss_leviathan_mk_ii : public CreatureScript switch (point) { case WP_MKII_P1_IDLE: - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCast(me, SPELL_HALF_HEAL); if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON)) @@ -827,7 +827,7 @@ class boss_leviathan_mk_ii : public CreatureScript void Reset() override { _Reset(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_PASSIVE); _fireFighter = false; _setupMine = true; @@ -936,10 +936,10 @@ class boss_vx_001 : public CreatureScript boss_vx_001AI(Creature* creature) : BossAI(creature, DATA_MIMIRON) { me->SetDisableGravity(true); // This is the unfold visual state of VX-001, it has to be set on create as it requires an objectupdate if set later. - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SPECIAL_UNARMED); // This is a hack to force the yet to be unfolded visual state. + me->SetEmoteState(EMOTE_STATE_SPECIAL_UNARMED); // This is a hack to force the yet to be unfolded visual state. me->SetReactState(REACT_PASSIVE); _fireFighter = false; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override @@ -954,7 +954,7 @@ class boss_vx_001 : public CreatureScript if (events.IsInPhase(PHASE_VX_001)) { me->CastStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_UNINTERACTIBLE); DoCast(me, SPELL_HALF_HEAL); // has no effect, wat DoCast(me, SPELL_TORSO_DISABLED); if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON)) @@ -963,7 +963,7 @@ class boss_vx_001 : public CreatureScript else if (events.IsInPhase(PHASE_VOL7RON)) { me->SetStandState(UNIT_STAND_STATE_DEAD); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); Unit* ref = who ? who : me; if (IsEncounterFinished(ref)) @@ -987,10 +987,10 @@ class boss_vx_001 : public CreatureScript events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, 6s); [[fallthrough]]; case DO_START_VX001: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); // Remove emotestate. + me->SetEmoteState(EMOTE_ONESHOT_NONE); // Remove emotestate. //me->SetHover(true); // Blizzard handles hover animation like this it seems. DoCast(me, SPELL_HEAT_WAVE_AURA); @@ -1001,7 +1001,7 @@ class boss_vx_001 : public CreatureScript break; case DO_ASSEMBLED_COMBAT: me->SetStandState(UNIT_STAND_STATE_STAND); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); events.SetPhase(PHASE_VOL7RON); events.ScheduleEvent(EVENT_ROCKET_STRIKE, 20s); @@ -1169,7 +1169,7 @@ class boss_aerial_command_unit : public CreatureScript case DO_START_AERIAL: me->SetDisableGravity(false); me->SetHover(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->SetReactState(REACT_AGGRESSIVE); @@ -1189,7 +1189,7 @@ class boss_aerial_command_unit : public CreatureScript me->SetReactState(REACT_AGGRESSIVE); break; case DO_ASSEMBLED_COMBAT: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); me->SetStandState(UNIT_STAND_STATE_STAND); events.SetPhase(PHASE_VOL7RON); @@ -1223,7 +1223,7 @@ class boss_aerial_command_unit : public CreatureScript if (type == POINT_MOTION_TYPE && point == WP_AERIAL_P4_POS) { me->SetFacingTo(VehicleRelocation[WP_AERIAL_P4_POS].GetOrientation()); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS); if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON)) @@ -1723,7 +1723,7 @@ class spell_mimiron_bomb_bot : public SpellScriptLoader { if (Creature* target = GetHitCreature()) { - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); + target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); target->DespawnOrUnsummon(1s); } } @@ -1905,7 +1905,7 @@ class spell_mimiron_magnetic_core : public SpellScriptLoader void FilterTargets(std::list<WorldObject*>& targets) { - targets.remove_if([](WorldObject* obj) { return obj->ToUnit() && (obj->ToUnit()->GetVehicleBase() || obj->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)); }); + targets.remove_if([](WorldObject* obj) { return obj->IsUnit() && (obj->ToUnit()->GetVehicleBase() || obj->ToUnit()->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)); }); } void Register() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index c552806e377..a1a43dc20d8 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -383,7 +383,7 @@ struct boss_razorscale : public BossAI switch (actionId) { case ACTION_START_FIGHT: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); me->SetSpeedRate(MOVE_RUN, 3.0f); me->StopMoving(); me->GetMotionMaster()->MovePoint(POINT_RAZORSCALE_FLIGHT, RazorFlightPosition); @@ -687,7 +687,7 @@ struct npc_expedition_commander : public ScriptedAI { CloseGossipMenuFor(player); _events.SetPhase(PHASE_COMBAT); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (Creature* razorscale = _instance->GetCreature(DATA_RAZORSCALE)) razorscale->AI()->DoAction(ACTION_START_FIGHT); return true; @@ -904,7 +904,7 @@ struct npc_expedition_defender : public ScriptedAI return; me->SetHomePosition(DefendersPosition[_myPositionNumber]); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); } private: @@ -934,7 +934,7 @@ struct npc_expedition_trapper : public ScriptedAI me->GetMotionMaster()->MoveTargetedHome(); break; case ACTION_START_FIGHT: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); break; case ACTION_STOP_CAST: me->InterruptNonMeleeSpells(false); @@ -998,7 +998,7 @@ struct npc_expedition_engineer : public ScriptedAI _scheduler.Schedule(Seconds(28), [this](TaskContext /*context*/) { HandleHarpoonMovement(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); }); } else if (actionId == ACTION_FIX_HARPOONS) @@ -1173,7 +1173,7 @@ struct npc_expedition_engineer : public ScriptedAI _scheduler. Schedule(Seconds(3), [this](TaskContext /*context*/) { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); }) .Schedule(Seconds(18), [this](TaskContext /*context*/) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index 531f6ae44b0..d3e8ba7045f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -576,7 +576,7 @@ class boss_thorim : public CreatureScript me->RemoveAllAttackers(); me->AttackStop(); me->SetFaction(FACTION_FRIENDLY); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME); + me->SetUnitFlag(UNIT_FLAG_RENAME); if (Creature* controller = instance->GetCreature(DATA_THORIM_CONTROLLER)) controller->RemoveAllAuras(); @@ -1934,7 +1934,7 @@ class spell_thorim_stormhammer : public SpellScriptLoader void LoseHammer() { - GetCaster()->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); + GetCaster()->SetVirtualItem(0, 0); } void Register() override @@ -1977,7 +1977,7 @@ class spell_thorim_stormhammer_sif : public SpellScriptLoader void LoseHammer() { - GetCaster()->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); + GetCaster()->SetVirtualItem(0, 0); } void Register() override @@ -2006,7 +2006,7 @@ class spell_thorim_stormhammer_boomerang : public SpellScriptLoader void RecoverHammer(SpellEffIndex /*effIndex*/) { if (Unit* target = GetHitUnit()) - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THORIM_WEAPON_DISPLAY_ID); + target->SetVirtualItem(0, THORIM_WEAPON_DISPLAY_ID); } 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 8ad560ddf90..f766667b910 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -211,7 +211,7 @@ struct boss_xt002 : public BossAI { Talk(SAY_DEATH); _JustDied(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void ExposeHeart() @@ -242,7 +242,7 @@ struct boss_xt002 : public BossAI DoCastSelf(SPELL_STAND); DoCastSelf(SPELL_COOLDOWN_CREATURE_SPECIAL_2); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (Creature* heart = instance->GetCreature(DATA_XT002_HEART)) { if (heart->IsAlive()) @@ -351,7 +351,7 @@ struct boss_xt002 : public BossAI break; case EVENT_SUBMERGE: DoCastSelf(SPELL_SUBMERGE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Talk(EMOTE_HEART_OPENED); if (Creature* heart = instance->GetCreature(DATA_XT002_HEART)) heart->AI()->DoAction(ACTION_START_PHASE_HEART); @@ -414,14 +414,14 @@ struct npc_xt002_heart : public NullCreatureAI DoCastSelf(SPELL_FULL_HEAL); DoCast(xt002, SPELL_RIDE_VEHICLE_EXPOSED, true); DoCastSelf(SPELL_HEART_OVERLOAD); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); } else if (action == ACTION_DISPOSE_HEART) { DoCast(xt002, SPELL_HEART_RIDE_VEHICLE, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp index f9c8555cc67..614e76666af 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp @@ -1060,7 +1060,7 @@ class boss_brain_of_yogg_saron : public CreatureScript void Reset() override { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); DoCast(me, SPELL_MATCH_HEALTH); _summons.DespawnAll(); @@ -1075,7 +1075,7 @@ class boss_brain_of_yogg_saron : public CreatureScript DoCastAOE(SPELL_SHATTERED_ILLUSION_REMOVE, true); DoCast(me, SPELL_MATCH_HEALTH_2, true); // it doesn't seem to hit Yogg-Saron here DoCast(me, SPELL_BRAIN_HURT_VISUAL, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); if (Creature* voice = _instance->GetCreature(DATA_VOICE_OF_YOGG_SARON)) @@ -1553,7 +1553,7 @@ class npc_observation_ring_keeper : public CreatureScript if (menuId != 10333) return false; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->DespawnOrUnsummon(2s); DoCast(SPELL_TELEPORT); Talk(SAY_KEEPER_CHOSEN_1, player); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index e910f4e9510..f2b06039667 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -1029,7 +1029,7 @@ class instance_ulduar : public InstanceMapScript if (Vehicle* vehicle = vehicleCreature->GetVehicleKit()) { vehicle->RemoveAllPassengers(); - vehicleCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + vehicleCreature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); vehicleCreature->DespawnOrUnsummon(5min); } } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 85266493ef8..27f3321fabf 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -108,7 +108,7 @@ struct boss_ingvar_the_plunderer : public BossAI { if (me->GetEntry() != NPC_INGVAR) me->UpdateEntry(NPC_INGVAR); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); _Reset(); @@ -125,7 +125,7 @@ struct boss_ingvar_the_plunderer : public BossAI me->StopMoving(); DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true, true); Talk(SAY_DEATH); @@ -223,7 +223,7 @@ struct boss_ingvar_the_plunderer : public BossAI events.ScheduleEvent(EVENT_SMASH, 12s, 16s, 0, PHASE_HUMAN); break; case EVENT_JUST_TRANSFORMED: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); ScheduleSecondPhase(); Talk(SAY_AGGRO); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 7474ff52129..4794101ae14 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -240,10 +240,10 @@ struct npc_vrykul_skeleton : public ScriptedAI // There are some issues with pets // they will still attack. I would say it is a PetAI bug - if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) { // from sniffs - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetStandState(UNIT_STAND_STATE_DEAD); events.Reset(); @@ -284,7 +284,7 @@ struct npc_vrykul_skeleton : public ScriptedAI case EVENT_SHADOW_FISSURE: DoCast(me, SPELL_SHADOW_FISSURE, true); DoCastAOE(SPELL_BONE_ARMOR, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetStandState(UNIT_STAND_STATE_STAND); me->GetMotionMaster()->MoveChase(me->GetVictim()); events.ScheduleEvent(EVENT_DECREPIFY, 4s, 6s); @@ -297,7 +297,7 @@ struct npc_vrykul_skeleton : public ScriptedAI return; } - if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) DoMeleeAttackIfReady(); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index e718c96c08c..eab6e918cc5 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -123,7 +123,7 @@ struct generic_boss_controllerAI : public BossAI if (otherBoss->IsAlive()) { Talk(SAY_DIED_FIRST); - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); otherBoss->AI()->DoAction(ACTION_OTHER_JUST_DIED); DoCast(me, OtherBossData == DATA_DALRONN ? SPELL_SUMMON_SKARVALD_GHOST : SPELL_SUMMON_DALRONN_GHOST, true); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp index aeebee883fc..9da294462c8 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp @@ -68,7 +68,7 @@ struct npc_dragonflayer_forge_master : public ScriptedAI if (_forgeId) _instance->SetData(DATA_FORGE_1 + _forgeId - 1, IN_PROGRESS); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); } void UpdateAI(uint32 /*diff*/) override diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index 9c716f31a12..ef8a950ca73 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -572,7 +572,7 @@ class spell_palehoof_awaken_subboss : public SpellScript { Unit* target = GetHitUnit(); GetCaster()->CastSpell(target, SPELL_ORB_CHANNEL); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8500ms)); } @@ -590,7 +590,7 @@ class spell_palehoof_awaken_gortok : public SpellScript void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* target = GetHitUnit(); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8s)); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 0fdfe9b04e3..e54f22dd77c 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -225,7 +225,7 @@ struct boss_skadi : public BossAI { case ACTION_START_ENCOUNTER: instance->SetBossState(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->setActive(true); SpawnFirstWave(); Talk(SAY_AGGRO); @@ -260,7 +260,7 @@ struct boss_skadi : public BossAI Talk(SAY_DRAKE_DEATH); DoCastSelf(SPELL_SKADI_TELEPORT); summons.DespawnEntry(NPC_WORLD_TRIGGER); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->SetReactState(REACT_AGGRESSIVE); _phase = PHASE_GROUND; @@ -477,7 +477,7 @@ struct npc_skadi_trashAI : public ScriptedAI switch (pointId) { case POINT_0: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, me->GetEntry() == NPC_YMIRJAR_WARRIOR ? EMOTE_STATE_READY1H : EMOTE_STATE_READY2HL); + me->SetEmoteState(me->GetEntry() == NPC_YMIRJAR_WARRIOR ? EMOTE_STATE_READY1H : EMOTE_STATE_READY2HL); break; case POINT_1: _scheduler.Schedule(Seconds(1), [this](TaskContext /*context*/) diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index b74f2462f57..b8d9fce5e4b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -158,7 +158,7 @@ struct boss_svala : public BossAI else { events.SetPhase(IDLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } me->SetDisableGravity(false); @@ -189,14 +189,14 @@ struct boss_svala : public BossAI if (events.IsInPhase(IDLE) && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 40)) { events.SetPhase(INTRO); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (GameObject* mirror = instance->GetGameObject(DATA_UTGARDE_MIRROR)) mirror->SetGoState(GO_STATE_READY); if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN)) { - arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); _arthasGUID = arthas->GetGUID(); } events.ScheduleEvent(EVENT_INTRO_SVALA_TALK_0, 1s, 0, INTRO); @@ -290,7 +290,7 @@ struct boss_svala : public BossAI } me->RemoveAllAuras(); me->UpdateEntry(NPC_SVALA_SORROWGRAVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); events.ScheduleEvent(EVENT_INTRO_SVALA_TALK_1, 2s, 0, INTRO); break; case EVENT_INTRO_SVALA_TALK_1: @@ -321,7 +321,7 @@ struct boss_svala : public BossAI case EVENT_INTRO_DESPAWN_ARTHAS: if (GameObject* mirror = instance->GetGameObject(DATA_UTGARDE_MIRROR)) mirror->SetGoState(GO_STATE_ACTIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (Creature* arthas = ObjectAccessor::GetCreature(*me, _arthasGUID)) arthas->DespawnOrUnsummon(); _arthasGUID.Clear(); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 6503d206d70..a09ff4c3684 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -169,7 +169,7 @@ struct boss_ymiron : public BossAI { DoCast(ancestor, SPELL_CHANNEL_YMIRON_TO_SPIRIT); ancestor->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true); - ancestor->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); + ancestor->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE); ancestor->SetDisableGravity(true); ActiveAncestorGUID = ancestor->GetGUID(); } diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index 341c59b98b2..546c43245b9 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -241,7 +241,7 @@ struct npc_ichor_globule : public ScriptedAI if (spellInfo->Id == SPELL_WATER_GLOBULE_VISUAL) { DoCast(me, SPELL_WATER_GLOBULE_TRANSFORM); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->GetMotionMaster()->MoveFollow(unitCaster, 0.0f, 0.0f); } } @@ -291,14 +291,14 @@ class spell_ichoron_drained : public AuraScript void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - GetTarget()->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + GetTarget()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + GetTarget()->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); } void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + GetTarget()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + GetTarget()->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) if (UnitAI* ai = GetTarget()->GetAI()) diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 23f721ab8ac..1636edf75f7 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -369,7 +369,7 @@ struct npc_sinclari_vh : public ScriptedAI if (Creature* summon = me->SummonCreature(NPC_TELEPORTATION_PORTAL_INTRO, PortalIntroPositions[i], TEMPSUMMON_MANUAL_DESPAWN)) summon->AI()->SetData(DATA_PORTAL_LOCATION, i); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); std::list<Creature*> guardList; me->GetCreatureListWithEntryInGrid(guardList, NPC_VIOLET_HOLD_GUARD, 100.0f); @@ -407,7 +407,7 @@ struct npc_sinclari_vh : public ScriptedAI { if (menuId == GOSSIP_MENU_START_ENCOUNTER && gossipListId == 0) { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _instance->SetData(DATA_MAIN_EVENT_STATE, SPECIAL); ScheduleIntro(); player->PlayerTalkClass->SendCloseGossip(); @@ -512,7 +512,7 @@ struct npc_sinclari_vh : public ScriptedAI break; case 9: // We should teleport inside if event is in progress with GOSSIP_MENU_SEND_ME_IN - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; default: break; @@ -529,7 +529,7 @@ struct npc_sinclari_vh : public ScriptedAI task.Schedule(Seconds(10), [this](TaskContext /*task*/) { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); }); }); } diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 33eeeb378a4..191502bef00 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -431,7 +431,7 @@ public: void Reset() override { me->RestoreFaction(); - me->RemoveStandFlags(UNIT_STAND_STATE_SIT); + me->SetStandState(UNIT_STAND_STATE_STAND); Initialize(); } @@ -449,7 +449,7 @@ public: if (Creature* arthas = me->SummonCreature(NPC_IMAGE_LICH_KING, 3730.313f, 3518.689f, 473.324f, 1.562f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2min)) { arthasGUID = arthas->GetGUID(); - arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); arthas->SetReactState(REACT_PASSIVE); arthas->SetWalk(true); arthas->GetMotionMaster()->MovePoint(0, 3737.374756f, 3564.841309f, 477.433014f); @@ -506,7 +506,7 @@ public: { talbot->UpdateEntry(NPC_PRINCE_VALANAR); talbot->SetFaction(FACTION_MONSTER); - talbot->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + talbot->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); talbot->SetReactState(REACT_PASSIVE); } phaseTimer = 5000; @@ -546,7 +546,7 @@ public: leryssaGUID = leryssa->GetGUID(); leryssa->SetWalk(false); leryssa->SetReactState(REACT_PASSIVE); - leryssa->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + leryssa->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); leryssa->GetMotionMaster()->MovePoint(0, 3741.969971f, 3571.439941f, 477.441010f); } phaseTimer = 2000; @@ -604,10 +604,10 @@ public: break; case 14: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (talbot) { - talbot->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + talbot->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); talbot->SetReactState(REACT_AGGRESSIVE); talbot->CastSpell(me, SPELL_SHADOW_BOLT, false); } @@ -622,7 +622,7 @@ public: break; case 16: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); phaseTimer = 20000; ++phase; break; @@ -634,7 +634,7 @@ public: arlos->RemoveFromWorld(); if (talbot) talbot->RemoveFromWorld(); - me->RemoveStandFlags(UNIT_STAND_STATE_SIT); + me->SetStandState(UNIT_STAND_STATE_STAND); SetEscortPaused(false); phaseTimer = 0; phase = 0; @@ -908,7 +908,7 @@ public: phase = 0; phaseTimer = 0; - creature->RemoveStandFlags(UNIT_STAND_STATE_SIT); + creature->SetStandState(UNIT_STAND_STATE_STAND); } bool bDone; @@ -1334,8 +1334,8 @@ public: npc_hidden_cultistAI(Creature* creature) : ScriptedAI(creature) { Initialize(); - uiEmoteState = creature->GetUInt32Value(UNIT_NPC_EMOTESTATE); - uiNpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS); + uiEmoteState = creature->GetEmoteState(); + uiNpcFlags = creature->GetNpcFlags(); } void Initialize() @@ -1346,8 +1346,8 @@ public: uiPlayerGUID.Clear(); } - uint32 uiEmoteState; - uint32 uiNpcFlags; + Emote uiEmoteState; + NPCFlags uiNpcFlags; uint32 uiEventTimer; uint8 uiEventPhase; @@ -1357,10 +1357,10 @@ public: void Reset() override { if (uiEmoteState) - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, uiEmoteState); + me->SetEmoteState(uiEmoteState); if (uiNpcFlags) - me->SetUInt32Value(UNIT_NPC_FLAGS, uiNpcFlags); + me->ReplaceAllNpcFlags(uiNpcFlags); Initialize(); @@ -1372,8 +1372,8 @@ public: void DoAction(int32 /*iParam*/) override { me->StopMoving(); - me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); if (Player* player = ObjectAccessor::GetPlayer(*me, uiPlayerGUID)) me->SetFacingToObject(player); uiEventTimer = 3000; diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 4e4521512de..ffb3b9b4ece 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -395,7 +395,7 @@ public: if (!tree || !player) return; - tree->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); + tree->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK); if (roll == 1) // friendly version { @@ -540,7 +540,7 @@ class npc_wyrmrest_defender : public CreatureScript case SPELL_WYRMREST_DEFENDER_MOUNT: Talk(WHISPER_MOUNTED, me->GetCharmerOrOwner()); me->SetImmuneToAll(false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); break; // Both below are for checking low hp warning case SPELL_DEFENDER_ON_LOW_HEALTH_EMOTE: @@ -568,7 +568,7 @@ class npc_wyrmrest_defender : public CreatureScript void OnCharmed(bool /*apply*/) override { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } }; diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index fb3e5729603..5488dbe6a2f 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -373,7 +373,7 @@ public: { me->SetStandState(UNIT_STAND_STATE_DEAD); me->SetImmuneToPC(true); - me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); } _phase = 0; } @@ -418,7 +418,7 @@ public: { if (me->FindNearestCreature(NPC_TALLHORN_STAG, 0.2f)) { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SetEmoteState(EMOTE_STATE_USE_STANDING); } else _events.ScheduleEvent(EVENT_WOODSMAN_1, 0s); @@ -433,11 +433,11 @@ public: switch (eventId) { case EVENT_WOODSMAN_1: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_LOOT); + me->SetEmoteState(EMOTE_STATE_LOOT); _events.ScheduleEvent(EVENT_WOODSMAN_2, 3s); break; case EVENT_WOODSMAN_2: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H); + me->SetEmoteState(EMOTE_ONESHOT_ATTACK1H); _events.ScheduleEvent(EVENT_WOODSMAN_1, 4s); break; default: @@ -577,7 +577,7 @@ public: { _playerGUID.Clear(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(false); me->SetReactState(REACT_AGGRESSIVE); } @@ -627,7 +627,7 @@ public: { if (spellInfo->Id == SPELL_SMOKE_BOMB && caster->GetTypeId() == TYPEID_PLAYER) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToPC(true); me->SetReactState(REACT_PASSIVE); me->CombatStop(false); @@ -702,7 +702,7 @@ public: { Initialize(); if (me->GetEntry() == NPC_LAKE_FROG_QUEST) - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void UpdateAI(uint32 diff) override @@ -727,11 +727,11 @@ public: _events.ScheduleEvent(EVENT_LAKEFROG_3, 3s); break; case EVENT_LAKEFROG_3: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); _events.ScheduleEvent(EVENT_LAKEFROG_4, 25s); break; case EVENT_LAKEFROG_4: - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _events.ScheduleEvent(EVENT_LAKEFROG_5, 2s); break; case EVENT_LAKEFROG_5: diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index 095d0d88a6f..db489e63bac 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -370,7 +370,7 @@ public: case EVENT_SCRIPT_1: if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID)) Talk(SAY_BRANN_1, player); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); if (Creature* voice = me->SummonCreature(NPC_A_DISTANT_VOICE, 7863.43f, -1396.585f, 1538.076f, 2.949606f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 49s)) voiceGUID = voice->GetGUID(); events.ScheduleEvent(EVENT_SCRIPT_2, 4s); @@ -381,11 +381,11 @@ public: events.ScheduleEvent(EVENT_SCRIPT_3, 6s); break; case EVENT_SCRIPT_3: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_WORK_MINING); + me->SetEmoteState(EMOTE_STATE_WORK_MINING); events.ScheduleEvent(EVENT_SCRIPT_4, 6s); break; case EVENT_SCRIPT_4: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID)) { voice->CastSpell(voice, SPELL_RESURRECTION); @@ -674,7 +674,7 @@ class npc_wild_wyrm : public CreatureScript me->RemoveAurasDueToSpell(SPELL_JAWS_OF_DEATH_PERIODIC); me->RemoveAurasDueToSpell(SPELL_PRY_JAWS_OPEN); - me->SetUInt32Value(UNIT_NPC_FLAGS, 0); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); me->GetMotionMaster()->MoveFall(POINT_FALL); }); diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index b93adb89af6..e0d3c4ef9aa 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -56,7 +56,7 @@ public: void Reset() override { _rageclawGUID.Clear(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); float x, y, z; me->GetClosePoint(x, y, z, me->GetCombatReach() / 3, 0.1f); @@ -234,8 +234,8 @@ public: void Reset() override { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); + me->SetEmoteState(EMOTE_STATE_COWER); Initialize(); } @@ -248,8 +248,8 @@ public: switch (eventId) { case EVENT_RECRUIT_1: - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); + me->SetEmoteState(EMOTE_ONESHOT_NONE); Talk(SAY_RECRUIT); _events.ScheduleEvent(EVENT_RECRUIT_2, 3s); break; @@ -473,12 +473,12 @@ public: { case EVENT_TURN_TO_POT: me->SetFacingTo(6.230825f); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING_NO_SHEATHE); + me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE); _events.ScheduleEvent(EVENT_TURN_BACK, 11s); break; case EVENT_TURN_BACK: me->SetFacingTo(4.886922f); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + me->SetEmoteState(EMOTE_STATE_NONE); _events.ScheduleEvent(EVENT_TURN_TO_POT, 25s, 41s); break; case EVENT_EASY_123: diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 1b51533af3a..b3e1ff47dc2 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -595,7 +595,7 @@ struct boss_illidan_stormrage : public BossAI { me->SetReactState(REACT_PASSIVE); me->AttackStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); me->SetDisableGravity(true); DoPlaySoundToSet(me, ILLIDAN_TAKEOFF_SOUND_ID); @@ -625,7 +625,7 @@ struct boss_illidan_stormrage : public BossAI summons.DoAction(ACTION_START_PHASE_4, EntryCheckPredicate(NPC_PARASITIC_SHADOWFIEND)); me->SetReactState(REACT_PASSIVE); me->AttackStop(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); events.ScheduleEvent(EVENT_SHADOW_PRISON_TEXT, Milliseconds(500), GROUP_PHASE_ALL); break; case ACTION_ILLIDAN_CAGED: @@ -638,7 +638,7 @@ struct boss_illidan_stormrage : public BossAI events.Reset(); specialEvents.Reset(); DoCastSelf(SPELL_DEATH, true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); events.ScheduleEvent(EVENT_DEFEATED_TEXT, 4s); break; default: @@ -648,7 +648,7 @@ struct boss_illidan_stormrage : public BossAI void JustDied(Unit* /*killer*/) override { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); instance->SetBossState(DATA_ILLIDAN_STORMRAGE, DONE); events.Reset(); } @@ -932,7 +932,7 @@ struct boss_illidan_stormrage : public BossAI events.ScheduleEvent(EVENT_RESUME_COMBAT, Seconds(3), GROUP_PHASE_ALL); break; case EVENT_RESUME_COMBAT: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); ScheduleEvents(GROUP_PHASE_3, GROUP_PHASE_3); if (GameObject* musicController = instance->GetGameObject(DATA_ILLIDAN_MUSIC_CONTROLLER)) @@ -996,7 +996,7 @@ struct boss_illidan_stormrage : public BossAI events.ScheduleEvent(EVENT_RESUME_COMBAT_PHASE_4, Seconds(13), GROUP_PHASE_ALL); break; case EVENT_RESUME_COMBAT_PHASE_4: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetReactState(REACT_AGGRESSIVE); ScheduleEvents(GROUP_PHASE_4, GROUP_PHASE_4); summons.DoAction(ACTION_RESUME_COMBAT, EntryCheckPredicate(NPC_PARASITIC_SHADOWFIEND)); @@ -1070,7 +1070,7 @@ struct npc_akama_illidan : public ScriptedAI { _instance->SetData(DATA_AKAMA, AKAMA_FIGHT); me->GetMotionMaster()->MoveAlongSplineChain(POINT_STAIRS, SPLINE_STAIRS, false); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE)) illidan->AI()->DoAction(ACTION_INTRO_DONE); CloseGossipMenuFor(player); @@ -1080,7 +1080,7 @@ struct npc_akama_illidan : public ScriptedAI { _events.SetPhase(PHASE_INTRO); me->GetMotionMaster()->MoveAlongSplineChain(POINT_FACE_ILLIDAN, SPLINE_FACE_ILLIDAN, false); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); CloseGossipMenuFor(player); } return false; @@ -1105,12 +1105,12 @@ struct npc_akama_illidan : public ScriptedAI if (summon->GetEntry() == NPC_SPIRIT_OF_UDALO) { _spiritOfUdaloGUID = summon->GetGUID(); - summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + summon->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } else if (summon->GetEntry() == NPC_SPIRIT_OF_OLUM) { _spiritOfOlumGUID = summon->GetGUID(); - summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + summon->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); } } @@ -1120,7 +1120,7 @@ struct npc_akama_illidan : public ScriptedAI { case ACTION_ACTIVE_AKAMA_INTRO: _events.SetPhase(PHASE_INTRO); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _events.SetPhase(PHASE_INTRO); _events.ScheduleEvent(EVENT_TELEPORT, 1s); _events.ScheduleEvent(EVENT_MOVE_TO_ILLIDARI_ROOM, Seconds(1) + Milliseconds(500)); @@ -1165,7 +1165,7 @@ struct npc_akama_illidan : public ScriptedAI { case POINT_ILLIDARI_COUNCIL: Talk(SAY_AKAMA_FINISH); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; case POINT_STAIRS: ChangeOrientation(6.265732f); @@ -1174,7 +1174,7 @@ struct npc_akama_illidan : public ScriptedAI case POINT_ILLIDAN_ROOM: ChangeOrientation(2.129302f); Talk(SAY_AKAMA_BETRAYER); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; case POINT_FACE_ILLIDAN: ChangeOrientation(3.140537f); @@ -1301,7 +1301,7 @@ struct npc_akama_illidan : public ScriptedAI break; case EVENT_ROAR: me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H); + me->SetEmoteState(EMOTE_STATE_READY1H); break; case EVENT_CHANGE_ORIENTATION: me->SetFacingTo(_orientation); @@ -2305,12 +2305,12 @@ class spell_maiev_down : public AuraScript void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + GetTarget()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + GetTarget()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); GetTarget()->GetAI()->DoAction(ACTION_MAIEV_DOWN_FADE); } diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index 99cbaff68f6..093c0a346ee 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -190,7 +190,7 @@ struct boss_reliquary_of_souls : public BossAI break; case ACTION_START_COMBAT: _inCombat = true; - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); + me->SetStandState(UNIT_STAND_STATE_STAND); events.ScheduleEvent(EVENT_SUBMERGE, 10s); break; default: @@ -770,12 +770,12 @@ class spell_reliquary_of_souls_submerge : public AuraScript void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_SUBMERGED); + GetTarget()->SetStandState(UNIT_STAND_STATE_SUBMERGED); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - GetTarget()->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); + GetTarget()->SetStandState(UNIT_STAND_STATE_STAND); } void Register() override diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 0480ffc9340..00fc7d84e5d 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -216,8 +216,8 @@ struct boss_shade_of_akama : public BossAI _Reset(); Initialize(); me->SetImmuneToPC(true); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetEmoteState(EMOTE_STATE_STUN); me->SetWalk(true); events.ScheduleEvent(EVENT_INITIALIZE_SPAWNERS, 1s); me->SummonCreatureGroup(SUMMON_GROUP_RESET); @@ -240,7 +240,7 @@ struct boss_shade_of_akama : public BossAI if (spellInfo->Id == SPELL_AKAMA_SOUL_CHANNEL) { events.ScheduleEvent(EVENT_START_CHANNELERS_AND_SPAWNERS, 1s); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + me->SetEmoteState(EMOTE_STATE_NONE); events.ScheduleEvent(EVENT_EVADE_CHECK, 10s); if (Creature* akama = instance->GetCreature(DATA_AKAMA_SHADE)) AttackStart(akama); @@ -255,7 +255,7 @@ struct boss_shade_of_akama : public BossAI if (_isInPhaseOne && motionType == CHASE_MOTION_TYPE) { _isInPhaseOne = false; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->SetWalk(false); events.ScheduleEvent(EVENT_ADD_THREAT, Milliseconds(100)); @@ -317,7 +317,7 @@ struct boss_shade_of_akama : public BossAI { for (ObjectGuid summonGuid : summons) if (Creature* channeler = ObjectAccessor::GetCreature(*me, summonGuid)) - channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + channeler->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); for (ObjectGuid spawnerGuid : _spawners) if (Creature* spawner = ObjectAccessor::GetCreature(*me, spawnerGuid)) @@ -370,7 +370,7 @@ struct npc_akama_shade : public ScriptedAI DoCastSelf(SPELL_STEALTH); if (_instance->GetBossState(DATA_SHADE_OF_AKAMA) != DONE) - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } void JustSummoned(Creature* summon) override @@ -458,7 +458,7 @@ struct npc_akama_shade : public ScriptedAI { case EVENT_SHADE_START: _instance->SetBossState(DATA_SHADE_OF_AKAMA, IN_PROGRESS); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->RemoveAurasDueToSpell(SPELL_STEALTH); me->SetWalk(true); me->GetMotionMaster()->MovePoint(AKAMA_CHANNEL_WAYPOINT, AkamaWP[0], false); @@ -565,7 +565,7 @@ struct npc_ashtongue_channeler : public PassiveAI { if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA)) { - if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) DoCastSelf(SPELL_SHADE_SOUL_CHANNEL); else @@ -574,7 +574,7 @@ struct npc_ashtongue_channeler : public PassiveAI channel.Repeat(Seconds(2)); }); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void UpdateAI(uint32 diff) override @@ -692,7 +692,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI { if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA)) { - if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) me->GetMotionMaster()->MovePoint(0, shade->GetPosition()); else if (Creature* akama = _instance->GetCreature(DATA_AKAMA_SHADE)) @@ -730,7 +730,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI { if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA)) { - if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)) + if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)) { me->SetFacingToObject(shade); DoCastSelf(SPELL_SHADE_SOUL_CHANNEL); @@ -1068,7 +1068,7 @@ struct npc_ashtongue_broken : public ScriptedAI Talk(SAY_BROKEN_HAIL); break; case ACTION_BROKEN_EMOTE: - me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL); + me->SetStandState(UNIT_STAND_STATE_KNEEL); break; default: break; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index 68c9e7de352..4e55d04aa2d 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -155,7 +155,7 @@ public: Intro = false; JustCreated = true; CanAttack = false; - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped) + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped) } void Initialize() @@ -325,7 +325,7 @@ public: if (AggroTimer <= diff) { CanAttack = true; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); AggroTimer=19000; } else 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 8ad1f28e061..2d1543f14fd 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 @@ -251,8 +251,8 @@ public: me->SetCanDualWield(true); me->SetSpeedRate(MOVE_RUN, 2.0f); me->SetDisplayId(MODEL_NIGHTELF); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); + me->SetVirtualItem(0, 0); + me->SetVirtualItem(1, 0); DoCast(me, SPELL_DUAL_WIELD, true); me->SetCorpseDelay(1000*60*60); instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, NOT_STARTED); @@ -348,8 +348,8 @@ public: me->SetDisplayId(MODEL_DEMON); // and removing weapons - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); + me->SetVirtualItem(0, 0); + me->SetVirtualItem(1, 0); } } @@ -494,8 +494,8 @@ public: me->RemoveAurasDueToSpell(SPELL_WHIRLWIND); me->SetDisplayId(MODEL_DEMON); Talk(SAY_SWITCH_TO_DEMON); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); + me->SetVirtualItem(0, 0); + me->SetVirtualItem(1, 0); DemonForm = true; NeedThreatReset = true; SwitchToDemon_Timer = 45000; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp index 6605554046d..63044dcd387 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp @@ -155,7 +155,7 @@ public: instance->SetData(DATA_STRANGE_POOL, NOT_STARTED); DoCast(me, SPELL_SUBMERGE); // submerge anim me->SetVisible(false); // we start invis under water, submerged - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); } @@ -205,7 +205,7 @@ public: else if (WaitTimer2 <= diff) // wait 500ms before emerge anim { me->RemoveAllAuras(); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); + me->SetEmoteState(EMOTE_ONESHOT_NONE); DoCast(me, SPELL_EMERGE, false); WaitTimer2 = 60000; // never reached WaitTimer = 3000; @@ -218,7 +218,7 @@ public: WaitTimer = 3000; CanStartEvent = true; // fresh fished from pool me->SetImmuneToPC(false); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } else WaitTimer -= diff; @@ -348,7 +348,7 @@ public: me->InterruptNonMeleeSpells(false); // shouldn't be any me->RemoveAllAuras(); me->SetImmuneToPC(false); - me->RemoveFlag(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED); + me->SetEmoteState(EMOTE_ONESHOT_NONE); DoCast(me, SPELL_EMERGE, true); Spawned = false; SpoutTimer = 3000; // directly cast Spout after emerging! @@ -369,7 +369,7 @@ public: if (!Spawned) { - me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); + me->ReplaceAllUnitFlags(UNIT_FLAG_IMMUNE_TO_PC); // spawn adds for (uint8 i = 0; i < 9; ++i) if (Creature* summoned = me->SummonCreature(i < 6 ? NPC_COILFANG_AMBUSHER : NPC_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN)) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 81c3cff2a78..c28fab71823 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -244,7 +244,7 @@ public: if (me->IsWithinDistInMap(mekgineer, MAX_REPAIR_RANGE)) { //are we already channeling? Doesn't work very well, find better check? - if (!me->GetUInt32Value(UNIT_CHANNEL_SPELL)) + if (!me->GetChannelSpellId()) { //me->GetMotionMaster()->MovementExpired(); //me->GetMotionMaster()->MoveIdle(); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp index 8771e82965c..cb5504f4345 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp @@ -65,14 +65,14 @@ public: void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); //hack, due to really weird spell behaviour :( if (instance->GetData(DATA_DISTILLER) == IN_PROGRESS) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } } @@ -80,8 +80,8 @@ public: void StartRageGen(Unit* /*caster*/) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); DoCast(me, SPELL_WARLORDS_RAGE_NAGA, true); diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp index 7dd08b00e33..8b2f00256fe 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp @@ -254,7 +254,7 @@ struct boss_ahune : public BossAI me->RemoveAurasDueToSpell(SPELL_STAY_SUBMERGED); DoCastSelf(SPELL_STAND); DoCastSelf(SPELL_RESURFACE, true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s); } @@ -301,7 +301,7 @@ struct npc_frozen_core : public ScriptedAI { if (action == ACTION_AHUNE_RETREAT) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->RemoveAurasDueToSpell(SPELL_ICE_SPEAR_CONTROL_AURA); _events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s, 0, PHASE_TWO); @@ -310,7 +310,7 @@ struct npc_frozen_core : public ScriptedAI { _events.Reset(); DoCastSelf(SPELL_ICE_SPEAR_CONTROL_AURA); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(true); } } diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp index d365c3e4f38..78c3e190c50 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -171,8 +171,8 @@ public: Talk(SAY_ENRAGE); DoCast(me, SPELL_DUAL_WIELD, true); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); + me->SetVirtualItem(0, 0); + me->SetVirtualItem(1, 0); } if (Phase2) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 65bd82695a3..ea12d36f5fd 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -119,7 +119,7 @@ class boss_broggok : public CreatureScript break; case ACTION_ACTIVATE_BROGGOK: me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); DoZoneInCombat(); events.ScheduleEvent(EVENT_SLIME_SPRAY, 10s); events.ScheduleEvent(EVENT_POISON_BOLT, 7s); @@ -127,7 +127,7 @@ class boss_broggok : public CreatureScript break; case ACTION_RESET_BROGGOK: me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); summons.DespawnAll(); instance->SetBossState(DATA_BROGGOK, NOT_STARTED); if (GameObject * lever = instance->GetGameObject(DATA_BROGGOK_LEVER)) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp index 6a2679b105d..b29fb0598ca 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp @@ -95,7 +95,7 @@ class boss_kelidan_the_breaker : public CreatureScript Initialize(); SummonChannelers(); me->SetReactState(REACT_PASSIVE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToAll(true); } @@ -140,7 +140,7 @@ class boss_kelidan_the_breaker : public CreatureScript return; } me->SetReactState(REACT_AGGRESSIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetImmuneToAll(false); if (killer) AttackStart(killer); diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index 8e2fb0d6ea5..50d89a71548 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -221,7 +221,7 @@ class instance_blood_furnace : public InstanceMapScript { if (!prisoner->IsAlive()) prisoner->Respawn(true); - prisoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + prisoner->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); prisoner->SetImmuneToAll(true); if (prisoner->IsAIEnabled()) prisoner->AI()->EnterEvadeMode(); @@ -313,7 +313,7 @@ class instance_blood_furnace : public InstanceMapScript for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) if (Creature* prisoner = instance->GetCreature(*i)) { - prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + prisoner->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); prisoner->SetImmuneToAll(false); prisoner->AI()->DoZoneInCombat(); } diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 3b550117739..a2901a05057 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -244,7 +244,7 @@ struct boss_magtheridon : public BossAI CombatStart(); break; case EVENT_RELEASED: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); DoZoneInCombat(); events.SetPhase(PHASE_2); diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 453397b67e8..24529fbef8a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -110,7 +110,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript void Reset() override { _Reset(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); Initialize(); } @@ -146,7 +146,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript { IsIntroEvent = false; IsMainEvent = true; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } break; default: @@ -163,7 +163,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript PeonEngagedCount = 4; PeonKilledCount = 4; IsMainEvent = true; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void AttackStart(Unit* who) override diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 45d8f4d7852..bbd3f2c454d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -223,8 +223,8 @@ class boss_warbringer_omrogg : public CreatureScript if (summoned->GetEntry() == NPC_RIGHT_HEAD) RightHeadGUID = summoned->GetGUID(); - //summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - //summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + //summoned->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + //summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); summoned->SetVisible(false); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index d65918dc117..27df691b571 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -158,10 +158,10 @@ struct boss_alar : public BossAI me->SetDisplayId(me->GetNativeDisplayId()); me->SetSpeedRate(MOVE_RUN, DefaultMoveSpeedRate); - //me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); - //me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); + //me->SetBoundingRadius(10); + //me->SetCombatReach(10); me->SetDisableGravity(true); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->setActive(false); } @@ -201,7 +201,7 @@ struct boss_alar : public BossAI me->SetHealth(0); me->InterruptNonMeleeSpells(true); me->RemoveAllAuras(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->AttackStop(); me->SetTarget(ObjectGuid::Empty); me->SetSpeedRate(MOVE_RUN, 5.0f); @@ -287,7 +287,7 @@ struct boss_alar : public BossAI me->SetStandState(UNIT_STAND_STATE_STAND); me->SetFullHealth(); me->SetSpeedRate(MOVE_RUN, DefaultMoveSpeedRate); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); DoZoneInCombat(); DoCast(me, SPELL_REBIRTH, true); MeltArmor_Timer = 60000; @@ -327,8 +327,8 @@ struct boss_alar : public BossAI case WE_SUMMON: for (uint8 i = 0; i < 2; ++i) DoSpawnCreature(CREATURE_EMBER_OF_ALAR, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s); - me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetBoundingRadius(10); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisplayId(me->GetNativeDisplayId()); DoCast(me, SPELL_REBIRTH_2, true); break; @@ -411,8 +411,8 @@ struct boss_alar : public BossAI { me->AttackStop(); me->GetMotionMaster()->MovePoint(6, waypoint[4][0], waypoint[4][1], waypoint[4][2]); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 50); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetBoundingRadius(50); WaitEvent = WE_METEOR; WaitTimer = 0; DiveBomb_Timer = 40000 + rand32() % 5000; @@ -428,7 +428,7 @@ struct boss_alar : public BossAI Creature* Summoned = me->SummonCreature(CREATURE_FLAME_PATCH_ALAR, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2min); if (Summoned) { - Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Summoned->SetObjectScale(Summoned->GetObjectScale() * 2.5f); Summoned->SetDisplayId(11686); Summoned->SetFaction(me->GetFaction()); @@ -507,7 +507,7 @@ struct npc_ember_of_alar : public ScriptedAI damage = 0; DoCast(me, SPELL_EMBER_BLAST, true); me->SetDisplayId(11686); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); if (instance->GetBossState(DATA_ALAR) == IN_PROGRESS) { if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALAR))) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index a1ef60e417f..b08a2aa1d49 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -141,7 +141,7 @@ struct boss_high_astromancer_solarian : public BossAI Initialize(); _Reset(); me->SetArmor(defaultarmor); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(true); me->SetDisplayId(MODEL_HUMAN); @@ -206,7 +206,7 @@ struct boss_high_astromancer_solarian : public BossAI AppearDelay = false; if (Phase == 2) { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(false); } AppearDelay_Timer = 2s; @@ -309,7 +309,7 @@ struct boss_high_astromancer_solarian : public BossAI { if (Creature* Summoned = me->SummonCreature(NPC_ASTROMANCER_SOLARIAN_SPOTLIGHT, Portals[i][0], Portals[i][1], Portals[i][2], CENTER_O, TEMPSUMMON_TIMED_DESPAWN, Phase2_Timer + Phase3_Timer + AppearDelay_Timer + 1700ms)) { - Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + Summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); Summoned->CastSpell(Summoned, SPELL_SPOTLIGHT, false); } } @@ -353,7 +353,7 @@ struct boss_high_astromancer_solarian : public BossAI if (j != i) SummonMinion(NPC_SOLARIUM_PRIEST, Portals[j][0], Portals[j][1], Portals[j][2]); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(true); Talk(SAY_SUMMON2); @@ -388,7 +388,7 @@ struct boss_high_astromancer_solarian : public BossAI { Phase = 4; //To make sure she wont be invisible or not selecatble - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetVisible(true); Talk(SAY_VOIDA); Talk(SAY_VOIDB); diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index e1694853c31..287837c796d 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -353,8 +353,8 @@ struct boss_kaelthas : public BossAI { Initialize(); DoAction(ACTION_PREPARE_ADVISORS); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); me->SetDisableGravity(false); me->SetTarget(ObjectGuid::Empty); me->SetObjectScale(1.0f); @@ -383,7 +383,7 @@ struct boss_kaelthas : public BossAI { case ACTION_START_ENCOUNTER: Talk(SAY_INTRO); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); _advisorGuid[ADVISOR_THALADRED] = instance->GetGuidData(DATA_THALADRED); _advisorGuid[ADVISOR_SANGUINAR] = instance->GetGuidData(DATA_SANGUINAR); @@ -400,7 +400,7 @@ struct boss_kaelthas : public BossAI if (Creature* creature = ObjectAccessor::GetCreature(*me, _advisorGuid[i])) { creature->Respawn(true); - creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); creature->AI()->EnterEvadeMode(); } } @@ -502,7 +502,7 @@ struct boss_kaelthas : public BossAI case POINT_TRANSITION_CENTER_ASCENDING: me->SetFacingTo(float(M_PI)); Talk(SAY_PHASE5_NUTS); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetDisableGravity(true); //me->SetHover(true); -- Set in sniffs, but breaks his visual. events.ScheduleEvent(EVENT_TRANSITION_2, 2s); @@ -521,7 +521,7 @@ struct boss_kaelthas : public BossAI case POINT_END_TRANSITION: me->SetReactState(REACT_AGGRESSIVE); me->InterruptNonMeleeSpells(false); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->RemoveAurasDueToSpell(SPELL_FULLPOWER); if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0)) @@ -575,13 +575,13 @@ struct boss_kaelthas : public BossAI switch (eventId) { case EVENT_START_ENCOUNTER: - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + me->SetUnitFlag(UNIT_FLAG_PACIFIED); DoAction(ACTION_ACTIVE_ADVISOR); break; case EVENT_ACTIVE_ADVISOR: if (Creature* advisor = ObjectAccessor::GetCreature(*me, _advisorGuid[_advisorCounter])) { - advisor->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + advisor->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) advisor->AI()->AttackStart(target); @@ -603,7 +603,7 @@ struct boss_kaelthas : public BossAI // Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael. ResetThreatList(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) AttackStart(target); @@ -636,7 +636,7 @@ struct boss_kaelthas : public BossAI events.ScheduleEvent(EVENT_SUMMON_PHOENIX, 45s, 60s, EVENT_GROUP_COMBAT, PHASE_COMBAT); break; case EVENT_END_TRANSITION: - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + me->SetEmoteState(EMOTE_ONESHOT_NONE); DoCast(SPELL_FULLPOWER); events.ScheduleEvent(EVENT_TRANSITION_4, 2s); break; @@ -701,7 +701,7 @@ struct boss_kaelthas : public BossAI me->RemoveAurasDueToSpell(SPELL_NETHER_BEAM_VISUAL3); DoCast(me, SPELL_KAEL_EXPLODES3, true); DoCast(me, SPELL_KAEL_STUNNED); // Core doesn't handle the emote properly while flying. - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED); + me->SetEmoteState(EMOTE_STATE_DROWNED); // Destroy the surrounding environment. if (GameObject* statue = instance->GetGameObject(DATA_KAEL_STATUE_LEFT)) @@ -779,8 +779,8 @@ struct advisorbase_ai : public ScriptedAI Initialize(); me->SetStandState(UNIT_STAND_STATE_STAND); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); //reset encounter if (instance->GetBossState(DATA_KAELTHAS) == IN_PROGRESS) @@ -790,7 +790,7 @@ struct advisorbase_ai : public ScriptedAI void MoveInLineOfSight(Unit* who) override { - if (!who || _inFakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (!who || _inFakeDeath || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -798,7 +798,7 @@ struct advisorbase_ai : public ScriptedAI void AttackStart(Unit* who) override { - if (!who || _inFakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (!who || _inFakeDeath || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::AttackStart(who); @@ -809,7 +809,7 @@ struct advisorbase_ai : public ScriptedAI if (spellInfo->Id == SPELL_RESSURECTION) { _hasRessurrected = true; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); me->SetStandState(UNIT_STAND_STATE_STAND); events.ScheduleEvent(EVENT_DELAYED_RESSURECTION, 2s); } @@ -829,7 +829,7 @@ struct advisorbase_ai : public ScriptedAI me->RemoveAllAurasOnDeath(); me->ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false); me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED); me->SetTarget(ObjectGuid::Empty); me->SetStandState(UNIT_STAND_STATE_DEAD); me->GetMotionMaster()->Clear(); @@ -1059,7 +1059,7 @@ struct boss_grand_astromancer_capernian : public advisorbase_ai void AttackStart(Unit* who) override { - if (!who || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (!who || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; if (me->Attack(who, true)) diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 2df55af0b02..765d655a6c9 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -289,7 +289,7 @@ struct npc_warden_mellichar : public ScriptedAI { Initialize(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); DoCast(me, SPELL_TARGET_OMEGA); instance->SetBossState(DATA_HARBINGER_SKYRISS, NOT_STARTED); diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index da3ede6991c..df75ec83c98 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -274,7 +274,7 @@ struct boss_harbinger_skyriss_illusion : public ScriptedAI void Reset() override { me->SetImmuneToPC(false); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); } void JustEngagedWith(Unit* /*who*/) override { } diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 0c5174d2983..9a13dc64f3e 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -109,7 +109,7 @@ public: void MoveInLineOfSight(Unit* who) override { - if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) + if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) return; ScriptedAI::MoveInLineOfSight(who); @@ -143,7 +143,7 @@ public: if (me->GetEntry() == ENTRY_NIHIL) { Talk(SAY_NIHIL_INTERRUPT); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); IsNihil = false; } @@ -152,7 +152,7 @@ public: if (entry_list[cid] == ENTRY_NIHIL) { EnterEvadeMode(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); IsNihil = true; } else @@ -186,7 +186,7 @@ public: ++NihilSpeech_Phase; break; case 4: - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); //take off to location above me->GetMotionMaster()->MovePoint(0, me->GetPositionX()+50.0f, me->GetPositionY(), me->GetPositionZ()+50.0f); ++NihilSpeech_Phase; diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index ff299ede68a..f17ef0bfaa0 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -271,8 +271,8 @@ public: Initialize(); playerGUID.Clear(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveUnitFlag(UNIT_FLAG_PACIFIED); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); } bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override @@ -284,7 +284,7 @@ public: player->PlayerTalkClass->SendCloseGossip(); me->AI()->Talk(SAY_BARADA_1); me->AI()->DoAction(ACTION_START_EVENT); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); break; default: break; @@ -305,7 +305,7 @@ public: me->GetMotionMaster()->MovePoint(0, exorcismPos[1]); Talk(SAY_BARADA_2); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + me->SetUnitFlag(UNIT_FLAG_PACIFIED); } } @@ -485,7 +485,7 @@ public: } me->RemoveAura(SPELL_BARADAS_COMMAND); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); + me->RemoveUnitFlag(UNIT_FLAG_PACIFIED); Talk(SAY_BARADA_8); me->GetMotionMaster()->MoveTargetedHome(); @@ -541,7 +541,7 @@ public: { me->Dismount(); me->SetFacingToObject(player); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _playerGUID = player->GetGUID(); _events.ScheduleEvent(EVENT_TALK, 2s); } @@ -549,8 +549,8 @@ public: void Reset() override { me->RestoreFaction(); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); me->SetImmuneToPC(true); } @@ -565,7 +565,7 @@ public: me->RemoveAllAuras(); me->CombatStop(true); EngagementOver(); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); me->SetImmuneToPC(true); Talk(SAY_DEFEATED); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index e11bc51f69c..468b224da97 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -169,7 +169,7 @@ public: { if (spellInfo->Id == SPELL_SUMMON_INFERNAL) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->RemoveAurasDueToSpell(SPELL_SPAWN_AND_PACIFY); // handle by the spell below when such auras will be not removed after evade @@ -782,7 +782,7 @@ public: Initialize(); me->AddUnitState(UNIT_STATE_ROOT); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetTarget(ObjectGuid::Empty); } @@ -821,7 +821,7 @@ public: case 6: if (Player* AggroTarget = ObjectAccessor::GetPlayer(*me, AggroTargetGUID)) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->ClearUnitState(UNIT_STATE_ROOT); float x, y, z; diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index 0e26ff8618b..d3adc87be1f 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -92,7 +92,7 @@ struct npc_pet_dk_ebon_gargoyle : CasterAI return; // Stop Fighting - me->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE, true); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // Sanctuary me->CastSpell(me, SPELL_DK_SANCTUARY, true); diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 5f15fd45cff..9efa58725a9 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -958,7 +958,7 @@ private: void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount) { // reduces all damage taken while Stunned in Moonkin Form - if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) && + if (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN)) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } @@ -1123,7 +1123,7 @@ private: void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount) { // reduces all damage taken while Stunned in Cat Form - if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && + if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN)) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 72b61c099ea..4f580c151c3 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -965,42 +965,42 @@ class spell_gen_clone_weapon_aura : public AuraScript case SPELL_COPY_WEAPON_2_AURA: case SPELL_COPY_WEAPON_3_AURA: { - prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID); + prevItem = target->GetVirtualItemId(0); if (Player* player = caster->ToPlayer()) { if (Item* mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND)) - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, mainItem->GetEntry()); + target->SetVirtualItem(0, mainItem->GetEntry()); } else - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID)); + target->SetVirtualItem(0, caster->GetVirtualItemId(0)); break; } case SPELL_COPY_OFFHAND_AURA: case SPELL_COPY_OFFHAND_2_AURA: { - prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1); + prevItem = target->GetVirtualItemId(1); if (Player* player = caster->ToPlayer()) { if (Item* offItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND)) - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, offItem->GetEntry()); + target->SetVirtualItem(1, offItem->GetEntry()); } else - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1)); + target->SetVirtualItem(1, caster->GetVirtualItemId(1)); break; } case SPELL_COPY_RANGED_AURA: { - prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2); + prevItem = target->GetVirtualItemId(2); if (Player* player = caster->ToPlayer()) { if (Item* rangedItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_RANGED)) - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, rangedItem->GetEntry()); + target->SetVirtualItem(2, rangedItem->GetEntry()); } else - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2)); + target->SetVirtualItem(2, caster->GetVirtualItemId(2)); break; } default: @@ -1017,14 +1017,14 @@ class spell_gen_clone_weapon_aura : public AuraScript case SPELL_COPY_WEAPON_AURA: case SPELL_COPY_WEAPON_2_AURA: case SPELL_COPY_WEAPON_3_AURA: - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, prevItem); + target->SetVirtualItem(0, prevItem); break; case SPELL_COPY_OFFHAND_AURA: case SPELL_COPY_OFFHAND_2_AURA: - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, prevItem); + target->SetVirtualItem(1, prevItem); break; case SPELL_COPY_RANGED_AURA: - target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, prevItem); + target->SetVirtualItem(2, prevItem); break; default: break; @@ -1178,10 +1178,10 @@ class spell_gen_dalaran_disguise : public SpellScript switch (spellId) { case SPELL_SUNREAVER_DISGUISE_TRIGGER: - spellId = gender ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE; break; case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER: - spellId = gender ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE; + spellId = gender == GENDER_FEMALE ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE; break; default: break; @@ -1664,9 +1664,9 @@ class spell_gen_feign_death_all_flags : public AuraScript void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (Creature* creature = target->ToCreature()) creature->SetReactState(REACT_PASSIVE); @@ -1675,9 +1675,9 @@ class spell_gen_feign_death_all_flags : public AuraScript void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (Creature* creature = target->ToCreature()) creature->InitializeReactState(); @@ -1699,8 +1699,8 @@ class spell_gen_feign_death_no_dyn_flag : public AuraScript void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (Creature* creature = target->ToCreature()) creature->SetReactState(REACT_PASSIVE); @@ -1709,8 +1709,8 @@ class spell_gen_feign_death_no_dyn_flag : public AuraScript void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); if (Creature* creature = target->ToCreature()) creature->InitializeReactState(); @@ -1731,8 +1731,8 @@ class spell_gen_feign_death_no_prevent_emotes : public AuraScript void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); if (Creature* creature = target->ToCreature()) creature->SetReactState(REACT_PASSIVE); @@ -1741,8 +1741,8 @@ class spell_gen_feign_death_no_prevent_emotes : public AuraScript void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); + target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); if (Creature* creature = target->ToCreature()) creature->InitializeReactState(); @@ -2728,13 +2728,13 @@ class spell_gen_prevent_emotes : public AuraScript void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); } void Register() override @@ -3823,7 +3823,7 @@ class spell_gen_gm_freeze : public AuraScript player->CombatStop(); if (player->IsNonMeleeSpellCast(true)) player->InterruptNonMeleeSpells(true); - player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + player->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // if player class = hunter || warlock remove pet if alive if ((player->GetClass() == CLASS_HUNTER) || (player->GetClass() == CLASS_WARLOCK)) @@ -3846,7 +3846,7 @@ class spell_gen_gm_freeze : public AuraScript { // Reset player faction + allow combat + allow duels player->SetFactionForRace(player->GetRace()); - player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + player->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // save player player->SaveToDB(); } diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index cc6c58aaee0..09b314d7ffd 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -691,7 +691,7 @@ class spell_hun_masters_call : public SpellScript // Do a mini Spell::CheckCasterAuras on the pet, no other way of doing this SpellCastResult result = SPELL_CAST_OK; - uint32 const unitflag = pet->GetUInt32Value(UNIT_FIELD_FLAGS); + uint32 const unitflag = pet->GetUnitFlags(); if (pet->GetCharmerGUID()) result = SPELL_FAILED_CHARMED; else if (unitflag & UNIT_FLAG_STUNNED) diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 9659956b249..1d82ae1040c 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1258,8 +1258,8 @@ class spell_q13264_q13276_q13288_q13289_bloated_abom_feign_death : public AuraSc void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); + target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); if (Creature* creature = target->ToCreature()) creature->SetReactState(REACT_PASSIVE); diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 1b31bfe283a..bf46ebf0228 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -410,7 +410,7 @@ private: void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount) { // reduces all damage taken while stun or fear - if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_FLEEING) || (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN))) + if (GetTarget()->HasUnitFlag(UNIT_FLAG_FLEEING) || (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN))) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index eff59f64966..74bed44d1d0 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -199,7 +199,7 @@ private: void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount) { // reduces all damage taken while stun, fear or silence - if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED) || (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN))) + if (GetTarget()->HasUnitFlag(UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED) || (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN))) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } @@ -238,7 +238,7 @@ class spell_sha_astral_shift_visual_dummy : public AuraScript void PeriodicTick(AuraEffect const* /*aurEff*/) { // Periodic needed to remove visual on stun/fear/silence lost - if (!GetTarget()->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED)) + if (!GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED)) Remove(); } diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 67868cb00be..d3a1785537e 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -97,7 +97,7 @@ struct emerald_dragonAI : public WorldBossAI void Reset() override { WorldBossAI::Reset(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_AGGRESSIVE); DoCast(me, SPELL_MARK_OF_NATURE_AURA, true); events.ScheduleEvent(EVENT_TAIL_SWEEP, 4s); @@ -635,7 +635,7 @@ class boss_taerar : public CreatureScript _shades += count; DoCast(SPELL_SHADE); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_PASSIVE); ++_stage; @@ -672,7 +672,7 @@ class boss_taerar : public CreatureScript { _banished = false; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE); 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 55e6b4169c1..fe448d38124 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -228,7 +228,7 @@ public: { Initialize(); me->SetFaction(FACTION_PREY); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); } void JustEngagedWith(Unit* /*who*/) override { } @@ -236,7 +236,7 @@ public: void UpdateAI(uint32 diff) override { // Reset flags after a certain time has passed so that the next player has to start the 'event' again - if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)) + if (me->HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER)) { if (ResetFlagTimer <= diff) { @@ -258,7 +258,7 @@ public: case TEXT_EMOTE_CHICKEN: if (player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE && rand32() % 30 == 1) { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); me->SetFaction(FACTION_FRIENDLY); Talk(player->GetTeam() == HORDE ? EMOTE_HELLO_H : EMOTE_HELLO_A); } @@ -266,7 +266,7 @@ public: case TEXT_EMOTE_CHEER: if (player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE) { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); me->SetFaction(FACTION_FRIENDLY); Talk(EMOTE_CLUCK_TEXT); } @@ -312,7 +312,7 @@ struct npc_dancing_flames : public ScriptedAI { DoCastSelf(SPELL_SUMMON_BRAZIER, true); DoCastSelf(SPELL_BRAZIER_DANCE, false); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE); + me->SetEmoteState(EMOTE_STATE_DANCE); float x, y, z; me->GetPosition(x, y, z); me->Relocate(x, y, z + 1.05f); @@ -633,7 +633,7 @@ public: void Reset() override { Initialize(); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void BeginEvent(Player* player) @@ -658,7 +658,7 @@ public: } Event = true; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } void PatientDied(Position const* point) @@ -766,13 +766,13 @@ public: Initialize(); //no select - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); //no regen health - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + me->SetUnitFlag(UNIT_FLAG_IN_COMBAT); //to make them lay with face down - me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD); + me->SetStandState(UNIT_STAND_STATE_DEAD); uint32 mobId = me->GetEntry(); @@ -807,13 +807,13 @@ public: ENSURE_AI(npc_doctor::npc_doctorAI, doctor->AI())->PatientSaved(me, player, Coord); //make uninteractible - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); //regen health - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); + me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT); //stand up - me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_STAND); + me->SetStandState(UNIT_STAND_STATE_STAND); Talk(SAY_DOC); @@ -843,10 +843,10 @@ public: if (me->IsAlive() && me->GetHealth() <= 6) { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE); + me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT); + me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->setDeathState(JUST_DIED); - me->SetFlag(UNIT_DYNAMIC_FLAGS, 32); + me->SetDynamicFlag(32); if (DoctorGUID) if (Creature* doctor = ObjectAccessor::GetCreature((*me), DoctorGUID)) @@ -897,7 +897,7 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 diff) if (Creature* Patient = me->SummonCreature(patientEntry, **point, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s)) { //303, this flag appear to be required for client side item->spell to work (TARGET_SINGLE_FRIEND) - Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + Patient->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); Patients.push_back(Patient->GetGUID()); ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->DoctorGUID = me->GetGUID(); @@ -1103,7 +1103,7 @@ public: void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); } void JustEngagedWith(Unit* /*who*/) override @@ -1521,14 +1521,14 @@ struct npc_brewfest_reveler_2 : ScriptedAI } else { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE); + me->SetEmoteState(EMOTE_STATE_DANCE); _events.ScheduleEvent(EVENT_NEXT, 8s, 12s); } break; case EVENT_NEXT: // If dancing stop before next random state - if (me->GetUInt32Value(UNIT_NPC_EMOTESTATE) == EMOTE_STATE_DANCE) - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + if (me->GetEmoteState() == EMOTE_STATE_DANCE) + me->SetEmoteState(EMOTE_ONESHOT_NONE); // Random EVENT_EMOTE or EVENT_FACETO if (roll_chance_i(50)) @@ -2111,7 +2111,7 @@ class npc_train_wrecker : public CreatureScript _timer -= diff; break; } - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_DANCE); + me->SetEmoteState(EMOTE_ONESHOT_DANCE); me->DespawnOrUnsummon(5s); _nextAction = 0; break; @@ -2224,8 +2224,8 @@ public: }) .Schedule(Seconds(1), [this](TaskContext context) { - if ((me->HasAura(SPELL_AURA_TIRED_S) || me->HasAura(SPELL_AURA_TIRED_G)) && me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR)) - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR); + if ((me->HasAura(SPELL_AURA_TIRED_S) || me->HasAura(SPELL_AURA_TIRED_G)) && me->HasNpcFlag(UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR)) + me->RemoveNpcFlag(UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR); context.Repeat(); }); } @@ -2236,7 +2236,7 @@ public: { case GOSSIP_OPTION_BANK: { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER); + me->SetNpcFlag(UNIT_NPC_FLAG_BANKER); uint32 _bankAura = IsArgentSquire() ? SPELL_AURA_BANK_S : SPELL_AURA_BANK_G; if (!me->HasAura(_bankAura)) DoCastSelf(_bankAura); @@ -2247,7 +2247,7 @@ public: } case GOSSIP_OPTION_SHOP: { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR); + me->SetNpcFlag(UNIT_NPC_FLAG_VENDOR); uint32 _shopAura = IsArgentSquire() ? SPELL_AURA_SHOP_S : SPELL_AURA_SHOP_G; if (!me->HasAura(_shopAura)) DoCastSelf(_shopAura); @@ -2258,7 +2258,7 @@ public: } case GOSSIP_OPTION_MAIL: { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_MAILBOX); + me->SetNpcFlag(UNIT_NPC_FLAG_MAILBOX); player->GetSession()->SendShowMailBox(me->GetGUID()); uint32 _mailAura = IsArgentSquire() ? SPELL_AURA_POSTMAN_S : SPELL_AURA_POSTMAN_G; |