TombEngine/TR5Main/Game/floordata.cpp

43 lines
760 B
C++
Raw Normal View History

2020-09-14 00:19:05 -03:00
#include "framework.h"
#include "trmath.h"
#include "floordata.h"
#include "room.h"
SECTOR_POSITION FLOOR_INFO::GetSectorPosition(ROOM_INFO* room, int x, int z)
{
SECTOR_POSITION pos;
pos.x = (z - room->z) / WALL_SIZE;
pos.y = (x - room->x) / WALL_SIZE;
if (pos.x < 0)
{
pos.x = 0;
}
else if (pos.x > room->xSize - 1)
{
pos.x = room->xSize - 1;
}
if (pos.y < 0)
{
pos.y = 0;
}
else if (pos.y > room->ySize - 1)
{
pos.y = room->ySize - 1;
}
return pos;
}
FLOOR_INFO& FLOOR_INFO::GetFloor(ROOM_INFO* room, int x, int z)
{
return GetFloor(room, GetSectorPosition(room, x, z));
}
FLOOR_INFO& FLOOR_INFO::GetFloor(ROOM_INFO* room, SECTOR_POSITION pos)
{
return room->floor[pos.x + pos.y * room->xSize];
}