From 61d62c426e09d266b068fc08f9eb30aea9215f79 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 25 Nov 2018 17:20:13 +0100 Subject: [PATCH] Clean up MAI_Warlord --- Source/monster.cpp | 48 ++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index 4b37f232e..06add7de0 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -5733,40 +5733,30 @@ void __fastcall MAI_Lachdanan(int i) void __fastcall MAI_Warlord(int i) { - int v1; // ebp - int v2; // esi - int v3; // ebx - int v4; // edi - int v5; // ebp - //int v6; // eax - int v7; // eax - int arglist; // [esp+8h] [ebp-4h] + int mx, my, md; - v1 = i; - arglist = i; if ((DWORD)i >= MAXMONSTERS) TermMsg("MAI_Warlord: Invalid monster %d", i); - v2 = v1; - if (monster[v1]._mmode == MM_STAND) { - v3 = monster[v2]._my; - v4 = monster[v2]._mx; - v5 = M_GetDir(v1); - if (dFlags[v4][v3] & DFLAG_VISIBLE && monster[v2].mtalkmsg == QUEST_WARLRD9) { - if (_LOBYTE(monster[v2]._mgoal) == MGOAL_INQUIRING) - monster[v2]._mmode = MM_TALK; - //_LOBYTE(v6) = effect_is_playing(USFX_WARLRD1); - if (!effect_is_playing(USFX_WARLRD1) && _LOBYTE(monster[v2]._mgoal) == MGOAL_TALKING) { - monster[v2]._msquelch = -1; - monster[v2].mtalkmsg = 0; - _LOBYTE(monster[v2]._mgoal) = MGOAL_NORMAL; + + if (monster[i]._mmode == MM_STAND) { + mx = monster[i]._mx; + my = monster[i]._my; + md = M_GetDir(i); + if (dFlags[mx][my] & DFLAG_VISIBLE) { + if (monster[i].mtalkmsg == QUEST_WARLRD9 && monster[i]._mgoal == MGOAL_INQUIRING) + monster[i]._mmode = MM_TALK; + if (monster[i].mtalkmsg == QUEST_WARLRD9 && !effect_is_playing(USFX_WARLRD1) && monster[i]._mgoal == MGOAL_TALKING) { + monster[i]._msquelch = -1; + monster[i].mtalkmsg = 0; + monster[i]._mgoal = MGOAL_NORMAL; } } - if (_LOBYTE(monster[v2]._mgoal) == MGOAL_NORMAL) - MAI_SkelSd(arglist); - monster[v2]._mdir = v5; - v7 = monster[v2]._mmode; - if (v7 == MM_STAND || v7 == MM_TALK) - monster[v2]._mAnimData = monster[v2].MType->Anims[MA_STAND].Data[v5]; + if (monster[i]._mgoal == MGOAL_NORMAL) + MAI_SkelSd(i); + + monster[i]._mdir = md; + if (monster[i]._mmode == MM_STAND || monster[i]._mmode == MM_TALK) + monster[i]._mAnimData = monster[i].MType->Anims[MA_STAND].Data[md]; } }