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:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user