From 5d835e45264a34d8d75ce19d4417332a5a301b0e Mon Sep 17 00:00:00 2001 From: Aokromes Date: Tue, 19 Jul 2016 16:05:20 +0200 Subject: [PATCH] Core/SmartScripts: Improve SMART_EVENT_DISTANCE_CREATURE so it can be used with SMART_TARGET_ACTION_INVOKER --- .../game/AI/SmartScripts/SmartScript.cpp | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index e9f45511ad..625ffadfec 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3256,29 +3256,28 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me) return; - WorldObject* creature = nullptr; + 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(e.event.distance.dist))) return; } else if (e.event.distance.entry != 0) { std::list list; - me->GetCreatureListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); + me->GetCreatureListWithEntryInGrid(list, e.event.distance.entry, static_cast(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; } @@ -3287,30 +3286,29 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me) return; - WorldObject* gameobject = nullptr; + 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(e.event.distance.dist))) return; } else if (e.event.distance.entry != 0) { std::list list; - me->GetGameObjectListWithEntryInGrid(list, e.event.distance.entry, (float)e.event.distance.dist); + me->GetGameObjectListWithEntryInGrid(list, e.event.distance.entry, static_cast(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; } case SMART_EVENT_COUNTER_SET: