Mercurial > mm7
changeset 1849:794f6ac640f4
Actor::ToggleFlag, sub_448518_npc_set_item cleanup
author | Grumpy7 |
---|---|
date | Sun, 13 Oct 2013 08:03:14 +0200 |
parents | 2e6d3cd052e0 |
children | 521ffedabe19 |
files | Actor.cpp |
diffstat | 1 files changed, 30 insertions(+), 57 deletions(-) [+] |
line wrap: on
line diff
--- a/Actor.cpp Sun Oct 13 07:18:03 2013 +0200 +++ b/Actor.cpp Sun Oct 13 08:03:14 2013 +0200 @@ -54,23 +54,26 @@ unsigned int v9; // [sp+14h] [bp-Ch]@4 unsigned int v10; // [sp+1Ch] [bp-4h]@4 - bar_length = 25; - if ( actor->pMonsterInfo.uHP > 25 ) - { + if (actor->pMonsterInfo.uHP <= 25) + bar_length = 25; + else if ( actor->pMonsterInfo.uHP < 200 ) + bar_length = actor->pMonsterInfo.uHP; + else bar_length = 200; - if ( actor->pMonsterInfo.uHP < 200 ) - bar_length = actor->pMonsterInfo.uHP; - } + v10 = bar_length; - v9 = uTextureID_mhp_grn; + if ( actor->sCurrentHP <= (0.34 * actor->pMonsterInfo.uHP) ) + v9 = uTextureID_mhp_red; + else if ( actor->sCurrentHP <= ( 0.67 * actor->pMonsterInfo.uHP) ) + v9 = uTextureID_mhp_yel; + else + v9 = uTextureID_mhp_grn; + if ( actor->sCurrentHP < actor->pMonsterInfo.uHP ) { v10 = bar_length / actor->pMonsterInfo.uHP * actor->sCurrentHP; - if ( actor->sCurrentHP <= (signed int)(signed __int64)(0.34 * (double)(signed int)actor->pMonsterInfo.uHP) ) - v9 = uTextureID_mhp_red; - else if ( actor->sCurrentHP <= (signed int)(signed __int64)((double)(signed int)actor->pMonsterInfo.uHP * 0.67) ) - v9 = uTextureID_mhp_yel; } + uX = window->uFrameX + (signed int)(window->uFrameWidth - bar_length) / 2; pRenderer->SetTextureClipRect(uX, window->uFrameY + 32, uX + bar_length, window->uFrameY + 52); @@ -107,58 +110,28 @@ //----- (00448518) -------------------------------------------------------- void __fastcall sub_448518_npc_set_item(int npc, unsigned int item, int a3) { - signed int v3; // eax@1 - int *v4; // edi@2 - signed int v5; // eax@6 - char *v6; // ecx@6 - char *v7; // eax@11 - ItemGen *v8; // ecx@15 - - v3 = 0; - if ( (signed int)uNumActors > 0 ) + for (int i = 0; i < uNumActors; i++) { - v4 = (int *)&pActors[0].sNPC_ID; - while ( *(short *)v4 != npc ) + if (pActors[uNumActors].sNPC_ID == npc) { - ++v3; - v4 += 209; - if ( v3 >= (signed int)uNumActors ) - return; - } - v5 = v3; - v6 = (char *)&pActors[v5].uCarriedItemID; - if ( a3 ) - { - if ( *(short *)v6 ) + Actor* currActor = &pActors[i]; + if ( a3 ) { - if ( pActors[v5].array_000234[0].uItemID ) - { - v7 = (char *)&pActors[v5].array_000234[1]; - if ( !*(int *)v7 ) - *(int *)v7 = item; - } - else - { - pActors[v5].array_000234[0].uItemID = item; - } + if ( currActor->uCarriedItemID == 0) + currActor->uCarriedItemID = item; + else if ( currActor->array_000234[0].uItemID == 0) + currActor->array_000234[0].uItemID = item; + else if ( currActor->array_000234[1].uItemID == 0) + currActor->array_000234[1].uItemID = item; } else { - *(short *)v6 = item; - } - } - else - { - if ( *(short *)v6 == item ) - { - *(short *)v6 = 0; - } - else - { - v8 = pActors[v5].array_000234; - if ( pActors[v5].array_000234[0].uItemID == item - || (v8 = &pActors[v5].array_000234[1], pActors[v5].array_000234[1].uItemID == item) ) - v8->Reset(); + if ( currActor->uCarriedItemID == item ) + currActor->uCarriedItemID = 0; + else if ( currActor->array_000234[0].uItemID == item ) + currActor->array_000234[0].Reset(); + else if ( currActor->array_000234[1].uItemID == item ) + currActor->array_000234[1].Reset(); } } }