Mercurial > mm7
diff mm7_2.cpp @ 90:d61f6bc04bf2
more pointer fixes
author | zipi |
---|---|
date | Wed, 06 Feb 2013 22:32:43 +0000 |
parents | 98cd93e14777 |
children | 81e93310f73c 2fb33d31ca0d |
line wrap: on
line diff
--- a/mm7_2.cpp Wed Feb 06 21:19:42 2013 +0000 +++ b/mm7_2.cpp Wed Feb 06 22:32:43 2013 +0000 @@ -3225,7 +3225,7 @@ void __cdecl sub_4BBCDD() { signed int v0; // ebp@3 - char *v1; // eax@4 + Actor *v1; // eax@4 __int16 v2; // cx@5 int v3; // esi@8 Player *v4; // esi@14 @@ -3242,22 +3242,22 @@ else { v0 = 0; - if ( (signed int)uNumActors <= 0 ) - goto LABEL_23; - v1 = (char *)&pActors[0].uAIState; - v7 = uNumActors; - do - { - v2 = *(short *)v1; - if ( *(short *)v1 == 5 || v2 == 11 || v2 == 19 || (v3 = *((int *)v1 + 159)) != 0 && (v3 & 7) == 4 ) - ++v0; - v1 += 836; - --v7; - } - while ( v7 ); - if ( v0 >= (signed int)uNumActors ) - { -LABEL_23: + if ( (signed int)uNumActors > 0 ) + { + v1 = pActors;//[0].uAIState; + v7 = uNumActors; + do + { + v2 = v1->uAIState; + if ( v1->uAIState == 5 || v2 == 11 || v2 == 19 || (v3 = v1->uSummonerID) != 0 && (v3 & 7) == 4 ) + ++v0; + ++v1; + --v7; + } + while ( v7 ); + } + if ( v0 >= (signed int)uNumActors || (signed int)uNumActors <= 0) + { uDialogueType = 91; v4 = pParty->pPlayers; ++*((char *)&pParty->field_75A[3] + (unsigned __int8)pParty->field_7B5_in_arena_quest + 1); @@ -7781,7 +7781,7 @@ signed int __fastcall sub_44FA4C_spawn_light_elemental(int a1, int a2, int a3) { signed int v3; // ecx@6 - char *v4; // edx@7 + Actor *v4; // edx@7 signed int result; // eax@13 Actor *v6; // esi@16 char *v7; // ebx@16 @@ -7820,17 +7820,17 @@ v20 = uNumActors; if ( (signed int)uNumActors > 0 ) { - v4 = (char *)&pActors[0].uAIState; - while ( *(short *)v4 != Removed ) + v4 = pActors;//[0].uAIState; + while ( v4->uAIState != Removed ) { ++v3; - v4 += 836; + ++v4; if ( v3 >= (signed int)uNumActors ) - goto LABEL_12; - } - v20 = v3; - } -LABEL_12: + break; + } + if( v3 < (signed int)uNumActors ) + v20 = v3; + } if ( v20 != uNumActors || (result = uNumActors + 1, (signed int)(uNumActors + 1) < 500) ) { v21 = 0; @@ -15982,7 +15982,7 @@ int __fastcall sub_46A89E(int a1, int a2, signed int a3) { signed int v3; // edi@1 - char *v4; // esi@2 + Actor *v4; // esi@2 int v5; // ebx@3 int v6; // eax@3 int v7; // ebx@3 @@ -16004,12 +16004,12 @@ v19 = 0; if ( (signed int)uNumActors > 0 ) { - v4 = (char *)&pActors[0].uAIState; + v4 = pActors;//[0].uAIState; do { - v5 = abs(*((short *)v4 - 17) - pParty->vPosition.x); - v17 = abs(*((short *)v4 - 16) - pParty->vPosition.y); - v18 = abs(*((short *)v4 - 15) - pParty->vPosition.z); + v5 = abs(v4->vPosition.x - pParty->vPosition.x); + v17 = abs(v4->vPosition.y - pParty->vPosition.y); + v18 = abs(v4->vPosition.z - pParty->vPosition.z); v6 = v5; v7 = v17; v8 = v18; @@ -16033,8 +16033,8 @@ } if ( (signed int)(((unsigned int)(11 * v7) >> 5) + (v8 >> 2) + v6) <= a3 ) { - v12 = *(short *)v4; - if ( *(short *)v4 != 5 ) + v12 = v4->uAIState; + if ( v4->uAIState != 5 ) { if ( v12 != 4 ) { @@ -16055,7 +16055,7 @@ } } ++v3; - v4 += 836; + ++v4; } while ( v3 < (signed int)uNumActors ); } @@ -16353,7 +16353,7 @@ void LayingItem::_46BEF1_apply_spells() { LayingItem *v1; // edi@1 - char *v2; // esi@2 + Actor *v2; // esi@2 __int16 v3; // fps@4 unsigned __int8 v4; // c0@4 unsigned __int8 v5; // c3@4 @@ -16363,28 +16363,28 @@ v1 = this; if ( (signed int)uNumActors > 0 ) { - v2 = (char *)&pActors[0].vPosition.y; + v2 = pActors;//[0].vPosition.y; do { - if ( ((Actor *)(v2 - 144))->CanAct() ) + if ( v2->CanAct() ) { //UNDEF(v3); if ( !(v4 | v5) ) { - if ( stru_50C198.GetMagicalResistance((Actor *)(v2 - 144), 0xAu) ) - { - ((SpellBuff *)&v2[16 * v1->field_48 + 68])->Apply( + if ( stru_50C198.GetMagicalResistance(v2, 0xAu) ) + { + v2->pActorBuffs[v1->field_48].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v1->field_4C << 7) * 0.033333335), v1->field_50, 4u, 0, 0); - *(v2 - 106) |= 8u; + HIWORD(v2->uAttributes) |= 8u; } } } ++v6; - v2 += 836; + ++v2; } while ( v6 < (signed int)uNumActors ); } @@ -16730,7 +16730,7 @@ pActors[v108].uAIState = Standing; pActors[v108].UpdateAnimation(); } - ((SpellBuff *)((char *)&pActors[0].pActorBuffs[v136] + v108 * 836))->Apply( + pActors[v108].pActorBuffs[v136].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v137 << 7) * 0.033333335), v152, v150,