1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-28 19:25:27 +00:00

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
This commit is contained in:
Parker Burnett 2021-02-20 20:32:35 -05:00 committed by GitHub
parent 55ae8ad741
commit 8022585465
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 279 additions and 1104 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

3
spec
View file

@ -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

View file

@ -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]);
}

View file

@ -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