From bf0f0345b363f05b38be19c3c836083da652a45d Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Thu, 24 Nov 2022 13:24:50 +1100 Subject: [PATCH] - SW: Remove most `PLAYER::posSet()` calls. --- source/games/sw/src/draw.cpp | 5 +++-- source/games/sw/src/osdcmds.cpp | 8 ++++++-- source/games/sw/src/player.cpp | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/source/games/sw/src/draw.cpp b/source/games/sw/src/draw.cpp index 3788fc2c3..b769e8c22 100644 --- a/source/games/sw/src/draw.cpp +++ b/source/games/sw/src/draw.cpp @@ -964,8 +964,9 @@ void post_analyzesprites(tspriteArray& tsprites) std::pair GameInterface::GetCoordinates() { - PLAYER* pp = Player + myconnectindex; - return std::make_pair(pp->posGet(), pp->angle.ang); + auto ppActor = Player[myconnectindex].actor; + if (!ppActor) return std::make_pair(DVector3(DBL_MAX, 0, 0), nullAngle); + return std::make_pair(ppActor->spr.pos, ppActor->spr.angle); } //--------------------------------------------------------------------------- diff --git a/source/games/sw/src/osdcmds.cpp b/source/games/sw/src/osdcmds.cpp index ab98243f9..380a70364 100644 --- a/source/games/sw/src/osdcmds.cpp +++ b/source/games/sw/src/osdcmds.cpp @@ -56,9 +56,13 @@ BEGIN_SW_NS void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang) { - Player->posSet(DVector3(x,y,z)); + auto pp = &Player[myconnectindex]; + auto ppActor = pp->actor; - Player->posprevSet(Player->posGet()); + if (!ppActor) return; + + ppActor->spr.pos = DVector3(x,y,z); + ppActor->backuppos(); if (ang != DAngle::fromDeg(INT_MIN)) { diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index ebc6a40ff..8a3d70be3 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -1312,8 +1312,8 @@ void DoPlayerTeleportPause(PLAYER* pp) void DoPlayerTeleportToSprite(PLAYER* pp, DVector3& pos, DAngle ang) { pp->angle.ang = pp->angle.oang = ang; - pp->posSet(pos.plusZ(-PLAYER_HEIGHTF)); - pp->posprevSet(pos.plusZ(-PLAYER_HEIGHTF)); + pp->actor->spr.pos = pos; + pp->actor->backuppos(); pp->posoldXY() = pp->actor->spr.pos.XY(); updatesector(pp->posGet(), &pp->cursector); @@ -2030,7 +2030,7 @@ void PlayerCheckValidMove(PLAYER* pp) { if (!pp->insector()) { - pp->posSet(pp->posoldGet()); + pp->actor->spr.pos = pp->posoldGet().plusZ(-pp->actor->viewzoffset); pp->cursector = pp->lastcursector; } } @@ -5304,7 +5304,7 @@ void RemoteToPlayer(PLAYER* pp) pp->setcursector(pp->remote.cursectp); pp->lastcursector = pp->remote.lastcursectp; - pp->posSet(pp->remote.pos); + pp->actor->spr.pos = pp->remote.pos.plusZ(-pp->actor->viewzoffset); pp->vect = pp->remote.vect; pp->ovect = pp->remote.ovect;