papermario/ver/us/asm/nonmatchings/E20110/func_802B7450_E20560.s
Lightning 1c64f15db1
Make a 224 functions show up in the elf (#530)
* Make a 224 functions show up in the elf

* fix up appendGfx_model (as an example)

* Changed all L labels to .L for local jump tables. Did not change global jump tables found in /data/ as .L is for local only

* Decompile even more misc battle map funcs (#531)

* decompile misc battle map funcs

* fix warnings

* Decompile misc battle map funcs (#528)

* .

* .

* resolve issues

* Update fx_api.c

* Update fx_api.c

* Make a 224 functions show up in the elf

* fix up appendGfx_model (as an example)

* Changed all L labels to .L for local jump tables. Did not change global jump tables found in /data/ as .L is for local only

* Fix merge issue

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
Co-authored-by: Alexander Faßbender <31699028+Brotenko@users.noreply.github.com>
2021-11-16 16:19:38 +09:00

126 lines
6.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_802B7CC0_E20DD0
.word .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B74C8_E205D8, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B74C8_E205D8, .L802B74C8_E205D8, 0
.section .text
glabel func_802B7450_E20560
/* E20560 802B7450 27BDFFE0 */ addiu $sp, $sp, -0x20
/* E20564 802B7454 3C028016 */ lui $v0, %hi(gCollisionStatus)
/* E20568 802B7458 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus)
/* E2056C 802B745C AFB10014 */ sw $s1, 0x14($sp)
/* E20570 802B7460 3C118011 */ lui $s1, %hi(gPlayerStatus)
/* E20574 802B7464 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus)
/* E20578 802B7468 AFB20018 */ sw $s2, 0x18($sp)
/* E2057C 802B746C 2412FFFF */ addiu $s2, $zero, -1
/* E20580 802B7470 AFBF001C */ sw $ra, 0x1c($sp)
/* E20584 802B7474 AFB00010 */ sw $s0, 0x10($sp)
/* E20588 802B7478 84500012 */ lh $s0, 0x12($v0)
/* E2058C 802B747C 8E2500C8 */ lw $a1, 0xc8($s1)
/* E20590 802B7480 56120030 */ bnel $s0, $s2, .L802B7544
/* E20594 802B7484 32024000 */ andi $v0, $s0, 0x4000
/* E20598 802B7488 84440002 */ lh $a0, 2($v0)
/* E2059C 802B748C 04800010 */ bltz $a0, .L802B74D0
/* E205A0 802B7490 30824000 */ andi $v0, $a0, 0x4000
/* E205A4 802B7494 1040000F */ beqz $v0, .L802B74D4
/* E205A8 802B7498 3C020200 */ lui $v0, 0x200
/* E205AC 802B749C 0C0441A9 */ jal get_entity_type
/* E205B0 802B74A0 0080802D */ daddu $s0, $a0, $zero
/* E205B4 802B74A4 2443FFFD */ addiu $v1, $v0, -3
/* E205B8 802B74A8 2C620031 */ sltiu $v0, $v1, 0x31
/* E205BC 802B74AC 10400038 */ beqz $v0, .L802B7590_E206A0
/* E205C0 802B74B0 00031080 */ sll $v0, $v1, 2
/* E205C4 802B74B4 3C01802B */ lui $at, %hi(jtbl_802B7CC0_E20DD0)
/* E205C8 802B74B8 00220821 */ addu $at, $at, $v0
/* E205CC 802B74BC 8C227CC0 */ lw $v0, %lo(jtbl_802B7CC0_E20DD0)($at)
/* E205D0 802B74C0 00400008 */ jr $v0
/* E205D4 802B74C4 00000000 */ nop
.L802B74C8_E205D8:
/* E205D8 802B74C8 080ADD64 */ j .L802B7590_E206A0
/* E205DC 802B74CC 2410FFFF */ addiu $s0, $zero, -1
.L802B74D0:
/* E205E0 802B74D0 3C020200 */ lui $v0, 0x200
.L802B74D4:
/* E205E4 802B74D4 8E230000 */ lw $v1, ($s1)
/* E205E8 802B74D8 34422000 */ ori $v0, $v0, 0x2000
/* E205EC 802B74DC 00621824 */ and $v1, $v1, $v0
/* E205F0 802B74E0 3C020200 */ lui $v0, 0x200
/* E205F4 802B74E4 1462000F */ bne $v1, $v0, .L802B7524
/* E205F8 802B74E8 3C03F7FF */ lui $v1, 0xf7ff
/* E205FC 802B74EC 10A0000C */ beqz $a1, .L802B7520
/* E20600 802B74F0 3C031000 */ lui $v1, 0x1000
/* E20604 802B74F4 8CA20000 */ lw $v0, ($a1)
/* E20608 802B74F8 00431024 */ and $v0, $v0, $v1
/* E2060C 802B74FC 10400009 */ beqz $v0, .L802B7524
/* E20610 802B7500 3C03F7FF */ lui $v1, 0xf7ff
/* E20614 802B7504 80A200A4 */ lb $v0, 0xa4($a1)
/* E20618 802B7508 862300C6 */ lh $v1, 0xc6($s1)
/* E2061C 802B750C 34502000 */ ori $s0, $v0, 0x2000
/* E20620 802B7510 14700029 */ bne $v1, $s0, .L802B75B8
/* E20624 802B7514 3C03F7FF */ lui $v1, 0xf7ff
/* E20628 802B7518 080ADD74 */ j .L802B75D0
/* E2062C 802B751C 24020001 */ addiu $v0, $zero, 1
.L802B7520:
/* E20630 802B7520 3C03F7FF */ lui $v1, 0xf7ff
.L802B7524:
/* E20634 802B7524 3463FFFF */ ori $v1, $v1, 0xffff
/* E20638 802B7528 0000102D */ daddu $v0, $zero, $zero
/* E2063C 802B752C 8E240000 */ lw $a0, ($s1)
/* E20640 802B7530 2405FFFF */ addiu $a1, $zero, -1
/* E20644 802B7534 A62500C6 */ sh $a1, 0xc6($s1)
/* E20648 802B7538 00832024 */ and $a0, $a0, $v1
/* E2064C 802B753C 080ADD74 */ j .L802B75D0
/* E20650 802B7540 AE240000 */ sw $a0, ($s1)
.L802B7544:
/* E20654 802B7544 14400007 */ bnez $v0, .L802B7564
/* E20658 802B7548 32022000 */ andi $v0, $s0, 0x2000
/* E2065C 802B754C 14400010 */ bnez $v0, .L802B7590_E206A0
/* E20660 802B7550 00000000 */ nop
/* E20664 802B7554 0C05173A */ jal should_collider_allow_interact
/* E20668 802B7558 0200202D */ daddu $a0, $s0, $zero
/* E2066C 802B755C 080ADD5B */ j .L802B756C
/* E20670 802B7560 00000000 */ nop
.L802B7564:
/* E20674 802B7564 0C0394BE */ jal phys_can_player_interact
/* E20678 802B7568 00000000 */ nop
.L802B756C:
/* E2067C 802B756C 14400008 */ bnez $v0, .L802B7590_E206A0
/* E20680 802B7570 3C04F7FF */ lui $a0, 0xf7ff
/* E20684 802B7574 3484FFFF */ ori $a0, $a0, 0xffff
/* E20688 802B7578 8E230000 */ lw $v1, ($s1)
/* E2068C 802B757C 0000102D */ daddu $v0, $zero, $zero
/* E20690 802B7580 A63200C6 */ sh $s2, 0xc6($s1)
/* E20694 802B7584 00641824 */ and $v1, $v1, $a0
/* E20698 802B7588 080ADD74 */ j .L802B75D0
/* E2069C 802B758C AE230000 */ sw $v1, ($s1)
.L802B7590_E206A0:
/* E206A0 802B7590 862200C6 */ lh $v0, 0xc6($s1)
/* E206A4 802B7594 14500008 */ bne $v0, $s0, .L802B75B8
/* E206A8 802B7598 3C03F7FF */ lui $v1, 0xf7ff
/* E206AC 802B759C 8E220000 */ lw $v0, ($s1)
/* E206B0 802B75A0 3C030800 */ lui $v1, 0x800
/* E206B4 802B75A4 00431024 */ and $v0, $v0, $v1
/* E206B8 802B75A8 10400007 */ beqz $v0, .L802B75C8
/* E206BC 802B75AC 0000102D */ daddu $v0, $zero, $zero
/* E206C0 802B75B0 080ADD74 */ j .L802B75D0
/* E206C4 802B75B4 00000000 */ nop
.L802B75B8:
/* E206C8 802B75B8 8E220000 */ lw $v0, ($s1)
/* E206CC 802B75BC 3463FFFF */ ori $v1, $v1, 0xffff
/* E206D0 802B75C0 00431024 */ and $v0, $v0, $v1
/* E206D4 802B75C4 AE220000 */ sw $v0, ($s1)
.L802B75C8:
/* E206D8 802B75C8 A63000C6 */ sh $s0, 0xc6($s1)
/* E206DC 802B75CC 24020001 */ addiu $v0, $zero, 1
.L802B75D0:
/* E206E0 802B75D0 8FBF001C */ lw $ra, 0x1c($sp)
/* E206E4 802B75D4 8FB20018 */ lw $s2, 0x18($sp)
/* E206E8 802B75D8 8FB10014 */ lw $s1, 0x14($sp)
/* E206EC 802B75DC 8FB00010 */ lw $s0, 0x10($sp)
/* E206F0 802B75E0 03E00008 */ jr $ra
/* E206F4 802B75E4 27BD0020 */ addiu $sp, $sp, 0x20