diff mm7_5.cpp @ 82:1faa29fd4c2d

many type, memory, boundary fixes
author zipi
date Sun, 03 Feb 2013 23:37:17 +0000
parents 377535d6e366
children 98cd93e14777
line wrap: on
line diff
--- a/mm7_5.cpp	Sun Feb 03 15:36:54 2013 +0000
+++ b/mm7_5.cpp	Sun Feb 03 23:37:17 2013 +0000
@@ -12102,7 +12102,7 @@
 {
   unsigned int *v2; // esi@1
   signed int v3; // ebx@1
-  char *v4; // edi@2
+  Actor *v4; // edi@2
   int v5; // eax@3
   int v7; // [sp+8h] [bp-Ch]@1
   int v8; // [sp+Ch] [bp-8h]@1
@@ -12116,21 +12116,21 @@
   v9 = 0;
   if ( (signed int)uNumActors > 0 )
   {
-    v4 = (char *)&pActors[0].pMonsterInfo.uID;
+    v4 = pActors;//[0].pMonsterInfo.uID;
     do
     {
-      v5 = *((int *)v4 - 15);                // actor::attributes
+	  v5 = v4->uAttributes;                // actor::attributes
       if ( (v5 & 0x100000) == v8 )
       {
-        if ( *(short *)v4 - 1 == v7 )
+		if ( v4->pMonsterInfo.field_33 == v7 )
         {
           ++*v2;
-          if ( ((Actor *)(v4 - 96))->IsAlive() == 1 )
+          if ( v4->IsAlive() == 1 )
             ++v9;
         }
       }
       ++v3;
-      v4 += 836;
+      ++v4;
     }
     while ( v3 < (signed int)uNumActors );
   }
@@ -12142,7 +12142,7 @@
 {
   unsigned int *v2; // esi@1
   signed int v3; // ebx@1
-  char *v4; // edi@2
+  Actor *v4; // edi@2
   int v5; // eax@3
   unsigned int v7; // [sp+8h] [bp-Ch]@1
   int v8; // [sp+Ch] [bp-8h]@1
@@ -12156,21 +12156,21 @@
   v9 = 0;
   if ( (signed int)uNumActors > 0 )
   {
-    v4 = (char *)&pActors[0].uGroup;
+    v4 = pActors;//[0].uGroup;
     do
     {
-      v5 = *((int *)v4 - 168);
+	  v5 = v4->uAttributes;
       if ( (v5 & 0x100000) == v8 )
       {
-        if ( *(int *)v4 == v7 )
+		if ( v4->uGroup == v7 )
         {
           ++*v2;
-          if ( ((Actor *)(v4 - 708))->IsAlive() == 1 )
+          if ( v4->IsAlive() == 1 )
             ++v9;
         }
       }
       ++v3;
-      v4 += 836;
+      ++v4;
     }
     while ( v3 < (signed int)uNumActors );
   }