papermario/asm/nonmatchings/code_16c8e0/draw_enemy_health_bars.s
2020-11-29 02:13:07 -05:00

278 lines
15 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_enemy_health_bars
/* 16E880 8023FFA0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 16E884 8023FFA4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 16E888 8023FFA8 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 16E88C 8023FFAC AFBF0054 */ sw $ra, 0x54($sp)
/* 16E890 8023FFB0 AFBE0050 */ sw $fp, 0x50($sp)
/* 16E894 8023FFB4 AFB7004C */ sw $s7, 0x4c($sp)
/* 16E898 8023FFB8 AFB60048 */ sw $s6, 0x48($sp)
/* 16E89C 8023FFBC AFB50044 */ sw $s5, 0x44($sp)
/* 16E8A0 8023FFC0 AFB40040 */ sw $s4, 0x40($sp)
/* 16E8A4 8023FFC4 AFB3003C */ sw $s3, 0x3c($sp)
/* 16E8A8 8023FFC8 AFB20038 */ sw $s2, 0x38($sp)
/* 16E8AC 8023FFCC AFB10034 */ sw $s1, 0x34($sp)
/* 16E8B0 8023FFD0 AFB00030 */ sw $s0, 0x30($sp)
/* 16E8B4 8023FFD4 8042007C */ lb $v0, 0x7c($v0)
/* 16E8B8 8023FFD8 104000EC */ beqz $v0, .L8024038C
/* 16E8BC 8023FFDC 00000000 */ nop
/* 16E8C0 8023FFE0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 16E8C4 8023FFE4 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0)
/* 16E8C8 8023FFE8 30420001 */ andi $v0, $v0, 1
/* 16E8CC 8023FFEC 104000E7 */ beqz $v0, .L8024038C
/* 16E8D0 8023FFF0 0000B82D */ daddu $s7, $zero, $zero
/* 16E8D4 8023FFF4 27B60020 */ addiu $s6, $sp, 0x20
/* 16E8D8 8023FFF8 27B50024 */ addiu $s5, $sp, 0x24
/* 16E8DC 8023FFFC 241E0008 */ addiu $fp, $zero, 8
/* 16E8E0 80240000 00171080 */ sll $v0, $s7, 2
.L80240004:
/* 16E8E4 80240004 3C08800E */ lui $t0, %hi(gBattleStatus)
/* 16E8E8 80240008 2508C070 */ addiu $t0, $t0, %lo(gBattleStatus)
/* 16E8EC 8024000C 01021021 */ addu $v0, $t0, $v0
/* 16E8F0 80240010 8C5300E0 */ lw $s3, 0xe0($v0)
/* 16E8F4 80240014 526000DA */ beql $s3, $zero, .L80240380
/* 16E8F8 80240018 26F70001 */ addiu $s7, $s7, 1
/* 16E8FC 8024001C 827401B8 */ lb $s4, 0x1b8($s3)
/* 16E900 80240020 826301B9 */ lb $v1, 0x1b9($s3)
/* 16E904 80240024 00141040 */ sll $v0, $s4, 1
/* 16E908 80240028 00541021 */ addu $v0, $v0, $s4
/* 16E90C 8024002C 000210C0 */ sll $v0, $v0, 3
/* 16E910 80240030 00541021 */ addu $v0, $v0, $s4
/* 16E914 80240034 14600002 */ bnez $v1, .L80240040
/* 16E918 80240038 0043001A */ div $zero, $v0, $v1
/* 16E91C 8024003C 0007000D */ break 7
.L80240040:
/* 16E920 80240040 2401FFFF */ addiu $at, $zero, -1
/* 16E924 80240044 14610004 */ bne $v1, $at, .L80240058
/* 16E928 80240048 3C018000 */ lui $at, 0x8000
/* 16E92C 8024004C 14410002 */ bne $v0, $at, .L80240058
/* 16E930 80240050 00000000 */ nop
/* 16E934 80240054 0006000D */ break 6
.L80240058:
/* 16E938 80240058 00008812 */ mflo $s1
/* 16E93C 8024005C 826201BC */ lb $v0, 0x1bc($s3)
/* 16E940 80240060 926301BC */ lbu $v1, 0x1bc($s3)
/* 16E944 80240064 0222102A */ slt $v0, $s1, $v0
/* 16E948 80240068 10400008 */ beqz $v0, .L8024008C
/* 16E94C 8024006C 2462FFFE */ addiu $v0, $v1, -2
/* 16E950 80240070 A26201BC */ sb $v0, 0x1bc($s3)
/* 16E954 80240074 00021600 */ sll $v0, $v0, 0x18
/* 16E958 80240078 00021603 */ sra $v0, $v0, 0x18
/* 16E95C 8024007C 0051102A */ slt $v0, $v0, $s1
/* 16E960 80240080 1040000E */ beqz $v0, .L802400BC
/* 16E964 80240084 3C020004 */ lui $v0, 4
/* 16E968 80240088 A27101BC */ sb $s1, 0x1bc($s3)
.L8024008C:
/* 16E96C 8024008C 826201BC */ lb $v0, 0x1bc($s3)
/* 16E970 80240090 926301BC */ lbu $v1, 0x1bc($s3)
/* 16E974 80240094 0051102A */ slt $v0, $v0, $s1
/* 16E978 80240098 10400007 */ beqz $v0, .L802400B8
/* 16E97C 8024009C 24620002 */ addiu $v0, $v1, 2
/* 16E980 802400A0 A26201BC */ sb $v0, 0x1bc($s3)
/* 16E984 802400A4 00021600 */ sll $v0, $v0, 0x18
/* 16E988 802400A8 00021603 */ sra $v0, $v0, 0x18
/* 16E98C 802400AC 0222102A */ slt $v0, $s1, $v0
/* 16E990 802400B0 54400001 */ bnel $v0, $zero, .L802400B8
/* 16E994 802400B4 A27101BC */ sb $s1, 0x1bc($s3)
.L802400B8:
/* 16E998 802400B8 3C020004 */ lui $v0, 4
.L802400BC:
/* 16E99C 802400BC 8E630000 */ lw $v1, ($s3)
/* 16E9A0 802400C0 34424000 */ ori $v0, $v0, 0x4000
/* 16E9A4 802400C4 00621024 */ and $v0, $v1, $v0
/* 16E9A8 802400C8 544000AD */ bnel $v0, $zero, .L80240380
/* 16E9AC 802400CC 26F70001 */ addiu $s7, $s7, 1
/* 16E9B0 802400D0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 16E9B4 802400D4 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0)
/* 16E9B8 802400D8 30420002 */ andi $v0, $v0, 2
/* 16E9BC 802400DC 14400004 */ bnez $v0, .L802400F0
/* 16E9C0 802400E0 3C020008 */ lui $v0, 8
/* 16E9C4 802400E4 00621024 */ and $v0, $v1, $v0
/* 16E9C8 802400E8 504000A5 */ beql $v0, $zero, .L80240380
/* 16E9CC 802400EC 26F70001 */ addiu $s7, $s7, 1
.L802400F0:
/* 16E9D0 802400F0 0C094F08 */ jal is_actor_hp_bar_visible
/* 16E9D4 802400F4 0260202D */ daddu $a0, $s3, $zero
/* 16E9D8 802400F8 504000A1 */ beql $v0, $zero, .L80240380
/* 16E9DC 802400FC 26F70001 */ addiu $s7, $s7, 1
/* 16E9E0 80240100 86620156 */ lh $v0, 0x156($s3)
/* 16E9E4 80240104 8663015A */ lh $v1, 0x15a($s3)
/* 16E9E8 80240108 44822000 */ mtc1 $v0, $f4
/* 16E9EC 8024010C 00000000 */ nop
/* 16E9F0 80240110 46802120 */ cvt.s.w $f4, $f4
/* 16E9F4 80240114 86620158 */ lh $v0, 0x158($s3)
/* 16E9F8 80240118 44831000 */ mtc1 $v1, $f2
/* 16E9FC 8024011C 00000000 */ nop
/* 16EA00 80240120 468010A0 */ cvt.s.w $f2, $f2
/* 16EA04 80240124 44820000 */ mtc1 $v0, $f0
/* 16EA08 80240128 00000000 */ nop
/* 16EA0C 8024012C 46800020 */ cvt.s.w $f0, $f0
/* 16EA10 80240130 2842FE0C */ slti $v0, $v0, -0x1f4
/* 16EA14 80240134 54400092 */ bnel $v0, $zero, .L80240380
/* 16EA18 80240138 26F70001 */ addiu $s7, $s7, 1
/* 16EA1C 8024013C 24040001 */ addiu $a0, $zero, 1
/* 16EA20 80240140 44052000 */ mfc1 $a1, $f4
/* 16EA24 80240144 44060000 */ mfc1 $a2, $f0
/* 16EA28 80240148 44071000 */ mfc1 $a3, $f2
/* 16EA2C 8024014C 27A20028 */ addiu $v0, $sp, 0x28
/* 16EA30 80240150 AFB60010 */ sw $s6, 0x10($sp)
/* 16EA34 80240154 AFB50014 */ sw $s5, 0x14($sp)
/* 16EA38 80240158 0C00B94E */ jal get_screen_coords
/* 16EA3C 8024015C AFA20018 */ sw $v0, 0x18($sp)
/* 16EA40 80240160 2405000A */ addiu $a1, $zero, 0xa
/* 16EA44 80240164 3C10802A */ lui $s0, %hi(D_8029EFBC)
/* 16EA48 80240168 8E10EFBC */ lw $s0, %lo(D_8029EFBC)($s0)
/* 16EA4C 8024016C 8FA20024 */ lw $v0, 0x24($sp)
/* 16EA50 80240170 0200202D */ daddu $a0, $s0, $zero
/* 16EA54 80240174 24420010 */ addiu $v0, $v0, 0x10
/* 16EA58 80240178 0C051277 */ jal func_801449DC
/* 16EA5C 8024017C AFA20024 */ sw $v0, 0x24($sp)
/* 16EA60 80240180 3C058029 */ lui $a1, %hi(D_80291F80)
/* 16EA64 80240184 24A51F80 */ addiu $a1, $a1, %lo(D_80291F80)
/* 16EA68 80240188 0C0511FF */ jal set_menu_icon_script
/* 16EA6C 8024018C 0200202D */ daddu $a0, $s0, $zero
/* 16EA70 80240190 8FA50020 */ lw $a1, 0x20($sp)
/* 16EA74 80240194 8FA60024 */ lw $a2, 0x24($sp)
/* 16EA78 80240198 0C051261 */ jal set_icon_render_pos
/* 16EA7C 8024019C 0200202D */ daddu $a0, $s0, $zero
/* 16EA80 802401A0 0C0511EA */ jal draw_icon_0
/* 16EA84 802401A4 0200202D */ daddu $a0, $s0, $zero
/* 16EA88 802401A8 3C026666 */ lui $v0, 0x6666
/* 16EA8C 802401AC 34426667 */ ori $v0, $v0, 0x6667
/* 16EA90 802401B0 02820018 */ mult $s4, $v0
/* 16EA94 802401B4 001417C3 */ sra $v0, $s4, 0x1f
/* 16EA98 802401B8 00004010 */ mfhi $t0
/* 16EA9C 802401BC 00081883 */ sra $v1, $t0, 2
/* 16EAA0 802401C0 00628823 */ subu $s1, $v1, $v0
/* 16EAA4 802401C4 00119080 */ sll $s2, $s1, 2
/* 16EAA8 802401C8 02511021 */ addu $v0, $s2, $s1
/* 16EAAC 802401CC 00021040 */ sll $v0, $v0, 1
/* 16EAB0 802401D0 1A200021 */ blez $s1, .L80240258
/* 16EAB4 802401D4 0282A023 */ subu $s4, $s4, $v0
/* 16EAB8 802401D8 3C10802A */ lui $s0, %hi(D_8029EFBC)
/* 16EABC 802401DC 8E10EFBC */ lw $s0, %lo(D_8029EFBC)($s0)
/* 16EAC0 802401E0 2405000A */ addiu $a1, $zero, 0xa
/* 16EAC4 802401E4 0C051277 */ jal func_801449DC
/* 16EAC8 802401E8 0200202D */ daddu $a0, $s0, $zero
/* 16EACC 802401EC 3C088028 */ lui $t0, %hi(D_802809FC)
/* 16EAD0 802401F0 250809FC */ addiu $t0, $t0, %lo(D_802809FC)
/* 16EAD4 802401F4 02481021 */ addu $v0, $s2, $t0
/* 16EAD8 802401F8 8C450000 */ lw $a1, ($v0)
/* 16EADC 802401FC 0C0511FF */ jal set_menu_icon_script
/* 16EAE0 80240200 0200202D */ daddu $a0, $s0, $zero
/* 16EAE4 80240204 0000202D */ daddu $a0, $zero, $zero
/* 16EAE8 80240208 0080282D */ daddu $a1, $a0, $zero
/* 16EAEC 8024020C 96C20002 */ lhu $v0, 2($s6)
/* 16EAF0 80240210 0080302D */ daddu $a2, $a0, $zero
/* 16EAF4 80240214 AFA20010 */ sw $v0, 0x10($sp)
/* 16EAF8 80240218 96A20002 */ lhu $v0, 2($s5)
/* 16EAFC 8024021C 0080382D */ daddu $a3, $a0, $zero
/* 16EB00 80240220 AFBE0018 */ sw $fp, 0x18($sp)
/* 16EB04 80240224 AFBE001C */ sw $fp, 0x1c($sp)
/* 16EB08 80240228 24420002 */ addiu $v0, $v0, 2
/* 16EB0C 8024022C 3042FFFF */ andi $v0, $v0, 0xffff
/* 16EB10 80240230 0C099E8F */ jal func_80267A3C
/* 16EB14 80240234 AFA20014 */ sw $v0, 0x14($sp)
/* 16EB18 80240238 0200202D */ daddu $a0, $s0, $zero
/* 16EB1C 8024023C 8FA50020 */ lw $a1, 0x20($sp)
/* 16EB20 80240240 8FA60024 */ lw $a2, 0x24($sp)
/* 16EB24 80240244 24A50004 */ addiu $a1, $a1, 4
/* 16EB28 80240248 0C051261 */ jal set_icon_render_pos
/* 16EB2C 8024024C 24C60006 */ addiu $a2, $a2, 6
/* 16EB30 80240250 0C0511F1 */ jal draw_icon_1
/* 16EB34 80240254 0200202D */ daddu $a0, $s0, $zero
.L80240258:
/* 16EB38 80240258 3C10802A */ lui $s0, %hi(D_8029EFBC)
/* 16EB3C 8024025C 8E10EFBC */ lw $s0, %lo(D_8029EFBC)($s0)
/* 16EB40 80240260 2405000A */ addiu $a1, $zero, 0xa
/* 16EB44 80240264 0C051277 */ jal func_801449DC
/* 16EB48 80240268 0200202D */ daddu $a0, $s0, $zero
/* 16EB4C 8024026C 00141080 */ sll $v0, $s4, 2
/* 16EB50 80240270 3C088028 */ lui $t0, %hi(D_802809FC)
/* 16EB54 80240274 250809FC */ addiu $t0, $t0, %lo(D_802809FC)
/* 16EB58 80240278 00481021 */ addu $v0, $v0, $t0
/* 16EB5C 8024027C 8C450000 */ lw $a1, ($v0)
/* 16EB60 80240280 0C0511FF */ jal set_menu_icon_script
/* 16EB64 80240284 0200202D */ daddu $a0, $s0, $zero
/* 16EB68 80240288 0000202D */ daddu $a0, $zero, $zero
/* 16EB6C 8024028C 0080282D */ daddu $a1, $a0, $zero
/* 16EB70 80240290 96C20002 */ lhu $v0, 2($s6)
/* 16EB74 80240294 0080302D */ daddu $a2, $a0, $zero
/* 16EB78 80240298 24420006 */ addiu $v0, $v0, 6
/* 16EB7C 8024029C 3042FFFF */ andi $v0, $v0, 0xffff
/* 16EB80 802402A0 AFA20010 */ sw $v0, 0x10($sp)
/* 16EB84 802402A4 96A20002 */ lhu $v0, 2($s5)
/* 16EB88 802402A8 0080382D */ daddu $a3, $a0, $zero
/* 16EB8C 802402AC AFBE0018 */ sw $fp, 0x18($sp)
/* 16EB90 802402B0 AFBE001C */ sw $fp, 0x1c($sp)
/* 16EB94 802402B4 24420002 */ addiu $v0, $v0, 2
/* 16EB98 802402B8 3042FFFF */ andi $v0, $v0, 0xffff
/* 16EB9C 802402BC 0C099E8F */ jal func_80267A3C
/* 16EBA0 802402C0 AFA20014 */ sw $v0, 0x14($sp)
/* 16EBA4 802402C4 0200202D */ daddu $a0, $s0, $zero
/* 16EBA8 802402C8 8FA50020 */ lw $a1, 0x20($sp)
/* 16EBAC 802402CC 8FA60024 */ lw $a2, 0x24($sp)
/* 16EBB0 802402D0 24A5000A */ addiu $a1, $a1, 0xa
/* 16EBB4 802402D4 0C051261 */ jal set_icon_render_pos
/* 16EBB8 802402D8 24C60006 */ addiu $a2, $a2, 6
/* 16EBBC 802402DC 0C0511F1 */ jal draw_icon_1
/* 16EBC0 802402E0 0200202D */ daddu $a0, $s0, $zero
/* 16EBC4 802402E4 240400A8 */ addiu $a0, $zero, 0xa8
/* 16EBC8 802402E8 0000282D */ daddu $a1, $zero, $zero
/* 16EBCC 802402EC 00A0302D */ daddu $a2, $a1, $zero
/* 16EBD0 802402F0 240700FF */ addiu $a3, $zero, 0xff
/* 16EBD4 802402F4 24030019 */ addiu $v1, $zero, 0x19
/* 16EBD8 802402F8 827101BC */ lb $s1, 0x1bc($s3)
/* 16EBDC 802402FC 96C20002 */ lhu $v0, 2($s6)
/* 16EBE0 80240300 00718823 */ subu $s1, $v1, $s1
/* 16EBE4 80240304 2442000B */ addiu $v0, $v0, 0xb
/* 16EBE8 80240308 00511023 */ subu $v0, $v0, $s1
/* 16EBEC 8024030C 3042FFFF */ andi $v0, $v0, 0xffff
/* 16EBF0 80240310 3230FFFF */ andi $s0, $s1, 0xffff
/* 16EBF4 80240314 AFA20010 */ sw $v0, 0x10($sp)
/* 16EBF8 80240318 96A30002 */ lhu $v1, 2($s5)
/* 16EBFC 8024031C 24020001 */ addiu $v0, $zero, 1
/* 16EC00 80240320 AFB00018 */ sw $s0, 0x18($sp)
/* 16EC04 80240324 AFA2001C */ sw $v0, 0x1c($sp)
/* 16EC08 80240328 2463FFF9 */ addiu $v1, $v1, -7
/* 16EC0C 8024032C 3063FFFF */ andi $v1, $v1, 0xffff
/* 16EC10 80240330 0C099E8F */ jal func_80267A3C
/* 16EC14 80240334 AFA30014 */ sw $v1, 0x14($sp)
/* 16EC18 80240338 240400FF */ addiu $a0, $zero, 0xff
/* 16EC1C 8024033C 0000282D */ daddu $a1, $zero, $zero
/* 16EC20 80240340 00A0302D */ daddu $a2, $a1, $zero
/* 16EC24 80240344 96C20002 */ lhu $v0, 2($s6)
/* 16EC28 80240348 0080382D */ daddu $a3, $a0, $zero
/* 16EC2C 8024034C 2442000B */ addiu $v0, $v0, 0xb
/* 16EC30 80240350 00511023 */ subu $v0, $v0, $s1
/* 16EC34 80240354 3042FFFF */ andi $v0, $v0, 0xffff
/* 16EC38 80240358 AFA20010 */ sw $v0, 0x10($sp)
/* 16EC3C 8024035C 96A30002 */ lhu $v1, 2($s5)
/* 16EC40 80240360 24020004 */ addiu $v0, $zero, 4
/* 16EC44 80240364 AFB00018 */ sw $s0, 0x18($sp)
/* 16EC48 80240368 AFA2001C */ sw $v0, 0x1c($sp)
/* 16EC4C 8024036C 2463FFFA */ addiu $v1, $v1, -6
/* 16EC50 80240370 3063FFFF */ andi $v1, $v1, 0xffff
/* 16EC54 80240374 0C099E8F */ jal func_80267A3C
/* 16EC58 80240378 AFA30014 */ sw $v1, 0x14($sp)
/* 16EC5C 8024037C 26F70001 */ addiu $s7, $s7, 1
.L80240380:
/* 16EC60 80240380 2AE20018 */ slti $v0, $s7, 0x18
/* 16EC64 80240384 1440FF1F */ bnez $v0, .L80240004
/* 16EC68 80240388 00171080 */ sll $v0, $s7, 2
.L8024038C:
/* 16EC6C 8024038C 8FBF0054 */ lw $ra, 0x54($sp)
/* 16EC70 80240390 8FBE0050 */ lw $fp, 0x50($sp)
/* 16EC74 80240394 8FB7004C */ lw $s7, 0x4c($sp)
/* 16EC78 80240398 8FB60048 */ lw $s6, 0x48($sp)
/* 16EC7C 8024039C 8FB50044 */ lw $s5, 0x44($sp)
/* 16EC80 802403A0 8FB40040 */ lw $s4, 0x40($sp)
/* 16EC84 802403A4 8FB3003C */ lw $s3, 0x3c($sp)
/* 16EC88 802403A8 8FB20038 */ lw $s2, 0x38($sp)
/* 16EC8C 802403AC 8FB10034 */ lw $s1, 0x34($sp)
/* 16EC90 802403B0 8FB00030 */ lw $s0, 0x30($sp)
/* 16EC94 802403B4 03E00008 */ jr $ra
/* 16EC98 802403B8 27BD0058 */ addiu $sp, $sp, 0x58