From 51c6104edfe7cf45f56afff6d0c71c5d85a4518b Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 10 Jan 2021 10:02:55 +0100 Subject: [PATCH] [hellfire] StartPlrHit --- Source/player.cpp | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/Source/player.cpp b/Source/player.cpp index 5ed703898..a083b86fa 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -1922,25 +1922,42 @@ void StartPlrHit(int pnum, int dam, BOOL forcehit) PlaySfxLoc(PS_ROGUE69, plr[pnum]._px, plr[pnum]._py); } else if (plr[pnum]._pClass == PC_SORCERER) { PlaySfxLoc(PS_MAGE69, plr[pnum]._px, plr[pnum]._py); +#endif +#ifdef HELLFIRE + } else if (plr[pnum]._pClass == PC_MONK) { + PlaySfxLoc(PS_MONK69, plr[pnum]._px, plr[pnum]._py); + } else if (plr[pnum]._pClass == PC_BARD) { + PlaySfxLoc(PS_ROGUE69, plr[pnum]._px, plr[pnum]._py); + } else if (plr[pnum]._pClass == PC_BARBARIAN) { + PlaySfxLoc(PS_WARR69, plr[pnum]._px, plr[pnum]._py); #endif } drawhpflag = TRUE; - if (dam >> 6 >= plr[pnum]._pLevel || forcehit) { - pd = plr[pnum]._pdir; - - if (!(plr[pnum]._pGFXLoad & PFILE_HIT)) { - LoadPlrGFX(pnum, PFILE_HIT); +#ifdef HELLFIRE + if (plr[pnum]._pClass == PC_BARBARIAN) { + if (dam >> 6 < plr[pnum]._pLevel + plr[pnum]._pLevel / 4 && !forcehit) { + return; } - NewPlrAnim(pnum, plr[pnum]._pHAnim[pd], plr[pnum]._pHFrames, 0, plr[pnum]._pHWidth); + } else +#endif + if (dam >> 6 < plr[pnum]._pLevel && !forcehit) { + return; + } - plr[pnum]._pmode = PM_GOTHIT; - FixPlayerLocation(pnum, pd); - plr[pnum]._pVar8 = 1; - FixPlrWalkTags(pnum); - dPlayer[plr[pnum]._px][plr[pnum]._py] = pnum + 1; - SetPlayerOld(pnum); + pd = plr[pnum]._pdir; + + if (!(plr[pnum]._pGFXLoad & PFILE_HIT)) { + LoadPlrGFX(pnum, PFILE_HIT); } + NewPlrAnim(pnum, plr[pnum]._pHAnim[pd], plr[pnum]._pHFrames, 0, plr[pnum]._pHWidth); + + plr[pnum]._pmode = PM_GOTHIT; + FixPlayerLocation(pnum, pd); + plr[pnum]._pVar8 = 1; + FixPlrWalkTags(pnum); + dPlayer[plr[pnum]._px][plr[pnum]._py] = pnum + 1; + SetPlayerOld(pnum); } void RespawnDeadItem(ItemStruct *itm, int x, int y)