diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index 41029db06..5c1bf77b9 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -1708,8 +1708,6 @@ BEGIN_SW_NS struct PLAYER { - DVector3 PlayerOldPosition; - DSWActor* actor; // this may not be a TObjPtr! TObjPtr lowActor, highActor; TObjPtr remoteActor; @@ -1890,21 +1888,6 @@ struct PLAYER return actor->viewzoffset + height; } - - DVector2& posoldXY() - { - return PlayerOldPosition.XY(); - } - - void posoldSet(const DVector3& val) - { - PlayerOldPosition = val; - } - DVector3 posoldGet() - { - return PlayerOldPosition; - } - void setHeightAndZ(const double newz, const double newheight) { actor->spr.pos.Z = newz; diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index 891c4a211..b73f7b0a7 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -1314,7 +1314,6 @@ void DoPlayerTeleportToSprite(PLAYER* pp, DVector3& pos, DAngle ang) pp->angle.ang = pp->angle.oang = ang; pp->actor->spr.pos = pos; pp->actor->backuppos(); - pp->posoldXY() = pp->actor->spr.pos.XY(); updatesector(pp->actor->getPosWithOffsetZ(), &pp->cursector); pp->Flags2 |= (PF2_TELEPORTED); @@ -1328,7 +1327,6 @@ void DoPlayerTeleportToSprite(PLAYER* pp, DVector3& pos, DAngle ang) void DoPlayerTeleportToOffset(PLAYER* pp) { - pp->posoldXY() = pp->actor->spr.pos.XY(); pp->actor->backupvec2(); updatesector(pp->actor->getPosWithOffsetZ(), &pp->cursector); @@ -1693,7 +1691,7 @@ void DoPlayerBob(PLAYER* pp) { double amt; - double dist = (pp->actor->spr.pos.XY() - pp->posoldXY()).Length(); + double dist = (pp->actor->spr.pos.XY() - pp->actor->opos.XY()).Length(); if (dist > 32) dist = 0; @@ -2026,7 +2024,7 @@ void PlayerCheckValidMove(PLAYER* pp) { if (!pp->insector()) { - pp->actor->spr.pos = pp->posoldGet().plusZ(-pp->actor->viewzoffset); + pp->actor->restorepos(); pp->cursector = pp->lastcursector; } } @@ -2090,7 +2088,6 @@ void DoPlayerMove(PLAYER* pp) DoPlayerTurn(pp, pp->input.avel, 1); } - pp->posoldSet(pp->actor->getPosWithOffsetZ()); pp->lastcursector = pp->cursector; if (PLAYER_MOVING(pp) == 0) @@ -6568,8 +6565,6 @@ void DoPlayerRun(PLAYER* pp) } } - DoPlayerBob(pp); - if (pp->WadeDepth) { DoPlayerBeginWade(pp); @@ -6616,6 +6611,8 @@ void DoPlayerRun(PLAYER* pp) pp->setHeightAndZ(pp->loz, PLAYER_HEIGHTF); } + DoPlayerBob(pp); + // Adjust height moving up and down sectors DoPlayerHeight(pp); } diff --git a/source/games/sw/src/save.cpp b/source/games/sw/src/save.cpp index f43f44172..6ce80a3dc 100644 --- a/source/games/sw/src/save.cpp +++ b/source/games/sw/src/save.cpp @@ -480,9 +480,6 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, PLAYER& w, PLAYER* ("recoil_ndx", w.recoil_ndx) ("recoil_horizoff", w.recoil_horizoff) ("recoil_ohorizoff", w.recoil_ohorizoff) - ("oldposx", w.PlayerOldPosition.X) - ("oldposy", w.PlayerOldPosition.Y) - ("oldposz", w.PlayerOldPosition.Z) ("revolvex", w.Revolve.X) ("revolvey", w.Revolve.Y) ("RevolveDeltaAng", w.RevolveDeltaAng) diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 6432b713e..3b5b2c4e2 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -1544,7 +1544,6 @@ void PreMapCombineFloors(void) if (itsect == dasect) { pp->actor->spr.pos.XY() += dv; - pp->posoldXY() = pp->actor->spr.pos.XY(); pp->actor->backupvec2(); break; }