[Scummvm-cvs-logs] CVS: scummvm/scumm/insane insane_iact.cpp,1.15,1.16
Gregory Montoir
cyx at users.sourceforge.net
Sat Sep 4 01:33:01 CEST 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.277,1.278 akos.cpp,1.155,1.156 intern.h,2.213,2.214 script_v6.cpp,1.394,1.395 script_v6he.cpp,2.107,2.108 script_v72he.cpp,2.42,2.43 script_v7he.cpp,2.61,2.62 scumm.cpp,1.164,1.165 scumm.h,1.465,1.466
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm script_v72he.cpp,2.43,2.44
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm/insane
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30354/scumm/insane
Modified Files:
insane_iact.cpp
Log Message:
cleanup
Index: insane_iact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_iact.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- insane_iact.cpp 8 Aug 2004 02:21:26 -0000 1.15
+++ insane_iact.cpp 4 Sep 2004 08:32:04 -0000 1.16
@@ -184,6 +184,7 @@
}
void Insane::proc62(void) {
+ debug(1, "Insane::proc62");
if (readArray(58) != 0)
_enemy[EN_TORQUE].field_10 = 1;
@@ -196,142 +197,83 @@
proc63();
- // FIXME: someone, please, untaint this mess
-
- int32 en, edi, ebp, edx, esi, eax, ebx, ecx;
-
- edx = eax = 0;
-
- for (eax = 0; eax < 9; eax++)
- if (_enemy[eax].field_10 == 0)
- edx++;
-
- edx -= 4;
-
- en = edx;
-
- ebp = 0;
- edi = 0;
-
- _loop1:
- edi++;
- if (edi >= 14)
- goto loc5;
-
- edx = _vm->_rnd.getRandomNumber(10);
-
- esi = edx;
-
- if (edx == 9)
- esi = 6;
- else if (edx > 9)
- esi = 7;
-
- eax = esi;
- ebx = 1;
-
- if (_enemy[eax].field_10 != ebp)
- goto _loop1;
-
- if (ebp < _val215d) {
- edx = _val215d;
- eax = ebp;
- if (ebx)
- goto loc1;
- }
-
- goto loc4;
-
- loc1:
- if (esi == _val216d[eax + 1])
- ebx = ebp;
-
- eax++;
-
- if (eax < edx) {
- if (ebx)
- goto loc1;
- }
-
- loc4:
- if (ebx == 0)
- goto loc15;
-
- edx = _val215d;
- edx++;
- _val216d[edx] = esi;
- _val215d = edx;
- if (edx < en)
- goto loc15;
- goto loc14;
-
- loc5:
- ecx = ebp;
+ int32 count, i, j, en, en2;
+ bool notfound;
- loc6:
- ebx = 1;
- esi = ecx;
- if (ebp < _val215d)
- goto loc9;
- goto loc11;
+ en = 0;
+ for (i = 0; i < 9; i++)
+ if (_enemy[i].field_10 == 0)
+ ++en;
- loc7:
- if (esi == _val216d[eax + 1])
- ebx = ebp;
+ en -= 4;
+ assert(en >= 0);
- eax++;
+ count = 0;
+ while (1) {
+ count++;
+ if (count < 14) {
+ en2 = _vm->_rnd.getRandomNumber(10);
+ if (en2 == 9)
+ en2 = 6;
+ else if (en2 > 9)
+ en2 = 7;
- if (eax < edx)
- goto loc10;
+ notfound = true;
- goto loc11;
+ if (_enemy[en2].field_10 != 0)
+ continue;
- loc9:
- edx = _val215d;
- eax = ebp;
+ if (0 < _val215d) {
+ i = 0;
+ do {
+ if (en2 == _val216d[i + 1])
+ notfound = false;
+ i++;
+ } while (i < _val215d && notfound);
+ }
+ if (!notfound) {
+ continue;
+ }
+ } else {
+ j = 0;
+ do {
+ notfound = true;
+ en2 = j;
+ if (0 < _val215d) {
+ i = 0;
+ do {
+ if (en2 == _val216d[i + 1])
+ notfound = false;
+ i++;
+ } while (i < _val215d && notfound);
+ }
+ j++;
+ } while (j < 9 && !notfound);
+ if (!notfound) {
+ _val215d = 0;
+ count = 0;
+ continue;
+ }
+ }
- loc10:
- if (ebx != 0)
- goto loc7;
-
- loc11:
- ecx++;
- if (ecx >= 9)
- goto loc12;
+ ++_val215d;
+ assert(_val215d < ARRAYSIZE(_val216d));
+ _val216d[_val215d] = en2;
- if (ebx == 0)
- goto loc6;
+ if (_val215d >= en) {
+ proc64(0);
+ }
- loc12:
- if (ebx == 0) {
- _val215d = ebp;
- edi = ebp;
- goto _loop1;
+ if (notfound)
+ break;
}
- edx = _val215d;
- edx++;
- _val216d[edx] = esi;
- _val215d = edx;
-
- if (edx < en)
- goto loc15;
-
- loc14:
- proc64(ebp);
-
- loc15:
- if (ebx == 0)
- goto _loop1;
-
- _currEnemy = esi;
+ _currEnemy = en2;
}
void Insane::proc63(void) {
- int i;
-
if (_val215d > 0) {
- for (i = 0; i < _val215d; i++)
+ for (int i = 0; i < _val215d; i++)
if (_enemy[i].field_10 == 1)
proc64(i);
}
@@ -341,10 +283,13 @@
if (enemy1 >= _val215d)
return;
- _val215d--;
-
- for (int en = enemy1; en < _val215d; en++)
+ int en = enemy1;
+ do {
+ ++en;
+ assert(en + 1 < ARRAYSIZE(_val216d));
_val216d[en] = _val216d[en + 1];
+ } while (en < _val215d);
+ _val215d--;
}
void Insane::iactScene3(byte *renderBitmap, int32 codecparam, int32 setupsan12,
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.277,1.278 akos.cpp,1.155,1.156 intern.h,2.213,2.214 script_v6.cpp,1.394,1.395 script_v6he.cpp,2.107,2.108 script_v72he.cpp,2.42,2.43 script_v7he.cpp,2.61,2.62 scumm.cpp,1.164,1.165 scumm.h,1.465,1.466
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm script_v72he.cpp,2.43,2.44
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list