From e2090503e110f842eec984df97fcfbc4c8e600b2 Mon Sep 17 00:00:00 2001 From: qndel Date: Tue, 19 Mar 2019 03:37:23 +0100 Subject: [PATCH] InitMissiles bin exact (#686) --- Source/missiles.cpp | 75 +++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 47 deletions(-) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 436db34db..537b8fd6e 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1503,12 +1503,12 @@ void __fastcall LoadMissileGFX(BYTE mi) void __cdecl InitMissileGFX() { - int mi; + int mi; - for (mi = 0; misfiledata[mi].mAnimFAmt; mi++) { - if (!(misfiledata[mi].mFlags & MFLAG_HIDDEN)) - LoadMissileGFX(mi); - } + for (mi = 0; misfiledata[mi].mAnimFAmt; mi++) { + if (!(misfiledata[mi].mFlags & MFLAG_HIDDEN)) + LoadMissileGFX(mi); + } } void __fastcall FreeMissileGFX(int mi) @@ -1565,54 +1565,35 @@ void __cdecl FreeMissiles2() void __cdecl InitMissiles() { - int v0; // eax - int i; // esi - int v2; // eax - int v3; // eax - int v4; // edx - int *v5; // eax - signed int v6; // ecx - _BYTE *v7; // eax - signed int v8; // edx - - v0 = myplr; - _LOBYTE(plr[v0]._pSpellFlags) &= 0xFEu; - if (plr[v0]._pInfraFlag == 1) { + int mi, src, i, j; + + plr[myplr]._pSpellFlags &= ~0x1; + if (plr[myplr]._pInfraFlag == TRUE) { for (i = 0; i < nummissiles; ++i) { - v2 = missileactive[i]; - if (missile[v2]._mitype == MIS_INFRA) { - v3 = missile[v2]._misource; - if (v3 == myplr) - CalcPlrItemVals(v3, 1); + mi = missileactive[i]; + if (missile[mi]._mitype == MIS_INFRA) { + src = missile[mi]._misource; + if (src == myplr) + CalcPlrItemVals(src, 1); } } } - v4 = 0; - memset(missileactive, 0, sizeof(missileactive)); nummissiles = 0; - do { - missileavail[v4] = v4; - ++v4; - } while (v4 < MAXMISSILES); + for (i = 0; i < MAXMISSILES; i++) { + missileavail[i] = i; + missileactive[i] = 0; + } numchains = 0; - v5 = &chain[0]._mitype; - do { - *(v5 - 1) = -1; - *v5 = 0; - v5[1] = 0; - v5 += 3; - } while ((signed int)v5 < (signed int)&chain[MAXMISSILES]._mitype); - v6 = 0; - do { - v7 = (unsigned char *)dFlags + v6; - v8 = 112; - do { - *v7 &= ~DFLAG_MISSILE; - v7 += 112; - --v8; - } while (v8); - ++v6; - } while (v6 < 112); + for (i = 0; i < MAXMISSILES; i++) { + chain[i].idx = -1; + chain[i]._mitype = 0; + chain[i]._mirange = 0; + } + for (j = 0; j < MAXDUNY; j++) { + for (i = 0; i < MAXDUNX; i++) { + dFlags[i][j] &= ~DFLAG_MISSILE; + } + } } // 64CCD8: using guessed type int numchains;