use SECTOR instead of WALL_SHIFT

This commit is contained in:
Troye 2021-09-08 03:01:32 -05:00
parent 6aabe62297
commit f9a5e01a15
5 changed files with 33 additions and 33 deletions

View file

@ -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)
{

View file

@ -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)

View file

@ -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)));

View file

@ -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)
{

View file

@ -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);
}