- Duke: Wrap calls to player_struct::PlayerOldPosition.X.

This commit is contained in:
Mitchell Richters 2022-11-15 18:34:04 +11:00 committed by Christoph Oelckers
parent fa16d5d344
commit 823c5a7a47
5 changed files with 11 additions and 7 deletions

View file

@ -374,7 +374,7 @@ void movedummyplayers(void)
}
}
act->spr.pos.X += (ps[p].posX() - ps[p].PlayerOldPosition.X);
act->spr.pos.X += (ps[p].posX() - ps[p].posoldX());
act->spr.pos.Y += (ps[p].posY() - ps[p].PlayerOldPosition.Y);
SetActor(act, act->spr.pos);
}
@ -4419,7 +4419,7 @@ void movefta(void)
if (badguy(act))
{
auto xyrand = []() -> double { return (64 - (krand() & 127)) * maptoworld; };
double px = ps[p].PlayerOldPosition.X - xyrand();
double px = ps[p].posoldX() - xyrand();
double py = ps[p].PlayerOldPosition.Y - xyrand();
updatesector(DVector3(px, py, 0), &psect);
if (psect == nullptr)

View file

@ -1334,7 +1334,7 @@ void movetransports_r(void)
}
else if (isRRRA() && k == 2)
{
ps[p].PlayerOldPosition.X = ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X;
ps[p].posoldX() = ps[p].posX() += Owner->spr.pos.X - act->spr.pos.X;
ps[p].PlayerOldPosition.Y = ps[p].posY() += Owner->spr.pos.Y - act->spr.pos.Y;
ps[p].backupxy();

View file

@ -378,8 +378,8 @@ void DoPlayer(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
break;
case PLAYER_OPOSX:
if (bSet) ps[iPlayer].PlayerOldPosition.X = lValue * maptoworld;
else SetGameVarID(lVar2, int(ps[iPlayer].PlayerOldPosition.X * (1/maptoworld)), sActor, sPlayer);
if (bSet) ps[iPlayer].posoldX() = lValue * maptoworld;
else SetGameVarID(lVar2, int(ps[iPlayer].posoldX() * (1/maptoworld)), sActor, sPlayer);
break;
case PLAYER_OPOSY:

View file

@ -765,12 +765,12 @@ void player_struct::backuppos(bool noclipping)
{
if (!noclipping)
{
PlayerOldPosition.X = posX();
posoldX() = posX();
PlayerOldPosition.Y = posY();
}
else
{
posX() = PlayerOldPosition.X;
posX() = posoldX();
posY() = PlayerOldPosition.Y;
}

View file

@ -401,6 +401,10 @@ struct player_struct
return PlayerNowPosition;
}
double& posoldX()
{
return PlayerOldPosition.X;
}
DVector2& posoldXY()
{
return PlayerOldPosition.XY();