diff options
| author | Tal Hayon <talhayon1@gmail.com> | 2022-11-21 19:18:07 +0200 |
|---|---|---|
| committer | Tal Hayon <talhayon1@gmail.com> | 2022-11-21 19:18:07 +0200 |
| commit | 44e4b69cdbf2925ae82fe6e6a7336b8ba90b67f0 (patch) | |
| tree | e9f679da3a024029733a6dfd1e5897c930aa4dc3 /src/fileselect.c | |
| parent | bf9df148326971550dc58c65e5e9dd5c7f734228 (diff) | |
Matches from site(Henny022p,octorock,Léo Lam,ThothWhatsThis)
Diffstat (limited to 'src/fileselect.c')
| -rw-r--r-- | src/fileselect.c | 97 |
1 files changed, 47 insertions, 50 deletions
diff --git a/src/fileselect.c b/src/fileselect.c index 04bbfb89..5324661c 100644 --- a/src/fileselect.c +++ b/src/fileselect.c @@ -750,74 +750,71 @@ const u16 gUnk_080FC914[] = { 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0x 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d }; // Handles drawing of hearts -NONMATCH("asm/non_matching/save/sub_08050B3C.inc", void sub_08050B3C(u16* arg0)) { - unk_08050B3C sp; - int var0; - int var1; - int var2; - int var3; - int var4; - int var5; - int var6; - int var7; - u16* var8; - - sp.unk0 = arg0; - var0 = gSave.stats.health / 2; - if (var0 == 0) { - var0 = 1; - } - - var1 = gSave.stats.maxHealth / 2; - if (var1 == 0) { +void sub_08050B3C(u16* target) { + s32 currentQuarterHearts; + s32 maxQuarterHearts; + s32 maxHeartsFirstRow; + s32 currentFullHearts; + s32 maxHeartsSecondRow; + u32 currentFullHeartsFirstRow; + s32 currentFullHeartsSecondRow; + u16* temp_target; + u32 currentPartialHeartValue; + u32 maxHearts; + + currentQuarterHearts = gSave.stats.health / 2; + if (currentQuarterHearts == 0) { + currentQuarterHearts = 1; + } + + maxQuarterHearts = gSave.stats.maxHealth / 2; + if (maxQuarterHearts == 0) { return; } - if (var0 > var1) { - var0 = var1; + if (currentQuarterHearts > maxQuarterHearts) { + currentQuarterHearts = maxQuarterHearts; } - sp.unk4 = var0 & 0x3; - var2 = var0 * 2; - var5 = var2; - if (var2 > 10) { - var5 = 10; + currentPartialHeartValue = currentQuarterHearts & 3; + currentFullHearts = currentQuarterHearts / 4; + currentFullHeartsFirstRow = currentFullHearts; + if (currentFullHearts > 10) { + currentFullHeartsFirstRow = 10; } - var6 = var2; - var6 -= 10; - var7 = var6; - if (var6 < 0) { - var7 = 0; + currentFullHeartsSecondRow = currentFullHearts - 10; + if (currentFullHeartsSecondRow < 0) { + currentFullHeartsSecondRow = 0; } - var1 = var1 >> 2; - var4 = var1; - if (var1 > 10) { - var1 = 10; + maxHearts = maxQuarterHearts / 4; + maxHeartsFirstRow = maxHearts; + if (maxHeartsFirstRow > 10) { + maxHeartsFirstRow = 10; } - - var4 -= 10; - sp.unk0[0] = 0xF24C; - DmaCopy16(3, &gUnk_080FC914[10 - var5], &sp.unk0[1], var1 * 2); - if (var4 > 0) { - sp.unk0[0x20] = 0xF24C; - DmaCopy16(3, &gUnk_080FC914[10 - var7], &sp.unk0[1], var4 * 2); + maxHeartsSecondRow = maxHearts - 10; + temp_target = target; + temp_target[0] = 0xF24C; + DmaCopy16(3, &gUnk_080FC914[10 - currentFullHeartsFirstRow], &temp_target[1], maxHeartsFirstRow * 2); + if (maxHeartsSecondRow > 0) { + temp_target += 0x20; + temp_target[0] = 0xF24C; + DmaCopy16(3, &gUnk_080FC914[10 - currentFullHeartsSecondRow], &temp_target[1], maxHeartsSecondRow * 2); } - if (!sp.unk4) { + if (!currentPartialHeartValue) { return; } - var8 = sp.unk0; - if (var2 >= 10) { - var2 = var6; - var8 += 0x20; + temp_target = target; + if (currentFullHearts >= 10) { + currentFullHearts = currentFullHearts - 10; + temp_target += 0x20; } - var8[var2 + 1] = sp.unk4 - 0xDB3; + temp_target[currentFullHearts + 1] = currentPartialHeartValue - 0xDB3; } -END_NONMATCH void sub_08050C54(void); void sub_08050D68(void); |
