Skip to content

Commit

Permalink
- Exhumed: changed lung display as well.
Browse files Browse the repository at this point in the history
  • Loading branch information
coelckers committed May 15, 2021
1 parent 35c0750 commit 71f4946
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 46 deletions.
4 changes: 0 additions & 4 deletions source/games/exhumed/src/input.cpp
Expand Up @@ -84,10 +84,6 @@ void SendInput()

void CheckKeys2()
{
if (PlayerList[nLocalPlayer].nHealth <= 0)
{
SetAirFrame();
}
}


Expand Down
1 change: 0 additions & 1 deletion source/games/exhumed/src/items.cpp
Expand Up @@ -208,7 +208,6 @@ static bool UseMask(short nPlayer)

if (nPlayer == nLocalPlayer)
{
SetAirFrame();
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].nSprite);
}
return true;
Expand Down
18 changes: 0 additions & 18 deletions source/games/exhumed/src/player.cpp
Expand Up @@ -1271,10 +1271,6 @@ void FuncPlayer(int a, int nDamage, int nRun)
airpages = 1;
if (PlayerList[nPlayer].nMaskAmount > 0)
{
if (nPlayer == nLocalPlayer) {
BuildStatusAnim(132, 0);
}

D3PlayFX(StaticSound[kSound30], nPlayerSprite);

PlayerList[nPlayer].nAir = 100;
Expand Down Expand Up @@ -1314,15 +1310,9 @@ void FuncPlayer(int a, int nDamage, int nRun)
}

DoBubbles(nPlayer);
SetAirFrame();
}
else
{
if (nPlayer == nLocalPlayer)
{
BuildStatusAnim(132, 0);
}

airpages = 0;
}
}
Expand Down Expand Up @@ -1366,17 +1356,11 @@ void FuncPlayer(int a, int nDamage, int nRun)
if (nBreathTimer[nPlayer] <= 0)
{
nBreathTimer[nPlayer] = 90;
if (nPlayer == nLocalPlayer)
{
// animate lungs
BuildStatusAnim(132, 0);
}
}

if (PlayerList[nPlayer].nAir < 100)
{
PlayerList[nPlayer].nAir = 100;
SetAirFrame();
}
}

Expand Down Expand Up @@ -1802,8 +1786,6 @@ void FuncPlayer(int a, int nDamage, int nRun)
PlayerList[nPlayer].nAir = 100; // TODO - constant
}

SetAirFrame();

if (nBreathTimer[nPlayer] < 89)
{
D3PlayFX(StaticSound[kSound13], nPlayerSprite);
Expand Down
53 changes: 31 additions & 22 deletions source/games/exhumed/src/status.cpp
Expand Up @@ -54,9 +54,7 @@ short nMagicFrame;
short nMaskY;

int magicperline;
int airperline;
int healthperline;
int nAirFrames;
int nCounter;
int nCounterDest;

Expand All @@ -68,8 +66,6 @@ short nDigit[3];
short nItemFrame;
short nMeterRange;

short airframe;

int16_t nFirstAnim;
int16_t nLastAnim;
short nItemAltSeq;
Expand Down Expand Up @@ -129,8 +125,6 @@ void InitStatus()
nMeterRange = tileHeight(nPicNum);
magicperline = 1000 / nMeterRange;
healthperline = 800 / nMeterRange;
nAirFrames = SeqSize[nStatusSeqOffset + 133];
airperline = 100 / nAirFrames;
nCounter = 0;
nCounterDest = 0;

Expand Down Expand Up @@ -214,7 +208,6 @@ void RefreshStatus()
SetPlayerItem(nLocalPlayer, nPlayerItem[nLocalPlayer]);
SetHealthFrame(0);
SetMagicFrame();
SetAirFrame();
}

void MoveStatusAnims()
Expand Down Expand Up @@ -295,20 +288,6 @@ void SetHealthFrame(short nVal)
}
}

void SetAirFrame()
{
airframe = PlayerList[nLocalPlayer].nAir / airperline;

if (airframe >= nAirFrames)
{
airframe = nAirFrames - 1;
}
else if (airframe < 0)
{
airframe = 0;
}
}

void SetCounter(short nVal)
{
if (nVal <= 999)
Expand Down Expand Up @@ -516,6 +495,7 @@ class DExhumedStatusBar : public DBaseStatusBar

TObjPtr<DHUDFont*> textfont, numberFont;
int keyanims[4];
int airframe, lungframe;

enum EConst
{
Expand Down Expand Up @@ -896,11 +876,15 @@ class DExhumedStatusBar : public DBaseStatusBar
// draws health level dots, animates breathing lungs and other things
DrawStatusAnims();

// draw the blue air level meter when underwater (but not responsible for animating the breathing lungs otherwise)
// draw the blue air level meter when underwater
if (SectFlag[nPlayerViewSect[nLocalPlayer]] & kSectUnderwater)
{
DrawStatusSequence(nStatusSeqOffset + 133, airframe, 0, 0.5);
}
else
{
DrawStatusSequence(nStatusSeqOffset + 132, lungframe, 0);
}


// draw compass
Expand Down Expand Up @@ -978,13 +962,38 @@ class DExhumedStatusBar : public DBaseStatusBar
keyanims[i] = 0;
}
}

if (SectFlag[nPlayerViewSect[nLocalPlayer]] & kSectUnderwater)
{

int nAirFrames = SeqSize[nStatusSeqOffset + 133];
int airperline = 100 / nAirFrames;

airframe = PlayerList[nLocalPlayer].nAir / airperline;

if (airframe >= nAirFrames)
{
airframe = nAirFrames - 1;
}
else if (airframe < 0)
{
airframe = 0;
}
lungframe = 0;
}
else
{
int size = SeqSize[nStatusSeqOffset + 132];
if (++lungframe == size) lungframe = 0;
}
}


public:
void UpdateStatusBar()
{
Tick(); // temporary.

if (hud_size <= Hud_full)
{
DrawStatus();
Expand Down
1 change: 0 additions & 1 deletion source/games/exhumed/src/status.h
Expand Up @@ -30,7 +30,6 @@ void InitStatus();
void SetPlayerItem(short nPlayer, short nItem);
void SetMagicFrame();
void SetHealthFrame(short nVal);
void SetAirFrame();
void MoveStatus();
void DrawSnakeCamStatus();
void DrawStatus();
Expand Down

0 comments on commit 71f4946

Please sign in to comment.