From 704598652a782fb750193f7e2fcd0cc0012561c5 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Sun, 4 Oct 2020 10:16:21 -0500 Subject: [PATCH] Kibako (#420) * Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * box * Update src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * kakera macros * kakera macros * names * one more rename Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> --- .../actors/ovl_Obj_Kibako/ObjKibako_Destroy.s | 12 - .../actors/ovl_Obj_Kibako/ObjKibako_Draw.s | 16 -- .../actors/ovl_Obj_Kibako/ObjKibako_Init.s | 46 ---- .../actors/ovl_Obj_Kibako/ObjKibako_Update.s | 10 - .../actors/ovl_Obj_Kibako/func_80B94CA0.s | 27 -- .../actors/ovl_Obj_Kibako/func_80B94D00.s | 15 -- .../actors/ovl_Obj_Kibako/func_80B94D34.s | 26 -- .../actors/ovl_Obj_Kibako/func_80B94E38.s | 182 ------------- .../actors/ovl_Obj_Kibako/func_80B950B8.s | 176 ------------ .../actors/ovl_Obj_Kibako/func_80B95334.s | 7 - .../actors/ovl_Obj_Kibako/func_80B9534C.s | 141 ---------- .../actors/ovl_Obj_Kibako/func_80B95540.s | 14 - .../actors/ovl_Obj_Kibako/func_80B95574.s | 59 ---- .../actors/ovl_Obj_Kibako/func_80B95638.s | 28 -- .../actors/ovl_Obj_Kibako/func_80B9569C.s | 90 ------- data/overlays/actors/z_obj_kibako.data.s | 24 -- spec | 1 - .../actors/ovl_Obj_Kibako/z_obj_kibako.c | 255 ++++++++++++++++-- .../actors/ovl_Obj_Kibako/z_obj_kibako.h | 5 +- undefined_syms.txt | 4 + 20 files changed, 245 insertions(+), 893 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94CA0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D00.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D34.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94E38.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B950B8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95334.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9534C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95540.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95574.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95638.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9569C.s delete mode 100644 data/overlays/actors/z_obj_kibako.data.s diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Destroy.s deleted file mode 100644 index 963ec1b22a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Destroy.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel ObjKibako_Destroy -/* 00170 80B94E10 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00174 80B94E14 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00178 80B94E18 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0017C 80B94E1C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00180 80B94E20 0C0170EB */ jal Collider_DestroyCylinder - -/* 00184 80B94E24 24E50150 */ addiu $a1, $a3, 0x0150 ## $a1 = 00000150 -/* 00188 80B94E28 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0018C 80B94E2C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00190 80B94E30 03E00008 */ jr $ra -/* 00194 80B94E34 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Draw.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Draw.s deleted file mode 100644 index 6cd962b039..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Draw.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel ObjKibako_Draw -/* 00B58 80B957F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00B5C 80B957FC AFA40018 */ sw $a0, 0x0018($sp) -/* 00B60 80B95800 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00B64 80B95804 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00B68 80B95808 3C050500 */ lui $a1, 0x0500 ## $a1 = 05000000 -/* 00B6C 80B9580C 0C00D498 */ jal Gfx_DrawDListOpa - -/* 00B70 80B95810 24A55290 */ addiu $a1, $a1, 0x5290 ## $a1 = 05005290 -/* 00B74 80B95814 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00B78 80B95818 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00B7C 80B9581C 03E00008 */ jr $ra -/* 00B80 80B95820 00000000 */ nop -/* 00B84 80B95824 00000000 */ nop -/* 00B88 80B95828 00000000 */ nop -/* 00B8C 80B9582C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Init.s deleted file mode 100644 index 950a068f12..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Init.s +++ /dev/null @@ -1,46 +0,0 @@ -.rdata -glabel D_80B958A0 - .asciz "(dungeon keep 木箱)(arg_data 0x%04x)\n" - .balign 4 - -.late_rodata -glabel D_80B958C8 - .float -1.2 - -.text -glabel ObjKibako_Init -/* 000EC 80B94D8C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 000F0 80B94D90 AFA50024 */ sw $a1, 0x0024($sp) -/* 000F4 80B94D94 AFBF001C */ sw $ra, 0x001C($sp) -/* 000F8 80B94D98 AFB00018 */ sw $s0, 0x0018($sp) -/* 000FC 80B94D9C 3C0580B9 */ lui $a1, %hi(D_80B95884) ## $a1 = 80B90000 -/* 00100 80B94DA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00104 80B94DA4 0C01E037 */ jal Actor_ProcessInitChain - -/* 00108 80B94DA8 24A55884 */ addiu $a1, $a1, %lo(D_80B95884) ## $a1 = 80B95884 -/* 0010C 80B94DAC 3C0180B9 */ lui $at, %hi(D_80B958C8) ## $at = 80B90000 -/* 00110 80B94DB0 C42458C8 */ lwc1 $f4, %lo(D_80B958C8)($at) -/* 00114 80B94DB4 3C01C150 */ lui $at, 0xC150 ## $at = C1500000 -/* 00118 80B94DB8 44813000 */ mtc1 $at, $f6 ## $f6 = -13.00 -/* 0011C 80B94DBC E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C -/* 00120 80B94DC0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00124 80B94DC4 E6060070 */ swc1 $f6, 0x0070($s0) ## 00000070 -/* 00128 80B94DC8 0C2E534D */ jal func_80B94D34 -/* 0012C 80B94DCC 8FA50024 */ lw $a1, 0x0024($sp) -/* 00130 80B94DD0 3C0680B9 */ lui $a2, %hi(D_80B9587C) ## $a2 = 80B90000 -/* 00134 80B94DD4 24C6587C */ addiu $a2, $a2, %lo(D_80B9587C) ## $a2 = 80B9587C -/* 00138 80B94DD8 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098 -/* 0013C 80B94DDC 0C0187B5 */ jal func_80061ED4 -/* 00140 80B94DE0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00144 80B94DE4 0C2E54CD */ jal func_80B95334 -/* 00148 80B94DE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0014C 80B94DEC 3C0480B9 */ lui $a0, %hi(D_80B958A0) ## $a0 = 80B90000 -/* 00150 80B94DF0 248458A0 */ addiu $a0, $a0, %lo(D_80B958A0) ## $a0 = 80B958A0 -/* 00154 80B94DF4 0C00084C */ jal osSyncPrintf - -/* 00158 80B94DF8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 0015C 80B94DFC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00160 80B94E00 8FB00018 */ lw $s0, 0x0018($sp) -/* 00164 80B94E04 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00168 80B94E08 03E00008 */ jr $ra -/* 0016C 80B94E0C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Update.s deleted file mode 100644 index b38d1d8613..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Update.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel ObjKibako_Update -/* 00B34 80B957D4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00B38 80B957D8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00B3C 80B957DC 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C -/* 00B40 80B957E0 0320F809 */ jalr $ra, $t9 -/* 00B44 80B957E4 00000000 */ nop -/* 00B48 80B957E8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00B4C 80B957EC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00B50 80B957F0 03E00008 */ jr $ra -/* 00B54 80B957F4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94CA0.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94CA0.s deleted file mode 100644 index 817ed1358a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94CA0.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_80B94CA0 -/* 00000 80B94CA0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00004 80B94CA4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00008 80B94CA8 AFA5001C */ sw $a1, 0x001C($sp) -/* 0000C 80B94CAC 8483001C */ lh $v1, 0x001C($a0) ## 0000001C -/* 00010 80B94CB0 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00014 80B94CB4 3062001F */ andi $v0, $v1, 0x001F ## $v0 = 00000000 -/* 00018 80B94CB8 00021400 */ sll $v0, $v0, 16 -/* 0001C 80B94CBC 00021403 */ sra $v0, $v0, 16 -/* 00020 80B94CC0 0440000B */ bltz $v0, .L80B94CF0 -/* 00024 80B94CC4 2841001A */ slti $at, $v0, 0x001A -/* 00028 80B94CC8 10200009 */ beq $at, $zero, .L80B94CF0 -/* 0002C 80B94CCC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00030 80B94CD0 00037203 */ sra $t6, $v1, 8 -/* 00034 80B94CD4 31CF003F */ andi $t7, $t6, 0x003F ## $t7 = 00000000 -/* 00038 80B94CD8 000FC200 */ sll $t8, $t7, 8 -/* 0003C 80B94CDC 00583025 */ or $a2, $v0, $t8 ## $a2 = 00000000 -/* 00040 80B94CE0 00063400 */ sll $a2, $a2, 16 -/* 00044 80B94CE4 00063403 */ sra $a2, $a2, 16 -/* 00048 80B94CE8 0C007D52 */ jal Item_DropCollectible - -/* 0004C 80B94CEC 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024 -.L80B94CF0: -/* 00050 80B94CF0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00054 80B94CF4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00058 80B94CF8 03E00008 */ jr $ra -/* 0005C 80B94CFC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D00.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D00.s deleted file mode 100644 index c09eafdc61..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D00.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_80B94D00 -/* 00060 80B94D00 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060 -/* 00064 80B94D04 C486006C */ lwc1 $f6, 0x006C($a0) ## 0000006C -/* 00068 80B94D08 C4800070 */ lwc1 $f0, 0x0070($a0) ## 00000070 -/* 0006C 80B94D0C 46062200 */ add.s $f8, $f4, $f6 -/* 00070 80B94D10 E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060 -/* 00074 80B94D14 C48A0060 */ lwc1 $f10, 0x0060($a0) ## 00000060 -/* 00078 80B94D18 4600503C */ c.lt.s $f10, $f0 -/* 0007C 80B94D1C 00000000 */ nop -/* 00080 80B94D20 45000002 */ bc1f .L80B94D2C -/* 00084 80B94D24 00000000 */ nop -/* 00088 80B94D28 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060 -.L80B94D2C: -/* 0008C 80B94D2C 03E00008 */ jr $ra -/* 00090 80B94D30 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D34.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D34.s deleted file mode 100644 index 0ba0160d54..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D34.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80B94D34 -/* 00094 80B94D34 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00098 80B94D38 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 0009C 80B94D3C AFA50024 */ sw $a1, 0x0024($sp) -/* 000A0 80B94D40 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 000A4 80B94D44 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000A8 80B94D48 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150 -/* 000AC 80B94D4C AFA50018 */ sw $a1, 0x0018($sp) -/* 000B0 80B94D50 0C0170D9 */ jal Collider_InitCylinder - -/* 000B4 80B94D54 AFA60020 */ sw $a2, 0x0020($sp) -/* 000B8 80B94D58 3C0780B9 */ lui $a3, %hi(D_80B95850) ## $a3 = 80B90000 -/* 000BC 80B94D5C 8FA60020 */ lw $a2, 0x0020($sp) -/* 000C0 80B94D60 24E75850 */ addiu $a3, $a3, %lo(D_80B95850) ## $a3 = 80B95850 -/* 000C4 80B94D64 8FA40024 */ lw $a0, 0x0024($sp) -/* 000C8 80B94D68 0C01712B */ jal Collider_SetCylinder - -/* 000CC 80B94D6C 8FA50018 */ lw $a1, 0x0018($sp) -/* 000D0 80B94D70 8FA40020 */ lw $a0, 0x0020($sp) -/* 000D4 80B94D74 0C0189B7 */ jal Collider_CylinderUpdate - -/* 000D8 80B94D78 8FA50018 */ lw $a1, 0x0018($sp) -/* 000DC 80B94D7C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 000E0 80B94D80 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 000E4 80B94D84 03E00008 */ jr $ra -/* 000E8 80B94D88 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94E38.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94E38.s deleted file mode 100644 index 4f02f1d7ee..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94E38.s +++ /dev/null @@ -1,182 +0,0 @@ -.late_rodata -glabel D_80B958CC - .float 0.2 - -glabel D_80B958D0 - .float 0.1 - -glabel D_80B958D4 - .float 0.7 - -.text -glabel func_80B94E38 -/* 00198 80B94E38 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 0019C 80B94E3C F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 001A0 80B94E40 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 001A4 80B94E44 4481F000 */ mtc1 $at, $f30 ## $f30 = 5.00 -/* 001A8 80B94E48 F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 001AC 80B94E4C 3C0180B9 */ lui $at, %hi(D_80B958CC) ## $at = 80B90000 -/* 001B0 80B94E50 C43C58CC */ lwc1 $f28, %lo(D_80B958CC)($at) -/* 001B4 80B94E54 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 001B8 80B94E58 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 001BC 80B94E5C 4481D000 */ mtc1 $at, $f26 ## $f26 = 2.00 -/* 001C0 80B94E60 AFB60090 */ sw $s6, 0x0090($sp) -/* 001C4 80B94E64 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 001C8 80B94E68 3C014180 */ lui $at, 0x4180 ## $at = 41800000 -/* 001CC 80B94E6C AFBE0098 */ sw $s8, 0x0098($sp) -/* 001D0 80B94E70 AFB70094 */ sw $s7, 0x0094($sp) -/* 001D4 80B94E74 AFB5008C */ sw $s5, 0x008C($sp) -/* 001D8 80B94E78 AFB40088 */ sw $s4, 0x0088($sp) -/* 001DC 80B94E7C AFB30084 */ sw $s3, 0x0084($sp) -/* 001E0 80B94E80 AFB20080 */ sw $s2, 0x0080($sp) -/* 001E4 80B94E84 AFB1007C */ sw $s1, 0x007C($sp) -/* 001E8 80B94E88 3C160500 */ lui $s6, 0x0500 ## $s6 = 05000000 -/* 001EC 80B94E8C 4481C000 */ mtc1 $at, $f24 ## $f24 = 16.00 -/* 001F0 80B94E90 00A0F025 */ or $s8, $a1, $zero ## $s8 = 00000000 -/* 001F4 80B94E94 AFBF009C */ sw $ra, 0x009C($sp) -/* 001F8 80B94E98 AFB00078 */ sw $s0, 0x0078($sp) -/* 001FC 80B94E9C F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00200 80B94EA0 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 00204 80B94EA4 26D65380 */ addiu $s6, $s6, 0x5380 ## $s6 = 05005380 -/* 00208 80B94EA8 24910024 */ addiu $s1, $a0, 0x0024 ## $s1 = 00000024 -/* 0020C 80B94EAC 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 00210 80B94EB0 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -/* 00214 80B94EB4 27B400C8 */ addiu $s4, $sp, 0x00C8 ## $s4 = FFFFFFE8 -/* 00218 80B94EB8 27B500BC */ addiu $s5, $sp, 0x00BC ## $s5 = FFFFFFDC -/* 0021C 80B94EBC 2417000C */ addiu $s7, $zero, 0x000C ## $s7 = 0000000C -.L80B94EC0: -/* 00220 80B94EC0 00122400 */ sll $a0, $s2, 16 -/* 00224 80B94EC4 0C01DE1C */ jal Math_Sins - ## sins? -/* 00228 80B94EC8 00042403 */ sra $a0, $a0, 16 -/* 0022C 80B94ECC 00122400 */ sll $a0, $s2, 16 -/* 00230 80B94ED0 46000506 */ mov.s $f20, $f0 -/* 00234 80B94ED4 0C01DE0D */ jal Math_Coss - ## coss? -/* 00238 80B94ED8 00042403 */ sra $a0, $a0, 16 -/* 0023C 80B94EDC 4618A102 */ mul.s $f4, $f20, $f24 -/* 00240 80B94EE0 46000586 */ mov.s $f22, $f0 -/* 00244 80B94EE4 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00248 80B94EE8 E7A400C8 */ swc1 $f4, 0x00C8($sp) -/* 0024C 80B94EEC 461E0182 */ mul.s $f6, $f0, $f30 -/* 00250 80B94EF0 C7B000C8 */ lwc1 $f16, 0x00C8($sp) -/* 00254 80B94EF4 4618B282 */ mul.s $f10, $f22, $f24 -/* 00258 80B94EF8 00000000 */ nop -/* 0025C 80B94EFC 461C8482 */ mul.s $f18, $f16, $f28 -/* 00260 80B94F00 461A3200 */ add.s $f8, $f6, $f26 -/* 00264 80B94F04 E7AA00D0 */ swc1 $f10, 0x00D0($sp) -/* 00268 80B94F08 E7A800CC */ swc1 $f8, 0x00CC($sp) -/* 0026C 80B94F0C 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00270 80B94F10 E7B200BC */ swc1 $f18, 0x00BC($sp) -/* 00274 80B94F14 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000 -/* 00278 80B94F18 44812000 */ mtc1 $at, $f4 ## $f4 = 6.00 -/* 0027C 80B94F1C C7AA00D0 */ lwc1 $f10, 0x00D0($sp) -/* 00280 80B94F20 C7B200C8 */ lwc1 $f18, 0x00C8($sp) -/* 00284 80B94F24 46040182 */ mul.s $f6, $f0, $f4 -/* 00288 80B94F28 461A3200 */ add.s $f8, $f6, $f26 -/* 0028C 80B94F2C 461C5402 */ mul.s $f16, $f10, $f28 -/* 00290 80B94F30 E7A800C0 */ swc1 $f8, 0x00C0($sp) -/* 00294 80B94F34 C7A800CC */ lwc1 $f8, 0x00CC($sp) -/* 00298 80B94F38 E7B000C4 */ swc1 $f16, 0x00C4($sp) -/* 0029C 80B94F3C C6240000 */ lwc1 $f4, 0x0000($s1) ## 00000024 -/* 002A0 80B94F40 46049180 */ add.s $f6, $f18, $f4 -/* 002A4 80B94F44 E7A600C8 */ swc1 $f6, 0x00C8($sp) -/* 002A8 80B94F48 C6300004 */ lwc1 $f16, 0x0004($s1) ## 00000028 -/* 002AC 80B94F4C 46104480 */ add.s $f18, $f8, $f16 -/* 002B0 80B94F50 E7B200CC */ swc1 $f18, 0x00CC($sp) -/* 002B4 80B94F54 C6240008 */ lwc1 $f4, 0x0008($s1) ## 0000002C -/* 002B8 80B94F58 46045180 */ add.s $f6, $f10, $f4 -/* 002BC 80B94F5C 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002C0 80B94F60 E7A600D0 */ swc1 $f6, 0x00D0($sp) -/* 002C4 80B94F64 3C0180B9 */ lui $at, %hi(D_80B958D0) ## $at = 80B90000 -/* 002C8 80B94F68 C42858D0 */ lwc1 $f8, %lo(D_80B958D0)($at) -/* 002CC 80B94F6C 3C0180B9 */ lui $at, %hi(D_80B958D4) ## $at = 80B90000 -/* 002D0 80B94F70 4608003C */ c.lt.s $f0, $f8 -/* 002D4 80B94F74 00000000 */ nop -/* 002D8 80B94F78 45000003 */ bc1f .L80B94F88 -/* 002DC 80B94F7C 00000000 */ nop -/* 002E0 80B94F80 10000009 */ beq $zero, $zero, .L80B94FA8 -/* 002E4 80B94F84 24100060 */ addiu $s0, $zero, 0x0060 ## $s0 = 00000060 -.L80B94F88: -/* 002E8 80B94F88 C43058D4 */ lwc1 $f16, %lo(D_80B958D4)($at) -/* 002EC 80B94F8C 24100020 */ addiu $s0, $zero, 0x0020 ## $s0 = 00000020 -/* 002F0 80B94F90 4610003C */ c.lt.s $f0, $f16 -/* 002F4 80B94F94 00000000 */ nop -/* 002F8 80B94F98 45000003 */ bc1f .L80B94FA8 -/* 002FC 80B94F9C 00000000 */ nop -/* 00300 80B94FA0 10000001 */ beq $zero, $zero, .L80B94FA8 -/* 00304 80B94FA4 24100040 */ addiu $s0, $zero, 0x0040 ## $s0 = 00000040 -.L80B94FA8: -/* 00308 80B94FA8 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 0030C 80B94FAC 00000000 */ nop -/* 00310 80B94FB0 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 00314 80B94FB4 44819000 */ mtc1 $at, $f18 ## $f18 = 30.00 -/* 00318 80B94FB8 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 0031C 80B94FBC 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00 -/* 00320 80B94FC0 46120282 */ mul.s $f10, $f0, $f18 -/* 00324 80B94FC4 240EFF38 */ addiu $t6, $zero, 0xFF38 ## $t6 = FFFFFF38 -/* 00328 80B94FC8 240F000A */ addiu $t7, $zero, 0x000A ## $t7 = 0000000A -/* 0032C 80B94FCC 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A -/* 00330 80B94FD0 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020 -/* 00334 80B94FD4 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C -/* 00338 80B94FD8 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF -/* 0033C 80B94FDC 46045180 */ add.s $f6, $f10, $f4 -/* 00340 80B94FE0 240C0003 */ addiu $t4, $zero, 0x0003 ## $t4 = 00000003 -/* 00344 80B94FE4 AFAC0038 */ sw $t4, 0x0038($sp) -/* 00348 80B94FE8 AFAB0034 */ sw $t3, 0x0034($sp) -/* 0034C 80B94FEC 4600320D */ trunc.w.s $f8, $f6 -/* 00350 80B94FF0 AFAA0030 */ sw $t2, 0x0030($sp) -/* 00354 80B94FF4 AFA9002C */ sw $t1, 0x002C($sp) -/* 00358 80B94FF8 AFB8001C */ sw $t8, 0x001C($sp) -/* 0035C 80B94FFC 44084000 */ mfc1 $t0, $f8 -/* 00360 80B95000 AFAF0018 */ sw $t7, 0x0018($sp) -/* 00364 80B95004 AFAE0010 */ sw $t6, 0x0010($sp) -/* 00368 80B95008 03C02025 */ or $a0, $s8, $zero ## $a0 = 00000000 -/* 0036C 80B9500C 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE8 -/* 00370 80B95010 02A03025 */ or $a2, $s5, $zero ## $a2 = FFFFFFDC -/* 00374 80B95014 02203825 */ or $a3, $s1, $zero ## $a3 = 00000024 -/* 00378 80B95018 AFB00014 */ sw $s0, 0x0014($sp) -/* 0037C 80B9501C AFA00020 */ sw $zero, 0x0020($sp) -/* 00380 80B95020 AFA00028 */ sw $zero, 0x0028($sp) -/* 00384 80B95024 AFB6003C */ sw $s6, 0x003C($sp) -/* 00388 80B95028 0C00A7A3 */ jal EffectSsKakera_Spawn - -/* 0038C 80B9502C AFA80024 */ sw $t0, 0x0024($sp) -/* 00390 80B95030 26524E20 */ addiu $s2, $s2, 0x4E20 ## $s2 = 00004E20 -/* 00394 80B95034 00129400 */ sll $s2, $s2, 16 -/* 00398 80B95038 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001 -/* 0039C 80B9503C 1677FFA0 */ bne $s3, $s7, .L80B94EC0 -/* 003A0 80B95040 00129403 */ sra $s2, $s2, 16 -/* 003A4 80B95044 240D0032 */ addiu $t5, $zero, 0x0032 ## $t5 = 00000032 -/* 003A8 80B95048 240E008C */ addiu $t6, $zero, 0x008C ## $t6 = 0000008C -/* 003AC 80B9504C 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 003B0 80B95050 AFAF0018 */ sw $t7, 0x0018($sp) -/* 003B4 80B95054 AFAE0014 */ sw $t6, 0x0014($sp) -/* 003B8 80B95058 AFAD0010 */ sw $t5, 0x0010($sp) -/* 003BC 80B9505C 03C02025 */ or $a0, $s8, $zero ## $a0 = 00000000 -/* 003C0 80B95060 02202825 */ or $a1, $s1, $zero ## $a1 = 00000024 -/* 003C4 80B95064 3C064220 */ lui $a2, 0x4220 ## $a2 = 42200000 -/* 003C8 80B95068 0C00CD20 */ jal func_80033480 -/* 003CC 80B9506C 24070003 */ addiu $a3, $zero, 0x0003 ## $a3 = 00000003 -/* 003D0 80B95070 8FBF009C */ lw $ra, 0x009C($sp) -/* 003D4 80B95074 D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 003D8 80B95078 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 003DC 80B9507C D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 003E0 80B95080 D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 003E4 80B95084 D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 003E8 80B95088 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 003EC 80B9508C 8FB00078 */ lw $s0, 0x0078($sp) -/* 003F0 80B95090 8FB1007C */ lw $s1, 0x007C($sp) -/* 003F4 80B95094 8FB20080 */ lw $s2, 0x0080($sp) -/* 003F8 80B95098 8FB30084 */ lw $s3, 0x0084($sp) -/* 003FC 80B9509C 8FB40088 */ lw $s4, 0x0088($sp) -/* 00400 80B950A0 8FB5008C */ lw $s5, 0x008C($sp) -/* 00404 80B950A4 8FB60090 */ lw $s6, 0x0090($sp) -/* 00408 80B950A8 8FB70094 */ lw $s7, 0x0094($sp) -/* 0040C 80B950AC 8FBE0098 */ lw $s8, 0x0098($sp) -/* 00410 80B950B0 03E00008 */ jr $ra -/* 00414 80B950B4 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B950B8.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B950B8.s deleted file mode 100644 index cc84bd2ccc..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B950B8.s +++ /dev/null @@ -1,176 +0,0 @@ -.late_rodata -glabel D_80B958D8 - .word 0x3E3851EC -glabel D_80B958DC - .float 0.2 - -.text -glabel func_80B950B8 -/* 00418 80B950B8 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 0041C 80B950BC AFB1007C */ sw $s1, 0x007C($sp) -/* 00420 80B950C0 AFBF009C */ sw $ra, 0x009C($sp) -/* 00424 80B950C4 AFBE0098 */ sw $s8, 0x0098($sp) -/* 00428 80B950C8 AFB70094 */ sw $s7, 0x0094($sp) -/* 0042C 80B950CC AFB60090 */ sw $s6, 0x0090($sp) -/* 00430 80B950D0 AFB5008C */ sw $s5, 0x008C($sp) -/* 00434 80B950D4 AFB40088 */ sw $s4, 0x0088($sp) -/* 00438 80B950D8 AFB30084 */ sw $s3, 0x0084($sp) -/* 0043C 80B950DC AFB20080 */ sw $s2, 0x0080($sp) -/* 00440 80B950E0 AFB00078 */ sw $s0, 0x0078($sp) -/* 00444 80B950E4 F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 00448 80B950E8 F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 0044C 80B950EC F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 00450 80B950F0 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 00454 80B950F4 F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00458 80B950F8 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 0045C 80B950FC 24910024 */ addiu $s1, $a0, 0x0024 ## $s1 = 00000024 -/* 00460 80B95100 8E2F0000 */ lw $t7, 0x0000($s1) ## 00000024 -/* 00464 80B95104 27B500C8 */ addiu $s5, $sp, 0x00C8 ## $s5 = FFFFFFE8 -/* 00468 80B95108 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000 -/* 0046C 80B9510C AEAF0000 */ sw $t7, 0x0000($s5) ## FFFFFFE8 -/* 00470 80B95110 8E2E0004 */ lw $t6, 0x0004($s1) ## 00000028 -/* 00474 80B95114 241801F4 */ addiu $t8, $zero, 0x01F4 ## $t8 = 000001F4 -/* 00478 80B95118 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 0047C 80B9511C AEAE0004 */ sw $t6, 0x0004($s5) ## FFFFFFEC -/* 00480 80B95120 8E2F0008 */ lw $t7, 0x0008($s1) ## 0000002C -/* 00484 80B95124 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00488 80B95128 AEAF0008 */ sw $t7, 0x0008($s5) ## FFFFFFF0 -/* 0048C 80B9512C C7A400CC */ lwc1 $f4, 0x00CC($sp) -/* 00490 80B95130 C4860084 */ lwc1 $f6, 0x0084($a0) ## 00000084 -/* 00494 80B95134 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00498 80B95138 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFE8 -/* 0049C 80B9513C 46062200 */ add.s $f8, $f4, $f6 -/* 004A0 80B95140 AFB80014 */ sw $t8, 0x0014($sp) -/* 004A4 80B95144 AFA00010 */ sw $zero, 0x0010($sp) -/* 004A8 80B95148 0C00A527 */ jal EffectSsGSplash_Spawn -/* 004AC 80B9514C E7A800CC */ swc1 $f8, 0x00CC($sp) -/* 004B0 80B95150 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 004B4 80B95154 4481F000 */ mtc1 $at, $f30 ## $f30 = 5.00 -/* 004B8 80B95158 3C0180B9 */ lui $at, %hi(D_80B958D8) ## $at = 80B90000 -/* 004BC 80B9515C C43C58D8 */ lwc1 $f28, %lo(D_80B958D8)($at) -/* 004C0 80B95160 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 004C4 80B95164 4481D000 */ mtc1 $at, $f26 ## $f26 = 2.00 -/* 004C8 80B95168 3C014180 */ lui $at, 0x4180 ## $at = 41800000 -/* 004CC 80B9516C 3C170500 */ lui $s7, 0x0500 ## $s7 = 05000000 -/* 004D0 80B95170 4481C000 */ mtc1 $at, $f24 ## $f24 = 16.00 -/* 004D4 80B95174 26F75380 */ addiu $s7, $s7, 0x5380 ## $s7 = 05005380 -/* 004D8 80B95178 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -/* 004DC 80B9517C 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 004E0 80B95180 241E000C */ addiu $s8, $zero, 0x000C ## $s8 = 0000000C -/* 004E4 80B95184 27B600BC */ addiu $s6, $sp, 0x00BC ## $s6 = FFFFFFDC -.L80B95188: -/* 004E8 80B95188 00122400 */ sll $a0, $s2, 16 -/* 004EC 80B9518C 0C01DE1C */ jal Math_Sins - ## sins? -/* 004F0 80B95190 00042403 */ sra $a0, $a0, 16 -/* 004F4 80B95194 00122400 */ sll $a0, $s2, 16 -/* 004F8 80B95198 46000506 */ mov.s $f20, $f0 -/* 004FC 80B9519C 0C01DE0D */ jal Math_Coss - ## coss? -/* 00500 80B951A0 00042403 */ sra $a0, $a0, 16 -/* 00504 80B951A4 4618A282 */ mul.s $f10, $f20, $f24 -/* 00508 80B951A8 46000586 */ mov.s $f22, $f0 -/* 0050C 80B951AC 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00510 80B951B0 E7AA00C8 */ swc1 $f10, 0x00C8($sp) -/* 00514 80B951B4 461E0402 */ mul.s $f16, $f0, $f30 -/* 00518 80B951B8 C7A600C8 */ lwc1 $f6, 0x00C8($sp) -/* 0051C 80B951BC 4618B102 */ mul.s $f4, $f22, $f24 -/* 00520 80B951C0 00000000 */ nop -/* 00524 80B951C4 461C3202 */ mul.s $f8, $f6, $f28 -/* 00528 80B951C8 461A8480 */ add.s $f18, $f16, $f26 -/* 0052C 80B951CC E7A400D0 */ swc1 $f4, 0x00D0($sp) -/* 00530 80B951D0 E7B200CC */ swc1 $f18, 0x00CC($sp) -/* 00534 80B951D4 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00538 80B951D8 E7A800BC */ swc1 $f8, 0x00BC($sp) -/* 0053C 80B951DC 3C014080 */ lui $at, 0x4080 ## $at = 40800000 -/* 00540 80B951E0 44815000 */ mtc1 $at, $f10 ## $f10 = 4.00 -/* 00544 80B951E4 C7A400D0 */ lwc1 $f4, 0x00D0($sp) -/* 00548 80B951E8 C7A800C8 */ lwc1 $f8, 0x00C8($sp) -/* 0054C 80B951EC 460A0402 */ mul.s $f16, $f0, $f10 -/* 00550 80B951F0 461A8480 */ add.s $f18, $f16, $f26 -/* 00554 80B951F4 461C2182 */ mul.s $f6, $f4, $f28 -/* 00558 80B951F8 E7B200C0 */ swc1 $f18, 0x00C0($sp) -/* 0055C 80B951FC C7B200CC */ lwc1 $f18, 0x00CC($sp) -/* 00560 80B95200 E7A600C4 */ swc1 $f6, 0x00C4($sp) -/* 00564 80B95204 C62A0000 */ lwc1 $f10, 0x0000($s1) ## 00000024 -/* 00568 80B95208 460A4400 */ add.s $f16, $f8, $f10 -/* 0056C 80B9520C E7B000C8 */ swc1 $f16, 0x00C8($sp) -/* 00570 80B95210 C6260004 */ lwc1 $f6, 0x0004($s1) ## 00000028 -/* 00574 80B95214 46069200 */ add.s $f8, $f18, $f6 -/* 00578 80B95218 E7A800CC */ swc1 $f8, 0x00CC($sp) -/* 0057C 80B9521C C62A0008 */ lwc1 $f10, 0x0008($s1) ## 0000002C -/* 00580 80B95220 460A2400 */ add.s $f16, $f4, $f10 -/* 00584 80B95224 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00588 80B95228 E7B000D0 */ swc1 $f16, 0x00D0($sp) -/* 0058C 80B9522C 3C0180B9 */ lui $at, %hi(D_80B958DC) ## $at = 80B90000 -/* 00590 80B95230 C43258DC */ lwc1 $f18, %lo(D_80B958DC)($at) -/* 00594 80B95234 24100020 */ addiu $s0, $zero, 0x0020 ## $s0 = 00000020 -/* 00598 80B95238 4612003C */ c.lt.s $f0, $f18 -/* 0059C 80B9523C 00000000 */ nop -/* 005A0 80B95240 45000003 */ bc1f .L80B95250 -/* 005A4 80B95244 00000000 */ nop -/* 005A8 80B95248 10000001 */ beq $zero, $zero, .L80B95250 -/* 005AC 80B9524C 24100040 */ addiu $s0, $zero, 0x0040 ## $s0 = 00000040 -.L80B95250: -/* 005B0 80B95250 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 005B4 80B95254 00000000 */ nop -/* 005B8 80B95258 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 005BC 80B9525C 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00 -/* 005C0 80B95260 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 005C4 80B95264 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00 -/* 005C8 80B95268 46060202 */ mul.s $f8, $f0, $f6 -/* 005CC 80B9526C 2419FF4C */ addiu $t9, $zero, 0xFF4C ## $t9 = FFFFFF4C -/* 005D0 80B95270 2408001E */ addiu $t0, $zero, 0x001E ## $t0 = 0000001E -/* 005D4 80B95274 2409001E */ addiu $t1, $zero, 0x001E ## $t1 = 0000001E -/* 005D8 80B95278 240C0020 */ addiu $t4, $zero, 0x0020 ## $t4 = 00000020 -/* 005DC 80B9527C 240D0046 */ addiu $t5, $zero, 0x0046 ## $t5 = 00000046 -/* 005E0 80B95280 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF -/* 005E4 80B95284 46044280 */ add.s $f10, $f8, $f4 -/* 005E8 80B95288 240F0003 */ addiu $t7, $zero, 0x0003 ## $t7 = 00000003 -/* 005EC 80B9528C AFAF0038 */ sw $t7, 0x0038($sp) -/* 005F0 80B95290 AFAE0034 */ sw $t6, 0x0034($sp) -/* 005F4 80B95294 4600540D */ trunc.w.s $f16, $f10 -/* 005F8 80B95298 AFAD0030 */ sw $t5, 0x0030($sp) -/* 005FC 80B9529C AFAC002C */ sw $t4, 0x002C($sp) -/* 00600 80B952A0 AFA9001C */ sw $t1, 0x001C($sp) -/* 00604 80B952A4 440B8000 */ mfc1 $t3, $f16 -/* 00608 80B952A8 AFA80018 */ sw $t0, 0x0018($sp) -/* 0060C 80B952AC AFB90010 */ sw $t9, 0x0010($sp) -/* 00610 80B952B0 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 00614 80B952B4 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFE8 -/* 00618 80B952B8 02C03025 */ or $a2, $s6, $zero ## $a2 = FFFFFFDC -/* 0061C 80B952BC 02203825 */ or $a3, $s1, $zero ## $a3 = 00000024 -/* 00620 80B952C0 AFB00014 */ sw $s0, 0x0014($sp) -/* 00624 80B952C4 AFA00020 */ sw $zero, 0x0020($sp) -/* 00628 80B952C8 AFA00028 */ sw $zero, 0x0028($sp) -/* 0062C 80B952CC AFB7003C */ sw $s7, 0x003C($sp) -/* 00630 80B952D0 0C00A7A3 */ jal EffectSsKakera_Spawn - -/* 00634 80B952D4 AFAB0024 */ sw $t3, 0x0024($sp) -/* 00638 80B952D8 26524E20 */ addiu $s2, $s2, 0x4E20 ## $s2 = 00004E20 -/* 0063C 80B952DC 00129400 */ sll $s2, $s2, 16 -/* 00640 80B952E0 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001 -/* 00644 80B952E4 167EFFA8 */ bne $s3, $s8, .L80B95188 -/* 00648 80B952E8 00129403 */ sra $s2, $s2, 16 -/* 0064C 80B952EC 8FBF009C */ lw $ra, 0x009C($sp) -/* 00650 80B952F0 D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 00654 80B952F4 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 00658 80B952F8 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 0065C 80B952FC D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 00660 80B95300 D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 00664 80B95304 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 00668 80B95308 8FB00078 */ lw $s0, 0x0078($sp) -/* 0066C 80B9530C 8FB1007C */ lw $s1, 0x007C($sp) -/* 00670 80B95310 8FB20080 */ lw $s2, 0x0080($sp) -/* 00674 80B95314 8FB30084 */ lw $s3, 0x0084($sp) -/* 00678 80B95318 8FB40088 */ lw $s4, 0x0088($sp) -/* 0067C 80B9531C 8FB5008C */ lw $s5, 0x008C($sp) -/* 00680 80B95320 8FB60090 */ lw $s6, 0x0090($sp) -/* 00684 80B95324 8FB70094 */ lw $s7, 0x0094($sp) -/* 00688 80B95328 8FBE0098 */ lw $s8, 0x0098($sp) -/* 0068C 80B9532C 03E00008 */ jr $ra -/* 00690 80B95330 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95334.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95334.s deleted file mode 100644 index 0fcf27b3b7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95334.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_80B95334 -/* 00694 80B95334 3C0E80B9 */ lui $t6, %hi(func_80B9534C) ## $t6 = 80B90000 -/* 00698 80B95338 25CE534C */ addiu $t6, $t6, %lo(func_80B9534C) ## $t6 = 80B9534C -/* 0069C 80B9533C 240F00FE */ addiu $t7, $zero, 0x00FE ## $t7 = 000000FE -/* 006A0 80B95340 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C -/* 006A4 80B95344 03E00008 */ jr $ra -/* 006A8 80B95348 A08F00AE */ sb $t7, 0x00AE($a0) ## 000000AE diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9534C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9534C.s deleted file mode 100644 index a208555c74..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9534C.s +++ /dev/null @@ -1,141 +0,0 @@ -glabel func_80B9534C -/* 006AC 80B9534C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 006B0 80B95350 AFBF0024 */ sw $ra, 0x0024($sp) -/* 006B4 80B95354 AFB10020 */ sw $s1, 0x0020($sp) -/* 006B8 80B95358 AFB0001C */ sw $s0, 0x001C($sp) -/* 006BC 80B9535C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 006C0 80B95360 0C00BD04 */ jal Actor_HasParent -/* 006C4 80B95364 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 006C8 80B95368 50400006 */ beql $v0, $zero, .L80B95384 -/* 006CC 80B9536C 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088 -/* 006D0 80B95370 0C2E5550 */ jal func_80B95540 -/* 006D4 80B95374 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 006D8 80B95378 1000006D */ beq $zero, $zero, .L80B95530 -/* 006DC 80B9537C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 006E0 80B95380 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088 -.L80B95384: -/* 006E4 80B95384 3C014198 */ lui $at, 0x4198 ## $at = 41980000 -/* 006E8 80B95388 31CF0020 */ andi $t7, $t6, 0x0020 ## $t7 = 00000000 -/* 006EC 80B9538C 51E00017 */ beql $t7, $zero, .L80B953EC -/* 006F0 80B95390 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -/* 006F4 80B95394 44812000 */ mtc1 $at, $f4 ## $f4 = 19.00 -/* 006F8 80B95398 C6060084 */ lwc1 $f6, 0x0084($s0) ## 00000084 -/* 006FC 80B9539C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00700 80B953A0 4606203C */ c.lt.s $f4, $f6 -/* 00704 80B953A4 00000000 */ nop -/* 00708 80B953A8 45020010 */ bc1fl .L80B953EC -/* 0070C 80B953AC 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -/* 00710 80B953B0 0C2E542E */ jal func_80B950B8 -/* 00714 80B953B4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00718 80B953B8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0071C 80B953BC 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00720 80B953C0 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00724 80B953C4 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00728 80B953C8 240728AA */ addiu $a3, $zero, 0x28AA ## $a3 = 000028AA -/* 0072C 80B953CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00730 80B953D0 0C2E5328 */ jal func_80B94CA0 -/* 00734 80B953D4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00738 80B953D8 0C00B55C */ jal Actor_Kill - -/* 0073C 80B953DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00740 80B953E0 10000053 */ beq $zero, $zero, .L80B95530 -/* 00744 80B953E4 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00748 80B953E8 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -.L80B953EC: -/* 0074C 80B953EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00750 80B953F0 33190002 */ andi $t9, $t8, 0x0002 ## $t9 = 00000000 -/* 00754 80B953F4 1320000F */ beq $t9, $zero, .L80B95434 -/* 00758 80B953F8 00000000 */ nop -/* 0075C 80B953FC 0C2E538E */ jal func_80B94E38 -/* 00760 80B95400 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00764 80B95404 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00768 80B95408 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 0076C 80B9540C 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00770 80B95410 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00774 80B95414 240728AA */ addiu $a3, $zero, 0x28AA ## $a3 = 000028AA -/* 00778 80B95418 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0077C 80B9541C 0C2E5328 */ jal func_80B94CA0 -/* 00780 80B95420 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00784 80B95424 0C00B55C */ jal Actor_Kill - -/* 00788 80B95428 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0078C 80B9542C 10000040 */ beq $zero, $zero, .L80B95530 -/* 00790 80B95430 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B95434: -/* 00794 80B95434 0C00B638 */ jal Actor_MoveForward - -/* 00798 80B95438 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0079C 80B9543C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00 -/* 007A0 80B95440 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005 -/* 007A4 80B95444 AFA80014 */ sw $t0, 0x0014($sp) -/* 007A8 80B95448 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 007AC 80B9544C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 007B0 80B95450 3C064198 */ lui $a2, 0x4198 ## $a2 = 41980000 -/* 007B4 80B95454 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000 -/* 007B8 80B95458 0C00B92D */ jal func_8002E4B4 -/* 007BC 80B9545C E7A80010 */ swc1 $f8, 0x0010($sp) -/* 007C0 80B95460 92020162 */ lbu $v0, 0x0162($s0) ## 00000162 -/* 007C4 80B95464 3C0141E0 */ lui $at, 0x41E0 ## $at = 41E00000 -/* 007C8 80B95468 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 007CC 80B9546C 30490008 */ andi $t1, $v0, 0x0008 ## $t1 = 00000000 -/* 007D0 80B95470 15200009 */ bne $t1, $zero, .L80B95498 -/* 007D4 80B95474 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150 -/* 007D8 80B95478 44815000 */ mtc1 $at, $f10 ## $f10 = 28.00 -/* 007DC 80B9547C C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090 -/* 007E0 80B95480 344A0008 */ ori $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 007E4 80B95484 4610503C */ c.lt.s $f10, $f16 -/* 007E8 80B95488 00000000 */ nop -/* 007EC 80B9548C 45020003 */ bc1fl .L80B9549C -/* 007F0 80B95490 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 007F4 80B95494 A20A0162 */ sb $t2, 0x0162($s0) ## 00000162 -.L80B95498: -/* 007F8 80B95498 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -.L80B9549C: -/* 007FC 80B9549C 44819000 */ mtc1 $at, $f18 ## $f18 = 600.00 -/* 00800 80B954A0 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 00804 80B954A4 4612003C */ c.lt.s $f0, $f18 -/* 00808 80B954A8 00000000 */ nop -/* 0080C 80B954AC 45020017 */ bc1fl .L80B9550C -/* 00810 80B954B0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 00814 80B954B4 0C0189B7 */ jal Collider_CylinderUpdate - -/* 00818 80B954B8 AFA5002C */ sw $a1, 0x002C($sp) -/* 0081C 80B954BC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00820 80B954C0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00824 80B954C4 02212821 */ addu $a1, $s1, $at -/* 00828 80B954C8 AFA50028 */ sw $a1, 0x0028($sp) -/* 0082C 80B954CC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00830 80B954D0 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00834 80B954D4 8FA6002C */ lw $a2, 0x002C($sp) -/* 00838 80B954D8 3C014334 */ lui $at, 0x4334 ## $at = 43340000 -/* 0083C 80B954DC 44812000 */ mtc1 $at, $f4 ## $f4 = 180.00 -/* 00840 80B954E0 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 00844 80B954E4 8FA50028 */ lw $a1, 0x0028($sp) -/* 00848 80B954E8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0084C 80B954EC 4604003C */ c.lt.s $f0, $f4 -/* 00850 80B954F0 00000000 */ nop -/* 00854 80B954F4 45020005 */ bc1fl .L80B9550C -/* 00858 80B954F8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 0085C 80B954FC 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOT -/* 00860 80B95500 8FA6002C */ lw $a2, 0x002C($sp) -/* 00864 80B95504 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 00868 80B95508 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -.L80B9550C: -/* 0086C 80B9550C 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00 -/* 00870 80B95510 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00874 80B95514 4606003C */ c.lt.s $f0, $f6 -/* 00878 80B95518 00000000 */ nop -/* 0087C 80B9551C 45020004 */ bc1fl .L80B95530 -/* 00880 80B95520 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00884 80B95524 0C00BD60 */ jal func_8002F580 -/* 00888 80B95528 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 0088C 80B9552C 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B95530: -/* 00890 80B95530 8FB0001C */ lw $s0, 0x001C($sp) -/* 00894 80B95534 8FB10020 */ lw $s1, 0x0020($sp) -/* 00898 80B95538 03E00008 */ jr $ra -/* 0089C 80B9553C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95540.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95540.s deleted file mode 100644 index 599c7cba62..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95540.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_80B95540 -/* 008A0 80B95540 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 008A4 80B95544 AFBF0014 */ sw $ra, 0x0014($sp) -/* 008A8 80B95548 3C0E80B9 */ lui $t6, %hi(func_80B95574) ## $t6 = 80B90000 -/* 008AC 80B9554C 25CE5574 */ addiu $t6, $t6, %lo(func_80B95574) ## $t6 = 80B95574 -/* 008B0 80B95550 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF -/* 008B4 80B95554 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C -/* 008B8 80B95558 A08F0003 */ sb $t7, 0x0003($a0) ## 00000003 -/* 008BC 80B9555C 0C00BDF7 */ jal func_8002F7DC -/* 008C0 80B95560 24050878 */ addiu $a1, $zero, 0x0878 ## $a1 = 00000878 -/* 008C4 80B95564 8FBF0014 */ lw $ra, 0x0014($sp) -/* 008C8 80B95568 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 008CC 80B9556C 03E00008 */ jr $ra -/* 008D0 80B95570 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95574.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95574.s deleted file mode 100644 index 7af9358413..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95574.s +++ /dev/null @@ -1,59 +0,0 @@ -.late_rodata -glabel D_80B958E0 - .float 0.1 - -.text -glabel func_80B95574 -/* 008D4 80B95574 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 008D8 80B95578 AFBF0024 */ sw $ra, 0x0024($sp) -/* 008DC 80B9557C AFB00020 */ sw $s0, 0x0020($sp) -/* 008E0 80B95580 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 008E4 80B95584 0C00BD68 */ jal Actor_HasNoParent -/* 008E8 80B95588 AFA5002C */ sw $a1, 0x002C($sp) -/* 008EC 80B9558C 10400025 */ beq $v0, $zero, .L80B95624 -/* 008F0 80B95590 8FAE002C */ lw $t6, 0x002C($sp) -/* 008F4 80B95594 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000 -/* 008F8 80B95598 01EE7821 */ addu $t7, $t7, $t6 -/* 008FC 80B9559C 81EF1CBC */ lb $t7, 0x1CBC($t7) ## 00011CBC -/* 00900 80B955A0 C6000068 */ lwc1 $f0, 0x0068($s0) ## 00000068 -/* 00904 80B955A4 3C0180B9 */ lui $at, %hi(D_80B958E0) ## $at = 80B90000 -/* 00908 80B955A8 A20F0003 */ sb $t7, 0x0003($s0) ## 00000003 -/* 0090C 80B955AC C42458E0 */ lwc1 $f4, %lo(D_80B958E0)($at) -/* 00910 80B955B0 46000005 */ abs.s $f0, $f0 -/* 00914 80B955B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00918 80B955B8 4604003C */ c.lt.s $f0, $f4 -/* 0091C 80B955BC 00000000 */ nop -/* 00920 80B955C0 45000009 */ bc1f .L80B955E8 -/* 00924 80B955C4 00000000 */ nop -/* 00928 80B955C8 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 0092C 80B955CC 240528AB */ addiu $a1, $zero, 0x28AB ## $a1 = 000028AB -/* 00930 80B955D0 0C2E54CD */ jal func_80B95334 -/* 00934 80B955D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00938 80B955D8 92180162 */ lbu $t8, 0x0162($s0) ## 00000162 -/* 0093C 80B955DC 3319FFF7 */ andi $t9, $t8, 0xFFF7 ## $t9 = 00000000 -/* 00940 80B955E0 10000007 */ beq $zero, $zero, .L80B95600 -/* 00944 80B955E4 A2190162 */ sb $t9, 0x0162($s0) ## 00000162 -.L80B955E8: -/* 00948 80B955E8 0C2E558E */ jal func_80B95638 -/* 0094C 80B955EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00950 80B955F0 0C2E5340 */ jal func_80B94D00 -/* 00954 80B955F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00958 80B955F8 0C00B5FB */ jal func_8002D7EC -/* 0095C 80B955FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80B95600: -/* 00960 80B95600 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 00964 80B95604 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005 -/* 00968 80B95608 AFA80014 */ sw $t0, 0x0014($sp) -/* 0096C 80B9560C 8FA4002C */ lw $a0, 0x002C($sp) -/* 00970 80B95610 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00974 80B95614 3C064198 */ lui $a2, 0x4198 ## $a2 = 41980000 -/* 00978 80B95618 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000 -/* 0097C 80B9561C 0C00B92D */ jal func_8002E4B4 -/* 00980 80B95620 E7A60010 */ swc1 $f6, 0x0010($sp) -.L80B95624: -/* 00984 80B95624 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00988 80B95628 8FB00020 */ lw $s0, 0x0020($sp) -/* 0098C 80B9562C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00990 80B95630 03E00008 */ jr $ra -/* 00994 80B95634 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95638.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95638.s deleted file mode 100644 index 9418b0b8d3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95638.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_80B95638 -/* 00998 80B95638 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0099C 80B9563C AFBF0014 */ sw $ra, 0x0014($sp) -/* 009A0 80B95640 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 009A4 80B95644 84840032 */ lh $a0, 0x0032($a0) ## 00000032 -/* 009A8 80B95648 0C01DE1C */ jal Math_Sins - ## sins? -/* 009AC 80B9564C AFA50018 */ sw $a1, 0x0018($sp) -/* 009B0 80B95650 8FA50018 */ lw $a1, 0x0018($sp) -/* 009B4 80B95654 C4A40068 */ lwc1 $f4, 0x0068($a1) ## 00000068 -/* 009B8 80B95658 84A40032 */ lh $a0, 0x0032($a1) ## 00000032 -/* 009BC 80B9565C 46040182 */ mul.s $f6, $f0, $f4 -/* 009C0 80B95660 0C01DE0D */ jal Math_Coss - ## coss? -/* 009C4 80B95664 E4A6005C */ swc1 $f6, 0x005C($a1) ## 0000005C -/* 009C8 80B95668 8FA50018 */ lw $a1, 0x0018($sp) -/* 009CC 80B9566C 3C0F80B9 */ lui $t7, %hi(func_80B9569C) ## $t7 = 80B90000 -/* 009D0 80B95670 240E00F0 */ addiu $t6, $zero, 0x00F0 ## $t6 = 000000F0 -/* 009D4 80B95674 C4A80068 */ lwc1 $f8, 0x0068($a1) ## 00000068 -/* 009D8 80B95678 25EF569C */ addiu $t7, $t7, %lo(func_80B9569C) ## $t7 = 80B9569C -/* 009DC 80B9567C A0AE00AE */ sb $t6, 0x00AE($a1) ## 000000AE -/* 009E0 80B95680 46080282 */ mul.s $f10, $f0, $f8 -/* 009E4 80B95684 ACAF014C */ sw $t7, 0x014C($a1) ## 0000014C -/* 009E8 80B95688 E4AA0064 */ swc1 $f10, 0x0064($a1) ## 00000064 -/* 009EC 80B9568C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 009F0 80B95690 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 009F4 80B95694 03E00008 */ jr $ra -/* 009F8 80B95698 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9569C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9569C.s deleted file mode 100644 index e0e26e392c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9569C.s +++ /dev/null @@ -1,90 +0,0 @@ -glabel func_80B9569C -/* 009FC 80B9569C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00A00 80B956A0 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00A04 80B956A4 AFB10020 */ sw $s1, 0x0020($sp) -/* 00A08 80B956A8 AFB0001C */ sw $s0, 0x001C($sp) -/* 00A0C 80B956AC 94820088 */ lhu $v0, 0x0088($a0) ## 00000088 -/* 00A10 80B956B0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00A14 80B956B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00A18 80B956B8 304E000B */ andi $t6, $v0, 0x000B ## $t6 = 00000000 -/* 00A1C 80B956BC 15C00006 */ bne $t6, $zero, .L80B956D8 -/* 00A20 80B956C0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00A24 80B956C4 908F0160 */ lbu $t7, 0x0160($a0) ## 00000160 -/* 00A28 80B956C8 30590040 */ andi $t9, $v0, 0x0040 ## $t9 = 00000000 -/* 00A2C 80B956CC 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000 -/* 00A30 80B956D0 1300000F */ beq $t8, $zero, .L80B95710 -/* 00A34 80B956D4 00000000 */ nop -.L80B956D8: -/* 00A38 80B956D8 0C2E538E */ jal func_80B94E38 -/* 00A3C 80B956DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A40 80B956E0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00A44 80B956E4 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00A48 80B956E8 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00A4C 80B956EC 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00A50 80B956F0 240728AA */ addiu $a3, $zero, 0x28AA ## $a3 = 000028AA -/* 00A54 80B956F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A58 80B956F8 0C2E5328 */ jal func_80B94CA0 -/* 00A5C 80B956FC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00A60 80B95700 0C00B55C */ jal Actor_Kill - -/* 00A64 80B95704 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A68 80B95708 1000002E */ beq $zero, $zero, .L80B957C4 -/* 00A6C 80B9570C 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B95710: -/* 00A70 80B95710 1320000F */ beq $t9, $zero, .L80B95750 -/* 00A74 80B95714 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A78 80B95718 0C2E542E */ jal func_80B950B8 -/* 00A7C 80B9571C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00A80 80B95720 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00A84 80B95724 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00A88 80B95728 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00A8C 80B9572C 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00A90 80B95730 240728AA */ addiu $a3, $zero, 0x28AA ## $a3 = 000028AA -/* 00A94 80B95734 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A98 80B95738 0C2E5328 */ jal func_80B94CA0 -/* 00A9C 80B9573C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00AA0 80B95740 0C00B55C */ jal Actor_Kill - -/* 00AA4 80B95744 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AA8 80B95748 1000001E */ beq $zero, $zero, .L80B957C4 -/* 00AAC 80B9574C 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B95750: -/* 00AB0 80B95750 0C2E5340 */ jal func_80B94D00 -/* 00AB4 80B95754 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AB8 80B95758 0C00B5FB */ jal func_8002D7EC -/* 00ABC 80B9575C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AC0 80B95760 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00AC4 80B95764 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005 -/* 00AC8 80B95768 AFA80014 */ sw $t0, 0x0014($sp) -/* 00ACC 80B9576C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00AD0 80B95770 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00AD4 80B95774 3C064198 */ lui $a2, 0x4198 ## $a2 = 41980000 -/* 00AD8 80B95778 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000 -/* 00ADC 80B9577C 0C00B92D */ jal func_8002E4B4 -/* 00AE0 80B95780 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00AE4 80B95784 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150 -/* 00AE8 80B95788 AFA5002C */ sw $a1, 0x002C($sp) -/* 00AEC 80B9578C 0C0189B7 */ jal Collider_CylinderUpdate - -/* 00AF0 80B95790 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AF4 80B95794 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00AF8 80B95798 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00AFC 80B9579C 02218021 */ addu $s0, $s1, $at -/* 00B00 80B957A0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00B04 80B957A4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B08 80B957A8 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOT -/* 00B0C 80B957AC 8FA6002C */ lw $a2, 0x002C($sp) -/* 00B10 80B957B0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B14 80B957B4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00B18 80B957B8 0C0175E7 */ jal CollisionCheck_SetAT - ## CollisionCheck_setAT -/* 00B1C 80B957BC 8FA6002C */ lw $a2, 0x002C($sp) -/* 00B20 80B957C0 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B957C4: -/* 00B24 80B957C4 8FB0001C */ lw $s0, 0x001C($sp) -/* 00B28 80B957C8 8FB10020 */ lw $s1, 0x0020($sp) -/* 00B2C 80B957CC 03E00008 */ jr $ra -/* 00B30 80B957D0 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 diff --git a/data/overlays/actors/z_obj_kibako.data.s b/data/overlays/actors/z_obj_kibako.data.s deleted file mode 100644 index a37418a32f..0000000000 --- a/data/overlays/actors/z_obj_kibako.data.s +++ /dev/null @@ -1,24 +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_Kibako_InitVars - .word 0x01100600, 0x04000010, 0x00030000, 0x0000019C -.word ObjKibako_Init -.word ObjKibako_Destroy -.word ObjKibako_Update -.word ObjKibako_Draw -glabel D_80B95850 - .word 0x0A090939, 0x20010000, 0x00000000, 0x00000002, 0x00010000, 0x4FC00748, 0x00000000, 0x01010100, 0x000C001B, 0x00000000, 0x00000000 -glabel D_80B9587C - .word 0x0000000C, 0x003CFE00 -glabel D_80B95884 - .word 0xC8500064, 0xB0F403E8, 0xB0F8003C, 0x30FC03E8, 0x00000000, 0x00000000, 0x00000000 - diff --git a/spec b/spec index 504a5922a7..8154de42e4 100644 --- a/spec +++ b/spec @@ -3495,7 +3495,6 @@ endseg beginseg name "ovl_Obj_Kibako" include "build/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" - include "build/data/overlays/actors/z_obj_kibako.data.o" include "build/data/overlays/actors/z_obj_kibako.reloc.o" endseg diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index 24bc9bb154..3d81f6fe42 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -1,10 +1,11 @@ /* * File: z_obj_kibako.c * Overlay: ovl_Obj_Kibako - * Description: Small, Liftable Crate + * Description: Small wooden box */ #include "z_obj_kibako.h" +#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #define FLAGS 0x04000010 @@ -15,7 +16,16 @@ void ObjKibako_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjKibako_Update(Actor* thisx, GlobalContext* globalCtx); void ObjKibako_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +void ObjKibako_SetupIdle(ObjKibako* this); +void ObjKibako_Idle(ObjKibako* this, GlobalContext* globalCtx); +void ObjKibako_SetupHeld(ObjKibako* this); +void ObjKibako_Held(ObjKibako* this, GlobalContext* globalCtx); +void ObjKibako_SetupThrown(ObjKibako* this); +void ObjKibako_Thrown(ObjKibako* this, GlobalContext* globalCtx); + +extern Gfx D_05005290[]; +extern Gfx D_05005380[]; + const ActorInit Obj_Kibako_InitVars = { ACTOR_OBJ_KIBAKO, ACTORTYPE_PROP, @@ -27,33 +37,242 @@ const ActorInit Obj_Kibako_InitVars = { (ActorFunc)ObjKibako_Update, (ActorFunc)ObjKibako_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94CA0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D00.s") +static ColliderCylinderInit sCylinderInit = { + { COLTYPE_UNK10, 0x09, 0x09, 0x39, 0x20, COLSHAPE_CYLINDER }, + { 0x00, { 0x00000002, 0x00, 0x01 }, { 0x4FC00748, 0x00, 0x00 }, 0x01, 0x01, 0x01 }, + { 12, 27, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94D34.s") +static CollisionCheckInfoInit sCCInfoInit = { 0, 0xC, 0x3C, 0xFE }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Init.s") +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 60, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Destroy.s") +void ObjKibako_SpawnCollectible(ObjKibako* this, GlobalContext* globalCtx) { + s16 collectible; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B94E38.s") + collectible = this->actor.params & 0x1F; + if ((collectible >= 0) && (collectible <= 0x19)) { + Item_DropCollectible(globalCtx, &this->actor.posRot.pos, + collectible | (((this->actor.params >> 8) & 0x3F) << 8)); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B950B8.s") +void ObjKibako_ApplyGravity(ObjKibako* this) { + this->actor.velocity.y += this->actor.gravity; + if (this->actor.velocity.y < this->actor.minVelocityY) { + this->actor.velocity.y = this->actor.minVelocityY; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95334.s") +void ObjKibako_InitCollider(Actor* thisx, GlobalContext* globalCtx) { + ObjKibako* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9534C.s") + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + Collider_CylinderUpdate(&this->actor, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95540.s") +void ObjKibako_Init(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + ObjKibako* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95574.s") + Actor_ProcessInitChain(&this->actor, sInitChain); + this->actor.gravity = -1.2f; + this->actor.minVelocityY = -13.0f; + ObjKibako_InitCollider(&this->actor, globalCtx); + func_80061ED4(&this->actor.colChkInfo, NULL, &sCCInfoInit); + ObjKibako_SetupIdle(this); + // wooden box + osSyncPrintf("(dungeon keep 木箱)(arg_data 0x%04x)\n", this->actor.params); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B95638.s") +void ObjKibako_Destroy(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; + ObjKibako* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/func_80B9569C.s") + Collider_DestroyCylinder(globalCtx, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Update.s") +void ObjKibako_AirBreak(ObjKibako* this, GlobalContext* globalCtx) { + s16 angle; + s32 i; + Vec3f* breakPos = &this->actor.posRot.pos; + Vec3f pos; + Vec3f velocity; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako/ObjKibako_Draw.s") + for (i = 0, angle = 0; i < 12; i++, angle += 0x4E20) { + f32 sn = Math_Sins(angle); + f32 cs = Math_Coss(angle); + f32 temp_rand; + s16 phi_s0; + + pos.x = sn * 16.0f; + pos.y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f; + pos.z = cs * 16.0f; + velocity.x = pos.x * 0.2f; + velocity.y = (Math_Rand_ZeroOne() * 6.0f) + 2.0f; + velocity.z = pos.z * 0.2f; + pos.x += breakPos->x; + pos.y += breakPos->y; + pos.z += breakPos->z; + temp_rand = Math_Rand_ZeroOne(); + if (temp_rand < 0.1f) { + phi_s0 = 0x60; + } else if (temp_rand < 0.7f) { + phi_s0 = 0x40; + } else { + phi_s0 = 0x20; + } + EffectSsKakera_Spawn(globalCtx, &pos, &velocity, breakPos, -200, phi_s0, 10, 10, 0, + (Math_Rand_ZeroOne() * 30.0f) + 10.0f, 0, 32, 60, KAKERA_COLOR_NONE, + OBJECT_GAMEPLAY_DANGEON_KEEP, D_05005380); + } + func_80033480(globalCtx, &this->actor.posRot.pos, 40.0f, 3, 50, 140, 1); +} + +void ObjKibako_WaterBreak(ObjKibako* this, GlobalContext* globalCtx) { + s16 angle; + s32 i; + Vec3f* breakPos = &this->actor.posRot.pos; + Vec3f pos; + Vec3f velocity; + + pos = *breakPos; + pos.y += this->actor.waterY; + EffectSsGSplash_Spawn(globalCtx, &pos, NULL, NULL, 0, 500); + + for (i = 0, angle = 0; i < 12; i++, angle += 0x4E20) { + f32 sn = Math_Sins(angle); + f32 cs = Math_Coss(angle); + f32 temp_rand; + s16 phi_s0; + + pos.x = sn * 16.0f; + pos.y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f; + pos.z = cs * 16.0f; + velocity.x = pos.x * 0.18f; + velocity.y = (Math_Rand_ZeroOne() * 4.0f) + 2.0f; + velocity.z = pos.z * 0.18f; + pos.x += breakPos->x; + pos.y += breakPos->y; + pos.z += breakPos->z; + temp_rand = Math_Rand_ZeroOne(); + phi_s0 = (temp_rand < 0.2f) ? 0x40 : 0x20; + EffectSsKakera_Spawn(globalCtx, &pos, &velocity, breakPos, -180, phi_s0, 30, 30, 0, + (Math_Rand_ZeroOne() * 30.0f) + 10.0f, 0, 32, 70, KAKERA_COLOR_NONE, + OBJECT_GAMEPLAY_DANGEON_KEEP, D_05005380); + } +} + +void ObjKibako_SetupIdle(ObjKibako* this) { + this->actionFunc = ObjKibako_Idle; + this->actor.colChkInfo.mass = 0xFE; +} + +void ObjKibako_Idle(ObjKibako* this, GlobalContext* globalCtx) { + if (Actor_HasParent(&this->actor, globalCtx)) { + ObjKibako_SetupHeld(this); + } else if ((this->actor.bgCheckFlags & 0x20) && (this->actor.waterY > 19.0f)) { + ObjKibako_WaterBreak(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 20, NA_SE_EV_WOODBOX_BREAK); + ObjKibako_SpawnCollectible(this, globalCtx); + Actor_Kill(&this->actor); + } else if (this->collider.base.acFlags & 2) { + ObjKibako_AirBreak(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 20, NA_SE_EV_WOODBOX_BREAK); + ObjKibako_SpawnCollectible(this, globalCtx); + Actor_Kill(&this->actor); + } else { + Actor_MoveForward(&this->actor); + func_8002E4B4(globalCtx, &this->actor, 19.0f, 20.0f, 0.0f, 5); + if (!(this->collider.base.maskA & 8) && (this->actor.xzDistFromLink > 28.0f)) { + this->collider.base.maskA |= 8; + } + if (this->actor.xzDistFromLink < 600.0f) { + ColliderCylinder* collider = &this->collider; + + Collider_CylinderUpdate(&this->actor, collider); + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &collider->base); + if (this->actor.xzDistFromLink < 180.0f) { + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &collider->base); + } + } + if (this->actor.xzDistFromLink < 100.0f) { + func_8002F580(&this->actor, globalCtx); + } + } +} + +void ObjKibako_SetupHeld(ObjKibako* this) { + this->actionFunc = ObjKibako_Held; + this->actor.room = -1; + func_8002F7DC(&this->actor, 0x878); +} + +void ObjKibako_Held(ObjKibako* this, GlobalContext* globalCtx) { + if (Actor_HasNoParent(&this->actor, globalCtx)) { + this->actor.room = globalCtx->roomCtx.curRoom.num; + if (fabsf(this->actor.speedXZ) < 0.1f) { + Audio_PlayActorSound2(&this->actor, NA_SE_EV_PUT_DOWN_WOODBOX); + ObjKibako_SetupIdle(this); + this->collider.base.maskA &= ~8; + } else { + ObjKibako_SetupThrown(this); + ObjKibako_ApplyGravity(this); + func_8002D7EC(&this->actor); + } + func_8002E4B4(globalCtx, &this->actor, 19.0f, 20.0f, 0.0f, 5); + } +} + +void ObjKibako_SetupThrown(ObjKibako* this) { + this->actor.velocity.x = Math_Sins(this->actor.posRot.rot.y) * this->actor.speedXZ; + this->actor.velocity.z = Math_Coss(this->actor.posRot.rot.y) * this->actor.speedXZ; + this->actor.colChkInfo.mass = 240; + this->actionFunc = ObjKibako_Thrown; +} + +void ObjKibako_Thrown(ObjKibako* this, GlobalContext* globalCtx) { + Actor* thisx = &this->actor; + + if ((thisx->bgCheckFlags & 0xB) || (this->collider.base.atFlags & 2)) { + ObjKibako_AirBreak(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &thisx->posRot.pos, 20, NA_SE_EV_WOODBOX_BREAK); + ObjKibako_SpawnCollectible(this, globalCtx); + Actor_Kill(thisx); + } else if (this->actor.bgCheckFlags & 0x40) { + ObjKibako_WaterBreak(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &thisx->posRot.pos, 20, NA_SE_EV_WOODBOX_BREAK); + ObjKibako_SpawnCollectible(this, globalCtx); + Actor_Kill(thisx); + } else { + ColliderCylinder* collider = &this->collider; + + ObjKibako_ApplyGravity(this); + func_8002D7EC(thisx); + func_8002E4B4(globalCtx, thisx, 19.0f, 20.0f, 0.0f, 5); + Collider_CylinderUpdate(thisx, collider); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &collider->base); + CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &collider->base); + } +} + +void ObjKibako_Update(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + ObjKibako* this = THIS; + + this->actionFunc(this, globalCtx); +} + +void ObjKibako_Draw(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + ObjKibako* this = THIS; + + Gfx_DrawDListOpa(globalCtx, D_05005290); +} diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h index 5bdb58faca..47a1382f63 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h @@ -6,9 +6,12 @@ struct ObjKibako; +typedef void (*ObjKibakoActionFunc)(struct ObjKibako*, GlobalContext*); + typedef struct ObjKibako { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x50]; + /* 0x014C */ ObjKibakoActionFunc actionFunc; + /* 0x0150 */ ColliderCylinder collider; } ObjKibako; // size = 0x019C extern const ActorInit Obj_Kibako_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index 6041690edb..76f35462c6 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1133,6 +1133,10 @@ D_0600FCF8 = 0x0600FCF8; D_060105E0 = 0x060105E0; D_06012160 = 0x06012160; +// z_obj_kibako +D_05005290 = 0x05005290; +D_05005380 = 0x05005380; + // z_en_bg_hidan_rsekizou D_0600AD00 = 0x0600AD00; D_0600D5C0 = 0x0600D5C0;