diff options
author | Spp <spp@jorge.gr> | 2012-10-26 14:30:52 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-10-26 14:31:19 +0200 |
commit | 876ad50dcde63eb29c51d54e126c9d66508183ac (patch) | |
tree | 604b0e9f6166dad9ca34cfe088709e11b05010c5 /src | |
parent | 6d55ac8c58117de36143be76d6dc8d806ac9abe7 (diff) |
Core/Misc: Tweaked ThreatContainer internals
(and many cosmetic changes here and there)
Diffstat (limited to 'src')
53 files changed, 312 insertions, 426 deletions
diff --git a/src/server/game/AI/CoreAI/GuardAI.cpp b/src/server/game/AI/CoreAI/GuardAI.cpp index 6e2326ca9d5..90ca7009098 100755 --- a/src/server/game/AI/CoreAI/GuardAI.cpp +++ b/src/server/game/AI/CoreAI/GuardAI.cpp @@ -40,8 +40,8 @@ bool GuardAI::CanSeeAlways(WorldObject const* obj) if (!obj->isType(TYPEMASK_UNIT)) return false; - std::list<HostileReference*> threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) + ThreatContainer::StorageType threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) if ((*itr)->getUnitGuid() == obj->GetGUID()) return true; diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp index e159c1a7d9b..9f2c9a86094 100755 --- a/src/server/game/AI/CoreAI/UnitAI.cpp +++ b/src/server/game/AI/CoreAI/UnitAI.cpp @@ -60,25 +60,20 @@ void UnitAI::DoMeleeAttackIfReady() bool UnitAI::DoSpellAttackIfReady(uint32 spell) { - if (me->HasUnitState(UNIT_STATE_CASTING)) + if (me->HasUnitState(UNIT_STATE_CASTING) || !me->isAttackReady()) return true; - if (me->isAttackReady()) + if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell)) { - if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell)) + if (me->IsWithinCombatRange(me->getVictim(), spellInfo->GetMaxRange(false))) { - if (me->IsWithinCombatRange(me->getVictim(), spellInfo->GetMaxRange(false))) - { - me->CastSpell(me->getVictim(), spell, false); - me->resetAttackTimer(); - } - else - return false; + me->CastSpell(me->getVictim(), spell, false); + me->resetAttackTimer(); + return true; } - else - return false; } - return true; + + return false; } Unit* UnitAI::SelectTarget(SelectAggroTarget targetType, uint32 position, float dist, bool playerOnly, int32 aura) @@ -101,8 +96,8 @@ void UnitAI::DoAddAuraToAllHostilePlayers(uint32 spellid) { if (me->isInCombat()) { - std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) if (unit->GetTypeId() == TYPEID_PLAYER) @@ -116,8 +111,8 @@ void UnitAI::DoCastToAllHostilePlayers(uint32 spellid, bool triggered) { if (me->isInCombat()) { - std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) if (unit->GetTypeId() == TYPEID_PLAYER) diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index 89359372355..b07c766ae0b 100755 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -61,7 +61,7 @@ struct DefaultTargetSelector : public std::unary_function<Unit*, bool> // dist: if 0: ignored, if > 0: maximum distance to the reference unit, if < 0: minimum distance to the reference unit // playerOnly: self explaining // aura: if 0: ignored, if > 0: the target shall have the aura, if < 0, the target shall NOT have the aura - DefaultTargetSelector(Unit const* unit, float dist, bool playerOnly, int32 aura) : me(unit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) {} + DefaultTargetSelector(Unit const* unit, float dist, bool playerOnly, int32 aura) : me(unit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) { } bool operator()(Unit const* target) const { @@ -156,12 +156,12 @@ class UnitAI // predicate shall extend std::unary_function<Unit*, bool> template <class PREDICATE> Unit* SelectTarget(SelectAggroTarget targetType, uint32 position, PREDICATE const& predicate) { - const std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& threatlist = me->getThreatManager().getThreatList(); if (position >= threatlist.size()) return NULL; std::list<Unit*> targetList; - for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) if (predicate((*itr)->getTarget())) targetList.push_back((*itr)->getTarget()); @@ -206,11 +206,11 @@ class UnitAI // predicate shall extend std::unary_function<Unit*, bool> template <class PREDICATE> void SelectTargetList(std::list<Unit*>& targetList, PREDICATE const& predicate, uint32 maxTargets, SelectAggroTarget targetType) { - std::list<HostileReference*> const& threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& threatlist = me->getThreatManager().getThreatList(); if (threatlist.empty()) return; - for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) if (predicate((*itr)->getTarget())) targetList.push_back((*itr)->getTarget()); diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp index 951a035628a..78a84eb7ae4 100755 --- a/src/server/game/AI/EventAI/CreatureEventAI.cpp +++ b/src/server/game/AI/EventAI/CreatureEventAI.cpp @@ -520,10 +520,10 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; case ACTION_T_THREAT_ALL_PCT: { - std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator i = threatList.begin(); i != threatList.end(); ++i) - if (Unit* Temp = Unit::GetUnit(*me, (*i)->getUnitGuid())) - me->getThreatManager().modifyThreatPercent(Temp, action.threat_all_pct.percent); + ThreatContainer::StorageType const& threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i) + if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) + me->getThreatManager().modifyThreatPercent(unit, action.threat_all_pct.percent); break; } case ACTION_T_QUEST_EVENT: @@ -634,11 +634,11 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; case ACTION_T_CAST_EVENT_ALL: { - std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator i = threatList.begin(); i != threatList.end(); ++i) - if (Unit* Temp = Unit::GetUnit(*me, (*i)->getUnitGuid())) - if (Temp->GetTypeId() == TYPEID_PLAYER) - Temp->ToPlayer()->CastedCreatureOrGO(action.cast_event_all.creatureId, me->GetGUID(), action.cast_event_all.spellId); + ThreatContainer::StorageType const& threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i) + if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) + if (unit->GetTypeId() == TYPEID_PLAYER) + unit->ToPlayer()->CastedCreatureOrGO(action.cast_event_all.creatureId, me->GetGUID(), action.cast_event_all.spellId); break; } case ACTION_T_REMOVEAURASFROMSPELL: @@ -884,11 +884,11 @@ void CreatureEventAI::Reset() (*i).Enabled = true; break; } - //default: - //TODO: enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat() - //(*i).Enabled = true; - //(*i).Time = 0; - //break; + default: + //TODO: enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat() + //(*i).Enabled = true; + //(*i).Time = 0; + break; } } } diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp index 728b17b0bbf..2d973d9eb8f 100755 --- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp +++ b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp @@ -44,7 +44,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Texts() if (!result) { sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 additional CreatureEventAI Texts data. DB table `creature_ai_texts` is empty."); - return; } @@ -99,7 +98,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Texts() while (result->NextRow()); sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u additional CreatureEventAI Texts data in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); - } void CreatureEventAIMgr::LoadCreatureEventAI_Summons() @@ -115,7 +113,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Summons() if (!result) { sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 CreatureEventAI Summon definitions. DB table `creature_ai_summons` is empty."); - return; } @@ -147,7 +144,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Summons() while (result->NextRow()); sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u CreatureEventAI summon definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); - } void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() @@ -168,7 +164,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() if (!result) { sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 CreatureEventAI scripts. DB table `creature_ai_scripts` is empty."); - return; } @@ -739,5 +734,4 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() while (result->NextRow()); sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u CreatureEventAI scripts in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); - } diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 76bb3aaa76a..f8025a32b7f 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -254,12 +254,11 @@ void ScriptedAI::DoResetThreat() return; } - std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); - if (unit && DoGetThreat(unit)) DoModifyThreatPercent(unit, -100); } @@ -299,7 +298,8 @@ void ScriptedAI::DoTeleportPlayer(Unit* unit, float x, float y, float z, float o if (Player* player = unit->ToPlayer()) player->TeleportTo(unit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); else - sLog->outError(LOG_FILTER_TSCR, "Creature " UI64FMTD " (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: " UI64FMTD ") to x: %f y:%f z: %f o: %f. Aborted.", me->GetGUID(), me->GetEntry(), unit->GetTypeId(), unit->GetGUID(), x, y, z, o); + sLog->outError(LOG_FILTER_TSCR, "Creature " UI64FMTD " (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: " UI64FMTD ") to x: %f y:%f z: %f o: %f. Aborted.", + me->GetGUID(), me->GetEntry(), unit->GetTypeId(), unit->GetGUID(), x, y, z, o); } void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) @@ -331,6 +331,7 @@ std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float range) Trinity::FriendlyCCedInRange u_check(me, range); Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, list, u_check); me->VisitNearbyObject(range, searcher); + return list; } @@ -340,6 +341,7 @@ std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float range, uint32 u Trinity::FriendlyMissingBuffInRange u_check(me, range, uiSpellid); Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, list, u_check); me->VisitNearbyObject(range, searcher); + return list; } @@ -451,7 +453,6 @@ void Scripted_NoMovementAI::AttackStart(Unit* target) } // BossAI - for instanced bosses - BossAI::BossAI(Creature* creature, uint32 bossId) : ScriptedAI(creature), instance(creature->GetInstanceScript()), summons(creature), @@ -503,8 +504,9 @@ void BossAI::TeleportCheaters() { float x, y, z; me->GetPosition(x, y, z); - std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) + + ThreatContainer::StorageType threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) if (Unit* target = (*itr)->getTarget()) if (target->GetTypeId() == TYPEID_PLAYER && !CheckBoundary(target)) target->NearTeleportTo(x, y, z, 0); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 462868a6e68..a1fb2147cc2 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -430,8 +430,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (!me) break; - std::list<HostileReference*> const& threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = threatList.begin(); i != threatList.end(); ++i) + ThreatContainer::StorageType threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i) { if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid())) { @@ -2346,8 +2346,8 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /* { if (me) { - std::list<HostileReference*> const& threatList = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = threatList.begin(); i != threatList.end(); ++i) + ThreatContainer::StorageType threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i) if (Unit* temp = Unit::GetUnit(*me, (*i)->getUnitGuid())) l->push_back(temp); } diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index cd6b9a7da60..2c45067d95a 100755 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -253,25 +253,29 @@ Unit* HostileReference::getSourceUnit() void ThreatContainer::clearReferences() { - for (std::list<HostileReference*>::const_iterator i = iThreatList.begin(); i != iThreatList.end(); ++i) + for (ThreatContainer::StorageType::const_iterator i = iThreatList.begin(); i != iThreatList.end(); ++i) { (*i)->unlink(); delete (*i); } + iThreatList.clear(); } //============================================================ // Return the HostileReference of NULL, if not found -HostileReference* ThreatContainer::getReferenceByTarget(Unit* victim) +HostileReference* ThreatContainer::getReferenceByTarget(Unit* victim) const { if (!victim) return NULL; - uint64 guid = victim->GetGUID(); - for (std::list<HostileReference*>::const_iterator i = iThreatList.begin(); i != iThreatList.end(); ++i) - if ((*i) && (*i)->getUnitGuid() == guid) - return (*i); + uint64 const guid = victim->GetGUID(); + for (ThreatContainer::StorageType::const_iterator i = iThreatList.begin(); i != iThreatList.end(); ++i) + { + HostileReference *ref = (*i); + if (ref && ref->getUnitGuid() == guid) + return ref; + } return NULL; } @@ -310,16 +314,16 @@ void ThreatContainer::update() // return the next best victim // could be the current victim -HostileReference* ThreatContainer::selectNextVictim(Creature* attacker, HostileReference* currentVictim) +HostileReference* ThreatContainer::selectNextVictim(Creature* attacker, HostileReference* currentVictim) const { HostileReference* currentRef = NULL; bool found = false; bool noPriorityTargetFound = false; - std::list<HostileReference*>::const_iterator lastRef = iThreatList.end(); + ThreatContainer::StorageType::const_iterator lastRef = iThreatList.end(); --lastRef; - for (std::list<HostileReference*>::const_iterator iter = iThreatList.begin(); iter != iThreatList.end() && !found;) + for (ThreatContainer::StorageType::const_iterator iter = iThreatList.begin(); iter != iThreatList.end() && !found;) { currentRef = (*iter); @@ -577,17 +581,15 @@ bool ThreatManager::isNeedUpdateToClient(uint32 time) return false; } -// Reset all aggro without modifying the threadlist. +// Reset all aggro without modifying the threatlist. void ThreatManager::resetAllAggro() { - std::list<HostileReference*> &threatList = getThreatList(); + ThreatContainer::StorageType &threatList = iThreatContainer.iThreatList; if (threatList.empty()) return; - for (std::list<HostileReference*>::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) - { + for (ThreatContainer::StorageType::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) (*itr)->setThreat(0); - } setDirty(true); } diff --git a/src/server/game/Combat/ThreatManager.h b/src/server/game/Combat/ThreatManager.h index e5badcd24ce..665acd6d751 100755 --- a/src/server/game/Combat/ThreatManager.h +++ b/src/server/game/Combat/ThreatManager.h @@ -142,39 +142,57 @@ class ThreatManager; class ThreatContainer { - private: - std::list<HostileReference*> iThreatList; - bool iDirty; - protected: friend class ThreatManager; - void remove(HostileReference* hostileRef) { iThreatList.remove(hostileRef); } - void addReference(HostileReference* hostileRef) { iThreatList.push_back(hostileRef); } - void clearReferences(); - - // Sort the list if necessary - void update(); public: - ThreatContainer() { iDirty = false; } + typedef std::list<HostileReference*> StorageType; + + ThreatContainer(): iDirty(false) { } + ~ThreatContainer() { clearReferences(); } HostileReference* addThreat(Unit* victim, float threat); void modifyThreatPercent(Unit* victim, int32 percent); - HostileReference* selectNextVictim(Creature* attacker, HostileReference* currentVictim); + HostileReference* selectNextVictim(Creature* attacker, HostileReference* currentVictim) const; void setDirty(bool isDirty) { iDirty = isDirty; } bool isDirty() const { return iDirty; } - bool empty() const { return iThreatList.empty(); } + bool empty() const + { + return iThreatList.empty(); + } - HostileReference* getMostHated() { return iThreatList.empty() ? NULL : iThreatList.front(); } + HostileReference* getMostHated() const + { + return iThreatList.empty() ? NULL : iThreatList.front(); + } + + HostileReference* getReferenceByTarget(Unit* victim) const; - HostileReference* getReferenceByTarget(Unit* victim); + StorageType const & getThreatList() const { return iThreatList; } - std::list<HostileReference*>& getThreatList() { return iThreatList; } + private: + void remove(HostileReference* hostileRef) + { + iThreatList.remove(hostileRef); + } + + void addReference(HostileReference* hostileRef) + { + iThreatList.push_back(hostileRef); + } + + void clearReferences(); + + // Sort the list if necessary + void update(); + + StorageType iThreatList; + bool iDirty; }; //================================================= @@ -198,15 +216,15 @@ class ThreatManager float getThreat(Unit* victim, bool alsoSearchOfflineList = false); - bool isThreatListEmpty() { return iThreatContainer.empty(); } + bool isThreatListEmpty() const { return iThreatContainer.empty(); } void processThreatEvent(ThreatRefStatusChangeEvent* threatRefStatusChangeEvent); bool isNeedUpdateToClient(uint32 time); - HostileReference* getCurrentVictim() { return iCurrentVictim; } + HostileReference* getCurrentVictim() const { return iCurrentVictim; } - Unit* getOwner() { return iOwner; } + Unit* getOwner() const { return iOwner; } Unit* getHostilTarget(); @@ -223,11 +241,11 @@ class ThreatManager // Reset all aggro of unit in threadlist satisfying the predicate. template<class PREDICATE> void resetAggro(PREDICATE predicate) { - std::list<HostileReference*> &threatList = getThreatList(); + ThreatContainer::StorageType &threatList = iThreatContainer.iThreatList; if (threatList.empty()) return; - for (std::list<HostileReference*>::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) + for (ThreatContainer::StorageType::iterator itr = threatList.begin(); itr != threatList.end(); ++itr) { HostileReference* ref = (*itr); @@ -241,8 +259,8 @@ class ThreatManager // methods to access the lists from the outside to do some dirty manipulation (scriping and such) // I hope they are used as little as possible. - std::list<HostileReference*>& getThreatList() { return iThreatContainer.getThreatList(); } - std::list<HostileReference*>& getOfflineThreatList() { return iThreatOfflineContainer.getThreatList(); } + ThreatContainer::StorageType const & getThreatList() const { return iThreatContainer.getThreatList(); } + ThreatContainer::StorageType const & getOfflineThreatList() const { return iThreatOfflineContainer.getThreatList(); } ThreatContainer& getOnlineContainer() { return iThreatContainer; } ThreatContainer& getOfflineContainer() { return iThreatOfflineContainer; } private: @@ -273,4 +291,3 @@ namespace Trinity }; } #endif - diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index bcaacf76cb1..743d622e8c9 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17378,11 +17378,11 @@ void Unit::SendThreatListUpdate() WorldPacket data(SMSG_THREAT_UPDATE, 8 + count * 8); data.append(GetPackGUID()); data << uint32(count); - std::list<HostileReference*>& tlist = getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = tlist.begin(); itr != tlist.end(); ++itr) + ThreatContainer::StorageType const &tlist = getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = tlist.begin(); itr != tlist.end(); ++itr) { data.appendPackGUID((*itr)->getUnitGuid()); - data << uint32((*itr)->getThreat() * 100); + data << uint32((*itr)->getThreat()*100); } SendMessageToSet(&data, false); } @@ -17399,8 +17399,8 @@ void Unit::SendChangeCurrentVictimOpcode(HostileReference* pHostileReference) data.append(GetPackGUID()); data.appendPackGUID(pHostileReference->getUnitGuid()); data << uint32(count); - std::list<HostileReference*>& tlist = getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = tlist.begin(); itr != tlist.end(); ++itr) + ThreatContainer::StorageType const &tlist = getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = tlist.begin(); itr != tlist.end(); ++itr) { data.appendPackGUID((*itr)->getUnitGuid()); data << uint32((*itr)->getThreat()); diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index a02c18ca008..1cd442e48f9 100755 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -81,18 +81,22 @@ void VisibleChangesNotifier::Visit(PlayerMapType &m) iter->getSource()->UpdateVisibilityOf(&i_object); - if (!iter->getSource()->GetSharedVisionList().empty()) + if (iter->getSource()->HasSharedVision()) + { for (SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin(); i != iter->getSource()->GetSharedVisionList().end(); ++i) + { if ((*i)->m_seer == iter->getSource()) (*i)->UpdateVisibilityOf(&i_object); + } + } } } void VisibleChangesNotifier::Visit(CreatureMapType &m) { for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) - if (!iter->getSource()->GetSharedVisionList().empty()) + if (iter->getSource()->HasSharedVision()) for (SharedVisionList::const_iterator i = iter->getSource()->GetSharedVisionList().begin(); i != iter->getSource()->GetSharedVisionList().end(); ++i) if ((*i)->m_seer == iter->getSource()) @@ -154,7 +158,7 @@ void PlayerRelocationNotifier::Visit(CreatureMapType &m) void CreatureRelocationNotifier::Visit(PlayerMapType &m) { - for (PlayerMapType::iterator iter=m.begin(); iter != m.end(); ++iter) + for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Player* player = iter->getSource(); @@ -170,7 +174,7 @@ void CreatureRelocationNotifier::Visit(CreatureMapType &m) if (!i_creature.isAlive()) return; - for (CreatureMapType::iterator iter=m.begin(); iter != m.end(); ++iter) + for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Creature* c = iter->getSource(); CreatureUnitRelocationWorker(&i_creature, c); @@ -249,7 +253,7 @@ void MessageDistDeliverer::Visit(PlayerMapType &m) continue; // Send packet to all who are sharing the player's vision - if (!target->GetSharedVisionList().empty()) + if (target->HasSharedVision()) { SharedVisionList::const_iterator i = target->GetSharedVisionList().begin(); for (; i != target->GetSharedVisionList().end(); ++i) @@ -274,7 +278,7 @@ void MessageDistDeliverer::Visit(CreatureMapType &m) continue; // Send packet to all who are sharing the creature's vision - if (!target->GetSharedVisionList().empty()) + if (target->HasSharedVision()) { SharedVisionList::const_iterator i = target->GetSharedVisionList().begin(); for (; i != target->GetSharedVisionList().end(); ++i) diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 1ec283b7014..99ed8cc4301 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -798,8 +798,8 @@ public: if (!target || target->isTotem() || target->isPet()) return false; - std::list<HostileReference*>& threatList = target->getThreatManager().getThreatList(); - std::list<HostileReference*>::iterator itr; + ThreatContainer::StorageType const &threatList = target->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator itr; uint32 count = 0; handler->PSendSysMessage("Threat list of %s (guid %u)", target->GetName().c_str(), target->GetGUIDLow()); for (itr = threatList.begin(); itr != threatList.end(); ++itr) diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp index 25c3f2e41e3..9beb3bb10fe 100644 --- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp @@ -240,8 +240,8 @@ public: //Affliction_Timer if (Affliction_Timer <= diff) { - std::list<HostileReference*> threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i) { if ((*i) && (*i)->getSource()) { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index bf27cad44ef..2c7e1b9c48a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -187,13 +187,11 @@ public: if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1)) DoCast(target, SPELL_HATEFUL_BOLT); - } else HatefulBoltTimer -= diff; DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_curator() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp index 8921867be21..5f974a890bf 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp @@ -132,9 +132,7 @@ public: DoMeleeAttackIfReady(); } - }; - }; void AddSC_boss_maiden_of_virtue() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index ea9cfe5c3c1..7eeced1d970 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -111,7 +111,6 @@ public: DoScriptText(SAY_DISARMED, me); } }; - }; class boss_midnight : public CreatureScript @@ -232,7 +231,6 @@ public: CAST_AI(boss_attumen::boss_attumenAI, pAttumen->AI())->Midnight = value; } }; - }; void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff) @@ -284,9 +282,9 @@ void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff) if (ChargeTimer <= diff) { Unit* target = NULL; - std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); std::vector<Unit*> target_list; - for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr) { target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (target && !target->IsWithinDist(me, ATTACK_DISTANCE, false)) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index 533a1aac2f0..99f2cb51c85 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -307,7 +307,6 @@ public: DoMeleeAttackIfReady(); } }; - }; struct boss_moroes_guestAI : public ScriptedAI @@ -452,7 +451,6 @@ public: } else ShadowWordPain_Timer -= diff; } }; - }; class boss_baron_rafe_dreuger : public CreatureScript @@ -510,7 +508,6 @@ public: } else HammerOfJustice_Timer -= diff; } }; - }; class boss_lady_catriona_von_indi : public CreatureScript @@ -581,7 +578,6 @@ public: } else DispelMagic_Timer -= diff; } }; - }; class boss_lady_keira_berrybuck : public CreatureScript @@ -656,7 +652,6 @@ public: } else Cleanse_Timer -= diff; } }; - }; class boss_lord_robin_daris : public CreatureScript @@ -713,7 +708,6 @@ public: } else WhirlWind_Timer -= diff; } }; - }; class boss_lord_crispin_ference : public CreatureScript @@ -778,7 +772,6 @@ public: } else ShieldWall_Timer -= diff; } }; - }; void AddSC_boss_moroes() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 60e1a5ebc4c..c6587c3cd8a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -333,7 +333,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_netherspite() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index e2420749a4c..690822203b5 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -413,7 +413,6 @@ public: } } }; - }; void AddSC_boss_nightbane() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index f4195620dda..d1c4790d705 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -169,7 +169,6 @@ public: void Cleanup(); }; - }; class boss_malchezaar : public CreatureScript @@ -314,14 +313,14 @@ public: if (!info) return; - std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); std::vector<Unit*> targets; if (t_list.empty()) return; //begin + 1, so we don't target the one with the highest threat - std::list<HostileReference*>::const_iterator itr = t_list.begin(); + ThreatContainer::StorageType::const_iterator itr = t_list.begin(); std::advance(itr, 1); for (; itr != t_list.end(); ++itr) //store the threat list in a different container if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) @@ -483,14 +482,12 @@ public: { DoCast(me->getVictim(), SPELL_SUNDER_ARMOR); SunderArmorTimer = urand(10000, 18000); - } else SunderArmorTimer -= diff; if (Cleave_Timer <= diff) { DoCast(me->getVictim(), SPELL_CLEAVE); Cleave_Timer = urand(6000, 12000); - } else Cleave_Timer -= diff; } else @@ -602,15 +599,14 @@ public: positions.push_back(point); } }; - }; void netherspite_infernal::netherspite_infernalAI::Cleanup() { - Unit* pMalchezaar = Unit::GetUnit(*me, malchezaar); + Creature *pMalchezaar = Unit::GetCreature(*me, malchezaar); if (pMalchezaar && pMalchezaar->isAlive()) - CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point); + CAST_AI(boss_malchezaar::boss_malchezaarAI, pMalchezaar->AI())->Cleanup(me, point); } void AddSC_boss_malchezaar() 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 7dd4e731a18..25fafdfcd0d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -187,13 +187,13 @@ public: void FlameWreathEffect() { std::vector<Unit*> targets; - std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); if (t_list.empty()) return; //store the threat list in a different container - for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); //only on alive players @@ -508,7 +508,6 @@ public: } } }; - }; class mob_aran_elemental : public CreatureScript @@ -546,7 +545,6 @@ public: } else CastTimer -= diff; } }; - }; void AddSC_boss_shade_of_aran() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index 44cd7e0faea..688a678060f 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -127,7 +127,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class mob_demon_chain : public CreatureScript @@ -165,7 +164,6 @@ public: } } }; - }; class mob_fiendish_portal : public CreatureScript @@ -200,7 +198,6 @@ public: summons.DespawnAll(); } }; - }; #define SPELL_FIREBOLT 30050 // Blasts a target for 181-209 Fire damage. @@ -245,7 +242,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_terestian_illhoof : public CreatureScript @@ -422,7 +418,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_terestian_illhoof() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 30d33dc65cf..a4f4f603206 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -216,7 +216,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class mob_tito : public CreatureScript @@ -271,7 +270,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void boss_dorothee::boss_dorotheeAI::SummonTito() @@ -398,7 +396,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_tinhead : public CreatureScript @@ -508,7 +505,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_roar : public CreatureScript @@ -617,7 +613,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_crone : public CreatureScript @@ -699,7 +694,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class mob_cyclone : public CreatureScript @@ -743,7 +737,6 @@ public: } else MoveTimer -= diff; } }; - }; /**************************************/ @@ -792,7 +785,6 @@ public: return true; } - }; class boss_bigbadwolf : public CreatureScript @@ -915,10 +907,8 @@ public: DoCast(me->getVictim(), SPELL_WIDE_SWIPE); SwipeTimer = urand(25000, 30000); } else SwipeTimer -= diff; - } }; - }; /**********************************************/ @@ -977,7 +967,7 @@ void PretendToDie(Creature* creature) creature->GetMotionMaster()->MovementExpired(false); creature->GetMotionMaster()->MoveIdle(); creature->SetStandState(UNIT_STAND_STATE_DEAD); -}; +} void Resurrect(Creature* target) { @@ -992,7 +982,7 @@ void Resurrect(Creature* target) } else target->GetMotionMaster()->Initialize(); -}; +} class boss_julianne : public CreatureScript { @@ -1114,7 +1104,6 @@ public: void UpdateAI(const uint32 diff); }; - }; class boss_romulo : public CreatureScript @@ -1321,7 +1310,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 05d6ecf1478..2ecd98cbc4c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -288,7 +288,7 @@ public: return 0; } - void Load(const char* chrIn) + void Load(char const* chrIn) { if (!chrIn) { @@ -308,7 +308,6 @@ public: OUT_LOAD_INST_DATA_COMPLETE; } }; - }; void AddSC_instance_karazhan() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index b84fc15d664..3bdfeab30da 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -321,7 +321,6 @@ public: WipeTimer = 15000; } else WipeTimer -= diff; } - } } }; @@ -344,17 +343,17 @@ public: case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_OZ; - sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_OZ", player->GetGUID()); + sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_OZ", player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+4: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_HOOD; - sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_HOOD", player->GetGUID()); + sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_HOOD", player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+5: player->CLOSE_GOSSIP_MENU(); pBarnesAI->m_uiEventId = EVENT_RAJ; - sLog->outInfo(LOG_FILTER_TSCR, "TSCR: player (GUID " UI64FMTD ") manually set Opera event to EVENT_RAJ", player->GetGUID()); + sLog->outInfo(LOG_FILTER_TSCR, "player (GUID " UI64FMTD ") manually set Opera event to EVENT_RAJ", player->GetGUID()); break; } @@ -397,7 +396,6 @@ public: { return new npc_barnesAI(creature); } - }; /*### @@ -438,7 +436,6 @@ public: player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); return true; } - }; /*### @@ -538,7 +535,7 @@ public: uint32 NextStep(uint32 Step) { - Unit* arca = Unit::GetUnit(*me, ArcanagosGUID); + Creature* arca = Unit::GetCreature(*me, ArcanagosGUID); Map* map = me->GetMap(); switch (Step) { @@ -548,21 +545,21 @@ public: return 10000; case 2: if (arca) - CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, 0); + arca->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, 0); return 20000; case 3: me->MonsterYell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL, 0); return 10000; case 4: if (arca) - CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, 0); + arca->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, 0); return 20000; case 5: me->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, 0); return 20000; case 6: if (arca) - CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, 0); + arca->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, 0); return 10000; case 7: FireArcanagosTimer = 500; @@ -580,7 +577,7 @@ public: return 1000; case 11: if (arca) - CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, 0); + arca->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, 0); return 5000; case 12: arca->GetMotionMaster()->MovePoint(0, -11010.82f, -1761.18f, 156.47f); @@ -613,12 +610,10 @@ public: return 5000; default : return 9999999; } - } void UpdateAI(const uint32 diff) { - if (YellTimer <= diff) { if (EventStarted) @@ -645,7 +640,6 @@ public: } } }; - }; void AddSC_karazhan() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index e1817034189..c8a1aa55c7e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -64,4 +64,3 @@ enum OperaEvents #define ERROR_INST_DATA(a) sLog->outError(LOG_FILTER_TSCR, "Instance Data for Karazhan not set properly. Encounter for Creature Entry %u may not work properly.", a->GetEntry()); #endif - diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index bd79cbba628..e21a84d9499 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -189,20 +189,20 @@ public: ScriptedAI::MoveInLineOfSight(who); } - void SetThreatList(Creature* SummonedUnit) + void SetThreatList(Creature* summonedUnit) { - if (!SummonedUnit) + if (!summonedUnit) return; - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); - for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && unit->isAlive()) { float threat = me->getThreatManager().getThreat(unit); - SummonedUnit->AddThreat(unit, threat); + summonedUnit->AddThreat(unit, threat); } } } @@ -212,9 +212,9 @@ public: float x = KaelLocations[0][0]; float y = KaelLocations[0][1]; me->SetPosition(x, y, LOCATION_Z, 0.0f); - //me->SendMonsterMove(x, y, LOCATION_Z, 0, 0, 0); // causes some issues... - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -225,8 +225,9 @@ public: void CastGravityLapseKnockUp() { - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -237,8 +238,9 @@ public: void CastGravityLapseFly() // Use Fly Packet hack for now as players can't cast "fly" spells unless in map 530. Has to be done a while after they get knocked into the air... { - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -257,8 +259,9 @@ public: void RemoveGravityLapse() { - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -306,7 +309,6 @@ public: if (PhoenixTimer <= diff) { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1); uint8 random = urand(1, 2); @@ -410,7 +412,6 @@ public: Orb->AddThreat(target, 1000000.0f); Orb->AI()->AttackStart(target); } - } DoCast(me, SPELL_GRAVITY_LAPSE_CHANNEL); @@ -431,7 +432,6 @@ public: } } }; - }; class mob_felkael_flamestrike : public CreatureScript @@ -473,7 +473,6 @@ public: } else FlameStrikeTimer -= diff; } }; - }; class mob_felkael_phoenix : public CreatureScript @@ -522,7 +521,6 @@ public: { damage = 0; return; - } //Don't really die in all phases of Kael'Thas if (instance && instance->GetData(DATA_KAELTHAS_EVENT) == 0) @@ -544,9 +542,7 @@ public: me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); me->SetStandState(UNIT_STAND_STATE_DEAD); - } - } void JustDied(Unit* /*killer*/) @@ -556,7 +552,6 @@ public: void UpdateAI(const uint32 diff) { - //If we are fake death, we cast revbirth and after that we kill the phoenix to spawn the egg. if (FakeDeath) { @@ -568,7 +563,6 @@ public: if (Rebirth) { - if (Death_Timer <= diff) { me->SummonCreature(CREATURE_PHOENIX_EGG, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); @@ -576,7 +570,6 @@ public: Rebirth = false; } else Death_Timer -= diff; } - } if (!UpdateVictim()) @@ -593,7 +586,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class mob_felkael_phoenix_egg : public CreatureScript @@ -627,10 +619,8 @@ public: me->SummonCreature(CREATURE_PHOENIX, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); me->Kill(me); } else HatchTimer -= diff; - } }; - }; class mob_arcane_sphere : public CreatureScript @@ -687,7 +677,6 @@ public: } else ChangeTargetTimer -= diff; } }; - }; void AddSC_boss_felblood_kaelthas() diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 7ce9b08845f..2af417381a5 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -331,7 +331,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eHealingPotion @@ -574,7 +573,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eWarlockSpells @@ -671,7 +669,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eKickDown @@ -728,7 +725,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eMageSpells @@ -835,8 +831,8 @@ public: if (Blink_Timer <= diff) { bool InMeleeRange = false; - std::list<HostileReference*>& t_list = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) { @@ -859,7 +855,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eWarriorSpells @@ -922,8 +917,8 @@ public: if (Intercept_Stun_Timer <= diff) { bool InMeleeRange = false; - std::list<HostileReference*>& t_list = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) { @@ -979,7 +974,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eHunterSpells @@ -1103,7 +1097,6 @@ public: } } }; - }; enum Spells @@ -1203,7 +1196,6 @@ public: DoMeleeAttackIfReady(); } }; - }; enum eEngineerSpells @@ -1298,7 +1290,6 @@ public: DoMeleeAttackIfReady(); } }; - }; /* diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index 82ad3ee2630..430bbb79bde 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -105,20 +105,20 @@ public: for (std::list<uint64>::const_iterator itr = Crystals.begin(); itr != Crystals.end(); ++itr) { //Unit* unit = Unit::GetUnit(*me, FelCrystals[i]); - Unit* unit = Unit::GetUnit(*me, *itr); - if (unit) + if (Creature *creature = Unit::GetCreature(*me, *itr)) { - if (!unit->isAlive()) - CAST_CRE(unit)->Respawn(); // Let the core handle setting death state, etc. + if (!creature->isAlive()) + creature->Respawn(); // Let the core handle setting death state, etc. // Only need to set unselectable flag. You can't attack unselectable units so non_attackable flag is not necessary here. - unit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } } instance->HandleGameObject(instance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true); // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here) - // Small door opened after event are expected to be closed by default + // Small door opened after event are expected to be closed by default + // Set Inst data for encounter instance->SetData(DATA_SELIN_EVENT, NOT_STARTED); } else sLog->outError(LOG_FILTER_TSCR, ERROR_INST_DATA); @@ -291,7 +291,6 @@ public: DrainCrystalTimer = urand(20000, 25000); } else DrainCrystalTimer -= diff; } - }else { if (IsDraining) @@ -319,7 +318,6 @@ public: DoMeleeAttackIfReady(); // No need to check if we are draining crystal here, as the spell has a stun. } }; - }; class mob_fel_crystal : public CreatureScript @@ -365,7 +363,6 @@ public: } else sLog->outError(LOG_FILTER_TSCR, ERROR_INST_DATA); } }; - }; void AddSC_boss_selin_fireheart() diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp index b5cf443c5a5..34682683ee3 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp @@ -192,7 +192,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class mob_pure_energy : public CreatureScript @@ -224,7 +223,6 @@ public: void MoveInLineOfSight(Unit* /*who*/) {} void AttackStart(Unit* /*who*/) {} }; - }; void AddSC_boss_vexallus() diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp index cd2874f7253..da8b24c3985 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -262,7 +262,6 @@ public: return 0; } }; - }; void AddSC_instance_magisters_terrace() diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp index 69e0e5bff40..64b6c8d75b2 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp @@ -140,14 +140,14 @@ public: if (lList.isEmpty()) return; - SpellInfo const* pSpell = sSpellMgr->GetSpellInfo(SPELL_ORB_KILL_CREDIT); + SpellInfo const* spell = sSpellMgr->GetSpellInfo(SPELL_ORB_KILL_CREDIT); for (Map::PlayerList::const_iterator i = lList.begin(); i != lList.end(); ++i) { if (Player* player = i->getSource()) { - if (pSpell && pSpell->Effects[0].MiscValue) - player->KilledMonsterCredit(pSpell->Effects[0].MiscValue, 0); + if (spell && spell->Effects[0].MiscValue) + player->KilledMonsterCredit(spell->Effects[0].MiscValue, 0); } } } @@ -170,7 +170,6 @@ public: } } }; - }; void AddSC_magisters_terrace() diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h index 78aa14b9102..660e58d325a 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -20,7 +20,6 @@ #define DEF_MAGISTERS_TERRACE_H #define ERROR_INST_DATA "TSCR Error: Instance Data not set properly for Magister's Terrace instance (map 585). Encounters will be buggy." -#endif enum Data { @@ -47,3 +46,5 @@ enum Data DATA_ESCAPE_ORB = 16 }; + +#endif diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index ca91fb920b1..5e7fa111a7b 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -46,7 +46,7 @@ uint32 RandomLaugh[] = {11965, 11975, 11976}; enum Entry { HH_MOUNTED = 23682, - HH_DISMOUNTED = 23800, // unhorsed?? wtf type of engrish was that? + HH_DISMOUNTED = 23800, HEAD = 23775, PULSING_PUMPKIN = 23694, PUMPKIN_FIEND = 23545, @@ -127,7 +127,7 @@ static Locations Spawn[]= {1765.28f, 1347.46f, 17.55f} //spawn point for smoke }; -static const char* Text[]= +static char const* Text[]= { "Horseman rise...", "Your time is nigh...", @@ -592,8 +592,8 @@ public: caster->GetMotionMaster()->Clear(false); caster->GetMotionMaster()->MoveFollow(me, 6, float(urand(0, 5))); //DoResetThreat();//not sure if need - std::list<HostileReference*>::const_iterator itr; - for (itr = caster->getThreatManager().getThreatList().begin(); itr != caster->getThreatManager().getThreatList().end(); ++itr) + ThreatContainer::StorageType threatlist = caster->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit && unit->isAlive() && unit != caster) diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp index 59244585ecf..dbbbb7fb0dd 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp @@ -153,12 +153,7 @@ public: uint32 Start_Timer; void Reset() {} - - void WaypointReached(uint32 /*waypointId*/) - { - - } - + void WaypointReached(uint32 /*waypointId*/) {} void EnterCombat(Unit* /*who*/) {} void UpdateAI(const uint32 diff) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index e40a48d0251..c763cb69dec 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -344,7 +344,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_brutallus() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index e7b0e86285e..34548ec9116 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -121,13 +121,12 @@ public: if (instance) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); - if (Temp) + if (Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS))) { - if (Temp->isDead()) - CAST_CRE(Temp)->Respawn(); - else if (Temp->getVictim()) - me->getThreatManager().addThreat(Temp->getVictim(), 0.0f); + if (temp->isDead()) + temp->Respawn(); + else if (temp->getVictim()) + me->getThreatManager().addThreat(temp->getVictim(), 0.0f); } } @@ -153,9 +152,9 @@ public: if (instance) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); - if (Temp && Temp->isAlive() && !(Temp->getVictim())) - CAST_CRE(Temp)->AI()->AttackStart(who); + Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS)); + if (temp && temp->isAlive() && !temp->getVictim()) + temp->AI()->AttackStart(who); } if (instance) @@ -341,7 +340,6 @@ public: } } }; - }; class boss_alythess : public CreatureScript @@ -383,13 +381,12 @@ public: if (instance) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); - if (Temp) + if (Creature *temp = Unit::GetCreature((*me), instance->GetData64(DATA_SACROLASH))) { - if (Temp->isDead()) - CAST_CRE(Temp)->Respawn(); - else if (Temp->getVictim()) - me->getThreatManager().addThreat(Temp->getVictim(), 0.0f); + if (temp->isDead()) + temp->Respawn(); + else if (temp->getVictim()) + me->getThreatManager().addThreat(temp->getVictim(), 0.0f); } } @@ -416,9 +413,9 @@ public: if (instance) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); - if (Temp && Temp->isAlive() && !(Temp->getVictim())) - CAST_CRE(Temp)->AI()->AttackStart(who); + Creature *temp = Unit::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); + if (temp && temp->isAlive() && !temp->getVictim()) + temp->AI()->AttackStart(who); } if (instance) @@ -480,7 +477,6 @@ public: { switch (spell->Id) { - case SPELL_BLAZE: target->CastSpell(target, SPELL_BLAZE_SUMMON, true); case SPELL_CONFLAGRATION: @@ -670,7 +666,6 @@ public: } else EnrageTimer -= diff; } }; - }; class mob_shadow_image : public CreatureScript @@ -705,7 +700,6 @@ public: { switch (spell->Id) { - case SPELL_SHADOW_FURY: case SPELL_DARK_STRIKE: if (!target->HasAura(SPELL_DARK_FLAME)) @@ -752,7 +746,6 @@ public: } else DarkstrikeTimer -= diff; } }; - }; void AddSC_boss_eredar_twins() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 7267c4e1bdb..bc841d76714 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -512,7 +512,6 @@ public: } } }; - }; class mob_felmyst_vapor : public CreatureScript @@ -545,7 +544,6 @@ public: AttackStart(target); } }; - }; class mob_felmyst_trail : public CreatureScript @@ -573,7 +571,6 @@ public: void MoveInLineOfSight(Unit* /*who*/) {} void UpdateAI(const uint32 /*diff*/) {} }; - }; void AddSC_boss_felmyst() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 57e69238816..3e503a547d8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -304,11 +304,20 @@ public: if (SpectralBlastTimer <= diff) { - std::list<HostileReference*> &m_threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& m_threatlist = me->getThreatManager().getThreatList(); std::list<Unit*> targetList; - for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) - if ((*itr)->getTarget() && (*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER && (*itr)->getTarget()->GetGUID() != me->getVictim()->GetGUID() && !(*itr)->getTarget()->HasAura(AURA_SPECTRAL_EXHAUSTION) && (*itr)->getTarget()->GetPositionZ() > me->GetPositionZ()-5) - targetList.push_back((*itr)->getTarget()); + for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) + { + Unit* target = (*itr)->getTarget(); + if (target + && target->GetTypeId() == TYPEID_PLAYER + && target->GetGUID() != me->getVictim()->GetGUID() + && target->GetPositionZ() > me->GetPositionZ() - 5 + && !target->HasAura(AURA_SPECTRAL_EXHAUSTION)) + { + targetList.push_back(target); + } + } if (targetList.empty()) { SpectralBlastTimer = 1000; @@ -431,7 +440,6 @@ public: } } }; - }; class boss_kalec : public CreatureScript @@ -533,7 +541,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class kalecgos_teleporter : public GameObjectScript @@ -561,7 +568,6 @@ public: player->CastSpell(player, SPELL_TELEPORT_SPECTRAL, true); return true; } - }; class boss_sathrovarr : public CreatureScript @@ -761,15 +767,12 @@ public: if (ResetThreat <= diff) { - for (std::list<HostileReference*>::const_iterator itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - { - if (unit->GetPositionZ() > me->GetPositionZ()+5) - { + if (unit->GetPositionZ() > me->GetPositionZ() + 5) me->getThreatManager().modifyThreatPercent(unit, -100); - } - } } ResetThreat = 1000; } else ResetThreat -= diff; @@ -799,7 +802,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_kalecgos() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index e368124abaf..096f6daaec2 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -367,7 +367,6 @@ public: } } }; - }; class go_orb_of_the_blue_flight : public GameObjectScript @@ -391,7 +390,6 @@ public: } return true; } - }; //AI for Kil'jaeden Event Controller @@ -492,7 +490,6 @@ public: } } }; - }; //AI for Kil'jaeden @@ -900,7 +897,6 @@ public: } } }; - }; //AI for Hand of the Deceiver @@ -987,8 +983,8 @@ public: { if (Creature* pPortal = DoSpawnCreature(CREATURE_FELFIRE_PORTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 20000)) { - std::list<HostileReference*>::iterator itr; - for (itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit) @@ -1001,7 +997,6 @@ public: DoMeleeAttackIfReady(); } }; - }; //AI for Felfire Portal @@ -1046,7 +1041,6 @@ public: } else uiSpawnFiendTimer -= diff; } }; - }; //AI for Felfire Fiend @@ -1104,7 +1098,6 @@ public: } } }; - }; //AI for Armageddon target @@ -1159,7 +1152,6 @@ public: } else uiTimer -=diff; } }; - }; //AI for Shield Orbs @@ -1247,7 +1239,6 @@ public: bPointReached = true; } }; - }; //AI for Sinister Reflection @@ -1310,7 +1301,8 @@ public: } } - switch (victimClass) { + switch (victimClass) + { case CLASS_DRUID: if (uiTimer[1] <= diff) { @@ -1411,13 +1403,12 @@ public: } DoMeleeAttackIfReady(); break; - } - sLog->outDebug(LOG_FILTER_TSCR, "Sinister-Timer"); - for (uint8 i = 0; i < 3; ++i) - uiTimer[i] -= diff; } + sLog->outDebug(LOG_FILTER_TSCR, "Sinister-Timer"); + for (uint8 i = 0; i < 3; ++i) + uiTimer[i] -= diff; + } }; - }; void AddSC_boss_kiljaeden() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index c00ab84b567..9fd0a5eb5d8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -199,7 +199,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_muru : public CreatureScript @@ -364,7 +363,6 @@ public: } } }; - }; class npc_muru_portal : public CreatureScript @@ -448,7 +446,6 @@ public: } else SummonTimer -= diff; } }; - }; class npc_dark_fiend : public CreatureScript @@ -500,7 +497,6 @@ public: } else { - if (me->IsWithinDist(me->getVictim(), 5)) { DoCastAOE(SPELL_DARKFIEND_AOE, false); @@ -511,7 +507,6 @@ public: } else WaitTimer -= diff; } }; - }; class npc_void_sentinel : public CreatureScript @@ -567,7 +562,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class npc_blackhole : public CreatureScript @@ -646,7 +640,6 @@ public: else DespawnTimer -= diff; } }; - }; void AddSC_boss_muru() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 6324c5adf16..bea73837304 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -134,8 +134,9 @@ public: return player; } } + else + sLog->outDebug(LOG_FILTER_TSCR, "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!"); - sLog->outDebug(LOG_FILTER_TSCR, "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!"); return NULL; } @@ -281,7 +282,7 @@ public: return stream.str(); } - void Load(const char* in) + void Load(char const* in) { if (!in) { @@ -299,7 +300,6 @@ public: OUT_LOAD_INST_DATA_COMPLETE; } }; - }; void AddSC_instance_sunwell_plateau() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index ee988accbac..1c91d78cd29 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -129,7 +129,6 @@ public: } else CheckTimer -= diff; } }; - }; /* This script is merely a placeholder for the Doomfire that triggers Doomfire spell. It will @@ -220,7 +219,6 @@ public: } else ChangeTargetTimer -= diff; } }; - }; /* Finally, Archimonde's script. His script isn't extremely complex, most are simply spells on timers. @@ -315,8 +313,8 @@ public: { Talk(SAY_SLAY); - if (victim && (victim->GetTypeId() == TYPEID_PLAYER)) - GainSoulCharge(CAST_PLR(victim)); + if (victim && victim->GetTypeId() == TYPEID_PLAYER) + GainSoulCharge(victim->ToPlayer()); } void GainSoulCharge(Player* victim) @@ -360,13 +358,13 @@ public: if (victim && me->IsWithinDistInMap(victim, me->GetAttackDistance(victim))) return false; - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - if (m_threatlist.empty()) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + if (threatlist.empty()) return false; std::list<Unit*> targets; - std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); - for (; itr != m_threatlist.end(); ++itr) + ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); + for (; itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit && unit->isAlive()) @@ -637,13 +635,8 @@ public: DoMeleeAttackIfReady(); } - - void WaypointReached(uint32 /*waypointId*/) - { - - } + void WaypointReached(uint32 /*waypointId*/) { } }; - }; void AddSC_boss_archimonde() diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp index ec098951c03..3b431d55a2c 100644 --- a/src/server/scripts/Kalimdor/boss_azuregos.cpp +++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp @@ -90,9 +90,9 @@ public: if (TeleportTimer <= diff) { DoScriptText(SAY_TELEPORT, me); - std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); - std::list<HostileReference*>::const_iterator i = threatlist.begin(); - for (i = threatlist.begin(); i!= threatlist.end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -158,7 +158,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_azuregos() diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 10b40b490c4..c88377da3f3 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -59,7 +59,8 @@ enum Yells SAY_REQUEST_AID = -1533103, //start of phase 3 SAY_ANSWER_REQUEST = -1533104 //lich king answer }; -enum Event + +enum Events { EVENT_NONE, EVENT_BOLT, @@ -607,13 +608,17 @@ public: case EVENT_DETONATE: { std::vector<Unit*> unitList; - std::list<HostileReference*> *threatList = &me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = threatList->begin(); itr != threatList->end(); ++itr) + ThreatContainer::StorageType const &threatList = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) { - if ((*itr)->getTarget()->GetTypeId() == TYPEID_PLAYER - && (*itr)->getTarget()->getPowerType() == POWER_MANA - && (*itr)->getTarget()->GetPower(POWER_MANA)) - unitList.push_back((*itr)->getTarget()); + Unit * const target = (*itr)->getTarget(); + + if (target->GetTypeId() == TYPEID_PLAYER + && target->getPowerType() == POWER_MANA + && target->GetPower(POWER_MANA)) + { + unitList.push_back(target); + } } if (!unitList.empty()) @@ -654,7 +659,6 @@ public: { return new boss_kelthuzadAI (creature); } - }; class at_kelthuzad_center : public AreaTriggerScript diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 9f5eb8d879a..28f73ed14b0 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -305,8 +305,8 @@ public: summons.DespawnAll(); // players that used Hover Disk are no in the aggro list me->SetInCombatWithZone(); - std::list<HostileReference*> &m_threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) + ThreatContainer::StorageType const& m_threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) { if (Unit* target = (*itr)->getTarget()) { @@ -683,8 +683,8 @@ class spell_malygos_vortex_visual : public SpellScriptLoader { if (Unit* caster = GetCaster()) { - std::list<HostileReference*> &m_threatlist = caster->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) + ThreatContainer::StorageType const& m_threatlist = caster->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = m_threatlist.begin(); itr!= m_threatlist.end(); ++itr) { if (Unit* target = (*itr)->getTarget()) { diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 4f8fc917424..0f3bcce6493 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -80,8 +80,8 @@ public: void SonicBoomEffect() { - std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (target && target->GetTypeId() == TYPEID_PLAYER) @@ -165,8 +165,8 @@ public: // Thundering Storm if (ThunderingStorm_Timer <= diff) { - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i) if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid())) if (target->isAlive() && !me->IsWithinDist(target, 35, false)) DoCast(target, SPELL_THUNDERING_STORM, true); @@ -188,8 +188,8 @@ public: return; if (!me->IsWithinMeleeRange(me->getVictim())) { - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i) if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid())) if (target->isAlive() && me->IsWithinMeleeRange(target)) { @@ -201,7 +201,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_murmur() diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 6fd6f61c061..f812b1b35cd 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -46,9 +46,9 @@ EndScriptData */ #define SOUND_AKAMA_LEAVE 11390 // Self explanatory -const char* SAY_KILL1 = "Who shall be next to taste my blades?!"; +char const* SAY_KILL1 = "Who shall be next to taste my blades?!"; #define SOUND_KILL1 11473 -const char* SAY_KILL2 = "This is too easy!"; +char const* SAY_KILL2 = "This is too easy!"; #define SOUND_KILL2 11472 // I think I'll fly now and let my subordinates take you on @@ -254,7 +254,6 @@ struct Yells }; static const Yells Conversation[22] = - { {11463, "Akama... your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.", ILLIDAN_STORMRAGE, 8000, 0, true}, {0, "", ILLIDAN_STORMRAGE, 5000, 396, true}, @@ -464,7 +463,6 @@ public: DoMeleeAttackIfReady(); } }; - }; /************************************** Illidan's AI* **************************************/ @@ -614,7 +612,8 @@ public: void DeleteFromThreatList(uint64 TargetGUID) { - for (std::list<HostileReference*>::const_iterator itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr) + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { if ((*itr)->getUnitGuid() == TargetGUID) { @@ -1151,7 +1150,6 @@ public: } } }; - }; /********************************** End of Illidan AI* *****************************************/ @@ -1378,7 +1376,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class npc_akama_illidan : public CreatureScript @@ -1491,9 +1488,9 @@ public: void KillAllElites() { - std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const &threatList = me->getThreatManager().getThreatList(); std::vector<Unit*> eliteList; - for (std::list<HostileReference*>::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit && unit->GetEntry() == ILLIDARI_ELITE) @@ -1649,7 +1646,8 @@ public: void HandleChannelSequence() { - Unit* Channel = NULL, *Spirit[2] = { NULL, NULL }; + Unit* Channel = NULL; + Unit* Spirit[2] = { NULL, NULL }; if (ChannelCount <= 5) { Channel = Unit::GetUnit(*me, ChannelGUID); @@ -1840,7 +1838,6 @@ public: { return new npc_akama_illidanAI(creature); } - }; void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() @@ -2000,7 +1997,6 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTalkSequence() Akama->SetPosition(x, y, z, 0.0f); Akama->MonsterMoveWithSpeed(x, y, z, 0); // Illidan must not die until Akama arrives. Akama->GetMotionMaster()->MoveChase(me); - } } break; @@ -2194,7 +2190,6 @@ public: me->SetDisplayId(21431);// appear when hit by Illidan's glaive } }; - }; class mob_parasitic_shadowfiend : public CreatureScript 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 ec9e4e116bf..5ab9dcab667 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -128,7 +128,6 @@ public: void JustDied(Unit* /*killer*/); }; - }; class boss_reliquary_of_souls : public CreatureScript @@ -233,9 +232,8 @@ public: if (!target) return; - std::list<HostileReference*>& m_threatlist = target->getThreatManager().getThreatList(); - std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); - for (; itr != m_threatlist.end(); ++itr) + ThreatContainer::StorageType threatlist = target->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit) @@ -376,7 +374,6 @@ public: } else Timer -= diff; } }; - }; void npc_enslaved_soul::npc_enslaved_soulAI::JustDied(Unit* /*killer*/) @@ -453,12 +450,12 @@ public: void CastFixate() { - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - if (m_threatlist.empty()) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + if (threatlist.empty()) return; // No point continuing if empty threatlist. std::list<Unit*> targets; - std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); - for (; itr != m_threatlist.end(); ++itr) + ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); + for (; itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players @@ -511,7 +508,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_essence_of_desire : public CreatureScript @@ -615,7 +611,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class boss_essence_of_anger : public CreatureScript @@ -716,7 +711,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_reliquary_of_souls() diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index e34a229eea5..77d1c86951b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -78,7 +78,6 @@ public: me->CastSpell(me, SPELL_MOLTEN_FLAME, true); } }; - }; class boss_supremus : public CreatureScript @@ -183,9 +182,9 @@ public: uint32 health = 0; Unit* target = NULL; - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); - for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && me->IsWithinMeleeRange(unit)) @@ -258,7 +257,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class npc_volcano : public CreatureScript @@ -303,9 +301,7 @@ public: } else wait -= diff; } - }; - }; void AddSC_boss_supremus() diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 524992b3c44..9a200d07d2b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -169,12 +169,12 @@ public: void CheckPlayers() { - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - if (m_threatlist.empty()) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + if (threatlist.empty()) return; // No threat list. Don't continue. - std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); + ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); std::list<Unit*> targets; - for (; itr != m_threatlist.end(); ++itr) + for (; itr != threatlist.end(); ++itr) { Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (unit && unit->isAlive()) @@ -207,7 +207,6 @@ public: } else CheckTeronTimer -= diff; } }; - }; class boss_teron_gorefiend : public CreatureScript @@ -317,20 +316,20 @@ public: return coord; } - void SetThreatList(Creature* Blossom) + void SetThreatList(Creature* blossom) { - if (!Blossom) + if (!blossom) return; - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); - for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && unit->isAlive()) { float threat = DoGetThreat(unit); - Blossom->AddThreat(unit, threat); + blossom->AddThreat(unit, threat); } } } @@ -344,26 +343,26 @@ public: /** WHAT IS FULLY NECESSARY FOR GOREFIEND TO BE 100% COMPLETE *****/ /************************************************************************/ - Unit* Ghost = NULL; + Unit* ghost = NULL; if (GhostGUID) - Ghost = Unit::GetUnit(*me, GhostGUID); - if (Ghost && Ghost->isAlive() && Ghost->HasAura(SPELL_SHADOW_OF_DEATH)) + ghost = Unit::GetUnit(*me, GhostGUID); + if (ghost && ghost->isAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH)) { /*float x, y, z; - Ghost->GetPosition(x, y, z); + ghost->GetPosition(x, y, z); Creature* control = me->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000); if (control) { - CAST_PLR(Ghost)->Possess(control); - Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, + CAST_PLR(ghost)->Possess(control); + ghost->DealDamage(ghost, ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); }*/ for (uint8 i = 0; i < 4; ++i) { Creature* Construct = NULL; - float X = CalculateRandomLocation(Ghost->GetPositionX(), 10); - float Y = CalculateRandomLocation(Ghost->GetPositionY(), 10); - Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, Ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); + float X = CalculateRandomLocation(ghost->GetPositionX(), 10); + float Y = CalculateRandomLocation(ghost->GetPositionY(), 10); + Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); if (Construct) { Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true); @@ -511,7 +510,6 @@ public: DoMeleeAttackIfReady(); } }; - }; void AddSC_boss_teron_gorefiend() 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 81e03a19c1f..9b739a1a6ac 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 @@ -171,7 +171,6 @@ public: DoMeleeAttackIfReady(); } }; - }; //Original Leotheras the Blind AI @@ -263,7 +262,6 @@ public: Creature* binder = me->SummonCreature(MOB_SPELLBINDER, nx, ny, z, o, TEMPSUMMON_DEAD_DESPAWN, 0); if (binder) SpellBinderGUID[i] = binder->GetGUID(); - } } void MoveInLineOfSight(Unit* who) @@ -525,9 +523,9 @@ public: //Summon Inner Demon if (InnerDemons_Timer <= diff) { - std::list<HostileReference*>& ThreatList = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const & ThreatList = me->getThreatManager().getThreatList(); std::vector<Unit*> TargetList; - for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr) + for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr) { Unit* tempTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid()); if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->getVictim()->GetGUID() && TargetList.size()<5) @@ -602,7 +600,6 @@ public: } } }; - }; //Leotheras the Blind Demon Form AI @@ -812,7 +809,6 @@ public: void JustDied(Unit* /*killer*/) {} }; - }; void AddSC_boss_leotheras_the_blind() diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index f60cc1d188c..29c87e57c83 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -176,7 +176,7 @@ struct advisorbase_ai : public ScriptedAI //reset encounter if (instance && (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3)) - if (Creature* Kaelthas = Unit::GetCreature((*me), instance->GetData64(DATA_KAELTHAS))) + if (Creature* Kaelthas = Unit::GetCreature(*me, instance->GetData64(DATA_KAELTHAS))) Kaelthas->AI()->EnterEvadeMode(); } @@ -344,7 +344,7 @@ class boss_kaelthas : public CreatureScript { for (uint8 i = 0; i < MAX_ADVISORS; ++i) { - if (Creature* creature = Unit::GetCreature((*me), m_auiAdvisorGuid[i])) + if (Creature* creature = Unit::GetCreature(*me, m_auiAdvisorGuid[i])) { creature->Respawn(); creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -379,7 +379,6 @@ class boss_kaelthas : public CreatureScript if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) AttackStart(target); - } else { @@ -499,7 +498,7 @@ class boss_kaelthas : public CreatureScript case 1: if (Phase_Timer <= diff) { - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0])); if (Advisor) { @@ -517,7 +516,7 @@ class boss_kaelthas : public CreatureScript //Subphase 2 - Start case 2: - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0])); if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { @@ -533,7 +532,7 @@ class boss_kaelthas : public CreatureScript case 3: if (Phase_Timer <= diff) { - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1])); if (Advisor) { @@ -551,7 +550,7 @@ class boss_kaelthas : public CreatureScript //Subphase 3 - Start case 4: - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1])); if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { @@ -567,7 +566,7 @@ class boss_kaelthas : public CreatureScript case 5: if (Phase_Timer <= diff) { - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2])); if (Advisor) { @@ -585,7 +584,7 @@ class boss_kaelthas : public CreatureScript //Subphase 4 - Start case 6: - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2])); if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { @@ -601,7 +600,7 @@ class boss_kaelthas : public CreatureScript case 7: if (Phase_Timer <= diff) { - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3])); if (Advisor) { @@ -620,7 +619,7 @@ class boss_kaelthas : public CreatureScript //End of phase 1 case 8: - Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3])); + Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3])); if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { @@ -691,7 +690,7 @@ class boss_kaelthas : public CreatureScript Creature* Advisor; for (uint8 i = 0; i < MAX_ADVISORS; ++i) { - Advisor = Unit::GetCreature((*me), m_auiAdvisorGuid[i]); + Advisor = Unit::GetCreature(*me, m_auiAdvisorGuid[i]); if (!Advisor) sLog->outError(LOG_FILTER_TSCR, "SD2: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i); @@ -787,7 +786,7 @@ class boss_kaelthas : public CreatureScript if (me->getThreatManager().getThreatList().size() >= 2) for (uint32 i = 0; i < 3; ++i) { - sLog->outDebug(LOG_FILTER_TSCR, "SD2: Kael'Thas mind control not supported."); + sLog->outDebug(LOG_FILTER_TSCR, "Kael'Thas mind control not supported."); //DoCast(unit, SPELL_MIND_CONTROL); } @@ -879,11 +878,12 @@ class boss_kaelthas : public CreatureScript //Phase 5 if (Phase == 6) { - //GravityLapse_Timer if (GravityLapse_Timer <= diff) { - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); + ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType::const_iterator i = threatlist.begin(); + switch (GravityLapse_Phase) { case 0: @@ -894,7 +894,7 @@ class boss_kaelthas : public CreatureScript me->MonsterMoveWithSpeed(afGravityPos[0], afGravityPos[1], afGravityPos[2], 0); // 1) Kael'thas will portal the whole raid right into his body - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + for (i = threatlist.begin(); i != threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -915,7 +915,7 @@ class boss_kaelthas : public CreatureScript DoScriptText(RAND(SAY_GRAVITYLAPSE1, SAY_GRAVITYLAPSE2), me); // 2) At that point he will put a Gravity Lapse debuff on everyone - for (i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i) + for (i = threatlist.begin(); i != threatlist.end(); ++i) { if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) { @@ -948,7 +948,7 @@ class boss_kaelthas : public CreatureScript case 3: //Remove flight - for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) + for (i = threatlist.begin(); i != threatlist.end(); ++i) { if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) { @@ -1287,8 +1287,8 @@ class boss_grand_astromancer_capernian : public CreatureScript { bool InMeleeRange = false; Unit* target = NULL; - std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i!= m_threatlist.end(); ++i) + ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i!= threatlist.end(); ++i) { Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); //if in melee range |