Browse Source

Clean up MonstStartKill

pull/25/head
Anders Jenbo 8 years ago committed by Dennis Duda
parent
commit
121873a67f
  1. 105
      Source/monster.cpp

105
Source/monster.cpp

@ -2226,72 +2226,51 @@ void __fastcall M2MStartHit(int mid, int i, int dam)
void __fastcall MonstStartKill(int i, int pnum, BOOL sendmsg) void __fastcall MonstStartKill(int i, int pnum, BOOL sendmsg)
{ {
signed int v3; // edi if ( (DWORD)i >= MAXMONSTERS ) {
int v4; // ebx
signed int v5; // esi
int v6; // ecx
int v7; // eax
//int v8; // eax
int v9; // eax
AnimStruct *v10; // edx
int v11; // ecx
int v12; // eax
unsigned char v13; // al
v3 = i;
v4 = pnum;
if ( (DWORD)i >= MAXMONSTERS )
TermMsg("MonstStartKill: Invalid monster %d", i); TermMsg("MonstStartKill: Invalid monster %d", i);
v5 = v3; }
if ( !monster[v3].MType ) if ( !monster[i].MType ) {
TermMsg("MonstStartKill: Monster %d \"%s\" MType NULL", v3, monster[v5].mName); TermMsg("MonstStartKill: Monster %d \"%s\" MType NULL", i, monster[i].mName);
if ( v4 >= 0 ) }
monster[v5].mWhoHit |= 1 << v4;
if ( v4 < 4 && v3 > 4 ) if ( pnum >= 0 )
AddPlrMonstExper(SLOBYTE(monster[v5].mLevel), (unsigned short)monster[v5].mExp, monster[v5].mWhoHit); monster[i].mWhoHit |= 1 << pnum;
v6 = monster[v5]._mRndSeed; if ( pnum < 4 && i > 4 )//32
v7 = monster[v5].MType->mtype; AddPlrMonstExper(monster[i].mLevel, monster[i].mExp, monster[i].mWhoHit);//28
monster[v5]._mhitpoints = 0; monstkills[monster[i].MType->mtype]++;//44
++monstkills[v7]; monster[i]._mhitpoints = 0;
SetRndSeed(v6); SetRndSeed(monster[i]._mRndSeed);
//_LOBYTE(v8) = QuestStatus(QTYPE_GARB); if ( QuestStatus(QTYPE_GARB) && monster[i].mName == UniqMonst[0].mName ) {
if ( QuestStatus(QTYPE_GARB) && monster[v5].mName == UniqMonst[0].mName ) CreateTypeItem(monster[i]._mx + 1, monster[i]._my + 1, TRUE, 4, FALSE, TRUE, FALSE);
{ } else if ( i > 3 ) {
CreateTypeItem(monster[v5]._mx + 1, monster[v5]._my + 1, 1u, 4, 0, 1, 0); SpawnItem(i, monster[i]._mx, monster[i]._my, sendmsg);
} }
else if ( v3 > 3 ) if ( monster[i].MType->mtype == MT_DIABLO )
{ M_DiabloDeath(i, TRUE);
SpawnItem(v3, monster[v5]._mx, monster[v5]._my, sendmsg);
}
if ( monster[v5].MType->mtype == MT_DIABLO )
M_DiabloDeath(v3, TRUE);
else else
PlayEffect(v3, 2); PlayEffect(i, 2);
if ( v4 < 0 ) int md;
v9 = monster[v5]._mdir; if ( pnum >= 0 )
md = M_GetDir(i);
else else
v9 = M_GetDir(v3); md = monster[i]._mdir;
v10 = &monster[v5].MType->Anims[MA_DEATH]; monster[i]._mdir = md;
monster[v5]._mdir = v9; NewMonsterAnim(i, &monster[i].MType->Anims[MA_DEATH], md);
NewMonsterAnim(v3, v10, v9); monster[i]._mmode = MM_DEATH;
v11 = monster[v5]._moldy; monster[i]._mxoff = 0;
v12 = monster[v5]._moldx; monster[i]._myoff = 0;
monster[v5]._my = v11; monster[i]._mVar1 = 0;
monster[v5]._mfuty = v11; monster[i]._mx = monster[i]._moldx;
monster[v5]._mmode = MM_DEATH; monster[i]._my = monster[i]._moldy;
monster[v5]._mxoff = 0; monster[i]._mfutx = monster[i]._moldx;
monster[v5]._myoff = 0; monster[i]._mfuty = monster[i]._moldy;
monster[v5]._mVar1 = 0; M_CheckEFlag(i);
monster[v5]._mx = v12; M_ClearSquares(i);
monster[v5]._mfutx = v12; dMonster[monster[i]._mx][monster[i]._my] = i + 1;
M_CheckEFlag(v3); CheckQuestKill(i, sendmsg);
M_ClearSquares(v3); M_FallenFear(monster[i]._mx, monster[i]._my);
dMonster[0][monster[v5]._my + 112 * monster[v5]._mx] = v3 + 1; if ( monster[i].MType->mtype >= MT_NACID && monster[i].MType->mtype <= MT_XACID )
CheckQuestKill(v3, sendmsg); AddMissile(monster[i]._mx, monster[i]._my, 0, 0, 0, MIS_ACIDPUD, 1, i, monster[i]._mint + 1, 0);
M_FallenFear(monster[v5]._mx, monster[v5]._my);
v13 = monster[v5].MType->mtype;
if ( v13 >= MT_NACID && v13 <= MT_XACID )
AddMissile(monster[v5]._mx, monster[v5]._my, 0, 0, 0, 59, 1, v3, (unsigned char)monster[v5]._mint + 1, 0);
} }
void __fastcall M2MStartKill(int i, int mid) void __fastcall M2MStartKill(int i, int mid)

Loading…
Cancel
Save