- flag names in SetupGibWallState and TranslateSector

This commit is contained in:
Christoph Oelckers 2021-12-18 15:18:15 +01:00
parent adbf5177a7
commit 1883aad7c2
2 changed files with 20 additions and 16 deletions

View file

@ -107,8 +107,12 @@ enum EWallBits // names are from Shadow Warrior
CSTAT_WALL_ROTATE_90 = 1<<12, // EDuke32 extension supported by Raze
CSTAT_WALL_BLOCK_ACTOR = 1<<14, // SW specific. Also used by Blood for different purposes
CSTAT_WALL_WARP_HITSCAN = 1<<15, // SW specific. Also used by Blood for different purposes
CSTAT_WALL_BLOCK_ACTOR = 1<<14, // SW specific.
CSTAT_WALL_WARP_HITSCAN = 1<<15, // SW specific.
CSTAT_WALL_MOVE_FORWARD = 1 << 14, // Blood specific
CSTAT_WALL_MOVE_BACKWARD = 1 << 15, // Blood specific
CSTAT_WALL_MOVE_MASK = CSTAT_WALL_MOVE_FORWARD | CSTAT_WALL_MOVE_BACKWARD
};

View file

@ -613,26 +613,26 @@ void SetupGibWallState(walltype *pWall, XWALL *pXWall)
pWall2 = pWall->nextWall();
if (pXWall->state)
{
pWall->cstat &= ~65;
pWall->cstat &= ~(CSTAT_WALL_BLOCK | CSTAT_WALL_BLOCK_HITSCAN);
if (pWall2)
{
pWall2->cstat &= ~65;
pWall->cstat &= ~16;
pWall2->cstat &= ~16;
pWall2->cstat &= ~(CSTAT_WALL_BLOCK | CSTAT_WALL_BLOCK_HITSCAN);
pWall->cstat &= ~CSTAT_WALL_MASKED;
pWall2->cstat &= ~CSTAT_WALL_MASKED;
}
return;
}
bool bVector = pXWall->triggerVector != 0;
pWall->cstat |= 1;
pWall->cstat |= CSTAT_WALL_BLOCK;
if (bVector)
pWall->cstat |= 64;
pWall->cstat |= CSTAT_WALL_BLOCK_HITSCAN;
if (pWall2)
{
pWall2->cstat |= 1;
pWall2->cstat |= CSTAT_WALL_BLOCK;
if (bVector)
pWall2->cstat |= 64;
pWall->cstat |= 16;
pWall2->cstat |= 16;
pWall2->cstat |= CSTAT_WALL_BLOCK_HITSCAN;
pWall->cstat |= CSTAT_WALL_MASKED;
pWall2->cstat |= CSTAT_WALL_MASKED;
}
}
@ -825,12 +825,12 @@ void TranslateSector(sectortype* pSector, int a2, int a3, int a4, int a5, int a6
auto p2Wall = wal.point2Wall();
x = wal.baseWall.x;
y = wal.baseWall.y;
if (wal.cstat&16384)
if (wal.cstat & CSTAT_WALL_MOVE_FORWARD)
{
if (vbp)
RotatePoint((int*)&x, (int*)&y, vbp, a4, a5);
DragPoint(&wal, x+vc-a4, y+v8-a5);
if ((p2Wall->cstat&49152) == 0)
if ((p2Wall->cstat & CSTAT_WALL_MOVE_MASK) == 0)
{
x = p2Wall->baseWall.x;
y = p2Wall->baseWall.y;
@ -840,12 +840,12 @@ void TranslateSector(sectortype* pSector, int a2, int a3, int a4, int a5, int a6
}
continue;
}
if (wal.cstat&32768)
if (wal.cstat & CSTAT_WALL_MOVE_BACKWARD)
{
if (vbp)
RotatePoint((int*)&x, (int*)&y, -vbp, a4, a5);
DragPoint(&wal, x-(vc-a4), y-(v8-a5));
if ((p2Wall->cstat&49152) == 0)
if ((p2Wall->cstat & CSTAT_WALL_MOVE_MASK) == 0)
{
x = p2Wall->baseWall.x;
y = p2Wall->baseWall.y;