- Exhumed: Move bobangle global into Player struct.

This commit is contained in:
Mitchell Richters 2023-04-21 14:47:57 +10:00
parent 80df9dca2c
commit b958ae2340
5 changed files with 12 additions and 21 deletions

View file

@ -315,17 +315,6 @@ static void GameMove(void)
// YELLOW SECTION // YELLOW SECTION
MoveThings(); MoveThings();
obobangle = bobangle;
if (PlayerList[nLocalPlayer].totalvel == 0)
{
bobangle = 0;
}
else
{
bobangle += 56;
}
UpdateCreepySounds(); UpdateCreepySounds();
// loc_120E9: // loc_120E9:

View file

@ -662,7 +662,7 @@ loc_flag:
} }
if (nPlayer == nLocalPlayer) { if (nPlayer == nLocalPlayer) {
obobangle = bobangle = 512; pPlayer->nPrevWeapBob = pPlayer->nWeapBob = 512;
} }
if (nWeapon == kWeaponFlamer && (!(nSectFlag & kSectUnderwater))) if (nWeapon == kWeaponFlamer && (!(nSectFlag & kSectUnderwater)))
@ -938,11 +938,11 @@ void DrawWeapons(Player* const pPlayer, double interpfrac)
if (cl_weaponsway) if (cl_weaponsway)
{ {
double nBobAngle = bobangle, nTotalVel = pPlayer->totalvel; double nBobAngle = pPlayer->nWeapBob, nTotalVel = pPlayer->totalvel;
if (cl_hudinterpolation) if (cl_hudinterpolation)
{ {
nBobAngle = interpolatedvalue<double>(obobangle, bobangle, interpfrac); nBobAngle = interpolatedvalue<double>(pPlayer->nPrevWeapBob, pPlayer->nWeapBob, interpfrac);
nTotalVel = interpolatedvalue<double>(pPlayer->ototalvel, pPlayer->totalvel, interpfrac); nTotalVel = interpolatedvalue<double>(pPlayer->ototalvel, pPlayer->totalvel, interpfrac);
} }
@ -955,7 +955,7 @@ void DrawWeapons(Player* const pPlayer, double interpfrac)
} }
else else
{ {
obobangle = bobangle = 512; pPlayer->nPrevWeapBob = pPlayer->nWeapBob = 512;
} }
int nStat = false; int nStat = false;

View file

@ -74,7 +74,6 @@ static constexpr int16_t nItemText[] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
}; };
int obobangle = 0, bobangle = 0;
int nLocalPlayer = 0; int nLocalPlayer = 0;
Player PlayerList[kMaxPlayers]; Player PlayerList[kMaxPlayers];
TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { }; TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { };
@ -1608,6 +1607,10 @@ static void doPlayerCameraEffects(Player* const pPlayer, const double nDestVertP
{ {
pPlayer->nPrevBobZ = pPlayer->nBobZ = 0; pPlayer->nPrevBobZ = pPlayer->nBobZ = 0;
} }
// Update weapon bobbing.
pPlayer->nPrevWeapBob = pPlayer->nWeapBob;
pPlayer->nWeapBob = (pPlayer->nWeapBob + 56) * (pPlayer->totalvel != 0);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -2182,8 +2185,7 @@ void SerializePlayer(FSerializer& arc)
{ {
if (arc.BeginObject("player")) if (arc.BeginObject("player"))
{ {
arc ("bobangle", bobangle) arc ("playercount", PlayerCount)
("playercount", PlayerCount)
("netstartsprites", nNetStartSprites) ("netstartsprites", nNetStartSprites)
("localplayer", nLocalPlayer) ("localplayer", nLocalPlayer)
("curstartsprite", nCurStartSprite) ("curstartsprite", nCurStartSprite)

View file

@ -102,6 +102,8 @@ struct Player
double nPrevBobZ; double nPrevBobZ;
double nBobZ; double nBobZ;
double nIdxBobZ; double nIdxBobZ;
double nPrevWeapBob;
double nWeapBob;
bool crouch_toggle; bool crouch_toggle;
bool bTouchFloor; bool bTouchFloor;
bool bJumping; bool bJumping;
@ -117,8 +119,6 @@ extern int PlayerCount;
extern Player PlayerList[kMaxPlayers]; extern Player PlayerList[kMaxPlayers];
extern int obobangle, bobangle;
extern TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers]; extern TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers];
extern int nNetStartSprites; extern int nNetStartSprites;
extern int nCurStartSprite; extern int nCurStartSprite;

View file

@ -372,7 +372,7 @@ Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int thr
double zz = pActor->pitch.Sin() * veclen; double zz = pActor->pitch.Sin() * veclen;
return movesprite(pActor, vec, zz * 16 + BobVal(bobangle) * 2, 0, CLIPMASK1); return movesprite(pActor, vec, zz * 16 + BobVal(PlayerList[GetPlayerFromActor(pActor)].nWeapBob) * 2, 0, CLIPMASK1);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------