aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiscover- <amort11@hotmail.com>2013-12-17 09:44:06 +0100
committerDiscover- <amort11@hotmail.com>2013-12-17 09:44:06 +0100
commit54b7162f1def59387ecf3c031705f56fa1b10b02 (patch)
treebd7e58f0787afda55dbbc7a078d3e9ad085893e2 /src
parent1339d38d4c7e1c356d7a36734deb557db18acaf9 (diff)
Core/SAI: Make SMART_ACTION_SET_INGAME_PHASE_MASK set the phasemask of the target_type instead of always the source calling the action type.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index a272cb79f51..164ace2eb44 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1046,8 +1046,18 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
case SMART_ACTION_SET_INGAME_PHASE_MASK:
{
- if (WorldObject* baseObj = GetBaseObject())
- baseObj->SetPhaseMask(e.action.ingamePhaseMask.mask, true);
+ ObjectList* targets = GetTargets(e, unit);
+
+ if (!targets)
+ break;
+
+ for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
+ {
+ if (!IsUnit(*itr))
+ continue;
+
+ (*itr)->ToUnit()->SetPhaseMask(e.action.ingamePhaseMask.mask, true);
+ }
break;
}