- Exhumed: Ensure we back up the player actor's location after doing everything and not mid-way through a reset.

This commit is contained in:
Mitchell Richters 2023-03-26 20:09:43 +11:00
parent 950f4c2c38
commit 1888b7ee9f

View file

@ -225,14 +225,11 @@ void RestartPlayer(int nPlayer)
pPlayerActor->spr.extra = -1;
pPlayerActor->spr.lotag = runlist_HeadRun() + 1;
pPlayerActor->clipdist = 14.5;
pPlayerActor->oviewzoffset = pPlayerActor->viewzoffset = -55.;
pPlayerActor->viewzoffset = -55.;
pPlayerActor->vel.X = 0;
pPlayerActor->vel.Y = 0;
pPlayerActor->vel.Z = 0;
pPlayerActor->backuploc();
pPlayerActor->spr.intowner = runlist_AddRunRec(pPlayerActor->spr.lotag - 1, nPlayer, 0xA0000);
ChangeActorSect(pPlayerActor, pPlayer->sPlayerSave.pSector);
ChangeActorStat(pPlayerActor, 100);
if (nTotalPlayers > 1)
@ -258,9 +255,12 @@ void RestartPlayer(int nPlayer)
pPlayerActor->spr.pos.XY() = pPlayer->sPlayerSave.pos.XY();
pPlayerActor->spr.pos.Z = pPlayer->sPlayerSave.pSector->floorz;
pPlayerActor->spr.Angles.Yaw = pPlayer->sPlayerSave.nAngle;
ChangeActorSect(pPlayerActor, pPlayer->sPlayerSave.pSector);
pFloorSprite = nullptr;
}
pPlayerActor->backuploc();
pDopSprite = insertActor(pPlayerActor->sector(), 100);
pDopSprite->spr.pos = pPlayerActor->spr.pos;
pDopSprite->spr.scale = pPlayerActor->spr.scale;