1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Obj_Ice_Poly (#473)

* 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

* Ice ice baby

* slight cleanup

* format

* Update src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
petrie911 2020-11-23 21:23:53 -06:00 committed by GitHub
parent 3aa76152c5
commit 013e2d90d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 166 additions and 686 deletions

View File

@ -1,24 +0,0 @@
glabel ObjIcePoly_Destroy
/* 001C0 80B94420 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001C4 80B94424 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001C8 80B94428 AFA5001C */ sw $a1, 0x001C($sp)
/* 001CC 80B9442C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 001D0 80B94430 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 001D4 80B94434 0440000A */ bltz $v0, .L80B94460
/* 001D8 80B94438 28410003 */ slti $at, $v0, 0x0003
/* 001DC 80B9443C 10200008 */ beq $at, $zero, .L80B94460
/* 001E0 80B94440 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 001E4 80B94444 24C50154 */ addiu $a1, $a2, 0x0154 ## $a1 = 00000154
/* 001E8 80B94448 0C0170EB */ jal Collider_DestroyCylinder
/* 001EC 80B9444C AFA60018 */ sw $a2, 0x0018($sp)
/* 001F0 80B94450 8FA60018 */ lw $a2, 0x0018($sp)
/* 001F4 80B94454 8FA4001C */ lw $a0, 0x001C($sp)
/* 001F8 80B94458 0C0170EB */ jal Collider_DestroyCylinder
/* 001FC 80B9445C 24C501A0 */ addiu $a1, $a2, 0x01A0 ## $a1 = 000001A0
.L80B94460:
/* 00200 80B94460 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00204 80B94464 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00208 80B94468 03E00008 */ jr $ra
/* 0020C 80B9446C 00000000 */ nop

View File

@ -1,116 +0,0 @@
.rdata
glabel D_80B94BB0
.asciz "../z_obj_ice_poly.c"
.balign 4
glabel D_80B94BC4
.asciz "../z_obj_ice_poly.c"
.balign 4
glabel D_80B94BD8
.asciz "../z_obj_ice_poly.c"
.balign 4
.text
glabel ObjIcePoly_Draw
/* 0071C 80B9497C 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 00720 80B94980 AFB10038 */ sw $s1, 0x0038($sp)
/* 00724 80B94984 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00728 80B94988 AFBF003C */ sw $ra, 0x003C($sp)
/* 0072C 80B9498C AFB00034 */ sw $s0, 0x0034($sp)
/* 00730 80B94990 AFA40070 */ sw $a0, 0x0070($sp)
/* 00734 80B94994 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00738 80B94998 3C0680B9 */ lui $a2, %hi(D_80B94BB0) ## $a2 = 80B90000
/* 0073C 80B9499C 24C64BB0 */ addiu $a2, $a2, %lo(D_80B94BB0) ## $a2 = 80B94BB0
/* 00740 80B949A0 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFE4
/* 00744 80B949A4 240701A5 */ addiu $a3, $zero, 0x01A5 ## $a3 = 000001A5
/* 00748 80B949A8 0C031AB1 */ jal Graph_OpenDisps
/* 0074C 80B949AC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00750 80B949B0 0C024F61 */ jal func_80093D84
/* 00754 80B949B4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00758 80B949B8 8FA40070 */ lw $a0, 0x0070($sp)
/* 0075C 80B949BC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00760 80B949C0 0C00BB60 */ jal func_8002ED80
/* 00764 80B949C4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00768 80B949C8 24040500 */ addiu $a0, $zero, 0x0500 ## $a0 = 00000500
/* 0076C 80B949CC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00770 80B949D0 2406FB00 */ addiu $a2, $zero, 0xFB00 ## $a2 = FFFFFB00
/* 00774 80B949D4 0C034421 */ jal Matrix_RotateRPY
/* 00778 80B949D8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0077C 80B949DC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00780 80B949E0 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 00784 80B949E4 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 00788 80B949E8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 0078C 80B949EC AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 00790 80B949F0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00794 80B949F4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00798 80B949F8 3C0580B9 */ lui $a1, %hi(D_80B94BC4) ## $a1 = 80B90000
/* 0079C 80B949FC 24A54BC4 */ addiu $a1, $a1, %lo(D_80B94BC4) ## $a1 = 80B94BC4
/* 007A0 80B94A00 240601AC */ addiu $a2, $zero, 0x01AC ## $a2 = 000001AC
/* 007A4 80B94A04 0C0346A2 */ jal Matrix_NewMtx
/* 007A8 80B94A08 AFA20050 */ sw $v0, 0x0050($sp)
/* 007AC 80B94A0C 8FA30050 */ lw $v1, 0x0050($sp)
/* 007B0 80B94A10 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 007B4 80B94A14 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 007B8 80B94A18 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 007BC 80B94A1C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 007C0 80B94A20 3C030001 */ lui $v1, 0x0001 ## $v1 = 00010000
/* 007C4 80B94A24 00711821 */ addu $v1, $v1, $s1
/* 007C8 80B94A28 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 007CC 80B94A2C AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 007D0 80B94A30 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 007D4 80B94A34 8C631DE4 */ lw $v1, 0x1DE4($v1) ## 00011DE4
/* 007D8 80B94A38 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 007DC 80B94A3C 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
/* 007E0 80B94A40 00036040 */ sll $t4, $v1, 1
/* 007E4 80B94A44 318D00FF */ andi $t5, $t4, 0x00FF ## $t5 = 00000000
/* 007E8 80B94A48 240A0010 */ addiu $t2, $zero, 0x0010 ## $t2 = 00000010
/* 007EC 80B94A4C 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 007F0 80B94A50 240E0040 */ addiu $t6, $zero, 0x0040 ## $t6 = 00000040
/* 007F4 80B94A54 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 007F8 80B94A58 AFAF0028 */ sw $t7, 0x0028($sp)
/* 007FC 80B94A5C AFAE0024 */ sw $t6, 0x0024($sp)
/* 00800 80B94A60 AFAB0018 */ sw $t3, 0x0018($sp)
/* 00804 80B94A64 AFAA0014 */ sw $t2, 0x0014($sp)
/* 00808 80B94A68 AFAD0020 */ sw $t5, 0x0020($sp)
/* 0080C 80B94A6C AFA90010 */ sw $t1, 0x0010($sp)
/* 00810 80B94A70 AFA0001C */ sw $zero, 0x001C($sp)
/* 00814 80B94A74 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00818 80B94A78 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0081C 80B94A7C AFA2004C */ sw $v0, 0x004C($sp)
/* 00820 80B94A80 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00824 80B94A84 306700FF */ andi $a3, $v1, 0x00FF ## $a3 = 00000000
/* 00828 80B94A88 8FA8004C */ lw $t0, 0x004C($sp)
/* 0082C 80B94A8C 3C19FB00 */ lui $t9, 0xFB00 ## $t9 = FB000000
/* 00830 80B94A90 3C010032 */ lui $at, 0x0032 ## $at = 00320000
/* 00834 80B94A94 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 00838 80B94A98 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0083C 80B94A9C 34216400 */ ori $at, $at, 0x6400 ## $at = 00326400
/* 00840 80B94AA0 3C0F0403 */ lui $t7, 0x0403 ## $t7 = 04030000
/* 00844 80B94AA4 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00848 80B94AA8 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 0084C 80B94AAC AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00850 80B94AB0 8FA90070 */ lw $t1, 0x0070($sp)
/* 00854 80B94AB4 25EF3EE0 */ addiu $t7, $t7, 0x3EE0 ## $t7 = 04033EE0
/* 00858 80B94AB8 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
/* 0085C 80B94ABC 912B0150 */ lbu $t3, 0x0150($t1) ## 00000150
/* 00860 80B94AC0 3C0680B9 */ lui $a2, %hi(D_80B94BD8) ## $a2 = 80B90000
/* 00864 80B94AC4 24C64BD8 */ addiu $a2, $a2, %lo(D_80B94BD8) ## $a2 = 80B94BD8
/* 00868 80B94AC8 01616025 */ or $t4, $t3, $at ## $t4 = 00326400
/* 0086C 80B94ACC AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00870 80B94AD0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00874 80B94AD4 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFE4
/* 00878 80B94AD8 240701BC */ addiu $a3, $zero, 0x01BC ## $a3 = 000001BC
/* 0087C 80B94ADC 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 00880 80B94AE0 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 00884 80B94AE4 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00888 80B94AE8 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 0088C 80B94AEC 0C031AD5 */ jal Graph_CloseDisps
/* 00890 80B94AF0 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00894 80B94AF4 8FBF003C */ lw $ra, 0x003C($sp)
/* 00898 80B94AF8 8FB00034 */ lw $s0, 0x0034($sp)
/* 0089C 80B94AFC 8FB10038 */ lw $s1, 0x0038($sp)
/* 008A0 80B94B00 03E00008 */ jr $ra
/* 008A4 80B94B04 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
/* 008A8 80B94B08 00000000 */ nop
/* 008AC 80B94B0C 00000000 */ nop

View File

@ -1,125 +0,0 @@
glabel ObjIcePoly_Init
/* 00000 80B94260 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 80B94264 AFBF001C */ sw $ra, 0x001C($sp)
/* 00008 80B94268 AFB00018 */ sw $s0, 0x0018($sp)
/* 0000C 80B9426C AFA50034 */ sw $a1, 0x0034($sp)
/* 00010 80B94270 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00014 80B94274 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80B94278 305800FF */ andi $t8, $v0, 0x00FF ## $t8 = 00000000
/* 0001C 80B9427C A498001C */ sh $t8, 0x001C($a0) ## 0000001C
/* 00020 80B94280 00027A03 */ sra $t7, $v0, 8
/* 00024 80B94284 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00028 80B94288 A08F0151 */ sb $t7, 0x0151($a0) ## 00000151
/* 0002C 80B9428C 04400003 */ bltz $v0, .L80B9429C
/* 00030 80B94290 28410003 */ slti $at, $v0, 0x0003
/* 00034 80B94294 14200005 */ bne $at, $zero, .L80B942AC
/* 00038 80B94298 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B9429C:
/* 0003C 80B9429C 0C00B55C */ jal Actor_Kill
/* 00040 80B942A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00044 80B942A4 1000005A */ beq $zero, $zero, .L80B94410
/* 00048 80B942A8 8FBF001C */ lw $ra, 0x001C($sp)
.L80B942AC:
/* 0004C 80B942AC 0002C880 */ sll $t9, $v0, 2
/* 00050 80B942B0 3C0580B9 */ lui $a1, %hi(D_80B94B88) ## $a1 = 80B90000
/* 00054 80B942B4 00B92821 */ addu $a1, $a1, $t9
/* 00058 80B942B8 0C00B58B */ jal Actor_SetScale
/* 0005C 80B942BC 8CA54B88 */ lw $a1, %lo(D_80B94B88)($a1)
/* 00060 80B942C0 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00064 80B942C4 3C0A80B9 */ lui $t2, %hi(D_80B94B94) ## $t2 = 80B90000
/* 00068 80B942C8 C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 0006C 80B942CC 00084840 */ sll $t1, $t0, 1
/* 00070 80B942D0 01495021 */ addu $t2, $t2, $t1
/* 00074 80B942D4 854A4B94 */ lh $t2, %lo(D_80B94B94)($t2)
/* 00078 80B942D8 26050154 */ addiu $a1, $s0, 0x0154 ## $a1 = 00000154
/* 0007C 80B942DC 448A2000 */ mtc1 $t2, $f4 ## $f4 = -0.00
/* 00080 80B942E0 00000000 */ nop
/* 00084 80B942E4 468021A0 */ cvt.s.w $f6, $f4
/* 00088 80B942E8 46083280 */ add.s $f10, $f6, $f8
/* 0008C 80B942EC E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028
/* 00090 80B942F0 AFA50024 */ sw $a1, 0x0024($sp)
/* 00094 80B942F4 0C0170D9 */ jal Collider_InitCylinder
/* 00098 80B942F8 8FA40034 */ lw $a0, 0x0034($sp)
/* 0009C 80B942FC 3C0780B9 */ lui $a3, %hi(D_80B94B30) ## $a3 = 80B90000
/* 000A0 80B94300 24E74B30 */ addiu $a3, $a3, %lo(D_80B94B30) ## $a3 = 80B94B30
/* 000A4 80B94304 8FA40034 */ lw $a0, 0x0034($sp)
/* 000A8 80B94308 8FA50024 */ lw $a1, 0x0024($sp)
/* 000AC 80B9430C 0C01712B */ jal Collider_SetCylinder
/* 000B0 80B94310 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000B4 80B94314 260501A0 */ addiu $a1, $s0, 0x01A0 ## $a1 = 000001A0
/* 000B8 80B94318 AFA50028 */ sw $a1, 0x0028($sp)
/* 000BC 80B9431C 0C0170D9 */ jal Collider_InitCylinder
/* 000C0 80B94320 8FA40034 */ lw $a0, 0x0034($sp)
/* 000C4 80B94324 3C0780B9 */ lui $a3, %hi(D_80B94B5C) ## $a3 = 80B90000
/* 000C8 80B94328 24E74B5C */ addiu $a3, $a3, %lo(D_80B94B5C) ## $a3 = 80B94B5C
/* 000CC 80B9432C 8FA40034 */ lw $a0, 0x0034($sp)
/* 000D0 80B94330 8FA50028 */ lw $a1, 0x0028($sp)
/* 000D4 80B94334 0C01712B */ jal Collider_SetCylinder
/* 000D8 80B94338 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000DC 80B9433C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000E0 80B94340 0C0189B7 */ jal Collider_CylinderUpdate
/* 000E4 80B94344 8FA50024 */ lw $a1, 0x0024($sp)
/* 000E8 80B94348 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000EC 80B9434C 0C0189B7 */ jal Collider_CylinderUpdate
/* 000F0 80B94350 8FA50028 */ lw $a1, 0x0028($sp)
/* 000F4 80B94354 860B0194 */ lh $t3, 0x0194($s0) ## 00000194
/* 000F8 80B94358 C6040050 */ lwc1 $f4, 0x0050($s0) ## 00000050
/* 000FC 80B9435C 860E0196 */ lh $t6, 0x0196($s0) ## 00000196
/* 00100 80B94360 448B8000 */ mtc1 $t3, $f16 ## $f16 = 0.00
/* 00104 80B94364 861901E0 */ lh $t9, 0x01E0($s0) ## 000001E0
/* 00108 80B94368 448E5000 */ mtc1 $t6, $f10 ## $f10 = 0.00
/* 0010C 80B9436C 468084A0 */ cvt.s.w $f18, $f16
/* 00110 80B94370 860A01E2 */ lh $t2, 0x01E2($s0) ## 000001E2
/* 00114 80B94374 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00118 80B94378 240200FF */ addiu $v0, $zero, 0x00FF ## $v0 = 000000FF
/* 0011C 80B9437C A20200AE */ sb $v0, 0x00AE($s0) ## 000000AE
/* 00120 80B94380 46805420 */ cvt.s.w $f16, $f10
/* 00124 80B94384 46049182 */ mul.s $f6, $f18, $f4
/* 00128 80B94388 C6120054 */ lwc1 $f18, 0x0054($s0) ## 00000054
/* 0012C 80B9438C A2020150 */ sb $v0, 0x0150($s0) ## 00000150
/* 00130 80B94390 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00134 80B94394 46128102 */ mul.s $f4, $f16, $f18
/* 00138 80B94398 C6100050 */ lwc1 $f16, 0x0050($s0) ## 00000050
/* 0013C 80B9439C 4600320D */ trunc.w.s $f8, $f6
/* 00140 80B943A0 4600218D */ trunc.w.s $f6, $f4
/* 00144 80B943A4 440D4000 */ mfc1 $t5, $f8
/* 00148 80B943A8 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
/* 0014C 80B943AC 44183000 */ mfc1 $t8, $f6
/* 00150 80B943B0 468042A0 */ cvt.s.w $f10, $f8
/* 00154 80B943B4 448A3000 */ mtc1 $t2, $f6 ## $f6 = 0.00
/* 00158 80B943B8 A60D0194 */ sh $t5, 0x0194($s0) ## 00000194
/* 0015C 80B943BC A6180196 */ sh $t8, 0x0196($s0) ## 00000196
/* 00160 80B943C0 46803220 */ cvt.s.w $f8, $f6
/* 00164 80B943C4 46105482 */ mul.s $f18, $f10, $f16
/* 00168 80B943C8 C60A0054 */ lwc1 $f10, 0x0054($s0) ## 00000054
/* 0016C 80B943CC 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
/* 00170 80B943D0 460A4402 */ mul.s $f16, $f8, $f10
/* 00174 80B943D4 4600910D */ trunc.w.s $f4, $f18
/* 00178 80B943D8 4600848D */ trunc.w.s $f18, $f16
/* 0017C 80B943DC 44092000 */ mfc1 $t1, $f4
/* 00180 80B943E0 C6040054 */ lwc1 $f4, 0x0054($s0) ## 00000054
/* 00184 80B943E4 440C9000 */ mfc1 $t4, $f18
/* 00188 80B943E8 46062202 */ mul.s $f8, $f4, $f6
/* 0018C 80B943EC A60901E0 */ sh $t1, 0x01E0($s0) ## 000001E0
/* 00190 80B943F0 A60C01E2 */ sh $t4, 0x01E2($s0) ## 000001E2
/* 00194 80B943F4 44054000 */ mfc1 $a1, $f8
/* 00198 80B943F8 0C00B56E */ jal Actor_SetHeight
/* 0019C 80B943FC 00000000 */ nop
/* 001A0 80B94400 3C0D80B9 */ lui $t5, %hi(func_80B94470) ## $t5 = 80B90000
/* 001A4 80B94404 25AD4470 */ addiu $t5, $t5, %lo(func_80B94470) ## $t5 = 80B94470
/* 001A8 80B94408 AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
/* 001AC 80B9440C 8FBF001C */ lw $ra, 0x001C($sp)
.L80B94410:
/* 001B0 80B94410 8FB00018 */ lw $s0, 0x0018($sp)
/* 001B4 80B94414 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 001B8 80B94418 03E00008 */ jr $ra
/* 001BC 80B9441C 00000000 */ nop

View File

@ -1,10 +0,0 @@
glabel ObjIcePoly_Update
/* 006F8 80B94958 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006FC 80B9495C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00700 80B94960 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 00704 80B94964 0320F809 */ jalr $ra, $t9
/* 00708 80B94968 00000000 */ nop
/* 0070C 80B9496C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00710 80B94970 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00714 80B94974 03E00008 */ jr $ra
/* 00718 80B94978 00000000 */ nop

View File

@ -1,158 +0,0 @@
glabel func_80B94470
/* 00210 80B94470 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 00214 80B94474 AFBF002C */ sw $ra, 0x002C($sp)
/* 00218 80B94478 AFB10028 */ sw $s1, 0x0028($sp)
/* 0021C 80B9447C AFB00024 */ sw $s0, 0x0024($sp)
/* 00220 80B94480 908E0165 */ lbu $t6, 0x0165($a0) ## 00000165
/* 00224 80B94484 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00228 80B94488 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0022C 80B9448C 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000
/* 00230 80B94490 51E00012 */ beql $t7, $zero, .L80B944DC
/* 00234 80B94494 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 00238 80B94498 8C980190 */ lw $t8, 0x0190($a0) ## 00000190
/* 0023C 80B9449C 8489008A */ lh $t1, 0x008A($a0) ## 0000008A
/* 00240 80B944A0 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 00244 80B944A4 93190005 */ lbu $t9, 0x0005($t8) ## 00000005
/* 00248 80B944A8 A4890046 */ sh $t1, 0x0046($a0) ## 00000046
/* 0024C 80B944AC 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 00250 80B944B0 00194023 */ subu $t0, $zero, $t9
/* 00254 80B944B4 A4880152 */ sh $t0, 0x0152($a0) ## 00000152
/* 00258 80B944B8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0025C 80B944BC 24051400 */ addiu $a1, $zero, 0x1400 ## $a1 = 00001400
/* 00260 80B944C0 0C02003E */ jal func_800800F8
/* 00264 80B944C4 AFA00010 */ sw $zero, 0x0010($sp)
/* 00268 80B944C8 3C0A80B9 */ lui $t2, %hi(func_80B946A0) ## $t2 = 80B90000
/* 0026C 80B944CC 254A46A0 */ addiu $t2, $t2, %lo(func_80B946A0) ## $t2 = 80B946A0
/* 00270 80B944D0 1000001D */ beq $zero, $zero, .L80B94548
/* 00274 80B944D4 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C
/* 00278 80B944D8 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
.L80B944DC:
/* 0027C 80B944DC 240B0028 */ addiu $t3, $zero, 0x0028 ## $t3 = 00000028
/* 00280 80B944E0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00284 80B944E4 10400016 */ beq $v0, $zero, .L80B94540
/* 00288 80B944E8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0028C 80B944EC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00290 80B944F0 A44B0110 */ sh $t3, 0x0110($v0) ## 00000110
/* 00294 80B944F4 02212821 */ addu $a1, $s1, $at
/* 00298 80B944F8 26060154 */ addiu $a2, $s0, 0x0154 ## $a2 = 00000154
/* 0029C 80B944FC AFA60034 */ sw $a2, 0x0034($sp)
/* 002A0 80B94500 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 002A4 80B94504 AFA50038 */ sw $a1, 0x0038($sp)
/* 002A8 80B94508 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 002AC 80B9450C 8FA50038 */ lw $a1, 0x0038($sp)
/* 002B0 80B94510 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 002B4 80B94514 8FA60034 */ lw $a2, 0x0034($sp)
/* 002B8 80B94518 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 002BC 80B9451C 8FA50038 */ lw $a1, 0x0038($sp)
/* 002C0 80B94520 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 002C4 80B94524 8FA60034 */ lw $a2, 0x0034($sp)
/* 002C8 80B94528 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 002CC 80B9452C 8FA50038 */ lw $a1, 0x0038($sp)
/* 002D0 80B94530 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 002D4 80B94534 260601A0 */ addiu $a2, $s0, 0x01A0 ## $a2 = 000001A0
/* 002D8 80B94538 10000004 */ beq $zero, $zero, .L80B9454C
/* 002DC 80B9453C 2404000F */ addiu $a0, $zero, 0x000F ## $a0 = 0000000F
.L80B94540:
/* 002E0 80B94540 0C00B55C */ jal Actor_Kill
/* 002E4 80B94544 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B94548:
/* 002E8 80B94548 2404000F */ addiu $a0, $zero, 0x000F ## $a0 = 0000000F
.L80B9454C:
/* 002EC 80B9454C 0C01DF64 */ jal Math_Rand_S16Offset
/* 002F0 80B94550 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 002F4 80B94554 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002F8 80B94558 A7A20042 */ sh $v0, 0x0042($sp)
/* 002FC 80B9455C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00300 80B94560 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00304 80B94564 87AC0042 */ lh $t4, 0x0042($sp)
/* 00308 80B94568 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 0030C 80B9456C 4604003C */ c.lt.s $f0, $f4
/* 00310 80B94570 00000000 */ nop
/* 00314 80B94574 45000003 */ bc1f .L80B94584
/* 00318 80B94578 00000000 */ nop
/* 0031C 80B9457C 10000001 */ beq $zero, $zero, .L80B94584
/* 00320 80B94580 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80B94584:
/* 00324 80B94584 004C0019 */ multu $v0, $t4
/* 00328 80B94588 C60A0050 */ lwc1 $f10, 0x0050($s0) ## 00000050
/* 0032C 80B9458C C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
/* 00330 80B94590 2404000A */ addiu $a0, $zero, 0x000A ## $a0 = 0000000A
/* 00334 80B94594 2405005A */ addiu $a1, $zero, 0x005A ## $a1 = 0000005A
/* 00338 80B94598 00006812 */ mflo $t5
/* 0033C 80B9459C 448D3000 */ mtc1 $t5, $f6 ## $f6 = 0.00
/* 00340 80B945A0 00000000 */ nop
/* 00344 80B945A4 46803220 */ cvt.s.w $f8, $f6
/* 00348 80B945A8 460A4402 */ mul.s $f16, $f8, $f10
/* 0034C 80B945AC 46128100 */ add.s $f4, $f16, $f18
/* 00350 80B945B0 0C01DF64 */ jal Math_Rand_S16Offset
/* 00354 80B945B4 E7A40048 */ swc1 $f4, 0x0048($sp)
/* 00358 80B945B8 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00
/* 0035C 80B945BC C60A0054 */ lwc1 $f10, 0x0054($s0) ## 00000054
/* 00360 80B945C0 C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028
/* 00364 80B945C4 46803220 */ cvt.s.w $f8, $f6
/* 00368 80B945C8 2404000F */ addiu $a0, $zero, 0x000F ## $a0 = 0000000F
/* 0036C 80B945CC 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 00370 80B945D0 460A4402 */ mul.s $f16, $f8, $f10
/* 00374 80B945D4 46128100 */ add.s $f4, $f16, $f18
/* 00378 80B945D8 0C01DF64 */ jal Math_Rand_S16Offset
/* 0037C 80B945DC E7A4004C */ swc1 $f4, 0x004C($sp)
/* 00380 80B945E0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00384 80B945E4 A7A20042 */ sh $v0, 0x0042($sp)
/* 00388 80B945E8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 0038C 80B945EC 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 00390 80B945F0 3C0680B9 */ lui $a2, %hi(D_80B94BA4) ## $a2 = 80B90000
/* 00394 80B945F4 87AE0042 */ lh $t6, 0x0042($sp)
/* 00398 80B945F8 4606003C */ c.lt.s $f0, $f6
/* 0039C 80B945FC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 003A0 80B94600 24C64BA4 */ addiu $a2, $a2, %lo(D_80B94BA4) ## $a2 = 80B94BA4
/* 003A4 80B94604 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 003A8 80B94608 45000003 */ bc1f .L80B94618
/* 003AC 80B9460C 27A50048 */ addiu $a1, $sp, 0x0048 ## $a1 = FFFFFFF0
/* 003B0 80B94610 10000001 */ beq $zero, $zero, .L80B94618
/* 003B4 80B94614 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80B94618:
/* 003B8 80B94618 004E0019 */ multu $v0, $t6
/* 003BC 80B9461C C6100058 */ lwc1 $f16, 0x0058($s0) ## 00000058
/* 003C0 80B94620 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 003C4 80B94624 3C180001 */ lui $t8, 0x0001 ## $t8 = 00010000
/* 003C8 80B94628 0311C021 */ addu $t8, $t8, $s1
/* 003CC 80B9462C 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 003D0 80B94630 3C0880B9 */ lui $t0, %hi(D_80B94B9C) ## $t0 = 80B90000
/* 003D4 80B94634 3C0980B9 */ lui $t1, %hi(D_80B94BA0) ## $t1 = 80B90000
/* 003D8 80B94638 25294BA0 */ addiu $t1, $t1, %lo(D_80B94BA0) ## $t1 = 80B94BA0
/* 003DC 80B9463C 25084B9C */ addiu $t0, $t0, %lo(D_80B94B9C) ## $t0 = 80B94B9C
/* 003E0 80B94640 00007812 */ mflo $t7
/* 003E4 80B94644 448F4000 */ mtc1 $t7, $f8 ## $f8 = 0.00
/* 003E8 80B94648 00C03825 */ or $a3, $a2, $zero ## $a3 = 80B94BA4
/* 003EC 80B9464C 240A07D0 */ addiu $t2, $zero, 0x07D0 ## $t2 = 000007D0
/* 003F0 80B94650 468042A0 */ cvt.s.w $f10, $f8
/* 003F4 80B94654 240B0005 */ addiu $t3, $zero, 0x0005 ## $t3 = 00000005
/* 003F8 80B94658 46105482 */ mul.s $f18, $f10, $f16
/* 003FC 80B9465C 46049180 */ add.s $f6, $f18, $f4
/* 00400 80B94660 E7A60050 */ swc1 $f6, 0x0050($sp)
/* 00404 80B94664 8F181DE4 */ lw $t8, 0x1DE4($t8) ## 00011DE4
/* 00408 80B94668 0301001B */ divu $zero, $t8, $at
/* 0040C 80B9466C 0000C810 */ mfhi $t9
/* 00410 80B94670 57200007 */ bnel $t9, $zero, .L80B94690
/* 00414 80B94674 8FBF002C */ lw $ra, 0x002C($sp)
/* 00418 80B94678 AFA80010 */ sw $t0, 0x0010($sp)
/* 0041C 80B9467C AFA90014 */ sw $t1, 0x0014($sp)
/* 00420 80B94680 AFAA0018 */ sw $t2, 0x0018($sp)
/* 00424 80B94684 0C00A2EC */ jal EffectSsKiraKira_SpawnDispersed
/* 00428 80B94688 AFAB001C */ sw $t3, 0x001C($sp)
/* 0042C 80B9468C 8FBF002C */ lw $ra, 0x002C($sp)
.L80B94690:
/* 00430 80B94690 8FB00024 */ lw $s0, 0x0024($sp)
/* 00434 80B94694 8FB10028 */ lw $s1, 0x0028($sp)
/* 00438 80B94698 03E00008 */ jr $ra
/* 0043C 80B9469C 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000

View File

@ -1,196 +0,0 @@
.late_rodata
glabel D_80B94BEC
.float 0.0125
.text
glabel func_80B946A0
/* 00440 80B946A0 27BDFF60 */ addiu $sp, $sp, 0xFF60 ## $sp = FFFFFF60
/* 00444 80B946A4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00448 80B946A8 AFBF0064 */ sw $ra, 0x0064($sp)
/* 0044C 80B946AC AFBE0060 */ sw $s8, 0x0060($sp)
/* 00450 80B946B0 AFB7005C */ sw $s7, 0x005C($sp)
/* 00454 80B946B4 AFB60058 */ sw $s6, 0x0058($sp)
/* 00458 80B946B8 AFB50054 */ sw $s5, 0x0054($sp)
/* 0045C 80B946BC AFB40050 */ sw $s4, 0x0050($sp)
/* 00460 80B946C0 AFB3004C */ sw $s3, 0x004C($sp)
/* 00464 80B946C4 AFB20048 */ sw $s2, 0x0048($sp)
/* 00468 80B946C8 AFB10044 */ sw $s1, 0x0044($sp)
/* 0046C 80B946CC AFB00040 */ sw $s0, 0x0040($sp)
/* 00470 80B946D0 F7B80038 */ sdc1 $f24, 0x0038($sp)
/* 00474 80B946D4 F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 00478 80B946D8 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 0047C 80B946DC E7A00094 */ swc1 $f0, 0x0094($sp)
/* 00480 80B946E0 C4840054 */ lwc1 $f4, 0x0054($a0) ## 00000054
/* 00484 80B946E4 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00488 80B946E8 4481C000 */ mtc1 $at, $f24 ## $f24 = 20.00
/* 0048C 80B946EC 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00490 80B946F0 E7A0009C */ swc1 $f0, 0x009C($sp)
/* 00494 80B946F4 E7A00088 */ swc1 $f0, 0x0088($sp)
/* 00498 80B946F8 E7A40098 */ swc1 $f4, 0x0098($sp)
/* 0049C 80B946FC C4860054 */ lwc1 $f6, 0x0054($a0) ## 00000054
/* 004A0 80B94700 4481B000 */ mtc1 $at, $f22 ## $f22 = 50.00
/* 004A4 80B94704 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 004A8 80B94708 3C1780B9 */ lui $s7, %hi(D_80B94B9C) ## $s7 = 80B90000
/* 004AC 80B9470C 3C1E80B9 */ lui $s8, %hi(D_80B94BA0) ## $s8 = 80B90000
/* 004B0 80B94710 4481A000 */ mtc1 $at, $f20 ## $f20 = 0.50
/* 004B4 80B94714 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004B8 80B94718 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 004BC 80B9471C 27DE4BA0 */ addiu $s8, $s8, %lo(D_80B94BA0) ## $s8 = 80B94BA0
/* 004C0 80B94720 26F74B9C */ addiu $s7, $s7, %lo(D_80B94B9C) ## $s7 = 80B94B9C
/* 004C4 80B94724 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 004C8 80B94728 27B4007C */ addiu $s4, $sp, 0x007C ## $s4 = FFFFFFDC
/* 004CC 80B9472C 27B50088 */ addiu $s5, $sp, 0x0088 ## $s5 = FFFFFFE8
/* 004D0 80B94730 27B60094 */ addiu $s6, $sp, 0x0094 ## $s6 = FFFFFFF4
/* 004D4 80B94734 E7A00090 */ swc1 $f0, 0x0090($sp)
/* 004D8 80B94738 E7A6008C */ swc1 $f6, 0x008C($sp)
/* 004DC 80B9473C 24040014 */ addiu $a0, $zero, 0x0014 ## $a0 = 00000014
.L80B94740:
/* 004E0 80B94740 0C01DF64 */ jal Math_Rand_S16Offset
/* 004E4 80B94744 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 004E8 80B94748 00028C00 */ sll $s1, $v0, 16
/* 004EC 80B9474C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 004F0 80B94750 00118C03 */ sra $s1, $s1, 16
/* 004F4 80B94754 4614003C */ c.lt.s $f0, $f20
/* 004F8 80B94758 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 004FC 80B9475C 45000003 */ bc1f .L80B9476C
/* 00500 80B94760 00000000 */ nop
/* 00504 80B94764 10000001 */ beq $zero, $zero, .L80B9476C
/* 00508 80B94768 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80B9476C:
/* 0050C 80B9476C 00510019 */ multu $v0, $s1
/* 00510 80B94770 C6100050 */ lwc1 $f16, 0x0050($s0) ## 00000050
/* 00514 80B94774 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00518 80B94778 00007012 */ mflo $t6
/* 0051C 80B9477C 448E4000 */ mtc1 $t6, $f8 ## $f8 = 0.00
/* 00520 80B94780 00000000 */ nop
/* 00524 80B94784 468042A0 */ cvt.s.w $f10, $f8
/* 00528 80B94788 46105482 */ mul.s $f18, $f10, $f16
/* 0052C 80B9478C 46049180 */ add.s $f6, $f18, $f4
/* 00530 80B94790 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00534 80B94794 E7A6007C */ swc1 $f6, 0x007C($sp)
/* 00538 80B94798 C6080054 */ lwc1 $f8, 0x0054($s0) ## 00000054
/* 0053C 80B9479C C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028
/* 00540 80B947A0 24040014 */ addiu $a0, $zero, 0x0014 ## $a0 = 00000014
/* 00544 80B947A4 46080282 */ mul.s $f10, $f0, $f8
/* 00548 80B947A8 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 0054C 80B947AC 46165402 */ mul.s $f16, $f10, $f22
/* 00550 80B947B0 46128100 */ add.s $f4, $f16, $f18
/* 00554 80B947B4 0C01DF64 */ jal Math_Rand_S16Offset
/* 00558 80B947B8 E7A40080 */ swc1 $f4, 0x0080($sp)
/* 0055C 80B947BC 00028C00 */ sll $s1, $v0, 16
/* 00560 80B947C0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00564 80B947C4 00118C03 */ sra $s1, $s1, 16
/* 00568 80B947C8 4614003C */ c.lt.s $f0, $f20
/* 0056C 80B947CC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00570 80B947D0 45000003 */ bc1f .L80B947E0
/* 00574 80B947D4 00000000 */ nop
/* 00578 80B947D8 10000001 */ beq $zero, $zero, .L80B947E0
/* 0057C 80B947DC 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80B947E0:
/* 00580 80B947E0 00510019 */ multu $v0, $s1
/* 00584 80B947E4 C60A0050 */ lwc1 $f10, 0x0050($s0) ## 00000050
/* 00588 80B947E8 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 0058C 80B947EC 2404015E */ addiu $a0, $zero, 0x015E ## $a0 = 0000015E
/* 00590 80B947F0 24050064 */ addiu $a1, $zero, 0x0064 ## $a1 = 00000064
/* 00594 80B947F4 00007812 */ mflo $t7
/* 00598 80B947F8 448F3000 */ mtc1 $t7, $f6 ## $f6 = 0.00
/* 0059C 80B947FC 00000000 */ nop
/* 005A0 80B94800 46803220 */ cvt.s.w $f8, $f6
/* 005A4 80B94804 460A4402 */ mul.s $f16, $f8, $f10
/* 005A8 80B94808 46128100 */ add.s $f4, $f16, $f18
/* 005AC 80B9480C 0C01DF64 */ jal Math_Rand_S16Offset
/* 005B0 80B94810 E7A40084 */ swc1 $f4, 0x0084($sp)
/* 005B4 80B94814 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00
/* 005B8 80B94818 AFB70010 */ sw $s7, 0x0010($sp)
/* 005BC 80B9481C AFBE0014 */ sw $s8, 0x0014($sp)
/* 005C0 80B94820 46803220 */ cvt.s.w $f8, $f6
/* 005C4 80B94824 C6000050 */ lwc1 $f0, 0x0050($s0) ## 00000050
/* 005C8 80B94828 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 005CC 80B9482C 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFDC
/* 005D0 80B94830 02A03025 */ or $a2, $s5, $zero ## $a2 = FFFFFFE8
/* 005D4 80B94834 02C03825 */ or $a3, $s6, $zero ## $a3 = FFFFFFF4
/* 005D8 80B94838 46004282 */ mul.s $f10, $f8, $f0
/* 005DC 80B9483C 00000000 */ nop
/* 005E0 80B94840 46180482 */ mul.s $f18, $f0, $f24
/* 005E4 80B94844 4600540D */ trunc.w.s $f16, $f10
/* 005E8 80B94848 4600910D */ trunc.w.s $f4, $f18
/* 005EC 80B9484C 44198000 */ mfc1 $t9, $f16
/* 005F0 80B94850 44092000 */ mfc1 $t1, $f4
/* 005F4 80B94854 AFB90018 */ sw $t9, 0x0018($sp)
/* 005F8 80B94858 0C00A0A7 */ jal func_8002829C
/* 005FC 80B9485C AFA9001C */ sw $t1, 0x001C($sp)
/* 00600 80B94860 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 00604 80B94864 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00608 80B94868 5641FFB5 */ bnel $s2, $at, .L80B94740
/* 0060C 80B9486C 24040014 */ addiu $a0, $zero, 0x0014 ## $a0 = 00000014
/* 00610 80B94870 86020152 */ lh $v0, 0x0152($s0) ## 00000152
/* 00614 80B94874 04410012 */ bgez $v0, .L80B948C0
/* 00618 80B94878 00000000 */ nop
/* 0061C 80B9487C 8E030118 */ lw $v1, 0x0118($s0) ## 00000118
/* 00620 80B94880 240A0028 */ addiu $t2, $zero, 0x0028 ## $t2 = 00000028
/* 00624 80B94884 240D0028 */ addiu $t5, $zero, 0x0028 ## $t5 = 00000028
/* 00628 80B94888 10600003 */ beq $v1, $zero, .L80B94898
/* 0062C 80B9488C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00630 80B94890 A46A0110 */ sh $t2, 0x0110($v1) ## 00000110
/* 00634 80B94894 86020152 */ lh $v0, 0x0152($s0) ## 00000152
.L80B94898:
/* 00638 80B94898 244B0001 */ addiu $t3, $v0, 0x0001 ## $t3 = 00000001
/* 0063C 80B9489C A60B0152 */ sh $t3, 0x0152($s0) ## 00000152
/* 00640 80B948A0 860C0152 */ lh $t4, 0x0152($s0) ## 00000152
/* 00644 80B948A4 240528A2 */ addiu $a1, $zero, 0x28A2 ## $a1 = 000028A2
/* 00648 80B948A8 5580001D */ bnel $t4, $zero, .L80B94920
/* 0064C 80B948AC 8FBF0064 */ lw $ra, 0x0064($sp)
/* 00650 80B948B0 0C00BE0A */ jal Audio_PlayActorSound2
/* 00654 80B948B4 A60D0152 */ sh $t5, 0x0152($s0) ## 00000152
/* 00658 80B948B8 10000019 */ beq $zero, $zero, .L80B94920
/* 0065C 80B948BC 8FBF0064 */ lw $ra, 0x0064($sp)
.L80B948C0:
/* 00660 80B948C0 10400003 */ beq $v0, $zero, .L80B948D0
/* 00664 80B948C4 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00668 80B948C8 A60E0152 */ sh $t6, 0x0152($s0) ## 00000152
/* 0066C 80B948CC 86020152 */ lh $v0, 0x0152($s0) ## 00000152
.L80B948D0:
/* 00670 80B948D0 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00
/* 00674 80B948D4 3C0180B9 */ lui $at, %hi(D_80B94BEC) ## $at = 80B90000
/* 00678 80B948D8 C42A4BEC */ lwc1 $f10, %lo(D_80B94BEC)($at)
/* 0067C 80B948DC 46803220 */ cvt.s.w $f8, $f6
/* 00680 80B948E0 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 00684 80B948E4 3C0180B9 */ lui $at, %hi(D_80B94B88) ## $at = 80B90000
/* 00688 80B948E8 92190150 */ lbu $t9, 0x0150($s0) ## 00000150
/* 0068C 80B948EC 000FC080 */ sll $t8, $t7, 2
/* 00690 80B948F0 00380821 */ addu $at, $at, $t8
/* 00694 80B948F4 460A4402 */ mul.s $f16, $f8, $f10
/* 00698 80B948F8 C4244B88 */ lwc1 $f4, %lo(D_80B94B88)($at)
/* 0069C 80B948FC 2728FFFA */ addiu $t0, $t9, 0xFFFA ## $t0 = FFFFFFFA
/* 006A0 80B94900 A2080150 */ sb $t0, 0x0150($s0) ## 00000150
/* 006A4 80B94904 4610A480 */ add.s $f18, $f20, $f16
/* 006A8 80B94908 46122182 */ mul.s $f6, $f4, $f18
/* 006AC 80B9490C 14400003 */ bne $v0, $zero, .L80B9491C
/* 006B0 80B94910 E6060054 */ swc1 $f6, 0x0054($s0) ## 00000054
/* 006B4 80B94914 0C00B55C */ jal Actor_Kill
/* 006B8 80B94918 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B9491C:
/* 006BC 80B9491C 8FBF0064 */ lw $ra, 0x0064($sp)
.L80B94920:
/* 006C0 80B94920 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 006C4 80B94924 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 006C8 80B94928 D7B80038 */ ldc1 $f24, 0x0038($sp)
/* 006CC 80B9492C 8FB00040 */ lw $s0, 0x0040($sp)
/* 006D0 80B94930 8FB10044 */ lw $s1, 0x0044($sp)
/* 006D4 80B94934 8FB20048 */ lw $s2, 0x0048($sp)
/* 006D8 80B94938 8FB3004C */ lw $s3, 0x004C($sp)
/* 006DC 80B9493C 8FB40050 */ lw $s4, 0x0050($sp)
/* 006E0 80B94940 8FB50054 */ lw $s5, 0x0054($sp)
/* 006E4 80B94944 8FB60058 */ lw $s6, 0x0058($sp)
/* 006E8 80B94948 8FB7005C */ lw $s7, 0x005C($sp)
/* 006EC 80B9494C 8FBE0060 */ lw $s8, 0x0060($sp)
/* 006F0 80B94950 03E00008 */ jr $ra
/* 006F4 80B94954 27BD00A0 */ addiu $sp, $sp, 0x00A0 ## $sp = 00000000

View File

@ -1,32 +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 Obj_Ice_Poly_InitVars
.word 0x011E0600, 0x00000010, 0x00010000, 0x000001EC
.word ObjIcePoly_Init
.word ObjIcePoly_Destroy
.word ObjIcePoly_Update
.word ObjIcePoly_Draw
glabel D_80B94B30
.word 0x0A110939, 0x20010000, 0x00000000, 0xFFCFFFFF, 0x02000000, 0x00020800, 0x00000000, 0x19010100, 0x00320078, 0x00000000, 0x00000000
glabel D_80B94B5C
.word 0x0C000D00, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x4E01F7F6, 0x00000000, 0x00010000, 0x00320078, 0x00000000, 0x00000000
glabel D_80B94B88
.word 0x3F000000, 0x3F800000, 0x3FC00000
glabel D_80B94B94
.word 0xFFE70000, 0xFFEC0000
glabel D_80B94B9C
.word 0xFAFAFAFF
glabel D_80B94BA0
.word 0xB4B4B4FF
glabel D_80B94BA4
.word 0x00000000, 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_80B94BF0
.incbin "baserom/ovl_Obj_Ice_Poly", 0x990, 0x000000B0

3
spec
View File

@ -3453,8 +3453,7 @@ endseg
beginseg
name "ovl_Obj_Ice_Poly"
include "build/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o"
include "build/data/overlays/actors/z_obj_ice_poly.data.o"
include "build/data/overlays/actors/z_obj_ice_poly.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o"
endseg
beginseg

View File

@ -15,7 +15,11 @@ void ObjIcePoly_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjIcePoly_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjIcePoly_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void ObjIcePoly_Idle(ObjIcePoly* this, GlobalContext* globalCtx);
void ObjIcePoly_Melt(ObjIcePoly* this, GlobalContext* globalCtx);
extern Gfx* D_04033EE0[];
const ActorInit Obj_Ice_Poly_InitVars = {
ACTOR_OBJ_ICE_POLY,
ACTORTYPE_PROP,
@ -27,15 +31,156 @@ const ActorInit Obj_Ice_Poly_InitVars = {
(ActorFunc)ObjIcePoly_Update,
(ActorFunc)ObjIcePoly_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/ObjIcePoly_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/ObjIcePoly_Destroy.s")
static ColliderCylinderInit sCylinderInitIce = {
{ COLTYPE_UNK10, 0x11, 0x09, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0xFFCFFFFF, 0x02, 0x00 }, { 0x00020800, 0x00, 0x00 }, 0x19, 0x01, 0x01 },
{ 50, 120, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/func_80B94470.s")
static ColliderCylinderInit sCylinderInitHard = {
{ COLTYPE_UNK12, 0x00, 0x0D, 0x00, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x4E01F7F6, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
{ 50, 120, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/func_80B946A0.s")
static f32 sScale[] = { 0.5f, 1.0f, 1.5f };
static s16 sOffsetY[] = { -25, 0, -20 };
static Color_RGBA8 sColorWhite = { 250, 250, 250, 255 };
static Color_RGBA8 sColorGray = { 180, 180, 180, 255 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/ObjIcePoly_Update.s")
void ObjIcePoly_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjIcePoly* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Ice_Poly/ObjIcePoly_Draw.s")
this->unk_151 = (thisx->params >> 8) & 0xFF;
thisx->params &= 0xFF;
if (thisx->params < 0 || thisx->params >= 3) {
Actor_Kill(thisx);
return;
}
Actor_SetScale(thisx, sScale[thisx->params]);
thisx->posRot.pos.y = sOffsetY[thisx->params] + thisx->initPosRot.pos.y;
Collider_InitCylinder(globalCtx, &this->colliderIce);
Collider_SetCylinder(globalCtx, &this->colliderIce, thisx, &sCylinderInitIce);
Collider_InitCylinder(globalCtx, &this->colliderHard);
Collider_SetCylinder(globalCtx, &this->colliderHard, thisx, &sCylinderInitHard);
Collider_CylinderUpdate(thisx, &this->colliderIce);
Collider_CylinderUpdate(thisx, &this->colliderHard);
thisx->colChkInfo.mass = 0xFF;
this->alpha = 255;
this->colliderIce.dim.radius *= thisx->scale.x;
this->colliderIce.dim.height *= thisx->scale.y;
this->colliderHard.dim.radius *= thisx->scale.x;
this->colliderHard.dim.height *= thisx->scale.y;
Actor_SetHeight(thisx, thisx->scale.y * 30.0f);
this->actionFunc = ObjIcePoly_Idle;
}
void ObjIcePoly_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
ObjIcePoly* this = THIS;
if ((this->actor.params >= 0) && (this->actor.params < 3)) {
Collider_DestroyCylinder(globalCtx, &this->colliderIce);
Collider_DestroyCylinder(globalCtx, &this->colliderHard);
}
}
void ObjIcePoly_Idle(ObjIcePoly* this, GlobalContext* globalCtx) {
static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
s32 pad;
Vec3f pos;
if (this->colliderIce.base.acFlags & 2) {
this->meltTimer = -this->colliderIce.body.acHitItem->toucher.damage;
this->actor.posRot2.rot.y = this->actor.yawTowardsLink;
func_800800F8(globalCtx, 0x1400, 40, &this->actor, 0);
this->actionFunc = ObjIcePoly_Melt;
} else if (this->actor.parent != NULL) {
this->actor.parent->freezeTimer = 40;
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->colliderIce.base);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colliderIce.base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliderIce.base);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colliderHard.base);
} else {
Actor_Kill(&this->actor);
}
pos.x = this->actor.posRot.pos.x +
this->actor.scale.x * (Math_Rand_S16Offset(15, 15) * (Math_Rand_ZeroOne() < 0.5f ? -1 : 1));
pos.y = this->actor.posRot.pos.y + this->actor.scale.y * Math_Rand_S16Offset(10, 90);
pos.z = this->actor.posRot.pos.z +
this->actor.scale.z * (Math_Rand_S16Offset(15, 15) * (Math_Rand_ZeroOne() < 0.5f ? -1 : 1));
if ((globalCtx->gameplayFrames % 7) == 0) {
EffectSsKiraKira_SpawnDispersed(globalCtx, &pos, &zeroVec, &zeroVec, &sColorWhite, &sColorGray, 2000, 5);
}
}
void ObjIcePoly_Melt(ObjIcePoly* this, GlobalContext* globalCtx) {
Vec3f accel;
Vec3f vel;
Vec3f pos;
s32 i;
accel.x = 0.0f;
accel.y = this->actor.scale.y;
accel.z = 0.0f;
vel.x = 0.0f;
vel.y = this->actor.scale.y;
vel.z = 0.0f;
for (i = 0; i < 2; i++) {
pos.x = this->actor.posRot.pos.x +
this->actor.scale.x * (Math_Rand_S16Offset(20, 20) * (Math_Rand_ZeroOne() < 0.5f ? -1 : 1));
pos.y = this->actor.posRot.pos.y + this->actor.scale.y * Math_Rand_ZeroOne() * 50.0f;
pos.z = this->actor.posRot.pos.z +
this->actor.scale.x * (Math_Rand_S16Offset(20, 20) * (Math_Rand_ZeroOne() < 0.5f ? -1 : 1));
func_8002829C(globalCtx, &pos, &vel, &accel, &sColorWhite, &sColorGray,
Math_Rand_S16Offset(0x15E, 0x64) * this->actor.scale.x, this->actor.scale.x * 20.0f);
}
if (this->meltTimer < 0) {
if (this->actor.parent != NULL) {
this->actor.parent->freezeTimer = 40;
}
this->meltTimer++;
if (this->meltTimer == 0) {
this->meltTimer = 40;
Audio_PlayActorSound2(&this->actor, NA_SE_EV_ICE_MELT);
}
} else {
if (this->meltTimer != 0) {
this->meltTimer--;
}
this->actor.scale.y = sScale[this->actor.params] * (0.5f + (this->meltTimer * 0.0125f));
this->alpha -= 6;
if (this->meltTimer == 0) {
Actor_Kill(&this->actor);
}
}
}
void ObjIcePoly_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
ObjIcePoly* this = THIS;
this->actionFunc(this, globalCtx);
}
void ObjIcePoly_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
ObjIcePoly* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_obj_ice_poly.c", 421);
func_80093D84(globalCtx->state.gfxCtx);
func_8002ED80(&this->actor, globalCtx, 0);
Matrix_RotateRPY(0x500, 0, -0x500, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_ice_poly.c", 428),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, globalCtx->gameplayFrames % 0x100, 0x20, 0x10, 1, 0,
(globalCtx->gameplayFrames * 2) % 0x100, 0x40, 0x20));
gDPSetEnvColor(POLY_XLU_DISP++, 0, 50, 100, this->alpha);
gSPDisplayList(POLY_XLU_DISP++, D_04033EE0);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_ice_poly.c", 444);
}

View File

@ -6,9 +6,16 @@
struct ObjIcePoly;
typedef void (*ObjIcePolyActionFunc)(struct ObjIcePoly*, GlobalContext*);
typedef struct ObjIcePoly {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xA0];
/* 0x014C */ ObjIcePolyActionFunc actionFunc;
/* 0x0150 */ u8 alpha;
/* 0x0151 */ u8 unk_151; // Unused. Probably intended to be a switch flag.
/* 0x0152 */ s16 meltTimer;
/* 0x0154 */ ColliderCylinder colliderIce;
/* 0x01A0 */ ColliderCylinder colliderHard;
} ObjIcePoly; // size = 0x01EC
extern const ActorInit Obj_Ice_Poly_InitVars;

View File

@ -1338,7 +1338,10 @@ D_06000A3C = 0x06000A3C;
D_06000830 = 0x06000830;
D_0600040C = 0x0600040C;
//z_bg_jya_bombchuiwa
// z_obj_ice_poly
D_04033EE0 = 0x04033EE0;
// z_bg_jya_bombchuiwa
D_0600E8D0 = 0x0600E8D0;
D_060119B0 = 0x060119B0;
D_0600DC40 = 0x0600DC40;