1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-01-14 04:07:06 +00:00

Bg_Gnd_Iceblock and Bg_Ice_Objects (sliding ice blocks) (#534)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* a good start

* done

* Log

* formatting

* thisx

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
This commit is contained in:
petrie911 2020-12-29 12:11:11 -06:00 committed by GitHub
parent 21e367a7cb
commit 695bc37be4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 544 additions and 2154 deletions

View file

@ -1,14 +0,0 @@
glabel BgGndIceblock_Destroy
/* 00134 80879BD4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00138 80879BD8 AFA40018 */ sw $a0, 0x0018($sp)
/* 0013C 80879BDC 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00140 80879BE0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00144 80879BE4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00148 80879BE8 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 0014C 80879BEC 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 00150 80879BF0 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00154 80879BF4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00158 80879BF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0015C 80879BFC 03E00008 */ jr $ra
/* 00160 80879C00 00000000 */ nop

View file

@ -1,14 +0,0 @@
glabel BgGndIceblock_Draw
/* 00C50 8087A6F0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C54 8087A6F4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00C58 8087A6F8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00C5C 8087A6FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C60 8087A700 3C050600 */ lui $a1, %hi(D_06004420) ## $a1 = 06000000
/* 00C64 8087A704 0C00D498 */ jal Gfx_DrawDListOpa
/* 00C68 8087A708 24A54420 */ addiu $a1, $a1, %lo(D_06004420) ## $a1 = 06004420
/* 00C6C 8087A70C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C70 8087A710 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C74 8087A714 03E00008 */ jr $ra
/* 00C78 8087A718 00000000 */ nop
/* 00C7C 8087A71C 00000000 */ nop

View file

@ -1,113 +0,0 @@
.rdata
glabel D_8087A790
.asciz "../z_bg_gnd_iceblock.c"
.balign 4
glabel D_8087A7A8
.asciz "thisx->world.position.x = %f\n"
.balign 4
glabel D_8087A7C8
.asciz "0"
.balign 4
glabel D_8087A7CC
.asciz "../z_bg_gnd_iceblock.c"
.balign 4
.late_rodata
glabel D_8087A7E4
.float 2792.0
glabel D_8087A7E8
.float 3032.0
.text
glabel BgGndIceblock_Init
/* 00000 80879AA0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 80879AA4 AFA50034 */ sw $a1, 0x0034($sp)
/* 00008 80879AA8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 80879AAC AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 80879AB0 3C058088 */ lui $a1, %hi(D_8087A754) ## $a1 = 80880000
/* 00014 80879AB4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80879AB8 AFA00024 */ sw $zero, 0x0024($sp)
/* 0001C 80879ABC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 80879AC0 24A5A754 */ addiu $a1, $a1, %lo(D_8087A754) ## $a1 = 8087A754
/* 00024 80879AC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00028 80879AC8 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 0002C 80879ACC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00030 80879AD0 3C040600 */ lui $a0, %hi(D_06004618) ## $a0 = 06000000
/* 00034 80879AD4 24844618 */ addiu $a0, $a0, %lo(D_06004618) ## $a0 = 06004618
/* 00038 80879AD8 0C010620 */ jal DynaPolyInfo_Alloc
/* 0003C 80879ADC 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00040 80879AE0 8E0F0008 */ lw $t7, 0x0008($s0) ## 00000008
/* 00044 80879AE4 8FA40034 */ lw $a0, 0x0034($sp)
/* 00048 80879AE8 8E0E000C */ lw $t6, 0x000C($s0) ## 0000000C
/* 0004C 80879AEC AE0F0168 */ sw $t7, 0x0168($s0) ## 00000168
/* 00050 80879AF0 8E0F0010 */ lw $t7, 0x0010($s0) ## 00000010
/* 00054 80879AF4 3C188088 */ lui $t8, %hi(func_8087A0C8) ## $t8 = 80880000
/* 00058 80879AF8 2718A0C8 */ addiu $t8, $t8, %lo(func_8087A0C8) ## $t8 = 8087A0C8
/* 0005C 80879AFC AE180164 */ sw $t8, 0x0164($s0) ## 00000164
/* 00060 80879B00 AE0E016C */ sw $t6, 0x016C($s0) ## 0000016C
/* 00064 80879B04 AE0F0170 */ sw $t7, 0x0170($s0) ## 00000170
/* 00068 80879B08 8FA70024 */ lw $a3, 0x0024($sp)
/* 0006C 80879B0C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00070 80879B10 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00074 80879B14 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00078 80879B18 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 0007C 80879B1C 3C018088 */ lui $at, %hi(D_8087A7E4) ## $at = 80880000
/* 00080 80879B20 C424A7E4 */ lwc1 $f4, %lo(D_8087A7E4)($at)
/* 00084 80879B24 C6000024 */ lwc1 $f0, 0x0024($s0) ## 00000024
/* 00088 80879B28 24190007 */ addiu $t9, $zero, 0x0007 ## $t9 = 00000007
/* 0008C 80879B2C 3C018088 */ lui $at, %hi(D_8087A7E8) ## $at = 80880000
/* 00090 80879B30 46002032 */ c.eq.s $f4, $f0
/* 00094 80879B34 00000000 */ nop
/* 00098 80879B38 45000005 */ bc1f .L80879B50
/* 0009C 80879B3C 00000000 */ nop
/* 000A0 80879B40 A600001C */ sh $zero, 0x001C($s0) ## 0000001C
/* 000A4 80879B44 3C018088 */ lui $at, %hi(D_8087AC40) ## $at = 80880000
/* 000A8 80879B48 1000001D */ beq $zero, $zero, .L80879BC0
/* 000AC 80879B4C A039AC40 */ sb $t9, %lo(D_8087AC40)($at)
.L80879B50:
/* 000B0 80879B50 C426A7E8 */ lwc1 $f6, %lo(D_8087A7E8)($at)
/* 000B4 80879B54 3C048088 */ lui $a0, %hi(D_8087A790) ## $a0 = 80880000
/* 000B8 80879B58 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 000BC 80879B5C 46003032 */ c.eq.s $f6, $f0
/* 000C0 80879B60 3C018088 */ lui $at, %hi(D_8087AC41) ## $at = 80880000
/* 000C4 80879B64 2409000E */ addiu $t1, $zero, 0x000E ## $t1 = 0000000E
/* 000C8 80879B68 2484A790 */ addiu $a0, $a0, %lo(D_8087A790) ## $a0 = 8087A790
/* 000CC 80879B6C 45000004 */ bc1f .L80879B80
/* 000D0 80879B70 00000000 */ nop
/* 000D4 80879B74 A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 000D8 80879B78 10000011 */ beq $zero, $zero, .L80879BC0
/* 000DC 80879B7C A029AC41 */ sb $t1, %lo(D_8087AC41)($at)
.L80879B80:
/* 000E0 80879B80 0C000B84 */ jal LogUtils_LogThreadId
/* 000E4 80879B84 2405008A */ addiu $a1, $zero, 0x008A ## $a1 = 0000008A
/* 000E8 80879B88 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 000EC 80879B8C 3C048088 */ lui $a0, %hi(D_8087A7A8) ## $a0 = 80880000
/* 000F0 80879B90 2484A7A8 */ addiu $a0, $a0, %lo(D_8087A7A8) ## $a0 = 8087A7A8
/* 000F4 80879B94 460042A1 */ cvt.d.s $f10, $f8
/* 000F8 80879B98 44075000 */ mfc1 $a3, $f10
/* 000FC 80879B9C 44065800 */ mfc1 $a2, $f11
/* 00100 80879BA0 0C00084C */ jal osSyncPrintf
/* 00104 80879BA4 00000000 */ nop
/* 00108 80879BA8 3C048088 */ lui $a0, %hi(D_8087A7C8) ## $a0 = 80880000
/* 0010C 80879BAC 3C058088 */ lui $a1, %hi(D_8087A7CC) ## $a1 = 80880000
/* 00110 80879BB0 24A5A7CC */ addiu $a1, $a1, %lo(D_8087A7CC) ## $a1 = 8087A7CC
/* 00114 80879BB4 2484A7C8 */ addiu $a0, $a0, %lo(D_8087A7C8) ## $a0 = 8087A7C8
/* 00118 80879BB8 0C0007FC */ jal __assert
/* 0011C 80879BBC 2406008B */ addiu $a2, $zero, 0x008B ## $a2 = 0000008B
.L80879BC0:
/* 00120 80879BC0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00124 80879BC4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00128 80879BC8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0012C 80879BCC 03E00008 */ jr $ra
/* 00130 80879BD0 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel BgGndIceblock_Update
/* 00C2C 8087A6CC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C30 8087A6D0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C34 8087A6D4 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00C38 8087A6D8 0320F809 */ jalr $ra, $t9
/* 00C3C 8087A6DC 00000000 */ nop
/* 00C40 8087A6E0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C44 8087A6E4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C48 8087A6E8 03E00008 */ jr $ra
/* 00C4C 8087A6EC 00000000 */ nop

View file

@ -1,76 +0,0 @@
.late_rodata
glabel D_8087A7EC
.float 2552.0
.text
glabel func_80879C04
/* 00164 80879C04 3C0E8088 */ lui $t6, %hi(D_8087A758) ## $t6 = 80880000
/* 00168 80879C08 25CEA758 */ addiu $t6, $t6, %lo(D_8087A758) ## $t6 = 8087A758
/* 0016C 80879C0C 8DD80000 */ lw $t8, 0x0000($t6) ## 8087A758
/* 00170 80879C10 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00174 80879C14 27A2001C */ addiu $v0, $sp, 0x001C ## $v0 = FFFFFFE4
/* 00178 80879C18 AC580000 */ sw $t8, 0x0000($v0) ## FFFFFFE4
/* 0017C 80879C1C 8DCF0004 */ lw $t7, 0x0004($t6) ## 8087A75C
/* 00180 80879C20 3C198088 */ lui $t9, %hi(D_8087A770) ## $t9 = 80880000
/* 00184 80879C24 2739A770 */ addiu $t9, $t9, %lo(D_8087A770) ## $t9 = 8087A770
/* 00188 80879C28 AC4F0004 */ sw $t7, 0x0004($v0) ## FFFFFFE8
/* 0018C 80879C2C 8DD80008 */ lw $t8, 0x0008($t6) ## 8087A760
/* 00190 80879C30 27A30004 */ addiu $v1, $sp, 0x0004 ## $v1 = FFFFFFCC
/* 00194 80879C34 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00198 80879C38 AC580008 */ sw $t8, 0x0008($v0) ## FFFFFFEC
/* 0019C 80879C3C 8DCF000C */ lw $t7, 0x000C($t6) ## 8087A764
/* 001A0 80879C40 44810000 */ mtc1 $at, $f0 ## $f0 = 120.00
/* 001A4 80879C44 3C018088 */ lui $at, %hi(D_8087AC40) ## $at = 80880000
/* 001A8 80879C48 AC4F000C */ sw $t7, 0x000C($v0) ## FFFFFFF0
/* 001AC 80879C4C 8DD80010 */ lw $t8, 0x0010($t6) ## 8087A768
/* 001B0 80879C50 00455821 */ addu $t3, $v0, $a1
/* 001B4 80879C54 AC580010 */ sw $t8, 0x0010($v0) ## FFFFFFF4
/* 001B8 80879C58 95D80014 */ lhu $t8, 0x0014($t6) ## 8087A76C
/* 001BC 80879C5C A4580014 */ sh $t8, 0x0014($v0) ## FFFFFFF8
/* 001C0 80879C60 8F290000 */ lw $t1, 0x0000($t9) ## 8087A770
/* 001C4 80879C64 AC690000 */ sw $t1, 0x0000($v1) ## FFFFFFCC
/* 001C8 80879C68 8F280004 */ lw $t0, 0x0004($t9) ## 8087A774
/* 001CC 80879C6C AC680004 */ sw $t0, 0x0004($v1) ## FFFFFFD0
/* 001D0 80879C70 8F290008 */ lw $t1, 0x0008($t9) ## 8087A778
/* 001D4 80879C74 AC690008 */ sw $t1, 0x0008($v1) ## FFFFFFD4
/* 001D8 80879C78 8F28000C */ lw $t0, 0x000C($t9) ## 8087A77C
/* 001DC 80879C7C AC68000C */ sw $t0, 0x000C($v1) ## FFFFFFD8
/* 001E0 80879C80 8F290010 */ lw $t1, 0x0010($t9) ## 8087A780
/* 001E4 80879C84 AC690010 */ sw $t1, 0x0010($v1) ## FFFFFFDC
/* 001E8 80879C88 97290014 */ lhu $t1, 0x0014($t9) ## 8087A784
/* 001EC 80879C8C A4690014 */ sh $t1, 0x0014($v1) ## FFFFFFE0
/* 001F0 80879C90 848A001C */ lh $t2, 0x001C($a0) ## 0000001C
/* 001F4 80879C94 002A0821 */ addu $at, $at, $t2
/* 001F8 80879C98 A025AC40 */ sb $a1, %lo(D_8087AC40)($at)
/* 001FC 80879C9C 916C0000 */ lbu $t4, 0x0000($t3) ## 00000000
/* 00200 80879CA0 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 00204 80879CA4 448C2000 */ mtc1 $t4, $f4 ## $f4 = 0.00
/* 00208 80879CA8 05810004 */ bgez $t4, .L80879CBC
/* 0020C 80879CAC 468021A0 */ cvt.s.w $f6, $f4
/* 00210 80879CB0 44814000 */ mtc1 $at, $f8 ## $f8 = 4294967296.00
/* 00214 80879CB4 00000000 */ nop
/* 00218 80879CB8 46083180 */ add.s $f6, $f6, $f8
.L80879CBC:
/* 0021C 80879CBC 46003282 */ mul.s $f10, $f6, $f0
/* 00220 80879CC0 3C018088 */ lui $at, %hi(D_8087A7EC) ## $at = 80880000
/* 00224 80879CC4 C430A7EC */ lwc1 $f16, %lo(D_8087A7EC)($at)
/* 00228 80879CC8 00656821 */ addu $t5, $v1, $a1
/* 0022C 80879CCC 3C01C407 */ lui $at, 0xC407 ## $at = C4070000
/* 00230 80879CD0 44812000 */ mtc1 $at, $f4 ## $f4 = -540.00
/* 00234 80879CD4 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 00238 80879CD8 46105480 */ add.s $f18, $f10, $f16
/* 0023C 80879CDC E4920168 */ swc1 $f18, 0x0168($a0) ## 00000168
/* 00240 80879CE0 91AE0000 */ lbu $t6, 0x0000($t5) ## 00000000
/* 00244 80879CE4 448E4000 */ mtc1 $t6, $f8 ## $f8 = -0.00
/* 00248 80879CE8 05C10004 */ bgez $t6, .L80879CFC
/* 0024C 80879CEC 468041A0 */ cvt.s.w $f6, $f8
/* 00250 80879CF0 44815000 */ mtc1 $at, $f10 ## $f10 = 4294967296.00
/* 00254 80879CF4 00000000 */ nop
/* 00258 80879CF8 460A3180 */ add.s $f6, $f6, $f10
.L80879CFC:
/* 0025C 80879CFC 46003402 */ mul.s $f16, $f6, $f0
/* 00260 80879D00 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00264 80879D04 46102481 */ sub.s $f18, $f4, $f16
/* 00268 80879D08 03E00008 */ jr $ra
/* 0026C 80879D0C E4920170 */ swc1 $f18, 0x0170($a0) ## 00000170

View file

@ -1,18 +0,0 @@
glabel func_80879D10
/* 00270 80879D10 3C038088 */ lui $v1, %hi(D_8087AC40) ## $v1 = 80880000
/* 00274 80879D14 3C028088 */ lui $v0, %hi(D_8087AC42) ## $v0 = 80880000
/* 00278 80879D18 2442AC42 */ addiu $v0, $v0, %lo(D_8087AC42) ## $v0 = 8087AC42
/* 0027C 80879D1C 2463AC40 */ addiu $v1, $v1, %lo(D_8087AC40) ## $v1 = 8087AC40
/* 00280 80879D20 906E0000 */ lbu $t6, 0x0000($v1) ## 8087AC40
.L80879D24:
/* 00284 80879D24 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 8087AC41
/* 00288 80879D28 148E0003 */ bne $a0, $t6, .L80879D38
/* 0028C 80879D2C 00000000 */ nop
/* 00290 80879D30 03E00008 */ jr $ra
/* 00294 80879D34 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80879D38:
/* 00298 80879D38 5462FFFA */ bnel $v1, $v0, .L80879D24
/* 0029C 80879D3C 906E0000 */ lbu $t6, 0x0000($v1) ## 8087AC41
/* 002A0 80879D40 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 002A4 80879D44 03E00008 */ jr $ra
/* 002A8 80879D48 00000000 */ nop

View file

@ -1,51 +0,0 @@
.late_rodata
glabel jtbl_8087A7F0
.word L80879D7C
.word L80879D7C
.word L80879D8C
.word L80879D8C
.word L80879D8C
.word L80879D7C
.word L80879D8C
.word L80879D8C
.word L80879D84
.word L80879D8C
.word L80879D8C
.word L80879D8C
.word L80879D8C
.word L80879D7C
.word L80879D8C
.word L80879D8C
.word L80879D7C
.word L80879D8C
.word L80879D8C
.word L80879D8C
.word L80879D7C
.word L80879D7C
.text
glabel func_80879D4C
/* 002AC 80879D4C 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 002B0 80879D50 3C0F8088 */ lui $t7, %hi(D_8087AC40) ## $t7 = 80880000
/* 002B4 80879D54 01EE7821 */ addu $t7, $t7, $t6
/* 002B8 80879D58 91EFAC40 */ lbu $t7, %lo(D_8087AC40)($t7)
/* 002BC 80879D5C 2DE10016 */ sltiu $at, $t7, 0x0016
/* 002C0 80879D60 1020000A */ beq $at, $zero, .L80879D8C
/* 002C4 80879D64 000F7880 */ sll $t7, $t7, 2
/* 002C8 80879D68 3C018088 */ lui $at, %hi(jtbl_8087A7F0) ## $at = 80880000
/* 002CC 80879D6C 002F0821 */ addu $at, $at, $t7
/* 002D0 80879D70 8C2FA7F0 */ lw $t7, %lo(jtbl_8087A7F0)($at)
/* 002D4 80879D74 01E00008 */ jr $t7
/* 002D8 80879D78 00000000 */ nop
glabel L80879D7C
/* 002DC 80879D7C 03E00008 */ jr $ra
/* 002E0 80879D80 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
glabel L80879D84
/* 002E4 80879D84 03E00008 */ jr $ra
/* 002E8 80879D88 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
glabel L80879D8C
.L80879D8C:
/* 002EC 80879D8C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 002F0 80879D90 03E00008 */ jr $ra
/* 002F4 80879D94 00000000 */ nop

View file

@ -1,300 +0,0 @@
.late_rodata
glabel jtbl_8087A848
.word L80879DE8
.word L80879DE8
.word L8087A0B8
.word L8087A0B8
.word L80879DFC
.word L8087A0B8
.word L8087A0B8
.word L8087A0B8
.word L80879E38
.word L8087A0B8
.word L8087A0B8
.word L80879E4C
.word L8087A0B8
.word L8087A0B8
.word L8087A0B8
.word L80879E60
.word L80879E60
glabel jtbl_8087A88C
.word L80879EB0
.word L80879EB0
.word L8087A0B8
.word L8087A0B8
.word L8087A0B8
.word L80879EC4
.word L8087A0B8
.word L80879EC4
.word L8087A0B8
.word L80879ED8
.word L8087A0B8
.word L8087A0B8
.word L80879EEC
.word L80879EEC
.word L8087A0B8
.word L80879F00
.word L80879F14
glabel jtbl_8087A8D0
.word L80879F7C
.word L80879F90
.word L8087A0B8
.word L80879FA4
.word L8087A0B8
.word L8087A0B8
.word L80879FB8
.word L8087A0B8
.word L80879FCC
.word L80879FE0
glabel jtbl_8087A8F8
.word L8087A034
.word L8087A048
.word L8087A0B8
.word L8087A05C
.word L8087A0B8
.word L8087A05C
.word L8087A0B8
.word L8087A0B8
.word L8087A070
.word L8087A084
.text
glabel func_80879D98
/* 002F8 80879D98 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002FC 80879D9C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00300 80879DA0 84820158 */ lh $v0, 0x0158($a0) ## 00000158
/* 00304 80879DA4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00308 80879DA8 24018000 */ addiu $at, $zero, 0x8000 ## $at = FFFF8000
/* 0030C 80879DAC 14400031 */ bne $v0, $zero, .L80879E74
/* 00310 80879DB0 00000000 */ nop
/* 00314 80879DB4 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00318 80879DB8 3C0F8088 */ lui $t7, %hi(D_8087AC40) ## $t7 = 80880000
/* 0031C 80879DBC 01EE7821 */ addu $t7, $t7, $t6
/* 00320 80879DC0 91EFAC40 */ lbu $t7, %lo(D_8087AC40)($t7)
/* 00324 80879DC4 25F8FFFD */ addiu $t8, $t7, 0xFFFD ## $t8 = 8087FFFD
/* 00328 80879DC8 2F010011 */ sltiu $at, $t8, 0x0011
/* 0032C 80879DCC 102000BA */ beq $at, $zero, .L8087A0B8
/* 00330 80879DD0 0018C080 */ sll $t8, $t8, 2
/* 00334 80879DD4 3C018088 */ lui $at, %hi(jtbl_8087A848) ## $at = 80880000
/* 00338 80879DD8 00380821 */ addu $at, $at, $t8
/* 0033C 80879DDC 8C38A848 */ lw $t8, %lo(jtbl_8087A848)($at)
/* 00340 80879DE0 03000008 */ jr $t8
/* 00344 80879DE4 00000000 */ nop
glabel L80879DE8
/* 00348 80879DE8 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0034C 80879DEC 0C21E701 */ jal func_80879C04
/* 00350 80879DF0 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 00354 80879DF4 100000B1 */ beq $zero, $zero, .L8087A0BC
/* 00358 80879DF8 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879DFC
/* 0035C 80879DFC 24040008 */ addiu $a0, $zero, 0x0008 ## $a0 = 00000008
/* 00360 80879E00 0C21E744 */ jal func_80879D10
/* 00364 80879E04 AFA60018 */ sw $a2, 0x0018($sp)
/* 00368 80879E08 10400006 */ beq $v0, $zero, .L80879E24
/* 0036C 80879E0C 8FA60018 */ lw $a2, 0x0018($sp)
/* 00370 80879E10 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00374 80879E14 0C21E701 */ jal func_80879C04
/* 00378 80879E18 24050009 */ addiu $a1, $zero, 0x0009 ## $a1 = 00000009
/* 0037C 80879E1C 100000A7 */ beq $zero, $zero, .L8087A0BC
/* 00380 80879E20 8FBF0014 */ lw $ra, 0x0014($sp)
.L80879E24:
/* 00384 80879E24 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00388 80879E28 0C21E701 */ jal func_80879C04
/* 0038C 80879E2C 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008
/* 00390 80879E30 100000A2 */ beq $zero, $zero, .L8087A0BC
/* 00394 80879E34 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879E38
/* 00398 80879E38 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0039C 80879E3C 0C21E701 */ jal func_80879C04
/* 003A0 80879E40 2405000C */ addiu $a1, $zero, 0x000C ## $a1 = 0000000C
/* 003A4 80879E44 1000009D */ beq $zero, $zero, .L8087A0BC
/* 003A8 80879E48 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879E4C
/* 003AC 80879E4C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 003B0 80879E50 0C21E701 */ jal func_80879C04
/* 003B4 80879E54 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 003B8 80879E58 10000098 */ beq $zero, $zero, .L8087A0BC
/* 003BC 80879E5C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879E60
/* 003C0 80879E60 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 003C4 80879E64 0C21E701 */ jal func_80879C04
/* 003C8 80879E68 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 003CC 80879E6C 10000093 */ beq $zero, $zero, .L8087A0BC
/* 003D0 80879E70 8FBF0014 */ lw $ra, 0x0014($sp)
.L80879E74:
/* 003D4 80879E74 54410032 */ bnel $v0, $at, .L80879F40
/* 003D8 80879E78 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 003DC 80879E7C 84D9001C */ lh $t9, 0x001C($a2) ## 0000001C
/* 003E0 80879E80 3C088088 */ lui $t0, %hi(D_8087AC40) ## $t0 = 80880000
/* 003E4 80879E84 01194021 */ addu $t0, $t0, $t9
/* 003E8 80879E88 9108AC40 */ lbu $t0, %lo(D_8087AC40)($t0)
/* 003EC 80879E8C 2509FFFE */ addiu $t1, $t0, 0xFFFE ## $t1 = 8087FFFE
/* 003F0 80879E90 2D210011 */ sltiu $at, $t1, 0x0011
/* 003F4 80879E94 10200088 */ beq $at, $zero, .L8087A0B8
/* 003F8 80879E98 00094880 */ sll $t1, $t1, 2
/* 003FC 80879E9C 3C018088 */ lui $at, %hi(jtbl_8087A88C) ## $at = 80880000
/* 00400 80879EA0 00290821 */ addu $at, $at, $t1
/* 00404 80879EA4 8C29A88C */ lw $t1, %lo(jtbl_8087A88C)($at)
/* 00408 80879EA8 01200008 */ jr $t1
/* 0040C 80879EAC 00000000 */ nop
glabel L80879EB0
/* 00410 80879EB0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00414 80879EB4 0C21E701 */ jal func_80879C04
/* 00418 80879EB8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 0041C 80879EBC 1000007F */ beq $zero, $zero, .L8087A0BC
/* 00420 80879EC0 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879EC4
/* 00424 80879EC4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00428 80879EC8 0C21E701 */ jal func_80879C04
/* 0042C 80879ECC 24050006 */ addiu $a1, $zero, 0x0006 ## $a1 = 00000006
/* 00430 80879ED0 1000007A */ beq $zero, $zero, .L8087A0BC
/* 00434 80879ED4 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879ED8
/* 00438 80879ED8 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0043C 80879EDC 0C21E701 */ jal func_80879C04
/* 00440 80879EE0 2405000A */ addiu $a1, $zero, 0x000A ## $a1 = 0000000A
/* 00444 80879EE4 10000075 */ beq $zero, $zero, .L8087A0BC
/* 00448 80879EE8 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879EEC
/* 0044C 80879EEC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00450 80879EF0 0C21E701 */ jal func_80879C04
/* 00454 80879EF4 2405000D */ addiu $a1, $zero, 0x000D ## $a1 = 0000000D
/* 00458 80879EF8 10000070 */ beq $zero, $zero, .L8087A0BC
/* 0045C 80879EFC 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879F00
/* 00460 80879F00 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00464 80879F04 0C21E701 */ jal func_80879C04
/* 00468 80879F08 24050010 */ addiu $a1, $zero, 0x0010 ## $a1 = 00000010
/* 0046C 80879F0C 1000006B */ beq $zero, $zero, .L8087A0BC
/* 00470 80879F10 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879F14
/* 00474 80879F14 24040011 */ addiu $a0, $zero, 0x0011 ## $a0 = 00000011
/* 00478 80879F18 0C21E744 */ jal func_80879D10
/* 0047C 80879F1C AFA60018 */ sw $a2, 0x0018($sp)
/* 00480 80879F20 14400065 */ bne $v0, $zero, .L8087A0B8
/* 00484 80879F24 8FA60018 */ lw $a2, 0x0018($sp)
/* 00488 80879F28 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0048C 80879F2C 0C21E701 */ jal func_80879C04
/* 00490 80879F30 24050010 */ addiu $a1, $zero, 0x0010 ## $a1 = 00000010
/* 00494 80879F34 10000061 */ beq $zero, $zero, .L8087A0BC
/* 00498 80879F38 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0049C 80879F3C 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
.L80879F40:
/* 004A0 80879F40 5441002D */ bnel $v0, $at, .L80879FF8
/* 004A4 80879F44 2401C000 */ addiu $at, $zero, 0xC000 ## $at = FFFFC000
/* 004A8 80879F48 84CA001C */ lh $t2, 0x001C($a2) ## 0000001C
/* 004AC 80879F4C 3C0B8088 */ lui $t3, %hi(D_8087AC40) ## $t3 = 80880000
/* 004B0 80879F50 016A5821 */ addu $t3, $t3, $t2
/* 004B4 80879F54 916BAC40 */ lbu $t3, %lo(D_8087AC40)($t3)
/* 004B8 80879F58 256CFFFA */ addiu $t4, $t3, 0xFFFA ## $t4 = 8087FFFA
/* 004BC 80879F5C 2D81000A */ sltiu $at, $t4, 0x000A
/* 004C0 80879F60 10200055 */ beq $at, $zero, .L8087A0B8
/* 004C4 80879F64 000C6080 */ sll $t4, $t4, 2
/* 004C8 80879F68 3C018088 */ lui $at, %hi(jtbl_8087A8D0) ## $at = 80880000
/* 004CC 80879F6C 002C0821 */ addu $at, $at, $t4
/* 004D0 80879F70 8C2CA8D0 */ lw $t4, %lo(jtbl_8087A8D0)($at)
/* 004D4 80879F74 01800008 */ jr $t4
/* 004D8 80879F78 00000000 */ nop
glabel L80879F7C
/* 004DC 80879F7C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 004E0 80879F80 0C21E701 */ jal func_80879C04
/* 004E4 80879F84 2405000D */ addiu $a1, $zero, 0x000D ## $a1 = 0000000D
/* 004E8 80879F88 1000004C */ beq $zero, $zero, .L8087A0BC
/* 004EC 80879F8C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879F90
/* 004F0 80879F90 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 004F4 80879F94 0C21E701 */ jal func_80879C04
/* 004F8 80879F98 24050011 */ addiu $a1, $zero, 0x0011 ## $a1 = 00000011
/* 004FC 80879F9C 10000047 */ beq $zero, $zero, .L8087A0BC
/* 00500 80879FA0 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879FA4
/* 00504 80879FA4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00508 80879FA8 0C21E701 */ jal func_80879C04
/* 0050C 80879FAC 2405000B */ addiu $a1, $zero, 0x000B ## $a1 = 0000000B
/* 00510 80879FB0 10000042 */ beq $zero, $zero, .L8087A0BC
/* 00514 80879FB4 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879FB8
/* 00518 80879FB8 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0051C 80879FBC 0C21E701 */ jal func_80879C04
/* 00520 80879FC0 24050015 */ addiu $a1, $zero, 0x0015 ## $a1 = 00000015
/* 00524 80879FC4 1000003D */ beq $zero, $zero, .L8087A0BC
/* 00528 80879FC8 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879FCC
/* 0052C 80879FCC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00530 80879FD0 0C21E701 */ jal func_80879C04
/* 00534 80879FD4 24050012 */ addiu $a1, $zero, 0x0012 ## $a1 = 00000012
/* 00538 80879FD8 10000038 */ beq $zero, $zero, .L8087A0BC
/* 0053C 80879FDC 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80879FE0
/* 00540 80879FE0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00544 80879FE4 0C21E701 */ jal func_80879C04
/* 00548 80879FE8 24050013 */ addiu $a1, $zero, 0x0013 ## $a1 = 00000013
/* 0054C 80879FEC 10000033 */ beq $zero, $zero, .L8087A0BC
/* 00550 80879FF0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00554 80879FF4 2401C000 */ addiu $at, $zero, 0xC000 ## $at = FFFFC000
.L80879FF8:
/* 00558 80879FF8 54410030 */ bnel $v0, $at, .L8087A0BC
/* 0055C 80879FFC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00560 8087A000 84CD001C */ lh $t5, 0x001C($a2) ## 0000001C
/* 00564 8087A004 3C0E8088 */ lui $t6, %hi(D_8087AC40) ## $t6 = 80880000
/* 00568 8087A008 01CD7021 */ addu $t6, $t6, $t5
/* 0056C 8087A00C 91CEAC40 */ lbu $t6, %lo(D_8087AC40)($t6)
/* 00570 8087A010 25CFFFFA */ addiu $t7, $t6, 0xFFFA ## $t7 = 8087FFFA
/* 00574 8087A014 2DE1000A */ sltiu $at, $t7, 0x000A
/* 00578 8087A018 10200027 */ beq $at, $zero, .L8087A0B8
/* 0057C 8087A01C 000F7880 */ sll $t7, $t7, 2
/* 00580 8087A020 3C018088 */ lui $at, %hi(jtbl_8087A8F8) ## $at = 80880000
/* 00584 8087A024 002F0821 */ addu $at, $at, $t7
/* 00588 8087A028 8C2FA8F8 */ lw $t7, %lo(jtbl_8087A8F8)($at)
/* 0058C 8087A02C 01E00008 */ jr $t7
/* 00590 8087A030 00000000 */ nop
glabel L8087A034
/* 00594 8087A034 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00598 8087A038 0C21E701 */ jal func_80879C04
/* 0059C 8087A03C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 005A0 8087A040 1000001E */ beq $zero, $zero, .L8087A0BC
/* 005A4 8087A044 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L8087A048
/* 005A8 8087A048 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 005AC 8087A04C 0C21E701 */ jal func_80879C04
/* 005B0 8087A050 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 005B4 8087A054 10000019 */ beq $zero, $zero, .L8087A0BC
/* 005B8 8087A058 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L8087A05C
/* 005BC 8087A05C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 005C0 8087A060 0C21E701 */ jal func_80879C04
/* 005C4 8087A064 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004
/* 005C8 8087A068 10000014 */ beq $zero, $zero, .L8087A0BC
/* 005CC 8087A06C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L8087A070
/* 005D0 8087A070 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 005D4 8087A074 0C21E701 */ jal func_80879C04
/* 005D8 8087A078 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002
/* 005DC 8087A07C 1000000F */ beq $zero, $zero, .L8087A0BC
/* 005E0 8087A080 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L8087A084
/* 005E4 8087A084 24040008 */ addiu $a0, $zero, 0x0008 ## $a0 = 00000008
/* 005E8 8087A088 0C21E744 */ jal func_80879D10
/* 005EC 8087A08C AFA60018 */ sw $a2, 0x0018($sp)
/* 005F0 8087A090 10400006 */ beq $v0, $zero, .L8087A0AC
/* 005F4 8087A094 8FA60018 */ lw $a2, 0x0018($sp)
/* 005F8 8087A098 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 005FC 8087A09C 0C21E701 */ jal func_80879C04
/* 00600 8087A0A0 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00604 8087A0A4 10000005 */ beq $zero, $zero, .L8087A0BC
/* 00608 8087A0A8 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087A0AC:
/* 0060C 8087A0AC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00610 8087A0B0 0C21E701 */ jal func_80879C04
/* 00614 8087A0B4 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008
glabel L8087A0B8
.L8087A0B8:
/* 00618 8087A0B8 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087A0BC:
/* 0061C 8087A0BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00620 8087A0C0 03E00008 */ jr $ra
/* 00624 8087A0C4 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_8087A0C8
/* 00628 8087A0C8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0062C 8087A0CC AFBF001C */ sw $ra, 0x001C($sp)
/* 00630 8087A0D0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00634 8087A0D4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00638 8087A0D8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0063C 8087A0DC C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00640 8087A0E0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00644 8087A0E4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00648 8087A0E8 46040032 */ c.eq.s $f0, $f4
/* 0064C 8087A0EC 00000000 */ nop
/* 00650 8087A0F0 45030020 */ bc1tl .L8087A174
/* 00654 8087A0F4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00658 8087A0F8 8C4F0680 */ lw $t7, 0x0680($v0) ## 00000680
/* 0065C 8087A0FC 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00660 8087A100 01E1C024 */ and $t8, $t7, $at
/* 00664 8087A104 AC580680 */ sw $t8, 0x0680($v0) ## 00000680
/* 00668 8087A108 C4860150 */ lwc1 $f6, 0x0150($a0) ## 00000150
/* 0066C 8087A10C 4606003C */ c.lt.s $f0, $f6
/* 00670 8087A110 00000000 */ nop
/* 00674 8087A114 45020014 */ bc1fl .L8087A168
/* 00678 8087A118 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0067C 8087A11C 0C21E766 */ jal func_80879D98
/* 00680 8087A120 00000000 */ nop
/* 00684 8087A124 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00688 8087A128 0C00B6EC */ jal func_8002DBB0
/* 0068C 8087A12C 26050168 */ addiu $a1, $s0, 0x0168 ## $a1 = 00000168
/* 00690 8087A130 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00694 8087A134 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 00698 8087A138 8FA40024 */ lw $a0, 0x0024($sp)
/* 0069C 8087A13C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 006A0 8087A140 4600403C */ c.lt.s $f8, $f0
/* 006A4 8087A144 00000000 */ nop
/* 006A8 8087A148 45020007 */ bc1fl .L8087A168
/* 006AC 8087A14C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006B0 8087A150 0C00B7D5 */ jal func_8002DF54
/* 006B4 8087A154 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 006B8 8087A158 3C198088 */ lui $t9, %hi(func_8087A39C) ## $t9 = 80880000
/* 006BC 8087A15C 2739A39C */ addiu $t9, $t9, %lo(func_8087A39C) ## $t9 = 8087A39C
/* 006C0 8087A160 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
/* 006C4 8087A164 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L8087A168:
/* 006C8 8087A168 00000000 */ nop
/* 006CC 8087A16C E6000150 */ swc1 $f0, 0x0150($s0) ## 00000150
/* 006D0 8087A170 8FBF001C */ lw $ra, 0x001C($sp)
.L8087A174:
/* 006D4 8087A174 8FB00018 */ lw $s0, 0x0018($sp)
/* 006D8 8087A178 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 006DC 8087A17C 03E00008 */ jr $ra
/* 006E0 8087A180 00000000 */ nop

View file

@ -1,56 +0,0 @@
glabel func_8087A184
/* 006E4 8087A184 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006E8 8087A188 AFBF0014 */ sw $ra, 0x0014($sp)
/* 006EC 8087A18C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006F0 8087A190 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 006F4 8087A194 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 006F8 8087A198 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 006FC 8087A19C 46040032 */ c.eq.s $f0, $f4
/* 00700 8087A1A0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00704 8087A1A4 45030007 */ bc1tl .L8087A1C4
/* 00708 8087A1A8 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
/* 0070C 8087A1AC 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00710 8087A1B0 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00714 8087A1B4 01C17824 */ and $t7, $t6, $at
/* 00718 8087A1B8 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 0071C 8087A1BC E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
/* 00720 8087A1C0 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
.L8087A1C4:
/* 00724 8087A1C4 AFA70018 */ sw $a3, 0x0018($sp)
/* 00728 8087A1C8 0C01DE80 */ jal Math_StepToF
/* 0072C 8087A1CC 24E40028 */ addiu $a0, $a3, 0x0028 ## $a0 = 00000028
/* 00730 8087A1D0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00734 8087A1D4 10400018 */ beq $v0, $zero, .L8087A238
/* 00738 8087A1D8 8FA70018 */ lw $a3, 0x0018($sp)
/* 0073C 8087A1DC 8CF90008 */ lw $t9, 0x0008($a3) ## 00000008
/* 00740 8087A1E0 84E2001C */ lh $v0, 0x001C($a3) ## 0000001C
/* 00744 8087A1E4 8CF8000C */ lw $t8, 0x000C($a3) ## 0000000C
/* 00748 8087A1E8 ACF90168 */ sw $t9, 0x0168($a3) ## 00000168
/* 0074C 8087A1EC 8CF90010 */ lw $t9, 0x0010($a3) ## 00000010
/* 00750 8087A1F0 3C088088 */ lui $t0, %hi(func_8087A0C8) ## $t0 = 80880000
/* 00754 8087A1F4 2508A0C8 */ addiu $t0, $t0, %lo(func_8087A0C8) ## $t0 = 8087A0C8
/* 00758 8087A1F8 E4E00068 */ swc1 $f0, 0x0068($a3) ## 00000068
/* 0075C 8087A1FC ACE80164 */ sw $t0, 0x0164($a3) ## 00000164
/* 00760 8087A200 ACF8016C */ sw $t8, 0x016C($a3) ## 0000016C
/* 00764 8087A204 10400006 */ beq $v0, $zero, .L8087A220
/* 00768 8087A208 ACF90170 */ sw $t9, 0x0170($a3) ## 00000170
/* 0076C 8087A20C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00770 8087A210 10410007 */ beq $v0, $at, .L8087A230
/* 00774 8087A214 240A000E */ addiu $t2, $zero, 0x000E ## $t2 = 0000000E
/* 00778 8087A218 10000008 */ beq $zero, $zero, .L8087A23C
/* 0077C 8087A21C 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087A220:
/* 00780 8087A220 24090007 */ addiu $t1, $zero, 0x0007 ## $t1 = 00000007
/* 00784 8087A224 3C018088 */ lui $at, %hi(D_8087AC40) ## $at = 80880000
/* 00788 8087A228 10000003 */ beq $zero, $zero, .L8087A238
/* 0078C 8087A22C A029AC40 */ sb $t1, %lo(D_8087AC40)($at)
.L8087A230:
/* 00790 8087A230 3C018088 */ lui $at, %hi(D_8087AC41) ## $at = 80880000
/* 00794 8087A234 A02AAC41 */ sb $t2, %lo(D_8087AC41)($at)
.L8087A238:
/* 00798 8087A238 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087A23C:
/* 0079C 8087A23C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 007A0 8087A240 03E00008 */ jr $ra
/* 007A4 8087A244 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_8087A248
/* 007A8 8087A248 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 007AC 8087A24C AFBF001C */ sw $ra, 0x001C($sp)
/* 007B0 8087A250 AFB00018 */ sw $s0, 0x0018($sp)
/* 007B4 8087A254 AFA50024 */ sw $a1, 0x0024($sp)
/* 007B8 8087A258 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 007BC 8087A25C 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 007C0 8087A260 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060
/* 007C4 8087A264 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007C8 8087A268 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 007CC 8087A26C 46062200 */ add.s $f8, $f4, $f6
/* 007D0 8087A270 44818000 */ mtc1 $at, $f16 ## $f16 = 300.00
/* 007D4 8087A274 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 007D8 8087A278 E4880038 */ swc1 $f8, 0x0038($a0) ## 00000060
/* 007DC 8087A27C C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000000C
/* 007E0 8087A280 8E060060 */ lw $a2, 0x0060($s0) ## 00000060
/* 007E4 8087A284 46105481 */ sub.s $f18, $f10, $f16
/* 007E8 8087A288 44059000 */ mfc1 $a1, $f18
/* 007EC 8087A28C 0C01DE80 */ jal Math_StepToF
/* 007F0 8087A290 00000000 */ nop
/* 007F4 8087A294 10400015 */ beq $v0, $zero, .L8087A2EC
/* 007F8 8087A298 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 007FC 8087A29C C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 00800 8087A2A0 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00
/* 00804 8087A2A4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00808 8087A2A8 C6060008 */ lwc1 $f6, 0x0008($s0) ## 00000008
/* 0080C 8087A2AC 460A4401 */ sub.s $f16, $f8, $f10
/* 00810 8087A2B0 C6120010 */ lwc1 $f18, 0x0010($s0) ## 00000010
/* 00814 8087A2B4 E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
/* 00818 8087A2B8 E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024
/* 0081C 8087A2BC E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028
/* 00820 8087A2C0 E612002C */ swc1 $f18, 0x002C($s0) ## 0000002C
/* 00824 8087A2C4 0C023A62 */ jal Player_InCsMode
/* 00828 8087A2C8 8FA40024 */ lw $a0, 0x0024($sp)
/* 0082C 8087A2CC 10400004 */ beq $v0, $zero, .L8087A2E0
/* 00830 8087A2D0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00834 8087A2D4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00838 8087A2D8 0C00B7D5 */ jal func_8002DF54
/* 0083C 8087A2DC 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
.L8087A2E0:
/* 00840 8087A2E0 3C0E8088 */ lui $t6, %hi(func_8087A184) ## $t6 = 80880000
/* 00844 8087A2E4 25CEA184 */ addiu $t6, $t6, %lo(func_8087A184) ## $t6 = 8087A184
/* 00848 8087A2E8 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
.L8087A2EC:
/* 0084C 8087A2EC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00850 8087A2F0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00854 8087A2F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00858 8087A2F8 03E00008 */ jr $ra
/* 0085C 8087A2FC 00000000 */ nop

View file

@ -1,43 +0,0 @@
glabel func_8087A300
/* 00860 8087A300 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00864 8087A304 AFBF001C */ sw $ra, 0x001C($sp)
/* 00868 8087A308 AFB00018 */ sw $s0, 0x0018($sp)
/* 0086C 8087A30C AFA50024 */ sw $a1, 0x0024($sp)
/* 00870 8087A310 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00874 8087A314 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 00878 8087A318 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060
/* 0087C 8087A31C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00880 8087A320 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00884 8087A324 46062200 */ add.s $f8, $f4, $f6
/* 00888 8087A328 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 0088C 8087A32C 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 00890 8087A330 E4880038 */ swc1 $f8, 0x0038($a0) ## 00000060
/* 00894 8087A334 C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000000C
/* 00898 8087A338 8E060060 */ lw $a2, 0x0060($s0) ## 00000060
/* 0089C 8087A33C 46105481 */ sub.s $f18, $f10, $f16
/* 008A0 8087A340 44059000 */ mfc1 $a1, $f18
/* 008A4 8087A344 0C01DE80 */ jal Math_StepToF
/* 008A8 8087A348 00000000 */ nop
/* 008AC 8087A34C 5040000F */ beql $v0, $zero, .L8087A38C
/* 008B0 8087A350 8FBF001C */ lw $ra, 0x001C($sp)
/* 008B4 8087A354 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 008B8 8087A358 00000000 */ nop
/* 008BC 8087A35C E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
/* 008C0 8087A360 0C023A62 */ jal Player_InCsMode
/* 008C4 8087A364 8FA40024 */ lw $a0, 0x0024($sp)
/* 008C8 8087A368 10400004 */ beq $v0, $zero, .L8087A37C
/* 008CC 8087A36C 8FA40024 */ lw $a0, 0x0024($sp)
/* 008D0 8087A370 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 008D4 8087A374 0C00B7D5 */ jal func_8002DF54
/* 008D8 8087A378 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
.L8087A37C:
/* 008DC 8087A37C 3C0E8088 */ lui $t6, %hi(func_8087A0C8) ## $t6 = 80880000
/* 008E0 8087A380 25CEA0C8 */ addiu $t6, $t6, %lo(func_8087A0C8) ## $t6 = 8087A0C8
/* 008E4 8087A384 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
/* 008E8 8087A388 8FBF001C */ lw $ra, 0x001C($sp)
.L8087A38C:
/* 008EC 8087A38C 8FB00018 */ lw $s0, 0x0018($sp)
/* 008F0 8087A390 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 008F4 8087A394 03E00008 */ jr $ra
/* 008F8 8087A398 00000000 */ nop

View file

@ -1,232 +0,0 @@
glabel func_8087A39C
/* 008FC 8087A39C 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 00900 8087A3A0 AFB00030 */ sw $s0, 0x0030($sp)
/* 00904 8087A3A4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00908 8087A3A8 AFBF0034 */ sw $ra, 0x0034($sp)
/* 0090C 8087A3AC AFA5006C */ sw $a1, 0x006C($sp)
/* 00910 8087A3B0 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 00914 8087A3B4 3C054120 */ lui $a1, 0x4120 ## $a1 = 41200000
/* 00918 8087A3B8 24840068 */ addiu $a0, $a0, 0x0068 ## $a0 = 00000068
/* 0091C 8087A3BC 0C01DE80 */ jal Math_StepToF
/* 00920 8087A3C0 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00924 8087A3C4 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00928 8087A3C8 8E050168 */ lw $a1, 0x0168($s0) ## 00000168
/* 0092C 8087A3CC 0C01DE80 */ jal Math_StepToF
/* 00930 8087A3D0 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 00934 8087A3D4 8E050170 */ lw $a1, 0x0170($s0) ## 00000170
/* 00938 8087A3D8 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 0093C 8087A3DC AFA20064 */ sw $v0, 0x0064($sp)
/* 00940 8087A3E0 0C01DE80 */ jal Math_StepToF
/* 00944 8087A3E4 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
/* 00948 8087A3E8 8FA30064 */ lw $v1, 0x0064($sp)
/* 0094C 8087A3EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00950 8087A3F0 24052835 */ addiu $a1, $zero, 0x2835 ## $a1 = 00002835
/* 00954 8087A3F4 00621824 */ and $v1, $v1, $v0
/* 00958 8087A3F8 10600022 */ beq $v1, $zero, .L8087A484
/* 0095C 8087A3FC 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00960 8087A400 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00964 8087A404 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 00968 8087A408 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
/* 0096C 8087A40C E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 00970 8087A410 E6060168 */ swc1 $f6, 0x0168($s0) ## 00000168
/* 00974 8087A414 0C00BE0A */ jal Audio_PlayActorSound2
/* 00978 8087A418 E6080170 */ swc1 $f8, 0x0170($s0) ## 00000170
/* 0097C 8087A41C 0C21E753 */ jal func_80879D4C
/* 00980 8087A420 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00984 8087A424 10400009 */ beq $v0, $zero, .L8087A44C
/* 00988 8087A428 3C0E8088 */ lui $t6, %hi(func_8087A0C8) ## $t6 = 80880000
/* 0098C 8087A42C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00990 8087A430 1041000E */ beq $v0, $at, .L8087A46C
/* 00994 8087A434 3C0F8088 */ lui $t7, %hi(func_8087A248) ## $t7 = 80880000
/* 00998 8087A438 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0099C 8087A43C 1041000E */ beq $v0, $at, .L8087A478
/* 009A0 8087A440 3C188088 */ lui $t8, %hi(func_8087A300) ## $t8 = 80880000
/* 009A4 8087A444 1000009D */ beq $zero, $zero, .L8087A6BC
/* 009A8 8087A448 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087A44C:
/* 009AC 8087A44C 25CEA0C8 */ addiu $t6, $t6, %lo(func_8087A0C8) ## $t6 = 8087A0C8
/* 009B0 8087A450 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
/* 009B4 8087A454 8FA4006C */ lw $a0, 0x006C($sp)
/* 009B8 8087A458 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 009BC 8087A45C 0C00B7D5 */ jal func_8002DF54
/* 009C0 8087A460 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 009C4 8087A464 10000095 */ beq $zero, $zero, .L8087A6BC
/* 009C8 8087A468 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087A46C:
/* 009CC 8087A46C 25EFA248 */ addiu $t7, $t7, %lo(func_8087A248) ## $t7 = FFFFA248
/* 009D0 8087A470 10000091 */ beq $zero, $zero, .L8087A6B8
/* 009D4 8087A474 AE0F0164 */ sw $t7, 0x0164($s0) ## 00000164
.L8087A478:
/* 009D8 8087A478 2718A300 */ addiu $t8, $t8, %lo(func_8087A300) ## $t8 = FFFFA300
/* 009DC 8087A47C 1000008E */ beq $zero, $zero, .L8087A6B8
/* 009E0 8087A480 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
.L8087A484:
/* 009E4 8087A484 44815000 */ mtc1 $at, $f10 ## $f10 = 0.00
/* 009E8 8087A488 C6100068 */ lwc1 $f16, 0x0068($s0) ## 00000068
/* 009EC 8087A48C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 009F0 8087A490 4610503C */ c.lt.s $f10, $f16
/* 009F4 8087A494 00000000 */ nop
/* 009F8 8087A498 45020088 */ bc1fl .L8087A6BC
/* 009FC 8087A49C 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00A00 8087A4A0 44816000 */ mtc1 $at, $f12 ## $f12 = 120.00
/* 00A04 8087A4A4 0C00CFC8 */ jal Rand_CenteredFloat
/* 00A08 8087A4A8 00000000 */ nop
/* 00A0C 8087A4AC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A10 8087A4B0 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 00A14 8087A4B4 46000506 */ mov.s $f20, $f0
/* 00A18 8087A4B8 0C01DE1C */ jal Math_SinS
## sins?
/* 00A1C 8087A4BC 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A20 8087A4C0 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00A24 8087A4C4 44819000 */ mtc1 $at, $f18 ## $f18 = 1.50
/* 00A28 8087A4C8 00000000 */ nop
/* 00A2C 8087A4CC 46149100 */ add.s $f4, $f18, $f20
/* 00A30 8087A4D0 46002187 */ neg.s $f6, $f4
/* 00A34 8087A4D4 46060202 */ mul.s $f8, $f0, $f6
/* 00A38 8087A4D8 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A3C 8087A4DC E7A8004C */ swc1 $f8, 0x004C($sp)
/* 00A40 8087A4E0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00A44 8087A4E4 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00
/* 00A48 8087A4E8 00000000 */ nop
/* 00A4C 8087A4EC 460A0400 */ add.s $f16, $f0, $f10
/* 00A50 8087A4F0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A54 8087A4F4 E7B00050 */ swc1 $f16, 0x0050($sp)
/* 00A58 8087A4F8 46000506 */ mov.s $f20, $f0
/* 00A5C 8087A4FC 0C01DE0D */ jal Math_CosS
## coss?
/* 00A60 8087A500 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A64 8087A504 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00A68 8087A508 44819000 */ mtc1 $at, $f18 ## $f18 = 1.50
/* 00A6C 8087A50C 00000000 */ nop
/* 00A70 8087A510 46149100 */ add.s $f4, $f18, $f20
/* 00A74 8087A514 46002187 */ neg.s $f6, $f4
/* 00A78 8087A518 46060202 */ mul.s $f8, $f0, $f6
/* 00A7C 8087A51C E7A80054 */ swc1 $f8, 0x0054($sp)
/* 00A80 8087A520 0C01DE1C */ jal Math_SinS
## sins?
/* 00A84 8087A524 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A88 8087A528 46000506 */ mov.s $f20, $f0
/* 00A8C 8087A52C 0C01DE0D */ jal Math_CosS
## coss?
/* 00A90 8087A530 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A94 8087A534 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00A98 8087A538 44818000 */ mtc1 $at, $f16 ## $f16 = 60.00
/* 00A9C 8087A53C C7A60048 */ lwc1 $f6, 0x0048($sp)
/* 00AA0 8087A540 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 00AA4 8087A544 46148482 */ mul.s $f18, $f16, $f20
/* 00AA8 8087A548 46125101 */ sub.s $f4, $f10, $f18
/* 00AAC 8087A54C 46060202 */ mul.s $f8, $f0, $f6
/* 00AB0 8087A550 46082401 */ sub.s $f16, $f4, $f8
/* 00AB4 8087A554 E7B00058 */ swc1 $f16, 0x0058($sp)
/* 00AB8 8087A558 0C01DE0D */ jal Math_CosS
## coss?
/* 00ABC 8087A55C 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00AC0 8087A560 46000506 */ mov.s $f20, $f0
/* 00AC4 8087A564 0C01DE1C */ jal Math_SinS
## sins?
/* 00AC8 8087A568 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00ACC 8087A56C 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00AD0 8087A570 44819000 */ mtc1 $at, $f18 ## $f18 = 60.00
/* 00AD4 8087A574 C7A80048 */ lwc1 $f8, 0x0048($sp)
/* 00AD8 8087A578 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 00ADC 8087A57C 46149182 */ mul.s $f6, $f18, $f20
/* 00AE0 8087A580 24040028 */ addiu $a0, $zero, 0x0028 ## $a0 = 00000028
/* 00AE4 8087A584 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 00AE8 8087A588 46080402 */ mul.s $f16, $f0, $f8
/* 00AEC 8087A58C 46065101 */ sub.s $f4, $f10, $f6
/* 00AF0 8087A590 46048480 */ add.s $f18, $f16, $f4
/* 00AF4 8087A594 E7B20060 */ swc1 $f18, 0x0060($sp)
/* 00AF8 8087A598 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 00AFC 8087A59C 0C01DF64 */ jal Rand_S16Offset
/* 00B00 8087A5A0 E7AA005C */ swc1 $f10, 0x005C($sp)
/* 00B04 8087A5A4 3C198088 */ lui $t9, %hi(D_8087A740) ## $t9 = 80880000
/* 00B08 8087A5A8 3C088088 */ lui $t0, %hi(D_8087A744) ## $t0 = 80880000
/* 00B0C 8087A5AC 2508A744 */ addiu $t0, $t0, %lo(D_8087A744) ## $t0 = 8087A744
/* 00B10 8087A5B0 2739A740 */ addiu $t9, $t9, %lo(D_8087A740) ## $t9 = 8087A740
/* 00B14 8087A5B4 3C078088 */ lui $a3, %hi(D_8087A748) ## $a3 = 80880000
/* 00B18 8087A5B8 240900FA */ addiu $t1, $zero, 0x00FA ## $t1 = 000000FA
/* 00B1C 8087A5BC AFA90018 */ sw $t1, 0x0018($sp)
/* 00B20 8087A5C0 24E7A748 */ addiu $a3, $a3, %lo(D_8087A748) ## $a3 = 8087A748
/* 00B24 8087A5C4 AFB90010 */ sw $t9, 0x0010($sp)
/* 00B28 8087A5C8 AFA80014 */ sw $t0, 0x0014($sp)
/* 00B2C 8087A5CC 8FA4006C */ lw $a0, 0x006C($sp)
/* 00B30 8087A5D0 27A50058 */ addiu $a1, $sp, 0x0058 ## $a1 = FFFFFFF0
/* 00B34 8087A5D4 27A6004C */ addiu $a2, $sp, 0x004C ## $a2 = FFFFFFE4
/* 00B38 8087A5D8 0C00A0A7 */ jal func_8002829C
/* 00B3C 8087A5DC AFA2001C */ sw $v0, 0x001C($sp)
/* 00B40 8087A5E0 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00B44 8087A5E4 44816000 */ mtc1 $at, $f12 ## $f12 = 120.00
/* 00B48 8087A5E8 0C00CFC8 */ jal Rand_CenteredFloat
/* 00B4C 8087A5EC 00000000 */ nop
/* 00B50 8087A5F0 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 00B54 8087A5F4 0C01DE1C */ jal Math_SinS
## sins?
/* 00B58 8087A5F8 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00B5C 8087A5FC 46000506 */ mov.s $f20, $f0
/* 00B60 8087A600 0C01DE0D */ jal Math_CosS
## coss?
/* 00B64 8087A604 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00B68 8087A608 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00B6C 8087A60C 44814000 */ mtc1 $at, $f8 ## $f8 = 60.00
/* 00B70 8087A610 C7B20048 */ lwc1 $f18, 0x0048($sp)
/* 00B74 8087A614 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 00B78 8087A618 46144402 */ mul.s $f16, $f8, $f20
/* 00B7C 8087A61C 46103101 */ sub.s $f4, $f6, $f16
/* 00B80 8087A620 46120282 */ mul.s $f10, $f0, $f18
/* 00B84 8087A624 46045200 */ add.s $f8, $f10, $f4
/* 00B88 8087A628 E7A80058 */ swc1 $f8, 0x0058($sp)
/* 00B8C 8087A62C 0C01DE0D */ jal Math_CosS
## coss?
/* 00B90 8087A630 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00B94 8087A634 46000506 */ mov.s $f20, $f0
/* 00B98 8087A638 0C01DE1C */ jal Math_SinS
## sins?
/* 00B9C 8087A63C 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00BA0 8087A640 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00BA4 8087A644 44818000 */ mtc1 $at, $f16 ## $f16 = 60.00
/* 00BA8 8087A648 C7A40048 */ lwc1 $f4, 0x0048($sp)
/* 00BAC 8087A64C C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00BB0 8087A650 46148482 */ mul.s $f18, $f16, $f20
/* 00BB4 8087A654 24040028 */ addiu $a0, $zero, 0x0028 ## $a0 = 00000028
/* 00BB8 8087A658 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 00BBC 8087A65C 46040202 */ mul.s $f8, $f0, $f4
/* 00BC0 8087A660 46123281 */ sub.s $f10, $f6, $f18
/* 00BC4 8087A664 46085401 */ sub.s $f16, $f10, $f8
/* 00BC8 8087A668 0C01DF64 */ jal Rand_S16Offset
/* 00BCC 8087A66C E7B00060 */ swc1 $f16, 0x0060($sp)
/* 00BD0 8087A670 3C0A8088 */ lui $t2, %hi(D_8087A740) ## $t2 = 80880000
/* 00BD4 8087A674 3C0B8088 */ lui $t3, %hi(D_8087A744) ## $t3 = 80880000
/* 00BD8 8087A678 256BA744 */ addiu $t3, $t3, %lo(D_8087A744) ## $t3 = 8087A744
/* 00BDC 8087A67C 254AA740 */ addiu $t2, $t2, %lo(D_8087A740) ## $t2 = 8087A740
/* 00BE0 8087A680 3C078088 */ lui $a3, %hi(D_8087A748) ## $a3 = 80880000
/* 00BE4 8087A684 240C00FA */ addiu $t4, $zero, 0x00FA ## $t4 = 000000FA
/* 00BE8 8087A688 AFAC0018 */ sw $t4, 0x0018($sp)
/* 00BEC 8087A68C 24E7A748 */ addiu $a3, $a3, %lo(D_8087A748) ## $a3 = 8087A748
/* 00BF0 8087A690 AFAA0010 */ sw $t2, 0x0010($sp)
/* 00BF4 8087A694 AFAB0014 */ sw $t3, 0x0014($sp)
/* 00BF8 8087A698 8FA4006C */ lw $a0, 0x006C($sp)
/* 00BFC 8087A69C 27A50058 */ addiu $a1, $sp, 0x0058 ## $a1 = FFFFFFF0
/* 00C00 8087A6A0 27A6004C */ addiu $a2, $sp, 0x004C ## $a2 = FFFFFFE4
/* 00C04 8087A6A4 0C00A0A7 */ jal func_8002829C
/* 00C08 8087A6A8 AFA2001C */ sw $v0, 0x001C($sp)
/* 00C0C 8087A6AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C10 8087A6B0 0C00BE5D */ jal func_8002F974
/* 00C14 8087A6B4 240500DF */ addiu $a1, $zero, 0x00DF ## $a1 = 000000DF
.L8087A6B8:
/* 00C18 8087A6B8 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087A6BC:
/* 00C1C 8087A6BC D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 00C20 8087A6C0 8FB00030 */ lw $s0, 0x0030($sp)
/* 00C24 8087A6C4 03E00008 */ jr $ra
/* 00C28 8087A6C8 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000

View file

@ -1,14 +0,0 @@
glabel BgIceObjects_Destroy
/* 00088 8088F898 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0008C 8088F89C AFA40018 */ sw $a0, 0x0018($sp)
/* 00090 8088F8A0 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00094 8088F8A4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00098 8088F8A8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0009C 8088F8AC 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 000A0 8088F8B0 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 000A4 8088F8B4 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 000A8 8088F8B8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000AC 8088F8BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000B0 8088F8C0 03E00008 */ jr $ra
/* 000B4 8088F8C4 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel BgIceObjects_Draw
/* 00C48 80890458 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C4C 8089045C AFA40018 */ sw $a0, 0x0018($sp)
/* 00C50 80890460 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00C54 80890464 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C58 80890468 3C050600 */ lui $a1, %hi(D_06000190) ## $a1 = 06000000
/* 00C5C 8089046C 0C00D498 */ jal Gfx_DrawDListOpa
/* 00C60 80890470 24A50190 */ addiu $a1, $a1, %lo(D_06000190) ## $a1 = 06000190
/* 00C64 80890474 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C68 80890478 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C6C 8089047C 03E00008 */ jr $ra
/* 00C70 80890480 00000000 */ nop
/* 00C74 80890484 00000000 */ nop
/* 00C78 80890488 00000000 */ nop
/* 00C7C 8089048C 00000000 */ nop

View file

@ -1,40 +0,0 @@
glabel BgIceObjects_Init
/* 00000 8088F810 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 8088F814 AFA50034 */ sw $a1, 0x0034($sp)
/* 00008 8088F818 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 8088F81C AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 8088F820 3C058089 */ lui $a1, %hi(D_808904C4) ## $a1 = 80890000
/* 00014 8088F824 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 8088F828 AFA00024 */ sw $zero, 0x0024($sp)
/* 0001C 8088F82C 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 8088F830 24A504C4 */ addiu $a1, $a1, %lo(D_808904C4) ## $a1 = 808904C4
/* 00024 8088F834 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00028 8088F838 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 0002C 8088F83C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00030 8088F840 3C040600 */ lui $a0, %hi(D_060003F0) ## $a0 = 06000000
/* 00034 8088F844 248403F0 */ addiu $a0, $a0, %lo(D_060003F0) ## $a0 = 060003F0
/* 00038 8088F848 0C010620 */ jal DynaPolyInfo_Alloc
/* 0003C 8088F84C 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00040 8088F850 26040168 */ addiu $a0, $s0, 0x0168 ## $a0 = 00000168
/* 00044 8088F854 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00048 8088F858 26050008 */ addiu $a1, $s0, 0x0008 ## $a1 = 00000008
/* 0004C 8088F85C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00050 8088F860 3C0E8089 */ lui $t6, %hi(func_8088FED0) ## $t6 = 80890000
/* 00054 8088F864 25CEFED0 */ addiu $t6, $t6, %lo(func_8088FED0) ## $t6 = 8088FED0
/* 00058 8088F868 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
/* 0005C 8088F86C 8FA70024 */ lw $a3, 0x0024($sp)
/* 00060 8088F870 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00064 8088F874 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00068 8088F878 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 0006C 8088F87C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00070 8088F880 A600001C */ sh $zero, 0x001C($s0) ## 0000001C
/* 00074 8088F884 8FBF001C */ lw $ra, 0x001C($sp)
/* 00078 8088F888 8FB00018 */ lw $s0, 0x0018($sp)
/* 0007C 8088F88C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00080 8088F890 03E00008 */ jr $ra
/* 00084 8088F894 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel BgIceObjects_Update
/* 00C24 80890434 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C28 80890438 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C2C 8089043C 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00C30 80890440 0320F809 */ jalr $ra, $t9
/* 00C34 80890444 00000000 */ nop
/* 00C38 80890448 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C3C 8089044C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C40 80890450 03E00008 */ jr $ra
/* 00C44 80890454 00000000 */ nop

View file

@ -1,349 +0,0 @@
.late_rodata
glabel D_80890520
.float -1260.0
glabel D_80890524
.float -1780.0
.text
glabel func_8088F8C8
/* 000B8 8088F8C8 AFA50004 */ sw $a1, 0x0004($sp)
/* 000BC 8088F8CC 84830158 */ lh $v1, 0x0158($a0) ## 00000158
/* 000C0 8088F8D0 24018000 */ addiu $at, $zero, 0x8000 ## $at = FFFF8000
/* 000C4 8088F8D4 50600004 */ beql $v1, $zero, .L8088F8E8
/* 000C8 8088F8D8 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
/* 000CC 8088F8DC 5461008A */ bnel $v1, $at, .L8088FB08
/* 000D0 8088F8E0 C484002C */ lwc1 $f4, 0x002C($a0) ## 0000002C
/* 000D4 8088F8E4 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
.L8088F8E8:
/* 000D8 8088F8E8 3C0F8089 */ lui $t7, %hi(D_808904C8) ## $t7 = 80890000
/* 000DC 8088F8EC 85EF04C8 */ lh $t7, %lo(D_808904C8)($t7)
/* 000E0 8088F8F0 4600218D */ trunc.w.s $f6, $f4
/* 000E4 8088F8F4 3C188089 */ lui $t8, %hi(D_808904CA) ## $t8 = 80890000
/* 000E8 8088F8F8 44023000 */ mfc1 $v0, $f6
/* 000EC 8088F8FC 00000000 */ nop
/* 000F0 8088F900 00021400 */ sll $v0, $v0, 16
/* 000F4 8088F904 00021403 */ sra $v0, $v0, 16
/* 000F8 8088F908 144F000C */ bne $v0, $t7, .L8088F93C
/* 000FC 8088F90C 00000000 */ nop
/* 00100 8088F910 14600004 */ bne $v1, $zero, .L8088F924
/* 00104 8088F914 3C028089 */ lui $v0, %hi(D_808904EA) ## $v0 = 80890000
/* 00108 8088F918 3C028089 */ lui $v0, %hi(D_808904E8) ## $v0 = 80890000
/* 0010C 8088F91C 10000002 */ beq $zero, $zero, .L8088F928
/* 00110 8088F920 844204E8 */ lh $v0, %lo(D_808904E8)($v0)
.L8088F924:
/* 00114 8088F924 844204EA */ lh $v0, %lo(D_808904EA)($v0)
.L8088F928:
/* 00118 8088F928 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 0011C 8088F92C 00000000 */ nop
/* 00120 8088F930 468042A0 */ cvt.s.w $f10, $f8
/* 00124 8088F934 03E00008 */ jr $ra
/* 00128 8088F938 E48A0170 */ swc1 $f10, 0x0170($a0) ## 00000170
.L8088F93C:
/* 0012C 8088F93C 871804CA */ lh $t8, %lo(D_808904CA)($t8)
/* 00130 8088F940 3C198089 */ lui $t9, %hi(D_808904CC) ## $t9 = 80890000
/* 00134 8088F944 1458000C */ bne $v0, $t8, .L8088F978
/* 00138 8088F948 00000000 */ nop
/* 0013C 8088F94C 14600004 */ bne $v1, $zero, .L8088F960
/* 00140 8088F950 3C028089 */ lui $v0, %hi(D_808904EE) ## $v0 = 80890000
/* 00144 8088F954 3C028089 */ lui $v0, %hi(D_808904EC) ## $v0 = 80890000
/* 00148 8088F958 10000002 */ beq $zero, $zero, .L8088F964
/* 0014C 8088F95C 844204EC */ lh $v0, %lo(D_808904EC)($v0)
.L8088F960:
/* 00150 8088F960 844204EE */ lh $v0, %lo(D_808904EE)($v0)
.L8088F964:
/* 00154 8088F964 44828000 */ mtc1 $v0, $f16 ## $f16 = -0.00
/* 00158 8088F968 00000000 */ nop
/* 0015C 8088F96C 468084A0 */ cvt.s.w $f18, $f16
/* 00160 8088F970 03E00008 */ jr $ra
/* 00164 8088F974 E4920170 */ swc1 $f18, 0x0170($a0) ## 00000170
.L8088F978:
/* 00168 8088F978 873904CC */ lh $t9, %lo(D_808904CC)($t9)
/* 0016C 8088F97C 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00170 8088F980 00054040 */ sll $t0, $a1, 1
/* 00174 8088F984 1459000C */ bne $v0, $t9, .L8088F9B8
/* 00178 8088F988 3C098089 */ lui $t1, %hi(D_808904C8) ## $t1 = 80890000
/* 0017C 8088F98C 14600004 */ bne $v1, $zero, .L8088F9A0
/* 00180 8088F990 3C028089 */ lui $v0, %hi(D_808904F2) ## $v0 = 80890000
/* 00184 8088F994 3C028089 */ lui $v0, %hi(D_808904F0) ## $v0 = 80890000
/* 00188 8088F998 10000002 */ beq $zero, $zero, .L8088F9A4
/* 0018C 8088F99C 844204F0 */ lh $v0, %lo(D_808904F0)($v0)
.L8088F9A0:
/* 00190 8088F9A0 844204F2 */ lh $v0, %lo(D_808904F2)($v0)
.L8088F9A4:
/* 00194 8088F9A4 44822000 */ mtc1 $v0, $f4 ## $f4 = -0.00
/* 00198 8088F9A8 00000000 */ nop
/* 0019C 8088F9AC 468021A0 */ cvt.s.w $f6, $f4
/* 001A0 8088F9B0 03E00008 */ jr $ra
/* 001A4 8088F9B4 E4860170 */ swc1 $f6, 0x0170($a0) ## 00000170
.L8088F9B8:
/* 001A8 8088F9B8 252904C8 */ addiu $t1, $t1, %lo(D_808904C8) ## $t1 = 808904C8
/* 001AC 8088F9BC 01093021 */ addu $a2, $t0, $t1
/* 001B0 8088F9C0 84CA0000 */ lh $t2, 0x0000($a2) ## 00000000
/* 001B4 8088F9C4 544A0011 */ bnel $v0, $t2, .L8088FA0C
/* 001B8 8088F9C8 84CD0002 */ lh $t5, 0x0002($a2) ## 00000002
/* 001BC 8088F9CC 14600006 */ bne $v1, $zero, .L8088F9E8
/* 001C0 8088F9D0 00056080 */ sll $t4, $a1, 2
/* 001C4 8088F9D4 00055880 */ sll $t3, $a1, 2
/* 001C8 8088F9D8 3C028089 */ lui $v0, %hi(D_808904E8) ## $v0 = 80890000
/* 001CC 8088F9DC 004B1021 */ addu $v0, $v0, $t3
/* 001D0 8088F9E0 10000004 */ beq $zero, $zero, .L8088F9F4
/* 001D4 8088F9E4 844204E8 */ lh $v0, %lo(D_808904E8)($v0)
.L8088F9E8:
/* 001D8 8088F9E8 3C028089 */ lui $v0, %hi(D_808904EA) ## $v0 = 80890000
/* 001DC 8088F9EC 004C1021 */ addu $v0, $v0, $t4
/* 001E0 8088F9F0 844204EA */ lh $v0, %lo(D_808904EA)($v0)
.L8088F9F4:
/* 001E4 8088F9F4 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 001E8 8088F9F8 00000000 */ nop
/* 001EC 8088F9FC 468042A0 */ cvt.s.w $f10, $f8
/* 001F0 8088FA00 03E00008 */ jr $ra
/* 001F4 8088FA04 E48A0170 */ swc1 $f10, 0x0170($a0) ## 00000170
.L8088FA08:
/* 001F8 8088FA08 84CD0002 */ lh $t5, 0x0002($a2) ## 00000002
.L8088FA0C:
/* 001FC 8088FA0C 544D0011 */ bnel $v0, $t5, .L8088FA54
/* 00200 8088FA10 84D80004 */ lh $t8, 0x0004($a2) ## 00000004
/* 00204 8088FA14 14600006 */ bne $v1, $zero, .L8088FA30
/* 00208 8088FA18 00057880 */ sll $t7, $a1, 2
/* 0020C 8088FA1C 00057080 */ sll $t6, $a1, 2
/* 00210 8088FA20 3C028089 */ lui $v0, %hi(D_808904EC) ## $v0 = 80890000
/* 00214 8088FA24 004E1021 */ addu $v0, $v0, $t6
/* 00218 8088FA28 10000004 */ beq $zero, $zero, .L8088FA3C
/* 0021C 8088FA2C 844204EC */ lh $v0, %lo(D_808904EC)($v0)
.L8088FA30:
/* 00220 8088FA30 3C028089 */ lui $v0, %hi(D_808904EE) ## $v0 = 80890000
/* 00224 8088FA34 004F1021 */ addu $v0, $v0, $t7
/* 00228 8088FA38 844204EE */ lh $v0, %lo(D_808904EE)($v0)
.L8088FA3C:
/* 0022C 8088FA3C 44828000 */ mtc1 $v0, $f16 ## $f16 = -0.00
/* 00230 8088FA40 00000000 */ nop
/* 00234 8088FA44 468084A0 */ cvt.s.w $f18, $f16
/* 00238 8088FA48 03E00008 */ jr $ra
/* 0023C 8088FA4C E4920170 */ swc1 $f18, 0x0170($a0) ## 00000170
.L8088FA50:
/* 00240 8088FA50 84D80004 */ lh $t8, 0x0004($a2) ## 00000004
.L8088FA54:
/* 00244 8088FA54 54580011 */ bnel $v0, $t8, .L8088FA9C
/* 00248 8088FA58 84C90006 */ lh $t1, 0x0006($a2) ## 00000006
/* 0024C 8088FA5C 14600006 */ bne $v1, $zero, .L8088FA78
/* 00250 8088FA60 00054080 */ sll $t0, $a1, 2
/* 00254 8088FA64 0005C880 */ sll $t9, $a1, 2
/* 00258 8088FA68 3C028089 */ lui $v0, %hi(D_808904F0) ## $v0 = 80890000
/* 0025C 8088FA6C 00591021 */ addu $v0, $v0, $t9
/* 00260 8088FA70 10000004 */ beq $zero, $zero, .L8088FA84
/* 00264 8088FA74 844204F0 */ lh $v0, %lo(D_808904F0)($v0)
.L8088FA78:
/* 00268 8088FA78 3C028089 */ lui $v0, %hi(D_808904F2) ## $v0 = 80890000
/* 0026C 8088FA7C 00481021 */ addu $v0, $v0, $t0
/* 00270 8088FA80 844204F2 */ lh $v0, %lo(D_808904F2)($v0)
.L8088FA84:
/* 00274 8088FA84 44822000 */ mtc1 $v0, $f4 ## $f4 = -0.00
/* 00278 8088FA88 00000000 */ nop
/* 0027C 8088FA8C 468021A0 */ cvt.s.w $f6, $f4
/* 00280 8088FA90 03E00008 */ jr $ra
/* 00284 8088FA94 E4860170 */ swc1 $f6, 0x0170($a0) ## 00000170
.L8088FA98:
/* 00288 8088FA98 84C90006 */ lh $t1, 0x0006($a2) ## 00000006
.L8088FA9C:
/* 0028C 8088FA9C 14490010 */ bne $v0, $t1, .L8088FAE0
/* 00290 8088FAA0 00000000 */ nop
/* 00294 8088FAA4 14600006 */ bne $v1, $zero, .L8088FAC0
/* 00298 8088FAA8 00055880 */ sll $t3, $a1, 2
/* 0029C 8088FAAC 00055080 */ sll $t2, $a1, 2
/* 002A0 8088FAB0 3C028089 */ lui $v0, %hi(D_808904F4) ## $v0 = 80890000
/* 002A4 8088FAB4 004A1021 */ addu $v0, $v0, $t2
/* 002A8 8088FAB8 10000004 */ beq $zero, $zero, .L8088FACC
/* 002AC 8088FABC 844204F4 */ lh $v0, %lo(D_808904F4)($v0)
.L8088FAC0:
/* 002B0 8088FAC0 3C028089 */ lui $v0, %hi(D_808904F6) ## $v0 = 80890000
/* 002B4 8088FAC4 004B1021 */ addu $v0, $v0, $t3
/* 002B8 8088FAC8 844204F6 */ lh $v0, %lo(D_808904F6)($v0)
.L8088FACC:
/* 002BC 8088FACC 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 002C0 8088FAD0 00000000 */ nop
/* 002C4 8088FAD4 468042A0 */ cvt.s.w $f10, $f8
/* 002C8 8088FAD8 03E00008 */ jr $ra
/* 002CC 8088FADC E48A0170 */ swc1 $f10, 0x0170($a0) ## 00000170
.L8088FAE0:
/* 002D0 8088FAE0 14600005 */ bne $v1, $zero, .L8088FAF8
/* 002D4 8088FAE4 3C018089 */ lui $at, %hi(D_80890520) ## $at = 80890000
/* 002D8 8088FAE8 3C01C3AA */ lui $at, 0xC3AA ## $at = C3AA0000
/* 002DC 8088FAEC 44818000 */ mtc1 $at, $f16 ## $f16 = -340.00
/* 002E0 8088FAF0 03E00008 */ jr $ra
/* 002E4 8088FAF4 E4900170 */ swc1 $f16, 0x0170($a0) ## 00000170
.L8088FAF8:
/* 002E8 8088FAF8 C4320520 */ lwc1 $f18, %lo(D_80890520)($at)
/* 002EC 8088FAFC 03E00008 */ jr $ra
/* 002F0 8088FB00 E4920170 */ swc1 $f18, 0x0170($a0) ## 00000170
.L8088FB04:
/* 002F4 8088FB04 C484002C */ lwc1 $f4, 0x002C($a0) ## 0000002C
.L8088FB08:
/* 002F8 8088FB08 3C0D8089 */ lui $t5, %hi(D_808904D8) ## $t5 = 80890000
/* 002FC 8088FB0C 85AD04D8 */ lh $t5, %lo(D_808904D8)($t5)
/* 00300 8088FB10 4600218D */ trunc.w.s $f6, $f4
/* 00304 8088FB14 3C0E8089 */ lui $t6, %hi(D_808904DA) ## $t6 = 80890000
/* 00308 8088FB18 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 0030C 8088FB1C 44023000 */ mfc1 $v0, $f6
/* 00310 8088FB20 00000000 */ nop
/* 00314 8088FB24 00021400 */ sll $v0, $v0, 16
/* 00318 8088FB28 00021403 */ sra $v0, $v0, 16
/* 0031C 8088FB2C 144D000C */ bne $v0, $t5, .L8088FB60
/* 00320 8088FB30 00000000 */ nop
/* 00324 8088FB34 14610004 */ bne $v1, $at, .L8088FB48
/* 00328 8088FB38 3C028089 */ lui $v0, %hi(D_80890506) ## $v0 = 80890000
/* 0032C 8088FB3C 3C028089 */ lui $v0, %hi(D_80890504) ## $v0 = 80890000
/* 00330 8088FB40 10000002 */ beq $zero, $zero, .L8088FB4C
/* 00334 8088FB44 84420504 */ lh $v0, %lo(D_80890504)($v0)
.L8088FB48:
/* 00338 8088FB48 84420506 */ lh $v0, %lo(D_80890506)($v0)
.L8088FB4C:
/* 0033C 8088FB4C 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 00340 8088FB50 00000000 */ nop
/* 00344 8088FB54 468042A0 */ cvt.s.w $f10, $f8
/* 00348 8088FB58 03E00008 */ jr $ra
/* 0034C 8088FB5C E48A0168 */ swc1 $f10, 0x0168($a0) ## 00000168
.L8088FB60:
/* 00350 8088FB60 85CE04DA */ lh $t6, %lo(D_808904DA)($t6)
/* 00354 8088FB64 3C0F8089 */ lui $t7, %hi(D_808904DC) ## $t7 = 80890000
/* 00358 8088FB68 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 0035C 8088FB6C 144E000C */ bne $v0, $t6, .L8088FBA0
/* 00360 8088FB70 00000000 */ nop
/* 00364 8088FB74 14610004 */ bne $v1, $at, .L8088FB88
/* 00368 8088FB78 3C028089 */ lui $v0, %hi(D_8089050A) ## $v0 = 80890000
/* 0036C 8088FB7C 3C028089 */ lui $v0, %hi(D_80890508) ## $v0 = 80890000
/* 00370 8088FB80 10000002 */ beq $zero, $zero, .L8088FB8C
/* 00374 8088FB84 84420508 */ lh $v0, %lo(D_80890508)($v0)
.L8088FB88:
/* 00378 8088FB88 8442050A */ lh $v0, %lo(D_8089050A)($v0)
.L8088FB8C:
/* 0037C 8088FB8C 44828000 */ mtc1 $v0, $f16 ## $f16 = -0.00
/* 00380 8088FB90 00000000 */ nop
/* 00384 8088FB94 468084A0 */ cvt.s.w $f18, $f16
/* 00388 8088FB98 03E00008 */ jr $ra
/* 0038C 8088FB9C E4920168 */ swc1 $f18, 0x0168($a0) ## 00000168
.L8088FBA0:
/* 00390 8088FBA0 85EF04DC */ lh $t7, %lo(D_808904DC)($t7)
/* 00394 8088FBA4 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00398 8088FBA8 0005C040 */ sll $t8, $a1, 1
/* 0039C 8088FBAC 144F000D */ bne $v0, $t7, .L8088FBE4
/* 003A0 8088FBB0 3C198089 */ lui $t9, %hi(D_808904D8) ## $t9 = 80890000
/* 003A4 8088FBB4 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 003A8 8088FBB8 14610004 */ bne $v1, $at, .L8088FBCC
/* 003AC 8088FBBC 3C028089 */ lui $v0, %hi(D_8089050E) ## $v0 = 80890000
/* 003B0 8088FBC0 3C028089 */ lui $v0, %hi(D_8089050C) ## $v0 = 80890000
/* 003B4 8088FBC4 10000002 */ beq $zero, $zero, .L8088FBD0
/* 003B8 8088FBC8 8442050C */ lh $v0, %lo(D_8089050C)($v0)
.L8088FBCC:
/* 003BC 8088FBCC 8442050E */ lh $v0, %lo(D_8089050E)($v0)
.L8088FBD0:
/* 003C0 8088FBD0 44822000 */ mtc1 $v0, $f4 ## $f4 = -0.00
/* 003C4 8088FBD4 00000000 */ nop
/* 003C8 8088FBD8 468021A0 */ cvt.s.w $f6, $f4
/* 003CC 8088FBDC 03E00008 */ jr $ra
/* 003D0 8088FBE0 E4860168 */ swc1 $f6, 0x0168($a0) ## 00000168
.L8088FBE4:
/* 003D4 8088FBE4 273904D8 */ addiu $t9, $t9, %lo(D_808904D8) ## $t9 = 808904D8
/* 003D8 8088FBE8 03193021 */ addu $a2, $t8, $t9
/* 003DC 8088FBEC 84C80000 */ lh $t0, 0x0000($a2) ## 00000000
/* 003E0 8088FBF0 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 003E4 8088FBF4 54480011 */ bnel $v0, $t0, .L8088FC3C
/* 003E8 8088FBF8 84CB0002 */ lh $t3, 0x0002($a2) ## 00000002
/* 003EC 8088FBFC 14610006 */ bne $v1, $at, .L8088FC18
/* 003F0 8088FC00 00055080 */ sll $t2, $a1, 2
/* 003F4 8088FC04 00054880 */ sll $t1, $a1, 2
/* 003F8 8088FC08 3C028089 */ lui $v0, %hi(D_80890504) ## $v0 = 80890000
/* 003FC 8088FC0C 00491021 */ addu $v0, $v0, $t1
/* 00400 8088FC10 10000004 */ beq $zero, $zero, .L8088FC24
/* 00404 8088FC14 84420504 */ lh $v0, %lo(D_80890504)($v0)
.L8088FC18:
/* 00408 8088FC18 3C028089 */ lui $v0, %hi(D_80890506) ## $v0 = 80890000
/* 0040C 8088FC1C 004A1021 */ addu $v0, $v0, $t2
/* 00410 8088FC20 84420506 */ lh $v0, %lo(D_80890506)($v0)
.L8088FC24:
/* 00414 8088FC24 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 00418 8088FC28 00000000 */ nop
/* 0041C 8088FC2C 468042A0 */ cvt.s.w $f10, $f8
/* 00420 8088FC30 03E00008 */ jr $ra
/* 00424 8088FC34 E48A0168 */ swc1 $f10, 0x0168($a0) ## 00000168
.L8088FC38:
/* 00428 8088FC38 84CB0002 */ lh $t3, 0x0002($a2) ## 00000002
.L8088FC3C:
/* 0042C 8088FC3C 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 00430 8088FC40 544B0011 */ bnel $v0, $t3, .L8088FC88
/* 00434 8088FC44 84CE0004 */ lh $t6, 0x0004($a2) ## 00000004
/* 00438 8088FC48 14610006 */ bne $v1, $at, .L8088FC64
/* 0043C 8088FC4C 00056880 */ sll $t5, $a1, 2
/* 00440 8088FC50 00056080 */ sll $t4, $a1, 2
/* 00444 8088FC54 3C028089 */ lui $v0, %hi(D_80890508) ## $v0 = 80890000
/* 00448 8088FC58 004C1021 */ addu $v0, $v0, $t4
/* 0044C 8088FC5C 10000004 */ beq $zero, $zero, .L8088FC70
/* 00450 8088FC60 84420508 */ lh $v0, %lo(D_80890508)($v0)
.L8088FC64:
/* 00454 8088FC64 3C028089 */ lui $v0, %hi(D_8089050A) ## $v0 = 80890000
/* 00458 8088FC68 004D1021 */ addu $v0, $v0, $t5
/* 0045C 8088FC6C 8442050A */ lh $v0, %lo(D_8089050A)($v0)
.L8088FC70:
/* 00460 8088FC70 44828000 */ mtc1 $v0, $f16 ## $f16 = -0.00
/* 00464 8088FC74 00000000 */ nop
/* 00468 8088FC78 468084A0 */ cvt.s.w $f18, $f16
/* 0046C 8088FC7C 03E00008 */ jr $ra
/* 00470 8088FC80 E4920168 */ swc1 $f18, 0x0168($a0) ## 00000168
.L8088FC84:
/* 00474 8088FC84 84CE0004 */ lh $t6, 0x0004($a2) ## 00000004
.L8088FC88:
/* 00478 8088FC88 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 0047C 8088FC8C 544E0011 */ bnel $v0, $t6, .L8088FCD4
/* 00480 8088FC90 84D90006 */ lh $t9, 0x0006($a2) ## 00000006
/* 00484 8088FC94 14610006 */ bne $v1, $at, .L8088FCB0
/* 00488 8088FC98 0005C080 */ sll $t8, $a1, 2
/* 0048C 8088FC9C 00057880 */ sll $t7, $a1, 2
/* 00490 8088FCA0 3C028089 */ lui $v0, %hi(D_8089050C) ## $v0 = 80890000
/* 00494 8088FCA4 004F1021 */ addu $v0, $v0, $t7
/* 00498 8088FCA8 10000004 */ beq $zero, $zero, .L8088FCBC
/* 0049C 8088FCAC 8442050C */ lh $v0, %lo(D_8089050C)($v0)
.L8088FCB0:
/* 004A0 8088FCB0 3C028089 */ lui $v0, %hi(D_8089050E) ## $v0 = 80890000
/* 004A4 8088FCB4 00581021 */ addu $v0, $v0, $t8
/* 004A8 8088FCB8 8442050E */ lh $v0, %lo(D_8089050E)($v0)
.L8088FCBC:
/* 004AC 8088FCBC 44822000 */ mtc1 $v0, $f4 ## $f4 = -0.00
/* 004B0 8088FCC0 00000000 */ nop
/* 004B4 8088FCC4 468021A0 */ cvt.s.w $f6, $f4
/* 004B8 8088FCC8 03E00008 */ jr $ra
/* 004BC 8088FCCC E4860168 */ swc1 $f6, 0x0168($a0) ## 00000168
.L8088FCD0:
/* 004C0 8088FCD0 84D90006 */ lh $t9, 0x0006($a2) ## 00000006
.L8088FCD4:
/* 004C4 8088FCD4 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 004C8 8088FCD8 14590011 */ bne $v0, $t9, .L8088FD20
/* 004CC 8088FCDC 00000000 */ nop
/* 004D0 8088FCE0 24014000 */ addiu $at, $zero, 0x4000 ## $at = 00004000
/* 004D4 8088FCE4 14610006 */ bne $v1, $at, .L8088FD00
/* 004D8 8088FCE8 00054880 */ sll $t1, $a1, 2
/* 004DC 8088FCEC 00054080 */ sll $t0, $a1, 2
/* 004E0 8088FCF0 3C028089 */ lui $v0, %hi(D_80890510) ## $v0 = 80890000
/* 004E4 8088FCF4 00481021 */ addu $v0, $v0, $t0
/* 004E8 8088FCF8 10000004 */ beq $zero, $zero, .L8088FD0C
/* 004EC 8088FCFC 84420510 */ lh $v0, %lo(D_80890510)($v0)
.L8088FD00:
/* 004F0 8088FD00 3C028089 */ lui $v0, %hi(D_80890512) ## $v0 = 80890000
/* 004F4 8088FD04 00491021 */ addu $v0, $v0, $t1
/* 004F8 8088FD08 84420512 */ lh $v0, %lo(D_80890512)($v0)
.L8088FD0C:
/* 004FC 8088FD0C 44824000 */ mtc1 $v0, $f8 ## $f8 = -0.00
/* 00500 8088FD10 00000000 */ nop
/* 00504 8088FD14 468042A0 */ cvt.s.w $f10, $f8
/* 00508 8088FD18 03E00008 */ jr $ra
/* 0050C 8088FD1C E48A0168 */ swc1 $f10, 0x0168($a0) ## 00000168
.L8088FD20:
/* 00510 8088FD20 14610004 */ bne $v1, $at, .L8088FD34
/* 00514 8088FD24 3C01C457 */ lui $at, 0xC457 ## $at = C4570000
/* 00518 8088FD28 44818000 */ mtc1 $at, $f16 ## $f16 = -860.00
/* 0051C 8088FD2C 03E00008 */ jr $ra
/* 00520 8088FD30 E4900168 */ swc1 $f16, 0x0168($a0) ## 00000168
.L8088FD34:
/* 00524 8088FD34 3C018089 */ lui $at, %hi(D_80890524) ## $at = 80890000
/* 00528 8088FD38 C4320524 */ lwc1 $f18, %lo(D_80890524)($at)
/* 0052C 8088FD3C E4920168 */ swc1 $f18, 0x0168($a0) ## 00000168
/* 00530 8088FD40 03E00008 */ jr $ra
/* 00534 8088FD44 00000000 */ nop

View file

@ -1,119 +0,0 @@
.late_rodata
glabel D_80890528
.float -1660.0
glabel D_8089052C
.float -1060.0
glabel D_80890530
.float -1580.0
glabel D_80890534
.float -1180.0
.text
glabel func_8088FD48
/* 00538 8088FD48 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0053C 8088FD4C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00540 8088FD50 AFA5001C */ sw $a1, 0x001C($sp)
/* 00544 8088FD54 C4820060 */ lwc1 $f2, 0x0060($a0) ## 00000060
/* 00548 8088FD58 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 0054C 8088FD5C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00550 8088FD60 3C018089 */ lui $at, %hi(D_80890528) ## $at = 80890000
/* 00554 8088FD64 4602203C */ c.lt.s $f4, $f2
/* 00558 8088FD68 00000000 */ nop
/* 0055C 8088FD6C 45030034 */ bc1tl .L8088FE40
/* 00560 8088FD70 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00564 8088FD74 C4800024 */ lwc1 $f0, 0x0024($a0) ## 00000024
/* 00568 8088FD78 C4260528 */ lwc1 $f6, %lo(D_80890528)($at)
/* 0056C 8088FD7C 3C018089 */ lui $at, %hi(D_8089052C) ## $at = 80890000
/* 00570 8088FD80 4606003E */ c.le.s $f0, $f6
/* 00574 8088FD84 00000000 */ nop
/* 00578 8088FD88 45000006 */ bc1f .L8088FDA4
/* 0057C 8088FD8C 00000000 */ nop
/* 00580 8088FD90 C428052C */ lwc1 $f8, %lo(D_8089052C)($at)
/* 00584 8088FD94 C48A002C */ lwc1 $f10, 0x002C($a0) ## 0000002C
/* 00588 8088FD98 4608503E */ c.le.s $f10, $f8
/* 0058C 8088FD9C 00000000 */ nop
/* 00590 8088FDA0 45010026 */ bc1t .L8088FE3C
.L8088FDA4:
/* 00594 8088FDA4 3C018089 */ lui $at, %hi(D_80890530) ## $at = 80890000
/* 00598 8088FDA8 C4300530 */ lwc1 $f16, %lo(D_80890530)($at)
/* 0059C 8088FDAC 3C01C3D2 */ lui $at, 0xC3D2 ## $at = C3D20000
/* 005A0 8088FDB0 4610003E */ c.le.s $f0, $f16
/* 005A4 8088FDB4 00000000 */ nop
/* 005A8 8088FDB8 45020008 */ bc1fl .L8088FDDC
/* 005AC 8088FDBC 3C01C475 */ lui $at, 0xC475 ## $at = C4750000
/* 005B0 8088FDC0 C4F2002C */ lwc1 $f18, 0x002C($a3) ## 0000002C
/* 005B4 8088FDC4 44812000 */ mtc1 $at, $f4 ## $f4 = -980.00
/* 005B8 8088FDC8 00000000 */ nop
/* 005BC 8088FDCC 4612203E */ c.le.s $f4, $f18
/* 005C0 8088FDD0 00000000 */ nop
/* 005C4 8088FDD4 45010019 */ bc1t .L8088FE3C
/* 005C8 8088FDD8 3C01C475 */ lui $at, 0xC475 ## $at = C4750000
.L8088FDDC:
/* 005CC 8088FDDC 44813000 */ mtc1 $at, $f6 ## $f6 = -980.00
/* 005D0 8088FDE0 3C018089 */ lui $at, %hi(D_80890534) ## $at = 80890000
/* 005D4 8088FDE4 4600303E */ c.le.s $f6, $f0
/* 005D8 8088FDE8 00000000 */ nop
/* 005DC 8088FDEC 45020007 */ bc1fl .L8088FE0C
/* 005E0 8088FDF0 3C01C457 */ lui $at, 0xC457 ## $at = C4570000
/* 005E4 8088FDF4 C4280534 */ lwc1 $f8, %lo(D_80890534)($at)
/* 005E8 8088FDF8 C4EA002C */ lwc1 $f10, 0x002C($a3) ## 0000002C
/* 005EC 8088FDFC 4608503E */ c.le.s $f10, $f8
/* 005F0 8088FE00 00000000 */ nop
/* 005F4 8088FE04 4501000D */ bc1t .L8088FE3C
/* 005F8 8088FE08 3C01C457 */ lui $at, 0xC457 ## $at = C4570000
.L8088FE0C:
/* 005FC 8088FE0C 44818000 */ mtc1 $at, $f16 ## $f16 = -860.00
/* 00600 8088FE10 3C01C42F */ lui $at, 0xC42F ## $at = C42F0000
/* 00604 8088FE14 4600803E */ c.le.s $f16, $f0
/* 00608 8088FE18 00000000 */ nop
/* 0060C 8088FE1C 45020029 */ bc1fl .L8088FEC4
/* 00610 8088FE20 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00614 8088FE24 C4F2002C */ lwc1 $f18, 0x002C($a3) ## 0000002C
/* 00618 8088FE28 44812000 */ mtc1 $at, $f4 ## $f4 = -700.00
/* 0061C 8088FE2C 00000000 */ nop
/* 00620 8088FE30 4612203E */ c.le.s $f4, $f18
/* 00624 8088FE34 00000000 */ nop
/* 00628 8088FE38 45000021 */ bc1f .L8088FEC0
.L8088FE3C:
/* 0062C 8088FE3C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
.L8088FE40:
/* 00630 8088FE40 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 00634 8088FE44 24E40028 */ addiu $a0, $a3, 0x0028 ## $a0 = 00000028
/* 00638 8088FE48 3C05C396 */ lui $a1, 0xC396 ## $a1 = C3960000
/* 0063C 8088FE4C 46061200 */ add.s $f8, $f2, $f6
/* 00640 8088FE50 E4E80060 */ swc1 $f8, 0x0060($a3) ## 00000060
/* 00644 8088FE54 8CE60060 */ lw $a2, 0x0060($a3) ## 00000060
/* 00648 8088FE58 0C01DE80 */ jal Math_StepToF
/* 0064C 8088FE5C AFA70018 */ sw $a3, 0x0018($sp)
/* 00650 8088FE60 10400017 */ beq $v0, $zero, .L8088FEC0
/* 00654 8088FE64 8FA70018 */ lw $a3, 0x0018($sp)
/* 00658 8088FE68 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 0065C 8088FE6C 44812000 */ mtc1 $at, $f4 ## $f4 = 60.00
/* 00660 8088FE70 C4F2000C */ lwc1 $f18, 0x000C($a3) ## 0000000C
/* 00664 8088FE74 84EE001C */ lh $t6, 0x001C($a3) ## 0000001C
/* 00668 8088FE78 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 0066C 8088FE7C 46049181 */ sub.s $f6, $f18, $f4
/* 00670 8088FE80 C4F00008 */ lwc1 $f16, 0x0008($a3) ## 00000008
/* 00674 8088FE84 C4E80010 */ lwc1 $f8, 0x0010($a3) ## 00000010
/* 00678 8088FE88 E4EA0060 */ swc1 $f10, 0x0060($a3) ## 00000060
/* 0067C 8088FE8C E4E60028 */ swc1 $f6, 0x0028($a3) ## 00000028
/* 00680 8088FE90 E4F00024 */ swc1 $f16, 0x0024($a3) ## 00000024
/* 00684 8088FE94 11C00007 */ beq $t6, $zero, .L8088FEB4
/* 00688 8088FE98 E4E8002C */ swc1 $f8, 0x002C($a3) ## 0000002C
/* 0068C 8088FE9C 8FA4001C */ lw $a0, 0x001C($sp)
/* 00690 8088FEA0 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00694 8088FEA4 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 00698 8088FEA8 0C00B7D5 */ jal func_8002DF54
/* 0069C 8088FEAC AFA70018 */ sw $a3, 0x0018($sp)
/* 006A0 8088FEB0 8FA70018 */ lw $a3, 0x0018($sp)
.L8088FEB4:
/* 006A4 8088FEB4 3C0F8089 */ lui $t7, %hi(func_80890360) ## $t7 = 80890000
/* 006A8 8088FEB8 25EF0360 */ addiu $t7, $t7, %lo(func_80890360) ## $t7 = 80890360
/* 006AC 8088FEBC ACEF0164 */ sw $t7, 0x0164($a3) ## 00000164
.L8088FEC0:
/* 006B0 8088FEC0 8FBF0014 */ lw $ra, 0x0014($sp)
.L8088FEC4:
/* 006B4 8088FEC4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 006B8 8088FEC8 03E00008 */ jr $ra
/* 006BC 8088FECC 00000000 */ nop

View file

@ -1,69 +0,0 @@
glabel func_8088FED0
/* 006C0 8088FED0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 006C4 8088FED4 AFBF001C */ sw $ra, 0x001C($sp)
/* 006C8 8088FED8 AFB10018 */ sw $s1, 0x0018($sp)
/* 006CC 8088FEDC AFB00014 */ sw $s0, 0x0014($sp)
/* 006D0 8088FEE0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006D4 8088FEE4 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 006D8 8088FEE8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 006DC 8088FEEC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 006E0 8088FEF0 46040032 */ c.eq.s $f0, $f4
/* 006E4 8088FEF4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 006E8 8088FEF8 45030029 */ bc1tl .L8088FFA0
/* 006EC 8088FEFC C60A0060 */ lwc1 $f10, 0x0060($s0) ## 00000060
/* 006F0 8088FF00 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 006F4 8088FF04 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 006F8 8088FF08 01C17824 */ and $t7, $t6, $at
/* 006FC 8088FF0C AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00700 8088FF10 C4860150 */ lwc1 $f6, 0x0150($a0) ## 00000150
/* 00704 8088FF14 4606003C */ c.lt.s $f0, $f6
/* 00708 8088FF18 00000000 */ nop
/* 0070C 8088FF1C 4502001D */ bc1fl .L8088FF94
/* 00710 8088FF20 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00714 8088FF24 0C023A62 */ jal Player_InCsMode
/* 00718 8088FF28 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0071C 8088FF2C 14400018 */ bne $v0, $zero, .L8088FF90
/* 00720 8088FF30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00724 8088FF34 0C223E32 */ jal func_8088F8C8
/* 00728 8088FF38 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0072C 8088FF3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00730 8088FF40 0C00B6EC */ jal func_8002DBB0
/* 00734 8088FF44 26050168 */ addiu $a1, $s0, 0x0168 ## $a1 = 00000168
/* 00738 8088FF48 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0073C 8088FF4C 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 00740 8088FF50 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00744 8088FF54 4600403C */ c.lt.s $f8, $f0
/* 00748 8088FF58 00000000 */ nop
/* 0074C 8088FF5C 4502000D */ bc1fl .L8088FF94
/* 00750 8088FF60 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00754 8088FF64 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 00758 8088FF68 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0075C 8088FF6C 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 00760 8088FF70 37190010 */ ori $t9, $t8, 0x0010 ## $t9 = 00000010
/* 00764 8088FF74 0C00B7D5 */ jal func_8002DF54
/* 00768 8088FF78 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 0076C 8088FF7C 3C098089 */ lui $t1, %hi(func_8088FFD0) ## $t1 = 80890000
/* 00770 8088FF80 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00774 8088FF84 2529FFD0 */ addiu $t1, $t1, %lo(func_8088FFD0) ## $t1 = 8088FFD0
/* 00778 8088FF88 A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 0077C 8088FF8C AE090164 */ sw $t1, 0x0164($s0) ## 00000164
.L8088FF90:
/* 00780 8088FF90 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L8088FF94:
/* 00784 8088FF94 00000000 */ nop
/* 00788 8088FF98 E6000150 */ swc1 $f0, 0x0150($s0) ## 00000150
/* 0078C 8088FF9C C60A0060 */ lwc1 $f10, 0x0060($s0) ## 00000060
.L8088FFA0:
/* 00790 8088FFA0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00794 8088FFA4 460A003C */ c.lt.s $f0, $f10
/* 00798 8088FFA8 00000000 */ nop
/* 0079C 8088FFAC 45020004 */ bc1fl .L8088FFC0
/* 007A0 8088FFB0 8FBF001C */ lw $ra, 0x001C($sp)
/* 007A4 8088FFB4 0C223F52 */ jal func_8088FD48
/* 007A8 8088FFB8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 007AC 8088FFBC 8FBF001C */ lw $ra, 0x001C($sp)
.L8088FFC0:
/* 007B0 8088FFC0 8FB00014 */ lw $s0, 0x0014($sp)
/* 007B4 8088FFC4 8FB10018 */ lw $s1, 0x0018($sp)
/* 007B8 8088FFC8 03E00008 */ jr $ra
/* 007BC 8088FFCC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000

View file

@ -1,260 +0,0 @@
.late_rodata
glabel D_80890538
.float 1387.0
.text
glabel func_8088FFD0
/* 007C0 8088FFD0 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 007C4 8088FFD4 AFB00030 */ sw $s0, 0x0030($sp)
/* 007C8 8088FFD8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007CC 8088FFDC AFBF0034 */ sw $ra, 0x0034($sp)
/* 007D0 8088FFE0 AFA5006C */ sw $a1, 0x006C($sp)
/* 007D4 8088FFE4 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 007D8 8088FFE8 3C054120 */ lui $a1, 0x4120 ## $a1 = 41200000
/* 007DC 8088FFEC 24840068 */ addiu $a0, $a0, 0x0068 ## $a0 = 00000068
/* 007E0 8088FFF0 0C01DE80 */ jal Math_StepToF
/* 007E4 8088FFF4 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 007E8 8088FFF8 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 007EC 8088FFFC 8E050168 */ lw $a1, 0x0168($s0) ## 00000168
/* 007F0 80890000 0C01DE80 */ jal Math_StepToF
/* 007F4 80890004 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 007F8 80890008 8E050170 */ lw $a1, 0x0170($s0) ## 00000170
/* 007FC 8089000C 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 00800 80890010 AFA20064 */ sw $v0, 0x0064($sp)
/* 00804 80890014 0C01DE80 */ jal Math_StepToF
/* 00808 80890018 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
/* 0080C 8089001C 8FA30064 */ lw $v1, 0x0064($sp)
/* 00810 80890020 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00814 80890024 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 00818 80890028 00621824 */ and $v1, $v1, $v0
/* 0081C 8089002C 10600031 */ beq $v1, $zero, .L808900F4
/* 00820 80890030 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00824 80890034 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00828 80890038 C6080060 */ lwc1 $f8, 0x0060($s0) ## 00000060
/* 0082C 8089003C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00830 80890040 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00834 80890044 4600403E */ c.le.s $f8, $f0
/* 00838 80890048 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 0083C 8089004C E6040168 */ swc1 $f4, 0x0168($s0) ## 00000168
/* 00840 80890050 E6060170 */ swc1 $f6, 0x0170($s0) ## 00000170
/* 00844 80890054 45020006 */ bc1fl .L80890070
/* 00848 80890058 A600001C */ sh $zero, 0x001C($s0) ## 0000001C
/* 0084C 8089005C 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00850 80890060 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00854 80890064 01C17824 */ and $t7, $t6, $at
/* 00858 80890068 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 0085C 8089006C A600001C */ sh $zero, 0x001C($s0) ## 0000001C
.L80890070:
/* 00860 80890070 0C00B7D5 */ jal func_8002DF54
/* 00864 80890074 8FA4006C */ lw $a0, 0x006C($sp)
/* 00868 80890078 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0086C 8089007C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00870 80890080 24052835 */ addiu $a1, $zero, 0x2835 ## $a1 = 00002835
/* 00874 80890084 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00878 80890088 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 0087C 8089008C 3C018089 */ lui $at, %hi(D_80890538) ## $at = 80890000
/* 00880 80890090 C4300538 */ lwc1 $f16, %lo(D_80890538)($at)
/* 00884 80890094 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 00888 80890098 3C198089 */ lui $t9, %hi(func_8088FED0) ## $t9 = 80890000
/* 0088C 8089009C 3C014382 */ lui $at, 0x4382 ## $at = 43820000
/* 00890 808900A0 46105000 */ add.s $f0, $f10, $f16
/* 00894 808900A4 2739FED0 */ addiu $t9, $t9, %lo(func_8088FED0) ## $t9 = 8088FED0
/* 00898 808900A8 46000005 */ abs.s $f0, $f0
/* 0089C 808900AC 4602003C */ c.lt.s $f0, $f2
/* 008A0 808900B0 00000000 */ nop
/* 008A4 808900B4 4500000D */ bc1f .L808900EC
/* 008A8 808900B8 00000000 */ nop
/* 008AC 808900BC C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 008B0 808900C0 44812000 */ mtc1 $at, $f4 ## $f4 = 260.00
/* 008B4 808900C4 3C188089 */ lui $t8, %hi(func_808903FC) ## $t8 = 80890000
/* 008B8 808900C8 271803FC */ addiu $t8, $t8, %lo(func_808903FC) ## $t8 = 808903FC
/* 008BC 808900CC 46049000 */ add.s $f0, $f18, $f4
/* 008C0 808900D0 46000005 */ abs.s $f0, $f0
/* 008C4 808900D4 4602003C */ c.lt.s $f0, $f2
/* 008C8 808900D8 00000000 */ nop
/* 008CC 808900DC 45000003 */ bc1f .L808900EC
/* 008D0 808900E0 00000000 */ nop
/* 008D4 808900E4 10000096 */ beq $zero, $zero, .L80890340
/* 008D8 808900E8 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
.L808900EC:
/* 008DC 808900EC 10000094 */ beq $zero, $zero, .L80890340
/* 008E0 808900F0 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
.L808900F4:
/* 008E4 808900F4 44813000 */ mtc1 $at, $f6 ## $f6 = 260.00
/* 008E8 808900F8 C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068
/* 008EC 808900FC 4608303C */ c.lt.s $f6, $f8
/* 008F0 80890100 00000000 */ nop
/* 008F4 80890104 4502008F */ bc1fl .L80890344
/* 008F8 80890108 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008FC 8089010C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00900 80890110 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 00904 80890114 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00908 80890118 460A003E */ c.le.s $f0, $f10
/* 0090C 8089011C 00000000 */ nop
/* 00910 80890120 45020088 */ bc1fl .L80890344
/* 00914 80890124 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00918 80890128 44816000 */ mtc1 $at, $f12 ## $f12 = 120.00
/* 0091C 8089012C 0C00CFC8 */ jal Rand_CenteredFloat
/* 00920 80890130 00000000 */ nop
/* 00924 80890134 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00928 80890138 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 0092C 8089013C 46000506 */ mov.s $f20, $f0
/* 00930 80890140 0C01DE1C */ jal Math_SinS
## sins?
/* 00934 80890144 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00938 80890148 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 0093C 8089014C 44818000 */ mtc1 $at, $f16 ## $f16 = 1.50
/* 00940 80890150 00000000 */ nop
/* 00944 80890154 46148480 */ add.s $f18, $f16, $f20
/* 00948 80890158 46009107 */ neg.s $f4, $f18
/* 0094C 8089015C 46040182 */ mul.s $f6, $f0, $f4
/* 00950 80890160 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00954 80890164 E7A6004C */ swc1 $f6, 0x004C($sp)
/* 00958 80890168 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0095C 8089016C 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 00960 80890170 00000000 */ nop
/* 00964 80890174 46020200 */ add.s $f8, $f0, $f2
/* 00968 80890178 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0096C 8089017C E7A80050 */ swc1 $f8, 0x0050($sp)
/* 00970 80890180 46000506 */ mov.s $f20, $f0
/* 00974 80890184 0C01DE0D */ jal Math_CosS
## coss?
/* 00978 80890188 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 0097C 8089018C 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00980 80890190 44815000 */ mtc1 $at, $f10 ## $f10 = 1.50
/* 00984 80890194 00000000 */ nop
/* 00988 80890198 46145400 */ add.s $f16, $f10, $f20
/* 0098C 8089019C 46008487 */ neg.s $f18, $f16
/* 00990 808901A0 46120102 */ mul.s $f4, $f0, $f18
/* 00994 808901A4 E7A40054 */ swc1 $f4, 0x0054($sp)
/* 00998 808901A8 0C01DE1C */ jal Math_SinS
## sins?
/* 0099C 808901AC 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 009A0 808901B0 46000506 */ mov.s $f20, $f0
/* 009A4 808901B4 0C01DE0D */ jal Math_CosS
## coss?
/* 009A8 808901B8 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 009AC 808901BC 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 009B0 808901C0 44814000 */ mtc1 $at, $f8 ## $f8 = 60.00
/* 009B4 808901C4 C7B20048 */ lwc1 $f18, 0x0048($sp)
/* 009B8 808901C8 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 009BC 808901CC 46144282 */ mul.s $f10, $f8, $f20
/* 009C0 808901D0 460A3401 */ sub.s $f16, $f6, $f10
/* 009C4 808901D4 46120102 */ mul.s $f4, $f0, $f18
/* 009C8 808901D8 46048201 */ sub.s $f8, $f16, $f4
/* 009CC 808901DC E7A80058 */ swc1 $f8, 0x0058($sp)
/* 009D0 808901E0 0C01DE0D */ jal Math_CosS
## coss?
/* 009D4 808901E4 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 009D8 808901E8 46000506 */ mov.s $f20, $f0
/* 009DC 808901EC 0C01DE1C */ jal Math_SinS
## sins?
/* 009E0 808901F0 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 009E4 808901F4 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 009E8 808901F8 44815000 */ mtc1 $at, $f10 ## $f10 = 60.00
/* 009EC 808901FC C7A40048 */ lwc1 $f4, 0x0048($sp)
/* 009F0 80890200 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 009F4 80890204 46145482 */ mul.s $f18, $f10, $f20
/* 009F8 80890208 24040028 */ addiu $a0, $zero, 0x0028 ## $a0 = 00000028
/* 009FC 8089020C 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 00A00 80890210 46040202 */ mul.s $f8, $f0, $f4
/* 00A04 80890214 46123401 */ sub.s $f16, $f6, $f18
/* 00A08 80890218 46104280 */ add.s $f10, $f8, $f16
/* 00A0C 8089021C E7AA0060 */ swc1 $f10, 0x0060($sp)
/* 00A10 80890220 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 00A14 80890224 0C01DF64 */ jal Rand_S16Offset
/* 00A18 80890228 E7A6005C */ swc1 $f6, 0x005C($sp)
/* 00A1C 8089022C 3C088089 */ lui $t0, %hi(D_80890490) ## $t0 = 80890000
/* 00A20 80890230 3C098089 */ lui $t1, %hi(D_80890494) ## $t1 = 80890000
/* 00A24 80890234 25290494 */ addiu $t1, $t1, %lo(D_80890494) ## $t1 = 80890494
/* 00A28 80890238 25080490 */ addiu $t0, $t0, %lo(D_80890490) ## $t0 = 80890490
/* 00A2C 8089023C 3C078089 */ lui $a3, %hi(D_80890498) ## $a3 = 80890000
/* 00A30 80890240 240A00FA */ addiu $t2, $zero, 0x00FA ## $t2 = 000000FA
/* 00A34 80890244 AFAA0018 */ sw $t2, 0x0018($sp)
/* 00A38 80890248 24E70498 */ addiu $a3, $a3, %lo(D_80890498) ## $a3 = 80890498
/* 00A3C 8089024C AFA80010 */ sw $t0, 0x0010($sp)
/* 00A40 80890250 AFA90014 */ sw $t1, 0x0014($sp)
/* 00A44 80890254 8FA4006C */ lw $a0, 0x006C($sp)
/* 00A48 80890258 27A50058 */ addiu $a1, $sp, 0x0058 ## $a1 = FFFFFFF0
/* 00A4C 8089025C 27A6004C */ addiu $a2, $sp, 0x004C ## $a2 = FFFFFFE4
/* 00A50 80890260 0C00A0A7 */ jal func_8002829C
/* 00A54 80890264 AFA2001C */ sw $v0, 0x001C($sp)
/* 00A58 80890268 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00A5C 8089026C 44816000 */ mtc1 $at, $f12 ## $f12 = 120.00
/* 00A60 80890270 0C00CFC8 */ jal Rand_CenteredFloat
/* 00A64 80890274 00000000 */ nop
/* 00A68 80890278 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 00A6C 8089027C 0C01DE1C */ jal Math_SinS
## sins?
/* 00A70 80890280 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A74 80890284 46000506 */ mov.s $f20, $f0
/* 00A78 80890288 0C01DE0D */ jal Math_CosS
## coss?
/* 00A7C 8089028C 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A80 80890290 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00A84 80890294 44812000 */ mtc1 $at, $f4 ## $f4 = 60.00
/* 00A88 80890298 C7AA0048 */ lwc1 $f10, 0x0048($sp)
/* 00A8C 8089029C C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
/* 00A90 808902A0 46142202 */ mul.s $f8, $f4, $f20
/* 00A94 808902A4 46089401 */ sub.s $f16, $f18, $f8
/* 00A98 808902A8 460A0182 */ mul.s $f6, $f0, $f10
/* 00A9C 808902AC 46103100 */ add.s $f4, $f6, $f16
/* 00AA0 808902B0 E7A40058 */ swc1 $f4, 0x0058($sp)
/* 00AA4 808902B4 0C01DE0D */ jal Math_CosS
## coss?
/* 00AA8 808902B8 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00AAC 808902BC 46000506 */ mov.s $f20, $f0
/* 00AB0 808902C0 0C01DE1C */ jal Math_SinS
## sins?
/* 00AB4 808902C4 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00AB8 808902C8 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00ABC 808902CC 44814000 */ mtc1 $at, $f8 ## $f8 = 60.00
/* 00AC0 808902D0 C7B00048 */ lwc1 $f16, 0x0048($sp)
/* 00AC4 808902D4 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 00AC8 808902D8 46144282 */ mul.s $f10, $f8, $f20
/* 00ACC 808902DC 24040028 */ addiu $a0, $zero, 0x0028 ## $a0 = 00000028
/* 00AD0 808902E0 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 00AD4 808902E4 46100102 */ mul.s $f4, $f0, $f16
/* 00AD8 808902E8 460A9181 */ sub.s $f6, $f18, $f10
/* 00ADC 808902EC 46043201 */ sub.s $f8, $f6, $f4
/* 00AE0 808902F0 0C01DF64 */ jal Rand_S16Offset
/* 00AE4 808902F4 E7A80060 */ swc1 $f8, 0x0060($sp)
/* 00AE8 808902F8 3C0B8089 */ lui $t3, %hi(D_80890490) ## $t3 = 80890000
/* 00AEC 808902FC 3C0C8089 */ lui $t4, %hi(D_80890494) ## $t4 = 80890000
/* 00AF0 80890300 258C0494 */ addiu $t4, $t4, %lo(D_80890494) ## $t4 = 80890494
/* 00AF4 80890304 256B0490 */ addiu $t3, $t3, %lo(D_80890490) ## $t3 = 80890490
/* 00AF8 80890308 3C078089 */ lui $a3, %hi(D_80890498) ## $a3 = 80890000
/* 00AFC 8089030C 240D00FA */ addiu $t5, $zero, 0x00FA ## $t5 = 000000FA
/* 00B00 80890310 AFAD0018 */ sw $t5, 0x0018($sp)
/* 00B04 80890314 24E70498 */ addiu $a3, $a3, %lo(D_80890498) ## $a3 = 80890498
/* 00B08 80890318 AFAB0010 */ sw $t3, 0x0010($sp)
/* 00B0C 8089031C AFAC0014 */ sw $t4, 0x0014($sp)
/* 00B10 80890320 8FA4006C */ lw $a0, 0x006C($sp)
/* 00B14 80890324 27A50058 */ addiu $a1, $sp, 0x0058 ## $a1 = FFFFFFF0
/* 00B18 80890328 27A6004C */ addiu $a2, $sp, 0x004C ## $a2 = FFFFFFE4
/* 00B1C 8089032C 0C00A0A7 */ jal func_8002829C
/* 00B20 80890330 AFA2001C */ sw $v0, 0x001C($sp)
/* 00B24 80890334 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B28 80890338 0C00BE5D */ jal func_8002F974
/* 00B2C 8089033C 240500DF */ addiu $a1, $zero, 0x00DF ## $a1 = 000000DF
.L80890340:
/* 00B30 80890340 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80890344:
/* 00B34 80890344 0C223F52 */ jal func_8088FD48
/* 00B38 80890348 8FA5006C */ lw $a1, 0x006C($sp)
/* 00B3C 8089034C 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00B40 80890350 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 00B44 80890354 8FB00030 */ lw $s0, 0x0030($sp)
/* 00B48 80890358 03E00008 */ jr $ra
/* 00B4C 8089035C 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000

View file

@ -1,44 +0,0 @@
glabel func_80890360
/* 00B50 80890360 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00B54 80890364 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00B58 80890368 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00B5C 8089036C C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00B60 80890370 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00B64 80890374 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00B68 80890378 46040032 */ c.eq.s $f0, $f4
/* 00B6C 8089037C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00B70 80890380 45030007 */ bc1tl .L808903A0
/* 00B74 80890384 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
/* 00B78 80890388 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00B7C 8089038C 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00B80 80890390 01C17824 */ and $t7, $t6, $at
/* 00B84 80890394 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00B88 80890398 E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
/* 00B8C 8089039C 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
.L808903A0:
/* 00B90 808903A0 AFA70018 */ sw $a3, 0x0018($sp)
/* 00B94 808903A4 0C01DE80 */ jal Math_StepToF
/* 00B98 808903A8 24E40028 */ addiu $a0, $a3, 0x0028 ## $a0 = 00000028
/* 00B9C 808903AC 1040000F */ beq $v0, $zero, .L808903EC
/* 00BA0 808903B0 8FA70018 */ lw $a3, 0x0018($sp)
/* 00BA4 808903B4 8CF80004 */ lw $t8, 0x0004($a3) ## 00000004
/* 00BA8 808903B8 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00BAC 808903BC 24E40168 */ addiu $a0, $a3, 0x0168 ## $a0 = 00000168
/* 00BB0 808903C0 0301C824 */ and $t9, $t8, $at
/* 00BB4 808903C4 ACF90004 */ sw $t9, 0x0004($a3) ## 00000004
/* 00BB8 808903C8 AFA70018 */ sw $a3, 0x0018($sp)
/* 00BBC 808903CC 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00BC0 808903D0 24E50008 */ addiu $a1, $a3, 0x0008 ## $a1 = 00000008
/* 00BC4 808903D4 8FA70018 */ lw $a3, 0x0018($sp)
/* 00BC8 808903D8 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00BCC 808903DC 3C088089 */ lui $t0, %hi(func_8088FED0) ## $t0 = 80890000
/* 00BD0 808903E0 2508FED0 */ addiu $t0, $t0, %lo(func_8088FED0) ## $t0 = 8088FED0
/* 00BD4 808903E4 ACE80164 */ sw $t0, 0x0164($a3) ## 00000164
/* 00BD8 808903E8 E4E60068 */ swc1 $f6, 0x0068($a3) ## 00000068
.L808903EC:
/* 00BDC 808903EC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BE0 808903F0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BE4 808903F4 03E00008 */ jr $ra
/* 00BE8 808903F8 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel func_808903FC
/* 00BEC 808903FC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00BF0 80890400 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00BF4 80890404 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00BF8 80890408 46040032 */ c.eq.s $f0, $f4
/* 00BFC 8089040C 00000000 */ nop
/* 00C00 80890410 45010006 */ bc1t .L8089042C
/* 00C04 80890414 00000000 */ nop
/* 00C08 80890418 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00C0C 8089041C 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00C10 80890420 01C17824 */ and $t7, $t6, $at
/* 00C14 80890424 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00C18 80890428 E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
.L8089042C:
/* 00C1C 8089042C 03E00008 */ jr $ra
/* 00C20 80890430 00000000 */ nop

View file

@ -1,18 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .bss
.balign 16
glabel D_8087AC40
.space 0x01
glabel D_8087AC41
.space 0x01
glabel D_8087AC42
.space 0x0E

View file

@ -1,30 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel Bg_Gnd_Iceblock_InitVars
.word 0x01B70600, 0x00000030, 0x01790000, 0x00000174
.word BgGndIceblock_Init
.word BgGndIceblock_Destroy
.word BgGndIceblock_Update
.word BgGndIceblock_Draw
glabel D_8087A740
.word 0xFAFAFAFF
glabel D_8087A744
.word 0xB4B4B4FF
glabel D_8087A748
.word 0x00000000, 0x00000000, 0x00000000
glabel D_8087A754
.word 0x48500064
glabel D_8087A758
.word 0x00000000, 0x00000202, 0x02020303, 0x03040404, 0x06060606, 0x06060000
glabel D_8087A770
.word 0x05040302, 0x01000504, 0x02010601, 0x00050302, 0x05040302, 0x01000000, 0x00000000, 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_8087A920
.incbin "baserom/ovl_Bg_Gnd_Iceblock", 0xE80, 0x00000320

View file

@ -1,70 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel D_80890490
.word 0xFAFAFAFF
glabel D_80890494
.word 0xB4B4B4FF
glabel D_80890498
.word 0x00000000, 0x00000000, 0x00000000
glabel Bg_Ice_Objects_InitVars
.word 0x00D60600, 0x00000000, 0x006B0000, 0x00000174
.word BgIceObjects_Init
.word BgIceObjects_Destroy
.word BgIceObjects_Update
.word BgIceObjects_Draw
glabel D_808904C4
.word 0x48500064
glabel D_808904C8
.byte 0xFB, 0xDC
glabel D_808904CA
.byte 0xFB, 0x50
glabel D_808904CC
.word 0xFB28FA95, 0xF9D4F970, 0xF90C0000
glabel D_808904D8
.byte 0xFD, 0xBC
glabel D_808904DA
.byte 0xFD, 0x6C
glabel D_808904DC
.word 0xFCF4FCCC, 0xFCA4FC7C, 0xFBC10000
glabel D_808904E8
.byte 0xFD, 0xBC
glabel D_808904EA
.byte 0xFB, 0xC1
glabel D_808904EC
.byte 0xFC, 0xF4
glabel D_808904EE
.byte 0xFB, 0x14
glabel D_808904F0
.byte 0xFE, 0xAC
glabel D_808904F2
.byte 0xFC, 0xCC
glabel D_808904F4
.byte 0xFE, 0xFC
glabel D_808904F6
.byte 0xFB, 0x14, 0xFE, 0xAC, 0xFC, 0xA4, 0xFD, 0x6C, 0xFB, 0x14, 0xFE, 0xAC, 0xFD, 0x1C
glabel D_80890504
.byte 0xFC, 0xA4
glabel D_80890506
.byte 0xF9, 0xD4
glabel D_80890508
.byte 0xFB, 0x28
glabel D_8089050A
.byte 0xF9, 0x0C
glabel D_8089050C
.byte 0xFC, 0xA4
glabel D_8089050E
.byte 0xF9, 0x70
glabel D_80890510
.byte 0xFC, 0xA4
glabel D_80890512
.byte 0xF9, 0x70, 0xFA, 0x95, 0xF9, 0x70, 0xFC, 0xA4, 0xFB, 0x50, 0xFC, 0xA4, 0xF8, 0xF8

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80890540
.incbin "baserom/ovl_Bg_Ice_Objects", 0xD30, 0x00000200

View file

@ -70,6 +70,7 @@
#define LOG_TIME(exp, value, file, line) LOG(exp, value, "%lld", file, line)
#define LOG_NUM(exp, value, file, line) LOG(exp, value, "%d", file, line)
#define LOG_HEX(exp, value, file, line) LOG(exp, value, "%x", file, line)
#define LOG_FLOAT(exp, value, file, line) LOG(exp, value, "%f", file, line)
#define SET_NEXT_GAMESTATE(curState, newInit, newStruct) \
(curState)->init = newInit; \

7
spec
View file

@ -713,9 +713,7 @@ endseg
beginseg
name "ovl_Bg_Gnd_Iceblock"
include "build/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o"
include "build/data/overlays/actors/z_bg_gnd_iceblock.data.o"
include "build/data/overlays/actors/z_bg_gnd_iceblock.bss.o"
include "build/data/overlays/actors/z_bg_gnd_iceblock.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o"
endseg
beginseg
@ -900,8 +898,7 @@ endseg
beginseg
name "ovl_Bg_Ice_Objects"
include "build/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o"
include "build/data/overlays/actors/z_bg_ice_objects.data.o"
include "build/data/overlays/actors/z_bg_ice_objects.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o"
endseg
beginseg

View file

@ -1,7 +1,7 @@
/*
* File: z_bg_gnd_iceblock.c
* Overlay: ovl_Bg_Gnd_Iceblock
* Description: Pushable large square ice block (Inside Ganon's Castle)
* Description: Pushable ice block (Inside Ganon's Castle)
*/
#include "z_bg_gnd_iceblock.h"
@ -10,21 +10,23 @@
#define THIS ((BgGndIceblock*)thisx)
typedef enum {
/* 0 */ GNDICE_IDLE,
/* 1 */ GNDICE_FALL,
/* 2 */ GNDICE_HOLE
} BgGndIceblockAction;
void BgGndIceblock_Init(Actor* thisx, GlobalContext* globalCtx);
void BgGndIceblock_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgGndIceblock_Update(Actor* thisx, GlobalContext* globalCtx);
void BgGndIceblock_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_8087A0C8(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A184(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A248(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A300(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A39C(BgGndIceblock* this, GlobalContext* globalCtx);
void BgGndIceblock_Idle(BgGndIceblock* this, GlobalContext* globalCtx);
void BgGndIceblock_Slide(BgGndIceblock* this, GlobalContext* globalCtx);
extern UNK_TYPE D_06004420;
extern UNK_TYPE D_06004618;
extern Gfx D_06004420[];
extern ColHeader D_06004618;
/*
const ActorInit Bg_Gnd_Iceblock_InitVars = {
ACTOR_BG_GND_ICEBLOCK,
ACTORTYPE_PROP,
@ -36,29 +38,330 @@ const ActorInit Bg_Gnd_Iceblock_InitVars = {
(ActorFunc)BgGndIceblock_Update,
(ActorFunc)BgGndIceblock_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/BgGndIceblock_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/BgGndIceblock_Destroy.s")
static Color_RGBA8 sWhite = { 250, 250, 250, 255 };
static Color_RGBA8 sGray = { 180, 180, 180, 255 };
static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
static u8 sBlockPositions[2];
void BgGndIceblock_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgGndIceblock* this = THIS;
ColHeader* colHeader = NULL;
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&D_06004618, &colHeader);
this->targetPos = this->dyna.actor.initPosRot.pos;
this->actionFunc = BgGndIceblock_Idle;
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (this->dyna.actor.posRot.pos.x == 2792.0f) {
this->dyna.actor.params = 0;
sBlockPositions[0] = 7;
} else if (this->dyna.actor.posRot.pos.x == 3032.0f) {
this->dyna.actor.params = 1;
sBlockPositions[1] = 14;
} else {
LOG_FLOAT("thisx->world.position.x", this->dyna.actor.posRot.pos.x, "../z_bg_gnd_iceblock.c", 138);
__assert("0", "../z_bg_gnd_iceblock.c", 139);
}
}
void BgGndIceblock_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgGndIceblock* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
/*
* Diagram of positions in the room:
* __
* _________|10|_________
* |*0* 6 *13****16*|
* |*1* 7 17 |
* | 2 14 18 |
* | 3 h8 15 19 |
* | 4 9 11 XX *20*|
* |*5* XX 12 *21*|
*
* XX are rocks
* ** are pits
* h is the hole.
* Block 0 starts at 7 and block 1 starts at 14
*/
void BgGndIceblock_SetPosition(BgGndIceblock* this, s32 blockPosition) {
Actor* thisx = &this->dyna.actor;
u8 xPosIdx[22] = {
0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 6, 6, 6, 6, 6, 6,
};
u8 zPosIdx[22] = {
5, 4, 3, 2, 1, 0, 5, 4, 2, 1, 6, 1, 0, 5, 3, 2, 5, 4, 3, 2, 1, 0,
};
sBlockPositions[thisx->params] = blockPosition;
this->targetPos.x = 2552.0f + (xPosIdx[blockPosition] * 120.0f);
this->targetPos.z = -540.0f - (zPosIdx[blockPosition] * 120.0f);
}
s32 BgGndIceblock_CheckForBlock(s32 blockPosition) {
s32 i;
for (i = 0; i < 2; i++) {
if (blockPosition == sBlockPositions[i]) {
return true;
}
}
return false;
}
s32 BgGndIceblock_NextAction(BgGndIceblock* this) {
switch (sBlockPositions[this->dyna.actor.params]) {
case 0:
case 1:
case 5:
case 13:
case 16:
case 20:
case 21:
return GNDICE_FALL;
case 8:
return GNDICE_HOLE;
default:
return GNDICE_IDLE;
}
}
void BgGndIceblock_SetNextPosition(BgGndIceblock* this) {
if (this->dyna.unk_158 == 0) {
switch (sBlockPositions[this->dyna.actor.params]) {
case 3:
case 4:
BgGndIceblock_SetPosition(this, 5);
break;
case 7:
if (BgGndIceblock_CheckForBlock(8)) {
BgGndIceblock_SetPosition(this, 9);
} else {
BgGndIceblock_SetPosition(this, 8);
}
break;
case 11:
BgGndIceblock_SetPosition(this, 12);
break;
case 14:
BgGndIceblock_SetPosition(this, 15);
break;
case 18:
case 19:
BgGndIceblock_SetPosition(this, 20);
break;
}
} else if (this->dyna.unk_158 == -0x8000) {
switch (sBlockPositions[this->dyna.actor.params]) {
case 2:
case 3:
BgGndIceblock_SetPosition(this, 1);
break;
case 7:
case 9:
BgGndIceblock_SetPosition(this, 6);
break;
case 11:
BgGndIceblock_SetPosition(this, 10);
break;
case 14:
case 15:
BgGndIceblock_SetPosition(this, 13);
break;
case 17:
BgGndIceblock_SetPosition(this, 16);
break;
case 18:
if (!BgGndIceblock_CheckForBlock(17)) {
BgGndIceblock_SetPosition(this, 16);
}
break;
}
} else if (this->dyna.unk_158 == 0x4000) {
switch (sBlockPositions[this->dyna.actor.params]) {
case 6:
BgGndIceblock_SetPosition(this, 13);
break;
case 7:
BgGndIceblock_SetPosition(this, 17);
break;
case 9:
BgGndIceblock_SetPosition(this, 11);
break;
case 12:
BgGndIceblock_SetPosition(this, 21);
break;
case 14:
BgGndIceblock_SetPosition(this, 18);
break;
case 15:
BgGndIceblock_SetPosition(this, 19);
break;
}
} else if (this->dyna.unk_158 == -0x4000) {
switch (sBlockPositions[this->dyna.actor.params]) {
case 6:
BgGndIceblock_SetPosition(this, 0);
break;
case 7:
BgGndIceblock_SetPosition(this, 1);
break;
case 9:
case 11:
BgGndIceblock_SetPosition(this, 4);
break;
case 14:
BgGndIceblock_SetPosition(this, 2);
break;
case 15:
if (BgGndIceblock_CheckForBlock(8)) {
BgGndIceblock_SetPosition(this, 3);
} else {
BgGndIceblock_SetPosition(this, 8);
}
break;
}
}
}
void BgGndIceblock_Idle(BgGndIceblock* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
if (this->dyna.unk_150 > 0.0f) {
BgGndIceblock_SetNextPosition(this);
if (func_8002DBB0(&this->dyna.actor, &this->targetPos) > 1.0f) {
func_8002DF54(globalCtx, &this->dyna.actor, 8);
this->actionFunc = BgGndIceblock_Slide;
}
}
this->dyna.unk_150 = 0.0f;
}
}
void BgGndIceblock_Reset(BgGndIceblock* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_80879C04.s")
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
this->dyna.unk_150 = 0.0f;
}
if (Math_StepToF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y, 1.0f)) {
this->targetPos = thisx->initPosRot.pos;
thisx->speedXZ = 0.0f;
this->actionFunc = BgGndIceblock_Idle;
switch (thisx->params) {
case 0:
sBlockPositions[0] = 7;
break;
case 1:
sBlockPositions[1] = 14;
break;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_80879D10.s")
void BgGndIceblock_Fall(BgGndIceblock* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_80879D4C.s")
thisx->velocity.y += 1.0f;
if (Math_StepToF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y - 300.0f, thisx->velocity.y)) {
thisx->velocity.y = 0.0f;
thisx->posRot.pos.x = thisx->initPosRot.pos.x;
thisx->posRot.pos.y = thisx->initPosRot.pos.y - 100.0f;
thisx->posRot.pos.z = thisx->initPosRot.pos.z;
if (Player_InCsMode(globalCtx)) {
func_8002DF54(globalCtx, thisx, 7);
}
this->actionFunc = BgGndIceblock_Reset;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_80879D98.s")
void BgGndIceblock_Hole(BgGndIceblock* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_8087A0C8.s")
thisx->velocity.y += 1.0f;
if (Math_StepToF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y - 100.0f, thisx->velocity.y)) {
thisx->velocity.y = 0.0f;
if (Player_InCsMode(globalCtx)) {
func_8002DF54(globalCtx, thisx, 7);
}
this->actionFunc = BgGndIceblock_Idle;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_8087A184.s")
void BgGndIceblock_Slide(BgGndIceblock* this, GlobalContext* globalCtx) {
s32 atTarget;
Vec3f pos;
Vec3f velocity;
f32 spread;
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_8087A248.s")
Math_StepToF(&thisx->speedXZ, 10.0f, 0.5f);
atTarget = Math_StepToF(&thisx->posRot.pos.x, this->targetPos.x, thisx->speedXZ);
atTarget &= Math_StepToF(&thisx->posRot.pos.z, this->targetPos.z, thisx->speedXZ);
if (atTarget) {
thisx->speedXZ = 0.0f;
this->targetPos.x = thisx->posRot.pos.x;
this->targetPos.z = thisx->posRot.pos.z;
Audio_PlayActorSound2(thisx, NA_SE_EV_BLOCK_BOUND);
switch (BgGndIceblock_NextAction(this)) {
case GNDICE_IDLE:
this->actionFunc = BgGndIceblock_Idle;
func_8002DF54(globalCtx, thisx, 7);
break;
case GNDICE_FALL:
this->actionFunc = BgGndIceblock_Fall;
break;
case GNDICE_HOLE:
this->actionFunc = BgGndIceblock_Hole;
break;
}
} else if (thisx->speedXZ > 6.0f) {
spread = Rand_CenteredFloat(120.0f);
velocity.x = -(1.5f + Rand_ZeroOne()) * Math_SinS(this->dyna.unk_158);
velocity.y = Rand_ZeroOne() + 1.0f;
velocity.z = -(1.5f + Rand_ZeroOne()) * Math_CosS(this->dyna.unk_158);
pos.x =
thisx->posRot.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) - (Math_CosS(this->dyna.unk_158) * spread);
pos.z =
thisx->posRot.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) + (Math_SinS(this->dyna.unk_158) * spread);
pos.y = thisx->posRot.pos.y;
func_8002829C(globalCtx, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15));
spread = Rand_CenteredFloat(120.0f);
pos.x =
thisx->posRot.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) + (Math_CosS(this->dyna.unk_158) * spread);
pos.z =
thisx->posRot.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) - (Math_SinS(this->dyna.unk_158) * spread);
func_8002829C(globalCtx, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15));
func_8002F974(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_8087A300.s")
void BgGndIceblock_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgGndIceblock* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/func_8087A39C.s")
this->actionFunc(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/BgGndIceblock_Update.s")
void BgGndIceblock_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgGndIceblock* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Iceblock/BgGndIceblock_Draw.s")
Gfx_DrawDListOpa(globalCtx, D_06004420);
}

View file

@ -11,7 +11,7 @@ typedef void (*BgGndIceblockActionFunc)(struct BgGndIceblock*, GlobalContext*);
typedef struct BgGndIceblock {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgGndIceblockActionFunc actionFunc;
/* 0x0168 */ Vec3f unk_168;
/* 0x0168 */ Vec3f targetPos;
} BgGndIceblock; // size = 0x0174
extern const ActorInit Bg_Gnd_Iceblock_InitVars;

View file

@ -1,7 +1,7 @@
/*
* File: z_bg_ice_objects.c
* Overlay: ovl_Bg_Ice_Objects
* Description: Movable Ice Block.
* Description: Pushable ice block (Ice Cavern)
*/
#include "z_bg_ice_objects.h"
@ -15,10 +15,18 @@ void BgIceObjects_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgIceObjects_Update(Actor* thisx, GlobalContext* globalCtx);
void BgIceObjects_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06000190;
extern UNK_TYPE D_060003F0;
void BgIceObjects_Idle(BgIceObjects* this, GlobalContext* globalCtx);
void BgIceObjects_Slide(BgIceObjects* this, GlobalContext* globalCtx);
void BgIceObjects_Reset(BgIceObjects* this, GlobalContext* globalCtx);
void BgIceObjects_Stuck(BgIceObjects* this, GlobalContext* globalCtx);
extern Gfx D_06000190[];
extern ColHeader D_060003F0;
static Color_RGBA8 sWhite = { 250, 250, 250, 255 };
static Color_RGBA8 sGray = { 180, 180, 180, 255 };
static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
/*
const ActorInit Bg_Ice_Objects_InitVars = {
ACTOR_BG_ICE_OBJECTS,
ACTORTYPE_PROP,
@ -30,23 +38,209 @@ const ActorInit Bg_Ice_Objects_InitVars = {
(ActorFunc)BgIceObjects_Update,
(ActorFunc)BgIceObjects_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/BgIceObjects_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/BgIceObjects_Destroy.s")
InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
void BgIceObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgIceObjects* this = THIS;
ColHeader* colHeader = NULL;
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&D_060003F0, &colHeader);
Math_Vec3f_Copy(&this->targetPos, &this->dyna.actor.initPosRot.pos);
this->actionFunc = BgIceObjects_Idle;
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
this->dyna.actor.params = 0;
}
void BgIceObjects_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgIceObjects* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static s16 sXStarts[] = {
-1060, -1200, -1240, -1387, -1580, -1680, -1780,
};
static s16 sZStarts[] = {
-580, -660, -780, -820, -860, -900, -1087,
};
static s16 sZStops[7][2] = {
{ -580, -1087 }, { -780, -1260 }, { -340, -820 }, { -260, -1260 }, { -340, -860 }, { -660, -1260 }, { -340, -740 },
};
static s16 sXStops[7][2] = {
{ -860, -1580 }, { -1240, -1780 }, { -860, -1680 }, { -860, -1680 },
{ -1387, -1680 }, { -860, -1200 }, { -860, -1800 },
};
/*
* Checks which of the eight possible x and z positions the block is at,
* defaulting to the maximum x wall or minimum z wall. Each x and z position
* has only one possible wall or pit on each side of it.
*/
void BgIceObjects_SetNextTarget(BgIceObjects* this, GlobalContext* globalCtx) {
s16 x16;
s16 z16 = 0; // needed to match
s32 i;
if ((this->dyna.unk_158 == 0) || (this->dyna.unk_158 == -0x8000)) {
x16 = this->dyna.actor.posRot.pos.x;
for (i = 0; i < 7; i++) {
if (x16 == sXStarts[i]) {
z16 = (this->dyna.unk_158 == 0) ? sZStops[i][0] : sZStops[i][1];
this->targetPos.z = z16;
return;
}
}
this->targetPos.z = (this->dyna.unk_158 == 0) ? -340 : -1260;
} else {
z16 = this->dyna.actor.posRot.pos.z;
for (i = 0; i < 7; i++) {
if (z16 == sZStarts[i]) {
x16 = (this->dyna.unk_158 == 0x4000) ? sXStops[i][0] : sXStops[i][1];
this->targetPos.x = x16;
return;
}
}
this->targetPos.x = (this->dyna.unk_158 == 0x4000) ? -860 : -1780;
}
}
/*
* Checks if the block has fallen into any of the pits.
*/
void BgIceObjects_CheckPits(BgIceObjects* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if ((thisx->velocity.y > 0.0f) || ((thisx->posRot.pos.x <= -1660.0f) && (thisx->posRot.pos.z <= -1060.0f)) ||
((thisx->posRot.pos.x <= -1580.0f) && (thisx->posRot.pos.z >= -420.0f)) ||
((thisx->posRot.pos.x >= -980.0f) && (thisx->posRot.pos.z <= -1180.0f)) ||
((thisx->posRot.pos.x >= -860.0f) && (thisx->posRot.pos.z >= -700.0f))) {
thisx->velocity.y += 1.0f;
if (Math_StepToF(&thisx->posRot.pos.y, -300.0f, thisx->velocity.y)) {
thisx->velocity.y = 0.0f;
thisx->posRot.pos.x = thisx->initPosRot.pos.x;
thisx->posRot.pos.y = thisx->initPosRot.pos.y - 60.0f;
thisx->posRot.pos.z = thisx->initPosRot.pos.z;
if (thisx->params != 0) {
func_8002DF54(globalCtx, thisx, 7);
}
this->actionFunc = BgIceObjects_Reset;
}
}
}
void BgIceObjects_Idle(BgIceObjects* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Actor* thisx = &this->dyna.actor;
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
if ((this->dyna.unk_150 > 0.0f) && !Player_InCsMode(globalCtx)) {
BgIceObjects_SetNextTarget(this, globalCtx);
if (func_8002DBB0(thisx, &this->targetPos) > 1.0f) {
thisx->flags |= 0x10;
func_8002DF54(globalCtx, thisx, 8);
thisx->params = 1;
this->actionFunc = BgIceObjects_Slide;
}
}
this->dyna.unk_150 = 0.0f;
}
if (thisx->velocity.y > 0.0f) {
BgIceObjects_CheckPits(this, globalCtx);
}
}
void BgIceObjects_Slide(BgIceObjects* this, GlobalContext* globalCtx) {
s32 atTarget;
Vec3f pos;
Vec3f velocity;
f32 spread;
Actor* thisx = &this->dyna.actor;
Math_StepToF(&thisx->speedXZ, 10.0f, 0.5f);
atTarget = Math_StepToF(&thisx->posRot.pos.x, this->targetPos.x, thisx->speedXZ);
atTarget &= Math_StepToF(&thisx->posRot.pos.z, this->targetPos.z, thisx->speedXZ);
if (atTarget) {
thisx->speedXZ = 0.0f;
this->targetPos.x = thisx->posRot.pos.x;
this->targetPos.z = thisx->posRot.pos.z;
if (thisx->velocity.y <= 0.0f) {
thisx->flags &= ~0x10;
}
thisx->params = 0;
func_8002DF54(globalCtx, thisx, 7);
Audio_PlayActorSound2(thisx, NA_SE_EV_BLOCK_BOUND);
if ((fabsf(thisx->posRot.pos.x + 1387.0f) < 1.0f) && (fabsf(thisx->posRot.pos.z + 260.0f) < 1.0f)) {
this->actionFunc = BgIceObjects_Stuck;
} else {
this->actionFunc = BgIceObjects_Idle;
}
} else if ((thisx->speedXZ > 6.0f) && (thisx->posRot.pos.y >= 0.0f)) {
spread = Rand_CenteredFloat(120.0f);
velocity.x = -(1.5f + Rand_ZeroOne()) * Math_SinS(this->dyna.unk_158);
velocity.y = Rand_ZeroOne() + 1.0f;
velocity.z = -(1.5f + Rand_ZeroOne()) * Math_CosS(this->dyna.unk_158);
pos.x =
thisx->posRot.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) - (Math_CosS(this->dyna.unk_158) * spread);
pos.z =
thisx->posRot.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) + (Math_SinS(this->dyna.unk_158) * spread);
pos.y = thisx->posRot.pos.y;
func_8002829C(globalCtx, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15));
spread = Rand_CenteredFloat(120.0f);
pos.x =
thisx->posRot.pos.x - (60.0f * Math_SinS(this->dyna.unk_158)) + (Math_CosS(this->dyna.unk_158) * spread);
pos.z =
thisx->posRot.pos.z - (60.0f * Math_CosS(this->dyna.unk_158)) - (Math_SinS(this->dyna.unk_158) * spread);
func_8002829C(globalCtx, &pos, &velocity, &sZeroVec, &sWhite, &sGray, 250, Rand_S16Offset(40, 15));
func_8002F974(thisx, NA_SE_PL_SLIP_ICE_LEVEL - SFX_FLAG);
}
BgIceObjects_CheckPits(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_8088F8C8.s")
void BgIceObjects_Reset(BgIceObjects* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_8088FD48.s")
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
this->dyna.unk_150 = 0.0f;
}
if (Math_StepToF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y, 1.0f)) {
thisx->flags &= ~0x10;
Math_Vec3f_Copy(&this->targetPos, &thisx->initPosRot.pos);
this->actionFunc = BgIceObjects_Idle;
thisx->speedXZ = 0.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_8088FED0.s")
void BgIceObjects_Stuck(BgIceObjects* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_8088FFD0.s")
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
this->dyna.unk_150 = 0.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_80890360.s")
void BgIceObjects_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgIceObjects* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/func_808903FC.s")
this->actionFunc(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/BgIceObjects_Update.s")
void BgIceObjects_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgIceObjects* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ice_Objects/BgIceObjects_Draw.s")
Gfx_DrawDListOpa(globalCtx, D_06000190);
}

View file

@ -6,9 +6,12 @@
struct BgIceObjects;
typedef void (*BgIceObjectsActionFunc) (struct BgIceObjects*, GlobalContext*);
typedef struct BgIceObjects {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgIceObjectsActionFunc actionFunc;
/* 0x0168 */ Vec3f targetPos;
} BgIceObjects; // size = 0x0174
extern const ActorInit Bg_Ice_Objects_InitVars;