|
|
|
@ -5505,33 +5505,26 @@ void __cdecl ProcessMissiles() |
|
|
|
|
|
|
|
|
|
|
|
void __cdecl missiles_process_charge() |
|
|
|
void __cdecl missiles_process_charge() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int v0; // ebx
|
|
|
|
CMonster *mon; |
|
|
|
int i; // edi
|
|
|
|
AnimStruct *anim; |
|
|
|
int v2; // ecx
|
|
|
|
MissileStruct *mis; |
|
|
|
int v3; // esi
|
|
|
|
int i, mi; |
|
|
|
BOOLEAN v4; // zf
|
|
|
|
|
|
|
|
CMonster *v5; // eax
|
|
|
|
for (i = 0; i < nummissiles; i++) { |
|
|
|
char v6; // dl
|
|
|
|
mi = missileactive[i]; |
|
|
|
AnimStruct *v7; // eax
|
|
|
|
mis = &missile[mi]; |
|
|
|
|
|
|
|
mis->_miAnimData = misfiledata[mis->_miAnimType].mAnimData[mis->_mimfnum]; |
|
|
|
v0 = nummissiles; |
|
|
|
if (mis->_mitype == MIS_RHINO) { |
|
|
|
for (i = 0; i < v0; ++i) { |
|
|
|
mon = monster[mis->_misource].MType; |
|
|
|
v2 = missileactive[i]; |
|
|
|
if (mon->mtype >= MT_HORNED && mon->mtype <= MT_OBLORD) { |
|
|
|
v3 = missile[v2]._mimfnum; |
|
|
|
anim = &mon->Anims[MA_SPECIAL]; |
|
|
|
v4 = missile[v2]._mitype == MIS_RHINO; |
|
|
|
|
|
|
|
missile[v2]._miAnimData = misfiledata[0].mAnimData[v3 + 59 * _LOBYTE(missile[v2]._miAnimType)]; |
|
|
|
|
|
|
|
if (v4) { |
|
|
|
|
|
|
|
v5 = monster[missile[v2]._misource].MType; |
|
|
|
|
|
|
|
v6 = v5->mtype; |
|
|
|
|
|
|
|
if (v5->mtype < MT_HORNED || v6 > MT_OBLORD) { |
|
|
|
|
|
|
|
if (v6 < MT_NSNAKE || v6 > MT_GSNAKE) |
|
|
|
|
|
|
|
v7 = &v5->Anims[MA_WALK]; |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
v7 = &v5->Anims[MA_ATTACK]; |
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
v7 = &v5->Anims[MA_SPECIAL]; |
|
|
|
if (mon->mtype >= MT_NSNAKE && mon->mtype <= MT_GSNAKE) |
|
|
|
|
|
|
|
anim = &mon->Anims[MA_ATTACK]; |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
anim = &mon->Anims[MA_WALK]; |
|
|
|
} |
|
|
|
} |
|
|
|
missile[v2]._miAnimData = v7->Data[v3]; |
|
|
|
missile[mi]._miAnimData = anim->Data[mis->_mimfnum]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|