- Blood: Migrate to new actor viewzoffset property (sort of).

* The way this game does it player Z in a distinct variable needs to be maintained as it's impossible to maintain proper Z velocities when trying to do without it.
This commit is contained in:
Mitchell Richters 2022-11-22 22:27:12 +11:00 committed by Christoph Oelckers
parent 13be5f7923
commit 397acfa242
3 changed files with 7 additions and 2 deletions

View file

@ -457,6 +457,10 @@ void GameInterface::Ticker()
}
thinktime.Unclock();
// update console player's viewzoffset at the end of the tic.
pPlayer->actor->oviewzoffset = pPlayer->actor->viewzoffset;
pPlayer->actor->viewzoffset = pPlayer->zView - pPlayer->actor->spr.pos.Z;
gFrameCount++;
PlayClock += kTicsPerFrame;
if (PlayClock == 8) gameaction = ga_autosave; // let the game run for 1 frame before saving.

View file

@ -715,6 +715,7 @@ void playerResetInertia(PLAYER* pPlayer)
POSTURE* pPosture = &pPlayer->pPosture[pPlayer->lifeMode][pPlayer->posture];
pPlayer->zView = pPlayer->actor->spr.pos.Z - pPosture->eyeAboveZ;
pPlayer->zWeapon = pPlayer->actor->spr.pos.Z - pPosture->weaponAboveZ;
pPlayer->actor->oviewzoffset = pPlayer->actor->viewzoffset = pPlayer->zView - pPlayer->actor->spr.pos.Z;
viewBackupView(pPlayer->nPlayer);
}
@ -725,6 +726,7 @@ void playerCorrectInertia(PLAYER* pPlayer, const DVector3& oldpos)
pPlayer->zWeapon += zAdj;
pPlayer->actor->opos.XY() += pPlayer->actor->spr.pos.XY() - oldpos.XY();
pPlayer->ozView += zAdj;
pPlayer->actor->opos.Z += zAdj;
}
void playerResetPowerUps(PLAYER* pPlayer)

View file

@ -492,8 +492,7 @@ static void SetupView(PLAYER* pPlayer, DVector3& cPos, DAngle& cA, DAngle& cH, s
else
#endif
{
cPos.XY() = pPlayer->actor->interpolatedpos(interpfrac).XY();
cPos.Z = interpolatedvalue(pPlayer->ozView, pPlayer->zView, interpfrac);
cPos = pPlayer->actor->getRenderPos(interpfrac);
zDelta = interpolatedvalue(pPlayer->ozWeapon, pPlayer->zWeapon - pPlayer->zView - 12, interpfrac);
bobWidth = interpolatedvalue(pPlayer->obobWidth, pPlayer->bobWidth, interpfrac);
bobHeight = interpolatedvalue(pPlayer->obobHeight, pPlayer->bobHeight, interpfrac);