From 80225854651a43e322a939016c269c4895fd25ad Mon Sep 17 00:00:00 2001 From: Parker Burnett Date: Sat, 20 Feb 2021 20:32:35 -0500 Subject: [PATCH] obj_tsubo OK (#702) * Getting started * matched tsubo_init * matched func_80BA0DF4 and func_80BA100C * matched func_80BA1294, with progress func_80BA15BC * matched final func, deleted asm, some documenting * Fixing some control flow, and names * Fixing suggested changes (some still remain) * adding the dangeon_keep gfx --- .../actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s | 12 - .../actors/ovl_Obj_Tsubo/ObjTsubo_Init.s | 85 ----- .../actors/ovl_Obj_Tsubo/ObjTsubo_Update.s | 10 - .../actors/ovl_Obj_Tsubo/func_80BA0D60.s | 27 -- .../actors/ovl_Obj_Tsubo/func_80BA0DC0.s | 15 - .../actors/ovl_Obj_Tsubo/func_80BA0DF4.s | 52 --- .../actors/ovl_Obj_Tsubo/func_80BA0E98.s | 26 -- .../actors/ovl_Obj_Tsubo/func_80BA100C.s | 184 ----------- .../actors/ovl_Obj_Tsubo/func_80BA1294.s | 185 ----------- .../actors/ovl_Obj_Tsubo/func_80BA152C.s | 5 - .../actors/ovl_Obj_Tsubo/func_80BA153C.s | 31 -- .../actors/ovl_Obj_Tsubo/func_80BA15AC.s | 5 - .../actors/ovl_Obj_Tsubo/func_80BA15BC.s | 145 --------- .../actors/ovl_Obj_Tsubo/func_80BA17C4.s | 19 -- .../actors/ovl_Obj_Tsubo/func_80BA180C.s | 34 -- .../actors/ovl_Obj_Tsubo/func_80BA188C.s | 61 ---- .../actors/ovl_Obj_Tsubo/func_80BA1958.s | 114 ------- .../actors/ovl_Obj_Tsubo/func_80BA1B0C.s | 19 -- data/overlays/actors/z_obj_tsubo.data.s | 38 --- data/overlays/actors/z_obj_tsubo.reloc.s | 13 - spec | 3 +- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 296 ++++++++++++++++-- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.h | 4 +- 23 files changed, 279 insertions(+), 1104 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0D60.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DC0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DF4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0E98.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA100C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1294.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA152C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA153C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15AC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15BC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA17C4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA180C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA188C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1958.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1B0C.s delete mode 100644 data/overlays/actors/z_obj_tsubo.data.s delete mode 100644 data/overlays/actors/z_obj_tsubo.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s deleted file mode 100644 index cea50c32cb..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel ObjTsubo_Destroy -/* 00284 80BA0FE4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00288 80BA0FE8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 0028C 80BA0FEC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00290 80BA0FF0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00294 80BA0FF4 0C0170EB */ jal Collider_DestroyCylinder - -/* 00298 80BA0FF8 24E50150 */ addiu $a1, $a3, 0x0150 ## $a1 = 00000150 -/* 0029C 80BA0FFC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 002A0 80BA1000 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 002A4 80BA1004 03E00008 */ jr $ra -/* 002A8 80BA1008 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Init.s deleted file mode 100644 index 6957a27ea3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Init.s +++ /dev/null @@ -1,85 +0,0 @@ -.rdata -glabel D_80BA1BF0 - .asciz "Error : バンク危険! (arg_data 0x%04x)(%s %d)\n" - .balign 4 - -glabel D_80BA1C20 - .asciz "../z_obj_tsubo.c" - .balign 4 - -glabel D_80BA1C34 - .asciz "(dungeon keep 壷)(arg_data 0x%04x)\n" - .balign 4 - -.text -glabel ObjTsubo_Init -/* 00190 80BA0EF0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00194 80BA0EF4 AFA50024 */ sw $a1, 0x0024($sp) -/* 00198 80BA0EF8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0019C 80BA0EFC AFB00018 */ sw $s0, 0x0018($sp) -/* 001A0 80BA0F00 3C0580BA */ lui $a1, %hi(D_80BA1BC8) ## $a1 = 80BA0000 -/* 001A4 80BA0F04 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 001A8 80BA0F08 0C01E037 */ jal Actor_ProcessInitChain - -/* 001AC 80BA0F0C 24A51BC8 */ addiu $a1, $a1, %lo(D_80BA1BC8) ## $a1 = 80BA1BC8 -/* 001B0 80BA0F10 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 001B4 80BA0F14 0C2E83A6 */ jal func_80BA0E98 -/* 001B8 80BA0F18 8FA50024 */ lw $a1, 0x0024($sp) -/* 001BC 80BA0F1C 3C0680BA */ lui $a2, %hi(D_80BA1BC0) ## $a2 = 80BA0000 -/* 001C0 80BA0F20 24C61BC0 */ addiu $a2, $a2, %lo(D_80BA1BC0) ## $a2 = 80BA1BC0 -/* 001C4 80BA0F24 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098 -/* 001C8 80BA0F28 0C0187B5 */ jal CollisionCheck_SetInfo -/* 001CC 80BA0F2C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 001D0 80BA0F30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 001D4 80BA0F34 0C2E837D */ jal func_80BA0DF4 -/* 001D8 80BA0F38 8FA50024 */ lw $a1, 0x0024($sp) -/* 001DC 80BA0F3C 14400005 */ bne $v0, $zero, .L80BA0F54 -/* 001E0 80BA0F40 8FA40024 */ lw $a0, 0x0024($sp) -/* 001E4 80BA0F44 0C00B55C */ jal Actor_Kill - -/* 001E8 80BA0F48 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 001EC 80BA0F4C 10000021 */ beq $zero, $zero, .L80BA0FD4 -/* 001F0 80BA0F50 8FBF001C */ lw $ra, 0x001C($sp) -.L80BA0F54: -/* 001F4 80BA0F54 860E001C */ lh $t6, 0x001C($s0) ## 0000001C -/* 001F8 80BA0F58 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 001FC 80BA0F5C 3C0580BA */ lui $a1, %hi(D_80BA1B80) ## $a1 = 80BA0000 -/* 00200 80BA0F60 000E7A03 */ sra $t7, $t6, 8 -/* 00204 80BA0F64 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000 -/* 00208 80BA0F68 0018C840 */ sll $t9, $t8, 1 -/* 0020C 80BA0F6C 00B92821 */ addu $a1, $a1, $t9 -/* 00210 80BA0F70 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4 -/* 00214 80BA0F74 00812021 */ addu $a0, $a0, $at -/* 00218 80BA0F78 0C02604B */ jal Object_GetIndex - ## ObjectIndex -/* 0021C 80BA0F7C 84A51B80 */ lh $a1, %lo(D_80BA1B80)($a1) -/* 00220 80BA0F80 A202019C */ sb $v0, 0x019C($s0) ## 0000019C -/* 00224 80BA0F84 8208019C */ lb $t0, 0x019C($s0) ## 0000019C -/* 00228 80BA0F88 3C0480BA */ lui $a0, %hi(D_80BA1BF0) ## $a0 = 80BA0000 -/* 0022C 80BA0F8C 24841BF0 */ addiu $a0, $a0, %lo(D_80BA1BF0) ## $a0 = 80BA1BF0 -/* 00230 80BA0F90 05010009 */ bgez $t0, .L80BA0FB8 -/* 00234 80BA0F94 3C0680BA */ lui $a2, %hi(D_80BA1C20) ## $a2 = 80BA0000 -/* 00238 80BA0F98 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 0023C 80BA0F9C 24C61C20 */ addiu $a2, $a2, %lo(D_80BA1C20) ## $a2 = 80BA1C20 -/* 00240 80BA0FA0 0C00084C */ jal osSyncPrintf - -/* 00244 80BA0FA4 2407019A */ addiu $a3, $zero, 0x019A ## $a3 = 0000019A -/* 00248 80BA0FA8 0C00B55C */ jal Actor_Kill - -/* 0024C 80BA0FAC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00250 80BA0FB0 10000008 */ beq $zero, $zero, .L80BA0FD4 -/* 00254 80BA0FB4 8FBF001C */ lw $ra, 0x001C($sp) -.L80BA0FB8: -/* 00258 80BA0FB8 0C2E854B */ jal func_80BA152C -/* 0025C 80BA0FBC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00260 80BA0FC0 3C0480BA */ lui $a0, %hi(D_80BA1C34) ## $a0 = 80BA0000 -/* 00264 80BA0FC4 24841C34 */ addiu $a0, $a0, %lo(D_80BA1C34) ## $a0 = 80BA1C34 -/* 00268 80BA0FC8 0C00084C */ jal osSyncPrintf - -/* 0026C 80BA0FCC 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00270 80BA0FD0 8FBF001C */ lw $ra, 0x001C($sp) -.L80BA0FD4: -/* 00274 80BA0FD4 8FB00018 */ lw $s0, 0x0018($sp) -/* 00278 80BA0FD8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 0027C 80BA0FDC 03E00008 */ jr $ra -/* 00280 80BA0FE0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Update.s deleted file mode 100644 index 2ccb33a8a6..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Update.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel ObjTsubo_Update -/* 00D88 80BA1AE8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00D8C 80BA1AEC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00D90 80BA1AF0 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C -/* 00D94 80BA1AF4 0320F809 */ jalr $ra, $t9 -/* 00D98 80BA1AF8 00000000 */ nop -/* 00D9C 80BA1AFC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00DA0 80BA1B00 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00DA4 80BA1B04 03E00008 */ jr $ra -/* 00DA8 80BA1B08 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0D60.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0D60.s deleted file mode 100644 index 28145e7e61..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0D60.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_80BA0D60 -/* 00000 80BA0D60 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00004 80BA0D64 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00008 80BA0D68 AFA5001C */ sw $a1, 0x001C($sp) -/* 0000C 80BA0D6C 8483001C */ lh $v1, 0x001C($a0) ## 0000001C -/* 00010 80BA0D70 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00014 80BA0D74 3062001F */ andi $v0, $v1, 0x001F ## $v0 = 00000000 -/* 00018 80BA0D78 00021400 */ sll $v0, $v0, 16 -/* 0001C 80BA0D7C 00021403 */ sra $v0, $v0, 16 -/* 00020 80BA0D80 0440000B */ bltz $v0, .L80BA0DB0 -/* 00024 80BA0D84 2841001A */ slti $at, $v0, 0x001A -/* 00028 80BA0D88 10200009 */ beq $at, $zero, .L80BA0DB0 -/* 0002C 80BA0D8C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00030 80BA0D90 00037243 */ sra $t6, $v1, 9 -/* 00034 80BA0D94 31CF003F */ andi $t7, $t6, 0x003F ## $t7 = 00000000 -/* 00038 80BA0D98 000FC200 */ sll $t8, $t7, 8 -/* 0003C 80BA0D9C 00583025 */ or $a2, $v0, $t8 ## $a2 = 00000000 -/* 00040 80BA0DA0 00063400 */ sll $a2, $a2, 16 -/* 00044 80BA0DA4 00063403 */ sra $a2, $a2, 16 -/* 00048 80BA0DA8 0C007D52 */ jal Item_DropCollectible - -/* 0004C 80BA0DAC 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024 -.L80BA0DB0: -/* 00050 80BA0DB0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00054 80BA0DB4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00058 80BA0DB8 03E00008 */ jr $ra -/* 0005C 80BA0DBC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DC0.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DC0.s deleted file mode 100644 index 48ab219930..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DC0.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_80BA0DC0 -/* 00060 80BA0DC0 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060 -/* 00064 80BA0DC4 C486006C */ lwc1 $f6, 0x006C($a0) ## 0000006C -/* 00068 80BA0DC8 C4800070 */ lwc1 $f0, 0x0070($a0) ## 00000070 -/* 0006C 80BA0DCC 46062200 */ add.s $f8, $f4, $f6 -/* 00070 80BA0DD0 E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060 -/* 00074 80BA0DD4 C48A0060 */ lwc1 $f10, 0x0060($a0) ## 00000060 -/* 00078 80BA0DD8 4600503C */ c.lt.s $f10, $f0 -/* 0007C 80BA0DDC 00000000 */ nop -/* 00080 80BA0DE0 45000002 */ bc1f .L80BA0DEC -/* 00084 80BA0DE4 00000000 */ nop -/* 00088 80BA0DE8 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060 -.L80BA0DEC: -/* 0008C 80BA0DEC 03E00008 */ jr $ra -/* 00090 80BA0DF0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DF4.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DF4.s deleted file mode 100644 index a0e9041017..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DF4.s +++ /dev/null @@ -1,52 +0,0 @@ -.rdata -glabel D_80BA1BE0 - .asciz "地面に付着失敗\n" - .balign 4 - -.text -glabel func_80BA0DF4 -/* 00094 80BA0DF4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00098 80BA0DF8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0009C 80BA0DFC AFA5003C */ sw $a1, 0x003C($sp) -/* 000A0 80BA0E00 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024 -/* 000A4 80BA0E04 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 000A8 80BA0E08 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00 -/* 000AC 80BA0E0C E7A40028 */ swc1 $f4, 0x0028($sp) -/* 000B0 80BA0E10 C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028 -/* 000B4 80BA0E14 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 000B8 80BA0E18 27AE0028 */ addiu $t6, $sp, 0x0028 ## $t6 = FFFFFFF0 -/* 000BC 80BA0E1C 46083280 */ add.s $f10, $f6, $f8 -/* 000C0 80BA0E20 27A60024 */ addiu $a2, $sp, 0x0024 ## $a2 = FFFFFFEC -/* 000C4 80BA0E24 E7AA002C */ swc1 $f10, 0x002C($sp) -/* 000C8 80BA0E28 C490002C */ lwc1 $f16, 0x002C($a0) ## 0000002C -/* 000CC 80BA0E2C 24A407C0 */ addiu $a0, $a1, 0x07C0 ## $a0 = 000007C0 -/* 000D0 80BA0E30 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFFC -/* 000D4 80BA0E34 AFA70038 */ sw $a3, 0x0038($sp) -/* 000D8 80BA0E38 AFAE0010 */ sw $t6, 0x0010($sp) -/* 000DC 80BA0E3C 0C00F269 */ jal BgCheck_EntityRaycastFloor4 -/* 000E0 80BA0E40 E7B00030 */ swc1 $f16, 0x0030($sp) -/* 000E4 80BA0E44 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000 -/* 000E8 80BA0E48 44819000 */ mtc1 $at, $f18 ## $f18 = -32000.00 -/* 000EC 80BA0E4C 8FA70038 */ lw $a3, 0x0038($sp) -/* 000F0 80BA0E50 46000086 */ mov.s $f2, $f0 -/* 000F4 80BA0E54 4600903C */ c.lt.s $f18, $f0 -/* 000F8 80BA0E58 3C0480BA */ lui $a0, %hi(D_80BA1BE0) ## $a0 = 80BA0000 -/* 000FC 80BA0E5C 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024 -/* 00100 80BA0E60 45000006 */ bc1f .L80BA0E7C -/* 00104 80BA0E64 00000000 */ nop -/* 00108 80BA0E68 E4E20028 */ swc1 $f2, 0x0028($a3) ## 00000028 -/* 0010C 80BA0E6C 0C01DF90 */ jal Math_Vec3f_Copy - ## Vec3f_Copy -/* 00110 80BA0E70 24E40008 */ addiu $a0, $a3, 0x0008 ## $a0 = 00000008 -/* 00114 80BA0E74 10000004 */ beq $zero, $zero, .L80BA0E88 -/* 00118 80BA0E78 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L80BA0E7C: -/* 0011C 80BA0E7C 0C00084C */ jal osSyncPrintf - -/* 00120 80BA0E80 24841BE0 */ addiu $a0, $a0, %lo(D_80BA1BE0) ## $a0 = 00001BE0 -/* 00124 80BA0E84 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L80BA0E88: -/* 00128 80BA0E88 8FBF001C */ lw $ra, 0x001C($sp) -/* 0012C 80BA0E8C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00130 80BA0E90 03E00008 */ jr $ra -/* 00134 80BA0E94 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0E98.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0E98.s deleted file mode 100644 index bc3a61ac27..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0E98.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80BA0E98 -/* 00138 80BA0E98 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0013C 80BA0E9C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00140 80BA0EA0 AFA50024 */ sw $a1, 0x0024($sp) -/* 00144 80BA0EA4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00148 80BA0EA8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0014C 80BA0EAC 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150 -/* 00150 80BA0EB0 AFA50018 */ sw $a1, 0x0018($sp) -/* 00154 80BA0EB4 0C0170D9 */ jal Collider_InitCylinder - -/* 00158 80BA0EB8 AFA60020 */ sw $a2, 0x0020($sp) -/* 0015C 80BA0EBC 3C0780BA */ lui $a3, %hi(D_80BA1B94) ## $a3 = 80BA0000 -/* 00160 80BA0EC0 8FA60020 */ lw $a2, 0x0020($sp) -/* 00164 80BA0EC4 24E71B94 */ addiu $a3, $a3, %lo(D_80BA1B94) ## $a3 = 80BA1B94 -/* 00168 80BA0EC8 8FA40024 */ lw $a0, 0x0024($sp) -/* 0016C 80BA0ECC 0C01712B */ jal Collider_SetCylinder - -/* 00170 80BA0ED0 8FA50018 */ lw $a1, 0x0018($sp) -/* 00174 80BA0ED4 8FA40020 */ lw $a0, 0x0020($sp) -/* 00178 80BA0ED8 0C0189B7 */ jal Collider_UpdateCylinder - -/* 0017C 80BA0EDC 8FA50018 */ lw $a1, 0x0018($sp) -/* 00180 80BA0EE0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00184 80BA0EE4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00188 80BA0EE8 03E00008 */ jr $ra -/* 0018C 80BA0EEC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA100C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA100C.s deleted file mode 100644 index 105e147399..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA100C.s +++ /dev/null @@ -1,184 +0,0 @@ -.late_rodata -glabel D_80BA1C58 - .word 0x3E6B851F -glabel D_80BA1C5C - .float 0.2 - -glabel D_80BA1C60 - .float 0.6 - -.text -glabel func_80BA100C -/* 002AC 80BA100C 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 002B0 80BA1010 F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 002B4 80BA1014 3C0180BA */ lui $at, %hi(D_80BA1C58) ## $at = 80BA0000 -/* 002B8 80BA1018 C43E1C58 */ lwc1 $f30, %lo(D_80BA1C58)($at) -/* 002BC 80BA101C F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 002C0 80BA1020 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 002C4 80BA1024 4481E000 */ mtc1 $at, $f28 ## $f28 = 2.00 -/* 002C8 80BA1028 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 002CC 80BA102C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 002D0 80BA1030 4481D000 */ mtc1 $at, $f26 ## $f26 = 5.00 -/* 002D4 80BA1034 AFBE0098 */ sw $s8, 0x0098($sp) -/* 002D8 80BA1038 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 002DC 80BA103C 3C014100 */ lui $at, 0x4100 ## $at = 41000000 -/* 002E0 80BA1040 AFB70094 */ sw $s7, 0x0094($sp) -/* 002E4 80BA1044 AFB60090 */ sw $s6, 0x0090($sp) -/* 002E8 80BA1048 AFB5008C */ sw $s5, 0x008C($sp) -/* 002EC 80BA104C AFB40088 */ sw $s4, 0x0088($sp) -/* 002F0 80BA1050 AFB30084 */ sw $s3, 0x0084($sp) -/* 002F4 80BA1054 AFB20080 */ sw $s2, 0x0080($sp) -/* 002F8 80BA1058 AFB1007C */ sw $s1, 0x007C($sp) -/* 002FC 80BA105C 3C1E80BA */ lui $s8, %hi(D_80BA1B80) ## $s8 = 80BA0000 -/* 00300 80BA1060 4481C000 */ mtc1 $at, $f24 ## $f24 = 8.00 -/* 00304 80BA1064 0080A825 */ or $s5, $a0, $zero ## $s5 = 00000000 -/* 00308 80BA1068 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000 -/* 0030C 80BA106C AFBF009C */ sw $ra, 0x009C($sp) -/* 00310 80BA1070 AFB00078 */ sw $s0, 0x0078($sp) -/* 00314 80BA1074 F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00318 80BA1078 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 0031C 80BA107C 27DE1B80 */ addiu $s8, $s8, %lo(D_80BA1B80) ## $s8 = 80BA1B80 -/* 00320 80BA1080 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000 -/* 00324 80BA1084 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 00328 80BA1088 27B300C8 */ addiu $s3, $sp, 0x00C8 ## $s3 = FFFFFFE8 -/* 0032C 80BA108C 24940024 */ addiu $s4, $a0, 0x0024 ## $s4 = 00000024 -/* 00330 80BA1090 27B700BC */ addiu $s7, $sp, 0x00BC ## $s7 = FFFFFFDC -.L80BA1094: -/* 00334 80BA1094 00112400 */ sll $a0, $s1, 16 -/* 00338 80BA1098 0C01DE1C */ jal Math_SinS - ## sins? -/* 0033C 80BA109C 00042403 */ sra $a0, $a0, 16 -/* 00340 80BA10A0 00112400 */ sll $a0, $s1, 16 -/* 00344 80BA10A4 46000506 */ mov.s $f20, $f0 -/* 00348 80BA10A8 0C01DE0D */ jal Math_CosS - ## coss? -/* 0034C 80BA10AC 00042403 */ sra $a0, $a0, 16 -/* 00350 80BA10B0 4618A102 */ mul.s $f4, $f20, $f24 -/* 00354 80BA10B4 46000586 */ mov.s $f22, $f0 -/* 00358 80BA10B8 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 0035C 80BA10BC E7A400C8 */ swc1 $f4, 0x00C8($sp) -/* 00360 80BA10C0 461A0182 */ mul.s $f6, $f0, $f26 -/* 00364 80BA10C4 C7B000C8 */ lwc1 $f16, 0x00C8($sp) -/* 00368 80BA10C8 4618B282 */ mul.s $f10, $f22, $f24 -/* 0036C 80BA10CC 00000000 */ nop -/* 00370 80BA10D0 461E8482 */ mul.s $f18, $f16, $f30 -/* 00374 80BA10D4 461C3200 */ add.s $f8, $f6, $f28 -/* 00378 80BA10D8 E7AA00D0 */ swc1 $f10, 0x00D0($sp) -/* 0037C 80BA10DC E7A800CC */ swc1 $f8, 0x00CC($sp) -/* 00380 80BA10E0 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00384 80BA10E4 E7B200BC */ swc1 $f18, 0x00BC($sp) -/* 00388 80BA10E8 461A0102 */ mul.s $f4, $f0, $f26 -/* 0038C 80BA10EC C7A800D0 */ lwc1 $f8, 0x00D0($sp) -/* 00390 80BA10F0 02602025 */ or $a0, $s3, $zero ## $a0 = FFFFFFE8 -/* 00394 80BA10F4 02802825 */ or $a1, $s4, $zero ## $a1 = 00000024 -/* 00398 80BA10F8 461E4282 */ mul.s $f10, $f8, $f30 -/* 0039C 80BA10FC 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFE8 -/* 003A0 80BA1100 461C2180 */ add.s $f6, $f4, $f28 -/* 003A4 80BA1104 E7AA00C4 */ swc1 $f10, 0x00C4($sp) -/* 003A8 80BA1108 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 003AC 80BA110C E7A600C0 */ swc1 $f6, 0x00C0($sp) -/* 003B0 80BA1110 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 003B4 80BA1114 00000000 */ nop -/* 003B8 80BA1118 3C0180BA */ lui $at, %hi(D_80BA1C5C) ## $at = 80BA0000 -/* 003BC 80BA111C C4301C5C */ lwc1 $f16, %lo(D_80BA1C5C)($at) -/* 003C0 80BA1120 3C0180BA */ lui $at, %hi(D_80BA1C60) ## $at = 80BA0000 -/* 003C4 80BA1124 4610003C */ c.lt.s $f0, $f16 -/* 003C8 80BA1128 00000000 */ nop -/* 003CC 80BA112C 45000003 */ bc1f .L80BA113C -/* 003D0 80BA1130 00000000 */ nop -/* 003D4 80BA1134 10000009 */ beq $zero, $zero, .L80BA115C -/* 003D8 80BA1138 24100060 */ addiu $s0, $zero, 0x0060 ## $s0 = 00000060 -.L80BA113C: -/* 003DC 80BA113C C4321C60 */ lwc1 $f18, %lo(D_80BA1C60)($at) -/* 003E0 80BA1140 24100020 */ addiu $s0, $zero, 0x0020 ## $s0 = 00000020 -/* 003E4 80BA1144 4612003C */ c.lt.s $f0, $f18 -/* 003E8 80BA1148 00000000 */ nop -/* 003EC 80BA114C 45000003 */ bc1f .L80BA115C -/* 003F0 80BA1150 00000000 */ nop -/* 003F4 80BA1154 10000001 */ beq $zero, $zero, .L80BA115C -/* 003F8 80BA1158 24100040 */ addiu $s0, $zero, 0x0040 ## $s0 = 00000040 -.L80BA115C: -/* 003FC 80BA115C 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00400 80BA1160 00000000 */ nop -/* 00404 80BA1164 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000 -/* 00408 80BA1168 44812000 */ mtc1 $at, $f4 ## $f4 = 95.00 -/* 0040C 80BA116C 3C014170 */ lui $at, 0x4170 ## $at = 41700000 -/* 00410 80BA1170 44814000 */ mtc1 $at, $f8 ## $f8 = 15.00 -/* 00414 80BA1174 46040182 */ mul.s $f6, $f0, $f4 -/* 00418 80BA1178 240EFF10 */ addiu $t6, $zero, 0xFF10 ## $t6 = FFFFFF10 -/* 0041C 80BA117C 240F000A */ addiu $t7, $zero, 0x000A ## $t7 = 0000000A -/* 00420 80BA1180 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A -/* 00424 80BA1184 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020 -/* 00428 80BA1188 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C -/* 0042C 80BA118C 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF -/* 00430 80BA1190 46083280 */ add.s $f10, $f6, $f8 -/* 00434 80BA1194 AFAB0034 */ sw $t3, 0x0034($sp) -/* 00438 80BA1198 AFAA0030 */ sw $t2, 0x0030($sp) -/* 0043C 80BA119C AFA9002C */ sw $t1, 0x002C($sp) -/* 00440 80BA11A0 4600540D */ trunc.w.s $f16, $f10 -/* 00444 80BA11A4 AFB8001C */ sw $t8, 0x001C($sp) -/* 00448 80BA11A8 AFAF0018 */ sw $t7, 0x0018($sp) -/* 0044C 80BA11AC AFAE0010 */ sw $t6, 0x0010($sp) -/* 00450 80BA11B0 44088000 */ mfc1 $t0, $f16 -/* 00454 80BA11B4 AFB00014 */ sw $s0, 0x0014($sp) -/* 00458 80BA11B8 AFA00020 */ sw $zero, 0x0020($sp) -/* 0045C 80BA11BC AFA00028 */ sw $zero, 0x0028($sp) -/* 00460 80BA11C0 AFA80024 */ sw $t0, 0x0024($sp) -/* 00464 80BA11C4 86A2001C */ lh $v0, 0x001C($s5) ## 0000001C -/* 00468 80BA11C8 3C1880BA */ lui $t8, %hi(D_80BA1B8C) ## $t8 = 80BA0000 -/* 0046C 80BA11CC 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00470 80BA11D0 00021203 */ sra $v0, $v0, 8 -/* 00474 80BA11D4 30420001 */ andi $v0, $v0, 0x0001 ## $v0 = 00000000 -/* 00478 80BA11D8 00026040 */ sll $t4, $v0, 1 -/* 0047C 80BA11DC 00027880 */ sll $t7, $v0, 2 -/* 00480 80BA11E0 030FC021 */ addu $t8, $t8, $t7 -/* 00484 80BA11E4 03CC6821 */ addu $t5, $s8, $t4 -/* 00488 80BA11E8 85AE0000 */ lh $t6, 0x0000($t5) ## 00000000 -/* 0048C 80BA11EC 8F181B8C */ lw $t8, %lo(D_80BA1B8C)($t8) -/* 00490 80BA11F0 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE8 -/* 00494 80BA11F4 02E03025 */ or $a2, $s7, $zero ## $a2 = FFFFFFDC -/* 00498 80BA11F8 02803825 */ or $a3, $s4, $zero ## $a3 = 00000024 -/* 0049C 80BA11FC AFAE0038 */ sw $t6, 0x0038($sp) -/* 004A0 80BA1200 0C00A7A3 */ jal EffectSsKakera_Spawn - -/* 004A4 80BA1204 AFB8003C */ sw $t8, 0x003C($sp) -/* 004A8 80BA1208 26314E20 */ addiu $s1, $s1, 0x4E20 ## $s1 = 00004E20 -/* 004AC 80BA120C 00118C00 */ sll $s1, $s1, 16 -/* 004B0 80BA1210 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001 -/* 004B4 80BA1214 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F -/* 004B8 80BA1218 1641FF9E */ bne $s2, $at, .L80BA1094 -/* 004BC 80BA121C 00118C03 */ sra $s1, $s1, 16 -/* 004C0 80BA1220 24190014 */ addiu $t9, $zero, 0x0014 ## $t9 = 00000014 -/* 004C4 80BA1224 24080032 */ addiu $t0, $zero, 0x0032 ## $t0 = 00000032 -/* 004C8 80BA1228 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 004CC 80BA122C AFA90018 */ sw $t1, 0x0018($sp) -/* 004D0 80BA1230 AFA80014 */ sw $t0, 0x0014($sp) -/* 004D4 80BA1234 AFB90010 */ sw $t9, 0x0010($sp) -/* 004D8 80BA1238 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 004DC 80BA123C 02802825 */ or $a1, $s4, $zero ## $a1 = 00000024 -/* 004E0 80BA1240 3C0641F0 */ lui $a2, 0x41F0 ## $a2 = 41F00000 -/* 004E4 80BA1244 0C00CD20 */ jal func_80033480 -/* 004E8 80BA1248 24070004 */ addiu $a3, $zero, 0x0004 ## $a3 = 00000004 -/* 004EC 80BA124C 8FBF009C */ lw $ra, 0x009C($sp) -/* 004F0 80BA1250 D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 004F4 80BA1254 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 004F8 80BA1258 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 004FC 80BA125C D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 00500 80BA1260 D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 00504 80BA1264 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 00508 80BA1268 8FB00078 */ lw $s0, 0x0078($sp) -/* 0050C 80BA126C 8FB1007C */ lw $s1, 0x007C($sp) -/* 00510 80BA1270 8FB20080 */ lw $s2, 0x0080($sp) -/* 00514 80BA1274 8FB30084 */ lw $s3, 0x0084($sp) -/* 00518 80BA1278 8FB40088 */ lw $s4, 0x0088($sp) -/* 0051C 80BA127C 8FB5008C */ lw $s5, 0x008C($sp) -/* 00520 80BA1280 8FB60090 */ lw $s6, 0x0090($sp) -/* 00524 80BA1284 8FB70094 */ lw $s7, 0x0094($sp) -/* 00528 80BA1288 8FBE0098 */ lw $s8, 0x0098($sp) -/* 0052C 80BA128C 03E00008 */ jr $ra -/* 00530 80BA1290 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1294.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1294.s deleted file mode 100644 index 984adb545c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1294.s +++ /dev/null @@ -1,185 +0,0 @@ -.late_rodata -glabel D_80BA1C64 - .float 0.2 - -glabel D_80BA1C68 - .float 0.2 - -.text -glabel func_80BA1294 -/* 00534 80BA1294 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 00538 80BA1298 AFB40088 */ sw $s4, 0x0088($sp) -/* 0053C 80BA129C AFBF009C */ sw $ra, 0x009C($sp) -/* 00540 80BA12A0 AFBE0098 */ sw $s8, 0x0098($sp) -/* 00544 80BA12A4 AFB70094 */ sw $s7, 0x0094($sp) -/* 00548 80BA12A8 AFB60090 */ sw $s6, 0x0090($sp) -/* 0054C 80BA12AC AFB5008C */ sw $s5, 0x008C($sp) -/* 00550 80BA12B0 AFB30084 */ sw $s3, 0x0084($sp) -/* 00554 80BA12B4 AFB20080 */ sw $s2, 0x0080($sp) -/* 00558 80BA12B8 AFB1007C */ sw $s1, 0x007C($sp) -/* 0055C 80BA12BC AFB00078 */ sw $s0, 0x0078($sp) -/* 00560 80BA12C0 F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 00564 80BA12C4 F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 00568 80BA12C8 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 0056C 80BA12CC F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 00570 80BA12D0 F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00574 80BA12D4 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 00578 80BA12D8 AFA500E4 */ sw $a1, 0x00E4($sp) -/* 0057C 80BA12DC 24940024 */ addiu $s4, $a0, 0x0024 ## $s4 = 00000024 -/* 00580 80BA12E0 8E8F0000 */ lw $t7, 0x0000($s4) ## 00000024 -/* 00584 80BA12E4 27B300C8 */ addiu $s3, $sp, 0x00C8 ## $s3 = FFFFFFE8 -/* 00588 80BA12E8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0058C 80BA12EC AE6F0000 */ sw $t7, 0x0000($s3) ## FFFFFFE8 -/* 00590 80BA12F0 8E8E0004 */ lw $t6, 0x0004($s4) ## 00000028 -/* 00594 80BA12F4 24180190 */ addiu $t8, $zero, 0x0190 ## $t8 = 00000190 -/* 00598 80BA12F8 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE8 -/* 0059C 80BA12FC AE6E0004 */ sw $t6, 0x0004($s3) ## FFFFFFEC -/* 005A0 80BA1300 8E8F0008 */ lw $t7, 0x0008($s4) ## 0000002C -/* 005A4 80BA1304 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 005A8 80BA1308 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 005AC 80BA130C AE6F0008 */ sw $t7, 0x0008($s3) ## FFFFFFF0 -/* 005B0 80BA1310 C7A400CC */ lwc1 $f4, 0x00CC($sp) -/* 005B4 80BA1314 C4860084 */ lwc1 $f6, 0x0084($a0) ## 00000084 -/* 005B8 80BA1318 AFB000E0 */ sw $s0, 0x00E0($sp) -/* 005BC 80BA131C AFB80014 */ sw $t8, 0x0014($sp) -/* 005C0 80BA1320 46062200 */ add.s $f8, $f4, $f6 -/* 005C4 80BA1324 AFA00010 */ sw $zero, 0x0010($sp) -/* 005C8 80BA1328 8FA400E4 */ lw $a0, 0x00E4($sp) -/* 005CC 80BA132C 0C00A527 */ jal EffectSsGSplash_Spawn -/* 005D0 80BA1330 E7A800CC */ swc1 $f8, 0x00CC($sp) -/* 005D4 80BA1334 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 005D8 80BA1338 4481F000 */ mtc1 $at, $f30 ## $f30 = 5.00 -/* 005DC 80BA133C 3C0180BA */ lui $at, %hi(D_80BA1C64) ## $at = 80BA0000 -/* 005E0 80BA1340 C43C1C64 */ lwc1 $f28, %lo(D_80BA1C64)($at) -/* 005E4 80BA1344 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 005E8 80BA1348 4481D000 */ mtc1 $at, $f26 ## $f26 = 2.00 -/* 005EC 80BA134C 3C014100 */ lui $at, 0x4100 ## $at = 41000000 -/* 005F0 80BA1350 3C1780BA */ lui $s7, %hi(D_80BA1B8C) ## $s7 = 80BA0000 -/* 005F4 80BA1354 3C1680BA */ lui $s6, %hi(D_80BA1B80) ## $s6 = 80BA0000 -/* 005F8 80BA1358 4481C000 */ mtc1 $at, $f24 ## $f24 = 8.00 -/* 005FC 80BA135C 26D61B80 */ addiu $s6, $s6, %lo(D_80BA1B80) ## $s6 = 80BA1B80 -/* 00600 80BA1360 26F71B8C */ addiu $s7, $s7, %lo(D_80BA1B8C) ## $s7 = 80BA1B8C -/* 00604 80BA1364 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 00608 80BA1368 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000 -/* 0060C 80BA136C 241E000F */ addiu $s8, $zero, 0x000F ## $s8 = 0000000F -/* 00610 80BA1370 27B500BC */ addiu $s5, $sp, 0x00BC ## $s5 = FFFFFFDC -.L80BA1374: -/* 00614 80BA1374 00112400 */ sll $a0, $s1, 16 -/* 00618 80BA1378 0C01DE1C */ jal Math_SinS - ## sins? -/* 0061C 80BA137C 00042403 */ sra $a0, $a0, 16 -/* 00620 80BA1380 00112400 */ sll $a0, $s1, 16 -/* 00624 80BA1384 46000506 */ mov.s $f20, $f0 -/* 00628 80BA1388 0C01DE0D */ jal Math_CosS - ## coss? -/* 0062C 80BA138C 00042403 */ sra $a0, $a0, 16 -/* 00630 80BA1390 4618A282 */ mul.s $f10, $f20, $f24 -/* 00634 80BA1394 46000586 */ mov.s $f22, $f0 -/* 00638 80BA1398 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 0063C 80BA139C E7AA00C8 */ swc1 $f10, 0x00C8($sp) -/* 00640 80BA13A0 461E0402 */ mul.s $f16, $f0, $f30 -/* 00644 80BA13A4 C7A600C8 */ lwc1 $f6, 0x00C8($sp) -/* 00648 80BA13A8 4618B102 */ mul.s $f4, $f22, $f24 -/* 0064C 80BA13AC 00000000 */ nop -/* 00650 80BA13B0 461C3202 */ mul.s $f8, $f6, $f28 -/* 00654 80BA13B4 461A8480 */ add.s $f18, $f16, $f26 -/* 00658 80BA13B8 E7A400D0 */ swc1 $f4, 0x00D0($sp) -/* 0065C 80BA13BC E7B200CC */ swc1 $f18, 0x00CC($sp) -/* 00660 80BA13C0 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00664 80BA13C4 E7A800BC */ swc1 $f8, 0x00BC($sp) -/* 00668 80BA13C8 3C014080 */ lui $at, 0x4080 ## $at = 40800000 -/* 0066C 80BA13CC 44815000 */ mtc1 $at, $f10 ## $f10 = 4.00 -/* 00670 80BA13D0 C7A400D0 */ lwc1 $f4, 0x00D0($sp) -/* 00674 80BA13D4 02602025 */ or $a0, $s3, $zero ## $a0 = FFFFFFE8 -/* 00678 80BA13D8 460A0402 */ mul.s $f16, $f0, $f10 -/* 0067C 80BA13DC 02802825 */ or $a1, $s4, $zero ## $a1 = 00000024 -/* 00680 80BA13E0 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFE8 -/* 00684 80BA13E4 461C2182 */ mul.s $f6, $f4, $f28 -/* 00688 80BA13E8 461A8480 */ add.s $f18, $f16, $f26 -/* 0068C 80BA13EC E7A600C4 */ swc1 $f6, 0x00C4($sp) -/* 00690 80BA13F0 0C01DFA7 */ jal Math_Vec3f_Sum - ## Vec3f_Add -/* 00694 80BA13F4 E7B200C0 */ swc1 $f18, 0x00C0($sp) -/* 00698 80BA13F8 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 0069C 80BA13FC 00000000 */ nop -/* 006A0 80BA1400 3C0180BA */ lui $at, %hi(D_80BA1C68) ## $at = 80BA0000 -/* 006A4 80BA1404 C4281C68 */ lwc1 $f8, %lo(D_80BA1C68)($at) -/* 006A8 80BA1408 24100020 */ addiu $s0, $zero, 0x0020 ## $s0 = 00000020 -/* 006AC 80BA140C 4608003C */ c.lt.s $f0, $f8 -/* 006B0 80BA1410 00000000 */ nop -/* 006B4 80BA1414 45000003 */ bc1f .L80BA1424 -/* 006B8 80BA1418 00000000 */ nop -/* 006BC 80BA141C 10000001 */ beq $zero, $zero, .L80BA1424 -/* 006C0 80BA1420 24100040 */ addiu $s0, $zero, 0x0040 ## $s0 = 00000040 -.L80BA1424: -/* 006C4 80BA1424 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 006C8 80BA1428 00000000 */ nop -/* 006CC 80BA142C 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000 -/* 006D0 80BA1430 44815000 */ mtc1 $at, $f10 ## $f10 = 95.00 -/* 006D4 80BA1434 3C014170 */ lui $at, 0x4170 ## $at = 41700000 -/* 006D8 80BA1438 44819000 */ mtc1 $at, $f18 ## $f18 = 15.00 -/* 006DC 80BA143C 460A0402 */ mul.s $f16, $f0, $f10 -/* 006E0 80BA1440 8FAF00E0 */ lw $t7, 0x00E0($sp) -/* 006E4 80BA1444 2419FF4C */ addiu $t9, $zero, 0xFF4C ## $t9 = FFFFFF4C -/* 006E8 80BA1448 2408001E */ addiu $t0, $zero, 0x001E ## $t0 = 0000001E -/* 006EC 80BA144C 2409001E */ addiu $t1, $zero, 0x001E ## $t1 = 0000001E -/* 006F0 80BA1450 240C0020 */ addiu $t4, $zero, 0x0020 ## $t4 = 00000020 -/* 006F4 80BA1454 240D0046 */ addiu $t5, $zero, 0x0046 ## $t5 = 00000046 -/* 006F8 80BA1458 46128100 */ add.s $f4, $f16, $f18 -/* 006FC 80BA145C 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF -/* 00700 80BA1460 AFAE0034 */ sw $t6, 0x0034($sp) -/* 00704 80BA1464 AFAD0030 */ sw $t5, 0x0030($sp) -/* 00708 80BA1468 4600218D */ trunc.w.s $f6, $f4 -/* 0070C 80BA146C AFAC002C */ sw $t4, 0x002C($sp) -/* 00710 80BA1470 AFA9001C */ sw $t1, 0x001C($sp) -/* 00714 80BA1474 AFA80018 */ sw $t0, 0x0018($sp) -/* 00718 80BA1478 440B3000 */ mfc1 $t3, $f6 -/* 0071C 80BA147C AFB90010 */ sw $t9, 0x0010($sp) -/* 00720 80BA1480 AFB00014 */ sw $s0, 0x0014($sp) -/* 00724 80BA1484 AFA00020 */ sw $zero, 0x0020($sp) -/* 00728 80BA1488 AFA00028 */ sw $zero, 0x0028($sp) -/* 0072C 80BA148C AFAB0024 */ sw $t3, 0x0024($sp) -/* 00730 80BA1490 85E2001C */ lh $v0, 0x001C($t7) ## 0000001C -/* 00734 80BA1494 8FA400E4 */ lw $a0, 0x00E4($sp) -/* 00738 80BA1498 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE8 -/* 0073C 80BA149C 00021203 */ sra $v0, $v0, 8 -/* 00740 80BA14A0 30420001 */ andi $v0, $v0, 0x0001 ## $v0 = 00000000 -/* 00744 80BA14A4 0002C040 */ sll $t8, $v0, 1 -/* 00748 80BA14A8 00024880 */ sll $t1, $v0, 2 -/* 0074C 80BA14AC 02E95021 */ addu $t2, $s7, $t1 -/* 00750 80BA14B0 02D8C821 */ addu $t9, $s6, $t8 -/* 00754 80BA14B4 87280000 */ lh $t0, 0x0000($t9) ## FFFFFF4C -/* 00758 80BA14B8 8D4B0000 */ lw $t3, 0x0000($t2) ## 00000000 -/* 0075C 80BA14BC 02A03025 */ or $a2, $s5, $zero ## $a2 = FFFFFFDC -/* 00760 80BA14C0 02803825 */ or $a3, $s4, $zero ## $a3 = 00000024 -/* 00764 80BA14C4 AFA80038 */ sw $t0, 0x0038($sp) -/* 00768 80BA14C8 0C00A7A3 */ jal EffectSsKakera_Spawn - -/* 0076C 80BA14CC AFAB003C */ sw $t3, 0x003C($sp) -/* 00770 80BA14D0 26314E20 */ addiu $s1, $s1, 0x4E20 ## $s1 = 00004E20 -/* 00774 80BA14D4 00118C00 */ sll $s1, $s1, 16 -/* 00778 80BA14D8 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001 -/* 0077C 80BA14DC 165EFFA5 */ bne $s2, $s8, .L80BA1374 -/* 00780 80BA14E0 00118C03 */ sra $s1, $s1, 16 -/* 00784 80BA14E4 8FBF009C */ lw $ra, 0x009C($sp) -/* 00788 80BA14E8 D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 0078C 80BA14EC D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 00790 80BA14F0 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 00794 80BA14F4 D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 00798 80BA14F8 D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 0079C 80BA14FC D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 007A0 80BA1500 8FB00078 */ lw $s0, 0x0078($sp) -/* 007A4 80BA1504 8FB1007C */ lw $s1, 0x007C($sp) -/* 007A8 80BA1508 8FB20080 */ lw $s2, 0x0080($sp) -/* 007AC 80BA150C 8FB30084 */ lw $s3, 0x0084($sp) -/* 007B0 80BA1510 8FB40088 */ lw $s4, 0x0088($sp) -/* 007B4 80BA1514 8FB5008C */ lw $s5, 0x008C($sp) -/* 007B8 80BA1518 8FB60090 */ lw $s6, 0x0090($sp) -/* 007BC 80BA151C 8FB70094 */ lw $s7, 0x0094($sp) -/* 007C0 80BA1520 8FBE0098 */ lw $s8, 0x0098($sp) -/* 007C4 80BA1524 03E00008 */ jr $ra -/* 007C8 80BA1528 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA152C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA152C.s deleted file mode 100644 index 4d92160809..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA152C.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_80BA152C -/* 007CC 80BA152C 3C0E80BA */ lui $t6, %hi(func_80BA153C) ## $t6 = 80BA0000 -/* 007D0 80BA1530 25CE153C */ addiu $t6, $t6, %lo(func_80BA153C) ## $t6 = 80BA153C -/* 007D4 80BA1534 03E00008 */ jr $ra -/* 007D8 80BA1538 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA153C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA153C.s deleted file mode 100644 index 758031d10b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA153C.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_80BA153C -/* 007DC 80BA153C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 007E0 80BA1540 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 007E4 80BA1544 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 007E8 80BA1548 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4 -/* 007EC 80BA154C AFBF0014 */ sw $ra, 0x0014($sp) -/* 007F0 80BA1550 00A12021 */ addu $a0, $a1, $at -/* 007F4 80BA1554 80C5019C */ lb $a1, 0x019C($a2) ## 0000019C -/* 007F8 80BA1558 0C026062 */ jal Object_IsLoaded - -/* 007FC 80BA155C AFA60018 */ sw $a2, 0x0018($sp) -/* 00800 80BA1560 1040000E */ beq $v0, $zero, .L80BA159C -/* 00804 80BA1564 8FA60018 */ lw $a2, 0x0018($sp) -/* 00808 80BA1568 80CF019C */ lb $t7, 0x019C($a2) ## 0000019C -/* 0080C 80BA156C 3C0E80BA */ lui $t6, %hi(func_80BA1B0C) ## $t6 = 80BA0000 -/* 00810 80BA1570 25CE1B0C */ addiu $t6, $t6, %lo(func_80BA1B0C) ## $t6 = 80BA1B0C -/* 00814 80BA1574 ACCE0134 */ sw $t6, 0x0134($a2) ## 00000134 -/* 00818 80BA1578 A0CF001E */ sb $t7, 0x001E($a2) ## 0000001E -/* 0081C 80BA157C AFA60018 */ sw $a2, 0x0018($sp) -/* 00820 80BA1580 0C2E856B */ jal func_80BA15AC -/* 00824 80BA1584 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000 -/* 00828 80BA1588 8FA60018 */ lw $a2, 0x0018($sp) -/* 0082C 80BA158C 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF -/* 00830 80BA1590 8CD80004 */ lw $t8, 0x0004($a2) ## 00000004 -/* 00834 80BA1594 0301C824 */ and $t9, $t8, $at -/* 00838 80BA1598 ACD90004 */ sw $t9, 0x0004($a2) ## 00000004 -.L80BA159C: -/* 0083C 80BA159C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00840 80BA15A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00844 80BA15A4 03E00008 */ jr $ra -/* 00848 80BA15A8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15AC.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15AC.s deleted file mode 100644 index c68f1e19d0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15AC.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_80BA15AC -/* 0084C 80BA15AC 3C0E80BA */ lui $t6, %hi(func_80BA15BC) ## $t6 = 80BA0000 -/* 00850 80BA15B0 25CE15BC */ addiu $t6, $t6, %lo(func_80BA15BC) ## $t6 = 80BA15BC -/* 00854 80BA15B4 03E00008 */ jr $ra -/* 00858 80BA15B8 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15BC.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15BC.s deleted file mode 100644 index b606b3a715..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15BC.s +++ /dev/null @@ -1,145 +0,0 @@ -glabel func_80BA15BC -/* 0085C 80BA15BC 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 00860 80BA15C0 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00864 80BA15C4 AFB10020 */ sw $s1, 0x0020($sp) -/* 00868 80BA15C8 AFB0001C */ sw $s0, 0x001C($sp) -/* 0086C 80BA15CC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00870 80BA15D0 0C00BD04 */ jal Actor_HasParent -/* 00874 80BA15D4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00878 80BA15D8 50400006 */ beql $v0, $zero, .L80BA15F4 -/* 0087C 80BA15DC 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088 -/* 00880 80BA15E0 0C2E85F1 */ jal func_80BA17C4 -/* 00884 80BA15E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00888 80BA15E8 10000072 */ beq $zero, $zero, .L80BA17B4 -/* 0088C 80BA15EC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00890 80BA15F0 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088 -.L80BA15F4: -/* 00894 80BA15F4 3C014170 */ lui $at, 0x4170 ## $at = 41700000 -/* 00898 80BA15F8 31CF0020 */ andi $t7, $t6, 0x0020 ## $t7 = 00000000 -/* 0089C 80BA15FC 51E00017 */ beql $t7, $zero, .L80BA165C -/* 008A0 80BA1600 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -/* 008A4 80BA1604 44812000 */ mtc1 $at, $f4 ## $f4 = 15.00 -/* 008A8 80BA1608 C6060084 */ lwc1 $f6, 0x0084($s0) ## 00000084 -/* 008AC 80BA160C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008B0 80BA1610 4606203C */ c.lt.s $f4, $f6 -/* 008B4 80BA1614 00000000 */ nop -/* 008B8 80BA1618 45020010 */ bc1fl .L80BA165C -/* 008BC 80BA161C 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -/* 008C0 80BA1620 0C2E84A5 */ jal func_80BA1294 -/* 008C4 80BA1624 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 008C8 80BA1628 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 008CC 80BA162C 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 008D0 80BA1630 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 008D4 80BA1634 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 008D8 80BA1638 24072887 */ addiu $a3, $zero, 0x2887 ## $a3 = 00002887 -/* 008DC 80BA163C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008E0 80BA1640 0C2E8358 */ jal func_80BA0D60 -/* 008E4 80BA1644 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 008E8 80BA1648 0C00B55C */ jal Actor_Kill - -/* 008EC 80BA164C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008F0 80BA1650 10000058 */ beq $zero, $zero, .L80BA17B4 -/* 008F4 80BA1654 8FBF0024 */ lw $ra, 0x0024($sp) -/* 008F8 80BA1658 92180161 */ lbu $t8, 0x0161($s0) ## 00000161 -.L80BA165C: -/* 008FC 80BA165C 33190002 */ andi $t9, $t8, 0x0002 ## $t9 = 00000000 -/* 00900 80BA1660 53200018 */ beql $t9, $zero, .L80BA16C4 -/* 00904 80BA1664 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 00908 80BA1668 8E08018C */ lw $t0, 0x018C($s0) ## 0000018C -/* 0090C 80BA166C 3C014FC1 */ lui $at, 0x4FC1 ## $at = 4FC10000 -/* 00910 80BA1670 3421FFFC */ ori $at, $at, 0xFFFC ## $at = 4FC1FFFC -/* 00914 80BA1674 8D090000 */ lw $t1, 0x0000($t0) ## 00000000 -/* 00918 80BA1678 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0091C 80BA167C 01215024 */ and $t2, $t1, $at -/* 00920 80BA1680 51400010 */ beql $t2, $zero, .L80BA16C4 -/* 00924 80BA1684 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 00928 80BA1688 0C2E8403 */ jal func_80BA100C -/* 0092C 80BA168C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00930 80BA1690 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00934 80BA1694 0C2E8358 */ jal func_80BA0D60 -/* 00938 80BA1698 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 0093C 80BA169C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00940 80BA16A0 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00944 80BA16A4 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00948 80BA16A8 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 0094C 80BA16AC 24072887 */ addiu $a3, $zero, 0x2887 ## $a3 = 00002887 -/* 00950 80BA16B0 0C00B55C */ jal Actor_Kill - -/* 00954 80BA16B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00958 80BA16B8 1000003E */ beq $zero, $zero, .L80BA17B4 -/* 0095C 80BA16BC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00960 80BA16C0 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -.L80BA16C4: -/* 00964 80BA16C4 44814000 */ mtc1 $at, $f8 ## $f8 = 600.00 -/* 00968 80BA16C8 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 0096C 80BA16CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00970 80BA16D0 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150 -/* 00974 80BA16D4 4608003C */ c.lt.s $f0, $f8 -/* 00978 80BA16D8 00000000 */ nop -/* 0097C 80BA16DC 4502001A */ bc1fl .L80BA1748 -/* 00980 80BA16E0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 00984 80BA16E4 0C0189B7 */ jal Collider_UpdateCylinder - -/* 00988 80BA16E8 AFA5002C */ sw $a1, 0x002C($sp) -/* 0098C 80BA16EC 920B0161 */ lbu $t3, 0x0161($s0) ## 00000161 -/* 00990 80BA16F0 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00994 80BA16F4 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00998 80BA16F8 316CFFFD */ andi $t4, $t3, 0xFFFD ## $t4 = 00000000 -/* 0099C 80BA16FC A20C0161 */ sb $t4, 0x0161($s0) ## 00000161 -/* 009A0 80BA1700 02212821 */ addu $a1, $s1, $at -/* 009A4 80BA1704 AFA50028 */ sw $a1, 0x0028($sp) -/* 009A8 80BA1708 8FA6002C */ lw $a2, 0x002C($sp) -/* 009AC 80BA170C 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 009B0 80BA1710 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009B4 80BA1714 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 009B8 80BA1718 44815000 */ mtc1 $at, $f10 ## $f10 = 150.00 -/* 009BC 80BA171C C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 009C0 80BA1720 8FA50028 */ lw $a1, 0x0028($sp) -/* 009C4 80BA1724 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009C8 80BA1728 460A003C */ c.lt.s $f0, $f10 -/* 009CC 80BA172C 00000000 */ nop -/* 009D0 80BA1730 45020005 */ bc1fl .L80BA1748 -/* 009D4 80BA1734 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 009D8 80BA1738 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOC -/* 009DC 80BA173C 8FA6002C */ lw $a2, 0x002C($sp) -/* 009E0 80BA1740 C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 009E4 80BA1744 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -.L80BA1748: -/* 009E8 80BA1748 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00 -/* 009EC 80BA174C 00000000 */ nop -/* 009F0 80BA1750 4610003C */ c.lt.s $f0, $f16 -/* 009F4 80BA1754 00000000 */ nop -/* 009F8 80BA1758 45020016 */ bc1fl .L80BA17B4 -/* 009FC 80BA175C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00A00 80BA1760 8E2E1C44 */ lw $t6, 0x1C44($s1) ## 00001C44 -/* 00A04 80BA1764 860D008A */ lh $t5, 0x008A($s0) ## 0000008A -/* 00A08 80BA1768 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A0C 80BA176C 85CF0032 */ lh $t7, 0x0032($t6) ## 00000032 -/* 00A10 80BA1770 01AF1023 */ subu $v0, $t5, $t7 -/* 00A14 80BA1774 00021400 */ sll $v0, $v0, 16 -/* 00A18 80BA1778 00021403 */ sra $v0, $v0, 16 -/* 00A1C 80BA177C 04400003 */ bltz $v0, .L80BA178C -/* 00A20 80BA1780 00021823 */ subu $v1, $zero, $v0 -/* 00A24 80BA1784 10000001 */ beq $zero, $zero, .L80BA178C -/* 00A28 80BA1788 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -.L80BA178C: -/* 00A2C 80BA178C 28615556 */ slti $at, $v1, 0x5556 -/* 00A30 80BA1790 14200007 */ bne $at, $zero, .L80BA17B0 -/* 00A34 80BA1794 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 00A38 80BA1798 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00 -/* 00A3C 80BA179C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00A40 80BA17A0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00A44 80BA17A4 44070000 */ mfc1 $a3, $f0 -/* 00A48 80BA17A8 0C00BD0D */ jal func_8002F434 -/* 00A4C 80BA17AC E7A00010 */ swc1 $f0, 0x0010($sp) -.L80BA17B0: -/* 00A50 80BA17B0 8FBF0024 */ lw $ra, 0x0024($sp) -.L80BA17B4: -/* 00A54 80BA17B4 8FB0001C */ lw $s0, 0x001C($sp) -/* 00A58 80BA17B8 8FB10020 */ lw $s1, 0x0020($sp) -/* 00A5C 80BA17BC 03E00008 */ jr $ra -/* 00A60 80BA17C0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA17C4.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA17C4.s deleted file mode 100644 index 4974b31460..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA17C4.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_80BA17C4 -/* 00A64 80BA17C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00A68 80BA17C8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00A6C 80BA17CC 3C0E80BA */ lui $t6, %hi(func_80BA180C) ## $t6 = 80BA0000 -/* 00A70 80BA17D0 25CE180C */ addiu $t6, $t6, %lo(func_80BA180C) ## $t6 = 80BA180C -/* 00A74 80BA17D4 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF -/* 00A78 80BA17D8 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C -/* 00A7C 80BA17DC A08F0003 */ sb $t7, 0x0003($a0) ## 00000003 -/* 00A80 80BA17E0 AFA40018 */ sw $a0, 0x0018($sp) -/* 00A84 80BA17E4 0C00BDF7 */ jal func_8002F7DC -/* 00A88 80BA17E8 2405086F */ addiu $a1, $zero, 0x086F ## $a1 = 0000086F -/* 00A8C 80BA17EC 8FA40018 */ lw $a0, 0x0018($sp) -/* 00A90 80BA17F0 8C980004 */ lw $t8, 0x0004($a0) ## 00000004 -/* 00A94 80BA17F4 37190010 */ ori $t9, $t8, 0x0010 ## $t9 = 00000010 -/* 00A98 80BA17F8 AC990004 */ sw $t9, 0x0004($a0) ## 00000004 -/* 00A9C 80BA17FC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00AA0 80BA1800 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00AA4 80BA1804 03E00008 */ jr $ra -/* 00AA8 80BA1808 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA180C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA180C.s deleted file mode 100644 index c33aac2fb4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA180C.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_80BA180C -/* 00AAC 80BA180C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00AB0 80BA1810 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00AB4 80BA1814 AFB00020 */ sw $s0, 0x0020($sp) -/* 00AB8 80BA1818 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00ABC 80BA181C 0C00BD68 */ jal Actor_HasNoParent -/* 00AC0 80BA1820 AFA5002C */ sw $a1, 0x002C($sp) -/* 00AC4 80BA1824 10400014 */ beq $v0, $zero, .L80BA1878 -/* 00AC8 80BA1828 8FAE002C */ lw $t6, 0x002C($sp) -/* 00ACC 80BA182C 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000 -/* 00AD0 80BA1830 01EE7821 */ addu $t7, $t7, $t6 -/* 00AD4 80BA1834 81EF1CBC */ lb $t7, 0x1CBC($t7) ## 00011CBC -/* 00AD8 80BA1838 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00ADC 80BA183C 0C2E8623 */ jal func_80BA188C -/* 00AE0 80BA1840 A20F0003 */ sb $t7, 0x0003($s0) ## 00000003 -/* 00AE4 80BA1844 0C2E8370 */ jal func_80BA0DC0 -/* 00AE8 80BA1848 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AEC 80BA184C 0C00B5FB */ jal func_8002D7EC -/* 00AF0 80BA1850 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AF4 80BA1854 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00AF8 80BA1858 24180085 */ addiu $t8, $zero, 0x0085 ## $t8 = 00000085 -/* 00AFC 80BA185C AFB80014 */ sw $t8, 0x0014($sp) -/* 00B00 80BA1860 8FA4002C */ lw $a0, 0x002C($sp) -/* 00B04 80BA1864 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00B08 80BA1868 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000 -/* 00B0C 80BA186C 3C074170 */ lui $a3, 0x4170 ## $a3 = 41700000 -/* 00B10 80BA1870 0C00B92D */ jal Actor_UpdateBgCheckInfo -/* 00B14 80BA1874 E7A40010 */ swc1 $f4, 0x0010($sp) -.L80BA1878: -/* 00B18 80BA1878 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00B1C 80BA187C 8FB00020 */ lw $s0, 0x0020($sp) -/* 00B20 80BA1880 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00B24 80BA1884 03E00008 */ jr $ra -/* 00B28 80BA1888 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA188C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA188C.s deleted file mode 100644 index 053b9350ba..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA188C.s +++ /dev/null @@ -1,61 +0,0 @@ -.late_rodata -glabel D_80BA1C6C - .float 0.7 - -.text -glabel func_80BA188C -/* 00B2C 80BA188C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00B30 80BA1890 AFB00018 */ sw $s0, 0x0018($sp) -/* 00B34 80BA1894 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00B38 80BA1898 AFBF001C */ sw $ra, 0x001C($sp) -/* 00B3C 80BA189C 0C01DE1C */ jal Math_SinS - ## sins? -/* 00B40 80BA18A0 84840032 */ lh $a0, 0x0032($a0) ## 00000032 -/* 00B44 80BA18A4 C6040068 */ lwc1 $f4, 0x0068($s0) ## 00000068 -/* 00B48 80BA18A8 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 00B4C 80BA18AC 46040182 */ mul.s $f6, $f0, $f4 -/* 00B50 80BA18B0 0C01DE0D */ jal Math_CosS - ## coss? -/* 00B54 80BA18B4 E606005C */ swc1 $f6, 0x005C($s0) ## 0000005C -/* 00B58 80BA18B8 C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068 -/* 00B5C 80BA18BC 240E00F0 */ addiu $t6, $zero, 0x00F0 ## $t6 = 000000F0 -/* 00B60 80BA18C0 A20E00AE */ sb $t6, 0x00AE($s0) ## 000000AE -/* 00B64 80BA18C4 46080282 */ mul.s $f10, $f0, $f8 -/* 00B68 80BA18C8 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00B6C 80BA18CC E60A0064 */ swc1 $f10, 0x0064($s0) ## 00000064 -/* 00B70 80BA18D0 3C0180BA */ lui $at, %hi(D_80BA1C6C) ## $at = 80BA0000 -/* 00B74 80BA18D4 C4301C6C */ lwc1 $f16, %lo(D_80BA1C6C)($at) -/* 00B78 80BA18D8 3C01452F */ lui $at, 0x452F ## $at = 452F0000 -/* 00B7C 80BA18DC 44812000 */ mtc1 $at, $f4 ## $f4 = 2800.00 -/* 00B80 80BA18E0 46100481 */ sub.s $f18, $f0, $f16 -/* 00B84 80BA18E4 3C0180BA */ lui $at, %hi(D_80BA1B50) ## $at = 80BA0000 -/* 00B88 80BA18E8 46049182 */ mul.s $f6, $f18, $f4 -/* 00B8C 80BA18EC 4600320D */ trunc.w.s $f8, $f6 -/* 00B90 80BA18F0 44184000 */ mfc1 $t8, $f8 -/* 00B94 80BA18F4 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00B98 80BA18F8 A4381B50 */ sh $t8, %lo(D_80BA1B50)($at) -/* 00B9C 80BA18FC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00BA0 80BA1900 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50 -/* 00BA4 80BA1904 3C0144FA */ lui $at, 0x44FA ## $at = 44FA0000 -/* 00BA8 80BA1908 44819000 */ mtc1 $at, $f18 ## $f18 = 2000.00 -/* 00BAC 80BA190C 460A0401 */ sub.s $f16, $f0, $f10 -/* 00BB0 80BA1910 3C0180BA */ lui $at, %hi(D_80BA1B58) ## $at = 80BA0000 -/* 00BB4 80BA1914 3C0980BA */ lui $t1, %hi(func_80BA1958) ## $t1 = 80BA0000 -/* 00BB8 80BA1918 25291958 */ addiu $t1, $t1, %lo(func_80BA1958) ## $t1 = 80BA1958 -/* 00BBC 80BA191C 46128102 */ mul.s $f4, $f16, $f18 -/* 00BC0 80BA1920 4600218D */ trunc.w.s $f6, $f4 -/* 00BC4 80BA1924 44083000 */ mfc1 $t0, $f6 -/* 00BC8 80BA1928 00000000 */ nop -/* 00BCC 80BA192C A4281B58 */ sh $t0, %lo(D_80BA1B58)($at) -/* 00BD0 80BA1930 3C0180BA */ lui $at, %hi(D_80BA1B54) ## $at = 80BA0000 -/* 00BD4 80BA1934 A4201B54 */ sh $zero, %lo(D_80BA1B54)($at) -/* 00BD8 80BA1938 3C0180BA */ lui $at, %hi(D_80BA1B5C) ## $at = 80BA0000 -/* 00BDC 80BA193C A4201B5C */ sh $zero, %lo(D_80BA1B5C)($at) -/* 00BE0 80BA1940 AE09014C */ sw $t1, 0x014C($s0) ## 0000014C -/* 00BE4 80BA1944 8FBF001C */ lw $ra, 0x001C($sp) -/* 00BE8 80BA1948 8FB00018 */ lw $s0, 0x0018($sp) -/* 00BEC 80BA194C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00BF0 80BA1950 03E00008 */ jr $ra -/* 00BF4 80BA1954 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1958.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1958.s deleted file mode 100644 index 80f190ec7b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1958.s +++ /dev/null @@ -1,114 +0,0 @@ -glabel func_80BA1958 -/* 00BF8 80BA1958 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00BFC 80BA195C AFBF0024 */ sw $ra, 0x0024($sp) -/* 00C00 80BA1960 AFB10020 */ sw $s1, 0x0020($sp) -/* 00C04 80BA1964 AFB0001C */ sw $s0, 0x001C($sp) -/* 00C08 80BA1968 94820088 */ lhu $v0, 0x0088($a0) ## 00000088 -/* 00C0C 80BA196C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00C10 80BA1970 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00C14 80BA1974 304E000B */ andi $t6, $v0, 0x000B ## $t6 = 00000000 -/* 00C18 80BA1978 15C00006 */ bne $t6, $zero, .L80BA1994 -/* 00C1C 80BA197C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00C20 80BA1980 908F0160 */ lbu $t7, 0x0160($a0) ## 00000160 -/* 00C24 80BA1984 30590040 */ andi $t9, $v0, 0x0040 ## $t9 = 00000000 -/* 00C28 80BA1988 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000 -/* 00C2C 80BA198C 1300000F */ beq $t8, $zero, .L80BA19CC -/* 00C30 80BA1990 00000000 */ nop -.L80BA1994: -/* 00C34 80BA1994 0C2E8403 */ jal func_80BA100C -/* 00C38 80BA1998 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C3C 80BA199C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C40 80BA19A0 0C2E8358 */ jal func_80BA0D60 -/* 00C44 80BA19A4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00C48 80BA19A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00C4C 80BA19AC 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00C50 80BA19B0 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00C54 80BA19B4 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00C58 80BA19B8 24072887 */ addiu $a3, $zero, 0x2887 ## $a3 = 00002887 -/* 00C5C 80BA19BC 0C00B55C */ jal Actor_Kill - -/* 00C60 80BA19C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C64 80BA19C4 10000044 */ beq $zero, $zero, .L80BA1AD8 -/* 00C68 80BA19C8 8FBF0024 */ lw $ra, 0x0024($sp) -.L80BA19CC: -/* 00C6C 80BA19CC 1320000F */ beq $t9, $zero, .L80BA1A0C -/* 00C70 80BA19D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C74 80BA19D4 0C2E84A5 */ jal func_80BA1294 -/* 00C78 80BA19D8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00C7C 80BA19DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C80 80BA19E0 0C2E8358 */ jal func_80BA0D60 -/* 00C84 80BA19E4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00C88 80BA19E8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00C8C 80BA19EC 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 00C90 80BA19F0 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014 -/* 00C94 80BA19F4 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 00C98 80BA19F8 24072887 */ addiu $a3, $zero, 0x2887 ## $a3 = 00002887 -/* 00C9C 80BA19FC 0C00B55C */ jal Actor_Kill - -/* 00CA0 80BA1A00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00CA4 80BA1A04 10000034 */ beq $zero, $zero, .L80BA1AD8 -/* 00CA8 80BA1A08 8FBF0024 */ lw $ra, 0x0024($sp) -.L80BA1A0C: -/* 00CAC 80BA1A0C 0C2E8370 */ jal func_80BA0DC0 -/* 00CB0 80BA1A10 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00CB4 80BA1A14 0C00B5FB */ jal func_8002D7EC -/* 00CB8 80BA1A18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00CBC 80BA1A1C 3C0480BA */ lui $a0, %hi(D_80BA1B54) ## $a0 = 80BA0000 -/* 00CC0 80BA1A20 3C0580BA */ lui $a1, %hi(D_80BA1B50) ## $a1 = 80BA0000 -/* 00CC4 80BA1A24 84A51B50 */ lh $a1, %lo(D_80BA1B50)($a1) -/* 00CC8 80BA1A28 24841B54 */ addiu $a0, $a0, %lo(D_80BA1B54) ## $a0 = 80BA1B54 -/* 00CCC 80BA1A2C 0C01DE5F */ jal Math_StepToS - -/* 00CD0 80BA1A30 24060064 */ addiu $a2, $zero, 0x0064 ## $a2 = 00000064 -/* 00CD4 80BA1A34 3C0480BA */ lui $a0, %hi(D_80BA1B5C) ## $a0 = 80BA0000 -/* 00CD8 80BA1A38 3C0580BA */ lui $a1, %hi(D_80BA1B58) ## $a1 = 80BA0000 -/* 00CDC 80BA1A3C 84A51B58 */ lh $a1, %lo(D_80BA1B58)($a1) -/* 00CE0 80BA1A40 24841B5C */ addiu $a0, $a0, %lo(D_80BA1B5C) ## $a0 = 80BA1B5C -/* 00CE4 80BA1A44 0C01DE5F */ jal Math_StepToS - -/* 00CE8 80BA1A48 24060064 */ addiu $a2, $zero, 0x0064 ## $a2 = 00000064 -/* 00CEC 80BA1A4C 3C0980BA */ lui $t1, %hi(D_80BA1B54) ## $t1 = 80BA0000 -/* 00CF0 80BA1A50 85291B54 */ lh $t1, %lo(D_80BA1B54)($t1) -/* 00CF4 80BA1A54 860800B4 */ lh $t0, 0x00B4($s0) ## 000000B4 -/* 00CF8 80BA1A58 3C0C80BA */ lui $t4, %hi(D_80BA1B5C) ## $t4 = 80BA0000 -/* 00CFC 80BA1A5C 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6 -/* 00D00 80BA1A60 01095021 */ addu $t2, $t0, $t1 -/* 00D04 80BA1A64 A60A00B4 */ sh $t2, 0x00B4($s0) ## 000000B4 -/* 00D08 80BA1A68 858C1B5C */ lh $t4, %lo(D_80BA1B5C)($t4) -/* 00D0C 80BA1A6C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00D10 80BA1A70 240E0085 */ addiu $t6, $zero, 0x0085 ## $t6 = 00000085 -/* 00D14 80BA1A74 016C6821 */ addu $t5, $t3, $t4 -/* 00D18 80BA1A78 A60D00B6 */ sh $t5, 0x00B6($s0) ## 000000B6 -/* 00D1C 80BA1A7C AFAE0014 */ sw $t6, 0x0014($sp) -/* 00D20 80BA1A80 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00D24 80BA1A84 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00D28 80BA1A88 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000 -/* 00D2C 80BA1A8C 3C074170 */ lui $a3, 0x4170 ## $a3 = 41700000 -/* 00D30 80BA1A90 0C00B92D */ jal Actor_UpdateBgCheckInfo -/* 00D34 80BA1A94 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00D38 80BA1A98 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150 -/* 00D3C 80BA1A9C AFA5002C */ sw $a1, 0x002C($sp) -/* 00D40 80BA1AA0 0C0189B7 */ jal Collider_UpdateCylinder - -/* 00D44 80BA1AA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00D48 80BA1AA8 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00D4C 80BA1AAC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00D50 80BA1AB0 02218021 */ addu $s0, $s1, $at -/* 00D54 80BA1AB4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00D58 80BA1AB8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00D5C 80BA1ABC 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOC -/* 00D60 80BA1AC0 8FA6002C */ lw $a2, 0x002C($sp) -/* 00D64 80BA1AC4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00D68 80BA1AC8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00D6C 80BA1ACC 0C0175E7 */ jal CollisionCheck_SetAT - ## CollisionCheck_setAT -/* 00D70 80BA1AD0 8FA6002C */ lw $a2, 0x002C($sp) -/* 00D74 80BA1AD4 8FBF0024 */ lw $ra, 0x0024($sp) -.L80BA1AD8: -/* 00D78 80BA1AD8 8FB0001C */ lw $s0, 0x001C($sp) -/* 00D7C 80BA1ADC 8FB10020 */ lw $s1, 0x0020($sp) -/* 00D80 80BA1AE0 03E00008 */ jr $ra -/* 00D84 80BA1AE4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1B0C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1B0C.s deleted file mode 100644 index bbaa42bf41..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1B0C.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_80BA1B0C -/* 00DAC 80BA1B0C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00DB0 80BA1B10 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00DB4 80BA1B14 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00DB8 80BA1B18 84EE001C */ lh $t6, 0x001C($a3) ## 0000001C -/* 00DBC 80BA1B1C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00DC0 80BA1B20 3C0580BA */ lui $a1, %hi(D_80BA1B84) ## $a1 = 80BA0000 -/* 00DC4 80BA1B24 000E7A03 */ sra $t7, $t6, 8 -/* 00DC8 80BA1B28 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000 -/* 00DCC 80BA1B2C 0018C880 */ sll $t9, $t8, 2 -/* 00DD0 80BA1B30 00B92821 */ addu $a1, $a1, $t9 -/* 00DD4 80BA1B34 0C00D498 */ jal Gfx_DrawDListOpa - -/* 00DD8 80BA1B38 8CA51B84 */ lw $a1, %lo(D_80BA1B84)($a1) -/* 00DDC 80BA1B3C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00DE0 80BA1B40 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00DE4 80BA1B44 03E00008 */ jr $ra -/* 00DE8 80BA1B48 00000000 */ nop -/* 00DEC 80BA1B4C 00000000 */ nop diff --git a/data/overlays/actors/z_obj_tsubo.data.s b/data/overlays/actors/z_obj_tsubo.data.s deleted file mode 100644 index c8f825031a..0000000000 --- a/data/overlays/actors/z_obj_tsubo.data.s +++ /dev/null @@ -1,38 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .data - -.balign 16 - -glabel D_80BA1B50 - .word 0x00000000 -glabel D_80BA1B54 - .word 0x00000000 -glabel D_80BA1B58 - .word 0x00000000 -glabel D_80BA1B5C - .word 0x00000000 -glabel Obj_Tsubo_InitVars - .word 0x01110600, 0x00800010, 0x00010000, 0x000001A0 -.word ObjTsubo_Init -.word ObjTsubo_Destroy -.word ObjTsubo_Update -.word 0x00000000 -glabel D_80BA1B80 - .word 0x0003012C -glabel D_80BA1B84 - .word 0x05017870, 0x060017C0 -glabel D_80BA1B8C - .word 0x05017A60, 0x06001960 -glabel D_80BA1B94 - .word 0x0C090939, 0x20010000, 0x00000000, 0x00000002, 0x00010000, 0x4FC1FFFE, 0x00000000, 0x01010100, 0x0009001A, 0x00000000, 0x00000000 -glabel D_80BA1BC0 - .word 0x0000000C, 0x003CFF00 -glabel D_80BA1BC8 - .word 0xB86CFB50, 0xB870B1E0, 0xC8500096, 0xB0F40384, 0xB0F80064, 0x30FC0320 - diff --git a/data/overlays/actors/z_obj_tsubo.reloc.s b/data/overlays/actors/z_obj_tsubo.reloc.s deleted file mode 100644 index 39e400c3ac..0000000000 --- a/data/overlays/actors/z_obj_tsubo.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_80BA1C70 - .incbin "baserom/ovl_Obj_Tsubo", 0xF10, 0x00000180 diff --git a/spec b/spec index fb6398ee23..9aa536744e 100644 --- a/spec +++ b/spec @@ -3423,8 +3423,7 @@ endseg beginseg name "ovl_Obj_Tsubo" include "build/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" - include "build/data/overlays/actors/z_obj_tsubo.data.o" - include "build/data/overlays/actors/z_obj_tsubo.reloc.o" + include "build/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index f0c097cf92..28ad710f5c 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -5,6 +5,8 @@ */ #include "z_obj_tsubo.h" +#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" +#include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #define FLAGS 0x00800010 @@ -14,7 +16,27 @@ void ObjTsubo_Init(Actor* thisx, GlobalContext* globalCtx); void ObjTsubo_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjTsubo_Update(Actor* thisx, GlobalContext* globalCtx); -/* +void ObjTsubo_SpawnCollectible(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_ApplyGravity(ObjTsubo* this); +s32 ObjTsubo_SnapToFloor(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_InitCollider(Actor* thisx, GlobalContext* globalCtx); +void ObjTsubo_AirBreak(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_WaterBreak(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_SetupWaitForObject(ObjTsubo* this); +void ObjTsubo_WaitForObject(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_SetupIdle(ObjTsubo* this); +void ObjTsubo_Idle(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_SetupLiftedUp(ObjTsubo* this); +void ObjTsubo_LiftedUp(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_SetupThrown(ObjTsubo* this); +void ObjTsubo_Thrown(ObjTsubo* this, GlobalContext* globalCtx); +void ObjTsubo_Draw(ObjTsubo* this, GlobalContext* globalCtx); + +s16 D_80BA1B50 = 0; +s16 D_80BA1B54 = 0; +s16 D_80BA1B58 = 0; +s16 D_80BA1B5C = 0; + const ActorInit Obj_Tsubo_InitVars = { ACTOR_OBJ_TSUBO, ACTORCAT_PROP, @@ -27,7 +49,13 @@ const ActorInit Obj_Tsubo_InitVars = { NULL, }; -static ColliderCylinderInit D_80BA1B94 = { +static s16 sObjectIds[] = { OBJECT_GAMEPLAY_DANGEON_KEEP, OBJECT_TSUBO }; + +static Gfx* D_80BA1B84[] = { gPotDL, 0x060017C0 }; + +static Gfx* D_80BA1B8C[] = { gPotFragmentDL, 0x06001960 }; + +static ColliderCylinderInit sCylinderInit = { { COLTYPE_HARD, AT_ON | AT_TYPE_PLAYER, @@ -46,39 +74,265 @@ static ColliderCylinderInit D_80BA1B94 = { }, { 9, 26, 0, { 0, 0, 0 } }, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0D60.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DC0.s") +static CollisionCheckInfoInit sColChkInfoInit[] = { 0, 12, 60, MASS_IMMOVABLE }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0DF4.s") +static InitChainEntry sInitChain[] = { + ICHAIN_F32_DIV1000(gravity, -1200, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(minVelocityY, -20000, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 150, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 900, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 100, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA0E98.s") +void ObjTsubo_SpawnCollectible(ObjTsubo* this, GlobalContext* globalCtx) { + s16 dropParams = this->actor.params & 0x1F; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Init.s") + if ((dropParams >= ITEM00_RUPEE_GREEN) && (dropParams <= ITEM00_BOMBS_SPECIAL)) { + Item_DropCollectible(globalCtx, &this->actor.world.pos, + (dropParams | (((this->actor.params >> 9) & 0x3F) << 8))); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Destroy.s") +void ObjTsubo_ApplyGravity(ObjTsubo* 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_Tsubo/func_80BA100C.s") +s32 ObjTsubo_SnapToFloor(ObjTsubo* this, GlobalContext* globalCtx) { + CollisionPoly* floorPoly; + Vec3f pos; + s32 bgID; + f32 floorY; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1294.s") + pos.x = this->actor.world.pos.x; + pos.y = this->actor.world.pos.y + 20.0f; + pos.z = this->actor.world.pos.z; + floorY = BgCheck_EntityRaycastFloor4(&globalCtx->colCtx, &floorPoly, &bgID, &this->actor, &pos); + if (floorY > BGCHECK_Y_MIN) { + this->actor.world.pos.y = floorY; + Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); + return true; + } else { + osSyncPrintf("地面に付着失敗\n"); + return false; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA152C.s") +void ObjTsubo_InitCollider(Actor* thisx, GlobalContext* globalCtx) { + ObjTsubo* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA153C.s") + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + Collider_UpdateCylinder(&this->actor, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15AC.s") +void ObjTsubo_Init(Actor* thisx, GlobalContext* globalCtx) { + ObjTsubo* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA15BC.s") + Actor_ProcessInitChain(&this->actor, sInitChain); + ObjTsubo_InitCollider(&this->actor, globalCtx); + CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit); + if (!ObjTsubo_SnapToFloor(this, globalCtx)) { + Actor_Kill(&this->actor); + return; + } + this->objTsuboBankIndex = Object_GetIndex(&globalCtx->objectCtx, sObjectIds[(this->actor.params >> 8) & 1]); + if (this->objTsuboBankIndex < 0) { + osSyncPrintf("Error : バンク危険! (arg_data 0x%04x)(%s %d)\n", this->actor.params, "../z_obj_tsubo.c", 410); + Actor_Kill(&this->actor); + } else { + ObjTsubo_SetupWaitForObject(this); + osSyncPrintf("(dungeon keep 壷)(arg_data 0x%04x)\n", this->actor.params); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA17C4.s") +void ObjTsubo_Destroy(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; + ObjTsubo* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA180C.s") + Collider_DestroyCylinder(globalCtx, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA188C.s") +void ObjTsubo_AirBreak(ObjTsubo* this, GlobalContext* globalCtx) { + s32 pad; + f32 rand; + s16 angle; + Vec3f pos; + Vec3f velocity; + f32 sins; + f32 coss; + s32 arg5; + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1958.s") + for (i = 0, angle = 0; i < 15; i++, angle += 0x4E20) { + sins = Math_SinS(angle); + coss = Math_CosS(angle); + pos.x = sins * 8.0f; + pos.y = (Rand_ZeroOne() * 5.0f) + 2.0f; + pos.z = coss * 8.0f; + velocity.x = pos.x * 0.23f; + velocity.y = (Rand_ZeroOne() * 5.0f) + 2.0f; + velocity.z = pos.z * 0.23f; + Math_Vec3f_Sum(&pos, &this->actor.world.pos, &pos); + rand = Rand_ZeroOne(); + if (rand < 0.2f) { + arg5 = 96; + } else if (rand < 0.6f) { + arg5 = 64; + } else { + arg5 = 32; + } + EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &this->actor.world.pos, -240, arg5, 10, 10, 0, + (Rand_ZeroOne() * 95.0f) + 15.0f, 0, 32, 60, KAKERA_COLOR_NONE, + sObjectIds[(this->actor.params >> 8) & 1], D_80BA1B8C[(this->actor.params >> 8) & 1]); + } + func_80033480(globalCtx, &this->actor.world.pos, 30.0f, 4, 20, 50, 1); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/ObjTsubo_Update.s") +void ObjTsubo_WaterBreak(ObjTsubo* this, GlobalContext* globalCtx) { + s32 pad[2]; + s16 angle; + Vec3f pos = this->actor.world.pos; + Vec3f velocity; + s32 phi_s0; + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Tsubo/func_80BA1B0C.s") + pos.y += this->actor.yDistToWater; + EffectSsGSplash_Spawn(globalCtx, &pos, NULL, NULL, 0, 400); + for (i = 0, angle = 0; i < 15; i++, angle += 0x4E20) { + f32 sins = Math_SinS(angle); + f32 coss = Math_CosS(angle); + + pos.x = sins * 8.0f; + pos.y = (Rand_ZeroOne() * 5.0f) + 2.0f; + pos.z = coss * 8.0f; + velocity.x = pos.x * 0.2f; + velocity.y = (Rand_ZeroOne() * 4.0f) + 2.0f; + velocity.z = pos.z * 0.2f; + Math_Vec3f_Sum(&pos, &this->actor.world.pos, &pos); + phi_s0 = (Rand_ZeroOne() < .2f) ? 64 : 32; + EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &this->actor.world.pos, -180, phi_s0, 30, 30, 0, + (Rand_ZeroOne() * 95.0f) + 15.0f, 0, 32, 70, KAKERA_COLOR_NONE, + sObjectIds[(this->actor.params >> 8) & 1], D_80BA1B8C[(this->actor.params >> 8) & 1]); + } +} + +void ObjTsubo_SetupWaitForObject(ObjTsubo* this) { + this->actionFunc = ObjTsubo_WaitForObject; +} + +void ObjTsubo_WaitForObject(ObjTsubo* this, GlobalContext* globalCtx) { + if (Object_IsLoaded(&globalCtx->objectCtx, this->objTsuboBankIndex)) { + this->actor.draw = ObjTsubo_Draw; + this->actor.objBankIndex = this->objTsuboBankIndex; + ObjTsubo_SetupIdle(this); + this->actor.flags &= ~0x10; + } +} + +void ObjTsubo_SetupIdle(ObjTsubo* this) { + this->actionFunc = ObjTsubo_Idle; +} + +void ObjTsubo_Idle(ObjTsubo* this, GlobalContext* globalCtx) { + s32 pad; + s16 temp_v0; + s32 phi_v1; + + if (Actor_HasParent(&this->actor, globalCtx)) { + ObjTsubo_SetupLiftedUp(this); + } else if ((this->actor.bgCheckFlags & 0x20) && (this->actor.yDistToWater > 15.0f)) { + ObjTsubo_WaterBreak(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_POT_BROKEN); + ObjTsubo_SpawnCollectible(this, globalCtx); + Actor_Kill(&this->actor); + } else if ((this->collider.base.acFlags & AC_HIT) && + (this->collider.info.acHitInfo->toucher.dmgFlags & 0x4FC1FFFC)) { + ObjTsubo_AirBreak(this, globalCtx); + ObjTsubo_SpawnCollectible(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_POT_BROKEN); + Actor_Kill(&this->actor); + } else { + if (this->actor.xzDistToPlayer < 600.0f) { + Collider_UpdateCylinder(&this->actor, &this->collider); + this->collider.base.acFlags &= ~AC_HIT; + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + if (this->actor.xzDistToPlayer < 150.0f) { + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + } + } + if (this->actor.xzDistToPlayer < 100.0f) { + temp_v0 = this->actor.yawTowardsPlayer - PLAYER->actor.world.rot.y; + phi_v1 = ABS(temp_v0); + if (phi_v1 >= 0x5556) { + func_8002F434(&this->actor, globalCtx, 0, 30.0f, 30.0f); + } + } + } +} + +void ObjTsubo_SetupLiftedUp(ObjTsubo* this) { + this->actionFunc = ObjTsubo_LiftedUp; + this->actor.room = -1; + func_8002F7DC(&this->actor, NA_SE_PL_PULL_UP_POT); + this->actor.flags |= 0x10; +} + +void ObjTsubo_LiftedUp(ObjTsubo* this, GlobalContext* globalCtx) { + if (Actor_HasNoParent(&this->actor, globalCtx)) { + this->actor.room = globalCtx->roomCtx.curRoom.num; + ObjTsubo_SetupThrown(this); + ObjTsubo_ApplyGravity(this); + func_8002D7EC(&this->actor); + Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, 15.0f, 0.0f, 0x85); + } +} + +void ObjTsubo_SetupThrown(ObjTsubo* this) { + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.colChkInfo.mass = 240; + D_80BA1B50 = (Rand_ZeroOne() - 0.7f) * 2800.0f; + D_80BA1B58 = (Rand_ZeroOne() - 0.5f) * 2000.0f; + D_80BA1B54 = 0; + D_80BA1B5C = 0; + this->actionFunc = ObjTsubo_Thrown; +} + +void ObjTsubo_Thrown(ObjTsubo* this, GlobalContext* globalCtx) { + s32 pad[2]; + + if ((this->actor.bgCheckFlags & 0xB) || (this->collider.base.atFlags & AT_HIT)) { + ObjTsubo_AirBreak(this, globalCtx); + ObjTsubo_SpawnCollectible(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_POT_BROKEN); + Actor_Kill(&this->actor); + } else if (this->actor.bgCheckFlags & 0x40) { + ObjTsubo_WaterBreak(this, globalCtx); + ObjTsubo_SpawnCollectible(this, globalCtx); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_POT_BROKEN); + Actor_Kill(&this->actor); + } else { + ObjTsubo_ApplyGravity(this); + func_8002D7EC(&this->actor); + Math_StepToS(&D_80BA1B54, D_80BA1B50, 0x64); + Math_StepToS(&D_80BA1B5C, D_80BA1B58, 0x64); + this->actor.shape.rot.x += D_80BA1B54; + this->actor.shape.rot.y += D_80BA1B5C; + Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, 15.0f, 0.0f, 0x85); + Collider_UpdateCylinder(&this->actor, &this->collider); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + } +} + +void ObjTsubo_Update(Actor* thisx, GlobalContext* globalCtx) { + ObjTsubo* this = THIS; + + this->actionFunc(this, globalCtx); +} + +void ObjTsubo_Draw(ObjTsubo* this, GlobalContext* globalCtx) { + Gfx_DrawDListOpa(globalCtx, D_80BA1B84[(this->actor.params >> 8) & 1]); +} diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h index 9706d8f0ec..5d24662272 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h @@ -11,9 +11,11 @@ typedef void (*ObjTsuboActionFunc)(struct ObjTsubo*, GlobalContext*); typedef struct ObjTsubo { /* 0x0000 */ Actor actor; /* 0x014C */ ObjTsuboActionFunc actionFunc; - /* 0x0150 */ char unk_150[0x50]; + /* 0x0150 */ ColliderCylinder collider; + /* 0x019C */ s8 objTsuboBankIndex; } ObjTsubo; // size = 0x01A0 extern const ActorInit Obj_Tsubo_InitVars; #endif +