Core/SmartAI: Implement SMART_TARGET_CLOSEST_ENEMY (25)
Required for upcoming EAI to SAI conversion. Closes #10482
This commit is contained in:
1 parent
1e8fd6489d
commit
9d4c2c5b1e
3 files changed
+18
-2
No files matched your search
@@ -1422,7 +1422,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
||||
e.GetTargetType() == SMART_TARGET_CREATURE_DISTANCE || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_RANGE ||
|
||||
e.GetTargetType() == SMART_TARGET_GAMEOBJECT_GUID || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_DISTANCE ||
|
||||
e.GetTargetType() == SMART_TARGET_CLOSEST_CREATURE || e.GetTargetType() == SMART_TARGET_CLOSEST_GAMEOBJECT ||
|
||||
e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER)
|
||||
e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER ||
|
||||
e.GetTargetType() == SMART_TARGET_CLOSEST_ENEMY)
|
||||
{
|
||||
ObjectList* targets = GetTargets(e, unit);
|
||||
if (!targets)
|
||||
@@ -2485,6 +2486,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SMART_TARGET_CLOSEST_ENEMY:
|
||||
{
|
||||
if (me)
|
||||
if (Unit* target = me->SelectNearestTarget(e.target.closestAttackable.maxDist))
|
||||
l->push_back(target);
|
||||
|
||||
break;
|
||||
}
|
||||
case SMART_TARGET_POSITION:
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -300,6 +300,7 @@ bool SmartAIMgr::IsTargetValid(SmartScriptHolder const& e)
|
||||
case SMART_TARGET_THREAT_LIST:
|
||||
case SMART_TARGET_CLOSEST_GAMEOBJECT:
|
||||
case SMART_TARGET_CLOSEST_CREATURE:
|
||||
case SMART_TARGET_CLOSEST_ENEMY:
|
||||
case SMART_TARGET_STORED:
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -992,7 +992,8 @@ enum SMARTAI_TARGETS
|
||||
SMART_TARGET_ACTION_INVOKER_VEHICLE = 22, // Unit's vehicle who caused this Event to occur
|
||||
SMART_TARGET_OWNER_OR_SUMMONER = 23, // Unit's owner or summoner
|
||||
SMART_TARGET_THREAT_LIST = 24, // All units on creature's threat list
|
||||
SMART_TARGET_END = 25
|
||||
SMART_TARGET_CLOSEST_ENEMY = 25, // maxDist
|
||||
SMART_TARGET_END = 26
|
||||
};
|
||||
|
||||
struct SmartTarget
|
||||
@@ -1074,6 +1075,11 @@ struct SmartTarget
|
||||
uint32 dead;
|
||||
} closest;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 maxDist;
|
||||
} closestAttackable;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 param1;
|
||||
|
||||
Reference in new issue
Block a user