Mercurial > mm7
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 ); }