Browse Source

Fix two OOBs in missiles.cpp

pull/2470/head
Anders Jenbo 5 years ago
parent
commit
4451a519eb
  1. 21
      Source/missiles.cpp

21
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;
}
}
}

Loading…
Cancel
Save