TombEngine/TR5Main/Game/misc.cpp

45 lines
982 B
C++
Raw Normal View History

#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
using std::vector;
CREATURE_INFO* GetCreatureInfo(ITEM_INFO* item)
{
return (CREATURE_INFO*)item->Data;
}
void TargetNearestEntity(ITEM_INFO* item, CREATURE_INFO* creature)
{
2022-02-08 01:26:59 +11:00
int bestDistance = MAXINT;
for (int i = 0; i < g_Level.NumItems; i++)
{
2022-02-08 01:26:59 +11:00
auto* target = &g_Level.Items[i];
if (target == nullptr)
continue;
2022-02-08 01:26:59 +11:00
if (target != item &&
target->HitPoints > 0 &&
target->Status != ITEM_INVISIBLE)
{
int x = target->Position.xPos - item->Position.xPos;
int y = target->Position.yPos - item->Position.yPos;
int z = target->Position.zPos - item->Position.zPos;
2022-02-08 01:26:59 +11:00
int distance = pow(x, 2) + pow(y, 2) + pow(z, 2);
if (distance < bestDistance)
{
creature->enemy = target;
2022-02-08 01:26:59 +11:00
bestDistance = distance;
}
}
}
2022-02-08 01:26:59 +11:00
}