From 3a07c05af7027232efeb7792010ce3ea1f69a78e Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Mon, 21 Nov 2022 13:05:32 +1100 Subject: [PATCH] - Duke: Wrap calls to `player_struct::PlayerNowPosition.X`. --- source/games/duke/src/actors.cpp | 4 ++-- source/games/duke/src/actors_d.cpp | 4 ++-- source/games/duke/src/actors_r.cpp | 6 +++--- source/games/duke/src/gameexec.cpp | 2 +- source/games/duke/src/player.cpp | 6 +++--- source/games/duke/src/player_r.cpp | 4 ++-- source/games/duke/src/savegame.cpp | 2 +- source/games/duke/src/types.h | 4 ++++ 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index c3eb6daad..8d90c92b7 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -374,7 +374,7 @@ void movedummyplayers(void) } } - act->spr.pos.X += (ps[p].PlayerNowPosition.X - ps[p].PlayerOldPosition.X); + act->spr.pos.X += (ps[p].posX() - ps[p].PlayerOldPosition.X); act->spr.pos.Y += (ps[p].PlayerNowPosition.Y - ps[p].PlayerOldPosition.Y); SetActor(act, act->spr.pos); } @@ -1868,7 +1868,7 @@ void handle_se00(DDukeActor* actor) ps[p].bobpos += (result - ps[p].posXY()); - ps[p].PlayerNowPosition.X = result.X; + ps[p].posX() = result.X; ps[p].PlayerNowPosition.Y = result.Y; auto psp = ps[p].GetActor(); diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index 0a9101316..670dd1ec7 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -1367,7 +1367,7 @@ void movetransports_d(void) if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SB_JUMP))) || (ps[p].jetpack_on && PlayerInput(p, SB_CROUCH))) { - ps[p].PlayerNowPosition.X += Owner->spr.pos.X - act->spr.pos.X; + ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X; ps[p].PlayerNowPosition.Y += Owner->spr.pos.Y - act->spr.pos.Y; ps[p].backupxy(); @@ -1425,7 +1425,7 @@ void movetransports_d(void) if (k == 1) { - ps[p].PlayerNowPosition.X += Owner->spr.pos.X - act->spr.pos.X; + ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X; ps[p].PlayerNowPosition.Y += Owner->spr.pos.Y - act->spr.pos.Y; ps[p].backupxy(); diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 64785bc8f..174f57aa8 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -1252,7 +1252,7 @@ void movetransports_r(void) if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && PlayerInput(p, SB_JUMP)) || (ps[p].jetpack_on && PlayerInput(p, SB_CROUCH))) { - ps[p].PlayerNowPosition.X += Owner->spr.pos.X - act->spr.pos.X; + ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X; ps[p].PlayerNowPosition.Y += Owner->spr.pos.Y - act->spr.pos.Y; ps[p].backupxy(); @@ -1319,7 +1319,7 @@ void movetransports_r(void) if (k == 1) { - ps[p].PlayerNowPosition.X += Owner->spr.pos.X - act->spr.pos.X; + ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X; ps[p].PlayerNowPosition.Y += Owner->spr.pos.Y - act->spr.pos.Y; ps[p].backupxy(); @@ -1334,7 +1334,7 @@ void movetransports_r(void) } else if (isRRRA() && k == 2) { - ps[p].PlayerOldPosition.X = ps[p].PlayerNowPosition.X += Owner->spr.pos.X - act->spr.pos.X; + ps[p].PlayerOldPosition.X = ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X; ps[p].PlayerOldPosition.Y = ps[p].PlayerNowPosition.Y += Owner->spr.pos.Y - act->spr.pos.Y; ps[p].backupxy(); diff --git a/source/games/duke/src/gameexec.cpp b/source/games/duke/src/gameexec.cpp index 2e400ef84..86a4bef92 100644 --- a/source/games/duke/src/gameexec.cpp +++ b/source/games/duke/src/gameexec.cpp @@ -326,7 +326,7 @@ void DoPlayer(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, break; case PLAYER_POSX: // oh, my... :( Writing to these has been disabled until I know how to do it without the engine shitting all over itself. - if (!bSet) SetGameVarID(lVar2, int(ps[iPlayer].PlayerNowPosition.X * (1/maptoworld)), sActor, sPlayer); + if (!bSet) SetGameVarID(lVar2, int(ps[iPlayer].posX() * (1/maptoworld)), sActor, sPlayer); break; case PLAYER_POSY: diff --git a/source/games/duke/src/player.cpp b/source/games/duke/src/player.cpp index 4851dce95..21117f71e 100644 --- a/source/games/duke/src/player.cpp +++ b/source/games/duke/src/player.cpp @@ -507,7 +507,7 @@ void footprints(int snum) while (auto act = it.Next()) { if (act->spr.picnum == TILE_FOOTPRINTS || act->spr.picnum == TILE_FOOTPRINTS2 || act->spr.picnum == TILE_FOOTPRINTS3 || act->spr.picnum == TILE_FOOTPRINTS4) - if (abs(act->spr.pos.X - p->PlayerNowPosition.X) < 24) + if (abs(act->spr.pos.X - p->posX()) < 24) if (abs(act->spr.pos.Y - p->PlayerNowPosition.Y) < 24) { j = 1; @@ -765,12 +765,12 @@ void player_struct::backuppos(bool noclipping) { if (!noclipping) { - PlayerOldPosition.X = PlayerNowPosition.X; + PlayerOldPosition.X = posX(); PlayerOldPosition.Y = PlayerNowPosition.Y; } else { - PlayerNowPosition.X = PlayerOldPosition.X; + posX() = PlayerOldPosition.X; PlayerNowPosition.Y = PlayerOldPosition.Y; } diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index 920bea025..ce273a6c0 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -3990,7 +3990,7 @@ void OnMotorcycle(player_struct *p, DDukeActor* motosprite) { if (motosprite) { - p->PlayerNowPosition.X = motosprite->spr.pos.X; + p->posX() = motosprite->spr.pos.X; p->PlayerNowPosition.Y = motosprite->spr.pos.Y; p->angle.ang = motosprite->spr.angle; p->ammo_amount[MOTORCYCLE_WEAPON] = motosprite->saved_ammo; @@ -4065,7 +4065,7 @@ void OnBoat(player_struct *p, DDukeActor* boat) { if (boat) { - p->PlayerNowPosition.X = boat->spr.pos.X; + p->posX() = boat->spr.pos.X; p->PlayerNowPosition.Y = boat->spr.pos.Y; p->angle.ang = boat->spr.angle; p->ammo_amount[BOAT_WEAPON] = boat->saved_ammo; diff --git a/source/games/duke/src/savegame.cpp b/source/games/duke/src/savegame.cpp index 629c591d4..b11a558cb 100644 --- a/source/games/duke/src/savegame.cpp +++ b/source/games/duke/src/savegame.cpp @@ -76,7 +76,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, player_struct& w, { if (arc.BeginObject(keyname)) { - arc("posx", w.PlayerNowPosition.X) + arc("posx", w.posX()) ("posy", w.PlayerNowPosition.Y) ("posz", w.PlayerNowPosition.Z) ("angle", w.angle) diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h index 557551bcc..6897d6221 100644 --- a/source/games/duke/src/types.h +++ b/source/games/duke/src/types.h @@ -358,6 +358,10 @@ struct player_struct } + double& posX() + { + return PlayerNowPosition.X; + } DVector2& posXY() { return PlayerNowPosition.XY();