diff options
| author | lafoniz <lafoniz@tlen.pl> | 2016-04-23 14:45:05 +0200 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2016-04-23 16:55:14 +0200 |
| commit | b4778cefceddb683a5ce4fccbdcd4a1c472f8714 (patch) | |
| tree | 5a1a92b6482d4c5982889de75fb5b3aefc9f9b27 /src | |
| parent | 3b0498843b71681d459fe60fc5ba67c7c574f450 (diff) | |
Core/SmartScripts: Improve SMART_EVENT_DISTANCE_CREATURE so it can be used with SMART_TARGET_ACTION_INVOKER
Closes #16752
(cherry picked from commit a05a871d7ce575e4e748c4dc65d4dc9609412efa)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index da1e6330490..33a426be2d1 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3271,29 +3271,28 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me) return; - WorldObject* creature = NULL; + Creature* creature = nullptr; if (e.event.distance.guid != 0) { creature = FindCreatureNear(me, e.event.distance.guid); - if (!creature) return; - if (!me->IsInRange(creature, 0, (float)e.event.distance.dist)) + if (!me->IsInRange(creature, 0, static_cast<float>(e.event.distance.dist))) return; } else if (e.event.distance.entry != 0) { std::list<Creature*> list; - me->GetCreatureListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); + me->GetCreatureListWithEntryInGrid(list, e.event.distance.entry, static_cast<float>(e.event.distance.dist)); if (!list.empty()) creature = list.front(); } if (creature) - ProcessTimedAction(e, e.event.distance.repeat, e.event.distance.repeat); + ProcessTimedAction(e, e.event.distance.repeat, e.event.distance.repeat, creature); break; } @@ -3302,29 +3301,28 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me) return; - WorldObject* gameobject = NULL; + GameObject* gameobject = nullptr; if (e.event.distance.guid != 0) { gameobject = FindGameObjectNear(me, e.event.distance.guid); - if (!gameobject) return; - if (!me->IsInRange(gameobject, 0, (float)e.event.distance.dist)) + if (!me->IsInRange(gameobject, 0, static_cast<float>(e.event.distance.dist))) return; } else if (e.event.distance.entry != 0) { std::list<GameObject*> list; - me->GetGameObjectListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); + me->GetGameObjectListWithEntryInGrid(list, e.event.distance.entry, static_cast<float>(e.event.distance.dist)); if (!list.empty()) gameobject = list.front(); } if (gameobject) - ProcessTimedAction(e, e.event.distance.repeat, e.event.distance.repeat); + ProcessTimedAction(e, e.event.distance.repeat, e.event.distance.repeat, nullptr, 0, 0, false, nullptr, gameobject); break; } |
