mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-11 04:56:49 +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;
|
short roomIndex = NO_ROOM;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
int zFloor = (z - r->z) >> 10;// WALL_SHIFT;
|
int zFloor = (z - r->z) / SECTOR(1);
|
||||||
int xFloor = (x - r->x) >> 10;// WALL_SHIFT;
|
int xFloor = (x - r->x) / SECTOR(1);
|
||||||
|
|
||||||
if (zFloor <= 0)
|
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))
|
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;
|
xPos = item->pos.xPos / SECTOR(1);
|
||||||
zPos = item->pos.zPos >> 10;// WALL_SHIFT;
|
zPos = item->pos.zPos / SECTOR(1);
|
||||||
shiftX = old.x >> 10;// WALL_SHIFT;
|
shiftX = old.x / SECTOR(1);
|
||||||
shiftZ = old.z >> 10;// WALL_SHIFT;
|
shiftZ = old.z / SECTOR(1);
|
||||||
|
|
||||||
if (xPos < shiftX)
|
if (xPos < shiftX)
|
||||||
item->pos.xPos = old.x & (~(WALL_SIZE - 1));
|
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)
|
if (box->flags & creature->LOT.blockMask)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ((item->pos.zPos > (box->left << 10/*WALL_SHIFT*/)) && item->pos.zPos < ((box->right << 10/*WALL_SHIFT*/)) &&
|
if ((item->pos.zPos > (box->left * SECTOR(1))) && item->pos.zPos < ((box->right * SECTOR(1))) &&
|
||||||
(item->pos.xPos > (box->top << 10/*WALL_SHIFT*/)) && item->pos.xPos < ((box->bottom << 10/*WALL_SHIFT*/)))
|
(item->pos.xPos > (box->top * SECTOR(1))) && item->pos.xPos < ((box->bottom * SECTOR(1))))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -946,8 +946,8 @@ void TargetBox(LOT_INFO* LOT, int boxNumber)
|
||||||
boxNumber &= NO_BOX;
|
boxNumber &= NO_BOX;
|
||||||
box = &g_Level.Boxes[boxNumber];
|
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.x = ((box->top * SECTOR(1)) + 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.z = ((box->left * SECTOR(1)) + GetRandomControl() * ((box->right - box->left) - 1) >> 5) + WALL_SIZE / 2;
|
||||||
LOT->requiredBox = boxNumber;
|
LOT->requiredBox = boxNumber;
|
||||||
|
|
||||||
if (LOT->fly == NO_FLYING)
|
if (LOT->fly == NO_FLYING)
|
||||||
|
@ -1111,8 +1111,8 @@ int StalkBox(ITEM_INFO* item, ITEM_INFO* enemy, int boxNumber)
|
||||||
|
|
||||||
box = &g_Level.Boxes[boxNumber];
|
box = &g_Level.Boxes[boxNumber];
|
||||||
|
|
||||||
xrange = STALK_DIST + ((box->bottom - box->top + 3) << 10/*WALL_SHIFT*/);
|
xrange = STALK_DIST + ((box->bottom - box->top + 3) * SECTOR(1));
|
||||||
zrange = STALK_DIST + ((box->right - box->left + 3) << 10/*WALL_SHIFT*/);
|
zrange = STALK_DIST + ((box->right - box->left + 3) * SECTOR(1));
|
||||||
x = (box->top + box->bottom) * SECTOR(1) / 2 - enemy->pos.xPos;
|
x = (box->top + box->bottom) * SECTOR(1) / 2 - enemy->pos.xPos;
|
||||||
z = (box->left + box->right) * SECTOR(1) / 2 - enemy->pos.zPos;
|
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;
|
int xBlock, zBlock, y, newXblock, newZblock;
|
||||||
short roomNumber;
|
short roomNumber;
|
||||||
|
|
||||||
xBlock = item->pos.xPos >> 10;// WALL_SHIFT;
|
xBlock = item->pos.xPos / SECTOR(1);
|
||||||
zBlock = item->pos.zPos >> 10;// WALL_SHIFT;
|
zBlock = item->pos.zPos / SECTOR(1);
|
||||||
y = item->pos.yPos;
|
y = item->pos.yPos;
|
||||||
roomNumber = item->roomNumber;
|
roomNumber = item->roomNumber;
|
||||||
|
|
||||||
|
@ -1176,8 +1176,8 @@ int CreatureVault(short itemNum, short angle, int vault, int shift)
|
||||||
else
|
else
|
||||||
vault = 4;
|
vault = 4;
|
||||||
|
|
||||||
newXblock = item->pos.xPos >> 10;// WALL_SHIFT;
|
newXblock = item->pos.xPos / SECTOR(1);
|
||||||
newZblock = item->pos.zPos >> 10;// WALL_SHIFT;
|
newZblock = item->pos.zPos / SECTOR(1);
|
||||||
|
|
||||||
if (zBlock == newZblock)
|
if (zBlock == newZblock)
|
||||||
{
|
{
|
||||||
|
@ -1186,12 +1186,12 @@ int CreatureVault(short itemNum, short angle, int vault, int shift)
|
||||||
|
|
||||||
if (xBlock < newXblock)
|
if (xBlock < newXblock)
|
||||||
{
|
{
|
||||||
item->pos.xPos = (newXblock << 10/*WALL_SHIFT*/) - shift;
|
item->pos.xPos = (newXblock * SECTOR(1)) - shift;
|
||||||
item->pos.yRot = ANGLE(90);
|
item->pos.yRot = ANGLE(90);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item->pos.xPos = (xBlock << 10/*WALL_SHIFT*/) + shift;
|
item->pos.xPos = (xBlock * SECTOR(1)) + shift;
|
||||||
item->pos.yRot = -ANGLE(90);
|
item->pos.yRot = -ANGLE(90);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1199,12 +1199,12 @@ int CreatureVault(short itemNum, short angle, int vault, int shift)
|
||||||
{
|
{
|
||||||
if (zBlock < newZblock)
|
if (zBlock < newZblock)
|
||||||
{
|
{
|
||||||
item->pos.zPos = (newZblock << 10/*WALL_SHIFT*/) - shift;
|
item->pos.zPos = (newZblock * SECTOR(1)) - shift;
|
||||||
item->pos.yRot = 0;
|
item->pos.yRot = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item->pos.zPos = (zBlock << 10/*WALL_SHIFT*/) + shift;
|
item->pos.zPos = (zBlock * SECTOR(1)) + shift;
|
||||||
item->pos.yRot = -ANGLE(180);
|
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;
|
return TARGET_TYPE::NO_TARGET;
|
||||||
|
|
||||||
box = &g_Level.Boxes[boxNumber];
|
box = &g_Level.Boxes[boxNumber];
|
||||||
boxLeft = ((int)box->left << 10/*WALL_SHIFT*/);
|
boxLeft = ((int)box->left * SECTOR(1));
|
||||||
boxRight = ((int)box->right << 10/*WALL_SHIFT*/) - 1;
|
boxRight = ((int)box->right * SECTOR(1)) - 1;
|
||||||
boxTop = ((int)box->top << 10/*WALL_SHIFT*/);
|
boxTop = ((int)box->top * SECTOR(1));
|
||||||
boxBottom = ((int)box->bottom << 10/*WALL_SHIFT*/) - 1;
|
boxBottom = ((int)box->bottom * SECTOR(1)) - 1;
|
||||||
left = boxLeft;
|
left = boxLeft;
|
||||||
right = boxRight;
|
right = boxRight;
|
||||||
top = boxTop;
|
top = boxTop;
|
||||||
|
@ -1794,10 +1794,10 @@ TARGET_TYPE CalculateTarget(PHD_VECTOR* target, ITEM_INFO* item, LOT_INFO* LOT)
|
||||||
target->y = box->height - WALL_SIZE;
|
target->y = box->height - WALL_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
boxLeft = ((int)box->left << 10/*WALL_SHIFT*/);
|
boxLeft = ((int)box->left * SECTOR(1));
|
||||||
boxRight = ((int)box->right << 10/*WALL_SHIFT*/) - 1;
|
boxRight = ((int)box->right * SECTOR(1)) - 1;
|
||||||
boxTop = ((int)box->top << 10/*WALL_SHIFT*/);
|
boxTop = ((int)box->top * SECTOR(1));
|
||||||
boxBottom = ((int)box->bottom << 10/*WALL_SHIFT*/) - 1;
|
boxBottom = ((int)box->bottom * SECTOR(1)) - 1;
|
||||||
|
|
||||||
if (item->pos.zPos >= boxLeft && item->pos.zPos <= boxRight &&
|
if (item->pos.zPos >= boxLeft && item->pos.zPos <= boxRight &&
|
||||||
item->pos.xPos >= boxTop && item->pos.xPos <= boxBottom)
|
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)
|
int FindGridShift(int x, int z)
|
||||||
{
|
{
|
||||||
if ((x >> 10/*WALL_SHIFT*/) == (z >> 10/*WALL_SHIFT*/))
|
if ((x / SECTOR(1)) == (z / SECTOR(1)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((z >> 10/*WALL_SHIFT*/) <= (x >> 10/*WALL_SHIFT*/))
|
if ((z / SECTOR(1)) <= (x / SECTOR(1)))
|
||||||
return (-1 - (x & (WALL_SIZE - 1)));
|
return (-1 - (x & (WALL_SIZE - 1)));
|
||||||
else
|
else
|
||||||
return ((WALL_SIZE + 1) - (x & (WALL_SIZE - 1)));
|
return ((WALL_SIZE + 1) - (x & (WALL_SIZE - 1)));
|
||||||
|
|
|
@ -2571,8 +2571,8 @@ int GetWaterHeight(int x, int y, int z, short roomNumber)
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
int xBlock = (x - r->x) >> 10;// WALL_SHIFT;
|
int xBlock = (x - r->x) / SECTOR(1);
|
||||||
int zBlock = (z - r->z) >> 10;// WALL_SHIFT;
|
int zBlock = (z - r->z) / SECTOR(1);
|
||||||
|
|
||||||
if (zBlock <= 0)
|
if (zBlock <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,7 +14,7 @@ void ClearItem(short itemNum)
|
||||||
|
|
||||||
item->collidable = true;
|
item->collidable = true;
|
||||||
item->data = NULL;
|
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->TOSSPAD = item->pos.yRot & 0xE000;
|
||||||
item->itemFlags[2] = item->roomNumber | ((item->pos.yPos - room->minfloor) & 0xFF00);
|
item->itemFlags[2] = item->roomNumber | ((item->pos.yPos - room->minfloor) & 0xFF00);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue