- 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
MoveThings();
obobangle = bobangle;
if (PlayerList[nLocalPlayer].totalvel == 0)
{
bobangle = 0;
}
else
{
bobangle += 56;
}
UpdateCreepySounds();
// loc_120E9:

View file

@ -662,7 +662,7 @@ loc_flag:
}
if (nPlayer == nLocalPlayer) {
obobangle = bobangle = 512;
pPlayer->nPrevWeapBob = pPlayer->nWeapBob = 512;
}
if (nWeapon == kWeaponFlamer && (!(nSectFlag & kSectUnderwater)))
@ -938,11 +938,11 @@ void DrawWeapons(Player* const pPlayer, double interpfrac)
if (cl_weaponsway)
{
double nBobAngle = bobangle, nTotalVel = pPlayer->totalvel;
double nBobAngle = pPlayer->nWeapBob, nTotalVel = pPlayer->totalvel;
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);
}
@ -955,7 +955,7 @@ void DrawWeapons(Player* const pPlayer, double interpfrac)
}
else
{
obobangle = bobangle = 512;
pPlayer->nPrevWeapBob = pPlayer->nWeapBob = 512;
}
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
};
int obobangle = 0, bobangle = 0;
int nLocalPlayer = 0;
Player PlayerList[kMaxPlayers];
TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { };
@ -1608,6 +1607,10 @@ static void doPlayerCameraEffects(Player* const pPlayer, const double nDestVertP
{
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"))
{
arc ("bobangle", bobangle)
("playercount", PlayerCount)
arc ("playercount", PlayerCount)
("netstartsprites", nNetStartSprites)
("localplayer", nLocalPlayer)
("curstartsprite", nCurStartSprite)

View file

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

View file

@ -372,7 +372,7 @@ Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int thr
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);
}
//---------------------------------------------------------------------------