aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/AI/CoreAI/UnitAI.h18
-rwxr-xr-xsrc/server/game/AI/CreatureAI.h12
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp14
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp344
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.h33
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp4
7 files changed, 222 insertions, 205 deletions
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h
index 9246bbd3e34..f64f25250c2 100755
--- a/src/server/game/AI/CoreAI/UnitAI.h
+++ b/src/server/game/AI/CoreAI/UnitAI.h
@@ -49,9 +49,9 @@ enum SelectAggroTarget
};
// default predicate function to select target based on distance, player and/or aura criteria
-struct DefaultTargetSelector : public std::unary_function<Unit *, bool>
+struct DefaultTargetSelector : public std::unary_function<Unit* , bool>
{
- const Unit *me;
+ const Unit* me;
float m_dist;
bool m_playerOnly;
int32 m_aura;
@@ -60,9 +60,9 @@ 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(const Unit *pUnit, float dist, bool playerOnly, int32 aura) : me(pUnit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) {}
+ DefaultTargetSelector(Unit const* pUnit, float dist, bool playerOnly, int32 aura) : me(pUnit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) {}
- bool operator() (const Unit *pTarget)
+ bool operator() (Unit const* pTarget)
{
if (!me)
return false;
@@ -125,10 +125,10 @@ class UnitAI
Unit* SelectTarget(SelectAggroTarget targetType, uint32 position = 0, float dist = 0.0f, bool playerOnly = false, int32 aura = 0);
// Select the targets satifying the predicate.
- // predicate shall extend std::unary_function<Unit *, bool>
+ // predicate shall extend std::unary_function<Unit* , bool>
template <class PREDICATE> Unit* SelectTarget(SelectAggroTarget targetType, uint32 position, PREDICATE predicate)
{
- const std::list<HostileReference *> &threatlist = me->getThreatManager().getThreatList();
+ const std::list<HostileReference* > &threatlist = me->getThreatManager().getThreatList();
if (position >= threatlist.size())
return NULL;
@@ -175,7 +175,7 @@ class UnitAI
void SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAggroTarget targetType, float dist = 0.0f, bool playerOnly = false, int32 aura = 0);
// Select the targets satifying the predicate.
- // predicate shall extend std::unary_function<Unit *, bool>
+ // predicate shall extend std::unary_function<Unit* , bool>
template <class PREDICATE> void SelectTargetList(std::list<Unit*> &targetList, PREDICATE predicate, uint32 maxTargets, SelectAggroTarget targetType)
{
std::list<HostileReference*> const& threatlist = me->getThreatManager().getThreatList();
@@ -229,7 +229,7 @@ class UnitAI
void DoMeleeAttackIfReady();
bool DoSpellAttackIfReady(uint32 spell);
- static AISpellInfoType *AISpellInfo;
+ static AISpellInfoType* AISpellInfo;
static void FillAISpellInfo();
virtual void sGossipHello(Player* /*player*/) {}
@@ -247,7 +247,7 @@ class PlayerAI : public UnitAI
protected:
Player* const me;
public:
- explicit PlayerAI(Player *p) : UnitAI((Unit*)p), me(p) {}
+ explicit PlayerAI(Player* p) : UnitAI((Unit*)p), me(p) {}
void OnCharmed(bool apply);
};
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h
index e266ce14e80..db7442df3ca 100755
--- a/src/server/game/AI/CreatureAI.h
+++ b/src/server/game/AI/CreatureAI.h
@@ -74,8 +74,8 @@ class CreatureAI : public UnitAI
void SetGazeOn(Unit* target);
Creature* DoSummon(uint32 entry, Position const& pos, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
- Creature* DoSummon(uint32 entry, WorldObject *obj, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
- Creature* DoSummonFlyer(uint32 entry, WorldObject *obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
+ Creature* DoSummon(uint32 entry, WorldObject* obj, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
+ Creature* DoSummonFlyer(uint32 entry, WorldObject* obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
public:
void Talk(uint8 id, uint64 WhisperGuid = 0);
@@ -85,7 +85,7 @@ class CreatureAI : public UnitAI
/// == Reactions At =================================
- // Called if IsVisible(Unit *who) is true at each *who move, reaction at visibility zone enter
+ // Called if IsVisible(Unit* who) is true at each who move, reaction at visibility zone enter
void MoveInLineOfSight_Safe(Unit* who);
// Called in Creature::Update when deathstate = DEAD. Inherited classes may maniuplate the ability to respawn based on scripted events.
@@ -131,7 +131,7 @@ class CreatureAI : public UnitAI
void OnCharmed(bool apply);
- //virtual void SpellClick(Player *player) {}
+ //virtual void SpellClick(Player* player) {}
// Called at reaching home after evade
virtual void JustReachedHome() {}
@@ -145,7 +145,7 @@ class CreatureAI : public UnitAI
// Called when creature attack expected (if creature can and no have current victim)
// Note: for reaction at hostile action must be called AttackedBy function.
- //virtual void AttackStart(Unit *) {}
+ //virtual void AttackStart(Unit* ) {}
// Called at World update tick
//virtual void UpdateAI(const uint32 /*diff*/) {}
@@ -153,7 +153,7 @@ class CreatureAI : public UnitAI
/// == State checks =================================
// Is unit visible for MoveInLineOfSight
- //virtual bool IsVisible(Unit *) const { return false; }
+ //virtual bool IsVisible(Unit* ) const { return false; }
// called when the corpse of this creature gets removed
virtual void CorpseRemoved(uint32& /*respawnDelay*/) {}
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
index 2c34b5bad74..d60e5defa33 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -294,7 +294,7 @@ class BossAI : public ScriptedAI
};
// SD2 grid searchers.
-Creature *GetClosestCreatureWithEntry(WorldObject* source, uint32 entry, float maxSearchRange, bool alive = true);
+Creature* GetClosestCreatureWithEntry(WorldObject* source, uint32 entry, float maxSearchRange, bool alive = true);
GameObject* GetClosestGameObjectWithEntry(WorldObject* source, uint32 entry, float maxSearchRange);
void GetCreatureListWithEntryInGrid(std::list<Creature*>& list, WorldObject* source, uint32 entry, float maxSearchRange);
void GetGameObjectListWithEntryInGrid(std::list<GameObject*>& list, WorldObject* source, uint32 entry, float maxSearchRange);
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index c88494f9c4b..4186f5e7565 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -32,7 +32,7 @@
#include "SmartAI.h"
#include "ScriptPCH.h"
-SmartAI::SmartAI(Creature *c) : CreatureAI(c)
+SmartAI::SmartAI(Creature* c) : CreatureAI(c)
{
// copy script to local (protection for table reload)
@@ -222,11 +222,11 @@ void SmartAI::EndPath(bool fail)
if(fail && plr->GetQuestStatus(mEscortQuestID) == QUEST_STATUS_INCOMPLETE)
plr->FailQuest(mEscortQuestID);
- if (Group *pGroup = plr->GetGroup())
+ if (Group* pGroup = plr->GetGroup())
{
- for (GroupReference *gr = pGroup->GetFirstMember(); gr != NULL; gr = gr->next())
+ for (GroupReference* gr = pGroup->GetFirstMember(); gr != NULL; gr = gr->next())
{
- Player *pGroupGuy = gr->getSource();
+ Player* pGroupGuy = gr->getSource();
if(!fail && pGroupGuy->IsAtGroupRewardDistance(me) && !pGroupGuy->GetCorpse())
pGroupGuy->AreaExploredOrEventHappens(mEscortQuestID);
@@ -390,11 +390,11 @@ bool SmartAI::IsEscortInvokerInRange()
if (me->GetDistance(plr) <= SMART_ESCORT_MAX_PLAYER_DIST)
return true;
- if (Group *pGroup = plr->GetGroup())
+ if (Group* pGroup = plr->GetGroup())
{
- for (GroupReference *gr = pGroup->GetFirstMember(); gr != NULL; gr = gr->next())
+ for (GroupReference* gr = pGroup->GetFirstMember(); gr != NULL; gr = gr->next())
{
- Player *pGroupGuy = gr->getSource();
+ Player* pGroupGuy = gr->getSource();
if (me->GetDistance(pGroupGuy) <= SMART_ESCORT_MAX_PLAYER_DIST)
return true;
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 3fda7ebbe26..91e34d83a5c 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -104,7 +104,7 @@ void SmartScript::ProcessEventsFor(SMART_EVENT e, Unit* unit, uint32 var0, uint3
}
}
-void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, uint32 var1, bool bvar, const SpellEntry* spell, GameObject* gob)
+void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, uint32 var1, bool bvar, const SpellEntry* spell, GameObject* gob)
{
//calc random
if (e.GetEventType() != SMART_EVENT_LINK && e.event.event_chance < 100 && e.event.event_chance)
@@ -138,7 +138,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
talker = me;
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature((*itr)))
{
@@ -155,10 +155,8 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
mTextGUID = IsPlayer(GetLastInvoker()) ? GetLastInvoker()->GetGUID() : NULL;//invoker, used for $vars in texts
mUseTextTimer = true;
sCreatureTextMgr->SendChat(talker, uint8(e.action.talk.textGroupID), mTextGUID);
-
sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_TALK: talker: %s (GuidLow: %u), textGuid: %u",
talker->GetName(), talker->GetGUIDLow(), mTextGUID);
-
break;
}
case SMART_ACTION_SIMPLE_TALK:
@@ -166,7 +164,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature((*itr)))
sCreatureTextMgr->SendChat((*itr)->ToCreature(), uint8(e.action.talk.textGroupID), IsPlayer(GetLastInvoker())? GetLastInvoker()->GetGUID() : NULL);
@@ -188,7 +186,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit((*itr)))
{
(*itr)->ToUnit()->HandleEmoteCommand(e.action.emote.emote);
@@ -205,7 +203,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature((*itr)))
{
@@ -224,7 +222,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature((*itr)))
{
@@ -258,7 +256,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsCreature((*itr)))
continue;
@@ -300,7 +298,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsPlayer((*itr)))
{
@@ -318,7 +316,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsPlayer((*itr)))
if (const Quest* q = sObjectMgr->GetQuestTemplate(e.action.quest.quest))
@@ -338,7 +336,6 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
return;
me->SetReactState(ReactStates(e.action.react.state));
-
sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SET_REACT_STATE: Creature guidLow %u set reactstate %u",
me->GetGUIDLow(), e.action.react.state);
break;
@@ -366,7 +363,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
}
}
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -406,7 +403,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -425,7 +422,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsPlayer((*itr)))
{
@@ -447,7 +444,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsPlayer((*itr)))
{
@@ -469,7 +466,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -495,7 +492,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -517,7 +514,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -536,7 +533,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsGameObject((*itr)))
{
@@ -556,7 +553,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsGameObject((*itr)))
{
@@ -575,7 +572,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -593,7 +590,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -612,7 +609,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -657,7 +654,6 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
{
IncPhase(e.action.incEventPhase.inc);
DecPhase(e.action.incEventPhase.dec);
-
sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_INC_EVENT_PHASE: Creature %u inc event phase by %u, "
"decrease by %u", me->GetGUIDLow(), e.action.incEventPhase.inc, e.action.incEventPhase.dec);
break;
@@ -699,7 +695,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsPlayer((*itr)))
{
@@ -718,7 +714,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsUnit((*itr)))
continue;
@@ -740,7 +736,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit((*itr)))
{
@@ -803,7 +799,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsPlayer((*itr)))
continue;
@@ -937,7 +933,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if(!IsUnit((*itr))) continue;
if (e.action.morphOrMount.creature || e.action.morphOrMount.model)
@@ -964,8 +960,8 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
{
if (!GetBaseObject())
return;
- if (e.action.invincHP.minHP)
- mInvinceabilityHpLevel = me->CountPctFromMaxHealth(e.action.invincHP.minHP);
+ if (e.action.invincHP.percent)
+ mInvinceabilityHpLevel = me->CountPctFromMaxHealth(e.action.invincHP.percent);
else
mInvinceabilityHpLevel = e.action.invincHP.minHP;
break;
@@ -976,11 +972,11 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
- if (IsCreature((*itr)))
+ if (IsCreature(*itr))
(*itr)->ToCreature()->AI()->SetData(e.action.setData.field, e.action.setData.data);
- else if (IsGameObject((*itr)))
+ else if (IsGameObject(*itr))
(*itr)->ToGameObject()->AI()->SetData(e.action.setData.field, e.action.setData.data);
}
@@ -1017,7 +1013,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit(*itr))
{
@@ -1037,7 +1033,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsUnit(*itr))
continue;
@@ -1068,7 +1064,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsUnit(*itr))
continue;
@@ -1091,7 +1087,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsUnit(*itr))
continue;
@@ -1113,7 +1109,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsPlayer(*itr))
continue;
@@ -1130,7 +1126,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsPlayer(*itr))
continue;
@@ -1160,7 +1156,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsPlayer(*itr))
continue;
@@ -1257,10 +1253,11 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (!IsPlayer(*itr))
continue;
+
(*itr)->ToPlayer()->SendMovieStart(e.action.movie.entry);
}
@@ -1282,7 +1279,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature(*itr))
(*itr)->ToCreature()->Respawn();
@@ -1299,7 +1296,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsPlayer(*itr))
(*itr)->ToPlayer()->PlayerTalkClass->CloseGossip();
@@ -1312,14 +1309,14 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if(Creature* npc = (*itr)->ToCreature())
{
uint32 slot[3];
if (e.action.equip.entry)
{
- EquipmentInfo const *einfo = sObjectMgr->GetEquipmentInfo(e.action.equip.entry);
+ EquipmentInfo const* einfo = sObjectMgr->GetEquipmentInfo(e.action.equip.entry);
if (!einfo)
{
sLog->outErrorDb("SmartScript: SMART_ACTION_EQUIP uses non-existent equipment info entry %u", e.action.equip.entry);
@@ -1389,7 +1386,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature(*itr))
{
@@ -1435,7 +1432,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsUnit(*itr) && (*itr)->ToUnit()->GetVehicleKit())
{
@@ -1459,7 +1456,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (Creature* target = (*itr)->ToCreature())
{
@@ -1483,7 +1480,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->SetUInt32Value(UNIT_NPC_FLAGS, e.action.unitFlag.flag);
@@ -1496,7 +1493,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->SetFlag(UNIT_NPC_FLAGS, e.action.unitFlag.flag);
@@ -1509,7 +1506,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->RemoveFlag(UNIT_NPC_FLAGS, e.action.unitFlag.flag);
@@ -1529,7 +1526,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
return;
}
- for (ObjectList::const_iterator itr = casters->begin(); itr != casters->end(); itr++)
+ for (ObjectList::const_iterator itr = casters->begin(); itr != casters->end(); ++itr)
{
if (IsUnit(*itr))
{
@@ -1576,7 +1573,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (Creature* target = (*itr)->ToCreature())
{
@@ -1606,7 +1603,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (targets)
{
- for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (Creature* target = (*itr)->ToCreature())
{
@@ -1629,7 +1626,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsPlayer(*itr))
(*itr)->ToPlayer()->ActivateTaxiPathTo(e.action.taxi.id);
@@ -1642,7 +1639,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature((*itr)))
{
@@ -1661,7 +1658,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->SetByteFlag(UNIT_FIELD_BYTES_1, 0, e.action.setunitByte.byte1);
@@ -1673,7 +1670,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
ObjectList* targets = GetTargets(e, unit);
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->RemoveByteFlag(UNIT_FIELD_BYTES_1, 0, e.action.delunitByte.byte1);
@@ -1686,7 +1683,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsUnit(*itr))
(*itr)->ToUnit()->InterruptNonMeleeSpells(e.action.interruptSpellCasting.withDelayed, e.action.interruptSpellCasting.spell_id, e.action.interruptSpellCasting.withInstant);
@@ -1699,7 +1696,7 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
if (!targets)
return;
- for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++)
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsGameObject(*itr))
(*itr)->ToGameObject()->SendCustomAnim(e.action.sendGoCustomAnim.anim);
@@ -1871,7 +1868,7 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder e, Unit* invoker)
{
l->push_back(trigger);
if (Player* plr = trigger->ToPlayer())
- if (Group *pGroup = plr->GetGroup())
+ if (Group* pGroup = plr->GetGroup())
for (GroupReference* groupRef = pGroup->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next())
if (Player* member = groupRef->getSource())
l->push_back(member);
@@ -2015,7 +2012,7 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder e, Unit* invoker)
{
// will always return a valid pointer, even if empty list
ObjectList* units = GetWorldObjectsInDist((float)e.target.playerDistance.dist);
- for (ObjectList::const_iterator itr = units->begin(); itr != units->end(); itr++)
+ for (ObjectList::const_iterator itr = units->begin(); itr != units->end(); ++itr)
if (IsPlayer(*itr))
l->push_back(*itr);
@@ -2089,7 +2086,7 @@ ObjectList* SmartScript::GetWorldObjectsInDist(float dist)
return targets;
}
-void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, uint32 var1, bool bvar, const SpellEntry* spell, GameObject* gob)
+void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, uint32 var1, bool bvar, const SpellEntry* spell, GameObject* gob)
{
if (!e.active && e.GetEventType() != SMART_EVENT_LINK)
return;
@@ -2120,68 +2117,68 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
ProcessAction(e);
break;
case SMART_EVENT_HEALT_PCT:
- {
- if (!me || !me->isInCombat() || !me->GetMaxHealth())
- return;
- uint32 perc = (uint32)me->GetHealthPct();
- if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
- return;
- RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
- ProcessAction(e);
- break;
- }
+ {
+ if (!me || !me->isInCombat() || !me->GetMaxHealth())
+ return;
+ uint32 perc = (uint32)me->GetHealthPct();
+ if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
+ return;
+ RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
+ ProcessAction(e);
+ break;
+ }
case SMART_EVENT_TARGET_HEALTH_PCT:
- {
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxHealth())
- return;
- uint32 perc = (uint32)me->getVictim()->GetHealthPct();
- if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
- return;
- RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
- ProcessAction(e, me->getVictim());
- break;
- }
+ {
+ if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxHealth())
+ return;
+ uint32 perc = (uint32)me->getVictim()->GetHealthPct();
+ if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
+ return;
+ RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
+ ProcessAction(e, me->getVictim());
+ break;
+ }
case SMART_EVENT_MANA_PCT:
- {
- if (!me || !me->isInCombat() || !me->GetMaxPower(POWER_MANA))
- return;
- uint32 perc = uint32(100.0f * me->GetPower(POWER_MANA) / me->GetMaxPower(POWER_MANA));
- if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
- return;
- RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
- ProcessAction(e);
- break;
- }
+ {
+ if (!me || !me->isInCombat() || !me->GetMaxPower(POWER_MANA))
+ return;
+ uint32 perc = uint32(100.0f * me->GetPower(POWER_MANA) / me->GetMaxPower(POWER_MANA));
+ if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
+ return;
+ RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
+ ProcessAction(e);
+ break;
+ }
case SMART_EVENT_TARGET_MANA_PCT:
- {
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxPower(POWER_MANA))
- return;
- uint32 perc = uint32(100.0f * me->getVictim()->GetPower(POWER_MANA) / me->getVictim()->GetMaxPower(POWER_MANA));
- if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
- return;
- RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
- ProcessAction(e, me->getVictim());
- break;
- }
+ {
+ if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->GetMaxPower(POWER_MANA))
+ return;
+ uint32 perc = uint32(100.0f * me->getVictim()->GetPower(POWER_MANA) / me->getVictim()->GetMaxPower(POWER_MANA));
+ if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
+ return;
+ RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
+ ProcessAction(e, me->getVictim());
+ break;
+ }
case SMART_EVENT_RANGE:
- {
- if (!me || !me->isInCombat() || !me->getVictim())
- return;
+ {
+ if (!me || !me->isInCombat() || !me->getVictim())
+ return;
- if (me->IsInRange(me->getVictim(), (float)e.event.minMaxRepeat.min, (float)e.event.minMaxRepeat.max))
- {
- ProcessAction(e, me->getVictim());
- RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
- }
- break;
- }
- case SMART_EVENT_TARGET_CASTING:
+ if (me->IsInRange(me->getVictim(), (float)e.event.minMaxRepeat.min, (float)e.event.minMaxRepeat.max))
{
- if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->IsNonMeleeSpellCasted(false, false, true))
- return;
ProcessAction(e, me->getVictim());
- RecalcTimer(e, e.event.minMax.repeatMin, e.event.minMax.repeatMax);
+ RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
}
+ break;
+ }
+ case SMART_EVENT_TARGET_CASTING:
+ {
+ if (!me || !me->isInCombat() || !me->getVictim() || !me->getVictim()->IsNonMeleeSpellCasted(false, false, true))
+ return;
+ ProcessAction(e, me->getVictim());
+ RecalcTimer(e, e.event.minMax.repeatMin, e.event.minMax.repeatMax);
+ }
case SMART_EVENT_FRIENDLY_HEALTH:
{
if (!me || !me->isInCombat())
@@ -2220,7 +2217,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_HAS_AURA:
{
- if (!me) return;
+ if (!me)
+ return;
uint32 count = me->GetAuraCount(e.event.aura.spell);
if ((!e.event.aura.count && !count) || (e.event.aura.count && count >= e.event.aura.count))
{
@@ -2231,8 +2229,10 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_TARGET_BUFFED:
{
- if (!me || !me->getVictim()) return;
- if (!me) return;
+ if (!me || !me->getVictim())
+ return;
+ if (!me)
+ return;
uint32 count = me->getVictim()->GetAuraCount(e.event.aura.spell);
if (count < e.event.aura.count)
return;
@@ -2272,7 +2272,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
break;
case SMART_EVENT_KILL:
{
- if (!me || !unit) return;
+ if (!me || !unit)
+ return;
if (e.event.kill.playerOnly && unit->GetTypeId() != TYPEID_PLAYER)
return;
if (e.event.kill.creature && unit->GetEntry() != e.event.kill.creature)
@@ -2284,9 +2285,10 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
case SMART_EVENT_SPELLHIT_TARGET:
case SMART_EVENT_SPELLHIT:
{
- if (!spell) return;
- if (!e.event.spellHit.spell || spell->Id == e.event.spellHit.spell)
- if (!e.event.spellHit.school || (spell->SchoolMask & e.event.spellHit.school))
+ if (!spell)
+ return;
+ if ((!e.event.spellHit.spell || spell->Id == e.event.spellHit.spell) &&
+ (!e.event.spellHit.school || (spell->SchoolMask & e.event.spellHit.school)))
{
ProcessAction(e, unit, 0, 0, bvar, spell);
RecalcTimer(e, e.event.spellHit.cooldownMin, e.event.spellHit.cooldownMax);
@@ -2295,7 +2297,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_OOC_LOS:
{
- if (!me || me->isInCombat()) return;
+ if (!me || me->isInCombat())
+ return;
//can trigger if closer than fMaxAllowedRange
float range = (float)e.event.los.maxDist;
@@ -2314,7 +2317,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_IC_LOS:
{
- if (!me || !me->isInCombat()) return;
+ if (!me || !me->isInCombat())
+ return;
//can trigger if closer than fMaxAllowedRange
float range = (float)e.event.los.maxDist;
@@ -2333,7 +2337,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_RESPAWN:
{
- if (!GetBaseObject()) return;
+ if (!GetBaseObject())
+ return;
if (e.event.respawn.type == SMART_SCRIPT_RESPAWN_CONDITION_MAP && GetBaseObject()->GetMapId() != e.event.respawn.map)
return;
if (e.event.respawn.type == SMART_SCRIPT_RESPAWN_CONDITION_AREA && GetBaseObject()->GetZoneId() != e.event.respawn.area)
@@ -2343,7 +2348,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
}
case SMART_EVENT_SUMMONED_UNIT:
{
- if (!IsCreature(unit)) return;
+ if (!IsCreature(unit))
+ return;
if (e.event.summoned.creature && unit->GetEntry() != e.event.summoned.creature)
return;
ProcessAction(e, unit);
@@ -2435,42 +2441,44 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui
case SMART_EVENT_PASSENGER_REMOVED:
case SMART_EVENT_PASSENGER_BOARDED:
{
- if (!unit) return;
+ if (!unit)
+ return;
ProcessAction(e, unit);
RecalcTimer(e, e.event.minMax.repeatMin, e.event.minMax.repeatMax);
break;
}
case SMART_EVENT_TIMED_EVENT_TRIGGERED:
- {
- if (e.event.timedEvent.id == var0)
- ProcessAction(e, unit);
- break;
- }
+ {
+ if (e.event.timedEvent.id == var0)
+ ProcessAction(e, unit);
+ break;
+ }
case SMART_EVENT_GOSSIP_SELECT:
- {
- sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript: Gossip Select: menu %u action %u", var0, var1);//little help for scripters
- if (e.event.gossip.sender != var0 || e.event.gossip.action != var1)
- return;
- ProcessAction(e, unit, var0, var1);
- break;
- }
+ {
+ sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript: Gossip Select: menu %u action %u", var0, var1);//little help for scripters
+ if (e.event.gossip.sender != var0 || e.event.gossip.action != var1)
+ return;
+ ProcessAction(e, unit, var0, var1);
+ break;
+ }
case SMART_EVENT_DUMMY_EFFECT:
- {
- if (e.event.dummy.spell != var0 || e.event.dummy.effIndex != var1)
- return;
- ProcessAction(e, unit, var0, var1);
- break;
- }
+ {
+ if (e.event.dummy.spell != var0 || e.event.dummy.effIndex != var1)
+ return;
+ ProcessAction(e, unit, var0, var1);
+ break;
+ }
default:
sLog->outErrorDb("SmartScript::ProcessEvent: Unhandled Event type %u", e.GetEventType());
break;
}
}
-void SmartScript::InitTimer(SmartScriptHolder &e)
+void SmartScript::InitTimer(SmartScriptHolder& e)
{
switch (e.GetEventType())
- {//set only events which have initial timers
+ {
+ //set only events which have initial timers
case SMART_EVENT_UPDATE:
case SMART_EVENT_UPDATE_IC:
case SMART_EVENT_UPDATE_OOC:
@@ -2483,24 +2491,27 @@ void SmartScript::InitTimer(SmartScriptHolder &e)
break;
}
}
-void SmartScript::RecalcTimer(SmartScriptHolder &e, uint32 min, uint32 max)
+void SmartScript::RecalcTimer(SmartScriptHolder& e, uint32 min, uint32 max)
{
// min/max was checked at loading!
e.timer = urand(uint32(min), uint32(max));
e.active = e.timer ? false : true;
}
-void SmartScript::UpdateTimer(SmartScriptHolder &e, const uint32 diff)
+void SmartScript::UpdateTimer(SmartScriptHolder& e, uint32 const diff)
{
if (e.GetEventType() == SMART_EVENT_LINK)
return;
+
if (e.event.event_phase_mask && !IsInPhase(e.event.event_phase_mask))
return;
if (e.GetEventType() == SMART_EVENT_UPDATE_IC && (!me || !me->isInCombat()))
return;
+
if (e.GetEventType() == SMART_EVENT_UPDATE_OOC && (me && me->isInCombat()))//can be used with me=NULL (go script)
return;
+
if (e.timer < diff)
{
e.active = true;//activate events with cooldown
@@ -2538,10 +2549,12 @@ void SmartScript::UpdateTimer(SmartScriptHolder &e, const uint32 diff)
break;
}
}
- } else e.timer -= diff;
+ }
+ else
+ e.timer -= diff;
}
-bool SmartScript::CheckTimer(SmartScriptHolder &e)
+bool SmartScript::CheckTimer(SmartScriptHolder const& e) const
{
return e.active;
}
@@ -2551,29 +2564,26 @@ void SmartScript::InstallEvents()
if (!mInstallEvents.empty())
{
for (SmartAIEventList::iterator i = mInstallEvents.begin(); i != mInstallEvents.end(); ++i)
- {
- mEvents.push_back((*i));//must be before UpdateTimers
- }
+ mEvents.push_back(*i);//must be before UpdateTimers
+
mInstallEvents.clear();
}
}
-void SmartScript::OnUpdate(const uint32 diff)
+void SmartScript::OnUpdate(uint32 const diff)
{
if ((mScriptType == SMART_SCRIPT_TYPE_CREATURE || mScriptType == SMART_SCRIPT_TYPE_GAMEOBJECT) && !GetBaseObject())
return;
+
InstallEvents();//before UpdateTimers
for (SmartAIEventList::iterator i = mEvents.begin(); i != mEvents.end(); ++i)
- UpdateTimer((*i), diff);
+ UpdateTimer(*i, diff);
if (!mStoredEvents.empty())
- {
for (SmartAIEventList::iterator i = mStoredEvents.begin(); i != mStoredEvents.end(); ++i)
- {
- UpdateTimer((*i), diff);
- }
- }
+ UpdateTimer(*i, diff);
+
bool needCleanup = true;
if (!mTimedActionList.empty())
{
@@ -2581,7 +2591,7 @@ void SmartScript::OnUpdate(const uint32 diff)
{
if ((*i).enableTimed)
{
- UpdateTimer((*i), diff);
+ UpdateTimer(*i, diff);
needCleanup = false;
}
}
@@ -2821,7 +2831,7 @@ void SmartScript::DoFindFriendlyMissingBuff(std::list<Creature*>& _list, float r
cell.Visit(p, grid_creature_searcher, *me->GetMap());
}
-void SmartScript::SetScript9(SmartScriptHolder &e, uint32 entry)
+void SmartScript::SetScript9(SmartScriptHolder& e, uint32 entry)
{
mTimedActionList.clear();
mTimedActionList = sSmartScriptMgr->GetScript(entry, SMART_SCRIPT_TYPE_TIMED_ACTIONLIST);
diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h
index 34e1faf9696..8b0fb3bbca3 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.h
+++ b/src/server/game/AI/SmartScripts/SmartScript.h
@@ -41,12 +41,12 @@ class SmartScript
void FillScript(SmartAIEventList e, WorldObject* obj, AreaTriggerEntry const* at);
void ProcessEventsFor(SMART_EVENT e, Unit* unit = NULL, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, const SpellEntry* spell = NULL, GameObject* gob = NULL);
- void ProcessEvent(SmartScriptHolder &e, Unit* unit = NULL, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, const SpellEntry* spell = NULL, GameObject* gob = NULL);
- bool CheckTimer(SmartScriptHolder &e);
- void RecalcTimer(SmartScriptHolder &e, uint32 min, uint32 max);
- void UpdateTimer(SmartScriptHolder &e, const uint32 diff);
- void InitTimer(SmartScriptHolder &e);
- void ProcessAction(SmartScriptHolder &e, Unit* unit = NULL, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, const SpellEntry* spell = NULL, GameObject* gob = NULL);
+ void ProcessEvent(SmartScriptHolder& e, Unit* unit = NULL, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, const SpellEntry* spell = NULL, GameObject* gob = NULL);
+ bool CheckTimer(SmartScriptHolder const& e) const;
+ void RecalcTimer(SmartScriptHolder& e, uint32 min, uint32 max);
+ void UpdateTimer(SmartScriptHolder& e, uint32 const diff);
+ void InitTimer(SmartScriptHolder& e);
+ void ProcessAction(SmartScriptHolder& e, Unit* unit = NULL, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, const SpellEntry* spell = NULL, GameObject* gob = NULL);
ObjectList* GetTargets(SmartScriptHolder e, Unit* invoker = NULL);
ObjectList* GetWorldObjectsInDist(float dist);
void InstallTemplate(SmartScriptHolder e);
@@ -63,22 +63,27 @@ class SmartScript
obj = go;
return obj;
}
+
bool IsUnit(WorldObject* obj)
{
return obj && (obj->GetTypeId() == TYPEID_UNIT || obj->GetTypeId() == TYPEID_PLAYER);
}
+
bool IsPlayer(WorldObject* obj)
{
return obj && obj->GetTypeId() == TYPEID_PLAYER;
}
+
bool IsCreature(WorldObject* obj)
{
return obj && obj->GetTypeId() == TYPEID_UNIT;
}
+
bool IsGameObject(WorldObject* obj)
{
return obj && obj->GetTypeId() == TYPEID_GAMEOBJECT;
}
+
bool ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3)
{
if (c == 0) return true;
@@ -92,7 +97,7 @@ class SmartScript
}
void OnUpdate(const uint32 diff);
- void OnMoveInLineOfSight(Unit *who);
+ void OnMoveInLineOfSight(Unit* who);
Unit* DoSelectLowestHpFriendly(float range, uint32 MinHPDiff);
void DoFindFriendlyCC(std::list<Creature*>& _list, float range);
@@ -145,9 +150,9 @@ class SmartScript
return NULL;
}
- inline GameObject* FindGameObjectNear(WorldObject* pSearchObject, uint32 guid) const
+ GameObject* FindGameObjectNear(WorldObject* pSearchObject, uint32 guid) const
{
- GameObject *pGameObject = NULL;
+ GameObject* pGameObject = NULL;
CellPair p(Trinity::ComputeCellPair(pSearchObject->GetPositionX(), pSearchObject->GetPositionY()));
Cell cell(p);
@@ -162,9 +167,9 @@ class SmartScript
return pGameObject;
}
- inline Creature* FindCreatureNear(WorldObject* pSearchObject, uint32 guid) const
+ Creature* FindCreatureNear(WorldObject* pSearchObject, uint32 guid) const
{
- Creature *crea = NULL;
+ Creature* crea = NULL;
CellPair p(Trinity::ComputeCellPair(pSearchObject->GetPositionX(), pSearchObject->GetPositionY()));
Cell cell(p);
cell.data.Part.reserved = ALL_DISTRICT;
@@ -204,17 +209,19 @@ class SmartScript
}
//TIMED_ACTIONLIST (script type 9 aka script9)
- void SetScript9(SmartScriptHolder &e, uint32 entry);
+ void SetScript9(SmartScriptHolder& e, uint32 entry);
Unit* GetLastInvoker();
uint64 mLastInvoker;
private:
- void IncPhase(int32 p = 1) {
+ void IncPhase(int32 p = 1)
+ {
if(p >= 0)
mEventPhase += (uint32)p;
else
DecPhase(abs(p));
}
+
void DecPhase(int32 p = 1) { mEventPhase -= (mEventPhase < (uint32)p ? (uint32)p - mEventPhase : (uint32)p); }
bool IsInPhase(uint32 p) const { return mEventPhase & p; }
void SetPhase(uint32 p = 0) { mEventPhase = p; }
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index 7d274448f39..58e3dde547e 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -54,7 +54,7 @@ void SmartWaypointMgr::LoadFromDB()
do
{
- Field *fields = result->Fetch();
+ Field* fields = result->Fetch();
uint32 entry = fields[0].GetUInt32();
uint32 id = fields[1].GetUInt32();
float x,y,z;
@@ -62,7 +62,7 @@ void SmartWaypointMgr::LoadFromDB()
y = fields[3].GetFloat();
z = fields[4].GetFloat();
- WayPoint *wp = new WayPoint(id, x, y, z);
+ WayPoint* wp = new WayPoint(id, x, y, z);
if (last_entry != entry)
{