From 0c2940a807a5e1c01fb95e05ff9aa47d5eeac037 Mon Sep 17 00:00:00 2001 From: qndel Date: Wed, 13 Mar 2019 03:45:42 +0100 Subject: [PATCH] AddRhino bin exact --- Source/missiles.cpp | 71 ++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index df4b4bb1a..cf48caaa5 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -2571,50 +2571,37 @@ void __fastcall miss_null_13(int mi, int sx, int sy, int dx, int dy, int midir, void __fastcall AddRhino(int mi, int sx, int sy, int dx, int dy, int midir, int mienemy, int id, int dam) { - int v9; // esi - CMonster *v10; // eax - char v11; // cl - AnimStruct *v12; // edi - int v13; // eax - CMonster *v14; // ecx - char v15; // cl - BOOLEAN v16; // zf - int i; // [esp+8h] [ebp-4h] + AnimStruct *anim; - v9 = id; - i = mi; - v10 = monster[id].MType; - v11 = v10->mtype; - if (v10->mtype < MT_HORNED || v11 > MT_OBLORD) { - if (v11 < MT_NSNAKE || (v12 = &v10->Anims[MA_ATTACK], v11 > MT_GSNAKE)) - v12 = &v10->Anims[MA_WALK]; + if (monster[id].MType->mtype < MT_HORNED || monster[id].MType->mtype > MT_OBLORD) { + if (monster[id].MType->mtype < MT_NSNAKE || monster[id].MType->mtype > MT_GSNAKE) { + anim = &monster[id].MType->Anims[MA_WALK]; + } else { + anim = &monster[id].MType->Anims[MA_ATTACK]; + } } else { - v12 = &v10->Anims[MA_SPECIAL]; - } - GetMissileVel(i, sx, sy, dx, dy, 18); - v13 = i; - missile[v13]._miAnimFlags = 0; - missile[v13]._mimfnum = midir; - missile[v13]._miAnimData = v12->Data[midir]; - missile[v13]._miAnimDelay = v12->Rate; - missile[v13]._miAnimLen = v12->Frames; - v14 = monster[v9].MType; - missile[v13]._miAnimWidth = v14->width; - missile[v13]._miAnimWidth2 = v14->width2; - missile[v13]._miAnimAdd = 1; - v15 = v14->mtype; - if (v15 >= MT_NSNAKE && v15 <= MT_GSNAKE) - missile[v13]._miAnimFrame = 7; - missile[v13]._miVar1 = 0; - missile[v13]._miVar2 = 0; - v16 = monster[v9]._uniqtype == 0; - missile[v13]._miLightFlag = 1; - if (!v16) { - missile[v13]._miUniqTrans = (unsigned char)monster[v9]._uniqtrans + 1; - missile[v13]._mlid = (unsigned char)monster[v9].mlid; - } - missile[v13]._mirange = 256; - PutMissile(i); + anim = &monster[id].MType->Anims[MA_SPECIAL]; + } + GetMissileVel(mi, sx, sy, dx, dy, 18); + missile[mi]._miAnimFlags = 0; + missile[mi]._mimfnum = midir; + missile[mi]._miAnimData = anim->Data[midir]; + missile[mi]._miAnimDelay = anim->Rate; + missile[mi]._miAnimLen = anim->Frames; + missile[mi]._miAnimWidth = monster[id].MType->width; + missile[mi]._miAnimWidth2 = monster[id].MType->width2; + missile[mi]._miAnimAdd = 1; + if (monster[id].MType->mtype >= MT_NSNAKE && monster[id].MType->mtype <= MT_GSNAKE) + missile[mi]._miAnimFrame = 7; + missile[mi]._miVar1 = 0; + missile[mi]._miVar2 = 0; + missile[mi]._miLightFlag = 1; + if (monster[id]._uniqtype != 0) { + missile[mi]._miUniqTrans = monster[id]._uniqtrans + 1; + missile[mi]._mlid = monster[id].mlid; + } + missile[mi]._mirange = 256; + PutMissile(mi); } void __fastcall miss_null_32(int mi, int sx, int sy, int dx, int dy, int midir, int mienemy, int id, int dam)