Browse Source

Show correct death animation (#3953)

Shows death animation based on what armor you are wearing while dying. Dropping items on death results in showing light armor animation.
pull/3955/head
KPhoenix 4 years ago committed by GitHub
parent
commit
34266ff4c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Source/msg.cpp
  2. 2
      Source/multi.cpp
  3. 7
      Source/player.cpp

2
Source/msg.cpp

@ -1670,7 +1670,7 @@ DWORD OnPlayerJoinLevel(const TCmd *pCmd, int pnum)
if ((player._pHitPoints >> 6) > 0) {
StartStand(pnum, Direction::South);
} else {
player._pgfxnum = 0;
player._pgfxnum &= ~0xF;
player._pmode = PM_DEATH;
NewPlrAnim(player, player_graphic::Death, Direction::South, player._pDFrames, 1);
player.AnimInfo.CurrentFrame = player.AnimInfo.NumberOfFrames - 1;

2
Source/multi.cpp

@ -823,7 +823,7 @@ void recv_plrinfo(int pnum, const TCmdPlrInfoHdr &header, bool recv)
return;
}
player._pgfxnum = 0;
player._pgfxnum &= ~0xF;
player._pmode = PM_DEATH;
NewPlrAnim(player, player_graphic::Death, Direction::South, player._pDFrames, 1);
player.AnimInfo.CurrentFrame = player.AnimInfo.NumberOfFrames - 1;

7
Source/player.cpp

@ -2377,7 +2377,7 @@ void InitPlayerGFX(Player &player)
ResetPlayerGFX(player);
if (player._pHitPoints >> 6 == 0) {
player._pgfxnum = 0;
player._pgfxnum &= ~0xF;
LoadPlrGFX(player, player_graphic::Death);
return;
}
@ -3108,7 +3108,10 @@ StartPlayerKill(int pnum, int earflag)
player.Say(HeroSpeech::AuughUh);
if (player._pgfxnum != 0) {
player._pgfxnum = 0;
if (diablolevel || earflag != 0)
player._pgfxnum &= ~0xF;
else
player._pgfxnum = 0;
ResetPlayerGFX(player);
SetPlrAnims(player);
}

Loading…
Cancel
Save