Browse Source

[hellfire] M2MStartKill

pull/977/head
Anders Jenbo 5 years ago
parent
commit
74a0f68bab
  1. 29
      Source/monster.cpp

29
Source/monster.cpp

@ -2059,13 +2059,26 @@ void M2MStartKill(int i, int mid)
int md;
if ((DWORD)i >= MAXMONSTERS) {
#ifdef HELLFIRE
return;
#else
app_fatal("M2MStartKill: Invalid monster (attacker) %d", i);
#endif
}
#ifdef HELLFIRE
if ((DWORD)mid >= MAXMONSTERS) {
return;
#else
if ((DWORD)i >= MAXMONSTERS) { /// BUGFIX: should check `mid`
app_fatal("M2MStartKill: Invalid monster (killed) %d", mid);
#endif
}
if (monster[i].MType == NULL)
#ifdef HELLFIRE
return;
#else
app_fatal("M2MStartKill: Monster %d \"%s\" MType NULL", mid, monster[mid].mName);
#endif
delta_kill_monster(mid, monster[mid]._mx, monster[mid]._my, currlevel);
NetSendCmdLocParam1(FALSE, CMD_MONSTDEATH, monster[mid]._mx, monster[mid]._my, mid);
@ -2078,14 +2091,20 @@ void M2MStartKill(int i, int mid)
monster[mid]._mhitpoints = 0;
SetRndSeed(monster[mid]._mRndSeed);
#ifdef HELLFIRE
SpawnLoot(mid, TRUE);
#else
if (mid >= MAX_PLRS)
SpawnItem(mid, monster[mid]._mx, monster[mid]._my, TRUE);
#endif
if (monster[mid].MType->mtype == MT_DIABLO)
M_DiabloDeath(mid, TRUE);
else
#ifndef HELLFIRE
PlayEffect(i, 2);
#endif
PlayEffect(mid, 2);
md = (monster[i]._mdir - 4) & 7;
@ -2099,8 +2118,10 @@ void M2MStartKill(int i, int mid)
monster[mid]._myoff = 0;
monster[mid]._mx = monster[mid]._moldx;
monster[mid]._my = monster[mid]._moldy;
monster[mid]._mfutx = monster[mid]._moldx;
monster[mid]._mfuty = monster[mid]._moldy;
monster[mid]._mfutx = monster[mid]._mx;
monster[mid]._mfuty = monster[mid]._my;
monster[mid]._moldx = monster[mid]._mx;
monster[mid]._moldy = monster[mid]._my;
M_CheckEFlag(mid);
M_ClearSquares(mid);
dMonster[monster[mid]._mx][monster[mid]._my] = mid + 1;
@ -2108,6 +2129,10 @@ void M2MStartKill(int i, int mid)
M_FallenFear(monster[mid]._mx, monster[mid]._my);
if (monster[mid].MType->mtype >= MT_NACID && monster[mid].MType->mtype <= MT_XACID)
AddMissile(monster[mid]._mx, monster[mid]._my, 0, 0, 0, MIS_ACIDPUD, TARGET_PLAYERS, mid, monster[mid]._mint + 1, 0);
#ifdef HELLFIRE
M_StartStand(i, monster[i]._mdir);
#endif
}
void M_StartKill(int i, int pnum)

Loading…
Cancel
Save