From 4451a519eba44939b774bd83d27d96d2ed722404 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Thu, 29 Jul 2021 21:39:15 +0200 Subject: [PATCH] Fix two OOBs in missiles.cpp --- Source/missiles.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 6e5c4b595..4118707e5 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1210,7 +1210,7 @@ bool PlayerMHit(int pnum, MonsterStruct *monster, int dist, int mind, int maxd, if (monster == nullptr) if ((player._pIFlags & ISPL_ABSHALFTRAP) != 0) dam /= 2; - dam += (player._pIGetHit << 6); + dam += player._pIGetHit * 64; } else { dam = mind + GenerateRnd(maxd - mind + 1); if (monster == nullptr) @@ -3082,16 +3082,17 @@ int AddMissile(Point src, Point dst, int midir, int mitype, int8_t micaster, int if (ActiveMissileCount >= MAXMISSILES - 1) return -1; - auto &player = Players[id]; - - if (mitype == MIS_MANASHIELD && player.pManaShield) { - if (currlevel != player.plrlevel) - return -1; - - for (int i = 0; i < ActiveMissileCount; i++) { - int mi = ActiveMissiles[i]; - if (Missiles[mi]._mitype == MIS_MANASHIELD && Missiles[mi]._misource == id) + if (mitype == MIS_MANASHIELD) { + auto &player = Players[id]; + if (player.pManaShield) { + if (currlevel != player.plrlevel) return -1; + + for (int i = 0; i < ActiveMissileCount; i++) { + int mi = ActiveMissiles[i]; + if (Missiles[mi]._mitype == MIS_MANASHIELD && Missiles[mi]._misource == id) + return -1; + } } }