diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Destroy.s deleted file mode 100644 index f23d5125b3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Destroy.s +++ /dev/null @@ -1,21 +0,0 @@ -glabel ObjKibako2_Destroy -/* 003E4 80B95DB4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 003E8 80B95DB8 AFA40018 */ sw $a0, 0x0018($sp) -/* 003EC 80B95DBC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 003F0 80B95DC0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 003F4 80B95DC4 8FA50018 */ lw $a1, 0x0018($sp) -/* 003F8 80B95DC8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 003FC 80B95DCC AFA7001C */ sw $a3, 0x001C($sp) -/* 00400 80B95DD0 0C0170EB */ jal Collider_DestroyCylinder - -/* 00404 80B95DD4 24A50164 */ addiu $a1, $a1, 0x0164 ## $a1 = 00000164 -/* 00408 80B95DD8 8FA4001C */ lw $a0, 0x001C($sp) -/* 0040C 80B95DDC 8FAE0018 */ lw $t6, 0x0018($sp) -/* 00410 80B95DE0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00414 80B95DE4 0C00FB56 */ jal DynaPoly_DeleteBgActor - ## DynaPoly_DeleteBgActor -/* 00418 80B95DE8 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 0041C 80B95DEC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00420 80B95DF0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00424 80B95DF4 03E00008 */ jr $ra -/* 00428 80B95DF8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Draw.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Draw.s deleted file mode 100644 index f615bffa4c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Draw.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel ObjKibako2_Draw -/* 005AC 80B95F7C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 005B0 80B95F80 AFA40018 */ sw $a0, 0x0018($sp) -/* 005B4 80B95F84 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 005B8 80B95F88 AFBF0014 */ sw $ra, 0x0014($sp) -/* 005BC 80B95F8C 3C050600 */ lui $a1, %hi(D_06000960) ## $a1 = 06000000 -/* 005C0 80B95F90 0C00D498 */ jal Gfx_DrawDListOpa - -/* 005C4 80B95F94 24A50960 */ addiu $a1, $a1, %lo(D_06000960) ## $a1 = 06000960 -/* 005C8 80B95F98 8FBF0014 */ lw $ra, 0x0014($sp) -/* 005CC 80B95F9C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 005D0 80B95FA0 03E00008 */ jr $ra -/* 005D4 80B95FA4 00000000 */ nop -/* 005D8 80B95FA8 00000000 */ nop -/* 005DC 80B95FAC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Init.s deleted file mode 100644 index fe0fe92b80..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Init.s +++ /dev/null @@ -1,60 +0,0 @@ -.rdata -glabel D_80B96010 - .asciz "木箱(据置)(arg %04xH)(item %04xH %d)\n" - .balign 4 - -.text -glabel ObjKibako2_Init -/* 00324 80B95CF4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00328 80B95CF8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0032C 80B95CFC AFB00018 */ sw $s0, 0x0018($sp) -/* 00330 80B95D00 AFA5003C */ sw $a1, 0x003C($sp) -/* 00334 80B95D04 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00338 80B95D08 AFA0002C */ sw $zero, 0x002C($sp) -/* 0033C 80B95D0C 0C010D20 */ jal DynaPolyActor_Init - -/* 00340 80B95D10 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00344 80B95D14 3C0580B9 */ lui $a1, %hi(D_80B95FFC) ## $a1 = 80B90000 -/* 00348 80B95D18 24A55FFC */ addiu $a1, $a1, %lo(D_80B95FFC) ## $a1 = 80B95FFC -/* 0034C 80B95D1C 0C01E037 */ jal Actor_ProcessInitChain - -/* 00350 80B95D20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00354 80B95D24 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00358 80B95D28 0C2E5674 */ jal func_80B959D0 -/* 0035C 80B95D2C 8FA5003C */ lw $a1, 0x003C($sp) -/* 00360 80B95D30 3C040600 */ lui $a0, %hi(D_06000B70) ## $a0 = 06000000 -/* 00364 80B95D34 24840B70 */ addiu $a0, $a0, %lo(D_06000B70) ## $a0 = 06000B70 -/* 00368 80B95D38 0C010620 */ jal CollisionHeader_GetVirtual - -/* 0036C 80B95D3C 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4 -/* 00370 80B95D40 8FA4003C */ lw $a0, 0x003C($sp) -/* 00374 80B95D44 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00378 80B95D48 8FA7002C */ lw $a3, 0x002C($sp) -/* 0037C 80B95D4C 0C00FA9D */ jal DynaPoly_SetBgActor - ## DynaPoly_SetBgActor -/* 00380 80B95D50 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00384 80B95D54 A60000B4 */ sh $zero, 0x00B4($s0) ## 000000B4 -/* 00388 80B95D58 860F0018 */ lh $t7, 0x0018($s0) ## 00000018 -/* 0038C 80B95D5C 860300B4 */ lh $v1, 0x00B4($s0) ## 000000B4 -/* 00390 80B95D60 3C1980B9 */ lui $t9, %hi(func_80B95DFC) ## $t9 = 80B90000 -/* 00394 80B95D64 31F8003F */ andi $t8, $t7, 0x003F ## $t8 = 00000000 -/* 00398 80B95D68 A61801B4 */ sh $t8, 0x01B4($s0) ## 000001B4 -/* 0039C 80B95D6C 27395DFC */ addiu $t9, $t9, %lo(func_80B95DFC) ## $t9 = 80B95DFC -/* 003A0 80B95D70 3C0480B9 */ lui $a0, %hi(D_80B96010) ## $a0 = 80B90000 -/* 003A4 80B95D74 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 003A8 80B95D78 AE1901B0 */ sw $t9, 0x01B0($s0) ## 000001B0 -/* 003AC 80B95D7C 24846010 */ addiu $a0, $a0, %lo(D_80B96010) ## $a0 = 80B96010 -/* 003B0 80B95D80 860601B4 */ lh $a2, 0x01B4($s0) ## 000001B4 -/* 003B4 80B95D84 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 003B8 80B95D88 86070014 */ lh $a3, 0x0014($s0) ## 00000014 -/* 003BC 80B95D8C A6030030 */ sh $v1, 0x0030($s0) ## 00000030 -/* 003C0 80B95D90 A60300B8 */ sh $v1, 0x00B8($s0) ## 000000B8 -/* 003C4 80B95D94 A6030034 */ sh $v1, 0x0034($s0) ## 00000034 -/* 003C8 80B95D98 0C00084C */ jal osSyncPrintf - -/* 003CC 80B95D9C A6030018 */ sh $v1, 0x0018($s0) ## 00000018 -/* 003D0 80B95DA0 8FBF001C */ lw $ra, 0x001C($sp) -/* 003D4 80B95DA4 8FB00018 */ lw $s0, 0x0018($sp) -/* 003D8 80B95DA8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 003DC 80B95DAC 03E00008 */ jr $ra -/* 003E0 80B95DB0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Update.s deleted file mode 100644 index a8e51c005e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Update.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel ObjKibako2_Update -/* 00588 80B95F58 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0058C 80B95F5C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00590 80B95F60 8C9901B0 */ lw $t9, 0x01B0($a0) ## 000001B0 -/* 00594 80B95F64 0320F809 */ jalr $ra, $t9 -/* 00598 80B95F68 00000000 */ nop -/* 0059C 80B95F6C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 005A0 80B95F70 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 005A4 80B95F74 03E00008 */ jr $ra -/* 005A8 80B95F78 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B959D0.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B959D0.s deleted file mode 100644 index b0ad321e3f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B959D0.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80B959D0 -/* 00000 80B959D0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00004 80B959D4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00008 80B959D8 AFA50024 */ sw $a1, 0x0024($sp) -/* 0000C 80B959DC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00010 80B959E0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00014 80B959E4 24C50164 */ addiu $a1, $a2, 0x0164 ## $a1 = 00000164 -/* 00018 80B959E8 AFA50018 */ sw $a1, 0x0018($sp) -/* 0001C 80B959EC 0C0170D9 */ jal Collider_InitCylinder - -/* 00020 80B959F0 AFA60020 */ sw $a2, 0x0020($sp) -/* 00024 80B959F4 3C0780B9 */ lui $a3, %hi(D_80B95FD0) ## $a3 = 80B90000 -/* 00028 80B959F8 8FA60020 */ lw $a2, 0x0020($sp) -/* 0002C 80B959FC 24E75FD0 */ addiu $a3, $a3, %lo(D_80B95FD0) ## $a3 = 80B95FD0 -/* 00030 80B95A00 8FA40024 */ lw $a0, 0x0024($sp) -/* 00034 80B95A04 0C01712B */ jal Collider_SetCylinder - -/* 00038 80B95A08 8FA50018 */ lw $a1, 0x0018($sp) -/* 0003C 80B95A0C 8FA40020 */ lw $a0, 0x0020($sp) -/* 00040 80B95A10 0C0189B7 */ jal Collider_CylinderUpdate - -/* 00044 80B95A14 8FA50018 */ lw $a1, 0x0018($sp) -/* 00048 80B95A18 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0004C 80B95A1C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00050 80B95A20 03E00008 */ jr $ra -/* 00054 80B95A24 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95A28.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95A28.s deleted file mode 100644 index 73e1b0fdce..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95A28.s +++ /dev/null @@ -1,184 +0,0 @@ -.late_rodata -glabel D_80B96038 - .float 0.2 - -glabel D_80B9603C - .float 0.2 - -glabel D_80B96040 - .float 0.05 -glabel D_80B96044 - .float 0.7 - -.text -glabel func_80B95A28 -/* 00058 80B95A28 27BDFF18 */ addiu $sp, $sp, 0xFF18 ## $sp = FFFFFF18 -/* 0005C 80B95A2C F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 00060 80B95A30 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 00064 80B95A34 4481F000 */ mtc1 $at, $f30 ## $f30 = 2.00 -/* 00068 80B95A38 F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 0006C 80B95A3C 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 00070 80B95A40 4481E000 */ mtc1 $at, $f28 ## $f28 = 10.00 -/* 00074 80B95A44 AFB70094 */ sw $s7, 0x0094($sp) -/* 00078 80B95A48 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 0007C 80B95A4C 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 00080 80B95A50 AFBE0098 */ sw $s8, 0x0098($sp) -/* 00084 80B95A54 AFB60090 */ sw $s6, 0x0090($sp) -/* 00088 80B95A58 AFB5008C */ sw $s5, 0x008C($sp) -/* 0008C 80B95A5C AFB40088 */ sw $s4, 0x0088($sp) -/* 00090 80B95A60 AFB30084 */ sw $s3, 0x0084($sp) -/* 00094 80B95A64 AFB20080 */ sw $s2, 0x0080($sp) -/* 00098 80B95A68 AFB1007C */ sw $s1, 0x007C($sp) -/* 0009C 80B95A6C 3C170600 */ lui $s7, %hi(D_06001000) ## $s7 = 06000000 -/* 000A0 80B95A70 4481D000 */ mtc1 $at, $f26 ## $f26 = 30.00 -/* 000A4 80B95A74 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000 -/* 000A8 80B95A78 AFBF009C */ sw $ra, 0x009C($sp) -/* 000AC 80B95A7C AFB00078 */ sw $s0, 0x0078($sp) -/* 000B0 80B95A80 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 000B4 80B95A84 F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 000B8 80B95A88 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 000BC 80B95A8C 26F71000 */ addiu $s7, $s7, %lo(D_06001000) ## $s7 = 06001000 -/* 000C0 80B95A90 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000 -/* 000C4 80B95A94 24920024 */ addiu $s2, $a0, 0x0024 ## $s2 = 00000024 -/* 000C8 80B95A98 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -/* 000CC 80B95A9C 27B400D0 */ addiu $s4, $sp, 0x00D0 ## $s4 = FFFFFFE8 -/* 000D0 80B95AA0 27B600C4 */ addiu $s6, $sp, 0x00C4 ## $s6 = FFFFFFDC -/* 000D4 80B95AA4 241E0010 */ addiu $s8, $zero, 0x0010 ## $s8 = 00000010 -.L80B95AA8: -/* 000D8 80B95AA8 00112400 */ sll $a0, $s1, 16 -/* 000DC 80B95AAC 0C01DE1C */ jal Math_SinS - ## sins? -/* 000E0 80B95AB0 00042403 */ sra $a0, $a0, 16 -/* 000E4 80B95AB4 00112400 */ sll $a0, $s1, 16 -/* 000E8 80B95AB8 46000506 */ mov.s $f20, $f0 -/* 000EC 80B95ABC 0C01DE0D */ jal Math_CosS - ## coss? -/* 000F0 80B95AC0 00042403 */ sra $a0, $a0, 16 -/* 000F4 80B95AC4 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 000F8 80B95AC8 46000586 */ mov.s $f22, $f0 -/* 000FC 80B95ACC 461A0602 */ mul.s $f24, $f0, $f26 -/* 00100 80B95AD0 00000000 */ nop -/* 00104 80B95AD4 4618A102 */ mul.s $f4, $f20, $f24 -/* 00108 80B95AD8 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 0010C 80B95ADC E7A400D0 */ swc1 $f4, 0x00D0($sp) -/* 00110 80B95AE0 461C0182 */ mul.s $f6, $f0, $f28 -/* 00114 80B95AE4 3C0180B9 */ lui $at, %hi(D_80B96038) ## $at = 80B90000 -/* 00118 80B95AE8 C4326038 */ lwc1 $f18, %lo(D_80B96038)($at) -/* 0011C 80B95AEC 4618B282 */ mul.s $f10, $f22, $f24 -/* 00120 80B95AF0 C7B000D0 */ lwc1 $f16, 0x00D0($sp) -/* 00124 80B95AF4 46128102 */ mul.s $f4, $f16, $f18 -/* 00128 80B95AF8 461E3200 */ add.s $f8, $f6, $f30 -/* 0012C 80B95AFC E7AA00D8 */ swc1 $f10, 0x00D8($sp) -/* 00130 80B95B00 E7A800D4 */ swc1 $f8, 0x00D4($sp) -/* 00134 80B95B04 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00138 80B95B08 E7A400C4 */ swc1 $f4, 0x00C4($sp) -/* 0013C 80B95B0C 461C0182 */ mul.s $f6, $f0, $f28 -/* 00140 80B95B10 3C0180B9 */ lui $at, %hi(D_80B9603C) ## $at = 80B90000 -/* 00144 80B95B14 C430603C */ lwc1 $f16, %lo(D_80B9603C)($at) -/* 00148 80B95B18 C7AA00D8 */ lwc1 $f10, 0x00D8($sp) -/* 0014C 80B95B1C C7A400D0 */ lwc1 $f4, 0x00D0($sp) -/* 00150 80B95B20 46105482 */ mul.s $f18, $f10, $f16 -/* 00154 80B95B24 461E3200 */ add.s $f8, $f6, $f30 -/* 00158 80B95B28 C7B000D4 */ lwc1 $f16, 0x00D4($sp) -/* 0015C 80B95B2C E7A800C8 */ swc1 $f8, 0x00C8($sp) -/* 00160 80B95B30 E7B200CC */ swc1 $f18, 0x00CC($sp) -/* 00164 80B95B34 C6460000 */ lwc1 $f6, 0x0000($s2) ## 00000024 -/* 00168 80B95B38 46062200 */ add.s $f8, $f4, $f6 -/* 0016C 80B95B3C E7A800D0 */ swc1 $f8, 0x00D0($sp) -/* 00170 80B95B40 C6520004 */ lwc1 $f18, 0x0004($s2) ## 00000028 -/* 00174 80B95B44 46128100 */ add.s $f4, $f16, $f18 -/* 00178 80B95B48 E7A400D4 */ swc1 $f4, 0x00D4($sp) -/* 0017C 80B95B4C C6460008 */ lwc1 $f6, 0x0008($s2) ## 0000002C -/* 00180 80B95B50 46065200 */ add.s $f8, $f10, $f6 -/* 00184 80B95B54 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00188 80B95B58 E7A800D8 */ swc1 $f8, 0x00D8($sp) -/* 0018C 80B95B5C 3C0180B9 */ lui $at, %hi(D_80B96040) ## $at = 80B90000 -/* 00190 80B95B60 C4306040 */ lwc1 $f16, %lo(D_80B96040)($at) -/* 00194 80B95B64 3C0180B9 */ lui $at, %hi(D_80B96044) ## $at = 80B90000 -/* 00198 80B95B68 4610003C */ c.lt.s $f0, $f16 -/* 0019C 80B95B6C 00000000 */ nop -/* 001A0 80B95B70 45000003 */ bc1f .L80B95B80 -/* 001A4 80B95B74 00000000 */ nop -/* 001A8 80B95B78 10000009 */ beq $zero, $zero, .L80B95BA0 -/* 001AC 80B95B7C 24100060 */ addiu $s0, $zero, 0x0060 ## $s0 = 00000060 -.L80B95B80: -/* 001B0 80B95B80 C4326044 */ lwc1 $f18, %lo(D_80B96044)($at) -/* 001B4 80B95B84 24100020 */ addiu $s0, $zero, 0x0020 ## $s0 = 00000020 -/* 001B8 80B95B88 4612003C */ c.lt.s $f0, $f18 -/* 001BC 80B95B8C 00000000 */ nop -/* 001C0 80B95B90 45000003 */ bc1f .L80B95BA0 -/* 001C4 80B95B94 00000000 */ nop -/* 001C8 80B95B98 10000001 */ beq $zero, $zero, .L80B95BA0 -/* 001CC 80B95B9C 24100040 */ addiu $s0, $zero, 0x0040 ## $s0 = 00000040 -.L80B95BA0: -/* 001D0 80B95BA0 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 001D4 80B95BA4 00000000 */ nop -/* 001D8 80B95BA8 461A0102 */ mul.s $f4, $f0, $f26 -/* 001DC 80B95BAC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 001E0 80B95BB0 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00 -/* 001E4 80B95BB4 240EFF38 */ addiu $t6, $zero, 0xFF38 ## $t6 = FFFFFF38 -/* 001E8 80B95BB8 240F001C */ addiu $t7, $zero, 0x001C ## $t7 = 0000001C -/* 001EC 80B95BBC 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002 -/* 001F0 80B95BC0 24090046 */ addiu $t1, $zero, 0x0046 ## $t1 = 00000046 -/* 001F4 80B95BC4 460A2180 */ add.s $f6, $f4, $f10 -/* 001F8 80B95BC8 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 001FC 80B95BCC 240B0170 */ addiu $t3, $zero, 0x0170 ## $t3 = 00000170 -/* 00200 80B95BD0 AFAB0038 */ sw $t3, 0x0038($sp) -/* 00204 80B95BD4 4600320D */ trunc.w.s $f8, $f6 -/* 00208 80B95BD8 AFAA0034 */ sw $t2, 0x0034($sp) -/* 0020C 80B95BDC AFA90030 */ sw $t1, 0x0030($sp) -/* 00210 80B95BE0 AFB8001C */ sw $t8, 0x001C($sp) -/* 00214 80B95BE4 44084000 */ mfc1 $t0, $f8 -/* 00218 80B95BE8 AFAF0018 */ sw $t7, 0x0018($sp) -/* 0021C 80B95BEC AFAE0010 */ sw $t6, 0x0010($sp) -/* 00220 80B95BF0 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000 -/* 00224 80B95BF4 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE8 -/* 00228 80B95BF8 02C03025 */ or $a2, $s6, $zero ## $a2 = FFFFFFDC -/* 0022C 80B95BFC 02803825 */ or $a3, $s4, $zero ## $a3 = FFFFFFE8 -/* 00230 80B95C00 AFB00014 */ sw $s0, 0x0014($sp) -/* 00234 80B95C04 AFA00020 */ sw $zero, 0x0020($sp) -/* 00238 80B95C08 AFA00028 */ sw $zero, 0x0028($sp) -/* 0023C 80B95C0C AFA0002C */ sw $zero, 0x002C($sp) -/* 00240 80B95C10 AFB7003C */ sw $s7, 0x003C($sp) -/* 00244 80B95C14 0C00A7A3 */ jal EffectSsKakera_Spawn - -/* 00248 80B95C18 AFA80024 */ sw $t0, 0x0024($sp) -/* 0024C 80B95C1C 26314E20 */ addiu $s1, $s1, 0x4E20 ## $s1 = 00004E20 -/* 00250 80B95C20 00118C00 */ sll $s1, $s1, 16 -/* 00254 80B95C24 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001 -/* 00258 80B95C28 167EFF9F */ bne $s3, $s8, .L80B95AA8 -/* 0025C 80B95C2C 00118C03 */ sra $s1, $s1, 16 -/* 00260 80B95C30 240C0064 */ addiu $t4, $zero, 0x0064 ## $t4 = 00000064 -/* 00264 80B95C34 240D00A0 */ addiu $t5, $zero, 0x00A0 ## $t5 = 000000A0 -/* 00268 80B95C38 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 0026C 80B95C3C AFAE0018 */ sw $t6, 0x0018($sp) -/* 00270 80B95C40 AFAD0014 */ sw $t5, 0x0014($sp) -/* 00274 80B95C44 AFAC0010 */ sw $t4, 0x0010($sp) -/* 00278 80B95C48 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000 -/* 0027C 80B95C4C 02402825 */ or $a1, $s2, $zero ## $a1 = 00000024 -/* 00280 80B95C50 3C0642B4 */ lui $a2, 0x42B4 ## $a2 = 42B40000 -/* 00284 80B95C54 0C00CD20 */ jal func_80033480 -/* 00288 80B95C58 24070006 */ addiu $a3, $zero, 0x0006 ## $a3 = 00000006 -/* 0028C 80B95C5C 8FBF009C */ lw $ra, 0x009C($sp) -/* 00290 80B95C60 D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 00294 80B95C64 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 00298 80B95C68 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 0029C 80B95C6C D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 002A0 80B95C70 D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 002A4 80B95C74 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 002A8 80B95C78 8FB00078 */ lw $s0, 0x0078($sp) -/* 002AC 80B95C7C 8FB1007C */ lw $s1, 0x007C($sp) -/* 002B0 80B95C80 8FB20080 */ lw $s2, 0x0080($sp) -/* 002B4 80B95C84 8FB30084 */ lw $s3, 0x0084($sp) -/* 002B8 80B95C88 8FB40088 */ lw $s4, 0x0088($sp) -/* 002BC 80B95C8C 8FB5008C */ lw $s5, 0x008C($sp) -/* 002C0 80B95C90 8FB60090 */ lw $s6, 0x0090($sp) -/* 002C4 80B95C94 8FB70094 */ lw $s7, 0x0094($sp) -/* 002C8 80B95C98 8FBE0098 */ lw $s8, 0x0098($sp) -/* 002CC 80B95C9C 03E00008 */ jr $ra -/* 002D0 80B95CA0 27BD00E8 */ addiu $sp, $sp, 0x00E8 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95CA4.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95CA4.s deleted file mode 100644 index 5208d29db8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95CA4.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_80B95CA4 -/* 002D4 80B95CA4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 002D8 80B95CA8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 002DC 80B95CAC AFA5001C */ sw $a1, 0x001C($sp) -/* 002E0 80B95CB0 84820014 */ lh $v0, 0x0014($a0) ## 00000014 -/* 002E4 80B95CB4 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 002E8 80B95CB8 848301B4 */ lh $v1, 0x01B4($a0) ## 000001B4 -/* 002EC 80B95CBC 04400009 */ bltz $v0, .L80B95CE4 -/* 002F0 80B95CC0 2841001A */ slti $at, $v0, 0x001A -/* 002F4 80B95CC4 10200007 */ beq $at, $zero, .L80B95CE4 -/* 002F8 80B95CC8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 002FC 80B95CCC 00037200 */ sll $t6, $v1, 8 -/* 00300 80B95CD0 004E3025 */ or $a2, $v0, $t6 ## $a2 = 00000000 -/* 00304 80B95CD4 00063400 */ sll $a2, $a2, 16 -/* 00308 80B95CD8 00063403 */ sra $a2, $a2, 16 -/* 0030C 80B95CDC 0C007D52 */ jal Item_DropCollectible - -/* 00310 80B95CE0 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024 -.L80B95CE4: -/* 00314 80B95CE4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00318 80B95CE8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0031C 80B95CEC 03E00008 */ jr $ra -/* 00320 80B95CF0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95DFC.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95DFC.s deleted file mode 100644 index bab4df0b97..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95DFC.s +++ /dev/null @@ -1,61 +0,0 @@ -glabel func_80B95DFC -/* 0042C 80B95DFC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00430 80B95E00 AFBF001C */ sw $ra, 0x001C($sp) -/* 00434 80B95E04 AFB10018 */ sw $s1, 0x0018($sp) -/* 00438 80B95E08 AFB00014 */ sw $s0, 0x0014($sp) -/* 0043C 80B95E0C 908E0175 */ lbu $t6, 0x0175($a0) ## 00000175 -/* 00440 80B95E10 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00444 80B95E14 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00448 80B95E18 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000 -/* 0044C 80B95E1C 55E0000A */ bnel $t7, $zero, .L80B95E48 -/* 00450 80B95E20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00454 80B95E24 84980018 */ lh $t8, 0x0018($a0) ## 00000018 -/* 00458 80B95E28 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 0045C 80B95E2C 57000006 */ bnel $t8, $zero, .L80B95E48 -/* 00460 80B95E30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00464 80B95E34 0C00CDA1 */ jal func_80033684 -/* 00468 80B95E38 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 0046C 80B95E3C 10400015 */ beq $v0, $zero, .L80B95E94 -/* 00470 80B95E40 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 00474 80B95E44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80B95E48: -/* 00478 80B95E48 0C2E568A */ jal func_80B95A28 -/* 0047C 80B95E4C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00480 80B95E50 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00484 80B95E54 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00488 80B95E58 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 0048C 80B95E5C 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00490 80B95E60 240728AA */ addiu $a3, $zero, 0x28AA ## $a3 = 000028AA -/* 00494 80B95E64 8E190004 */ lw $t9, 0x0004($s0) ## 00000004 -/* 00498 80B95E68 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0049C 80B95E6C 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810 -/* 004A0 80B95E70 37280010 */ ori $t0, $t9, 0x0010 ## $t0 = 00000010 -/* 004A4 80B95E74 AE080004 */ sw $t0, 0x0004($s0) ## 00000004 -/* 004A8 80B95E78 0C00FAFE */ jal func_8003EBF8 -/* 004AC 80B95E7C 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 004B0 80B95E80 3C0980B9 */ lui $t1, %hi(func_80B95ED4) ## $t1 = 80B90000 -/* 004B4 80B95E84 25295ED4 */ addiu $t1, $t1, %lo(func_80B95ED4) ## $t1 = 80B95ED4 -/* 004B8 80B95E88 AE000134 */ sw $zero, 0x0134($s0) ## 00000134 -/* 004BC 80B95E8C 1000000C */ beq $zero, $zero, .L80B95EC0 -/* 004C0 80B95E90 AE0901B0 */ sw $t1, 0x01B0($s0) ## 000001B0 -.L80B95E94: -/* 004C4 80B95E94 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 004C8 80B95E98 44813000 */ mtc1 $at, $f6 ## $f6 = 0.00 -/* 004CC 80B95E9C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 004D0 80B95EA0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 004D4 80B95EA4 4606203C */ c.lt.s $f4, $f6 -/* 004D8 80B95EA8 02212821 */ addu $a1, $s1, $at -/* 004DC 80B95EAC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 004E0 80B95EB0 45020004 */ bc1fl .L80B95EC4 -/* 004E4 80B95EB4 8FBF001C */ lw $ra, 0x001C($sp) -/* 004E8 80B95EB8 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 004EC 80B95EBC 26060164 */ addiu $a2, $s0, 0x0164 ## $a2 = 00000164 -.L80B95EC0: -/* 004F0 80B95EC0 8FBF001C */ lw $ra, 0x001C($sp) -.L80B95EC4: -/* 004F4 80B95EC4 8FB00014 */ lw $s0, 0x0014($sp) -/* 004F8 80B95EC8 8FB10018 */ lw $s1, 0x0018($sp) -/* 004FC 80B95ECC 03E00008 */ jr $ra -/* 00500 80B95ED0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95ED4.s b/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95ED4.s deleted file mode 100644 index 0c64080ede..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95ED4.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_80B95ED4 -/* 00504 80B95ED4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00508 80B95ED8 AFBF0034 */ sw $ra, 0x0034($sp) -/* 0050C 80B95EDC AFB00030 */ sw $s0, 0x0030($sp) -/* 00510 80B95EE0 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00514 80B95EE4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00518 80B95EE8 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24 -/* 0051C 80B95EEC 304E8000 */ andi $t6, $v0, 0x8000 ## $t6 = 00000000 -/* 00520 80B95EF0 15C00010 */ bne $t6, $zero, .L80B95F34 -/* 00524 80B95EF4 00000000 */ nop -/* 00528 80B95EF8 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028 -/* 0052C 80B95EFC 8E070024 */ lw $a3, 0x0024($s0) ## 00000024 -/* 00530 80B95F00 34588000 */ ori $t8, $v0, 0x8000 ## $t8 = 00008000 -/* 00534 80B95F04 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00538 80B95F08 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C -/* 0053C 80B95F0C AFA00018 */ sw $zero, 0x0018($sp) -/* 00540 80B95F10 24060095 */ addiu $a2, $zero, 0x0095 ## $a2 = 00000095 -/* 00544 80B95F14 E7A60014 */ swc1 $f6, 0x0014($sp) -/* 00548 80B95F18 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6 -/* 0054C 80B95F1C AFA5003C */ sw $a1, 0x003C($sp) -/* 00550 80B95F20 AFB80024 */ sw $t8, 0x0024($sp) -/* 00554 80B95F24 AFA00020 */ sw $zero, 0x0020($sp) -/* 00558 80B95F28 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 0055C 80B95F2C AFAF001C */ sw $t7, 0x001C($sp) -/* 00560 80B95F30 8FA5003C */ lw $a1, 0x003C($sp) -.L80B95F34: -/* 00564 80B95F34 0C2E5729 */ jal func_80B95CA4 -/* 00568 80B95F38 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0056C 80B95F3C 0C00B55C */ jal Actor_Kill - -/* 00570 80B95F40 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00574 80B95F44 8FBF0034 */ lw $ra, 0x0034($sp) -/* 00578 80B95F48 8FB00030 */ lw $s0, 0x0030($sp) -/* 0057C 80B95F4C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00580 80B95F50 03E00008 */ jr $ra -/* 00584 80B95F54 00000000 */ nop diff --git a/data/overlays/actors/z_obj_kibako2.data.s b/data/overlays/actors/z_obj_kibako2.data.s deleted file mode 100644 index 5e60a99568..0000000000 --- a/data/overlays/actors/z_obj_kibako2.data.s +++ /dev/null @@ -1,22 +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_Kibako2_InitVars - .word 0x01A00100, 0x00000000, 0x01700000, 0x000001B8 -.word ObjKibako2_Init -.word ObjKibako2_Destroy -.word ObjKibako2_Update -.word ObjKibako2_Draw -glabel D_80B95FD0 - .word 0x0A000900, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x40000040, 0x00000000, 0x00010000, 0x001F0030, 0x00000000, 0x00000000 -glabel D_80B95FFC - .word 0xC8500064, 0xB0F40BB8, 0xB0F801F4, 0x30FC03E8, 0x00000000 - diff --git a/data/overlays/actors/z_obj_kibako2.reloc.s b/data/overlays/actors/z_obj_kibako2.reloc.s deleted file mode 100644 index 1a23a07cde..0000000000 --- a/data/overlays/actors/z_obj_kibako2.reloc.s +++ /dev/null @@ -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_80B96050 - .incbin "baserom/ovl_Obj_Kibako2", 0x680, 0x00000080 diff --git a/spec b/spec index 91641819ea..0f1f789f7c 100644 --- a/spec +++ b/spec @@ -3383,8 +3383,7 @@ endseg beginseg name "ovl_Obj_Kibako2" include "build/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" - include "build/data/overlays/actors/z_obj_kibako2.data.o" - include "build/data/overlays/actors/z_obj_kibako2.reloc.o" + include "build/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c index bb4aa0522f..bdce44d611 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c @@ -5,6 +5,7 @@ */ #include "z_obj_kibako2.h" +#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #define FLAGS 0x00000000 @@ -14,12 +15,13 @@ void ObjKibako2_Init(Actor* thisx, GlobalContext* globalCtx); void ObjKibako2_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjKibako2_Update(Actor* thisx, GlobalContext* globalCtx); void ObjKibako2_Draw(Actor* thisx, GlobalContext* globalCtx); +void ObjKibako2_Idle(ObjKibako2* this, GlobalContext* globalCtx); +void ObjKibako2_Kill(ObjKibako2* this, GlobalContext* globalCtx); -extern UNK_TYPE D_06000960; +extern Gfx D_06000960[]; extern UNK_TYPE D_06000B70; -extern UNK_TYPE D_06001000; +extern Gfx D_06001000[]; -/* const ActorInit Obj_Kibako2_InitVars = { ACTOR_OBJ_KIBAKO2, ACTORTYPE_BG, @@ -31,21 +33,140 @@ const ActorInit Obj_Kibako2_InitVars = { (ActorFunc)ObjKibako2_Update, (ActorFunc)ObjKibako2_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B959D0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95A28.s") +static ColliderCylinderInit sCylinderInit = { + { COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x20, COLSHAPE_CYLINDER }, + { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x40000040, 0x00, 0x00 }, 0x00, 0x01, 0x00 }, + { 31, 48, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95CA4.s") +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Init.s") +void ObjKibako2_InitCollider(Actor* thisx, GlobalContext* globalCtx) { + ObjKibako2* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Destroy.s") + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit); + Collider_CylinderUpdate(&this->dyna.actor, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95DFC.s") +void ObjKibako2_Break(ObjKibako2* this, GlobalContext* globalCtx) { + s32 pad[2]; + Vec3f* thisPos; + Vec3f pos; + Vec3f velocity; + s16 angle; + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/func_80B95ED4.s") + thisPos = &this->dyna.actor.posRot.pos; + for (i = 0, angle = 0; i < 0x10; i++, angle += 0x4E20) { + f32 sn = Math_SinS(angle); + f32 cs = Math_CosS(angle); + f32 temp_rand; + s32 phi_s0; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Update.s") + temp_rand = Rand_ZeroOne() * 30.0f; + pos.x = sn * temp_rand; + pos.y = (Rand_ZeroOne() * 10.0f) + 2.0f; + pos.z = cs * temp_rand; + velocity.x = pos.x * 0.2f; + velocity.y = (Rand_ZeroOne() * 10.0f) + 2.0f; + velocity.z = pos.z * 0.2f; + pos.x += thisPos->x; + pos.y += thisPos->y; + pos.z += thisPos->z; + temp_rand = Rand_ZeroOne(); + if (temp_rand < 0.05f) { + phi_s0 = 0x60; + } else if (temp_rand < 0.7f) { + phi_s0 = 0x40; + } else { + phi_s0 = 0x20; + } + EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &pos, -200, phi_s0, 28, 2, 0, (Rand_ZeroOne() * 30.0f) + 5.0f, + 0, 0, 70, KAKERA_COLOR_NONE, OBJECT_KIBAKO2, D_06001000); + } + func_80033480(globalCtx, thisPos, 90.0f, 6, 100, 160, 1); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Kibako2/ObjKibako2_Draw.s") +void ObjKibako2_SpawnCollectible(ObjKibako2* this, GlobalContext* globalCtx) { + s16 itemDropped; + s16 collectibleFlagTemp; + + collectibleFlagTemp = this->collectibleFlag; + itemDropped = this->dyna.actor.initPosRot.rot.x; + if (itemDropped >= 0 && itemDropped < 0x1A) { + Item_DropCollectible(globalCtx, &this->dyna.actor.posRot.pos, itemDropped | (collectibleFlagTemp << 8)); + } +} + +void ObjKibako2_Init(Actor* thisx, GlobalContext* globalCtx) { + ObjKibako2* this = THIS; + s16 pad; + CollisionHeader* colHeader = NULL; + u32 bgId; + + DynaPolyActor_Init(&this->dyna, 0); + Actor_ProcessInitChain(&this->dyna.actor, sInitChain); + ObjKibako2_InitCollider(thisx, globalCtx); + CollisionHeader_GetVirtual(&D_06000B70, &colHeader); + bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); + this->collectibleFlag = this->dyna.actor.initPosRot.rot.z & 0x3F; + this->dyna.bgId = bgId; + this->actionFunc = ObjKibako2_Idle; + this->dyna.actor.initPosRot.rot.z = this->dyna.actor.posRot.rot.z = this->dyna.actor.shape.rot.z = + this->dyna.actor.posRot.rot.x = this->dyna.actor.shape.rot.x = 0; + // Wooden box (stationary) + osSyncPrintf("木箱(据置)(arg %04xH)(item %04xH %d)\n", this->dyna.actor.params, this->collectibleFlag, + this->dyna.actor.initPosRot.rot.x); +} + +void ObjKibako2_Destroy(Actor* thisx, GlobalContext* globalCtx) { + ObjKibako2* this = THIS; + + Collider_DestroyCylinder(globalCtx, &this->collider); + DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); +} + +void ObjKibako2_Idle(ObjKibako2* this, GlobalContext* globalCtx) { + if ((this->collider.base.acFlags & 2) || this->dyna.actor.initPosRot.rot.z != 0 || + func_80033684(globalCtx, &this->dyna.actor) != 0) { + ObjKibako2_Break(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.posRot.pos, 20, NA_SE_EV_WOODBOX_BREAK); + this->dyna.actor.flags |= 0x10; + func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); + this->dyna.actor.draw = NULL; + this->actionFunc = ObjKibako2_Kill; + return; + } + if (this->dyna.actor.xzDistToLink < 600.0f) { + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + } +} + +void ObjKibako2_Kill(ObjKibako2* this, GlobalContext* globalCtx) { + s16 params = this->dyna.actor.params; + + if ((params & 0x8000) == 0) { + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_SW, this->dyna.actor.posRot.pos.x, + this->dyna.actor.posRot.pos.y, this->dyna.actor.posRot.pos.z, 0, this->dyna.actor.shape.rot.y, 0, + params | 0x8000); + } + ObjKibako2_SpawnCollectible(this, globalCtx); + Actor_Kill(&this->dyna.actor); +} + +void ObjKibako2_Update(Actor* thisx, GlobalContext* globalCtx) { + ObjKibako2* this = THIS; + + this->actionFunc(this, globalCtx); +} + +void ObjKibako2_Draw(Actor* thisx, GlobalContext* globalCtx) { + Gfx_DrawDListOpa(globalCtx, D_06000960); +} diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.h b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.h index f7280fe446..561b3129c2 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.h +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.h @@ -6,9 +6,13 @@ struct ObjKibako2; +typedef void (*ObjKibako2ActionFunc)(struct ObjKibako2*, GlobalContext*); + typedef struct ObjKibako2 { /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ char unk_164[0x54]; + /* 0x0164 */ ColliderCylinder collider; + /* 0x01B0 */ ObjKibako2ActionFunc actionFunc; + /* 0x01B4 */ s16 collectibleFlag; } ObjKibako2; // size = 0x01B8 extern const ActorInit Obj_Kibako2_InitVars;