mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-10 20:46:47 +03:00
use SECTOR instead of WALL_SHIFT
This commit is contained in:
parent
6aabe62297
commit
f9a5e01a15
5 changed files with 33 additions and 33 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)));
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue