papermario/asm/nonmatchings/code_16c8e0/PlaySoundAtPart.s
2020-08-12 22:37:16 -04:00

131 lines
6.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel PlaySoundAtPart
/* 1821B0 802538D0 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 1821B4 802538D4 AFB20020 */ sw $s2, 0x20($sp)
/* 1821B8 802538D8 0080902D */ daddu $s2, $a0, $zero
/* 1821BC 802538DC AFBF0028 */ sw $ra, 0x28($sp)
/* 1821C0 802538E0 AFB30024 */ sw $s3, 0x24($sp)
/* 1821C4 802538E4 AFB1001C */ sw $s1, 0x1c($sp)
/* 1821C8 802538E8 AFB00018 */ sw $s0, 0x18($sp)
/* 1821CC 802538EC 8E50000C */ lw $s0, 0xc($s2)
/* 1821D0 802538F0 8E050000 */ lw $a1, ($s0)
/* 1821D4 802538F4 0C0B1EAF */ jal get_variable
/* 1821D8 802538F8 26100004 */ addiu $s0, $s0, 4
/* 1821DC 802538FC 0040882D */ daddu $s1, $v0, $zero
/* 1821E0 80253900 8E050000 */ lw $a1, ($s0)
/* 1821E4 80253904 26100004 */ addiu $s0, $s0, 4
/* 1821E8 80253908 0C0B1EAF */ jal get_variable
/* 1821EC 8025390C 0240202D */ daddu $a0, $s2, $zero
/* 1821F0 80253910 0040982D */ daddu $s3, $v0, $zero
/* 1821F4 80253914 2402FF81 */ addiu $v0, $zero, -0x7f
/* 1821F8 80253918 16220002 */ bne $s1, $v0, .L80253924
/* 1821FC 8025391C 8E100000 */ lw $s0, ($s0)
/* 182200 80253920 8E510148 */ lw $s1, 0x148($s2)
.L80253924:
/* 182204 80253924 0C09A75B */ jal get_actor
/* 182208 80253928 0220202D */ daddu $a0, $s1, $zero
/* 18220C 8025392C 0040202D */ daddu $a0, $v0, $zero
/* 182210 80253930 0C099117 */ jal get_actor_part
/* 182214 80253934 0260282D */ daddu $a1, $s3, $zero
/* 182218 80253938 C4400060 */ lwc1 $f0, 0x60($v0)
/* 18221C 8025393C 0200202D */ daddu $a0, $s0, $zero
/* 182220 80253940 E7A00010 */ swc1 $f0, 0x10($sp)
/* 182224 80253944 8C460058 */ lw $a2, 0x58($v0)
/* 182228 80253948 8C47005C */ lw $a3, 0x5c($v0)
/* 18222C 8025394C 0C052757 */ jal play_sound_at_position
/* 182230 80253950 0000282D */ daddu $a1, $zero, $zero
/* 182234 80253954 8FBF0028 */ lw $ra, 0x28($sp)
/* 182238 80253958 8FB30024 */ lw $s3, 0x24($sp)
/* 18223C 8025395C 8FB20020 */ lw $s2, 0x20($sp)
/* 182240 80253960 8FB1001C */ lw $s1, 0x1c($sp)
/* 182244 80253964 8FB00018 */ lw $s0, 0x18($sp)
/* 182248 80253968 24020002 */ addiu $v0, $zero, 2
/* 18224C 8025396C 03E00008 */ jr $ra
/* 182250 80253970 27BD0030 */ addiu $sp, $sp, 0x30
/* 182254 80253974 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 182258 80253978 AFB20020 */ sw $s2, 0x20($sp)
/* 18225C 8025397C 0080902D */ daddu $s2, $a0, $zero
/* 182260 80253980 AFBF0028 */ sw $ra, 0x28($sp)
/* 182264 80253984 AFB30024 */ sw $s3, 0x24($sp)
/* 182268 80253988 AFB1001C */ sw $s1, 0x1c($sp)
/* 18226C 8025398C AFB00018 */ sw $s0, 0x18($sp)
/* 182270 80253990 8E50000C */ lw $s0, 0xc($s2)
/* 182274 80253994 8E050000 */ lw $a1, ($s0)
/* 182278 80253998 0C0B1EAF */ jal get_variable
/* 18227C 8025399C 26100004 */ addiu $s0, $s0, 4
/* 182280 802539A0 0040882D */ daddu $s1, $v0, $zero
/* 182284 802539A4 8E050000 */ lw $a1, ($s0)
/* 182288 802539A8 26100004 */ addiu $s0, $s0, 4
/* 18228C 802539AC 0C0B1EAF */ jal get_variable
/* 182290 802539B0 0240202D */ daddu $a0, $s2, $zero
/* 182294 802539B4 0040982D */ daddu $s3, $v0, $zero
/* 182298 802539B8 2402FF81 */ addiu $v0, $zero, -0x7f
/* 18229C 802539BC 16220002 */ bne $s1, $v0, .L802539C8
/* 1822A0 802539C0 8E100000 */ lw $s0, ($s0)
/* 1822A4 802539C4 8E510148 */ lw $s1, 0x148($s2)
.L802539C8:
/* 1822A8 802539C8 0C09A75B */ jal get_actor
/* 1822AC 802539CC 0220202D */ daddu $a0, $s1, $zero
/* 1822B0 802539D0 00131880 */ sll $v1, $s3, 2
/* 1822B4 802539D4 00431821 */ addu $v1, $v0, $v1
/* 1822B8 802539D8 AC700438 */ sw $s0, 0x438($v1)
/* 1822BC 802539DC C440014C */ lwc1 $f0, 0x14c($v0)
/* 1822C0 802539E0 0200202D */ daddu $a0, $s0, $zero
/* 1822C4 802539E4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 1822C8 802539E8 8C460144 */ lw $a2, 0x144($v0)
/* 1822CC 802539EC 8C470148 */ lw $a3, 0x148($v0)
/* 1822D0 802539F0 0C052757 */ jal play_sound_at_position
/* 1822D4 802539F4 0000282D */ daddu $a1, $zero, $zero
/* 1822D8 802539F8 8FBF0028 */ lw $ra, 0x28($sp)
/* 1822DC 802539FC 8FB30024 */ lw $s3, 0x24($sp)
/* 1822E0 80253A00 8FB20020 */ lw $s2, 0x20($sp)
/* 1822E4 80253A04 8FB1001C */ lw $s1, 0x1c($sp)
/* 1822E8 80253A08 8FB00018 */ lw $s0, 0x18($sp)
/* 1822EC 80253A0C 24020002 */ addiu $v0, $zero, 2
/* 1822F0 80253A10 03E00008 */ jr $ra
/* 1822F4 80253A14 27BD0030 */ addiu $sp, $sp, 0x30
/* 1822F8 80253A18 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 1822FC 80253A1C AFB20018 */ sw $s2, 0x18($sp)
/* 182300 80253A20 0080902D */ daddu $s2, $a0, $zero
/* 182304 80253A24 AFBF001C */ sw $ra, 0x1c($sp)
/* 182308 80253A28 AFB10014 */ sw $s1, 0x14($sp)
/* 18230C 80253A2C AFB00010 */ sw $s0, 0x10($sp)
/* 182310 80253A30 8E50000C */ lw $s0, 0xc($s2)
/* 182314 80253A34 8E050000 */ lw $a1, ($s0)
/* 182318 80253A38 0C0B1EAF */ jal get_variable
/* 18231C 80253A3C 26100004 */ addiu $s0, $s0, 4
/* 182320 80253A40 0040882D */ daddu $s1, $v0, $zero
/* 182324 80253A44 8E050000 */ lw $a1, ($s0)
/* 182328 80253A48 0C0B1EAF */ jal get_variable
/* 18232C 80253A4C 0240202D */ daddu $a0, $s2, $zero
/* 182330 80253A50 0040802D */ daddu $s0, $v0, $zero
/* 182334 80253A54 2402FF81 */ addiu $v0, $zero, -0x7f
/* 182338 80253A58 16220002 */ bne $s1, $v0, .L80253A64
/* 18233C 80253A5C 00000000 */ nop
/* 182340 80253A60 8E510148 */ lw $s1, 0x148($s2)
.L80253A64:
/* 182344 80253A64 0C09A75B */ jal get_actor
/* 182348 80253A68 0220202D */ daddu $a0, $s1, $zero
/* 18234C 80253A6C 00101880 */ sll $v1, $s0, 2
/* 182350 80253A70 00438021 */ addu $s0, $v0, $v1
/* 182354 80253A74 8E040438 */ lw $a0, 0x438($s0)
/* 182358 80253A78 10800005 */ beqz $a0, .L80253A90
/* 18235C 80253A7C 24020002 */ addiu $v0, $zero, 2
/* 182360 80253A80 0C05271B */ jal stop_sound
/* 182364 80253A84 00000000 */ nop
/* 182368 80253A88 AE000438 */ sw $zero, 0x438($s0)
/* 18236C 80253A8C 24020002 */ addiu $v0, $zero, 2
.L80253A90:
/* 182370 80253A90 8FBF001C */ lw $ra, 0x1c($sp)
/* 182374 80253A94 8FB20018 */ lw $s2, 0x18($sp)
/* 182378 80253A98 8FB10014 */ lw $s1, 0x14($sp)
/* 18237C 80253A9C 8FB00010 */ lw $s0, 0x10($sp)
/* 182380 80253AA0 03E00008 */ jr $ra
/* 182384 80253AA4 27BD0020 */ addiu $sp, $sp, 0x20