Localized fix to its own field

This commit is contained in:
Boondorl 2023-01-19 15:44:41 -05:00 committed by Rachael Alexanderson
commit fe1acc7f40
5 changed files with 13 additions and 11 deletions

View file

@ -310,6 +310,7 @@ void AActor::Serialize(FSerializer &arc)
A("smokecounter", smokecounter)
("blockingmobj", BlockingMobj)
A("blockingline", BlockingLine)
A("movementblockingline", MovementBlockingLine)
A("blocking3dfloor", Blocking3DFloor)
A("blockingceiling", BlockingCeiling)
A("blockingfloor", BlockingFloor)
@ -1971,7 +1972,6 @@ static double P_XYMovement (AActor *mo, DVector2 scroll)
FCheckPosition tm(!!(mo->flags2 & MF2_RIP));
DAngle oldangle = mo->Angles.Yaw;
line_t* blocker = nullptr;
do
{
if (mo->Level->i_compatflags & COMPATF_WALLRUN) pushtime++;
@ -1987,7 +1987,7 @@ static double P_XYMovement (AActor *mo, DVector2 scroll)
{
// blocked move
AActor *BlockingMobj = mo->BlockingMobj;
line_t *BlockingLine = blocker = mo->BlockingLine;
line_t *BlockingLine = mo->MovementBlockingLine = mo->BlockingLine;
// [ZZ]
if (!BlockingLine && !BlockingMobj) // hit floor or ceiling while XY movement - sector actions
@ -2189,9 +2189,6 @@ static double P_XYMovement (AActor *mo, DVector2 scroll)
}
} while (++step <= steps);
// Correctly update whether the Actor was truly blocked by a wall or not
mo->BlockingLine = blocker;
// Friction
if (player && player->mo == mo && player->cheats & CF_NOVELOCITY)
@ -4061,7 +4058,7 @@ void AActor::Tick ()
// Handle X and Y velocities
BlockingMobj = nullptr;
BlockingLine = nullptr;
MovementBlockingLine = nullptr;
sector_t* oldBlockingCeiling = BlockingCeiling;
sector_t* oldBlockingFloor = BlockingFloor;
Blocking3DFloor = nullptr;