From f9a5e01a15625573e2bf2ded804e270a491ad78d Mon Sep 17 00:00:00 2001 From: Troye Date: Wed, 8 Sep 2021 03:01:32 -0500 Subject: [PATCH] use SECTOR instead of WALL_SHIFT --- TR5Main/Game/Lara/lara_swim.cpp | 4 +-- TR5Main/Game/box.cpp | 52 ++++++++++++++++----------------- TR5Main/Game/collide.cpp | 4 +-- TR5Main/Game/control.cpp | 4 +-- TR5Main/Game/items.cpp | 2 +- 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/TR5Main/Game/Lara/lara_swim.cpp b/TR5Main/Game/Lara/lara_swim.cpp index 6eb1cedc1..af8c5b52f 100644 --- a/TR5Main/Game/Lara/lara_swim.cpp +++ b/TR5Main/Game/Lara/lara_swim.cpp @@ -116,8 +116,8 @@ int GetWaterDepth(int x, int y, int z, short roomNumber) short roomIndex = NO_ROOM; do { - int zFloor = (z - r->z) >> 10;// WALL_SHIFT; - int xFloor = (x - r->x) >> 10;// WALL_SHIFT; + int zFloor = (z - r->z) / SECTOR(1); + int xFloor = (x - r->x) / SECTOR(1); if (zFloor <= 0) { diff --git a/TR5Main/Game/box.cpp b/TR5Main/Game/box.cpp index 2f676a4c4..1feb17e12 100644 --- a/TR5Main/Game/box.cpp +++ b/TR5Main/Game/box.cpp @@ -502,10 +502,10 @@ int CreatureAnimation(short itemNumber, short angle, short tilt) 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 >> 10;// WALL_SHIFT; - zPos = item->pos.zPos >> 10;// WALL_SHIFT; - shiftX = old.x >> 10;// WALL_SHIFT; - shiftZ = old.z >> 10;// WALL_SHIFT; + xPos = item->pos.xPos / SECTOR(1); + zPos = item->pos.zPos / SECTOR(1); + shiftX = old.x / SECTOR(1); + shiftZ = old.z / SECTOR(1); if (xPos < shiftX) item->pos.xPos = old.x & (~(WALL_SIZE - 1)); @@ -909,8 +909,8 @@ int ValidBox(ITEM_INFO* item, short zoneNumber, short boxNumber) if (box->flags & creature->LOT.blockMask) return false; - if ((item->pos.zPos > (box->left << 10/*WALL_SHIFT*/)) && item->pos.zPos < ((box->right << 10/*WALL_SHIFT*/)) && - (item->pos.xPos > (box->top << 10/*WALL_SHIFT*/)) && item->pos.xPos < ((box->bottom << 10/*WALL_SHIFT*/))) + if ((item->pos.zPos > (box->left * SECTOR(1))) && item->pos.zPos < ((box->right * SECTOR(1))) && + (item->pos.xPos > (box->top * SECTOR(1))) && item->pos.xPos < ((box->bottom * SECTOR(1)))) return false; return true; @@ -946,8 +946,8 @@ void TargetBox(LOT_INFO* LOT, int boxNumber) boxNumber &= NO_BOX; box = &g_Level.Boxes[boxNumber]; - LOT->target.x = ((box->top << 10/*WALL_SHIFT*/) + GetRandomControl() * ((box->bottom - box->top) - 1) >> 5) + WALL_SIZE / 2; - LOT->target.z = ((box->left << 10/*WALL_SHIFT*/) + GetRandomControl() * ((box->right - box->left) - 1) >> 5) + WALL_SIZE / 2; + LOT->target.x = ((box->top * SECTOR(1)) + GetRandomControl() * ((box->bottom - box->top) - 1) >> 5) + WALL_SIZE / 2; + LOT->target.z = ((box->left * SECTOR(1)) + GetRandomControl() * ((box->right - box->left) - 1) >> 5) + WALL_SIZE / 2; LOT->requiredBox = boxNumber; if (LOT->fly == NO_FLYING) @@ -1111,8 +1111,8 @@ int StalkBox(ITEM_INFO* item, ITEM_INFO* enemy, int boxNumber) box = &g_Level.Boxes[boxNumber]; - xrange = STALK_DIST + ((box->bottom - box->top + 3) << 10/*WALL_SHIFT*/); - zrange = STALK_DIST + ((box->right - box->left + 3) << 10/*WALL_SHIFT*/); + xrange = STALK_DIST + ((box->bottom - box->top + 3) * SECTOR(1)); + zrange = STALK_DIST + ((box->right - box->left + 3) * SECTOR(1)); x = (box->top + box->bottom) * SECTOR(1) / 2 - enemy->pos.xPos; z = (box->left + box->right) * SECTOR(1) / 2 - enemy->pos.zPos; @@ -1150,8 +1150,8 @@ int CreatureVault(short itemNum, short angle, int vault, int shift) int xBlock, zBlock, y, newXblock, newZblock; short roomNumber; - xBlock = item->pos.xPos >> 10;// WALL_SHIFT; - zBlock = item->pos.zPos >> 10;// WALL_SHIFT; + xBlock = item->pos.xPos / SECTOR(1); + zBlock = item->pos.zPos / SECTOR(1); y = item->pos.yPos; roomNumber = item->roomNumber; @@ -1176,8 +1176,8 @@ int CreatureVault(short itemNum, short angle, int vault, int shift) else vault = 4; - newXblock = item->pos.xPos >> 10;// WALL_SHIFT; - newZblock = item->pos.zPos >> 10;// WALL_SHIFT; + newXblock = item->pos.xPos / SECTOR(1); + newZblock = item->pos.zPos / SECTOR(1); if (zBlock == newZblock) { @@ -1186,12 +1186,12 @@ int CreatureVault(short itemNum, short angle, int vault, int shift) if (xBlock < newXblock) { - item->pos.xPos = (newXblock << 10/*WALL_SHIFT*/) - shift; + item->pos.xPos = (newXblock * SECTOR(1)) - shift; item->pos.yRot = ANGLE(90); } else { - item->pos.xPos = (xBlock << 10/*WALL_SHIFT*/) + shift; + item->pos.xPos = (xBlock * SECTOR(1)) + shift; item->pos.yRot = -ANGLE(90); } } @@ -1199,12 +1199,12 @@ int CreatureVault(short itemNum, short angle, int vault, int shift) { if (zBlock < newZblock) { - item->pos.zPos = (newZblock << 10/*WALL_SHIFT*/) - shift; + item->pos.zPos = (newZblock * SECTOR(1)) - shift; item->pos.yRot = 0; } else { - item->pos.zPos = (zBlock << 10/*WALL_SHIFT*/) + shift; + item->pos.zPos = (zBlock * SECTOR(1)) + shift; item->pos.yRot = -ANGLE(180); } } @@ -1769,10 +1769,10 @@ TARGET_TYPE CalculateTarget(PHD_VECTOR* target, ITEM_INFO* item, LOT_INFO* LOT) return TARGET_TYPE::NO_TARGET; box = &g_Level.Boxes[boxNumber]; - boxLeft = ((int)box->left << 10/*WALL_SHIFT*/); - boxRight = ((int)box->right << 10/*WALL_SHIFT*/) - 1; - boxTop = ((int)box->top << 10/*WALL_SHIFT*/); - boxBottom = ((int)box->bottom << 10/*WALL_SHIFT*/) - 1; + boxLeft = ((int)box->left * SECTOR(1)); + boxRight = ((int)box->right * SECTOR(1)) - 1; + boxTop = ((int)box->top * SECTOR(1)); + boxBottom = ((int)box->bottom * SECTOR(1)) - 1; left = boxLeft; right = boxRight; top = boxTop; @@ -1794,10 +1794,10 @@ TARGET_TYPE CalculateTarget(PHD_VECTOR* target, ITEM_INFO* item, LOT_INFO* LOT) target->y = box->height - WALL_SIZE; } - boxLeft = ((int)box->left << 10/*WALL_SHIFT*/); - boxRight = ((int)box->right << 10/*WALL_SHIFT*/) - 1; - boxTop = ((int)box->top << 10/*WALL_SHIFT*/); - boxBottom = ((int)box->bottom << 10/*WALL_SHIFT*/) - 1; + boxLeft = ((int)box->left * SECTOR(1)); + boxRight = ((int)box->right * SECTOR(1)) - 1; + boxTop = ((int)box->top * SECTOR(1)); + boxBottom = ((int)box->bottom * SECTOR(1)) - 1; if (item->pos.zPos >= boxLeft && item->pos.zPos <= boxRight && item->pos.xPos >= boxTop && item->pos.xPos <= boxBottom) diff --git a/TR5Main/Game/collide.cpp b/TR5Main/Game/collide.cpp index 54749a2c0..9bb6deee6 100644 --- a/TR5Main/Game/collide.cpp +++ b/TR5Main/Game/collide.cpp @@ -344,10 +344,10 @@ void UpdateLaraRoom(ITEM_INFO* item, int height) int FindGridShift(int x, int z) { - if ((x >> 10/*WALL_SHIFT*/) == (z >> 10/*WALL_SHIFT*/)) + if ((x / SECTOR(1)) == (z / SECTOR(1))) return 0; - if ((z >> 10/*WALL_SHIFT*/) <= (x >> 10/*WALL_SHIFT*/)) + if ((z / SECTOR(1)) <= (x / SECTOR(1))) return (-1 - (x & (WALL_SIZE - 1))); else return ((WALL_SIZE + 1) - (x & (WALL_SIZE - 1))); diff --git a/TR5Main/Game/control.cpp b/TR5Main/Game/control.cpp index 64a87d0f4..a25a4e792 100644 --- a/TR5Main/Game/control.cpp +++ b/TR5Main/Game/control.cpp @@ -2571,8 +2571,8 @@ int GetWaterHeight(int x, int y, int z, short roomNumber) do { - int xBlock = (x - r->x) >> 10;// WALL_SHIFT; - int zBlock = (z - r->z) >> 10;// WALL_SHIFT; + int xBlock = (x - r->x) / SECTOR(1); + int zBlock = (z - r->z) / SECTOR(1); if (zBlock <= 0) { diff --git a/TR5Main/Game/items.cpp b/TR5Main/Game/items.cpp index 9b77bd3e6..8d734ebc9 100644 --- a/TR5Main/Game/items.cpp +++ b/TR5Main/Game/items.cpp @@ -14,7 +14,7 @@ void ClearItem(short itemNum) item->collidable = true; item->data = NULL; - item->drawRoom = (((item->pos.zPos - room->z) >> 10/*WALL_SHIFT*/) & 0xFF) | ((((item->pos.xPos - room->x) >> 10/*WALL_SHIFT*/) & 0xFF) << 8); + item->drawRoom = (((item->pos.zPos - room->z) / SECTOR(1)) & 0xFF) | ((((item->pos.xPos - room->x) / SECTOR(1)) & 0xFF) << 8); item->TOSSPAD = item->pos.yRot & 0xE000; item->itemFlags[2] = item->roomNumber | ((item->pos.yPos - room->minfloor) & 0xFF00); }