1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-14 00:54:05 +02:00

fix water level calculation for rooms, fix opened doors collision, fix floor data parser

This commit is contained in:
XProger
2018-12-01 08:44:14 +03:00
parent a7e732752b
commit c175f17e76
3 changed files with 7 additions and 3 deletions

View File

@@ -258,8 +258,10 @@ struct Controller {
TR::Room::Sector *sAbove = &s;
while (sAbove->roomAbove != TR::NO_ROOM) sAbove = &level->getSector(sAbove->roomAbove, x, z, dx, dz);
if (sAbove != sBelow) {
info.ceiling = float(256 * sAbove->ceiling);
parseFloorData(info, sAbove->floorIndex, dx, dz);
TR::Level::FloorInfo tmpInfo;
tmpInfo.ceiling = float(256 * sAbove->ceiling);
parseFloorData(tmpInfo, sAbove->floorIndex, dx, dz);
info.ceiling = tmpInfo.ceiling;
}
} else {
int tmp = info.roomNext;

View File

@@ -3438,7 +3438,7 @@ struct Lara : Character {
} else {
// fast distance check for object
if (e.type != TR::Entity::HAMMER_HANDLE && e.type != TR::Entity::HAMMER_BLOCK && e.type != TR::Entity::SCION_HOLDER)
if (fabsf(pos.x - controller->pos.x) > 1024 || fabsf(pos.z - controller->pos.z) > 1024 || fabsf(pos.y - controller->pos.y) > 2048) continue;
if (fabsf(pos.x - controller->pos.x) > 2048 || fabsf(pos.z - controller->pos.z) > 2048 || fabsf(pos.y - controller->pos.y) > 2048) continue;
}
vec3 dir = pos - vec3(0.0f, 128.0f, 0.0f) - controller->pos;

View File

@@ -715,6 +715,8 @@ struct MeshBuilder {
for (int z = 0; z < room.zSectors; z++)
for (int x = 0; x < room.xSectors; x++) {
TR::Room::Sector &s = room.sectors[x * room.zSectors + z];
if (level->getNextRoom(&s) != TR::NO_ROOM)
continue;
if (s.ceiling != TR::NO_FLOOR)
value = min( value, s.ceiling * 256 );
if (s.roomAbove != TR::NO_ROOM)