mirror of
https://github.com/zeldaret/oot.git
synced 2025-01-14 04:07:06 +00:00
En_anubice OK (#688)
* init, func_809B1120, and func_809B11C0 OK Also migrate data to c * Match Destroy, func_809B142C, func_809B1524, func_809B15CC Start on func_809B16AC, but float register diffs :( * Everything OK but func_809B16AC and what a devil it is... * Work on func_809B16AC What an ugly function * Do some documentation * More documentation * Run formatter * Rename a few things * Address PR comments * Missed a couple angle macro opportunities * Update src/overlays/actors/ovl_En_Anubice/z_en_anubice.c Co-authored-by: mzxrules <mzxrules@gmail.com> * Anubice OK * Deleted the wrong part of the spec * A curtain was missed * Forgot a comment I changed the declaration but not the reference :I * More PR comments Co-authored-by: mzxrules <mzxrules@gmail.com>
This commit is contained in:
parent
ecedc4f059
commit
88b05cd9a2
23 changed files with 474 additions and 1383 deletions
|
@ -1,25 +0,0 @@
|
|||
glabel EnAnubice_Destroy
|
||||
/* 002B4 809B13D4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 002B8 809B13D8 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 002BC 809B13DC AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002C0 809B13E0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 002C4 809B13E4 24C502C8 */ addiu $a1, $a2, 0x02C8 ## $a1 = 000002C8
|
||||
/* 002C8 809B13E8 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 002CC 809B13EC AFA60018 */ sw $a2, 0x0018($sp)
|
||||
/* 002D0 809B13F0 8FA60018 */ lw $a2, 0x0018($sp)
|
||||
/* 002D4 809B13F4 84CE001C */ lh $t6, 0x001C($a2) ## 0000001C
|
||||
/* 002D8 809B13F8 51C00009 */ beql $t6, $zero, .L809B1420
|
||||
/* 002DC 809B13FC 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 002E0 809B1400 8CC30118 */ lw $v1, 0x0118($a2) ## 00000118
|
||||
/* 002E4 809B1404 50600006 */ beql $v1, $zero, .L809B1420
|
||||
/* 002E8 809B1408 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 002EC 809B140C 8C6F0130 */ lw $t7, 0x0130($v1) ## 00000130
|
||||
/* 002F0 809B1410 51E00003 */ beql $t7, $zero, .L809B1420
|
||||
/* 002F4 809B1414 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 002F8 809B1418 AC600150 */ sw $zero, 0x0150($v1) ## 00000150
|
||||
/* 002FC 809B141C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L809B1420:
|
||||
/* 00300 809B1420 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00304 809B1424 03E00008 */ jr $ra
|
||||
/* 00308 809B1428 00000000 */ nop
|
|
@ -1,25 +0,0 @@
|
|||
glabel EnAnubice_Draw
|
||||
/* 01134 809B2254 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 01138 809B2258 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0113C 809B225C AFA40020 */ sw $a0, 0x0020($sp)
|
||||
/* 01140 809B2260 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 01144 809B2264 0C024F61 */ jal func_80093D84
|
||||
/* 01148 809B2268 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
|
||||
/* 0114C 809B226C 8FA20020 */ lw $v0, 0x0020($sp)
|
||||
/* 01150 809B2270 3C0F809B */ lui $t7, %hi(func_809B2150) ## $t7 = 809B0000
|
||||
/* 01154 809B2274 25EF2150 */ addiu $t7, $t7, %lo(func_809B2150) ## $t7 = 809B2150
|
||||
/* 01158 809B2278 3C07809B */ lui $a3, %hi(func_809B2104) ## $a3 = 809B0000
|
||||
/* 0115C 809B227C 8C450150 */ lw $a1, 0x0150($v0) ## 00000150
|
||||
/* 01160 809B2280 8C46016C */ lw $a2, 0x016C($v0) ## 0000016C
|
||||
/* 01164 809B2284 AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 01168 809B2288 24E72104 */ addiu $a3, $a3, %lo(func_809B2104) ## $a3 = 809B2104
|
||||
/* 0116C 809B228C 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 01170 809B2290 0C028572 */ jal SkelAnime_DrawOpa
|
||||
|
||||
/* 01174 809B2294 AFA20014 */ sw $v0, 0x0014($sp)
|
||||
/* 01178 809B2298 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 0117C 809B229C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 01180 809B22A0 03E00008 */ jr $ra
|
||||
/* 01184 809B22A4 00000000 */ nop
|
||||
/* 01188 809B22A8 00000000 */ nop
|
||||
/* 0118C 809B22AC 00000000 */ nop
|
|
@ -1,98 +0,0 @@
|
|||
.rdata
|
||||
glabel D_809B2340
|
||||
.asciz "\n\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_809B2344
|
||||
.asciz "\x1b[33m☆☆☆☆☆ アヌビス発生 ☆☆☆☆☆ \n\x1b[m"
|
||||
.balign 4
|
||||
|
||||
.late_rodata
|
||||
glabel D_809B241C
|
||||
.float -4230.0
|
||||
|
||||
.text
|
||||
glabel EnAnubice_Init
|
||||
/* 00184 809B12A4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00188 809B12A8 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 0018C 809B12AC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00190 809B12B0 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 00194 809B12B4 AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00198 809B12B8 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle)
|
||||
/* 0019C 809B12BC 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle)
|
||||
/* 001A0 809B12C0 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
|
||||
/* 001A4 809B12C4 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
|
||||
/* 001A8 809B12C8 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 001AC 809B12CC 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000
|
||||
/* 001B0 809B12D0 3C060600 */ lui $a2, %hi(D_06003990) ## $a2 = 06000000
|
||||
/* 001B4 809B12D4 3C070600 */ lui $a3, %hi(D_06000F74) ## $a3 = 06000000
|
||||
/* 001B8 809B12D8 260E0190 */ addiu $t6, $s0, 0x0190 ## $t6 = 00000190
|
||||
/* 001BC 809B12DC 260F01F0 */ addiu $t7, $s0, 0x01F0 ## $t7 = 000001F0
|
||||
/* 001C0 809B12E0 24180010 */ addiu $t8, $zero, 0x0010 ## $t8 = 00000010
|
||||
/* 001C4 809B12E4 AFB80018 */ sw $t8, 0x0018($sp)
|
||||
/* 001C8 809B12E8 AFAF0014 */ sw $t7, 0x0014($sp)
|
||||
/* 001CC 809B12EC AFAE0010 */ sw $t6, 0x0010($sp)
|
||||
/* 001D0 809B12F0 24E70F74 */ addiu $a3, $a3, %lo(D_06000F74) ## $a3 = 06000F74
|
||||
/* 001D4 809B12F4 24C63990 */ addiu $a2, $a2, %lo(D_06003990) ## $a2 = 06003990
|
||||
/* 001D8 809B12F8 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 001DC 809B12FC 0C02915F */ jal SkelAnime_Init
|
||||
|
||||
/* 001E0 809B1300 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 001E4 809B1304 3C04809B */ lui $a0, %hi(D_809B2340) ## $a0 = 809B0000
|
||||
/* 001E8 809B1308 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 001EC 809B130C 24842340 */ addiu $a0, $a0, %lo(D_809B2340) ## $a0 = 809B2340
|
||||
/* 001F0 809B1310 3C04809B */ lui $a0, %hi(D_809B2344) ## $a0 = 809B0000
|
||||
/* 001F4 809B1314 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 001F8 809B1318 24842344 */ addiu $a0, $a0, %lo(D_809B2344) ## $a0 = 809B2344
|
||||
/* 001FC 809B131C 2419003A */ addiu $t9, $zero, 0x003A ## $t9 = 0000003A
|
||||
/* 00200 809B1320 A2190117 */ sb $t9, 0x0117($s0) ## 00000117
|
||||
/* 00204 809B1324 260502C8 */ addiu $a1, $s0, 0x02C8 ## $a1 = 000002C8
|
||||
/* 00208 809B1328 AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 0020C 809B132C 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00210 809B1330 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00214 809B1334 3C07809B */ lui $a3, %hi(D_809B22D0) ## $a3 = 809B0000
|
||||
/* 00218 809B1338 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 0021C 809B133C 24E722D0 */ addiu $a3, $a3, %lo(D_809B22D0) ## $a3 = 809B22D0
|
||||
/* 00220 809B1340 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00224 809B1344 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 00228 809B1348 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 0022C 809B134C 3C053C75 */ lui $a1, 0x3C75 ## $a1 = 3C750000
|
||||
/* 00230 809B1350 34A5C28F */ ori $a1, $a1, 0xC28F ## $a1 = 3C75C28F
|
||||
/* 00234 809B1354 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00238 809B1358 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0023C 809B135C 3C08809B */ lui $t0, %hi(D_809B22FC) ## $t0 = 809B0000
|
||||
/* 00240 809B1360 250822FC */ addiu $t0, $t0, %lo(D_809B22FC) ## $t0 = 809B22FC
|
||||
/* 00244 809B1364 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
|
||||
/* 00248 809B1368 AE080098 */ sw $t0, 0x0098($s0) ## 00000098
|
||||
/* 0024C 809B136C A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE
|
||||
/* 00250 809B1370 3C01809B */ lui $at, %hi(D_809B241C) ## $at = 809B0000
|
||||
/* 00254 809B1374 C424241C */ lwc1 $f4, %lo(D_809B241C)($at)
|
||||
/* 00258 809B1378 8E0D0024 */ lw $t5, 0x0024($s0) ## 00000024
|
||||
/* 0025C 809B137C 8E0A0004 */ lw $t2, 0x0004($s0) ## 00000004
|
||||
/* 00260 809B1380 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 00264 809B1384 AE0D0298 */ sw $t5, 0x0298($s0) ## 00000298
|
||||
/* 00268 809B1388 8E0D002C */ lw $t5, 0x002C($s0) ## 0000002C
|
||||
/* 0026C 809B138C 8E0C0028 */ lw $t4, 0x0028($s0) ## 00000028
|
||||
/* 00270 809B1390 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 00274 809B1394 3C0F809B */ lui $t7, %hi(func_809B142C) ## $t7 = 809B0000
|
||||
/* 00278 809B1398 240E0003 */ addiu $t6, $zero, 0x0003 ## $t6 = 00000003
|
||||
/* 0027C 809B139C 25EF142C */ addiu $t7, $t7, %lo(func_809B142C) ## $t7 = 809B142C
|
||||
/* 00280 809B13A0 01415824 */ and $t3, $t2, $at
|
||||
/* 00284 809B13A4 AE0B0004 */ sw $t3, 0x0004($s0) ## 00000004
|
||||
/* 00288 809B13A8 A20E001F */ sb $t6, 0x001F($s0) ## 0000001F
|
||||
/* 0028C 809B13AC AE0F0250 */ sw $t7, 0x0250($s0) ## 00000250
|
||||
/* 00290 809B13B0 E60400BC */ swc1 $f4, 0x00BC($s0) ## 000000BC
|
||||
/* 00294 809B13B4 E606027C */ swc1 $f6, 0x027C($s0) ## 0000027C
|
||||
/* 00298 809B13B8 AE0D02A0 */ sw $t5, 0x02A0($s0) ## 000002A0
|
||||
/* 0029C 809B13BC AE0C029C */ sw $t4, 0x029C($s0) ## 0000029C
|
||||
/* 002A0 809B13C0 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 002A4 809B13C4 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 002A8 809B13C8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 002AC 809B13CC 03E00008 */ jr $ra
|
||||
/* 002B0 809B13D0 00000000 */ nop
|
|
@ -1,285 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809B2438
|
||||
.float 3.1415927
|
||||
|
||||
.text
|
||||
glabel EnAnubice_Update
|
||||
/* 00BE8 809B1D08 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
|
||||
/* 00BEC 809B1D0C 3C0E809B */ lui $t6, %hi(func_809B1984) ## $t6 = 809B0000
|
||||
/* 00BF0 809B1D10 25CE1984 */ addiu $t6, $t6, %lo(func_809B1984) ## $t6 = 809B1984
|
||||
/* 00BF4 809B1D14 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00BF8 809B1D18 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00BFC 809B1D1C AFA50064 */ sw $a1, 0x0064($sp)
|
||||
/* 00C00 809B1D20 AFAE0034 */ sw $t6, 0x0034($sp)
|
||||
/* 00C04 809B1D24 8C820250 */ lw $v0, 0x0250($a0) ## 00000250
|
||||
/* 00C08 809B1D28 3C0F809B */ lui $t7, %hi(func_809B1A54) ## $t7 = 809B0000
|
||||
/* 00C0C 809B1D2C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00C10 809B1D30 11C2009B */ beq $t6, $v0, .L809B1FA0
|
||||
/* 00C14 809B1D34 25EF1A54 */ addiu $t7, $t7, %lo(func_809B1A54) ## $t7 = 809B1A54
|
||||
/* 00C18 809B1D38 51E2009A */ beql $t7, $v0, .L809B1FA4
|
||||
/* 00C1C 809B1D3C 860E0254 */ lh $t6, 0x0254($s0) ## 00000254
|
||||
/* 00C20 809B1D40 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 00C24 809B1D44 C48600BC */ lwc1 $f6, 0x00BC($a0) ## 000000BC
|
||||
/* 00C28 809B1D48 46062032 */ c.eq.s $f4, $f6
|
||||
/* 00C2C 809B1D4C 00000000 */ nop
|
||||
/* 00C30 809B1D50 45020094 */ bc1fl .L809B1FA4
|
||||
/* 00C34 809B1D54 860E0254 */ lh $t6, 0x0254($s0) ## 00000254
|
||||
/* 00C38 809B1D58 0C26C448 */ jal func_809B1120
|
||||
/* 00C3C 809B1D5C 00000000 */ nop
|
||||
/* 00C40 809B1D60 3C014270 */ lui $at, 0x4270 ## $at = 42700000
|
||||
/* 00C44 809B1D64 44811000 */ mtc1 $at, $f2 ## $f2 = 60.00
|
||||
/* 00C48 809B1D68 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
|
||||
/* 00C4C 809B1D6C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00C50 809B1D70 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
|
||||
.L809B1D74:
|
||||
/* 00C54 809B1D74 8CA302B0 */ lw $v1, 0x02B0($a1) ## 000002B0
|
||||
/* 00C58 809B1D78 24840004 */ addiu $a0, $a0, 0x0004 ## $a0 = 00000004
|
||||
/* 00C5C 809B1D7C 10600026 */ beq $v1, $zero, .L809B1E18
|
||||
/* 00C60 809B1D80 00000000 */ nop
|
||||
/* 00C64 809B1D84 C4680024 */ lwc1 $f8, 0x0024($v1) ## 00000024
|
||||
/* 00C68 809B1D88 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
|
||||
/* 00C6C 809B1D8C 460A4001 */ sub.s $f0, $f8, $f10
|
||||
/* 00C70 809B1D90 46000005 */ abs.s $f0, $f0
|
||||
/* 00C74 809B1D94 4602003C */ c.lt.s $f0, $f2
|
||||
/* 00C78 809B1D98 00000000 */ nop
|
||||
/* 00C7C 809B1D9C 4500001E */ bc1f .L809B1E18
|
||||
/* 00C80 809B1DA0 00000000 */ nop
|
||||
/* 00C84 809B1DA4 C470002C */ lwc1 $f16, 0x002C($v1) ## 0000002C
|
||||
/* 00C88 809B1DA8 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
|
||||
/* 00C8C 809B1DAC 46128001 */ sub.s $f0, $f16, $f18
|
||||
/* 00C90 809B1DB0 46000005 */ abs.s $f0, $f0
|
||||
/* 00C94 809B1DB4 4602003C */ c.lt.s $f0, $f2
|
||||
/* 00C98 809B1DB8 00000000 */ nop
|
||||
/* 00C9C 809B1DBC 45000016 */ bc1f .L809B1E18
|
||||
/* 00CA0 809B1DC0 00000000 */ nop
|
||||
/* 00CA4 809B1DC4 84780154 */ lh $t8, 0x0154($v1) ## 00000154
|
||||
/* 00CA8 809B1DC8 13000013 */ beq $t8, $zero, .L809B1E18
|
||||
/* 00CAC 809B1DCC 00000000 */ nop
|
||||
/* 00CB0 809B1DD0 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00CB4 809B1DD4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00CB8 809B1DD8 24070006 */ addiu $a3, $zero, 0x0006 ## $a3 = 00000006
|
||||
/* 00CBC 809B1DDC 0C00CDD2 */ jal Actor_ChangeCategory
|
||||
|
||||
/* 00CC0 809B1DE0 24851C24 */ addiu $a1, $a0, 0x1C24 ## $a1 = 00001C28
|
||||
/* 00CC4 809B1DE4 8E190004 */ lw $t9, 0x0004($s0) ## 00000004
|
||||
/* 00CC8 809B1DE8 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 00CCC 809B1DEC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00CD0 809B1DF0 03214024 */ and $t0, $t9, $at
|
||||
/* 00CD4 809B1DF4 AE080004 */ sw $t0, 0x0004($s0) ## 00000004
|
||||
/* 00CD8 809B1DF8 0C00CB1F */ jal func_80032C7C
|
||||
/* 00CDC 809B1DFC 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00CE0 809B1E00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00CE4 809B1E04 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00CE8 809B1E08 2405399F */ addiu $a1, $zero, 0x399F ## $a1 = 0000399F
|
||||
/* 00CEC 809B1E0C 8FA90034 */ lw $t1, 0x0034($sp)
|
||||
/* 00CF0 809B1E10 100000B7 */ beq $zero, $zero, .L809B20F0
|
||||
/* 00CF4 809B1E14 AE090250 */ sw $t1, 0x0250($s0) ## 00000250
|
||||
.L809B1E18:
|
||||
/* 00CF8 809B1E18 1486FFD6 */ bne $a0, $a2, .L809B1D74
|
||||
/* 00CFC 809B1E1C 24A50004 */ addiu $a1, $a1, 0x0004 ## $a1 = 00000004
|
||||
/* 00D00 809B1E20 920202D9 */ lbu $v0, 0x02D9($s0) ## 000002D9
|
||||
/* 00D04 809B1E24 304A0002 */ andi $t2, $v0, 0x0002 ## $t2 = 00000000
|
||||
/* 00D08 809B1E28 51400044 */ beql $t2, $zero, .L809B1F3C
|
||||
/* 00D0C 809B1E2C 860A0262 */ lh $t2, 0x0262($s0) ## 00000262
|
||||
/* 00D10 809B1E30 920C00B1 */ lbu $t4, 0x00B1($s0) ## 000000B1
|
||||
/* 00D14 809B1E34 304BFFFD */ andi $t3, $v0, 0xFFFD ## $t3 = 00000000
|
||||
/* 00D18 809B1E38 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
||||
/* 00D1C 809B1E3C 15810013 */ bne $t4, $at, .L809B1E8C
|
||||
/* 00D20 809B1E40 A20B02D9 */ sb $t3, 0x02D9($s0) ## 000002D9
|
||||
/* 00D24 809B1E44 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00D28 809B1E48 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00D2C 809B1E4C 24070006 */ addiu $a3, $zero, 0x0006 ## $a3 = 00000006
|
||||
/* 00D30 809B1E50 0C00CDD2 */ jal Actor_ChangeCategory
|
||||
|
||||
/* 00D34 809B1E54 24851C24 */ addiu $a1, $a0, 0x1C24 ## $a1 = 00001C24
|
||||
/* 00D38 809B1E58 8E0D0004 */ lw $t5, 0x0004($s0) ## 00000004
|
||||
/* 00D3C 809B1E5C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 00D40 809B1E60 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00D44 809B1E64 01A17024 */ and $t6, $t5, $at
|
||||
/* 00D48 809B1E68 AE0E0004 */ sw $t6, 0x0004($s0) ## 00000004
|
||||
/* 00D4C 809B1E6C 0C00CB1F */ jal func_80032C7C
|
||||
/* 00D50 809B1E70 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00D54 809B1E74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00D58 809B1E78 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00D5C 809B1E7C 2405399F */ addiu $a1, $zero, 0x399F ## $a1 = 0000399F
|
||||
/* 00D60 809B1E80 8FAF0034 */ lw $t7, 0x0034($sp)
|
||||
/* 00D64 809B1E84 1000009A */ beq $zero, $zero, .L809B20F0
|
||||
/* 00D68 809B1E88 AE0F0250 */ sw $t7, 0x0250($s0) ## 00000250
|
||||
.L809B1E8C:
|
||||
/* 00D6C 809B1E8C 86180262 */ lh $t8, 0x0262($s0) ## 00000262
|
||||
/* 00D70 809B1E90 2419000A */ addiu $t9, $zero, 0x000A ## $t9 = 0000000A
|
||||
/* 00D74 809B1E94 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
|
||||
/* 00D78 809B1E98 17000027 */ bne $t8, $zero, .L809B1F38
|
||||
/* 00D7C 809B1E9C 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
|
||||
/* 00D80 809B1EA0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00D84 809B1EA4 A619025C */ sh $t9, 0x025C($s0) ## 0000025C
|
||||
/* 00D88 809B1EA8 A6080262 */ sh $t0, 0x0262($s0) ## 00000262
|
||||
/* 00D8C 809B1EAC 44812000 */ mtc1 $at, $f4 ## $f4 = -10.00
|
||||
/* 00D90 809B1EB0 E7A00048 */ swc1 $f0, 0x0048($sp)
|
||||
/* 00D94 809B1EB4 E7A0004C */ swc1 $f0, 0x004C($sp)
|
||||
/* 00D98 809B1EB8 E7A0003C */ swc1 $f0, 0x003C($sp)
|
||||
/* 00D9C 809B1EBC E7A00040 */ swc1 $f0, 0x0040($sp)
|
||||
/* 00DA0 809B1EC0 E7A00044 */ swc1 $f0, 0x0044($sp)
|
||||
/* 00DA4 809B1EC4 E7A40050 */ swc1 $f4, 0x0050($sp)
|
||||
/* 00DA8 809B1EC8 860900B6 */ lh $t1, 0x00B6($s0) ## 000000B6
|
||||
/* 00DAC 809B1ECC 3C014700 */ lui $at, 0x4700 ## $at = 47000000
|
||||
/* 00DB0 809B1ED0 44815000 */ mtc1 $at, $f10 ## $f10 = 32768.00
|
||||
/* 00DB4 809B1ED4 44893000 */ mtc1 $t1, $f6 ## $f6 = 0.00
|
||||
/* 00DB8 809B1ED8 3C01809B */ lui $at, %hi(D_809B2438) ## $at = 809B0000
|
||||
/* 00DBC 809B1EDC C4322438 */ lwc1 $f18, %lo(D_809B2438)($at)
|
||||
/* 00DC0 809B1EE0 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 00DC4 809B1EE4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00DC8 809B1EE8 460A4403 */ div.s $f16, $f8, $f10
|
||||
/* 00DCC 809B1EEC 46128302 */ mul.s $f12, $f16, $f18
|
||||
/* 00DD0 809B1EF0 0C034348 */ jal Matrix_RotateY
|
||||
/* 00DD4 809B1EF4 00000000 */ nop
|
||||
/* 00DD8 809B1EF8 27A40048 */ addiu $a0, $sp, 0x0048 ## $a0 = FFFFFFE8
|
||||
/* 00DDC 809B1EFC 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 00DE0 809B1F00 27A5003C */ addiu $a1, $sp, 0x003C ## $a1 = FFFFFFDC
|
||||
/* 00DE4 809B1F04 C7A4003C */ lwc1 $f4, 0x003C($sp)
|
||||
/* 00DE8 809B1F08 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00DEC 809B1F0C 2405393B */ addiu $a1, $zero, 0x393B ## $a1 = 0000393B
|
||||
/* 00DF0 809B1F10 E604005C */ swc1 $f4, 0x005C($s0) ## 0000005C
|
||||
/* 00DF4 809B1F14 C7A60044 */ lwc1 $f6, 0x0044($sp)
|
||||
/* 00DF8 809B1F18 E6060064 */ swc1 $f6, 0x0064($s0) ## 00000064
|
||||
/* 00DFC 809B1F1C C7A8003C */ lwc1 $f8, 0x003C($sp)
|
||||
/* 00E00 809B1F20 46004287 */ neg.s $f10, $f8
|
||||
/* 00E04 809B1F24 E60A02A4 */ swc1 $f10, 0x02A4($s0) ## 000002A4
|
||||
/* 00E08 809B1F28 C7B00044 */ lwc1 $f16, 0x0044($sp)
|
||||
/* 00E0C 809B1F2C 46008487 */ neg.s $f18, $f16
|
||||
/* 00E10 809B1F30 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00E14 809B1F34 E61202AC */ swc1 $f18, 0x02AC($s0) ## 000002AC
|
||||
.L809B1F38:
|
||||
/* 00E18 809B1F38 860A0262 */ lh $t2, 0x0262($s0) ## 00000262
|
||||
.L809B1F3C:
|
||||
/* 00E1C 809B1F3C 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
|
||||
/* 00E20 809B1F40 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
|
||||
/* 00E24 809B1F44 11400016 */ beq $t2, $zero, .L809B1FA0
|
||||
/* 00E28 809B1F48 2604005C */ addiu $a0, $s0, 0x005C ## $a0 = 0000005C
|
||||
/* 00E2C 809B1F4C 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
|
||||
/* 00E30 809B1F50 8E0502A4 */ lw $a1, 0x02A4($s0) ## 000002A4
|
||||
/* 00E34 809B1F54 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
|
||||
/* 00E38 809B1F58 256C1964 */ addiu $t4, $t3, 0x1964 ## $t4 = 00001964
|
||||
/* 00E3C 809B1F5C 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 00E40 809B1F60 A60C00B6 */ sh $t4, 0x00B6($s0) ## 000000B6
|
||||
/* 00E44 809B1F64 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
|
||||
/* 00E48 809B1F68 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
|
||||
/* 00E4C 809B1F6C 26040064 */ addiu $a0, $s0, 0x0064 ## $a0 = 00000064
|
||||
/* 00E50 809B1F70 8E0502AC */ lw $a1, 0x02AC($s0) ## 000002AC
|
||||
/* 00E54 809B1F74 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 00E58 809B1F78 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
|
||||
/* 00E5C 809B1F7C 860D025C */ lh $t5, 0x025C($s0) ## 0000025C
|
||||
/* 00E60 809B1F80 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00E64 809B1F84 55A00007 */ bnel $t5, $zero, .L809B1FA4
|
||||
/* 00E68 809B1F88 860E0254 */ lh $t6, 0x0254($s0) ## 00000254
|
||||
/* 00E6C 809B1F8C E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064
|
||||
/* 00E70 809B1F90 E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C
|
||||
/* 00E74 809B1F94 E60002AC */ swc1 $f0, 0x02AC($s0) ## 000002AC
|
||||
/* 00E78 809B1F98 E60002A4 */ swc1 $f0, 0x02A4($s0) ## 000002A4
|
||||
/* 00E7C 809B1F9C A6000262 */ sh $zero, 0x0262($s0) ## 00000262
|
||||
.L809B1FA0:
|
||||
/* 00E80 809B1FA0 860E0254 */ lh $t6, 0x0254($s0) ## 00000254
|
||||
.L809B1FA4:
|
||||
/* 00E84 809B1FA4 8602025C */ lh $v0, 0x025C($s0) ## 0000025C
|
||||
/* 00E88 809B1FA8 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
|
||||
/* 00E8C 809B1FAC 10400003 */ beq $v0, $zero, .L809B1FBC
|
||||
/* 00E90 809B1FB0 A60F0254 */ sh $t7, 0x0254($s0) ## 00000254
|
||||
/* 00E94 809B1FB4 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
|
||||
/* 00E98 809B1FB8 A618025C */ sh $t8, 0x025C($s0) ## 0000025C
|
||||
.L809B1FBC:
|
||||
/* 00E9C 809B1FBC 8602025A */ lh $v0, 0x025A($s0) ## 0000025A
|
||||
/* 00EA0 809B1FC0 10400002 */ beq $v0, $zero, .L809B1FCC
|
||||
/* 00EA4 809B1FC4 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
|
||||
/* 00EA8 809B1FC8 A619025A */ sh $t9, 0x025A($s0) ## 0000025A
|
||||
.L809B1FCC:
|
||||
/* 00EAC 809B1FCC 8E190250 */ lw $t9, 0x0250($s0) ## 00000250
|
||||
/* 00EB0 809B1FD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00EB4 809B1FD4 8FA50064 */ lw $a1, 0x0064($sp)
|
||||
/* 00EB8 809B1FD8 0320F809 */ jalr $ra, $t9
|
||||
/* 00EBC 809B1FDC 00000000 */ nop
|
||||
/* 00EC0 809B1FE0 C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060
|
||||
/* 00EC4 809B1FE4 C606006C */ lwc1 $f6, 0x006C($s0) ## 0000006C
|
||||
/* 00EC8 809B1FE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00ECC 809B1FEC 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 00ED0 809B1FF0 0C00B5FB */ jal func_8002D7EC
|
||||
/* 00ED4 809B1FF4 E6080060 */ swc1 $f8, 0x0060($s0) ## 00000060
|
||||
/* 00ED8 809B1FF8 86080260 */ lh $t0, 0x0260($s0) ## 00000260
|
||||
/* 00EDC 809B1FFC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
|
||||
/* 00EE0 809B2000 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00EE4 809B2004 1500000F */ bne $t0, $zero, .L809B2044
|
||||
/* 00EE8 809B2008 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00EEC 809B200C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
|
||||
/* 00EF0 809B2010 44810000 */ mtc1 $at, $f0 ## $f0 = 5.00
|
||||
/* 00EF4 809B2014 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 00EF8 809B2018 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00
|
||||
/* 00EFC 809B201C 2409001D */ addiu $t1, $zero, 0x001D ## $t1 = 0000001D
|
||||
/* 00F00 809B2020 44060000 */ mfc1 $a2, $f0
|
||||
/* 00F04 809B2024 44070000 */ mfc1 $a3, $f0
|
||||
/* 00F08 809B2028 AFA90014 */ sw $t1, 0x0014($sp)
|
||||
/* 00F0C 809B202C 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00F10 809B2030 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00F14 809B2034 0C00B92D */ jal Actor_UpdateBgCheckInfo
|
||||
/* 00F18 809B2038 E7AA0010 */ swc1 $f10, 0x0010($sp)
|
||||
/* 00F1C 809B203C 1000000B */ beq $zero, $zero, .L809B206C
|
||||
/* 00F20 809B2040 8E020250 */ lw $v0, 0x0250($s0) ## 00000250
|
||||
.L809B2044:
|
||||
/* 00F24 809B2044 44810000 */ mtc1 $at, $f0 ## $f0 = 0.00
|
||||
/* 00F28 809B2048 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 00F2C 809B204C 44818000 */ mtc1 $at, $f16 ## $f16 = 10.00
|
||||
/* 00F30 809B2050 240A001C */ addiu $t2, $zero, 0x001C ## $t2 = 0000001C
|
||||
/* 00F34 809B2054 44060000 */ mfc1 $a2, $f0
|
||||
/* 00F38 809B2058 44070000 */ mfc1 $a3, $f0
|
||||
/* 00F3C 809B205C AFAA0014 */ sw $t2, 0x0014($sp)
|
||||
/* 00F40 809B2060 0C00B92D */ jal Actor_UpdateBgCheckInfo
|
||||
/* 00F44 809B2064 E7B00010 */ swc1 $f16, 0x0010($sp)
|
||||
/* 00F48 809B2068 8E020250 */ lw $v0, 0x0250($s0) ## 00000250
|
||||
.L809B206C:
|
||||
/* 00F4C 809B206C 8FAB0034 */ lw $t3, 0x0034($sp)
|
||||
/* 00F50 809B2070 3C0C809B */ lui $t4, %hi(func_809B1A54) ## $t4 = 809B0000
|
||||
/* 00F54 809B2074 258C1A54 */ addiu $t4, $t4, %lo(func_809B1A54) ## $t4 = 809B1A54
|
||||
/* 00F58 809B2078 5162001E */ beql $t3, $v0, .L809B20F4
|
||||
/* 00F5C 809B207C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00F60 809B2080 1182001B */ beq $t4, $v0, .L809B20F0
|
||||
/* 00F64 809B2084 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00F68 809B2088 0C00B56E */ jal Actor_SetFocus
|
||||
|
||||
/* 00F6C 809B208C 8E05027C */ lw $a1, 0x027C($s0) ## 0000027C
|
||||
/* 00F70 809B2090 260502C8 */ addiu $a1, $s0, 0x02C8 ## $a1 = 000002C8
|
||||
/* 00F74 809B2094 AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 00F78 809B2098 0C0189B7 */ jal Collider_UpdateCylinder
|
||||
|
||||
/* 00F7C 809B209C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00F80 809B20A0 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00F84 809B20A4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00F88 809B20A8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00F8C 809B20AC 00812821 */ addu $a1, $a0, $at
|
||||
/* 00F90 809B20B0 AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 00F94 809B20B4 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOC
|
||||
/* 00F98 809B20B8 8FA60030 */ lw $a2, 0x0030($sp)
|
||||
/* 00F9C 809B20BC 860D0262 */ lh $t5, 0x0262($s0) ## 00000262
|
||||
/* 00FA0 809B20C0 8FA50034 */ lw $a1, 0x0034($sp)
|
||||
/* 00FA4 809B20C4 55A0000B */ bnel $t5, $zero, .L809B20F4
|
||||
/* 00FA8 809B20C8 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00FAC 809B20CC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
|
||||
/* 00FB0 809B20D0 C60400BC */ lwc1 $f4, 0x00BC($s0) ## 000000BC
|
||||
/* 00FB4 809B20D4 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00FB8 809B20D8 46049032 */ c.eq.s $f18, $f4
|
||||
/* 00FBC 809B20DC 00000000 */ nop
|
||||
/* 00FC0 809B20E0 45020004 */ bc1fl .L809B20F4
|
||||
/* 00FC4 809B20E4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00FC8 809B20E8 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00FCC 809B20EC 8FA60030 */ lw $a2, 0x0030($sp)
|
||||
.L809B20F0:
|
||||
/* 00FD0 809B20F0 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809B20F4:
|
||||
/* 00FD4 809B20F4 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00FD8 809B20F8 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
|
||||
/* 00FDC 809B20FC 03E00008 */ jr $ra
|
||||
/* 00FE0 809B2100 00000000 */ nop
|
|
@ -1,49 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809B2410
|
||||
.float 1500.0
|
||||
|
||||
.text
|
||||
glabel func_809B1120
|
||||
/* 00000 809B1120 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00004 809B1124 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00008 809B1128 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 0000C 809B112C AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00010 809B1130 3C01809B */ lui $at, %hi(D_809B2410) ## $at = 809B0000
|
||||
/* 00014 809B1134 C4262410 */ lwc1 $f6, %lo(D_809B2410)($at)
|
||||
/* 00018 809B1138 C4840268 */ lwc1 $f4, 0x0268($a0) ## 00000268
|
||||
/* 0001C 809B113C 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 00020 809B1140 C4900274 */ lwc1 $f16, 0x0274($a0) ## 00000274
|
||||
/* 00024 809B1144 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 00028 809B1148 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0002C 809B114C 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
|
||||
/* 00030 809B1150 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
|
||||
/* 00034 809B1154 E4880268 */ swc1 $f8, 0x0268($a0) ## 00000268
|
||||
/* 00038 809B1158 C44A0028 */ lwc1 $f10, 0x0028($v0) ## 00000028
|
||||
/* 0003C 809B115C 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
|
||||
/* 00040 809B1160 3C074120 */ lui $a3, 0x4120 ## $a3 = 41200000
|
||||
/* 00044 809B1164 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 00048 809B1168 E4920248 */ swc1 $f18, 0x0248($a0) ## 00000270
|
||||
/* 0004C 809B116C 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 00050 809B1170 8E050270 */ lw $a1, 0x0270($s0) ## 00000270
|
||||
/* 00054 809B1174 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
|
||||
/* 00058 809B1178 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
|
||||
/* 0005C 809B117C 26040274 */ addiu $a0, $s0, 0x0274 ## $a0 = 00000274
|
||||
/* 00060 809B1180 3C054120 */ lui $a1, 0x4120 ## $a1 = 41200000
|
||||
/* 00064 809B1184 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 00068 809B1188 3C073F00 */ lui $a3, 0x3F00 ## $a3 = 3F000000
|
||||
/* 0006C 809B118C C6040268 */ lwc1 $f4, 0x0268($s0) ## 00000268
|
||||
/* 00070 809B1190 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 00074 809B1194 44043000 */ mfc1 $a0, $f6
|
||||
/* 00078 809B1198 00000000 */ nop
|
||||
/* 0007C 809B119C 00042400 */ sll $a0, $a0, 16
|
||||
/* 00080 809B11A0 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00084 809B11A4 00042403 */ sra $a0, $a0, 16
|
||||
/* 00088 809B11A8 E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
|
||||
/* 0008C 809B11AC 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00090 809B11B0 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00094 809B11B4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00098 809B11B8 03E00008 */ jr $ra
|
||||
/* 0009C 809B11BC 00000000 */ nop
|
|
@ -1,65 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809B2414
|
||||
.float 10430.378
|
||||
glabel D_809B2418
|
||||
.float 10430.378
|
||||
|
||||
.text
|
||||
glabel func_809B11C0
|
||||
/* 000A0 809B11C0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 000A4 809B11C4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 000A8 809B11C8 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 000AC 809B11CC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 000B0 809B11D0 C4860280 */ lwc1 $f6, 0x0280($a0) ## 00000280
|
||||
/* 000B4 809B11D4 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00
|
||||
/* 000B8 809B11D8 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024
|
||||
/* 000BC 809B11DC C4480028 */ lwc1 $f8, 0x0028($v0) ## 00000028
|
||||
/* 000C0 809B11E0 46062081 */ sub.s $f2, $f4, $f6
|
||||
/* 000C4 809B11E4 C446002C */ lwc1 $f6, 0x002C($v0) ## 0000002C
|
||||
/* 000C8 809B11E8 C4840284 */ lwc1 $f4, 0x0284($a0) ## 00000284
|
||||
/* 000CC 809B11EC 460A4480 */ add.s $f18, $f8, $f10
|
||||
/* 000D0 809B11F0 C4880288 */ lwc1 $f8, 0x0288($a0) ## 00000288
|
||||
/* 000D4 809B11F4 46021282 */ mul.s $f10, $f2, $f2
|
||||
/* 000D8 809B11F8 E7A20020 */ swc1 $f2, 0x0020($sp)
|
||||
/* 000DC 809B11FC 46083401 */ sub.s $f16, $f6, $f8
|
||||
/* 000E0 809B1200 AFA40028 */ sw $a0, 0x0028($sp)
|
||||
/* 000E4 809B1204 46049301 */ sub.s $f12, $f18, $f4
|
||||
/* 000E8 809B1208 46108482 */ mul.s $f18, $f16, $f16
|
||||
/* 000EC 809B120C E7B00018 */ swc1 $f16, 0x0018($sp)
|
||||
/* 000F0 809B1210 46125000 */ add.s $f0, $f10, $f18
|
||||
/* 000F4 809B1214 0C03F494 */ jal Math_FAtan2F
|
||||
/* 000F8 809B1218 46000384 */ sqrt.s $f14, $f0
|
||||
/* 000FC 809B121C 3C01809B */ lui $at, %hi(D_809B2414) ## $at = 809B0000
|
||||
/* 00100 809B1220 C4242414 */ lwc1 $f4, %lo(D_809B2414)($at)
|
||||
/* 00104 809B1224 8FA40028 */ lw $a0, 0x0028($sp)
|
||||
/* 00108 809B1228 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 0010C 809B122C 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 00110 809B1230 440F4000 */ mfc1 $t7, $f8
|
||||
/* 00114 809B1234 00000000 */ nop
|
||||
/* 00118 809B1238 000FC400 */ sll $t8, $t7, 16
|
||||
/* 0011C 809B123C 0018CC03 */ sra $t9, $t8, 16
|
||||
/* 00120 809B1240 00194023 */ subu $t0, $zero, $t9
|
||||
/* 00124 809B1244 44885000 */ mtc1 $t0, $f10 ## $f10 = 0.00
|
||||
/* 00128 809B1248 00000000 */ nop
|
||||
/* 0012C 809B124C 468054A0 */ cvt.s.w $f18, $f10
|
||||
/* 00130 809B1250 E492028C */ swc1 $f18, 0x028C($a0) ## 0000028C
|
||||
/* 00134 809B1254 C7AE0018 */ lwc1 $f14, 0x0018($sp)
|
||||
/* 00138 809B1258 0C03F494 */ jal Math_FAtan2F
|
||||
/* 0013C 809B125C C7AC0020 */ lwc1 $f12, 0x0020($sp)
|
||||
/* 00140 809B1260 3C01809B */ lui $at, %hi(D_809B2418) ## $at = 809B0000
|
||||
/* 00144 809B1264 C4242418 */ lwc1 $f4, %lo(D_809B2418)($at)
|
||||
/* 00148 809B1268 8FA40028 */ lw $a0, 0x0028($sp)
|
||||
/* 0014C 809B126C 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00150 809B1270 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 00154 809B1274 440A4000 */ mfc1 $t2, $f8
|
||||
/* 00158 809B1278 00000000 */ nop
|
||||
/* 0015C 809B127C 000A5C00 */ sll $t3, $t2, 16
|
||||
/* 00160 809B1280 000B6403 */ sra $t4, $t3, 16
|
||||
/* 00164 809B1284 448C5000 */ mtc1 $t4, $f10 ## $f10 = 0.00
|
||||
/* 00168 809B1288 00000000 */ nop
|
||||
/* 0016C 809B128C 468054A0 */ cvt.s.w $f18, $f10
|
||||
/* 00170 809B1290 E4920290 */ swc1 $f18, 0x0290($a0) ## 00000290
|
||||
/* 00174 809B1294 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00178 809B1298 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 0017C 809B129C 03E00008 */ jr $ra
|
||||
/* 00180 809B12A0 00000000 */ nop
|
|
@ -1,81 +0,0 @@
|
|||
.rdata
|
||||
glabel D_809B2374
|
||||
.asciz "\x1b[32m☆☆☆☆☆ 火は幾つ? ☆☆☆☆☆ %d\n\x1b[m"
|
||||
.balign 4
|
||||
|
||||
glabel D_809B23A4
|
||||
.asciz "\x1b[33m☆☆☆☆☆ 火は幾つ? ☆☆☆☆☆ %x\n\x1b[m"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_809B142C
|
||||
/* 0030C 809B142C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00310 809B1430 AFBF0034 */ sw $ra, 0x0034($sp)
|
||||
/* 00314 809B1434 AFB60030 */ sw $s6, 0x0030($sp)
|
||||
/* 00318 809B1438 AFB5002C */ sw $s5, 0x002C($sp)
|
||||
/* 0031C 809B143C AFB40028 */ sw $s4, 0x0028($sp)
|
||||
/* 00320 809B1440 AFB30024 */ sw $s3, 0x0024($sp)
|
||||
/* 00324 809B1444 AFB20020 */ sw $s2, 0x0020($sp)
|
||||
/* 00328 809B1448 AFB1001C */ sw $s1, 0x001C($sp)
|
||||
/* 0032C 809B144C AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00330 809B1450 848E025E */ lh $t6, 0x025E($a0) ## 0000025E
|
||||
/* 00334 809B1454 0080B025 */ or $s6, $a0, $zero ## $s6 = 00000000
|
||||
/* 00338 809B1458 51C00029 */ beql $t6, $zero, .L809B1500
|
||||
/* 0033C 809B145C 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
/* 00340 809B1460 848F0264 */ lh $t7, 0x0264($a0) ## 00000264
|
||||
/* 00344 809B1464 55E00020 */ bnel $t7, $zero, .L809B14E8
|
||||
/* 00348 809B1468 8EC90004 */ lw $t1, 0x0004($s6) ## 00000004
|
||||
/* 0034C 809B146C 8CB01C64 */ lw $s0, 0x1C64($a1) ## 00001C64
|
||||
/* 00350 809B1470 3C15809B */ lui $s5, %hi(D_809B23A4) ## $s5 = 809B0000
|
||||
/* 00354 809B1474 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
|
||||
/* 00358 809B1478 12000018 */ beq $s0, $zero, .L809B14DC
|
||||
/* 0035C 809B147C 26B523A4 */ addiu $s5, $s5, %lo(D_809B23A4) ## $s5 = 809B23A4
|
||||
/* 00360 809B1480 3C14809B */ lui $s4, %hi(D_809B2374) ## $s4 = 809B0000
|
||||
/* 00364 809B1484 26942374 */ addiu $s4, $s4, %lo(D_809B2374) ## $s4 = 809B2374
|
||||
/* 00368 809B1488 24130049 */ addiu $s3, $zero, 0x0049 ## $s3 = 00000049
|
||||
/* 0036C 809B148C 86180000 */ lh $t8, 0x0000($s0) ## 00000000
|
||||
.L809B1490:
|
||||
/* 00370 809B1490 0012C880 */ sll $t9, $s2, 2
|
||||
/* 00374 809B1494 02D98821 */ addu $s1, $s6, $t9
|
||||
/* 00378 809B1498 12780003 */ beq $s3, $t8, .L809B14A8
|
||||
/* 0037C 809B149C 02802025 */ or $a0, $s4, $zero ## $a0 = 809B2374
|
||||
/* 00380 809B14A0 1000000C */ beq $zero, $zero, .L809B14D4
|
||||
/* 00384 809B14A4 8E100124 */ lw $s0, 0x0124($s0) ## 00000124
|
||||
.L809B14A8:
|
||||
/* 00388 809B14A8 AE3002B0 */ sw $s0, 0x02B0($s1) ## 000002B0
|
||||
/* 0038C 809B14AC 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00390 809B14B0 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000
|
||||
/* 00394 809B14B4 02A02025 */ or $a0, $s5, $zero ## $a0 = 809B23A4
|
||||
/* 00398 809B14B8 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 0039C 809B14BC 8E2502B0 */ lw $a1, 0x02B0($s1) ## 000002B0
|
||||
/* 003A0 809B14C0 2A410004 */ slti $at, $s2, 0x0004
|
||||
/* 003A4 809B14C4 50200003 */ beql $at, $zero, .L809B14D4
|
||||
/* 003A8 809B14C8 8E100124 */ lw $s0, 0x0124($s0) ## 00000124
|
||||
/* 003AC 809B14CC 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
|
||||
/* 003B0 809B14D0 8E100124 */ lw $s0, 0x0124($s0) ## 00000124
|
||||
.L809B14D4:
|
||||
/* 003B4 809B14D4 5600FFEE */ bnel $s0, $zero, .L809B1490
|
||||
/* 003B8 809B14D8 86180000 */ lh $t8, 0x0000($s0) ## 00000000
|
||||
.L809B14DC:
|
||||
/* 003BC 809B14DC 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
|
||||
/* 003C0 809B14E0 A6C80264 */ sh $t0, 0x0264($s6) ## 00000264
|
||||
/* 003C4 809B14E4 8EC90004 */ lw $t1, 0x0004($s6) ## 00000004
|
||||
.L809B14E8:
|
||||
/* 003C8 809B14E8 3C0B809B */ lui $t3, %hi(func_809B1524) ## $t3 = 809B0000
|
||||
/* 003CC 809B14EC 256B1524 */ addiu $t3, $t3, %lo(func_809B1524) ## $t3 = 809B1524
|
||||
/* 003D0 809B14F0 352A0001 */ ori $t2, $t1, 0x0001 ## $t2 = 00000001
|
||||
/* 003D4 809B14F4 AECA0004 */ sw $t2, 0x0004($s6) ## 00000004
|
||||
/* 003D8 809B14F8 AECB0250 */ sw $t3, 0x0250($s6) ## 00000250
|
||||
/* 003DC 809B14FC 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
.L809B1500:
|
||||
/* 003E0 809B1500 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 003E4 809B1504 8FB1001C */ lw $s1, 0x001C($sp)
|
||||
/* 003E8 809B1508 8FB20020 */ lw $s2, 0x0020($sp)
|
||||
/* 003EC 809B150C 8FB30024 */ lw $s3, 0x0024($sp)
|
||||
/* 003F0 809B1510 8FB40028 */ lw $s4, 0x0028($sp)
|
||||
/* 003F4 809B1514 8FB5002C */ lw $s5, 0x002C($sp)
|
||||
/* 003F8 809B1518 8FB60030 */ lw $s6, 0x0030($sp)
|
||||
/* 003FC 809B151C 03E00008 */ jr $ra
|
||||
/* 00400 809B1520 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
|
@ -1,45 +0,0 @@
|
|||
glabel func_809B1524
|
||||
/* 00404 809B1524 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 00408 809B1528 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 0040C 809B152C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00410 809B1530 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 00414 809B1534 3C040600 */ lui $a0, %hi(D_06000F74) ## $a0 = 06000000
|
||||
/* 00418 809B1538 AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 0041C 809B153C 0C028800 */ jal Animation_GetLastFrame
|
||||
|
||||
/* 00420 809B1540 24840F74 */ addiu $a0, $a0, %lo(D_06000F74) ## $a0 = 06000F74
|
||||
/* 00424 809B1544 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
|
||||
/* 00428 809B1548 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 0042C 809B154C 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
|
||||
/* 00430 809B1550 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 00434 809B1554 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00
|
||||
/* 00438 809B1558 3C050600 */ lui $a1, %hi(D_06000F74) ## $a1 = 06000000
|
||||
/* 0043C 809B155C 44070000 */ mfc1 $a3, $f0
|
||||
/* 00440 809B1560 24A50F74 */ addiu $a1, $a1, %lo(D_06000F74) ## $a1 = 06000F74
|
||||
/* 00444 809B1564 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
/* 00448 809B1568 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 0044C 809B156C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 00450 809B1570 AFA00014 */ sw $zero, 0x0014($sp)
|
||||
/* 00454 809B1574 E7B20018 */ swc1 $f18, 0x0018($sp)
|
||||
/* 00458 809B1578 440F4000 */ mfc1 $t7, $f8
|
||||
/* 0045C 809B157C 00000000 */ nop
|
||||
/* 00460 809B1580 000FC400 */ sll $t8, $t7, 16
|
||||
/* 00464 809B1584 0018CC03 */ sra $t9, $t8, 16
|
||||
/* 00468 809B1588 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
|
||||
/* 0046C 809B158C 00000000 */ nop
|
||||
/* 00470 809B1590 46805420 */ cvt.s.w $f16, $f10
|
||||
/* 00474 809B1594 0C029468 */ jal Animation_Change
|
||||
|
||||
/* 00478 809B1598 E7B00010 */ swc1 $f16, 0x0010($sp)
|
||||
/* 0047C 809B159C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00480 809B15A0 3C08809B */ lui $t0, %hi(func_809B15CC) ## $t0 = 809B0000
|
||||
/* 00484 809B15A4 250815CC */ addiu $t0, $t0, %lo(func_809B15CC) ## $t0 = 809B15CC
|
||||
/* 00488 809B15A8 AE080250 */ sw $t0, 0x0250($s0) ## 00000250
|
||||
/* 0048C 809B15AC E600006C */ swc1 $f0, 0x006C($s0) ## 0000006C
|
||||
/* 00490 809B15B0 E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064
|
||||
/* 00494 809B15B4 E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C
|
||||
/* 00498 809B15B8 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 0049C 809B15BC 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 004A0 809B15C0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 004A4 809B15C4 03E00008 */ jr $ra
|
||||
/* 004A8 809B15C8 00000000 */ nop
|
|
@ -1,65 +0,0 @@
|
|||
glabel func_809B15CC
|
||||
/* 004AC 809B15CC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 004B0 809B15D0 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 004B4 809B15D4 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 004B8 809B15D8 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
|
||||
/* 004BC 809B15DC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 004C0 809B15E0 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
|
||||
/* 004C4 809B15E4 0C02927F */ jal SkelAnime_Update
|
||||
|
||||
/* 004C8 809B15E8 AFAE002C */ sw $t6, 0x002C($sp)
|
||||
/* 004CC 809B15EC 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
|
||||
/* 004D0 809B15F0 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
|
||||
/* 004D4 809B15F4 0C01E123 */ jal Math_ApproachZeroF
|
||||
|
||||
/* 004D8 809B15F8 3C064396 */ lui $a2, 0x4396 ## $a2 = 43960000
|
||||
/* 004DC 809B15FC 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
|
||||
/* 004E0 809B1600 3C05428C */ lui $a1, 0x428C ## $a1 = 428C0000
|
||||
/* 004E4 809B1604 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
|
||||
/* 004E8 809B1608 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 004EC 809B160C 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
|
||||
/* 004F0 809B1610 860F0262 */ lh $t7, 0x0262($s0) ## 00000262
|
||||
/* 004F4 809B1614 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
|
||||
/* 004F8 809B1618 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
|
||||
/* 004FC 809B161C 15E00004 */ bne $t7, $zero, .L809B1630
|
||||
/* 00500 809B1620 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
|
||||
/* 00504 809B1624 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
|
||||
/* 00508 809B1628 0C01E1A7 */ jal Math_SmoothStepToS
|
||||
|
||||
/* 0050C 809B162C AFA00010 */ sw $zero, 0x0010($sp)
|
||||
.L809B1630:
|
||||
/* 00510 809B1630 3C01C000 */ lui $at, 0xC000 ## $at = C0000000
|
||||
/* 00514 809B1634 44812000 */ mtc1 $at, $f4 ## $f4 = -2.00
|
||||
/* 00518 809B1638 C60600BC */ lwc1 $f6, 0x00BC($s0) ## 000000BC
|
||||
/* 0051C 809B163C 4606203C */ c.lt.s $f4, $f6
|
||||
/* 00520 809B1640 00000000 */ nop
|
||||
/* 00524 809B1644 45020015 */ bc1fl .L809B169C
|
||||
/* 00528 809B1648 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0052C 809B164C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00530 809B1650 3C08809B */ lui $t0, %hi(func_809B17FC) ## $t0 = 809B0000
|
||||
/* 00534 809B1654 250817FC */ addiu $t0, $t0, %lo(func_809B17FC) ## $t0 = 809B17FC
|
||||
/* 00538 809B1658 E60000BC */ swc1 $f0, 0x00BC($s0) ## 000000BC
|
||||
/* 0053C 809B165C 8FB8002C */ lw $t8, 0x002C($sp)
|
||||
/* 00540 809B1660 83190843 */ lb $t9, 0x0843($t8) ## 00000843
|
||||
/* 00544 809B1664 53200004 */ beql $t9, $zero, .L809B1678
|
||||
/* 00548 809B1668 86090260 */ lh $t1, 0x0260($s0) ## 00000260
|
||||
/* 0054C 809B166C 1000000A */ beq $zero, $zero, .L809B1698
|
||||
/* 00550 809B1670 AE080250 */ sw $t0, 0x0250($s0) ## 00000250
|
||||
/* 00554 809B1674 86090260 */ lh $t1, 0x0260($s0) ## 00000260
|
||||
.L809B1678:
|
||||
/* 00558 809B1678 3C0A809B */ lui $t2, %hi(func_809B16AC) ## $t2 = 809B0000
|
||||
/* 0055C 809B167C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
|
||||
/* 00560 809B1680 11200005 */ beq $t1, $zero, .L809B1698
|
||||
/* 00564 809B1684 254A16AC */ addiu $t2, $t2, %lo(func_809B16AC) ## $t2 = 809B16AC
|
||||
/* 00568 809B1688 44814000 */ mtc1 $at, $f8 ## $f8 = -1.00
|
||||
/* 0056C 809B168C E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
|
||||
/* 00570 809B1690 AE0A0250 */ sw $t2, 0x0250($s0) ## 00000250
|
||||
/* 00574 809B1694 E608006C */ swc1 $f8, 0x006C($s0) ## 0000006C
|
||||
.L809B1698:
|
||||
/* 00578 809B1698 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809B169C:
|
||||
/* 0057C 809B169C 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00580 809B16A0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 00584 809B16A4 03E00008 */ jr $ra
|
||||
/* 00588 809B16A8 00000000 */ nop
|
|
@ -1,100 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809B2420
|
||||
.float -4220.0
|
||||
glabel D_809B2424
|
||||
.float -4230.0
|
||||
|
||||
.text
|
||||
glabel func_809B16AC
|
||||
/* 0058C 809B16AC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
||||
/* 00590 809B16B0 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00594 809B16B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00598 809B16B8 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 0059C 809B16BC AFA50054 */ sw $a1, 0x0054($sp)
|
||||
/* 005A0 809B16C0 0C02927F */ jal SkelAnime_Update
|
||||
|
||||
/* 005A4 809B16C4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
|
||||
/* 005A8 809B16C8 3C05C584 */ lui $a1, 0xC584 ## $a1 = C5840000
|
||||
/* 005AC 809B16CC 34A53000 */ ori $a1, $a1, 0x3000 ## $a1 = C5843000
|
||||
/* 005B0 809B16D0 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
|
||||
/* 005B4 809B16D4 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
|
||||
/* 005B8 809B16D8 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 005BC 809B16DC 3C074396 */ lui $a3, 0x4396 ## $a3 = 43960000
|
||||
/* 005C0 809B16E0 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
|
||||
/* 005C4 809B16E4 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
|
||||
/* 005C8 809B16E8 0C01E123 */ jal Math_ApproachZeroF
|
||||
|
||||
/* 005CC 809B16EC 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
|
||||
/* 005D0 809B16F0 860E0262 */ lh $t6, 0x0262($s0) ## 00000262
|
||||
/* 005D4 809B16F4 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
|
||||
/* 005D8 809B16F8 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
|
||||
/* 005DC 809B16FC 15C00004 */ bne $t6, $zero, .L809B1710
|
||||
/* 005E0 809B1700 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
|
||||
/* 005E4 809B1704 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
|
||||
/* 005E8 809B1708 0C01E1A7 */ jal Math_SmoothStepToS
|
||||
|
||||
/* 005EC 809B170C AFA00010 */ sw $zero, 0x0010($sp)
|
||||
.L809B1710:
|
||||
/* 005F0 809B1710 C60E0024 */ lwc1 $f14, 0x0024($s0) ## 00000024
|
||||
/* 005F4 809B1714 C6040298 */ lwc1 $f4, 0x0298($s0) ## 00000298
|
||||
/* 005F8 809B1718 3C014040 */ lui $at, 0x4040 ## $at = 40400000
|
||||
/* 005FC 809B171C 44811000 */ mtc1 $at, $f2 ## $f2 = 3.00
|
||||
/* 00600 809B1720 460E2401 */ sub.s $f16, $f4, $f14
|
||||
/* 00604 809B1724 3C01809B */ lui $at, %hi(D_809B2420) ## $at = 809B0000
|
||||
/* 00608 809B1728 46008005 */ abs.s $f0, $f16
|
||||
/* 0060C 809B172C 4600103C */ c.lt.s $f2, $f0
|
||||
/* 00610 809B1730 00000000 */ nop
|
||||
/* 00614 809B1734 4502001D */ bc1fl .L809B17AC
|
||||
/* 00618 809B1738 C60800BC */ lwc1 $f8, 0x00BC($s0) ## 000000BC
|
||||
/* 0061C 809B173C C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
|
||||
/* 00620 809B1740 C60602A0 */ lwc1 $f6, 0x02A0($s0) ## 000002A0
|
||||
/* 00624 809B1744 46123201 */ sub.s $f8, $f6, $f18
|
||||
/* 00628 809B1748 E7A8002C */ swc1 $f8, 0x002C($sp)
|
||||
/* 0062C 809B174C C7AA002C */ lwc1 $f10, 0x002C($sp)
|
||||
/* 00630 809B1750 46005005 */ abs.s $f0, $f10
|
||||
/* 00634 809B1754 4600103C */ c.lt.s $f2, $f0
|
||||
/* 00638 809B1758 00000000 */ nop
|
||||
/* 0063C 809B175C 45020013 */ bc1fl .L809B17AC
|
||||
/* 00640 809B1760 C60800BC */ lwc1 $f8, 0x00BC($s0) ## 000000BC
|
||||
/* 00644 809B1764 46108102 */ mul.s $f4, $f16, $f16
|
||||
/* 00648 809B1768 46005306 */ mov.s $f12, $f10
|
||||
/* 0064C 809B176C 3C014100 */ lui $at, 0x4100 ## $at = 41000000
|
||||
/* 00650 809B1770 460A5182 */ mul.s $f6, $f10, $f10
|
||||
/* 00654 809B1774 44815000 */ mtc1 $at, $f10 ## $f10 = 8.00
|
||||
/* 00658 809B1778 46062000 */ add.s $f0, $f4, $f6
|
||||
/* 0065C 809B177C 46000004 */ sqrt.s $f0, $f0
|
||||
/* 00660 809B1780 46008203 */ div.s $f8, $f16, $f0
|
||||
/* 00664 809B1784 460A4102 */ mul.s $f4, $f8, $f10
|
||||
/* 00668 809B1788 46006203 */ div.s $f8, $f12, $f0
|
||||
/* 0066C 809B178C 44815000 */ mtc1 $at, $f10 ## $f10 = 8.00
|
||||
/* 00670 809B1790 46047180 */ add.s $f6, $f14, $f4
|
||||
/* 00674 809B1794 E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024
|
||||
/* 00678 809B1798 460A4102 */ mul.s $f4, $f8, $f10
|
||||
/* 0067C 809B179C 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 00680 809B17A0 10000011 */ beq $zero, $zero, .L809B17E8
|
||||
/* 00684 809B17A4 E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C
|
||||
/* 00688 809B17A8 C60800BC */ lwc1 $f8, 0x00BC($s0) ## 000000BC
|
||||
.L809B17AC:
|
||||
/* 0068C 809B17AC C42A2420 */ lwc1 $f10, %lo(D_809B2420)($at)
|
||||
/* 00690 809B17B0 3C18809B */ lui $t8, %hi(func_809B142C) ## $t8 = 809B0000
|
||||
/* 00694 809B17B4 3C01809B */ lui $at, %hi(D_809B2424) ## $at = 809B0000
|
||||
/* 00698 809B17B8 460A403C */ c.lt.s $f8, $f10
|
||||
/* 0069C 809B17BC 2718142C */ addiu $t8, $t8, %lo(func_809B142C) ## $t8 = 809B142C
|
||||
/* 006A0 809B17C0 4502000A */ bc1fl .L809B17EC
|
||||
/* 006A4 809B17C4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 006A8 809B17C8 C4242424 */ lwc1 $f4, %lo(D_809B2424)($at)
|
||||
/* 006AC 809B17CC A6000260 */ sh $zero, 0x0260($s0) ## 00000260
|
||||
/* 006B0 809B17D0 860F0260 */ lh $t7, 0x0260($s0) ## 00000260
|
||||
/* 006B4 809B17D4 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 006B8 809B17D8 AE180250 */ sw $t8, 0x0250($s0) ## 00000250
|
||||
/* 006BC 809B17DC E60400BC */ swc1 $f4, 0x00BC($s0) ## 000000BC
|
||||
/* 006C0 809B17E0 A60F025E */ sh $t7, 0x025E($s0) ## 0000025E
|
||||
/* 006C4 809B17E4 E606006C */ swc1 $f6, 0x006C($s0) ## 0000006C
|
||||
.L809B17E8:
|
||||
/* 006C8 809B17E8 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809B17EC:
|
||||
/* 006CC 809B17EC 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 006D0 809B17F0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
||||
/* 006D4 809B17F4 03E00008 */ jr $ra
|
||||
/* 006D8 809B17F8 00000000 */ nop
|
|
@ -1,37 +0,0 @@
|
|||
glabel func_809B17FC
|
||||
/* 006DC 809B17FC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 006E0 809B1800 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 006E4 809B1804 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 006E8 809B1808 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 006EC 809B180C 3C040600 */ lui $a0, %hi(D_0600078C) ## $a0 = 06000000
|
||||
/* 006F0 809B1810 AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 006F4 809B1814 0C028800 */ jal Animation_GetLastFrame
|
||||
|
||||
/* 006F8 809B1818 2484078C */ addiu $a0, $a0, %lo(D_0600078C) ## $a0 = 0600078C
|
||||
/* 006FC 809B181C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
|
||||
/* 00700 809B1820 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
|
||||
/* 00704 809B1824 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00
|
||||
/* 00708 809B1828 46802020 */ cvt.s.w $f0, $f4
|
||||
/* 0070C 809B182C 3C050600 */ lui $a1, %hi(D_0600078C) ## $a1 = 06000000
|
||||
/* 00710 809B1830 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
|
||||
/* 00714 809B1834 24A5078C */ addiu $a1, $a1, %lo(D_0600078C) ## $a1 = 0600078C
|
||||
/* 00718 809B1838 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
/* 0071C 809B183C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 00720 809B1840 E600026C */ swc1 $f0, 0x026C($s0) ## 0000026C
|
||||
/* 00724 809B1844 AFAE0014 */ sw $t6, 0x0014($sp)
|
||||
/* 00728 809B1848 E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
/* 0072C 809B184C 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
|
||||
/* 00730 809B1850 0C029468 */ jal Animation_Change
|
||||
|
||||
/* 00734 809B1854 E7A60018 */ swc1 $f6, 0x0018($sp)
|
||||
/* 00738 809B1858 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 0073C 809B185C 3C0F809B */ lui $t7, %hi(func_809B1884) ## $t7 = 809B0000
|
||||
/* 00740 809B1860 25EF1884 */ addiu $t7, $t7, %lo(func_809B1884) ## $t7 = 809B1884
|
||||
/* 00744 809B1864 AE0F0250 */ sw $t7, 0x0250($s0) ## 00000250
|
||||
/* 00748 809B1868 E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064
|
||||
/* 0074C 809B186C E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C
|
||||
/* 00750 809B1870 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00754 809B1874 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 00758 809B1878 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 0075C 809B187C 03E00008 */ jr $ra
|
||||
/* 00760 809B1880 00000000 */ nop
|
|
@ -1,71 +0,0 @@
|
|||
glabel func_809B1884
|
||||
/* 00764 809B1884 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
|
||||
/* 00768 809B1888 AFBF0034 */ sw $ra, 0x0034($sp)
|
||||
/* 0076C 809B188C AFB00030 */ sw $s0, 0x0030($sp)
|
||||
/* 00770 809B1890 AFA50044 */ sw $a1, 0x0044($sp)
|
||||
/* 00774 809B1894 C4840164 */ lwc1 $f4, 0x0164($a0) ## 00000164
|
||||
/* 00778 809B1898 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0077C 809B189C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
|
||||
/* 00780 809B18A0 0C02927F */ jal SkelAnime_Update
|
||||
|
||||
/* 00784 809B18A4 E7A4003C */ swc1 $f4, 0x003C($sp)
|
||||
/* 00788 809B18A8 860E0262 */ lh $t6, 0x0262($s0) ## 00000262
|
||||
/* 0078C 809B18AC 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
|
||||
/* 00790 809B18B0 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
|
||||
/* 00794 809B18B4 15C00004 */ bne $t6, $zero, .L809B18C8
|
||||
/* 00798 809B18B8 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
|
||||
/* 0079C 809B18BC 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
|
||||
/* 007A0 809B18C0 0C01E1A7 */ jal Math_SmoothStepToS
|
||||
|
||||
/* 007A4 809B18C4 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
.L809B18C8:
|
||||
/* 007A8 809B18C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 007AC 809B18CC 0C26C470 */ jal func_809B11C0
|
||||
/* 007B0 809B18D0 8FA50044 */ lw $a1, 0x0044($sp)
|
||||
/* 007B4 809B18D4 3C014140 */ lui $at, 0x4140 ## $at = 41400000
|
||||
/* 007B8 809B18D8 44814000 */ mtc1 $at, $f8 ## $f8 = 12.00
|
||||
/* 007BC 809B18DC C7A6003C */ lwc1 $f6, 0x003C($sp)
|
||||
/* 007C0 809B18E0 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
||||
/* 007C4 809B18E4 46083032 */ c.eq.s $f6, $f8
|
||||
/* 007C8 809B18E8 00000000 */ nop
|
||||
/* 007CC 809B18EC 45020018 */ bc1fl .L809B1950
|
||||
/* 007D0 809B18F0 C7B2003C */ lwc1 $f18, 0x003C($sp)
|
||||
/* 007D4 809B18F4 C60A0284 */ lwc1 $f10, 0x0284($s0) ## 00000284
|
||||
/* 007D8 809B18F8 44818000 */ mtc1 $at, $f16 ## $f16 = 15.00
|
||||
/* 007DC 809B18FC 8E070280 */ lw $a3, 0x0280($s0) ## 00000280
|
||||
/* 007E0 809B1900 8FA50044 */ lw $a1, 0x0044($sp)
|
||||
/* 007E4 809B1904 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 007E8 809B1908 240600E1 */ addiu $a2, $zero, 0x00E1 ## $a2 = 000000E1
|
||||
/* 007EC 809B190C 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 007F0 809B1910 E7B20010 */ swc1 $f18, 0x0010($sp)
|
||||
/* 007F4 809B1914 C6040288 */ lwc1 $f4, 0x0288($s0) ## 00000288
|
||||
/* 007F8 809B1918 E7A40014 */ swc1 $f4, 0x0014($sp)
|
||||
/* 007FC 809B191C C606028C */ lwc1 $f6, 0x028C($s0) ## 0000028C
|
||||
/* 00800 809B1920 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 00804 809B1924 44194000 */ mfc1 $t9, $f8
|
||||
/* 00808 809B1928 00000000 */ nop
|
||||
/* 0080C 809B192C AFB90018 */ sw $t9, 0x0018($sp)
|
||||
/* 00810 809B1930 C60A0290 */ lwc1 $f10, 0x0290($s0) ## 00000290
|
||||
/* 00814 809B1934 AFA00024 */ sw $zero, 0x0024($sp)
|
||||
/* 00818 809B1938 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 0081C 809B193C 4600540D */ trunc.w.s $f16, $f10
|
||||
/* 00820 809B1940 44098000 */ mfc1 $t1, $f16
|
||||
/* 00824 809B1944 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00828 809B1948 AFA9001C */ sw $t1, 0x001C($sp)
|
||||
/* 0082C 809B194C C7B2003C */ lwc1 $f18, 0x003C($sp)
|
||||
.L809B1950:
|
||||
/* 00830 809B1950 C604026C */ lwc1 $f4, 0x026C($s0) ## 0000026C
|
||||
/* 00834 809B1954 3C0A809B */ lui $t2, %hi(func_809B1524) ## $t2 = 809B0000
|
||||
/* 00838 809B1958 254A1524 */ addiu $t2, $t2, %lo(func_809B1524) ## $t2 = 809B1524
|
||||
/* 0083C 809B195C 4612203E */ c.le.s $f4, $f18
|
||||
/* 00840 809B1960 00000000 */ nop
|
||||
/* 00844 809B1964 45020003 */ bc1fl .L809B1974
|
||||
/* 00848 809B1968 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
/* 0084C 809B196C AE0A0250 */ sw $t2, 0x0250($s0) ## 00000250
|
||||
/* 00850 809B1970 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
.L809B1974:
|
||||
/* 00854 809B1974 8FB00030 */ lw $s0, 0x0030($sp)
|
||||
/* 00858 809B1978 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
|
||||
/* 0085C 809B197C 03E00008 */ jr $ra
|
||||
/* 00860 809B1980 00000000 */ nop
|
|
@ -1,56 +0,0 @@
|
|||
glabel func_809B1984
|
||||
/* 00864 809B1984 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 00868 809B1988 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 0086C 809B198C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00870 809B1990 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 00874 809B1994 3C040600 */ lui $a0, %hi(D_06000348) ## $a0 = 06000000
|
||||
/* 00878 809B1998 AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 0087C 809B199C 0C028800 */ jal Animation_GetLastFrame
|
||||
|
||||
/* 00880 809B19A0 24840348 */ addiu $a0, $a0, %lo(D_06000348) ## $a0 = 06000348
|
||||
/* 00884 809B19A4 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
|
||||
/* 00888 809B19A8 3C01C1A0 */ lui $at, 0xC1A0 ## $at = C1A00000
|
||||
/* 0088C 809B19AC 44813000 */ mtc1 $at, $f6 ## $f6 = -20.00
|
||||
/* 00890 809B19B0 46802020 */ cvt.s.w $f0, $f4
|
||||
/* 00894 809B19B4 3C050600 */ lui $a1, %hi(D_06000348) ## $a1 = 06000000
|
||||
/* 00898 809B19B8 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
|
||||
/* 0089C 809B19BC 24A50348 */ addiu $a1, $a1, %lo(D_06000348) ## $a1 = 06000348
|
||||
/* 008A0 809B19C0 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
/* 008A4 809B19C4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 008A8 809B19C8 E600026C */ swc1 $f0, 0x026C($s0) ## 0000026C
|
||||
/* 008AC 809B19CC AFAE0014 */ sw $t6, 0x0014($sp)
|
||||
/* 008B0 809B19D0 E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
/* 008B4 809B19D4 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
|
||||
/* 008B8 809B19D8 0C029468 */ jal Animation_Change
|
||||
|
||||
/* 008BC 809B19DC E7A60018 */ swc1 $f6, 0x0018($sp)
|
||||
/* 008C0 809B19E0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 008C4 809B19E4 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
|
||||
/* 008C8 809B19E8 44814000 */ mtc1 $at, $f8 ## $f8 = -1.00
|
||||
/* 008CC 809B19EC 240F0014 */ addiu $t7, $zero, 0x0014 ## $t7 = 00000014
|
||||
/* 008D0 809B19F0 A6000256 */ sh $zero, 0x0256($s0) ## 00000256
|
||||
/* 008D4 809B19F4 A6000258 */ sh $zero, 0x0258($s0) ## 00000258
|
||||
/* 008D8 809B19F8 A60F025A */ sh $t7, 0x025A($s0) ## 0000025A
|
||||
/* 008DC 809B19FC E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064
|
||||
/* 008E0 809B1A00 E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C
|
||||
/* 008E4 809B1A04 E608006C */ swc1 $f8, 0x006C($s0) ## 0000006C
|
||||
/* 008E8 809B1A08 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 008EC 809B1A0C 26050280 */ addiu $a1, $s0, 0x0280 ## $a1 = 00000280
|
||||
/* 008F0 809B1A10 3C06428C */ lui $a2, 0x428C ## $a2 = 428C0000
|
||||
/* 008F4 809B1A14 0C00F8C3 */ jal BgCheck_SphVsFirstPoly
|
||||
/* 008F8 809B1A18 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
|
||||
/* 008FC 809B1A1C 10400006 */ beq $v0, $zero, .L809B1A38
|
||||
/* 00900 809B1A20 3C09809B */ lui $t1, %hi(func_809B1A54) ## $t1 = 809B0000
|
||||
/* 00904 809B1A24 861900B4 */ lh $t9, 0x00B4($s0) ## 000000B4
|
||||
/* 00908 809B1A28 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
|
||||
/* 0090C 809B1A2C A6180256 */ sh $t8, 0x0256($s0) ## 00000256
|
||||
/* 00910 809B1A30 27288100 */ addiu $t0, $t9, 0x8100 ## $t0 = FFFF8100
|
||||
/* 00914 809B1A34 A6080258 */ sh $t0, 0x0258($s0) ## 00000258
|
||||
.L809B1A38:
|
||||
/* 00918 809B1A38 25291A54 */ addiu $t1, $t1, %lo(func_809B1A54) ## $t1 = 809B1A54
|
||||
/* 0091C 809B1A3C AE090250 */ sw $t1, 0x0250($s0) ## 00000250
|
||||
/* 00920 809B1A40 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00924 809B1A44 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 00928 809B1A48 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 0092C 809B1A4C 03E00008 */ jr $ra
|
||||
/* 00930 809B1A50 00000000 */ nop
|
|
@ -1,199 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809B2428
|
||||
.float -11000.0
|
||||
glabel D_809B242C
|
||||
.float -3000.0
|
||||
glabel D_809B2430
|
||||
.float 3.1415927 # pi
|
||||
glabel D_809B2434
|
||||
.float 3.1415927 # pi
|
||||
|
||||
.text
|
||||
glabel func_809B1A54
|
||||
/* 00934 809B1A54 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
|
||||
/* 00938 809B1A58 3C0F809B */ lui $t7, %hi(D_809B231C) ## $t7 = 809B0000
|
||||
/* 0093C 809B1A5C AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 00940 809B1A60 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 00944 809B1A64 AFA50064 */ sw $a1, 0x0064($sp)
|
||||
/* 00948 809B1A68 25EF231C */ addiu $t7, $t7, %lo(D_809B231C) ## $t7 = 809B231C
|
||||
/* 0094C 809B1A6C 8DF90000 */ lw $t9, 0x0000($t7) ## 809B231C
|
||||
/* 00950 809B1A70 27AE004C */ addiu $t6, $sp, 0x004C ## $t6 = FFFFFFEC
|
||||
/* 00954 809B1A74 8DF80004 */ lw $t8, 0x0004($t7) ## 809B2320
|
||||
/* 00958 809B1A78 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFEC
|
||||
/* 0095C 809B1A7C 8DF90008 */ lw $t9, 0x0008($t7) ## 809B2324
|
||||
/* 00960 809B1A80 3C09809B */ lui $t1, %hi(D_809B2328) ## $t1 = 809B0000
|
||||
/* 00964 809B1A84 25292328 */ addiu $t1, $t1, %lo(D_809B2328) ## $t1 = 809B2328
|
||||
/* 00968 809B1A88 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF0
|
||||
/* 0096C 809B1A8C ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF4
|
||||
/* 00970 809B1A90 8D2B0000 */ lw $t3, 0x0000($t1) ## 809B2328
|
||||
/* 00974 809B1A94 27A80040 */ addiu $t0, $sp, 0x0040 ## $t0 = FFFFFFE0
|
||||
/* 00978 809B1A98 8D2A0004 */ lw $t2, 0x0004($t1) ## 809B232C
|
||||
/* 0097C 809B1A9C AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFE0
|
||||
/* 00980 809B1AA0 8D2B0008 */ lw $t3, 0x0008($t1) ## 809B2330
|
||||
/* 00984 809B1AA4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00988 809B1AA8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
|
||||
/* 0098C 809B1AAC AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFE4
|
||||
/* 00990 809B1AB0 0C02927F */ jal SkelAnime_Update
|
||||
|
||||
/* 00994 809B1AB4 AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFE8
|
||||
/* 00998 809B1AB8 3C053ECC */ lui $a1, 0x3ECC ## $a1 = 3ECC0000
|
||||
/* 0099C 809B1ABC 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3ECCCCCD
|
||||
/* 009A0 809B1AC0 260400C4 */ addiu $a0, $s0, 0x00C4 ## $a0 = 000000C4
|
||||
/* 009A4 809B1AC4 0C01E123 */ jal Math_ApproachZeroF
|
||||
|
||||
/* 009A8 809B1AC8 3C063E80 */ lui $a2, 0x3E80 ## $a2 = 3E800000
|
||||
/* 009AC 809B1ACC 860C0256 */ lh $t4, 0x0256($s0) ## 00000256
|
||||
/* 009B0 809B1AD0 11800015 */ beq $t4, $zero, .L809B1B28
|
||||
/* 009B4 809B1AD4 00000000 */ nop
|
||||
/* 009B8 809B1AD8 86050258 */ lh $a1, 0x0258($s0) ## 00000258
|
||||
/* 009BC 809B1ADC AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 009C0 809B1AE0 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
|
||||
/* 009C4 809B1AE4 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 009C8 809B1AE8 0C01E1A7 */ jal Math_SmoothStepToS
|
||||
|
||||
/* 009CC 809B1AEC 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710
|
||||
/* 009D0 809B1AF0 860D00B6 */ lh $t5, 0x00B6($s0) ## 000000B6
|
||||
/* 009D4 809B1AF4 860E0258 */ lh $t6, 0x0258($s0) ## 00000258
|
||||
/* 009D8 809B1AF8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 009DC 809B1AFC 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
|
||||
/* 009E0 809B1B00 01AE7823 */ subu $t7, $t5, $t6
|
||||
/* 009E4 809B1B04 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
|
||||
/* 009E8 809B1B08 00000000 */ nop
|
||||
/* 009EC 809B1B0C 46802020 */ cvt.s.w $f0, $f4
|
||||
/* 009F0 809B1B10 46000005 */ abs.s $f0, $f0
|
||||
/* 009F4 809B1B14 4606003C */ c.lt.s $f0, $f6
|
||||
/* 009F8 809B1B18 00000000 */ nop
|
||||
/* 009FC 809B1B1C 45000002 */ bc1f .L809B1B28
|
||||
/* 00A00 809B1B20 00000000 */ nop
|
||||
/* 00A04 809B1B24 A6000256 */ sh $zero, 0x0256($s0) ## 00000256
|
||||
.L809B1B28:
|
||||
/* 00A08 809B1B28 3C01809B */ lui $at, %hi(D_809B2428) ## $at = 809B0000
|
||||
/* 00A0C 809B1B2C C42C2428 */ lwc1 $f12, %lo(D_809B2428)($at)
|
||||
/* 00A10 809B1B30 3C01809B */ lui $at, %hi(D_809B242C) ## $at = 809B0000
|
||||
/* 00A14 809B1B34 C60E0164 */ lwc1 $f14, 0x0164($s0) ## 00000164
|
||||
/* 00A18 809B1B38 C428242C */ lwc1 $f8, %lo(D_809B242C)($at)
|
||||
/* 00A1C 809B1B3C 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
|
||||
/* 00A20 809B1B40 46087082 */ mul.s $f2, $f14, $f8
|
||||
/* 00A24 809B1B44 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00
|
||||
/* 00A28 809B1B48 460C103C */ c.lt.s $f2, $f12
|
||||
/* 00A2C 809B1B4C 00000000 */ nop
|
||||
/* 00A30 809B1B50 45020003 */ bc1fl .L809B1B60
|
||||
/* 00A34 809B1B54 46805420 */ cvt.s.w $f16, $f10
|
||||
/* 00A38 809B1B58 46006086 */ mov.s $f2, $f12
|
||||
/* 00A3C 809B1B5C 46805420 */ cvt.s.w $f16, $f10
|
||||
.L809B1B60:
|
||||
/* 00A40 809B1B60 3C014700 */ lui $at, 0x4700 ## $at = 47000000
|
||||
/* 00A44 809B1B64 44819000 */ mtc1 $at, $f18 ## $f18 = 32768.00
|
||||
/* 00A48 809B1B68 3C01809B */ lui $at, %hi(D_809B2430) ## $at = 809B0000
|
||||
/* 00A4C 809B1B6C C4262430 */ lwc1 $f6, %lo(D_809B2430)($at)
|
||||
/* 00A50 809B1B70 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00A54 809B1B74 46128103 */ div.s $f4, $f16, $f18
|
||||
/* 00A58 809B1B78 E7A20058 */ swc1 $f2, 0x0058($sp)
|
||||
/* 00A5C 809B1B7C E7AE005C */ swc1 $f14, 0x005C($sp)
|
||||
/* 00A60 809B1B80 46062302 */ mul.s $f12, $f4, $f6
|
||||
/* 00A64 809B1B84 0C034348 */ jal Matrix_RotateY
|
||||
/* 00A68 809B1B88 00000000 */ nop
|
||||
/* 00A6C 809B1B8C 3C014700 */ lui $at, 0x4700 ## $at = 47000000
|
||||
/* 00A70 809B1B90 C7A20058 */ lwc1 $f2, 0x0058($sp)
|
||||
/* 00A74 809B1B94 44814000 */ mtc1 $at, $f8 ## $f8 = 32768.00
|
||||
/* 00A78 809B1B98 3C01809B */ lui $at, %hi(D_809B2434) ## $at = 809B0000
|
||||
/* 00A7C 809B1B9C C4302434 */ lwc1 $f16, %lo(D_809B2434)($at)
|
||||
/* 00A80 809B1BA0 46081283 */ div.s $f10, $f2, $f8
|
||||
/* 00A84 809B1BA4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
||||
/* 00A88 809B1BA8 46105302 */ mul.s $f12, $f10, $f16
|
||||
/* 00A8C 809B1BAC 0C0342DC */ jal Matrix_RotateX
|
||||
/* 00A90 809B1BB0 00000000 */ nop
|
||||
/* 00A94 809B1BB4 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 00A98 809B1BB8 44816000 */ mtc1 $at, $f12 ## $f12 = 10.00
|
||||
/* 00A9C 809B1BBC 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00AA0 809B1BC0 00000000 */ nop
|
||||
/* 00AA4 809B1BC4 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||
/* 00AA8 809B1BC8 44819000 */ mtc1 $at, $f18 ## $f18 = 30.00
|
||||
/* 00AAC 809B1BCC 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFEC
|
||||
/* 00AB0 809B1BD0 27A50040 */ addiu $a1, $sp, 0x0040 ## $a1 = FFFFFFE0
|
||||
/* 00AB4 809B1BD4 46120100 */ add.s $f4, $f0, $f18
|
||||
/* 00AB8 809B1BD8 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 00ABC 809B1BDC E7A40050 */ swc1 $f4, 0x0050($sp)
|
||||
/* 00AC0 809B1BE0 3C014220 */ lui $at, 0x4220 ## $at = 42200000
|
||||
/* 00AC4 809B1BE4 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
|
||||
/* 00AC8 809B1BE8 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00ACC 809B1BEC 00000000 */ nop
|
||||
/* 00AD0 809B1BF0 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
|
||||
/* 00AD4 809B1BF4 C7A60040 */ lwc1 $f6, 0x0040($sp)
|
||||
/* 00AD8 809B1BF8 3C014220 */ lui $at, 0x4220 ## $at = 42200000
|
||||
/* 00ADC 809B1BFC 46004280 */ add.s $f10, $f8, $f0
|
||||
/* 00AE0 809B1C00 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
|
||||
/* 00AE4 809B1C04 460A3400 */ add.s $f16, $f6, $f10
|
||||
/* 00AE8 809B1C08 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00AEC 809B1C0C E7B00040 */ swc1 $f16, 0x0040($sp)
|
||||
/* 00AF0 809B1C10 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
|
||||
/* 00AF4 809B1C14 C7B20044 */ lwc1 $f18, 0x0044($sp)
|
||||
/* 00AF8 809B1C18 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||
/* 00AFC 809B1C1C 46002200 */ add.s $f8, $f4, $f0
|
||||
/* 00B00 809B1C20 44816000 */ mtc1 $at, $f12 ## $f12 = 30.00
|
||||
/* 00B04 809B1C24 46089180 */ add.s $f6, $f18, $f8
|
||||
/* 00B08 809B1C28 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00B0C 809B1C2C E7A60044 */ swc1 $f6, 0x0044($sp)
|
||||
/* 00B10 809B1C30 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 00B14 809B1C34 C7AA0048 */ lwc1 $f10, 0x0048($sp)
|
||||
/* 00B18 809B1C38 24180008 */ addiu $t8, $zero, 0x0008 ## $t8 = 00000008
|
||||
/* 00B1C 809B1C3C 46008100 */ add.s $f4, $f16, $f0
|
||||
/* 00B20 809B1C40 AFB80010 */ sw $t8, 0x0010($sp)
|
||||
/* 00B24 809B1C44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B28 809B1C48 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
|
||||
/* 00B2C 809B1C4C 46045480 */ add.s $f18, $f10, $f4
|
||||
/* 00B30 809B1C50 24060080 */ addiu $a2, $zero, 0x0080 ## $a2 = 00000080
|
||||
/* 00B34 809B1C54 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00B38 809B1C58 0C00D09B */ jal Actor_SetColorFilter
|
||||
/* 00B3C 809B1C5C E7B20048 */ swc1 $f18, 0x0048($sp)
|
||||
/* 00B40 809B1C60 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF
|
||||
/* 00B44 809B1C64 AFB90018 */ sw $t9, 0x0018($sp)
|
||||
/* 00B48 809B1C68 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00B4C 809B1C6C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00B50 809B1C70 27A60040 */ addiu $a2, $sp, 0x0040 ## $a2 = FFFFFFE0
|
||||
/* 00B54 809B1C74 24070064 */ addiu $a3, $zero, 0x0064 ## $a3 = 00000064
|
||||
/* 00B58 809B1C78 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 00B5C 809B1C7C 0C00A935 */ jal EffectSsEnFire_SpawnVec3f
|
||||
/* 00B60 809B1C80 AFA00014 */ sw $zero, 0x0014($sp)
|
||||
/* 00B64 809B1C84 C7A8005C */ lwc1 $f8, 0x005C($sp)
|
||||
/* 00B68 809B1C88 C606026C */ lwc1 $f6, 0x026C($s0) ## 0000026C
|
||||
/* 00B6C 809B1C8C 4608303E */ c.le.s $f6, $f8
|
||||
/* 00B70 809B1C90 00000000 */ nop
|
||||
/* 00B74 809B1C94 45020018 */ bc1fl .L809B1CF8
|
||||
/* 00B78 809B1C98 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00B7C 809B1C9C 96080088 */ lhu $t0, 0x0088($s0) ## 00000088
|
||||
/* 00B80 809B1CA0 3C05C584 */ lui $a1, 0xC584 ## $a1 = C5840000
|
||||
/* 00B84 809B1CA4 34A53000 */ ori $a1, $a1, 0x3000 ## $a1 = C5843000
|
||||
/* 00B88 809B1CA8 31090001 */ andi $t1, $t0, 0x0001 ## $t1 = 00000000
|
||||
/* 00B8C 809B1CAC 11200011 */ beq $t1, $zero, .L809B1CF4
|
||||
/* 00B90 809B1CB0 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
|
||||
/* 00B94 809B1CB4 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
|
||||
/* 00B98 809B1CB8 0C01E107 */ jal Math_ApproachF
|
||||
|
||||
/* 00B9C 809B1CBC 3C074396 */ lui $a3, 0x4396 ## $a3 = 43960000
|
||||
/* 00BA0 809B1CC0 3C01C4FA */ lui $at, 0xC4FA ## $at = C4FA0000
|
||||
/* 00BA4 809B1CC4 44815000 */ mtc1 $at, $f10 ## $f10 = -2000.00
|
||||
/* 00BA8 809B1CC8 C61000BC */ lwc1 $f16, 0x00BC($s0) ## 000000BC
|
||||
/* 00BAC 809B1CCC 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00BB0 809B1CD0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00BB4 809B1CD4 460A803C */ c.lt.s $f16, $f10
|
||||
/* 00BB8 809B1CD8 26060024 */ addiu $a2, $s0, 0x0024 ## $a2 = 00000024
|
||||
/* 00BBC 809B1CDC 45020006 */ bc1fl .L809B1CF8
|
||||
/* 00BC0 809B1CE0 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00BC4 809B1CE4 0C007E50 */ jal Item_DropCollectibleRandom
|
||||
|
||||
/* 00BC8 809B1CE8 240700C0 */ addiu $a3, $zero, 0x00C0 ## $a3 = 000000C0
|
||||
/* 00BCC 809B1CEC 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00BD0 809B1CF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809B1CF4:
|
||||
/* 00BD4 809B1CF4 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
.L809B1CF8:
|
||||
/* 00BD8 809B1CF8 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 00BDC 809B1CFC 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
|
||||
/* 00BE0 809B1D00 03E00008 */ jr $ra
|
||||
/* 00BE4 809B1D04 00000000 */ nop
|
|
@ -1,21 +0,0 @@
|
|||
glabel func_809B2104
|
||||
/* 00FE4 809B2104 2401000D */ addiu $at, $zero, 0x000D ## $at = 0000000D
|
||||
/* 00FE8 809B2108 AFA40000 */ sw $a0, 0x0000($sp)
|
||||
/* 00FEC 809B210C AFA60008 */ sw $a2, 0x0008($sp)
|
||||
/* 00FF0 809B2110 14A1000D */ bne $a1, $at, .L809B2148
|
||||
/* 00FF4 809B2114 AFA7000C */ sw $a3, 0x000C($sp)
|
||||
/* 00FF8 809B2118 8FA20010 */ lw $v0, 0x0010($sp)
|
||||
/* 00FFC 809B211C 8FAF0014 */ lw $t7, 0x0014($sp)
|
||||
/* 01000 809B2120 844E0004 */ lh $t6, 0x0004($v0) ## 00000004
|
||||
/* 01004 809B2124 C5E80278 */ lwc1 $f8, 0x0278($t7) ## 00000278
|
||||
/* 01008 809B2128 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00
|
||||
/* 0100C 809B212C 00000000 */ nop
|
||||
/* 01010 809B2130 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 01014 809B2134 46083280 */ add.s $f10, $f6, $f8
|
||||
/* 01018 809B2138 4600540D */ trunc.w.s $f16, $f10
|
||||
/* 0101C 809B213C 44198000 */ mfc1 $t9, $f16
|
||||
/* 01020 809B2140 00000000 */ nop
|
||||
/* 01024 809B2144 A4590004 */ sh $t9, 0x0004($v0) ## 00000004
|
||||
.L809B2148:
|
||||
/* 01028 809B2148 03E00008 */ jr $ra
|
||||
/* 0102C 809B214C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
|
@ -1,81 +0,0 @@
|
|||
.rdata
|
||||
glabel D_809B23D4
|
||||
.asciz "../z_en_anubice.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809B23E8
|
||||
.asciz "../z_en_anubice.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809B23FC
|
||||
.asciz "../z_en_anubice.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_809B2150
|
||||
/* 01030 809B2150 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
||||
/* 01034 809B2154 3C0F809B */ lui $t7, %hi(D_809B2334) ## $t7 = 809B0000
|
||||
/* 01038 809B2158 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0103C 809B215C AFA40048 */ sw $a0, 0x0048($sp)
|
||||
/* 01040 809B2160 AFA60050 */ sw $a2, 0x0050($sp)
|
||||
/* 01044 809B2164 AFA70054 */ sw $a3, 0x0054($sp)
|
||||
/* 01048 809B2168 25EF2334 */ addiu $t7, $t7, %lo(D_809B2334) ## $t7 = 809B2334
|
||||
/* 0104C 809B216C 8DF90000 */ lw $t9, 0x0000($t7) ## 809B2334
|
||||
/* 01050 809B2170 27AE0038 */ addiu $t6, $sp, 0x0038 ## $t6 = FFFFFFF0
|
||||
/* 01054 809B2174 8DF80004 */ lw $t8, 0x0004($t7) ## 809B2338
|
||||
/* 01058 809B2178 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF0
|
||||
/* 0105C 809B217C 8DF90008 */ lw $t9, 0x0008($t7) ## 809B233C
|
||||
/* 01060 809B2180 2401000D */ addiu $at, $zero, 0x000D ## $at = 0000000D
|
||||
/* 01064 809B2184 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF4
|
||||
/* 01068 809B2188 14A1002E */ bne $a1, $at, .L809B2244
|
||||
/* 0106C 809B218C ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF8
|
||||
/* 01070 809B2190 8FA90048 */ lw $t1, 0x0048($sp)
|
||||
/* 01074 809B2194 3C06809B */ lui $a2, %hi(D_809B23D4) ## $a2 = 809B0000
|
||||
/* 01078 809B2198 24C623D4 */ addiu $a2, $a2, %lo(D_809B23D4) ## $a2 = 809B23D4
|
||||
/* 0107C 809B219C 8D250000 */ lw $a1, 0x0000($t1) ## 00000000
|
||||
/* 01080 809B21A0 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC
|
||||
/* 01084 809B21A4 24070355 */ addiu $a3, $zero, 0x0355 ## $a3 = 00000355
|
||||
/* 01088 809B21A8 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 0108C 809B21AC AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 01090 809B21B0 8FA80034 */ lw $t0, 0x0034($sp)
|
||||
/* 01094 809B21B4 3C0BDA38 */ lui $t3, 0xDA38 ## $t3 = DA380000
|
||||
/* 01098 809B21B8 356B0003 */ ori $t3, $t3, 0x0003 ## $t3 = DA380003
|
||||
/* 0109C 809B21BC 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
|
||||
/* 010A0 809B21C0 3C05809B */ lui $a1, %hi(D_809B23E8) ## $a1 = 809B0000
|
||||
/* 010A4 809B21C4 24A523E8 */ addiu $a1, $a1, %lo(D_809B23E8) ## $a1 = 809B23E8
|
||||
/* 010A8 809B21C8 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
|
||||
/* 010AC 809B21CC AD0A02D0 */ sw $t2, 0x02D0($t0) ## 000002D0
|
||||
/* 010B0 809B21D0 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
|
||||
/* 010B4 809B21D4 8FAC0048 */ lw $t4, 0x0048($sp)
|
||||
/* 010B8 809B21D8 24060358 */ addiu $a2, $zero, 0x0358 ## $a2 = 00000358
|
||||
/* 010BC 809B21DC 8D840000 */ lw $a0, 0x0000($t4) ## 00000000
|
||||
/* 010C0 809B21E0 AFA80034 */ sw $t0, 0x0034($sp)
|
||||
/* 010C4 809B21E4 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 010C8 809B21E8 AFA20020 */ sw $v0, 0x0020($sp)
|
||||
/* 010CC 809B21EC 8FA30020 */ lw $v1, 0x0020($sp)
|
||||
/* 010D0 809B21F0 8FA80034 */ lw $t0, 0x0034($sp)
|
||||
/* 010D4 809B21F4 3C0F0600 */ lui $t7, %hi(D_06003468) ## $t7 = 06000000
|
||||
/* 010D8 809B21F8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 010DC 809B21FC 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
|
||||
/* 010E0 809B2200 25EF3468 */ addiu $t7, $t7, %lo(D_06003468) ## $t7 = 06003468
|
||||
/* 010E4 809B2204 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
|
||||
/* 010E8 809B2208 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
|
||||
/* 010EC 809B220C AD0D02D0 */ sw $t5, 0x02D0($t0) ## 000002D0
|
||||
/* 010F0 809B2210 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
|
||||
/* 010F4 809B2214 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
|
||||
/* 010F8 809B2218 8FA50058 */ lw $a1, 0x0058($sp)
|
||||
/* 010FC 809B221C 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFF0
|
||||
/* 01100 809B2220 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 01104 809B2224 24A50280 */ addiu $a1, $a1, 0x0280 ## $a1 = 00000280
|
||||
/* 01108 809B2228 8FB80048 */ lw $t8, 0x0048($sp)
|
||||
/* 0110C 809B222C 3C06809B */ lui $a2, %hi(D_809B23FC) ## $a2 = 809B0000
|
||||
/* 01110 809B2230 24C623FC */ addiu $a2, $a2, %lo(D_809B23FC) ## $a2 = 809B23FC
|
||||
/* 01114 809B2234 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC
|
||||
/* 01118 809B2238 24070364 */ addiu $a3, $zero, 0x0364 ## $a3 = 00000364
|
||||
/* 0111C 809B223C 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 01120 809B2240 8F050000 */ lw $a1, 0x0000($t8) ## 00000000
|
||||
.L809B2244:
|
||||
/* 01124 809B2244 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 01128 809B2248 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
||||
/* 0112C 809B224C 03E00008 */ jr $ra
|
||||
/* 01130 809B2250 00000000 */ nop
|
|
@ -1,28 +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 En_Anubice_InitVars
|
||||
.word 0x00E00500, 0x00000015, 0x00D60000, 0x00000314
|
||||
.word EnAnubice_Init
|
||||
.word EnAnubice_Destroy
|
||||
.word EnAnubice_Update
|
||||
.word EnAnubice_Draw
|
||||
glabel D_809B22D0
|
||||
.word 0x0A000939, 0x10010000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x001D0067, 0x00000000, 0x00000000
|
||||
glabel D_809B22FC
|
||||
.word 0x00F0F0F0, 0xF0F0F1F2, 0xF0F2F622, 0xF0F0F0F0, 0xF0230000, 0x0000F0F6, 0xF2F0FCF4, 0x00000000
|
||||
glabel D_809B231C
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809B2328
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809B2334
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
|
@ -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_809B2440
|
||||
.incbin "baserom/ovl_En_Anubice", 0x1320, 0x00000160
|
|
@ -92,6 +92,7 @@ typedef struct {
|
|||
|
||||
// Trig macros
|
||||
#define DEGF_TO_BINANG(degreesf) (s16)(degreesf * 182.04167f + .5f)
|
||||
#define RADF_TO_BINANG(radf) (s16)(radf * (32768.0f / M_PI))
|
||||
#define RADF_TO_DEGF(radf) (radf * (180.0f / M_PI))
|
||||
#define DEGF_TO_RADF(degf) (degf * (M_PI / 180.0f))
|
||||
#define BINANG_ROT180(angle) ((s16)(angle - 0x7FFF))
|
||||
|
|
3
spec
3
spec
|
@ -1850,8 +1850,7 @@ endseg
|
|||
beginseg
|
||||
name "ovl_En_Anubice"
|
||||
include "build/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o"
|
||||
include "build/data/overlays/actors/z_en_anubice.data.o"
|
||||
include "build/data/overlays/actors/z_en_anubice.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
*/
|
||||
|
||||
#include "z_en_anubice.h"
|
||||
#include "overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.h"
|
||||
#include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000015
|
||||
|
||||
|
@ -15,13 +18,20 @@ void EnAnubice_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void EnAnubice_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnAnubice_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_06000348;
|
||||
extern UNK_TYPE D_0600078C;
|
||||
extern UNK_TYPE D_06000F74;
|
||||
extern UNK_TYPE D_06003468;
|
||||
extern UNK_TYPE D_06003990;
|
||||
void EnAnubice_FindFlameCircles(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubice_Idle(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubice_GoToHome(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx);
|
||||
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_06000348;
|
||||
extern AnimationHeader D_0600078C;
|
||||
extern AnimationHeader D_06000F74;
|
||||
extern Gfx D_06003468[];
|
||||
extern SkeletonHeader D_06003990;
|
||||
|
||||
/*
|
||||
const ActorInit En_Anubice_InitVars = {
|
||||
ACTOR_EN_ANUBICE,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -34,7 +44,7 @@ const ActorInit En_Anubice_InitVars = {
|
|||
(ActorFunc)EnAnubice_Draw,
|
||||
};
|
||||
|
||||
static ColliderCylinderInit D_809B22D0 = {
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{
|
||||
COLTYPE_NONE,
|
||||
AT_NONE,
|
||||
|
@ -53,35 +63,438 @@ static ColliderCylinderInit D_809B22D0 = {
|
|||
},
|
||||
{ 29, 103, 0, { 0, 0, 0 } },
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B1120.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B11C0.s")
|
||||
static DamageTable sDamageTable[] = {
|
||||
/* Deku nut */ DMG_ENTRY(0, 0x0),
|
||||
/* Deku stick */ DMG_ENTRY(0, 0xF),
|
||||
/* Slingshot */ DMG_ENTRY(0, 0xF),
|
||||
/* Explosive */ DMG_ENTRY(0, 0xF),
|
||||
/* Boomerang */ DMG_ENTRY(0, 0xF),
|
||||
/* Normal arrow */ DMG_ENTRY(0, 0xF),
|
||||
/* Hammer swing */ DMG_ENTRY(1, 0xF),
|
||||
/* Hookshot */ DMG_ENTRY(2, 0xF),
|
||||
/* Kokiri sword */ DMG_ENTRY(0, 0xF),
|
||||
/* Master sword */ DMG_ENTRY(2, 0xF),
|
||||
/* Giant's Knife */ DMG_ENTRY(6, 0xF),
|
||||
/* Fire arrow */ DMG_ENTRY(2, 0x2),
|
||||
/* Ice arrow */ DMG_ENTRY(0, 0xF),
|
||||
/* Light arrow */ DMG_ENTRY(0, 0xF),
|
||||
/* Unk arrow 1 */ DMG_ENTRY(0, 0xF),
|
||||
/* Unk arrow 2 */ DMG_ENTRY(0, 0xF),
|
||||
/* Unk arrow 3 */ DMG_ENTRY(0, 0xF),
|
||||
/* Fire magic */ DMG_ENTRY(3, 0x2),
|
||||
/* Ice magic */ DMG_ENTRY(0, 0x0),
|
||||
/* Light magic */ DMG_ENTRY(0, 0x0),
|
||||
/* Shield */ DMG_ENTRY(0, 0x0),
|
||||
/* Mirror Ray */ DMG_ENTRY(0, 0x0),
|
||||
/* Kokiri spin */ DMG_ENTRY(0, 0xF),
|
||||
/* Giant spin */ DMG_ENTRY(6, 0xF),
|
||||
/* Master spin */ DMG_ENTRY(2, 0xF),
|
||||
/* Kokiri jump */ DMG_ENTRY(0, 0xF),
|
||||
/* Giant jump */ DMG_ENTRY(12, 0xF),
|
||||
/* Master jump */ DMG_ENTRY(4, 0xF),
|
||||
/* Unknown 1 */ DMG_ENTRY(0, 0x0),
|
||||
/* Unblockable */ DMG_ENTRY(0, 0x0),
|
||||
/* Hammer jump */ DMG_ENTRY(0, 0x0),
|
||||
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
|
||||
};
|
||||
|
||||
Vec3f D_809B231C = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809B2328 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809B2334 = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
void EnAnubice_Hover(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
this->hoverVelocityTimer += 1500.0f;
|
||||
this->targetHeight = player->actor.world.pos.y + this->playerHeightOffset;
|
||||
Math_ApproachF(&this->actor.world.pos.y, this->targetHeight, 0.1f, 10.0f);
|
||||
Math_ApproachF(&this->playerHeightOffset, 10.0f, 0.1f, 0.5f);
|
||||
this->actor.velocity.y = Math_SinS(this->hoverVelocityTimer);
|
||||
}
|
||||
|
||||
void EnAnubice_SetFireballRot(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 xzdist;
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
Player* player = PLAYER;
|
||||
|
||||
x = player->actor.world.pos.x - this->fireballPos.x;
|
||||
y = player->actor.world.pos.y + 10.0f - this->fireballPos.y;
|
||||
z = player->actor.world.pos.z - this->fireballPos.z;
|
||||
xzdist = sqrtf(SQ(x) + SQ(z));
|
||||
|
||||
this->fireballRot.x = -RADF_TO_BINANG(Math_FAtan2F(y, xzdist));
|
||||
this->fireballRot.y = RADF_TO_BINANG(Math_FAtan2F(x, z));
|
||||
}
|
||||
|
||||
void EnAnubice_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnAnubice* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06003990, &D_06000F74, this->jointTable, this->morphTable, 16);
|
||||
|
||||
osSyncPrintf("\n\n");
|
||||
// ☆☆☆☆☆ Anubis occurence ☆☆☆☆☆
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ アヌビス発生 ☆☆☆☆☆ \n" VT_RST);
|
||||
|
||||
this->actor.naviEnemyId = 0x3A;
|
||||
|
||||
Collider_InitCylinder(globalCtx, &this->col);
|
||||
Collider_SetCylinder(globalCtx, &this->col, &this->actor, &sCylinderInit);
|
||||
|
||||
Actor_SetScale(&this->actor, 0.015f);
|
||||
|
||||
this->actor.colChkInfo.damageTable = sDamageTable;
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->actor.shape.yOffset = -4230.0f;
|
||||
this->focusHeightOffset = 0.0f;
|
||||
this->actor.flags &= ~1;
|
||||
this->home = this->actor.world.pos;
|
||||
this->actor.targetMode = 3;
|
||||
this->actionFunc = EnAnubice_FindFlameCircles;
|
||||
}
|
||||
|
||||
void EnAnubice_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnAnubice* this = THIS;
|
||||
EnAnubiceTag* temp_v1;
|
||||
|
||||
Collider_DestroyCylinder(globalCtx, &this->col);
|
||||
|
||||
if (this->actor.params != 0) {
|
||||
if (this->actor.parent) {}
|
||||
|
||||
temp_v1 = (EnAnubiceTag*)this->actor.parent;
|
||||
if (temp_v1 != NULL && temp_v1->actor.update != NULL) {
|
||||
temp_v1->anubis = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubice_FindFlameCircles(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
Actor* currentProp;
|
||||
s32 flameCirclesFound;
|
||||
|
||||
if (this->isMirroringLink) {
|
||||
if (!this->hasSearchedForFlameCircles) {
|
||||
flameCirclesFound = 0;
|
||||
currentProp = globalCtx->actorCtx.actorLists[ACTORCAT_PROP].head;
|
||||
while (currentProp != NULL) {
|
||||
if (currentProp->id != ACTOR_BG_HIDAN_CURTAIN) {
|
||||
currentProp = currentProp->next;
|
||||
} else {
|
||||
this->flameCircles[flameCirclesFound] = (BgHidanCurtain*)currentProp;
|
||||
// ☆☆☆☆☆ How many fires? ☆☆☆☆☆
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 火は幾つ? ☆☆☆☆☆ %d\n" VT_RST, flameCirclesFound);
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 火は幾つ? ☆☆☆☆☆ %x\n" VT_RST,
|
||||
this->flameCircles[flameCirclesFound]);
|
||||
if (flameCirclesFound < 4) {
|
||||
flameCirclesFound++;
|
||||
}
|
||||
currentProp = currentProp->next;
|
||||
}
|
||||
}
|
||||
this->hasSearchedForFlameCircles = true;
|
||||
}
|
||||
this->actor.flags |= 1;
|
||||
this->actionFunc = EnAnubice_SetupIdle;
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 lastFrame = Animation_GetLastFrame(&D_06000F74);
|
||||
|
||||
Animation_Change(&this->skelAnime, &D_06000F74, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f);
|
||||
|
||||
this->actionFunc = EnAnubice_Idle;
|
||||
this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f;
|
||||
}
|
||||
|
||||
void EnAnubice_Idle(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
Math_ApproachZeroF(&this->actor.shape.yOffset, 0.5f, 300.0f);
|
||||
Math_ApproachF(&this->focusHeightOffset, 70.0f, 0.5f, 5.0f);
|
||||
|
||||
if (!this->isKnockedback) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 3000, 0);
|
||||
}
|
||||
|
||||
if (this->actor.shape.yOffset > -2.0f) {
|
||||
this->actor.shape.yOffset = 0.0f;
|
||||
|
||||
if (player->swordState != 0) {
|
||||
this->actionFunc = EnAnubis_SetupShootFireball;
|
||||
} else if (this->isLinkOutOfRange) {
|
||||
this->actor.velocity.y = 0.0f;
|
||||
this->actor.gravity = -1.0f;
|
||||
this->actionFunc = EnAnubice_GoToHome;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubice_GoToHome(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 xzdist;
|
||||
f32 xRatio;
|
||||
f32 zRatio;
|
||||
f32 x;
|
||||
f32 z;
|
||||
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
Math_ApproachF(&this->actor.shape.yOffset, -4230.0f, 0.5f, 300.0f);
|
||||
Math_ApproachZeroF(&this->focusHeightOffset, 0.5f, 5.0f);
|
||||
|
||||
if (!this->isKnockedback) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 3000, 0);
|
||||
}
|
||||
|
||||
if (fabsf(this->home.x - this->actor.world.pos.x) > 3.0f && fabsf(this->home.z - this->actor.world.pos.z) > 3.0f) {
|
||||
x = this->home.x - this->actor.world.pos.x;
|
||||
z = this->home.z - this->actor.world.pos.z;
|
||||
xzdist = sqrtf(SQ(x) + SQ(z));
|
||||
xRatio = ((x) / xzdist);
|
||||
zRatio = ((z) / xzdist);
|
||||
this->actor.world.pos.x += (xRatio * 8);
|
||||
this->actor.world.pos.z += (zRatio * 8.0f);
|
||||
} else if (this->actor.shape.yOffset < -4220.0f) {
|
||||
this->actor.shape.yOffset = -4230.0f;
|
||||
this->isMirroringLink = this->isLinkOutOfRange = false;
|
||||
this->actionFunc = EnAnubice_FindFlameCircles;
|
||||
this->actor.gravity = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 lastFrame = Animation_GetLastFrame(&D_0600078C);
|
||||
|
||||
this->animLastFrame = lastFrame;
|
||||
Animation_Change(&this->skelAnime, &D_0600078C, 1.0f, 0.0f, lastFrame, 2, -10.0f);
|
||||
this->actionFunc = EnAnubis_ShootFireball;
|
||||
this->actor.velocity.x = this->actor.velocity.z = 0.0f;
|
||||
}
|
||||
|
||||
void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 curFrame = this->skelAnime.curFrame;
|
||||
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
|
||||
if (!this->isKnockedback) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 3000, 0);
|
||||
}
|
||||
|
||||
EnAnubice_SetFireballRot(this, globalCtx);
|
||||
|
||||
if (curFrame == 12.0f) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ANUBICE_FIRE, this->fireballPos.x,
|
||||
this->fireballPos.y + 15.0f, this->fireballPos.z, this->fireballRot.x, this->fireballRot.y, 0, 0);
|
||||
}
|
||||
|
||||
if (this->animLastFrame <= curFrame) {
|
||||
this->actionFunc = EnAnubice_SetupIdle;
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 lastFrame = Animation_GetLastFrame(&D_06000348);
|
||||
|
||||
this->animLastFrame = lastFrame;
|
||||
Animation_Change(&this->skelAnime, &D_06000348, 1.0f, 0.0f, lastFrame, 2, -20.0f);
|
||||
|
||||
this->unk_256 = false;
|
||||
this->unk_258 = 0;
|
||||
this->deathTimer = 20;
|
||||
this->actor.velocity.x = this->actor.velocity.z = 0.0f;
|
||||
this->actor.gravity = -1.0f;
|
||||
|
||||
if (BgCheck_SphVsFirstPoly(&globalCtx->colCtx, &this->fireballPos, 70.0f)) {
|
||||
this->unk_256 = true;
|
||||
this->unk_258 = this->actor.shape.rot.x - 0x7F00;
|
||||
}
|
||||
|
||||
this->actionFunc = EnAnubice_Die;
|
||||
}
|
||||
|
||||
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx) {
|
||||
f32 curFrame;
|
||||
f32 phi_f2;
|
||||
Vec3f sp4C = D_809B231C;
|
||||
Vec3f fireEffectPos = D_809B2328;
|
||||
s32 pad;
|
||||
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
Math_ApproachZeroF(&this->actor.shape.shadowScale, 0.4f, 0.25f);
|
||||
|
||||
if (this->unk_256) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_258, 1, 10000, 0);
|
||||
if (fabsf(this->actor.shape.rot.y - this->unk_258) < 100.0f) {
|
||||
this->unk_256 = false;
|
||||
}
|
||||
}
|
||||
|
||||
curFrame = this->skelAnime.curFrame;
|
||||
phi_f2 = curFrame * -3000.0f;
|
||||
phi_f2 = CLAMP_MIN(phi_f2, -11000.0f);
|
||||
|
||||
Matrix_RotateY(BINANG_TO_RAD(this->actor.shape.rot.y), MTXMODE_NEW);
|
||||
Matrix_RotateX(BINANG_TO_RAD(phi_f2), MTXMODE_APPLY);
|
||||
sp4C.y = Rand_CenteredFloat(10.0f) + 30.0f;
|
||||
Matrix_MultVec3f(&sp4C, &fireEffectPos);
|
||||
fireEffectPos.x += this->actor.world.pos.x + Rand_CenteredFloat(40.0f);
|
||||
fireEffectPos.y += this->actor.world.pos.y + Rand_CenteredFloat(40.0f);
|
||||
fireEffectPos.z += this->actor.world.pos.z + Rand_CenteredFloat(30.0f);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0x80, 0, 8);
|
||||
EffectSsEnFire_SpawnVec3f(globalCtx, &this->actor, &fireEffectPos, 100, 0, 0, -1);
|
||||
|
||||
if (this->animLastFrame <= curFrame && (this->actor.bgCheckFlags & 1)) {
|
||||
Math_ApproachF(&this->actor.shape.yOffset, -4230.0f, 0.5f, 300.0f);
|
||||
if (this->actor.shape.yOffset < -2000.0f) {
|
||||
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 0xC0);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnAnubice_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
f32 zero;
|
||||
BgHidanCurtain* flameCircle;
|
||||
s32 i;
|
||||
Vec3f sp48;
|
||||
Vec3f sp3C;
|
||||
EnAnubice* this = THIS;
|
||||
|
||||
if (this->actionFunc != EnAnubice_SetupDie && this->actionFunc != EnAnubice_Die &&
|
||||
this->actor.shape.yOffset == 0.0f) {
|
||||
EnAnubice_Hover(this, globalCtx);
|
||||
for (i = 0; i < 5; i++) {
|
||||
flameCircle = this->flameCircles[i];
|
||||
|
||||
if (flameCircle != NULL && fabsf(flameCircle->actor.world.pos.x - this->actor.world.pos.x) < 60.0f &&
|
||||
fabsf(this->flameCircles[i]->actor.world.pos.z - this->actor.world.pos.z) < 60.0f &&
|
||||
flameCircle->timer != 0) {
|
||||
Actor_ChangeCategory(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORCAT_PROP);
|
||||
this->actor.flags &= ~1;
|
||||
func_80032C7C(globalCtx, &this->actor);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ANUBIS_DEAD);
|
||||
this->actionFunc = EnAnubice_SetupDie;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (this->col.base.acFlags & 2) {
|
||||
this->col.base.acFlags &= ~2;
|
||||
if (this->actor.colChkInfo.damageEffect == 2) {
|
||||
Actor_ChangeCategory(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORCAT_PROP);
|
||||
this->actor.flags &= ~1;
|
||||
func_80032C7C(globalCtx, &this->actor);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ANUBIS_DEAD);
|
||||
this->actionFunc = EnAnubice_SetupDie;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this->isKnockedback) {
|
||||
this->knockbackTimer = 10;
|
||||
this->isKnockedback = true;
|
||||
|
||||
sp48.x = 0.0f;
|
||||
sp48.y = 0.0f;
|
||||
sp48.z = -10.0f;
|
||||
sp3C.x = 0.0f;
|
||||
sp3C.y = 0.0f;
|
||||
sp3C.z = 0.0f;
|
||||
|
||||
Matrix_RotateY(BINANG_TO_RAD(this->actor.shape.rot.y), MTXMODE_NEW);
|
||||
Matrix_MultVec3f(&sp48, &sp3C);
|
||||
|
||||
this->actor.velocity.x = sp3C.x;
|
||||
this->actor.velocity.z = sp3C.z;
|
||||
this->knockbackRecoveryVelocity.x = -sp3C.x;
|
||||
this->knockbackRecoveryVelocity.z = -sp3C.z;
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_CUTBODY);
|
||||
}
|
||||
}
|
||||
|
||||
if (this->isKnockedback) {
|
||||
this->actor.shape.rot.y += 6500;
|
||||
Math_ApproachF(&this->actor.velocity.x, this->knockbackRecoveryVelocity.x, 0.3f, 1.0f);
|
||||
Math_ApproachF(&this->actor.velocity.z, this->knockbackRecoveryVelocity.z, 0.3f, 1.0f);
|
||||
|
||||
zero = 0.0f;
|
||||
if (zero) {}
|
||||
|
||||
if (this->knockbackTimer == 0) {
|
||||
this->actor.velocity.x = this->actor.velocity.z = 0.0f;
|
||||
this->knockbackRecoveryVelocity.x = this->knockbackRecoveryVelocity.z = 0.0f;
|
||||
this->isKnockedback = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->timeAlive++;
|
||||
|
||||
if (this->knockbackTimer != 0) {
|
||||
this->knockbackTimer--;
|
||||
}
|
||||
|
||||
if (this->deathTimer != 0) {
|
||||
this->deathTimer--;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/EnAnubice_Init.s")
|
||||
this->actionFunc(this, globalCtx);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/EnAnubice_Destroy.s")
|
||||
this->actor.velocity.y += this->actor.gravity;
|
||||
func_8002D7EC(&this->actor);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B142C.s")
|
||||
if (!this->isLinkOutOfRange) {
|
||||
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, 5.0f, 10.0f, 0x1D);
|
||||
} else {
|
||||
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, 5.0f, 10.0f, 0x1C);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B1524.s")
|
||||
if (this->actionFunc != EnAnubice_SetupDie && this->actionFunc != EnAnubice_Die) {
|
||||
Actor_SetFocus(&this->actor, this->focusHeightOffset);
|
||||
Collider_UpdateCylinder(&this->actor, &this->col);
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->col.base);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B15CC.s")
|
||||
if (!this->isKnockedback && this->actor.shape.yOffset == 0.0f) {
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->col.base);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B16AC.s")
|
||||
s32 EnAnubis_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
|
||||
void* thisx) {
|
||||
EnAnubice* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B17FC.s")
|
||||
if (limbIndex == 13) {
|
||||
rot->z += this->unk_278;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B1884.s")
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B1984.s")
|
||||
void EnAnubis_PostLimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||
EnAnubice* this = THIS;
|
||||
Vec3f sp38 = D_809B2334;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B1A54.s")
|
||||
if (limbIndex == 13) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 853);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/EnAnubice_Update.s")
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice.c", 856),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06003468);
|
||||
Matrix_MultVec3f(&sp38, &this->fireballPos);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B2104.s")
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 868);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/func_809B2150.s")
|
||||
void EnAnubice_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnAnubice* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Anubice/EnAnubice_Draw.s")
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, EnAnubis_OverrideLimbDraw,
|
||||
EnAnubis_PostLimbDraw, this);
|
||||
}
|
||||
|
|
|
@ -3,18 +3,40 @@
|
|||
|
||||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
#include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h"
|
||||
|
||||
struct EnAnubice;
|
||||
|
||||
typedef void (*EnAnubiceActionFunc)(struct EnAnubice*, struct GlobalContext*);
|
||||
|
||||
typedef struct EnAnubice {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x10E];
|
||||
/* 0x025A */ s16 unk_25A;
|
||||
/* 0x025C */ char unk_25C[0x2];
|
||||
/* 0x025E */ s16 unk_25E;
|
||||
/* 0x0260 */ s16 unk_260;
|
||||
/* 0x0262 */ s16 unk_262;
|
||||
/* 0x0264 */ char unk_264[0xB0];
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s jointTable[16];
|
||||
/* 0x01F0 */ Vec3s morphTable[16];
|
||||
/* 0x0250 */ EnAnubiceActionFunc actionFunc;
|
||||
/* 0x0254 */ s16 timeAlive;
|
||||
/* 0x0256 */ s16 unk_256;
|
||||
/* 0x0258 */ s16 unk_258;
|
||||
/* 0x025A */ s16 deathTimer;
|
||||
/* 0x025C */ s16 knockbackTimer;
|
||||
/* 0x025E */ s16 isMirroringLink;
|
||||
/* 0x0260 */ s16 isLinkOutOfRange;
|
||||
/* 0x0262 */ s16 isKnockedback;
|
||||
/* 0x0264 */ s16 hasSearchedForFlameCircles;
|
||||
/* 0x0268 */ f32 hoverVelocityTimer;
|
||||
/* 0x026C */ f32 animLastFrame;
|
||||
/* 0x0270 */ f32 targetHeight;
|
||||
/* 0x0274 */ f32 playerHeightOffset; // How high above the player to hover at
|
||||
/* 0x0278 */ f32 unk_278;
|
||||
/* 0x027C */ f32 focusHeightOffset;
|
||||
/* 0x0280 */ Vec3f fireballPos;
|
||||
/* 0x028C */ Vec3f fireballRot;
|
||||
/* 0x0298 */ Vec3f home;
|
||||
/* 0x02A4 */ Vec3f knockbackRecoveryVelocity;
|
||||
/* 0x02B0 */ BgHidanCurtain* flameCircles[4];
|
||||
/* 0x02C0 */ char unk_2C0[0x8];
|
||||
/* 0x02C8 */ ColliderCylinder col;
|
||||
} EnAnubice; // size = 0x0314
|
||||
|
||||
extern const ActorInit En_Anubice_InitVars;
|
||||
|
|
|
@ -74,15 +74,15 @@ void EnAnubiceTag_ManageAnubis(EnAnubiceTag* this, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (anubis->unk_25A != 0) {
|
||||
if (anubis->deathTimer != 0) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->actor.xzDistToPlayer < (200.0f + this->triggerRange)) {
|
||||
if (anubis->unk_260 == 0) {
|
||||
if (anubis->unk_262 == 0) {
|
||||
anubis->unk_25E = 1;
|
||||
if (!anubis->isLinkOutOfRange) {
|
||||
if (!anubis->isKnockedback) {
|
||||
anubis->isMirroringLink = true;
|
||||
offset.x = -Math_SinS(this->actor.yawTowardsPlayer) * this->actor.xzDistToPlayer;
|
||||
offset.z = -Math_CosS(this->actor.yawTowardsPlayer) * this->actor.xzDistToPlayer;
|
||||
Math_ApproachF(&anubis->actor.world.pos.x, (this->actor.world.pos.x + offset.x), 0.3f, 10.0f);
|
||||
|
@ -91,8 +91,8 @@ void EnAnubiceTag_ManageAnubis(EnAnubiceTag* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if (anubis->unk_25E != 0) {
|
||||
anubis->unk_260 = 1;
|
||||
if (anubis->isMirroringLink) {
|
||||
anubis->isLinkOutOfRange = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue