2020-05-27 09:21:20 +02:00
|
|
|
#include "framework.h"
|
2021-12-22 16:23:57 +03:00
|
|
|
#include "Game/misc.h"
|
2021-12-24 03:32:19 +03:00
|
|
|
|
2021-12-22 16:23:57 +03:00
|
|
|
#include "Game/animation.h"
|
2021-12-24 03:32:19 +03:00
|
|
|
#include "Game/Lara/lara.h"
|
2021-12-22 16:23:57 +03:00
|
|
|
#include "Game/itemdata/creature_info.h"
|
|
|
|
#include "Game/items.h"
|
2021-12-24 03:32:19 +03:00
|
|
|
#include "Specific/setup.h"
|
|
|
|
#include "Specific/level.h"
|
2021-09-25 11:27:47 +02:00
|
|
|
|
2021-09-19 18:32:41 +03:00
|
|
|
using std::vector;
|
2021-12-19 05:24:12 +03:00
|
|
|
|
2022-03-06 18:59:04 +11:00
|
|
|
CreatureInfo* GetCreatureInfo(ITEM_INFO* item)
|
2020-05-19 19:01:11 +02:00
|
|
|
{
|
2022-03-06 18:59:04 +11:00
|
|
|
return (CreatureInfo*)item->Data;
|
2020-05-19 19:01:11 +02:00
|
|
|
}
|
|
|
|
|
2022-03-06 18:59:04 +11:00
|
|
|
void TargetNearestEntity(ITEM_INFO* item, CreatureInfo* creature)
|
2020-06-10 21:38:25 +02:00
|
|
|
{
|
2022-02-08 01:26:59 +11:00
|
|
|
int bestDistance = MAXINT;
|
2020-07-21 09:56:47 +02:00
|
|
|
for (int i = 0; i < g_Level.NumItems; i++)
|
2020-06-10 21:38:25 +02:00
|
|
|
{
|
2022-02-08 01:26:59 +11:00
|
|
|
auto* target = &g_Level.Items[i];
|
2020-06-26 07:06:18 +02:00
|
|
|
|
2021-12-19 05:24:12 +03:00
|
|
|
if (target == nullptr)
|
|
|
|
continue;
|
2019-12-17 17:37:53 +01:00
|
|
|
|
2022-02-08 01:26:59 +11:00
|
|
|
if (target != item &&
|
2022-02-09 16:55:46 +11:00
|
|
|
target->HitPoints > 0 &&
|
|
|
|
target->Status != ITEM_INVISIBLE)
|
2019-12-17 17:37:53 +01:00
|
|
|
{
|
2022-03-31 21:14:27 +11:00
|
|
|
int x = target->Pose.Position.x - item->Pose.Position.x;
|
|
|
|
int y = target->Pose.Position.y - item->Pose.Position.y;
|
|
|
|
int z = target->Pose.Position.z - item->Pose.Position.z;
|
2022-02-08 01:26:59 +11:00
|
|
|
|
|
|
|
int distance = pow(x, 2) + pow(y, 2) + pow(z, 2);
|
|
|
|
if (distance < bestDistance)
|
2019-12-17 17:37:53 +01:00
|
|
|
{
|
2022-03-06 18:59:04 +11:00
|
|
|
creature->Enemy = target;
|
2022-02-08 01:26:59 +11:00
|
|
|
bestDistance = distance;
|
2019-12-17 17:37:53 +01:00
|
|
|
}
|
2020-06-26 07:06:18 +02:00
|
|
|
}
|
2019-12-17 17:37:53 +01:00
|
|
|
}
|
2022-02-08 01:26:59 +11:00
|
|
|
}
|