From 23821ed5e9b2c2d0d9f09d34de2a44b27010aed5 Mon Sep 17 00:00:00 2001 From: qndel Date: Wed, 11 Sep 2019 01:56:03 +0200 Subject: [PATCH] [hellfire] AddLArrow bin exact (#1551) --- Source/missiles.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index b34b508d9..9756051e0 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1214,12 +1214,31 @@ void AddLArrow(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, dy += YDirAdd[midir]; } if (!mienemy) { +#ifdef HELLFIRE + int av = 32; + + if (plr[id]._pClass == PC_ROGUE) + av += (plr[id]._pLevel) >> 2; + else if (plr[id]._pClass == PC_WARRIOR || plr[id]._pClass == PC_BARD) + av += (plr[id]._pLevel) >> 3; + + if (plr[id]._pIFlags & ISPL_QUICKATTACK) + av++; + if (plr[id]._pIFlags & ISPL_FASTATTACK) + av += 2; + if (plr[id]._pIFlags & ISPL_FASTERATTACK) + av += 4; + if (plr[id]._pIFlags & ISPL_FASTESTATTACK) + av += 8; + GetMissileVel(mi, sx, sy, dx, dy, av); +#else if (plr[id]._pClass == PC_ROGUE) GetMissileVel(mi, sx, sy, dx, dy, (plr[id]._pLevel >> 2) + 31); else if (plr[id]._pClass == PC_WARRIOR) GetMissileVel(mi, sx, sy, dx, dy, (plr[id]._pLevel >> 3) + 31); else GetMissileVel(mi, sx, sy, dx, dy, 32); +#endif } else GetMissileVel(mi, sx, sy, dx, dy, 32);