mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-12 05:26:57 +03:00
Rename box
This commit is contained in:
parent
921c2abe43
commit
202bf42a12
12 changed files with 53 additions and 53 deletions
|
@ -118,15 +118,15 @@ bool SameZone(CREATURE_INFO* creature, ITEM_INFO* target)
|
||||||
ITEM_INFO* item = &g_Level.Items[creature->itemNum];
|
ITEM_INFO* item = &g_Level.Items[creature->itemNum];
|
||||||
ROOM_INFO* room = &g_Level.Rooms[item->roomNumber];
|
ROOM_INFO* room = &g_Level.Rooms[item->roomNumber];
|
||||||
FLOOR_INFO* floor = XZ_GET_SECTOR(room, item->pos.xPos - room->x, item->pos.zPos - room->z);
|
FLOOR_INFO* floor = XZ_GET_SECTOR(room, item->pos.xPos - room->x, item->pos.zPos - room->z);
|
||||||
if (floor->box == NO_BOX)
|
if (floor->Box == NO_BOX)
|
||||||
return false;
|
return false;
|
||||||
item->boxNumber = floor->box;
|
item->boxNumber = floor->Box;
|
||||||
|
|
||||||
room = &g_Level.Rooms[target->roomNumber];
|
room = &g_Level.Rooms[target->roomNumber];
|
||||||
floor = XZ_GET_SECTOR(room, target->pos.xPos - room->x, target->pos.zPos - room->z);
|
floor = XZ_GET_SECTOR(room, target->pos.xPos - room->x, target->pos.zPos - room->z);
|
||||||
if (floor->box == NO_BOX)
|
if (floor->Box == NO_BOX)
|
||||||
return false;
|
return false;
|
||||||
target->boxNumber = floor->box;
|
target->boxNumber = floor->Box;
|
||||||
|
|
||||||
return (zone[item->boxNumber] == zone[target->boxNumber]);
|
return (zone[item->boxNumber] == zone[target->boxNumber]);
|
||||||
}
|
}
|
||||||
|
@ -489,18 +489,18 @@ int CreatureAnimation(short itemNumber, short angle, short tilt)
|
||||||
roomNumber = item->roomNumber;
|
roomNumber = item->roomNumber;
|
||||||
GetFloor(old.x, y, old.z, &roomNumber);
|
GetFloor(old.x, y, old.z, &roomNumber);
|
||||||
floor = GetFloor(item->pos.xPos, y, item->pos.zPos, &roomNumber);
|
floor = GetFloor(item->pos.xPos, y, item->pos.zPos, &roomNumber);
|
||||||
height = g_Level.Boxes[floor->box].height;
|
height = g_Level.Boxes[floor->Box].height;
|
||||||
nextHeight = 0;
|
nextHeight = 0;
|
||||||
|
|
||||||
if (!Objects[item->objectNumber].nonLot)
|
if (!Objects[item->objectNumber].nonLot)
|
||||||
{
|
{
|
||||||
nextBox = LOT->node[floor->box].exitBox;
|
nextBox = LOT->node[floor->Box].exitBox;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
||||||
height = g_Level.Boxes[floor->box].height;
|
height = g_Level.Boxes[floor->Box].height;
|
||||||
nextBox = floor->box;
|
nextBox = floor->Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextBox == NO_BOX)
|
if (nextBox == NO_BOX)
|
||||||
|
@ -508,7 +508,7 @@ int CreatureAnimation(short itemNumber, short angle, short tilt)
|
||||||
else
|
else
|
||||||
nextHeight = g_Level.Boxes[nextBox].height;
|
nextHeight = g_Level.Boxes[nextBox].height;
|
||||||
|
|
||||||
if (floor->box == NO_BOX || !LOT->isJumping && (LOT->fly == NO_FLYING && item->boxNumber != NO_BOX && zone[item->boxNumber] != zone[floor->box] || boxHeight - height > LOT->step || boxHeight - height < LOT->drop))
|
if (floor->Box == NO_BOX || !LOT->isJumping && (LOT->fly == NO_FLYING && item->boxNumber != NO_BOX && zone[item->boxNumber] != zone[floor->Box] || boxHeight - height > LOT->step || boxHeight - height < LOT->drop))
|
||||||
{
|
{
|
||||||
xPos = item->pos.xPos / SECTOR(1);
|
xPos = item->pos.xPos / SECTOR(1);
|
||||||
zPos = item->pos.zPos / SECTOR(1);
|
zPos = item->pos.zPos / SECTOR(1);
|
||||||
|
@ -526,16 +526,16 @@ int CreatureAnimation(short itemNumber, short angle, short tilt)
|
||||||
item->pos.zPos = old.z | (WALL_SIZE - 1);
|
item->pos.zPos = old.z | (WALL_SIZE - 1);
|
||||||
|
|
||||||
floor = GetFloor(item->pos.xPos, y, item->pos.zPos, &roomNumber);
|
floor = GetFloor(item->pos.xPos, y, item->pos.zPos, &roomNumber);
|
||||||
height = g_Level.Boxes[floor->box].height;
|
height = g_Level.Boxes[floor->Box].height;
|
||||||
if (!Objects[item->objectNumber].nonLot)
|
if (!Objects[item->objectNumber].nonLot)
|
||||||
{
|
{
|
||||||
nextHeight = LOT->node[floor->box].exitBox;
|
nextHeight = LOT->node[floor->Box].exitBox;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
||||||
height = g_Level.Boxes[floor->box].height;
|
height = g_Level.Boxes[floor->Box].height;
|
||||||
nextBox = floor->box;
|
nextBox = floor->Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextBox == NO_BOX)
|
if (nextBox == NO_BOX)
|
||||||
|
@ -837,16 +837,16 @@ int BadFloor(int x, int y, int z, int boxHeight, int nextHeight, short roomNumbe
|
||||||
int height;
|
int height;
|
||||||
|
|
||||||
floor = GetFloor(x, y, z, &roomNumber);
|
floor = GetFloor(x, y, z, &roomNumber);
|
||||||
if (floor->box == NO_BOX)
|
if (floor->Box == NO_BOX)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (LOT->isJumping)
|
if (LOT->isJumping)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (g_Level.Boxes[floor->box].flags & LOT->blockMask)
|
if (g_Level.Boxes[floor->Box].flags & LOT->blockMask)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
height = g_Level.Boxes[floor->box].height;
|
height = g_Level.Boxes[floor->Box].height;
|
||||||
if (boxHeight - height > LOT->step || boxHeight - height < LOT->drop)
|
if (boxHeight - height > LOT->step || boxHeight - height < LOT->drop)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -1423,10 +1423,10 @@ void FindAITargetObject(CREATURE_INFO* creature, short objectNumber)
|
||||||
int* zone = g_Level.Zones[creature->LOT.zone][FlipStatus].data();
|
int* zone = g_Level.Zones[creature->LOT.zone][FlipStatus].data();
|
||||||
|
|
||||||
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
||||||
item->boxNumber = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z)->box;
|
item->boxNumber = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z)->Box;
|
||||||
|
|
||||||
r = &g_Level.Rooms[aiObject->roomNumber];
|
r = &g_Level.Rooms[aiObject->roomNumber];
|
||||||
aiObject->boxNumber = XZ_GET_SECTOR(r, aiObject->x - r->x, aiObject->z - r->z)->box;
|
aiObject->boxNumber = XZ_GET_SECTOR(r, aiObject->x - r->x, aiObject->z - r->z)->Box;
|
||||||
|
|
||||||
if (item->boxNumber == NO_BOX || aiObject->boxNumber == NO_BOX)
|
if (item->boxNumber == NO_BOX || aiObject->boxNumber == NO_BOX)
|
||||||
{
|
{
|
||||||
|
@ -1495,7 +1495,7 @@ void CreatureAIInfo(ITEM_INFO* item, AI_INFO* info)
|
||||||
item->boxNumber = NO_BOX;
|
item->boxNumber = NO_BOX;
|
||||||
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
||||||
if(floor)
|
if(floor)
|
||||||
item->boxNumber = floor->box;
|
item->boxNumber = floor->Box;
|
||||||
if (item->boxNumber != NO_BOX)
|
if (item->boxNumber != NO_BOX)
|
||||||
info->zoneNumber = zone[item->boxNumber];
|
info->zoneNumber = zone[item->boxNumber];
|
||||||
else
|
else
|
||||||
|
@ -1505,7 +1505,7 @@ void CreatureAIInfo(ITEM_INFO* item, AI_INFO* info)
|
||||||
enemy->boxNumber = NO_BOX;
|
enemy->boxNumber = NO_BOX;
|
||||||
floor = XZ_GET_SECTOR(r, enemy->pos.xPos - r->x, enemy->pos.zPos - r->z);
|
floor = XZ_GET_SECTOR(r, enemy->pos.xPos - r->x, enemy->pos.zPos - r->z);
|
||||||
if(floor)
|
if(floor)
|
||||||
enemy->boxNumber = floor->box;
|
enemy->boxNumber = floor->Box;
|
||||||
if (enemy->boxNumber != NO_BOX)
|
if (enemy->boxNumber != NO_BOX)
|
||||||
info->enemyZone = zone[enemy->boxNumber];
|
info->enemyZone = zone[enemy->boxNumber];
|
||||||
else
|
else
|
||||||
|
|
|
@ -997,7 +997,7 @@ void AlterFloorHeight(ITEM_INFO *item, int height)
|
||||||
floor->FloorCollision.Planes[0].z += height;
|
floor->FloorCollision.Planes[0].z += height;
|
||||||
floor->FloorCollision.Planes[1].z += height;
|
floor->FloorCollision.Planes[1].z += height;
|
||||||
|
|
||||||
box = &g_Level.Boxes[floor->box];
|
box = &g_Level.Boxes[floor->Box];
|
||||||
if (box->flags & BLOCKABLE)
|
if (box->flags & BLOCKABLE)
|
||||||
{
|
{
|
||||||
if (height >= 0)
|
if (height >= 0)
|
||||||
|
|
|
@ -28,7 +28,7 @@ class FLOOR_INFO
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int TriggerIndex;
|
int TriggerIndex;
|
||||||
int box;
|
int Box;
|
||||||
int Material;
|
int Material;
|
||||||
int Stopper;
|
int Stopper;
|
||||||
int floor;
|
int floor;
|
||||||
|
|
|
@ -408,7 +408,7 @@ void InitialiseItem(short itemNum)
|
||||||
|
|
||||||
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
||||||
item->floor = floor->floor * 256;
|
item->floor = floor->floor * 256;
|
||||||
item->boxNumber = floor->box;
|
item->boxNumber = floor->Box;
|
||||||
|
|
||||||
if (Objects[item->objectNumber].initialise != NULL)
|
if (Objects[item->objectNumber].initialise != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -294,7 +294,7 @@ void CreateZone(ITEM_INFO* item)
|
||||||
CREATURE_INFO* creature = (CREATURE_INFO*)item->data;
|
CREATURE_INFO* creature = (CREATURE_INFO*)item->data;
|
||||||
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
||||||
|
|
||||||
item->boxNumber = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z)->box;
|
item->boxNumber = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z)->Box;
|
||||||
|
|
||||||
if (creature->LOT.fly)
|
if (creature->LOT.fly)
|
||||||
{
|
{
|
||||||
|
|
|
@ -75,11 +75,11 @@ namespace TEN::Entities::Doors
|
||||||
door->d1.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + dz + ((item->pos.xPos - r->x) / SECTOR(1) + dx) * r->xSize];
|
door->d1.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + dz + ((item->pos.xPos - r->x) / SECTOR(1) + dx) * r->xSize];
|
||||||
roomNumber = door->d1.floor->WallPortal;
|
roomNumber = door->d1.floor->WallPortal;
|
||||||
if (roomNumber == NO_ROOM)
|
if (roomNumber == NO_ROOM)
|
||||||
boxNumber = door->d1.floor->box;
|
boxNumber = door->d1.floor->Box;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b = &g_Level.Rooms[roomNumber];
|
b = &g_Level.Rooms[roomNumber];
|
||||||
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + dz + ((item->pos.xPos - b->x) / SECTOR(1) + dx) * b->xSize].box;
|
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + dz + ((item->pos.xPos - b->x) / SECTOR(1) + dx) * b->xSize].Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
door->d1.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
door->d1.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
||||||
|
@ -92,11 +92,11 @@ namespace TEN::Entities::Doors
|
||||||
door->d1flip.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + dz + ((item->pos.xPos - r->x) / SECTOR(1) + dx) * r->xSize];
|
door->d1flip.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + dz + ((item->pos.xPos - r->x) / SECTOR(1) + dx) * r->xSize];
|
||||||
roomNumber = door->d1flip.floor->WallPortal;
|
roomNumber = door->d1flip.floor->WallPortal;
|
||||||
if (roomNumber == NO_ROOM)
|
if (roomNumber == NO_ROOM)
|
||||||
boxNumber = door->d1flip.floor->box;
|
boxNumber = door->d1flip.floor->Box;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b = &g_Level.Rooms[roomNumber];
|
b = &g_Level.Rooms[roomNumber];
|
||||||
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + dz + ((item->pos.xPos - b->x) / SECTOR(1) + dx) * b->xSize].box;
|
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + dz + ((item->pos.xPos - b->x) / SECTOR(1) + dx) * b->xSize].Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
door->d1flip.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
door->d1flip.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
||||||
|
@ -122,11 +122,11 @@ namespace TEN::Entities::Doors
|
||||||
door->d2.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + (item->pos.xPos - r->x) / SECTOR(1) * r->xSize];
|
door->d2.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + (item->pos.xPos - r->x) / SECTOR(1) * r->xSize];
|
||||||
roomNumber = door->d2.floor->WallPortal;
|
roomNumber = door->d2.floor->WallPortal;
|
||||||
if (roomNumber == NO_ROOM)
|
if (roomNumber == NO_ROOM)
|
||||||
boxNumber = door->d2.floor->box;
|
boxNumber = door->d2.floor->Box;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b = &g_Level.Rooms[roomNumber];
|
b = &g_Level.Rooms[roomNumber];
|
||||||
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + (item->pos.xPos - b->x) / SECTOR(1) * b->xSize].box;
|
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + (item->pos.xPos - b->x) / SECTOR(1) * b->xSize].Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
door->d2.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
door->d2.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
||||||
|
@ -139,11 +139,11 @@ namespace TEN::Entities::Doors
|
||||||
door->d2flip.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + (item->pos.xPos - r->x) / SECTOR(1) * r->xSize];
|
door->d2flip.floor = &r->floor[(item->pos.zPos - r->z) / SECTOR(1) + (item->pos.xPos - r->x) / SECTOR(1) * r->xSize];
|
||||||
roomNumber = door->d2flip.floor->WallPortal;
|
roomNumber = door->d2flip.floor->WallPortal;
|
||||||
if (roomNumber == NO_ROOM)
|
if (roomNumber == NO_ROOM)
|
||||||
boxNumber = door->d2flip.floor->box;
|
boxNumber = door->d2flip.floor->Box;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b = &g_Level.Rooms[roomNumber];
|
b = &g_Level.Rooms[roomNumber];
|
||||||
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + (item->pos.xPos - b->x) / SECTOR(1) * b->xSize].box;
|
boxNumber = b->floor[(item->pos.zPos - b->z) / SECTOR(1) + (item->pos.xPos - b->x) / SECTOR(1) * b->xSize].Box;
|
||||||
}
|
}
|
||||||
|
|
||||||
door->d2flip.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
door->d2flip.block = (boxNumber != NO_BOX && g_Level.Boxes[boxNumber].flags & BLOCKABLE) ? boxNumber : NO_BOX;
|
||||||
|
@ -437,7 +437,7 @@ namespace TEN::Entities::Doors
|
||||||
|
|
||||||
if (floor)
|
if (floor)
|
||||||
{
|
{
|
||||||
floor->box = NO_BOX;
|
floor->Box = NO_BOX;
|
||||||
floor->TriggerIndex = 0;
|
floor->TriggerIndex = 0;
|
||||||
|
|
||||||
// FIXME: HACK!!!!!!!
|
// FIXME: HACK!!!!!!!
|
||||||
|
|
|
@ -242,7 +242,7 @@ void ShivaControl(short itemNum)
|
||||||
z = item->pos.zPos + WALL_SIZE * phd_cos(item->pos.yRot + 0x8000);
|
z = item->pos.zPos + WALL_SIZE * phd_cos(item->pos.yRot + 0x8000);
|
||||||
floor = GetFloor(x, item->pos.yPos, z, &roomNumber);
|
floor = GetFloor(x, item->pos.yPos, z, &roomNumber);
|
||||||
|
|
||||||
if (!shiva->flags && floor->box != NO_BOX && !(g_Level.Boxes[floor->box].flags & BLOCKABLE))
|
if (!shiva->flags && floor->Box != NO_BOX && !(g_Level.Boxes[floor->Box].flags & BLOCKABLE))
|
||||||
item->goalAnimState = 8;
|
item->goalAnimState = 8;
|
||||||
else
|
else
|
||||||
item->goalAnimState = 2;
|
item->goalAnimState = 2;
|
||||||
|
|
|
@ -16,7 +16,7 @@ void InitialiseExpandingPlatform(short itemNumber)
|
||||||
|
|
||||||
short roomNumber = item->roomNumber;
|
short roomNumber = item->roomNumber;
|
||||||
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
||||||
g_Level.Boxes[floor->box].flags &= ~BLOCKED;
|
g_Level.Boxes[floor->Box].flags &= ~BLOCKED;
|
||||||
|
|
||||||
if (item->triggerFlags < 0)
|
if (item->triggerFlags < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,40 +24,40 @@ int DoPushPull = 0;
|
||||||
void ClearMovableBlockSplitters(int x, int y, int z, short roomNumber)
|
void ClearMovableBlockSplitters(int x, int y, int z, short roomNumber)
|
||||||
{
|
{
|
||||||
FLOOR_INFO* floor = GetFloor(x, y, z, &roomNumber);
|
FLOOR_INFO* floor = GetFloor(x, y, z, &roomNumber);
|
||||||
if (floor->box == NO_BOX)
|
if (floor->Box == NO_BOX)
|
||||||
return;
|
return;
|
||||||
g_Level.Boxes[floor->box].flags &= (~BLOCKED);
|
g_Level.Boxes[floor->Box].flags &= (~BLOCKED);
|
||||||
short height = g_Level.Boxes[floor->box].height;
|
short height = g_Level.Boxes[floor->Box].height;
|
||||||
short baseRoomNumber = roomNumber;
|
short baseRoomNumber = roomNumber;
|
||||||
|
|
||||||
floor = GetFloor(x + 1024, y, z, &roomNumber);
|
floor = GetFloor(x + 1024, y, z, &roomNumber);
|
||||||
if (floor->box != NO_BOX)
|
if (floor->Box != NO_BOX)
|
||||||
{
|
{
|
||||||
if (g_Level.Boxes[floor->box].height == height && (g_Level.Boxes[floor->box].flags & BLOCKABLE) && (g_Level.Boxes[floor->box].flags & BLOCKED))
|
if (g_Level.Boxes[floor->Box].height == height && (g_Level.Boxes[floor->Box].flags & BLOCKABLE) && (g_Level.Boxes[floor->Box].flags & BLOCKED))
|
||||||
ClearMovableBlockSplitters(x + 1024, y, z, roomNumber);
|
ClearMovableBlockSplitters(x + 1024, y, z, roomNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
roomNumber = baseRoomNumber;
|
roomNumber = baseRoomNumber;
|
||||||
floor = GetFloor(x - 1024, y, z, &roomNumber);
|
floor = GetFloor(x - 1024, y, z, &roomNumber);
|
||||||
if (floor->box != NO_BOX)
|
if (floor->Box != NO_BOX)
|
||||||
{
|
{
|
||||||
if (g_Level.Boxes[floor->box].height == height && (g_Level.Boxes[floor->box].flags & BLOCKABLE) && (g_Level.Boxes[floor->box].flags & BLOCKED))
|
if (g_Level.Boxes[floor->Box].height == height && (g_Level.Boxes[floor->Box].flags & BLOCKABLE) && (g_Level.Boxes[floor->Box].flags & BLOCKED))
|
||||||
ClearMovableBlockSplitters(x - 1024, y, z, roomNumber);
|
ClearMovableBlockSplitters(x - 1024, y, z, roomNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
roomNumber = baseRoomNumber;
|
roomNumber = baseRoomNumber;
|
||||||
floor = GetFloor(x, y, z + 1024, &roomNumber);
|
floor = GetFloor(x, y, z + 1024, &roomNumber);
|
||||||
if (floor->box != NO_BOX)
|
if (floor->Box != NO_BOX)
|
||||||
{
|
{
|
||||||
if (g_Level.Boxes[floor->box].height == height && (g_Level.Boxes[floor->box].flags & BLOCKABLE) && (g_Level.Boxes[floor->box].flags & BLOCKED))
|
if (g_Level.Boxes[floor->Box].height == height && (g_Level.Boxes[floor->Box].flags & BLOCKABLE) && (g_Level.Boxes[floor->Box].flags & BLOCKED))
|
||||||
ClearMovableBlockSplitters(x, y, z + 1024, roomNumber);
|
ClearMovableBlockSplitters(x, y, z + 1024, roomNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
roomNumber = baseRoomNumber;
|
roomNumber = baseRoomNumber;
|
||||||
floor = GetFloor(x, y, z - 1024, &roomNumber);
|
floor = GetFloor(x, y, z - 1024, &roomNumber);
|
||||||
if (floor->box != NO_BOX)
|
if (floor->Box != NO_BOX)
|
||||||
{
|
{
|
||||||
if (g_Level.Boxes[floor->box].height == height && (g_Level.Boxes[floor->box].flags & BLOCKABLE) && (g_Level.Boxes[floor->box].flags & BLOCKED))
|
if (g_Level.Boxes[floor->Box].height == height && (g_Level.Boxes[floor->Box].flags & BLOCKABLE) && (g_Level.Boxes[floor->Box].flags & BLOCKED))
|
||||||
ClearMovableBlockSplitters(x, y, z - 1024, roomNumber);
|
ClearMovableBlockSplitters(x, y, z - 1024, roomNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,8 @@ void InitialiseRaisingBlock(short itemNumber)
|
||||||
|
|
||||||
short roomNumber = item->roomNumber;
|
short roomNumber = item->roomNumber;
|
||||||
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
||||||
if(floor->box != NO_BOX)
|
if(floor->Box != NO_BOX)
|
||||||
g_Level.Boxes[floor->box].flags &= ~BLOCKED;
|
g_Level.Boxes[floor->Box].flags &= ~BLOCKED;
|
||||||
|
|
||||||
if (item->triggerFlags < 0)
|
if (item->triggerFlags < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,7 +15,7 @@ void InitialiseSmashObject(short itemNumber)
|
||||||
|
|
||||||
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
||||||
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
FLOOR_INFO* floor = XZ_GET_SECTOR(r, item->pos.xPos - r->x, item->pos.zPos - r->z);
|
||||||
BOX_INFO* box = &g_Level.Boxes[floor->box];
|
BOX_INFO* box = &g_Level.Boxes[floor->Box];
|
||||||
if (box->flags & 0x8000)
|
if (box->flags & 0x8000)
|
||||||
box->flags |= BLOCKED;
|
box->flags |= BLOCKED;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ void SmashObject(short itemNumber)
|
||||||
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
ROOM_INFO* r = &g_Level.Rooms[item->roomNumber];
|
||||||
int sector = ((item->pos.zPos - r->z) / 1024) + r->xSize * ((item->pos.xPos - r->x) / 1024);
|
int sector = ((item->pos.zPos - r->z) / 1024) + r->xSize * ((item->pos.xPos - r->x) / 1024);
|
||||||
|
|
||||||
BOX_INFO* box = &g_Level.Boxes[r->floor[sector].box];
|
BOX_INFO* box = &g_Level.Boxes[r->floor[sector].Box];
|
||||||
if (box->flags & 0x8000)
|
if (box->flags & 0x8000)
|
||||||
box->flags &= ~BOX_BLOCKED;
|
box->flags &= ~BOX_BLOCKED;
|
||||||
|
|
||||||
|
|
|
@ -140,10 +140,10 @@ int LoadItems()
|
||||||
{
|
{
|
||||||
FLOOR_INFO* floor = &r.floor[((mesh.z - r.z) / 1024) + r.xSize * ((mesh.x - r.x) / 1024)];
|
FLOOR_INFO* floor = &r.floor[((mesh.z - r.z) / 1024) + r.xSize * ((mesh.x - r.x) / 1024)];
|
||||||
|
|
||||||
if (floor->box == NO_BOX)
|
if (floor->Box == NO_BOX)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(g_Level.Boxes[floor->box].flags & BLOCKED))
|
if (!(g_Level.Boxes[floor->Box].flags & BLOCKED))
|
||||||
{
|
{
|
||||||
int fl = floor->floor * 4;
|
int fl = floor->floor * 4;
|
||||||
STATIC_INFO* st = &StaticObjects[mesh.staticNumber];
|
STATIC_INFO* st = &StaticObjects[mesh.staticNumber];
|
||||||
|
@ -645,7 +645,7 @@ void ReadRooms()
|
||||||
FLOOR_INFO floor;
|
FLOOR_INFO floor;
|
||||||
|
|
||||||
floor.TriggerIndex = ReadInt32();
|
floor.TriggerIndex = ReadInt32();
|
||||||
floor.box = ReadInt32();
|
floor.Box = ReadInt32();
|
||||||
floor.Material = ReadInt32();
|
floor.Material = ReadInt32();
|
||||||
floor.Stopper = ReadInt32();
|
floor.Stopper = ReadInt32();
|
||||||
floor.floor = ReadInt32();
|
floor.floor = ReadInt32();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue