1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-29 16:26:18 +00:00

EnBili OK and documented (#654)

* OK, data imported

* reloc

* some naming, some floats

* named almost everything

* description

* delete asm

* missing static

* Address review comments

* Apply suggestions from code review

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Bili/z_en_bili.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
EllipticEllipsis 2021-02-08 01:43:02 +00:00 committed by GitHub
parent b029225000
commit ec31611c0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 745 additions and 2378 deletions

View file

@ -1,12 +0,0 @@
glabel EnBili_Destroy
/* 000F4 809BF994 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000F8 809BF998 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 000FC 809BF99C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00100 809BF9A0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00104 809BF9A4 0C0170EB */ jal Collider_DestroyCylinder
/* 00108 809BF9A8 24C501D4 */ addiu $a1, $a2, 0x01D4 ## $a1 = 000001D4
/* 0010C 809BF9AC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00110 809BF9B0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00114 809BF9B4 03E00008 */ jr $ra
/* 00118 809BF9B8 00000000 */ nop

View file

@ -1,114 +0,0 @@
.rdata
glabel D_809C1710
.asciz "../z_en_bili.c"
.balign 4
glabel D_809C1720
.asciz "../z_en_bili.c"
.balign 4
.text
glabel EnBili_Draw
/* 01BF8 809C1498 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 01BFC 809C149C AFBF002C */ sw $ra, 0x002C($sp)
/* 01C00 809C14A0 AFB10028 */ sw $s1, 0x0028($sp)
/* 01C04 809C14A4 AFB00024 */ sw $s0, 0x0024($sp)
/* 01C08 809C14A8 AFA5005C */ sw $a1, 0x005C($sp)
/* 01C0C 809C14AC 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01C10 809C14B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01C14 809C14B4 3C06809C */ lui $a2, %hi(D_809C1710) ## $a2 = 809C0000
/* 01C18 809C14B8 24C61710 */ addiu $a2, $a2, %lo(D_809C1710) ## $a2 = 809C1710
/* 01C1C 809C14BC 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8
/* 01C20 809C14C0 240705F1 */ addiu $a3, $zero, 0x05F1 ## $a3 = 000005F1
/* 01C24 809C14C4 0C031AB1 */ jal Graph_OpenDisps
/* 01C28 809C14C8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 01C2C 809C14CC 8FAF005C */ lw $t7, 0x005C($sp)
/* 01C30 809C14D0 0C024F61 */ jal func_80093D84
/* 01C34 809C14D4 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 01C38 809C14D8 92020194 */ lbu $v0, 0x0194($s0) ## 00000194
/* 01C3C 809C14DC 3C07809C */ lui $a3, %hi(func_809C13A8) ## $a3 = 809C0000
/* 01C40 809C14E0 24180007 */ addiu $t8, $zero, 0x0007 ## $t8 = 00000007
/* 01C44 809C14E4 28410008 */ slti $at, $v0, 0x0008
/* 01C48 809C14E8 14200003 */ bne $at, $zero, .L809C14F8
/* 01C4C 809C14EC 24E713A8 */ addiu $a3, $a3, %lo(func_809C13A8) ## $a3 = 809C13A8
/* 01C50 809C14F0 10000002 */ beq $zero, $zero, .L809C14FC
/* 01C54 809C14F4 A2180194 */ sb $t8, 0x0194($s0) ## 00000194
.L809C14F8:
/* 01C58 809C14F8 A2020194 */ sb $v0, 0x0194($s0) ## 00000194
.L809C14FC:
/* 01C5C 809C14FC 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 01C60 809C1500 3C08DB06 */ lui $t0, 0xDB06 ## $t0 = DB060000
/* 01C64 809C1504 35080020 */ ori $t0, $t0, 0x0020 ## $t0 = DB060020
/* 01C68 809C1508 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 01C6C 809C150C AE3902D0 */ sw $t9, 0x02D0($s1) ## 000002D0
/* 01C70 809C1510 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 01C74 809C1514 92090194 */ lbu $t1, 0x0194($s0) ## 00000194
/* 01C78 809C1518 3C04809C */ lui $a0, %hi(D_809C16CC) ## $a0 = 809C0000
/* 01C7C 809C151C 3C0F8016 */ lui $t7, %hi(gSegments)
/* 01C80 809C1520 00095080 */ sll $t2, $t1, 2
/* 01C84 809C1524 008A2021 */ addu $a0, $a0, $t2
/* 01C88 809C1528 8C8416CC */ lw $a0, %lo(D_809C16CC)($a0)
/* 01C8C 809C152C 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 01C90 809C1530 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 01C94 809C1534 00046100 */ sll $t4, $a0, 4
/* 01C98 809C1538 000C6F02 */ srl $t5, $t4, 28
/* 01C9C 809C153C 000D7080 */ sll $t6, $t5, 2
/* 01CA0 809C1540 01EE7821 */ addu $t7, $t7, $t6
/* 01CA4 809C1544 8DEF6FA8 */ lw $t7, %lo(gSegments)($t7)
/* 01CA8 809C1548 00815824 */ and $t3, $a0, $at
/* 01CAC 809C154C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 01CB0 809C1550 016FC021 */ addu $t8, $t3, $t7
/* 01CB4 809C1554 0301C821 */ addu $t9, $t8, $at
/* 01CB8 809C1558 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 01CBC 809C155C 8E090190 */ lw $t1, 0x0190($s0) ## 00000190
/* 01CC0 809C1560 3C08809C */ lui $t0, %hi(func_809C02B8) ## $t0 = 809C0000
/* 01CC4 809C1564 250802B8 */ addiu $t0, $t0, %lo(func_809C02B8) ## $t0 = 809C02B8
/* 01CC8 809C1568 1509000F */ bne $t0, $t1, .L809C15A8
/* 01CCC 809C156C 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
/* 01CD0 809C1570 860A0196 */ lh $t2, 0x0196($s0) ## 00000196
/* 01CD4 809C1574 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000
/* 01CD8 809C1578 35CE0024 */ ori $t6, $t6, 0x0024 ## $t6 = DB060024
/* 01CDC 809C157C 314C0001 */ andi $t4, $t2, 0x0001 ## $t4 = 00000000
/* 01CE0 809C1580 5180000A */ beql $t4, $zero, .L809C15AC
/* 01CE4 809C1584 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 01CE8 809C1588 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 01CEC 809C158C 3C0B809C */ lui $t3, %hi(D_809C16F0) ## $t3 = 809C0000
/* 01CF0 809C1590 256B16F0 */ addiu $t3, $t3, %lo(D_809C16F0) ## $t3 = 809C16F0
/* 01CF4 809C1594 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 01CF8 809C1598 AE2D02D0 */ sw $t5, 0x02D0($s1) ## 000002D0
/* 01CFC 809C159C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 01D00 809C15A0 10000009 */ beq $zero, $zero, .L809C15C8
/* 01D04 809C15A4 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
.L809C15A8:
/* 01D08 809C15A8 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
.L809C15AC:
/* 01D0C 809C15AC 3C19809C */ lui $t9, %hi(D_809C1700) ## $t9 = 809C0000
/* 01D10 809C15B0 27391700 */ addiu $t9, $t9, %lo(D_809C1700) ## $t9 = 809C1700
/* 01D14 809C15B4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 01D18 809C15B8 AE2F02D0 */ sw $t7, 0x02D0($s1) ## 000002D0
/* 01D1C 809C15BC 37180024 */ ori $t8, $t8, 0x0024 ## $t8 = DB060024
/* 01D20 809C15C0 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 01D24 809C15C4 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
.L809C15C8:
/* 01D28 809C15C8 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 01D2C 809C15CC 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 01D30 809C15D0 AFB00014 */ sw $s0, 0x0014($sp)
/* 01D34 809C15D4 AFA00010 */ sw $zero, 0x0010($sp)
/* 01D38 809C15D8 8E2802D0 */ lw $t0, 0x02D0($s1) ## 000002D0
/* 01D3C 809C15DC 8FA4005C */ lw $a0, 0x005C($sp)
/* 01D40 809C15E0 0C0288A2 */ jal SkelAnime_Draw
/* 01D44 809C15E4 AFA80018 */ sw $t0, 0x0018($sp)
/* 01D48 809C15E8 AE2202D0 */ sw $v0, 0x02D0($s1) ## 000002D0
/* 01D4C 809C15EC 8FA9005C */ lw $t1, 0x005C($sp)
/* 01D50 809C15F0 3C06809C */ lui $a2, %hi(D_809C1720) ## $a2 = 809C0000
/* 01D54 809C15F4 24C61720 */ addiu $a2, $a2, %lo(D_809C1720) ## $a2 = 809C1720
/* 01D58 809C15F8 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8
/* 01D5C 809C15FC 24070610 */ addiu $a3, $zero, 0x0610 ## $a3 = 00000610
/* 01D60 809C1600 0C031AD5 */ jal Graph_CloseDisps
/* 01D64 809C1604 8D250000 */ lw $a1, 0x0000($t1) ## 00000000
/* 01D68 809C1608 8FBF002C */ lw $ra, 0x002C($sp)
/* 01D6C 809C160C 8FB00024 */ lw $s0, 0x0024($sp)
/* 01D70 809C1610 8FB10028 */ lw $s1, 0x0028($sp)
/* 01D74 809C1614 03E00008 */ jr $ra
/* 01D78 809C1618 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 01D7C 809C161C 00000000 */ nop

View file

@ -1,69 +0,0 @@
glabel EnBili_Init
/* 00000 809BF8A0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00004 809BF8A4 AFA5003C */ sw $a1, 0x003C($sp)
/* 00008 809BF8A8 AFBF002C */ sw $ra, 0x002C($sp)
/* 0000C 809BF8AC AFB00028 */ sw $s0, 0x0028($sp)
/* 00010 809BF8B0 3C05809C */ lui $a1, %hi(D_809C1698) ## $a1 = 809C0000
/* 00014 809BF8B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 809BF8B8 0C01E037 */ jal Actor_ProcessInitChain
/* 0001C 809BF8BC 24A51698 */ addiu $a1, $a1, %lo(D_809C1698) ## $a1 = 809C1698
/* 00020 809BF8C0 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle)
/* 00024 809BF8C4 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle)
/* 00028 809BF8C8 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 0002C 809BF8CC 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00030 809BF8D0 0C00AC78 */ jal ActorShape_Init
/* 00034 809BF8D4 3C074188 */ lui $a3, 0x4188 ## $a3 = 41880000
/* 00038 809BF8D8 240E009B */ addiu $t6, $zero, 0x009B ## $t6 = 0000009B
/* 0003C 809BF8DC A20E00C8 */ sb $t6, 0x00C8($s0) ## 000000C8
/* 00040 809BF8E0 3C060600 */ lui $a2, %hi(D_06005848) ## $a2 = 06000000
/* 00044 809BF8E4 3C070600 */ lui $a3, %hi(D_060000A4) ## $a3 = 06000000
/* 00048 809BF8E8 260F0198 */ addiu $t7, $s0, 0x0198 ## $t7 = 00000198
/* 0004C 809BF8EC 261801B6 */ addiu $t8, $s0, 0x01B6 ## $t8 = 000001B6
/* 00050 809BF8F0 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005
/* 00054 809BF8F4 AFB90018 */ sw $t9, 0x0018($sp)
/* 00058 809BF8F8 AFB80014 */ sw $t8, 0x0014($sp)
/* 0005C 809BF8FC AFAF0010 */ sw $t7, 0x0010($sp)
/* 00060 809BF900 24E700A4 */ addiu $a3, $a3, %lo(D_060000A4) ## $a3 = 060000A4
/* 00064 809BF904 24C65848 */ addiu $a2, $a2, %lo(D_06005848) ## $a2 = 06005848
/* 00068 809BF908 8FA4003C */ lw $a0, 0x003C($sp)
/* 0006C 809BF90C 0C02915F */ jal SkelAnime_Init
/* 00070 809BF910 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00074 809BF914 260501D4 */ addiu $a1, $s0, 0x01D4 ## $a1 = 000001D4
/* 00078 809BF918 AFA50030 */ sw $a1, 0x0030($sp)
/* 0007C 809BF91C 0C0170D9 */ jal Collider_InitCylinder
/* 00080 809BF920 8FA4003C */ lw $a0, 0x003C($sp)
/* 00084 809BF924 3C07809C */ lui $a3, %hi(D_809C1640) ## $a3 = 809C0000
/* 00088 809BF928 8FA50030 */ lw $a1, 0x0030($sp)
/* 0008C 809BF92C 24E71640 */ addiu $a3, $a3, %lo(D_809C1640) ## $a3 = 809C1640
/* 00090 809BF930 8FA4003C */ lw $a0, 0x003C($sp)
/* 00094 809BF934 0C01712B */ jal Collider_SetCylinder
/* 00098 809BF938 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0009C 809BF93C 3C05809C */ lui $a1, %hi(D_809C1678) ## $a1 = 809C0000
/* 000A0 809BF940 3C06809C */ lui $a2, %hi(D_809C166C) ## $a2 = 809C0000
/* 000A4 809BF944 24C6166C */ addiu $a2, $a2, %lo(D_809C166C) ## $a2 = 809C166C
/* 000A8 809BF948 24A51678 */ addiu $a1, $a1, %lo(D_809C1678) ## $a1 = 809C1678
/* 000AC 809BF94C 0C0187BF */ jal CollisionCheck_SetInfo2
/* 000B0 809BF950 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 000B4 809BF954 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 000B8 809BF958 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 000BC 809BF95C A2000195 */ sb $zero, 0x0195($s0) ## 00000195
/* 000C0 809BF960 15010005 */ bne $t0, $at, .L809BF978
/* 000C4 809BF964 00000000 */ nop
/* 000C8 809BF968 0C26FE6F */ jal func_809BF9BC
/* 000CC 809BF96C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000D0 809BF970 10000004 */ beq $zero, $zero, .L809BF984
/* 000D4 809BF974 8FBF002C */ lw $ra, 0x002C($sp)
.L809BF978:
/* 000D8 809BF978 0C26FE85 */ jal func_809BFA14
/* 000DC 809BF97C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000E0 809BF980 8FBF002C */ lw $ra, 0x002C($sp)
.L809BF984:
/* 000E4 809BF984 8FB00028 */ lw $s0, 0x0028($sp)
/* 000E8 809BF988 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 000EC 809BF98C 03E00008 */ jr $ra
/* 000F0 809BF990 00000000 */ nop

View file

@ -1,133 +0,0 @@
glabel EnBili_Update
/* 01398 809C0C38 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0139C 809C0C3C AFBF0024 */ sw $ra, 0x0024($sp)
/* 013A0 809C0C40 AFB10020 */ sw $s1, 0x0020($sp)
/* 013A4 809C0C44 AFB0001C */ sw $s0, 0x001C($sp)
/* 013A8 809C0C48 908201E4 */ lbu $v0, 0x01E4($a0) ## 000001E4
/* 013AC 809C0C4C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 013B0 809C0C50 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 013B4 809C0C54 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 013B8 809C0C58 11C00003 */ beq $t6, $zero, .L809C0C68
/* 013BC 809C0C5C 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
/* 013C0 809C0C60 0C26FEA3 */ jal func_809BFA8C
/* 013C4 809C0C64 A08F01E4 */ sb $t7, 0x01E4($a0) ## 000001E4
.L809C0C68:
/* 013C8 809C0C68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 013CC 809C0C6C 0C27029C */ jal func_809C0A70
/* 013D0 809C0C70 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 013D4 809C0C74 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 013D8 809C0C78 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 013DC 809C0C7C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 013E0 809C0C80 0320F809 */ jalr $ra, $t9
/* 013E4 809C0C84 00000000 */ nop
/* 013E8 809C0C88 8E080190 */ lw $t0, 0x0190($s0) ## 00000190
/* 013EC 809C0C8C 3C18809C */ lui $t8, %hi(func_809C0754) ## $t8 = 809C0000
/* 013F0 809C0C90 27180754 */ addiu $t8, $t8, %lo(func_809C0754) ## $t8 = 809C0754
/* 013F4 809C0C94 53080058 */ beql $t8, $t0, .L809C0DF8
/* 013F8 809C0C98 8FBF0024 */ lw $ra, 0x0024($sp)
/* 013FC 809C0C9C 0C26FFDB */ jal func_809BFF6C
/* 01400 809C0CA0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01404 809C0CA4 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 01408 809C0CA8 0C0295B2 */ jal Animation_OnFrame
/* 0140C 809C0CAC 3C054110 */ lui $a1, 0x4110 ## $a1 = 41100000
/* 01410 809C0CB0 5040001A */ beql $v0, $zero, .L809C0D1C
/* 01414 809C0CB4 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 01418 809C0CB8 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
/* 0141C 809C0CBC 3C09809C */ lui $t1, %hi(func_809C0174) ## $t1 = 809C0000
/* 01420 809C0CC0 25290174 */ addiu $t1, $t1, %lo(func_809C0174) ## $t1 = 809C0174
/* 01424 809C0CC4 1122000A */ beq $t1, $v0, .L809C0CF0
/* 01428 809C0CC8 3C0A809C */ lui $t2, %hi(func_809C0600) ## $t2 = 809C0000
/* 0142C 809C0CCC 254A0600 */ addiu $t2, $t2, %lo(func_809C0600) ## $t2 = 809C0600
/* 01430 809C0CD0 11420007 */ beq $t2, $v0, .L809C0CF0
/* 01434 809C0CD4 3C0B809C */ lui $t3, %hi(func_809C0570) ## $t3 = 809C0000
/* 01438 809C0CD8 256B0570 */ addiu $t3, $t3, %lo(func_809C0570) ## $t3 = 809C0570
/* 0143C 809C0CDC 11620004 */ beq $t3, $v0, .L809C0CF0
/* 01440 809C0CE0 3C0C809C */ lui $t4, %hi(func_809C067C) ## $t4 = 809C0000
/* 01444 809C0CE4 258C067C */ addiu $t4, $t4, %lo(func_809C067C) ## $t4 = 809C067C
/* 01448 809C0CE8 5582000C */ bnel $t4, $v0, .L809C0D1C
/* 0144C 809C0CEC 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
.L809C0CF0:
/* 01450 809C0CF0 920D0195 */ lbu $t5, 0x0195($s0) ## 00000195
/* 01454 809C0CF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01458 809C0CF8 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 0145C 809C0CFC 51A00006 */ beql $t5, $zero, .L809C0D18
/* 01460 809C0D00 A20E0195 */ sb $t6, 0x0195($s0) ## 00000195
/* 01464 809C0D04 0C00BE0A */ jal Audio_PlayActorSound2
/* 01468 809C0D08 24053898 */ addiu $a1, $zero, 0x3898 ## $a1 = 00003898
/* 0146C 809C0D0C 10000002 */ beq $zero, $zero, .L809C0D18
/* 01470 809C0D10 A2000195 */ sb $zero, 0x0195($s0) ## 00000195
/* 01474 809C0D14 A20E0195 */ sb $t6, 0x0195($s0) ## 00000195
.L809C0D18:
/* 01478 809C0D18 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
.L809C0D1C:
/* 0147C 809C0D1C 3C0F809C */ lui $t7, %hi(func_809C067C) ## $t7 = 809C0000
/* 01480 809C0D20 25EF067C */ addiu $t7, $t7, %lo(func_809C067C) ## $t7 = 809C067C
/* 01484 809C0D24 15F90005 */ bne $t7, $t9, .L809C0D3C
/* 01488 809C0D28 00000000 */ nop
/* 0148C 809C0D2C 0C00B65F */ jal func_8002D97C
/* 01490 809C0D30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01494 809C0D34 10000004 */ beq $zero, $zero, .L809C0D48
/* 01498 809C0D38 86180214 */ lh $t8, 0x0214($s0) ## 00000214
.L809C0D3C:
/* 0149C 809C0D3C 0C00B638 */ jal Actor_MoveForward
/* 014A0 809C0D40 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 014A4 809C0D44 86180214 */ lh $t8, 0x0214($s0) ## 00000214
.L809C0D48:
/* 014A8 809C0D48 86080216 */ lh $t0, 0x0216($s0) ## 00000216
/* 014AC 809C0D4C 24090007 */ addiu $t1, $zero, 0x0007 ## $t1 = 00000007
/* 014B0 809C0D50 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 014B4 809C0D54 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00
/* 014B8 809C0D58 AFA90014 */ sw $t1, 0x0014($sp)
/* 014BC 809C0D5C 46802120 */ cvt.s.w $f4, $f4
/* 014C0 809C0D60 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 014C4 809C0D64 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 014C8 809C0D68 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
/* 014CC 809C0D6C 46803220 */ cvt.s.w $f8, $f6
/* 014D0 809C0D70 44072000 */ mfc1 $a3, $f4
/* 014D4 809C0D74 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 014D8 809C0D78 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 014DC 809C0D7C 260501D4 */ addiu $a1, $s0, 0x01D4 ## $a1 = 000001D4
/* 014E0 809C0D80 AFA50028 */ sw $a1, 0x0028($sp)
/* 014E4 809C0D84 0C0189B7 */ jal Collider_UpdateCylinder
/* 014E8 809C0D88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 014EC 809C0D8C 920A01E4 */ lbu $t2, 0x01E4($s0) ## 000001E4
/* 014F0 809C0D90 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 014F4 809C0D94 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 014F8 809C0D98 314B0001 */ andi $t3, $t2, 0x0001 ## $t3 = 00000000
/* 014FC 809C0D9C 11600004 */ beq $t3, $zero, .L809C0DB0
/* 01500 809C0DA0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01504 809C0DA4 02212821 */ addu $a1, $s1, $at
/* 01508 809C0DA8 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 0150C 809C0DAC 8FA60028 */ lw $a2, 0x0028($sp)
.L809C0DB0:
/* 01510 809C0DB0 920C01E5 */ lbu $t4, 0x01E5($s0) ## 000001E5
/* 01514 809C0DB4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01518 809C0DB8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 0151C 809C0DBC 318D0001 */ andi $t5, $t4, 0x0001 ## $t5 = 00000000
/* 01520 809C0DC0 11A00006 */ beq $t5, $zero, .L809C0DDC
/* 01524 809C0DC4 02212821 */ addu $a1, $s1, $at
/* 01528 809C0DC8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0152C 809C0DCC 8FA60028 */ lw $a2, 0x0028($sp)
/* 01530 809C0DD0 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 01534 809C0DD4 AFA5002C */ sw $a1, 0x002C($sp)
/* 01538 809C0DD8 8FA5002C */ lw $a1, 0x002C($sp)
.L809C0DDC:
/* 0153C 809C0DDC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01540 809C0DE0 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOC
/* 01544 809C0DE4 8FA60028 */ lw $a2, 0x0028($sp)
/* 01548 809C0DE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0154C 809C0DEC 0C00B56E */ jal Actor_SetFocus
/* 01550 809C0DF0 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 01554 809C0DF4 8FBF0024 */ lw $ra, 0x0024($sp)
.L809C0DF8:
/* 01558 809C0DF8 8FB0001C */ lw $s0, 0x001C($sp)
/* 0155C 809C0DFC 8FB10020 */ lw $s1, 0x0020($sp)
/* 01560 809C0E00 03E00008 */ jr $ra
/* 01564 809C0E04 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,28 +0,0 @@
.late_rodata
glabel D_809C1730
.float 0.7
.text
glabel func_809BF9BC
/* 0011C 809BF9BC 3C01809C */ lui $at, %hi(D_809C1730) ## $at = 809C0000
/* 00120 809BF9C0 C4241730 */ lwc1 $f4, %lo(D_809C1730)($at)
/* 00124 809BF9C4 909801E4 */ lbu $t8, 0x01E4($a0) ## 000001E4
/* 00128 809BF9C8 908801E5 */ lbu $t0, 0x01E5($a0) ## 000001E5
/* 0012C 809BF9CC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00130 809BF9D0 C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
/* 00134 809BF9D4 3C0A809C */ lui $t2, %hi(func_809C0174) ## $t2 = 809C0000
/* 00138 809BF9D8 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 0013C 809BF9DC 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 00140 809BF9E0 254A0174 */ addiu $t2, $t2, %lo(func_809C0174) ## $t2 = 809C0174
/* 00144 809BF9E4 37190001 */ ori $t9, $t8, 0x0001 ## $t9 = 00000001
/* 00148 809BF9E8 35090001 */ ori $t1, $t0, 0x0001 ## $t1 = 00000001
/* 0014C 809BF9EC A08E01F8 */ sb $t6, 0x01F8($a0) ## 000001F8
/* 00150 809BF9F0 A48F0196 */ sh $t7, 0x0196($a0) ## 00000196
/* 00154 809BF9F4 A09901E4 */ sb $t9, 0x01E4($a0) ## 000001E4
/* 00158 809BF9F8 A08901E5 */ sb $t1, 0x01E5($a0) ## 000001E5
/* 0015C 809BF9FC AC8A0190 */ sw $t2, 0x0190($a0) ## 00000190
/* 00160 809BFA00 E4840068 */ swc1 $f4, 0x0068($a0) ## 00000068
/* 00164 809BFA04 E486000C */ swc1 $f6, 0x000C($a0) ## 0000000C
/* 00168 809BFA08 E480006C */ swc1 $f0, 0x006C($a0) ## 0000006C
/* 0016C 809BFA0C 03E00008 */ jr $ra
/* 00170 809BFA10 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060

View file

@ -1,36 +0,0 @@
.late_rodata
glabel D_809C1734
.word 0xBE99999A
.text
glabel func_809BFA14
/* 00174 809BFA14 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00178 809BFA18 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0017C 809BFA1C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00180 809BFA20 3C050600 */ lui $a1, %hi(D_060000A4) ## $a1 = 06000000
/* 00184 809BFA24 24A500A4 */ addiu $a1, $a1, %lo(D_060000A4) ## $a1 = 060000A4
/* 00188 809BFA28 AFA60018 */ sw $a2, 0x0018($sp)
/* 0018C 809BFA2C 0C0294BE */ jal Animation_PlayLoop
/* 00190 809BFA30 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00194 809BFA34 8FA60018 */ lw $a2, 0x0018($sp)
/* 00198 809BFA38 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 0019C 809BFA3C 44812000 */ mtc1 $at, $f4 ## $f4 = 6.00
/* 001A0 809BFA40 240E0019 */ addiu $t6, $zero, 0x0019 ## $t6 = 00000019
/* 001A4 809BFA44 3C01809C */ lui $at, %hi(D_809C1734) ## $at = 809C0000
/* 001A8 809BFA48 A4CE0196 */ sh $t6, 0x0196($a2) ## 00000196
/* 001AC 809BFA4C E4C40060 */ swc1 $f4, 0x0060($a2) ## 00000060
/* 001B0 809BFA50 C4261734 */ lwc1 $f6, %lo(D_809C1734)($at)
/* 001B4 809BFA54 90CF01E4 */ lbu $t7, 0x01E4($a2) ## 000001E4
/* 001B8 809BFA58 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 001BC 809BFA5C 44814000 */ mtc1 $at, $f8 ## $f8 = 3.00
/* 001C0 809BFA60 3C19809C */ lui $t9, %hi(func_809C0260) ## $t9 = 809C0000
/* 001C4 809BFA64 27390260 */ addiu $t9, $t9, %lo(func_809C0260) ## $t9 = 809C0260
/* 001C8 809BFA68 31F8FFFE */ andi $t8, $t7, 0xFFFE ## $t8 = 00000000
/* 001CC 809BFA6C A0D801E4 */ sb $t8, 0x01E4($a2) ## 000001E4
/* 001D0 809BFA70 ACD90190 */ sw $t9, 0x0190($a2) ## 00000190
/* 001D4 809BFA74 E4C6006C */ swc1 $f6, 0x006C($a2) ## 0000006C
/* 001D8 809BFA78 E4C80068 */ swc1 $f8, 0x0068($a2) ## 00000068
/* 001DC 809BFA7C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001E0 809BFA80 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001E4 809BFA84 03E00008 */ jr $ra
/* 001E8 809BFA88 00000000 */ nop

View file

@ -1,24 +0,0 @@
glabel func_809BFA8C
/* 001EC 809BFA8C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001F0 809BFA90 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001F4 809BFA94 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 001F8 809BFA98 3C050600 */ lui $a1, %hi(D_06000024) ## $a1 = 06000000
/* 001FC 809BFA9C 24A50024 */ addiu $a1, $a1, %lo(D_06000024) ## $a1 = 06000024
/* 00200 809BFAA0 AFA60018 */ sw $a2, 0x0018($sp)
/* 00204 809BFAA4 0C0294BE */ jal Animation_PlayLoop
/* 00208 809BFAA8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 0020C 809BFAAC 8FA60018 */ lw $a2, 0x0018($sp)
/* 00210 809BFAB0 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00214 809BFAB4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00218 809BFAB8 44813000 */ mtc1 $at, $f6 ## $f6 = -1.00
/* 0021C 809BFABC 3C0F809C */ lui $t7, %hi(func_809C02B8) ## $t7 = 809C0000
/* 00220 809BFAC0 240E000A */ addiu $t6, $zero, 0x000A ## $t6 = 0000000A
/* 00224 809BFAC4 25EF02B8 */ addiu $t7, $t7, %lo(func_809C02B8) ## $t7 = 809C02B8
/* 00228 809BFAC8 A4CE0196 */ sh $t6, 0x0196($a2) ## 00000196
/* 0022C 809BFACC ACCF0190 */ sw $t7, 0x0190($a2) ## 00000190
/* 00230 809BFAD0 E4C40068 */ swc1 $f4, 0x0068($a2) ## 00000068
/* 00234 809BFAD4 E4C60060 */ swc1 $f6, 0x0060($a2) ## 00000060
/* 00238 809BFAD8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0023C 809BFADC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00240 809BFAE0 03E00008 */ jr $ra
/* 00244 809BFAE4 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_809BFAE8
/* 00248 809BFAE8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0024C 809BFAEC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00250 809BFAF0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00254 809BFAF4 3C050600 */ lui $a1, %hi(D_06000064) ## $a1 = 06000000
/* 00258 809BFAF8 24A50064 */ addiu $a1, $a1, %lo(D_06000064) ## $a1 = 06000064
/* 0025C 809BFAFC AFA60018 */ sw $a2, 0x0018($sp)
/* 00260 809BFB00 0C02947A */ jal Animation_PlayOnce
/* 00264 809BFB04 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00268 809BFB08 8FA60018 */ lw $a2, 0x0018($sp)
/* 0026C 809BFB0C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00270 809BFB10 3C18809C */ lui $t8, %hi(func_809C04B4) ## $t8 = 809C0000
/* 00274 809BFB14 90CE01E4 */ lbu $t6, 0x01E4($a2) ## 000001E4
/* 00278 809BFB18 271804B4 */ addiu $t8, $t8, %lo(func_809C04B4) ## $t8 = 809C04B4
/* 0027C 809BFB1C ACD80190 */ sw $t8, 0x0190($a2) ## 00000190
/* 00280 809BFB20 31CFFFFE */ andi $t7, $t6, 0xFFFE ## $t7 = 00000000
/* 00284 809BFB24 A0CF01E4 */ sb $t7, 0x01E4($a2) ## 000001E4
/* 00288 809BFB28 E4C00068 */ swc1 $f0, 0x0068($a2) ## 00000068
/* 0028C 809BFB2C E4C00060 */ swc1 $f0, 0x0060($a2) ## 00000060
/* 00290 809BFB30 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00294 809BFB34 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00298 809BFB38 03E00008 */ jr $ra
/* 0029C 809BFB3C 00000000 */ nop

View file

@ -1,13 +0,0 @@
.late_rodata
glabel D_809C1738
.float 1.2
.text
glabel func_809BFB40
/* 002A0 809BFB40 3C01809C */ lui $at, %hi(D_809C1738) ## $at = 809C0000
/* 002A4 809BFB44 C4241738 */ lwc1 $f4, %lo(D_809C1738)($at)
/* 002A8 809BFB48 3C0E809C */ lui $t6, %hi(func_809C0570) ## $t6 = 809C0000
/* 002AC 809BFB4C 25CE0570 */ addiu $t6, $t6, %lo(func_809C0570) ## $t6 = 809C0570
/* 002B0 809BFB50 AC8E0190 */ sw $t6, 0x0190($a0) ## 00000190
/* 002B4 809BFB54 03E00008 */ jr $ra
/* 002B8 809BFB58 E4840068 */ swc1 $f4, 0x0068($a0) ## 00000068

View file

@ -1,32 +0,0 @@
.late_rodata
glabel D_809C173C
.float 0.9
.text
glabel func_809BFB5C
/* 002BC 809BFB5C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002C0 809BFB60 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002C4 809BFB64 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 002C8 809BFB68 3C050600 */ lui $a1, %hi(D_060000A4) ## $a1 = 06000000
/* 002CC 809BFB6C 24A500A4 */ addiu $a1, $a1, %lo(D_060000A4) ## $a1 = 060000A4
/* 002D0 809BFB70 AFA60018 */ sw $a2, 0x0018($sp)
/* 002D4 809BFB74 0C0294BE */ jal Animation_PlayLoop
/* 002D8 809BFB78 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 002DC 809BFB7C 8FA60018 */ lw $a2, 0x0018($sp)
/* 002E0 809BFB80 240E0060 */ addiu $t6, $zero, 0x0060 ## $t6 = 00000060
/* 002E4 809BFB84 3C01809C */ lui $at, %hi(D_809C173C) ## $at = 809C0000
/* 002E8 809BFB88 A4CE0196 */ sh $t6, 0x0196($a2) ## 00000196
/* 002EC 809BFB8C C424173C */ lwc1 $f4, %lo(D_809C173C)($at)
/* 002F0 809BFB90 90CF01E4 */ lbu $t7, 0x01E4($a2) ## 000001E4
/* 002F4 809BFB94 C4C60028 */ lwc1 $f6, 0x0028($a2) ## 00000028
/* 002F8 809BFB98 3C19809C */ lui $t9, %hi(func_809C0600) ## $t9 = 809C0000
/* 002FC 809BFB9C 27390600 */ addiu $t9, $t9, %lo(func_809C0600) ## $t9 = 809C0600
/* 00300 809BFBA0 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00304 809BFBA4 A0D801E4 */ sb $t8, 0x01E4($a2) ## 000001E4
/* 00308 809BFBA8 ACD90190 */ sw $t9, 0x0190($a2) ## 00000190
/* 0030C 809BFBAC E4C40068 */ swc1 $f4, 0x0068($a2) ## 00000068
/* 00310 809BFBB0 E4C6000C */ swc1 $f6, 0x000C($a2) ## 0000000C
/* 00314 809BFBB4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00318 809BFBB8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0031C 809BFBBC 03E00008 */ jr $ra
/* 00320 809BFBC0 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel func_809BFBC4
/* 00324 809BFBC4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00328 809BFBC8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0032C 809BFBCC AFB00018 */ sw $s0, 0x0018($sp)
/* 00330 809BFBD0 8C8E0154 */ lw $t6, 0x0154($a0) ## 00000154
/* 00334 809BFBD4 3C050600 */ lui $a1, %hi(D_060000A4) ## $a1 = 06000000
/* 00338 809BFBD8 24A500A4 */ addiu $a1, $a1, %lo(D_060000A4) ## $a1 = 060000A4
/* 0033C 809BFBDC 10AE0003 */ beq $a1, $t6, .L809BFBEC
/* 00340 809BFBE0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00344 809BFBE4 0C0294BE */ jal Animation_PlayLoop
/* 00348 809BFBE8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
.L809BFBEC:
/* 0034C 809BFBEC 8E0501DC */ lw $a1, 0x01DC($s0) ## 000001DC
/* 00350 809BFBF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00354 809BFBF4 0C00B6B0 */ jal Actor_WorldYawTowardPoint
/* 00358 809BFBF8 24A50100 */ addiu $a1, $a1, 0x0100 ## $a1 = 00000100
/* 0035C 809BFBFC 8E0501DC */ lw $a1, 0x01DC($s0) ## 000001DC
/* 00360 809BFC00 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00364 809BFC04 00417821 */ addu $t7, $v0, $at
/* 00368 809BFC08 A60F0032 */ sh $t7, 0x0032($s0) ## 00000032
/* 0036C 809BFC0C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00370 809BFC10 0C00B6CA */ jal Actor_WorldPitchTowardPoint
/* 00374 809BFC14 24A50100 */ addiu $a1, $a1, 0x0100 ## $a1 = 00000100
/* 00378 809BFC18 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 0037C 809BFC1C 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00380 809BFC20 3C18809C */ lui $t8, %hi(func_809C067C) ## $t8 = 809C0000
/* 00384 809BFC24 2718067C */ addiu $t8, $t8, %lo(func_809C067C) ## $t8 = 809C067C
/* 00388 809BFC28 A6020030 */ sh $v0, 0x0030($s0) ## 00000030
/* 0038C 809BFC2C AE180190 */ sw $t8, 0x0190($s0) ## 00000190
/* 00390 809BFC30 E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 00394 809BFC34 8FBF001C */ lw $ra, 0x001C($sp)
/* 00398 809BFC38 8FB00018 */ lw $s0, 0x0018($sp)
/* 0039C 809BFC3C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003A0 809BFC40 03E00008 */ jr $ra
/* 003A4 809BFC44 00000000 */ nop

View file

@ -1,42 +0,0 @@
glabel func_809BFC48
/* 003A8 809BFC48 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 003AC 809BFC4C AFBF0024 */ sw $ra, 0x0024($sp)
/* 003B0 809BFC50 AFB00020 */ sw $s0, 0x0020($sp)
/* 003B4 809BFC54 8C8F0190 */ lw $t7, 0x0190($a0) ## 00000190
/* 003B8 809BFC58 3C0E809C */ lui $t6, %hi(func_809C04B4) ## $t6 = 809C0000
/* 003BC 809BFC5C 25CE04B4 */ addiu $t6, $t6, %lo(func_809C04B4) ## $t6 = 809C04B4
/* 003C0 809BFC60 15CF0005 */ bne $t6, $t7, .L809BFC78
/* 003C4 809BFC64 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 003C8 809BFC68 3C050600 */ lui $a1, %hi(D_060000A4) ## $a1 = 06000000
/* 003CC 809BFC6C 24A500A4 */ addiu $a1, $a1, %lo(D_060000A4) ## $a1 = 060000A4
/* 003D0 809BFC70 0C0294BE */ jal Animation_PlayLoop
/* 003D4 809BFC74 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
.L809BFC78:
/* 003D8 809BFC78 921901E4 */ lbu $t9, 0x01E4($s0) ## 000001E4
/* 003DC 809BFC7C 920901E5 */ lbu $t1, 0x01E5($s0) ## 000001E5
/* 003E0 809BFC80 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
/* 003E4 809BFC84 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 003E8 809BFC88 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 003EC 809BFC8C 3328FFFE */ andi $t0, $t9, 0xFFFE ## $t0 = 00000000
/* 003F0 809BFC90 312AFFFE */ andi $t2, $t1, 0xFFFE ## $t2 = 00000000
/* 003F4 809BFC94 356C0010 */ ori $t4, $t3, 0x0010 ## $t4 = 00000010
/* 003F8 809BFC98 A6180196 */ sh $t8, 0x0196($s0) ## 00000196
/* 003FC 809BFC9C A20801E4 */ sb $t0, 0x01E4($s0) ## 000001E4
/* 00400 809BFCA0 A20A01E5 */ sb $t2, 0x01E5($s0) ## 000001E5
/* 00404 809BFCA4 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
/* 00408 809BFCA8 240D0014 */ addiu $t5, $zero, 0x0014 ## $t5 = 00000014
/* 0040C 809BFCAC E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 00410 809BFCB0 AFAD0010 */ sw $t5, 0x0010($sp)
/* 00414 809BFCB4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00418 809BFCB8 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 0041C 809BFCBC 240600C8 */ addiu $a2, $zero, 0x00C8 ## $a2 = 000000C8
/* 00420 809BFCC0 0C00D09B */ jal func_8003426C
/* 00424 809BFCC4 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 00428 809BFCC8 3C0E809C */ lui $t6, %hi(func_809C06E0) ## $t6 = 809C0000
/* 0042C 809BFCCC 25CE06E0 */ addiu $t6, $t6, %lo(func_809C06E0) ## $t6 = 809C06E0
/* 00430 809BFCD0 AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
/* 00434 809BFCD4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00438 809BFCD8 8FB00020 */ lw $s0, 0x0020($sp)
/* 0043C 809BFCDC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00440 809BFCE0 03E00008 */ jr $ra
/* 00444 809BFCE4 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_809BFCE8
/* 00448 809BFCE8 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 0044C 809BFCEC 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00450 809BFCF0 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00454 809BFCF4 3C19809C */ lui $t9, %hi(func_809C0754) ## $t9 = 809C0000
/* 00458 809BFCF8 240E0012 */ addiu $t6, $zero, 0x0012 ## $t6 = 00000012
/* 0045C 809BFCFC 27390754 */ addiu $t9, $t9, %lo(func_809C0754) ## $t9 = 809C0754
/* 00460 809BFD00 01E1C024 */ and $t8, $t7, $at
/* 00464 809BFD04 A48E0196 */ sh $t6, 0x0196($a0) ## 00000196
/* 00468 809BFD08 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 0046C 809BFD0C AC990190 */ sw $t9, 0x0190($a0) ## 00000190
/* 00470 809BFD10 03E00008 */ jr $ra
/* 00474 809BFD14 E4840068 */ swc1 $f4, 0x0068($a0) ## 00000068

View file

@ -1,33 +0,0 @@
glabel func_809BFD18
/* 00478 809BFD18 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0047C 809BFD1C AFBF001C */ sw $ra, 0x001C($sp)
/* 00480 809BFD20 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00484 809BFD24 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 00488 809BFD28 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 0048C 809BFD2C 240E0050 */ addiu $t6, $zero, 0x0050 ## $t6 = 00000050
/* 00490 809BFD30 A48E0196 */ sh $t6, 0x0196($a0) ## 00000196
/* 00494 809BFD34 A08001F8 */ sb $zero, 0x01F8($a0) ## 000001F8
/* 00498 809BFD38 240F0050 */ addiu $t7, $zero, 0x0050 ## $t7 = 00000050
/* 0049C 809BFD3C E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
/* 004A0 809BFD40 E4860068 */ swc1 $f6, 0x0068($a0) ## 00000068
/* 004A4 809BFD44 AFA40020 */ sw $a0, 0x0020($sp)
/* 004A8 809BFD48 AFAF0010 */ sw $t7, 0x0010($sp)
/* 004AC 809BFD4C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 004B0 809BFD50 24060096 */ addiu $a2, $zero, 0x0096 ## $a2 = 00000096
/* 004B4 809BFD54 0C00D09B */ jal func_8003426C
/* 004B8 809BFD58 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 004BC 809BFD5C 8FA40020 */ lw $a0, 0x0020($sp)
/* 004C0 809BFD60 0C00BE0A */ jal Audio_PlayActorSound2
/* 004C4 809BFD64 2405389E */ addiu $a1, $zero, 0x389E ## $a1 = 0000389E
/* 004C8 809BFD68 8FA40020 */ lw $a0, 0x0020($sp)
/* 004CC 809BFD6C 3C08809C */ lui $t0, %hi(func_809C0980) ## $t0 = 809C0000
/* 004D0 809BFD70 25080980 */ addiu $t0, $t0, %lo(func_809C0980) ## $t0 = 809C0980
/* 004D4 809BFD74 909801E4 */ lbu $t8, 0x01E4($a0) ## 000001E4
/* 004D8 809BFD78 AC880190 */ sw $t0, 0x0190($a0) ## 00000190
/* 004DC 809BFD7C 3319FFFE */ andi $t9, $t8, 0xFFFE ## $t9 = 00000000
/* 004E0 809BFD80 A09901E4 */ sb $t9, 0x01E4($a0) ## 000001E4
/* 004E4 809BFD84 8FBF001C */ lw $ra, 0x001C($sp)
/* 004E8 809BFD88 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 004EC 809BFD8C 03E00008 */ jr $ra
/* 004F0 809BFD90 00000000 */ nop

View file

@ -1,133 +0,0 @@
.late_rodata
glabel D_809C1740
.float 0.7
glabel D_809C1744
.float 0.2
.text
glabel func_809BFD94
/* 004F4 809BFD94 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 004F8 809BFD98 AFBF0074 */ sw $ra, 0x0074($sp)
/* 004FC 809BFD9C AFB40070 */ sw $s4, 0x0070($sp)
/* 00500 809BFDA0 AFB3006C */ sw $s3, 0x006C($sp)
/* 00504 809BFDA4 AFB20068 */ sw $s2, 0x0068($sp)
/* 00508 809BFDA8 AFB10064 */ sw $s1, 0x0064($sp)
/* 0050C 809BFDAC AFB00060 */ sw $s0, 0x0060($sp)
/* 00510 809BFDB0 F7BC0058 */ sdc1 $f28, 0x0058($sp)
/* 00514 809BFDB4 F7BA0050 */ sdc1 $f26, 0x0050($sp)
/* 00518 809BFDB8 F7B80048 */ sdc1 $f24, 0x0048($sp)
/* 0051C 809BFDBC F7B60040 */ sdc1 $f22, 0x0040($sp)
/* 00520 809BFDC0 F7B40038 */ sdc1 $f20, 0x0038($sp)
/* 00524 809BFDC4 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
/* 00528 809BFDC8 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 0052C 809BFDCC 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00530 809BFDD0 31CF8000 */ andi $t7, $t6, 0x8000 ## $t7 = 00000000
/* 00534 809BFDD4 15E00005 */ bne $t7, $zero, .L809BFDEC
/* 00538 809BFDD8 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 0053C 809BFDDC 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00540 809BFDE0 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 00544 809BFDE4 00000000 */ nop
/* 00548 809BFDE8 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
.L809BFDEC:
/* 0054C 809BFDEC 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00550 809BFDF0 44815000 */ mtc1 $at, $f10 ## $f10 = 15.00
/* 00554 809BFDF4 E6260060 */ swc1 $f6, 0x0060($s1) ## 00000060
/* 00558 809BFDF8 3C01809C */ lui $at, %hi(D_809C1740) ## $at = 809C0000
/* 0055C 809BFDFC C43C1740 */ lwc1 $f28, %lo(D_809C1740)($at)
/* 00560 809BFE00 3C01809C */ lui $at, %hi(D_809C1744) ## $at = 809C0000
/* 00564 809BFE04 C6280028 */ lwc1 $f8, 0x0028($s1) ## 00000028
/* 00568 809BFE08 C43A1744 */ lwc1 $f26, %lo(D_809C1744)($at)
/* 0056C 809BFE0C 3C014020 */ lui $at, 0x4020 ## $at = 40200000
/* 00570 809BFE10 4481C000 */ mtc1 $at, $f24 ## $f24 = 2.50
/* 00574 809BFE14 460A4401 */ sub.s $f16, $f8, $f10
/* 00578 809BFE18 3C01C0E0 */ lui $at, 0xC0E0 ## $at = C0E00000
/* 0057C 809BFE1C 4481B000 */ mtc1 $at, $f22 ## $f22 = -7.00
/* 00580 809BFE20 3C0140E0 */ lui $at, 0x40E0 ## $at = 40E00000
/* 00584 809BFE24 4481A000 */ mtc1 $at, $f20 ## $f20 = 7.00
/* 00588 809BFE28 E7B00084 */ swc1 $f16, 0x0084($sp)
/* 0058C 809BFE2C 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00590 809BFE30 24130008 */ addiu $s3, $zero, 0x0008 ## $s3 = 00000008
/* 00594 809BFE34 27B20080 */ addiu $s2, $sp, 0x0080 ## $s2 = FFFFFFF0
/* 00598 809BFE38 32180001 */ andi $t8, $s0, 0x0001 ## $t8 = 00000000
.L809BFE3C:
/* 0059C 809BFE3C 53000004 */ beql $t8, $zero, .L809BFE50
/* 005A0 809BFE40 4600B006 */ mov.s $f0, $f22
/* 005A4 809BFE44 10000002 */ beq $zero, $zero, .L809BFE50
/* 005A8 809BFE48 4600A006 */ mov.s $f0, $f20
/* 005AC 809BFE4C 4600B006 */ mov.s $f0, $f22
.L809BFE50:
/* 005B0 809BFE50 C6320024 */ lwc1 $f18, 0x0024($s1) ## 00000024
/* 005B4 809BFE54 C7A60084 */ lwc1 $f6, 0x0084($sp)
/* 005B8 809BFE58 32190004 */ andi $t9, $s0, 0x0004 ## $t9 = 00000000
/* 005BC 809BFE5C 46120100 */ add.s $f4, $f0, $f18
/* 005C0 809BFE60 46183200 */ add.s $f8, $f6, $f24
/* 005C4 809BFE64 E7A40080 */ swc1 $f4, 0x0080($sp)
/* 005C8 809BFE68 13200003 */ beq $t9, $zero, .L809BFE78
/* 005CC 809BFE6C E7A80084 */ swc1 $f8, 0x0084($sp)
/* 005D0 809BFE70 10000002 */ beq $zero, $zero, .L809BFE7C
/* 005D4 809BFE74 4600A006 */ mov.s $f0, $f20
.L809BFE78:
/* 005D8 809BFE78 4600B006 */ mov.s $f0, $f22
.L809BFE7C:
/* 005DC 809BFE7C C62A002C */ lwc1 $f10, 0x002C($s1) ## 0000002C
/* 005E0 809BFE80 460A0400 */ add.s $f16, $f0, $f10
/* 005E4 809BFE84 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 005E8 809BFE88 E7B00088 */ swc1 $f16, 0x0088($sp)
/* 005EC 809BFE8C 461A0482 */ mul.s $f18, $f0, $f26
/* 005F0 809BFE90 24080096 */ addiu $t0, $zero, 0x0096 ## $t0 = 00000096
/* 005F4 809BFE94 24090096 */ addiu $t1, $zero, 0x0096 ## $t1 = 00000096
/* 005F8 809BFE98 240A00FA */ addiu $t2, $zero, 0x00FA ## $t2 = 000000FA
/* 005FC 809BFE9C 240B00EB */ addiu $t3, $zero, 0x00EB ## $t3 = 000000EB
/* 00600 809BFEA0 240C00F5 */ addiu $t4, $zero, 0x00F5 ## $t4 = 000000F5
/* 00604 809BFEA4 240D00FF */ addiu $t5, $zero, 0x00FF ## $t5 = 000000FF
/* 00608 809BFEA8 461C9100 */ add.s $f4, $f18, $f28
/* 0060C 809BFEAC AFAD0024 */ sw $t5, 0x0024($sp)
/* 00610 809BFEB0 AFAC0020 */ sw $t4, 0x0020($sp)
/* 00614 809BFEB4 AFAB001C */ sw $t3, 0x001C($sp)
/* 00618 809BFEB8 E7A40028 */ swc1 $f4, 0x0028($sp)
/* 0061C 809BFEBC AFAA0018 */ sw $t2, 0x0018($sp)
/* 00620 809BFEC0 AFA90014 */ sw $t1, 0x0014($sp)
/* 00624 809BFEC4 AFA80010 */ sw $t0, 0x0010($sp)
/* 00628 809BFEC8 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 0062C 809BFECC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00630 809BFED0 02403025 */ or $a2, $s2, $zero ## $a2 = FFFFFFF0
/* 00634 809BFED4 0C00A850 */ jal EffectSsEnIce_SpawnFlyingVec3f
/* 00638 809BFED8 24070096 */ addiu $a3, $zero, 0x0096 ## $a3 = 00000096
/* 0063C 809BFEDC 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00640 809BFEE0 5613FFD6 */ bnel $s0, $s3, .L809BFE3C
/* 00644 809BFEE4 32180001 */ andi $t8, $s0, 0x0001 ## $t8 = 00000001
/* 00648 809BFEE8 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 0064C 809BFEEC 240E000A */ addiu $t6, $zero, 0x000A ## $t6 = 0000000A
/* 00650 809BFEF0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00654 809BFEF4 E6260068 */ swc1 $f6, 0x0068($s1) ## 00000068
/* 00658 809BFEF8 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0065C 809BFEFC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00660 809BFF00 24060096 */ addiu $a2, $zero, 0x0096 ## $a2 = 00000096
/* 00664 809BFF04 0C00D09B */ jal func_8003426C
/* 00668 809BFF08 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 0066C 809BFF0C 922F01E4 */ lbu $t7, 0x01E4($s1) ## 000001E4
/* 00670 809BFF10 923901E5 */ lbu $t9, 0x01E5($s1) ## 000001E5
/* 00674 809BFF14 3C0A809C */ lui $t2, %hi(func_809C09E0) ## $t2 = 809C0000
/* 00678 809BFF18 2409012C */ addiu $t1, $zero, 0x012C ## $t1 = 0000012C
/* 0067C 809BFF1C 254A09E0 */ addiu $t2, $t2, %lo(func_809C09E0) ## $t2 = 809C09E0
/* 00680 809BFF20 31F8FFFE */ andi $t8, $t7, 0xFFFE ## $t8 = 00000000
/* 00684 809BFF24 3328FFFE */ andi $t0, $t9, 0xFFFE ## $t0 = 00000000
/* 00688 809BFF28 A23801E4 */ sb $t8, 0x01E4($s1) ## 000001E4
/* 0068C 809BFF2C A22801E5 */ sb $t0, 0x01E5($s1) ## 000001E5
/* 00690 809BFF30 A6290196 */ sh $t1, 0x0196($s1) ## 00000196
/* 00694 809BFF34 AE2A0190 */ sw $t2, 0x0190($s1) ## 00000190
/* 00698 809BFF38 8FBF0074 */ lw $ra, 0x0074($sp)
/* 0069C 809BFF3C 8FB40070 */ lw $s4, 0x0070($sp)
/* 006A0 809BFF40 8FB3006C */ lw $s3, 0x006C($sp)
/* 006A4 809BFF44 8FB20068 */ lw $s2, 0x0068($sp)
/* 006A8 809BFF48 8FB10064 */ lw $s1, 0x0064($sp)
/* 006AC 809BFF4C 8FB00060 */ lw $s0, 0x0060($sp)
/* 006B0 809BFF50 D7BC0058 */ ldc1 $f28, 0x0058($sp)
/* 006B4 809BFF54 D7BA0050 */ ldc1 $f26, 0x0050($sp)
/* 006B8 809BFF58 D7B80048 */ ldc1 $f24, 0x0048($sp)
/* 006BC 809BFF5C D7B60040 */ ldc1 $f22, 0x0040($sp)
/* 006C0 809BFF60 D7B40038 */ ldc1 $f20, 0x0038($sp)
/* 006C4 809BFF64 03E00008 */ jr $ra
/* 006C8 809BFF68 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View file

@ -1,82 +0,0 @@
glabel func_809BFF6C
/* 006CC 809BFF6C C4840164 */ lwc1 $f4, 0x0164($a0) ## 00000164
/* 006D0 809BFF70 8C830190 */ lw $v1, 0x0190($a0) ## 00000190
/* 006D4 809BFF74 3C0F809C */ lui $t7, %hi(func_809C02B8) ## $t7 = 809C0000
/* 006D8 809BFF78 4600218D */ trunc.w.s $f6, $f4
/* 006DC 809BFF7C 25EF02B8 */ addiu $t7, $t7, %lo(func_809C02B8) ## $t7 = 809C02B8
/* 006E0 809BFF80 3C09809C */ lui $t1, %hi(func_809C04B4) ## $t1 = 809C0000
/* 006E4 809BFF84 24180003 */ addiu $t8, $zero, 0x0003 ## $t8 = 00000003
/* 006E8 809BFF88 44023000 */ mfc1 $v0, $f6
/* 006EC 809BFF8C 252904B4 */ addiu $t1, $t1, %lo(func_809C04B4) ## $t1 = 809C04B4
/* 006F0 809BFF90 00021400 */ sll $v0, $v0, 16
/* 006F4 809BFF94 15E30010 */ bne $t7, $v1, .L809BFFD8
/* 006F8 809BFF98 00021403 */ sra $v0, $v0, 16
/* 006FC 809BFF9C 03021823 */ subu $v1, $t8, $v0
/* 00700 809BFFA0 00031C00 */ sll $v1, $v1, 16
/* 00704 809BFFA4 00031C03 */ sra $v1, $v1, 16
/* 00708 809BFFA8 04600003 */ bltz $v1, .L809BFFB8
/* 0070C 809BFFAC 00031023 */ subu $v0, $zero, $v1
/* 00710 809BFFB0 10000001 */ beq $zero, $zero, .L809BFFB8
/* 00714 809BFFB4 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
.L809BFFB8:
/* 00718 809BFFB8 24590005 */ addiu $t9, $v0, 0x0005 ## $t9 = 00000005
/* 0071C 809BFFBC 07210004 */ bgez $t9, .L809BFFD0
/* 00720 809BFFC0 33280007 */ andi $t0, $t9, 0x0007 ## $t0 = 00000005
/* 00724 809BFFC4 11000002 */ beq $t0, $zero, .L809BFFD0
/* 00728 809BFFC8 00000000 */ nop
/* 0072C 809BFFCC 2508FFF8 */ addiu $t0, $t0, 0xFFF8 ## $t0 = FFFFFFFD
.L809BFFD0:
/* 00730 809BFFD0 03E00008 */ jr $ra
/* 00734 809BFFD4 A0880194 */ sb $t0, 0x0194($a0) ## 00000194
.L809BFFD8:
/* 00738 809BFFD8 15230029 */ bne $t1, $v1, .L809C0080
/* 0073C 809BFFDC 00025043 */ sra $t2, $v0, 1
/* 00740 809BFFE0 2841000A */ slti $at, $v0, 0x000A
/* 00744 809BFFE4 1020000A */ beq $at, $zero, .L809C0010
/* 00748 809BFFE8 00021843 */ sra $v1, $v0, 1
/* 0074C 809BFFEC 00031C00 */ sll $v1, $v1, 16
/* 00750 809BFFF0 00031C03 */ sra $v1, $v1, 16
/* 00754 809BFFF4 28610004 */ slti $at, $v1, 0x0004
/* 00758 809BFFF8 14200003 */ bne $at, $zero, .L809C0008
/* 0075C 809BFFFC 240A0003 */ addiu $t2, $zero, 0x0003 ## $t2 = 00000003
/* 00760 809C0000 03E00008 */ jr $ra
/* 00764 809C0004 A08A0194 */ sb $t2, 0x0194($a0) ## 00000194
.L809C0008:
/* 00768 809C0008 03E00008 */ jr $ra
/* 0076C 809C000C A0830194 */ sb $v1, 0x0194($a0) ## 00000194
.L809C0010:
/* 00770 809C0010 28410013 */ slti $at, $v0, 0x0013
/* 00774 809C0014 1020000B */ beq $at, $zero, .L809C0044
/* 00778 809C0018 240B0011 */ addiu $t3, $zero, 0x0011 ## $t3 = 00000011
/* 0077C 809C001C 01621823 */ subu $v1, $t3, $v0
/* 00780 809C0020 00031C00 */ sll $v1, $v1, 16
/* 00784 809C0024 00031C03 */ sra $v1, $v1, 16
/* 00788 809C0028 04610003 */ bgez $v1, .L809C0038
/* 0078C 809C002C 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
/* 00790 809C0030 10000001 */ beq $zero, $zero, .L809C0038
/* 00794 809C0034 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809C0038:
/* 00798 809C0038 00026043 */ sra $t4, $v0, 1
/* 0079C 809C003C 03E00008 */ jr $ra
/* 007A0 809C0040 A08C0194 */ sb $t4, 0x0194($a0) ## 00000194
.L809C0044:
/* 007A4 809C0044 28410025 */ slti $at, $v0, 0x0025
/* 007A8 809C0048 10200009 */ beq $at, $zero, .L809C0070
/* 007AC 809C004C 24190028 */ addiu $t9, $zero, 0x0028 ## $t9 = 00000028
/* 007B0 809C0050 240D0024 */ addiu $t5, $zero, 0x0024 ## $t5 = 00000024
/* 007B4 809C0054 01A27023 */ subu $t6, $t5, $v0
/* 007B8 809C0058 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 007BC 809C005C 01C1001A */ div $zero, $t6, $at
/* 007C0 809C0060 00007812 */ mflo $t7
/* 007C4 809C0064 25F80002 */ addiu $t8, $t7, 0x0002 ## $t8 = 809C02BA
/* 007C8 809C0068 03E00008 */ jr $ra
/* 007CC 809C006C A0980194 */ sb $t8, 0x0194($a0) ## 00000194
.L809C0070:
/* 007D0 809C0070 03224023 */ subu $t0, $t9, $v0
/* 007D4 809C0074 00084843 */ sra $t1, $t0, 1
/* 007D8 809C0078 03E00008 */ jr $ra
/* 007DC 809C007C A0890194 */ sb $t1, 0x0194($a0) ## 00000194
.L809C0080:
/* 007E0 809C0080 A08A0194 */ sb $t2, 0x0194($a0) ## 00000194
/* 007E4 809C0084 03E00008 */ jr $ra
/* 007E8 809C0088 00000000 */ nop

View file

@ -1,70 +0,0 @@
.late_rodata
glabel D_809C1748
.word 0x3E490FDB
.text
glabel func_809C008C
/* 007EC 809C008C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007F0 809C0090 AFBF0014 */ sw $ra, 0x0014($sp)
/* 007F4 809C0094 8C8F0190 */ lw $t7, 0x0190($a0) ## 00000190
/* 007F8 809C0098 C4860094 */ lwc1 $f6, 0x0094($a0) ## 00000094
/* 007FC 809C009C C4840028 */ lwc1 $f4, 0x0028($a0) ## 00000028
/* 00800 809C00A0 3C0E809C */ lui $t6, %hi(func_809C0600) ## $t6 = 809C0000
/* 00804 809C00A4 25CE0600 */ addiu $t6, $t6, %lo(func_809C0600) ## $t6 = 809C0600
/* 00808 809C00A8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0080C 809C00AC 15CF0005 */ bne $t6, $t7, .L809C00C4
/* 00810 809C00B0 46062000 */ add.s $f0, $f4, $f6
/* 00814 809C00B4 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00818 809C00B8 44817000 */ mtc1 $at, $f14 ## $f14 = 100.00
/* 0081C 809C00BC 10000005 */ beq $zero, $zero, .L809C00D4
/* 00820 809C00C0 C4E20080 */ lwc1 $f2, 0x0080($a3) ## 00000080
.L809C00C4:
/* 00824 809C00C4 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00828 809C00C8 44817000 */ mtc1 $at, $f14 ## $f14 = 40.00
/* 0082C 809C00CC 00000000 */ nop
/* 00830 809C00D0 C4E20080 */ lwc1 $f2, 0x0080($a3) ## 00000080
.L809C00D4:
/* 00834 809C00D4 4600103C */ c.lt.s $f2, $f0
/* 00838 809C00D8 00000000 */ nop
/* 0083C 809C00DC 45020004 */ bc1fl .L809C00F0
/* 00840 809C00E0 46001306 */ mov.s $f12, $f2
/* 00844 809C00E4 10000002 */ beq $zero, $zero, .L809C00F0
/* 00848 809C00E8 46000306 */ mov.s $f12, $f0
/* 0084C 809C00EC 46001306 */ mov.s $f12, $f2
.L809C00F0:
/* 00850 809C00F0 460E6200 */ add.s $f8, $f12, $f14
/* 00854 809C00F4 24E4000C */ addiu $a0, $a3, 0x000C ## $a0 = 0000000C
/* 00858 809C00F8 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 0085C 809C00FC AFA70018 */ sw $a3, 0x0018($sp)
/* 00860 809C0100 44054000 */ mfc1 $a1, $f8
/* 00864 809C0104 0C01DE80 */ jal Math_StepToF
/* 00868 809C0108 00000000 */ nop
/* 0086C 809C010C 8FA70018 */ lw $a3, 0x0018($sp)
/* 00870 809C0110 3C01809C */ lui $at, %hi(D_809C1748) ## $at = 809C0000
/* 00874 809C0114 C4321748 */ lwc1 $f18, %lo(D_809C1748)($at)
/* 00878 809C0118 84F80196 */ lh $t8, 0x0196($a3) ## 00000196
/* 0087C 809C011C 44985000 */ mtc1 $t8, $f10 ## $f10 = 0.00
/* 00880 809C0120 00000000 */ nop
/* 00884 809C0124 46805420 */ cvt.s.w $f16, $f10
/* 00888 809C0128 46128302 */ mul.s $f12, $f16, $f18
/* 0088C 809C012C 0C0400A4 */ jal sinf
/* 00890 809C0130 00000000 */ nop
/* 00894 809C0134 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 00898 809C0138 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00
/* 0089C 809C013C 8FA70018 */ lw $a3, 0x0018($sp)
/* 008A0 809C0140 46040182 */ mul.s $f6, $f0, $f4
/* 008A4 809C0144 C4E8000C */ lwc1 $f8, 0x000C($a3) ## 0000000C
/* 008A8 809C0148 94F90088 */ lhu $t9, 0x0088($a3) ## 00000088
/* 008AC 809C014C 33280008 */ andi $t0, $t9, 0x0008 ## $t0 = 00000000
/* 008B0 809C0150 46083280 */ add.s $f10, $f6, $f8
/* 008B4 809C0154 11000003 */ beq $t0, $zero, .L809C0164
/* 008B8 809C0158 E4EA0028 */ swc1 $f10, 0x0028($a3) ## 00000028
/* 008BC 809C015C 84E9007E */ lh $t1, 0x007E($a3) ## 0000007E
/* 008C0 809C0160 A4E90032 */ sh $t1, 0x0032($a3) ## 00000032
.L809C0164:
/* 008C4 809C0164 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008C8 809C0168 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008CC 809C016C 03E00008 */ jr $ra
/* 008D0 809C0170 00000000 */ nop

View file

@ -1,72 +0,0 @@
.late_rodata
glabel D_809C174C
.word 0x44E38000
.text
glabel func_809C0174
/* 008D4 809C0174 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 008D8 809C0178 AFB00018 */ sw $s0, 0x0018($sp)
/* 008DC 809C017C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 008E0 809C0180 AFBF001C */ sw $ra, 0x001C($sp)
/* 008E4 809C0184 AFA50024 */ sw $a1, 0x0024($sp)
/* 008E8 809C0188 0C02927F */ jal SkelAnime_Update
/* 008EC 809C018C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 008F0 809C0190 86020196 */ lh $v0, 0x0196($s0) ## 00000196
/* 008F4 809C0194 3C01809C */ lui $at, %hi(D_809C174C) ## $at = 809C0000
/* 008F8 809C0198 10400003 */ beq $v0, $zero, .L809C01A8
/* 008FC 809C019C 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00900 809C01A0 A60E0196 */ sh $t6, 0x0196($s0) ## 00000196
/* 00904 809C01A4 86020196 */ lh $v0, 0x0196($s0) ## 00000196
.L809C01A8:
/* 00908 809C01A8 04410004 */ bgez $v0, .L809C01BC
/* 0090C 809C01AC 304F0003 */ andi $t7, $v0, 0x0003 ## $t7 = 00000000
/* 00910 809C01B0 11E00002 */ beq $t7, $zero, .L809C01BC
/* 00914 809C01B4 00000000 */ nop
/* 00918 809C01B8 25EFFFFC */ addiu $t7, $t7, 0xFFFC ## $t7 = FFFFFFFC
.L809C01BC:
/* 0091C 809C01BC 15E0000C */ bne $t7, $zero, .L809C01F0
/* 00920 809C01C0 00000000 */ nop
/* 00924 809C01C4 0C00CFC8 */ jal Rand_CenteredFloat
/* 00928 809C01C8 C42C174C */ lwc1 $f12, %lo(D_809C174C)($at)
/* 0092C 809C01CC 86180032 */ lh $t8, 0x0032($s0) ## 00000032
/* 00930 809C01D0 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 00934 809C01D4 00000000 */ nop
/* 00938 809C01D8 468021A0 */ cvt.s.w $f6, $f4
/* 0093C 809C01DC 46003200 */ add.s $f8, $f6, $f0
/* 00940 809C01E0 4600428D */ trunc.w.s $f10, $f8
/* 00944 809C01E4 44085000 */ mfc1 $t0, $f10
/* 00948 809C01E8 00000000 */ nop
/* 0094C 809C01EC A6080032 */ sh $t0, 0x0032($s0) ## 00000032
.L809C01F0:
/* 00950 809C01F0 0C270023 */ jal func_809C008C
/* 00954 809C01F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00958 809C01F8 86090196 */ lh $t1, 0x0196($s0) ## 00000196
/* 0095C 809C01FC 3C014320 */ lui $at, 0x4320 ## $at = 43200000
/* 00960 809C0200 44819000 */ mtc1 $at, $f18 ## $f18 = 160.00
/* 00964 809C0204 15200002 */ bne $t1, $zero, .L809C0210
/* 00968 809C0208 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
/* 0096C 809C020C A60A0196 */ sh $t2, 0x0196($s0) ## 00000196
.L809C0210:
/* 00970 809C0210 C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090
/* 00974 809C0214 4612803C */ c.lt.s $f16, $f18
/* 00978 809C0218 00000000 */ nop
/* 0097C 809C021C 4502000C */ bc1fl .L809C0250
/* 00980 809C0220 8FBF001C */ lw $ra, 0x001C($sp)
/* 00984 809C0224 C6000094 */ lwc1 $f0, 0x0094($s0) ## 00000094
/* 00988 809C0228 3C014234 */ lui $at, 0x4234 ## $at = 42340000
/* 0098C 809C022C 44812000 */ mtc1 $at, $f4 ## $f4 = 45.00
/* 00990 809C0230 46000005 */ abs.s $f0, $f0
/* 00994 809C0234 4604003C */ c.lt.s $f0, $f4
/* 00998 809C0238 00000000 */ nop
/* 0099C 809C023C 45020004 */ bc1fl .L809C0250
/* 009A0 809C0240 8FBF001C */ lw $ra, 0x001C($sp)
/* 009A4 809C0244 0C26FED0 */ jal func_809BFB40
/* 009A8 809C0248 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009AC 809C024C 8FBF001C */ lw $ra, 0x001C($sp)
.L809C0250:
/* 009B0 809C0250 8FB00018 */ lw $s0, 0x0018($sp)
/* 009B4 809C0254 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 009B8 809C0258 03E00008 */ jr $ra
/* 009BC 809C025C 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_809C0260
/* 009C0 809C0260 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 009C4 809C0264 AFA5001C */ sw $a1, 0x001C($sp)
/* 009C8 809C0268 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 009CC 809C026C AFBF0014 */ sw $ra, 0x0014($sp)
/* 009D0 809C0270 AFA40018 */ sw $a0, 0x0018($sp)
/* 009D4 809C0274 AFA50018 */ sw $a1, 0x0018($sp)
/* 009D8 809C0278 0C02927F */ jal SkelAnime_Update
/* 009DC 809C027C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 009E0 809C0280 8FA50018 */ lw $a1, 0x0018($sp)
/* 009E4 809C0284 84A20196 */ lh $v0, 0x0196($a1) ## 00000196
/* 009E8 809C0288 10400003 */ beq $v0, $zero, .L809C0298
/* 009EC 809C028C 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 009F0 809C0290 A4AE0196 */ sh $t6, 0x0196($a1) ## 00000196
/* 009F4 809C0294 84A20196 */ lh $v0, 0x0196($a1) ## 00000196
.L809C0298:
/* 009F8 809C0298 54400004 */ bnel $v0, $zero, .L809C02AC
/* 009FC 809C029C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A00 809C02A0 0C26FE6F */ jal func_809BF9BC
/* 00A04 809C02A4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00A08 809C02A8 8FBF0014 */ lw $ra, 0x0014($sp)
.L809C02AC:
/* 00A0C 809C02AC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A10 809C02B0 03E00008 */ jr $ra
/* 00A14 809C02B4 00000000 */ nop

View file

@ -1,140 +0,0 @@
glabel func_809C02B8
/* 00A18 809C02B8 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 00A1C 809C02BC F7B80038 */ sdc1 $f24, 0x0038($sp)
/* 00A20 809C02C0 3C014020 */ lui $at, 0x4020 ## $at = 40200000
/* 00A24 809C02C4 4481C000 */ mtc1 $at, $f24 ## $f24 = 2.50
/* 00A28 809C02C8 F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 00A2C 809C02CC 3C014640 */ lui $at, 0x4640 ## $at = 46400000
/* 00A30 809C02D0 4481B000 */ mtc1 $at, $f22 ## $f22 = 12288.00
/* 00A34 809C02D4 AFB7005C */ sw $s7, 0x005C($sp)
/* 00A38 809C02D8 AFB60058 */ sw $s6, 0x0058($sp)
/* 00A3C 809C02DC F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 00A40 809C02E0 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00A44 809C02E4 AFBE0060 */ sw $s8, 0x0060($sp)
/* 00A48 809C02E8 AFB50054 */ sw $s5, 0x0054($sp)
/* 00A4C 809C02EC AFB40050 */ sw $s4, 0x0050($sp)
/* 00A50 809C02F0 AFB3004C */ sw $s3, 0x004C($sp)
/* 00A54 809C02F4 AFB00040 */ sw $s0, 0x0040($sp)
/* 00A58 809C02F8 3C16809C */ lui $s6, %hi(D_809C16A0) ## $s6 = 809C0000
/* 00A5C 809C02FC 3C17809C */ lui $s7, %hi(D_809C16A4) ## $s7 = 809C0000
/* 00A60 809C0300 4481A000 */ mtc1 $at, $f20 ## $f20 = 5.00
/* 00A64 809C0304 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
/* 00A68 809C0308 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 00A6C 809C030C AFBF0064 */ sw $ra, 0x0064($sp)
/* 00A70 809C0310 AFB20048 */ sw $s2, 0x0048($sp)
/* 00A74 809C0314 AFB10044 */ sw $s1, 0x0044($sp)
/* 00A78 809C0318 26F716A4 */ addiu $s7, $s7, %lo(D_809C16A4) ## $s7 = 809C16A4
/* 00A7C 809C031C 26D616A0 */ addiu $s6, $s6, %lo(D_809C16A0) ## $s6 = 809C16A0
/* 00A80 809C0320 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00A84 809C0324 27B50078 */ addiu $s5, $sp, 0x0078 ## $s5 = FFFFFFF0
/* 00A88 809C0328 241E0004 */ addiu $s8, $zero, 0x0004 ## $s8 = 00000004
/* 00A8C 809C032C 866E0196 */ lh $t6, 0x0196($s3) ## 00000196
.L809C0330:
/* 00A90 809C0330 00107840 */ sll $t7, $s0, 1
/* 00A94 809C0334 00109380 */ sll $s2, $s0, 14
/* 00A98 809C0338 01CFC021 */ addu $t8, $t6, $t7
/* 00A9C 809C033C 07010004 */ bgez $t8, .L809C0350
/* 00AA0 809C0340 33190003 */ andi $t9, $t8, 0x0003 ## $t9 = 00000000
/* 00AA4 809C0344 13200002 */ beq $t9, $zero, .L809C0350
/* 00AA8 809C0348 00000000 */ nop
/* 00AAC 809C034C 2739FFFC */ addiu $t9, $t9, 0xFFFC ## $t9 = FFFFFFFC
.L809C0350:
/* 00AB0 809C0350 57200027 */ bnel $t9, $zero, .L809C03F0
/* 00AB4 809C0354 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00AB8 809C0358 0C00CFC8 */ jal Rand_CenteredFloat
/* 00ABC 809C035C 4600B306 */ mov.s $f12, $f22
/* 00AC0 809C0360 4600010D */ trunc.w.s $f4, $f0
/* 00AC4 809C0364 4600A306 */ mov.s $f12, $f20
/* 00AC8 809C0368 440B2000 */ mfc1 $t3, $f4
/* 00ACC 809C036C 00000000 */ nop
/* 00AD0 809C0370 01728821 */ addu $s1, $t3, $s2
/* 00AD4 809C0374 26312000 */ addiu $s1, $s1, 0x2000 ## $s1 = 00002000
/* 00AD8 809C0378 00118C00 */ sll $s1, $s1, 16
/* 00ADC 809C037C 0C00CFC8 */ jal Rand_CenteredFloat
/* 00AE0 809C0380 00118C03 */ sra $s1, $s1, 16
/* 00AE4 809C0384 C6660024 */ lwc1 $f6, 0x0024($s3) ## 00000024
/* 00AE8 809C0388 46060200 */ add.s $f8, $f0, $f6
/* 00AEC 809C038C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00AF0 809C0390 E7A80078 */ swc1 $f8, 0x0078($sp)
/* 00AF4 809C0394 46140282 */ mul.s $f10, $f0, $f20
/* 00AF8 809C0398 C6700028 */ lwc1 $f16, 0x0028($s3) ## 00000028
/* 00AFC 809C039C 4600A306 */ mov.s $f12, $f20
/* 00B00 809C03A0 46105480 */ add.s $f18, $f10, $f16
/* 00B04 809C03A4 46189100 */ add.s $f4, $f18, $f24
/* 00B08 809C03A8 0C00CFC8 */ jal Rand_CenteredFloat
/* 00B0C 809C03AC E7A4007C */ swc1 $f4, 0x007C($sp)
/* 00B10 809C03B0 C666002C */ lwc1 $f6, 0x002C($s3) ## 0000002C
/* 00B14 809C03B4 240C000F */ addiu $t4, $zero, 0x000F ## $t4 = 0000000F
/* 00B18 809C03B8 240D0006 */ addiu $t5, $zero, 0x0006 ## $t5 = 00000006
/* 00B1C 809C03BC 46060200 */ add.s $f8, $f0, $f6
/* 00B20 809C03C0 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00B24 809C03C4 AFAE001C */ sw $t6, 0x001C($sp)
/* 00B28 809C03C8 AFAD0018 */ sw $t5, 0x0018($sp)
/* 00B2C 809C03CC E7A80080 */ swc1 $f8, 0x0080($sp)
/* 00B30 809C03D0 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00B34 809C03D4 AFB10014 */ sw $s1, 0x0014($sp)
/* 00B38 809C03D8 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 00B3C 809C03DC 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFF0
/* 00B40 809C03E0 02C03025 */ or $a2, $s6, $zero ## $a2 = 809C16A0
/* 00B44 809C03E4 0C00A568 */ jal EffectSsLightning_Spawn
/* 00B48 809C03E8 02E03825 */ or $a3, $s7, $zero ## $a3 = 809C16A4
/* 00B4C 809C03EC 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002
.L809C03F0:
/* 00B50 809C03F0 561EFFCF */ bnel $s0, $s8, .L809C0330
/* 00B54 809C03F4 866E0196 */ lh $t6, 0x0196($s3) ## 00000196
/* 00B58 809C03F8 2670014C */ addiu $s0, $s3, 0x014C ## $s0 = 0000014C
/* 00B5C 809C03FC 0C02927F */ jal SkelAnime_Update
/* 00B60 809C0400 02002025 */ or $a0, $s0, $zero ## $a0 = 0000014C
/* 00B64 809C0404 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00B68 809C0408 0C00BE5D */ jal func_8002F974
/* 00B6C 809C040C 2405309A */ addiu $a1, $zero, 0x309A ## $a1 = 0000309A
/* 00B70 809C0410 86620196 */ lh $v0, 0x0196($s3) ## 00000196
/* 00B74 809C0414 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00B78 809C0418 44818000 */ mtc1 $at, $f16 ## $f16 = -1.00
/* 00B7C 809C041C 10400003 */ beq $v0, $zero, .L809C042C
/* 00B80 809C0420 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
/* 00B84 809C0424 A66F0196 */ sh $t7, 0x0196($s3) ## 00000196
/* 00B88 809C0428 86620196 */ lh $v0, 0x0196($s3) ## 00000196
.L809C042C:
/* 00B8C 809C042C C66A0060 */ lwc1 $f10, 0x0060($s3) ## 00000060
/* 00B90 809C0430 02002025 */ or $a0, $s0, $zero ## $a0 = 0000014C
/* 00B94 809C0434 46105482 */ mul.s $f18, $f10, $f16
/* 00B98 809C0438 1440000F */ bne $v0, $zero, .L809C0478
/* 00B9C 809C043C E6720060 */ swc1 $f18, 0x0060($s3) ## 00000060
/* 00BA0 809C0440 0C0295B2 */ jal Animation_OnFrame
/* 00BA4 809C0444 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00BA8 809C0448 5040000C */ beql $v0, $zero, .L809C047C
/* 00BAC 809C044C 8FBF0064 */ lw $ra, 0x0064($sp)
/* 00BB0 809C0450 8678001C */ lh $t8, 0x001C($s3) ## 0000001C
/* 00BB4 809C0454 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00BB8 809C0458 17010005 */ bne $t8, $at, .L809C0470
/* 00BBC 809C045C 00000000 */ nop
/* 00BC0 809C0460 0C26FF3A */ jal func_809BFCE8
/* 00BC4 809C0464 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00BC8 809C0468 10000004 */ beq $zero, $zero, .L809C047C
/* 00BCC 809C046C 8FBF0064 */ lw $ra, 0x0064($sp)
.L809C0470:
/* 00BD0 809C0470 0C26FEBA */ jal func_809BFAE8
/* 00BD4 809C0474 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
.L809C0478:
/* 00BD8 809C0478 8FBF0064 */ lw $ra, 0x0064($sp)
.L809C047C:
/* 00BDC 809C047C D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 00BE0 809C0480 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 00BE4 809C0484 D7B80038 */ ldc1 $f24, 0x0038($sp)
/* 00BE8 809C0488 8FB00040 */ lw $s0, 0x0040($sp)
/* 00BEC 809C048C 8FB10044 */ lw $s1, 0x0044($sp)
/* 00BF0 809C0490 8FB20048 */ lw $s2, 0x0048($sp)
/* 00BF4 809C0494 8FB3004C */ lw $s3, 0x004C($sp)
/* 00BF8 809C0498 8FB40050 */ lw $s4, 0x0050($sp)
/* 00BFC 809C049C 8FB50054 */ lw $s5, 0x0054($sp)
/* 00C00 809C04A0 8FB60058 */ lw $s6, 0x0058($sp)
/* 00C04 809C04A4 8FB7005C */ lw $s7, 0x005C($sp)
/* 00C08 809C04A8 8FBE0060 */ lw $s8, 0x0060($sp)
/* 00C0C 809C04AC 03E00008 */ jr $ra
/* 00C10 809C04B0 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000

View file

@ -1,54 +0,0 @@
glabel func_809C04B4
/* 00C14 809C04B4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00C18 809C04B8 AFB00018 */ sw $s0, 0x0018($sp)
/* 00C1C 809C04BC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00C20 809C04C0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00C24 809C04C4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00C28 809C04C8 AFA50034 */ sw $a1, 0x0034($sp)
/* 00C2C 809C04CC 0C02927F */ jal SkelAnime_Update
/* 00C30 809C04D0 AFA40024 */ sw $a0, 0x0024($sp)
/* 00C34 809C04D4 AFA2002C */ sw $v0, 0x002C($sp)
/* 00C38 809C04D8 C6040164 */ lwc1 $f4, 0x0164($s0) ## 00000164
/* 00C3C 809C04DC 8FA40024 */ lw $a0, 0x0024($sp)
/* 00C40 809C04E0 3C054110 */ lui $a1, 0x4110 ## $a1 = 41100000
/* 00C44 809C04E4 0C0295B2 */ jal Animation_OnFrame
/* 00C48 809C04E8 E7A40028 */ swc1 $f4, 0x0028($sp)
/* 00C4C 809C04EC 10400003 */ beq $v0, $zero, .L809C04FC
/* 00C50 809C04F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C54 809C04F4 0C00BE0A */ jal Audio_PlayActorSound2
/* 00C58 809C04F8 24053899 */ addiu $a1, $zero, 0x3899 ## $a1 = 00003899
.L809C04FC:
/* 00C5C 809C04FC 3C014110 */ lui $at, 0x4110 ## $at = 41100000
/* 00C60 809C0500 44813000 */ mtc1 $at, $f6 ## $f6 = 9.00
/* 00C64 809C0504 C7A80028 */ lwc1 $f8, 0x0028($sp)
/* 00C68 809C0508 4608303C */ c.lt.s $f6, $f8
/* 00C6C 809C050C 00000000 */ nop
/* 00C70 809C0510 4502000E */ bc1fl .L809C054C
/* 00C74 809C0514 8FAE002C */ lw $t6, 0x002C($sp)
/* 00C78 809C0518 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 00C7C 809C051C C6100094 */ lwc1 $f16, 0x0094($s0) ## 00000094
/* 00C80 809C0520 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00C84 809C0524 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
/* 00C88 809C0528 46105480 */ add.s $f18, $f10, $f16
/* 00C8C 809C052C 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 00C90 809C0530 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00C94 809C0534 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
/* 00C98 809C0538 46049180 */ add.s $f6, $f18, $f4
/* 00C9C 809C053C 44053000 */ mfc1 $a1, $f6
/* 00CA0 809C0540 0C01E107 */ jal Math_ApproachF
/* 00CA4 809C0544 00000000 */ nop
/* 00CA8 809C0548 8FAE002C */ lw $t6, 0x002C($sp)
.L809C054C:
/* 00CAC 809C054C 51C00004 */ beql $t6, $zero, .L809C0560
/* 00CB0 809C0550 8FBF001C */ lw $ra, 0x001C($sp)
/* 00CB4 809C0554 0C26FED7 */ jal func_809BFB5C
/* 00CB8 809C0558 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CBC 809C055C 8FBF001C */ lw $ra, 0x001C($sp)
.L809C0560:
/* 00CC0 809C0560 8FB00018 */ lw $s0, 0x0018($sp)
/* 00CC4 809C0564 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00CC8 809C0568 03E00008 */ jr $ra
/* 00CCC 809C056C 00000000 */ nop

View file

@ -1,42 +0,0 @@
glabel func_809C0570
/* 00CD0 809C0570 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00CD4 809C0574 AFB00018 */ sw $s0, 0x0018($sp)
/* 00CD8 809C0578 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00CDC 809C057C AFBF001C */ sw $ra, 0x001C($sp)
/* 00CE0 809C0580 AFA50024 */ sw $a1, 0x0024($sp)
/* 00CE4 809C0584 0C02927F */ jal SkelAnime_Update
/* 00CE8 809C0588 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00CEC 809C058C 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00CF0 809C0590 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 00CF4 809C0594 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002
/* 00CF8 809C0598 0C01E1EF */ jal Math_ApproachS
/* 00CFC 809C059C 2407071C */ addiu $a3, $zero, 0x071C ## $a3 = 0000071C
/* 00D00 809C05A0 86020196 */ lh $v0, 0x0196($s0) ## 00000196
/* 00D04 809C05A4 10400002 */ beq $v0, $zero, .L809C05B0
/* 00D08 809C05A8 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00D0C 809C05AC A60E0196 */ sh $t6, 0x0196($s0) ## 00000196
.L809C05B0:
/* 00D10 809C05B0 0C270023 */ jal func_809C008C
/* 00D14 809C05B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D18 809C05B8 860F0196 */ lh $t7, 0x0196($s0) ## 00000196
/* 00D1C 809C05BC 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00D20 809C05C0 44812000 */ mtc1 $at, $f4 ## $f4 = 200.00
/* 00D24 809C05C4 15E00002 */ bne $t7, $zero, .L809C05D0
/* 00D28 809C05C8 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 00D2C 809C05CC A6180196 */ sh $t8, 0x0196($s0) ## 00000196
.L809C05D0:
/* 00D30 809C05D0 C6060090 */ lwc1 $f6, 0x0090($s0) ## 00000090
/* 00D34 809C05D4 4606203C */ c.lt.s $f4, $f6
/* 00D38 809C05D8 00000000 */ nop
/* 00D3C 809C05DC 45020004 */ bc1fl .L809C05F0
/* 00D40 809C05E0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00D44 809C05E4 0C26FE6F */ jal func_809BF9BC
/* 00D48 809C05E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D4C 809C05EC 8FBF001C */ lw $ra, 0x001C($sp)
.L809C05F0:
/* 00D50 809C05F0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00D54 809C05F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00D58 809C05F8 03E00008 */ jr $ra
/* 00D5C 809C05FC 00000000 */ nop

View file

@ -1,36 +0,0 @@
glabel func_809C0600
/* 00D60 809C0600 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00D64 809C0604 AFB00018 */ sw $s0, 0x0018($sp)
/* 00D68 809C0608 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D6C 809C060C AFBF001C */ sw $ra, 0x001C($sp)
/* 00D70 809C0610 AFA50024 */ sw $a1, 0x0024($sp)
/* 00D74 809C0614 0C02927F */ jal SkelAnime_Update
/* 00D78 809C0618 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00D7C 809C061C 86020196 */ lh $v0, 0x0196($s0) ## 00000196
/* 00D80 809C0620 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00D84 809C0624 10400002 */ beq $v0, $zero, .L809C0630
/* 00D88 809C0628 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00D8C 809C062C A60E0196 */ sh $t6, 0x0196($s0) ## 00000196
.L809C0630:
/* 00D90 809C0630 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 00D94 809C0634 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00D98 809C0638 2406038E */ addiu $a2, $zero, 0x038E ## $a2 = 0000038E
/* 00D9C 809C063C 00A12821 */ addu $a1, $a1, $at
/* 00DA0 809C0640 00052C00 */ sll $a1, $a1, 16
/* 00DA4 809C0644 0C01DE2B */ jal Math_ScaledStepToS
/* 00DA8 809C0648 00052C03 */ sra $a1, $a1, 16
/* 00DAC 809C064C 0C270023 */ jal func_809C008C
/* 00DB0 809C0650 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00DB4 809C0654 860F0196 */ lh $t7, 0x0196($s0) ## 00000196
/* 00DB8 809C0658 55E00004 */ bnel $t7, $zero, .L809C066C
/* 00DBC 809C065C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00DC0 809C0660 0C26FE6F */ jal func_809BF9BC
/* 00DC4 809C0664 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00DC8 809C0668 8FBF001C */ lw $ra, 0x001C($sp)
.L809C066C:
/* 00DCC 809C066C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00DD0 809C0670 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00DD4 809C0674 03E00008 */ jr $ra
/* 00DD8 809C0678 00000000 */ nop

View file

@ -1,29 +0,0 @@
glabel func_809C067C
/* 00DDC 809C067C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00DE0 809C0680 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00DE4 809C0684 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00DE8 809C0688 AFA5001C */ sw $a1, 0x001C($sp)
/* 00DEC 809C068C AFA70018 */ sw $a3, 0x0018($sp)
/* 00DF0 809C0690 0C02927F */ jal SkelAnime_Update
/* 00DF4 809C0694 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00DF8 809C0698 8FA70018 */ lw $a3, 0x0018($sp)
/* 00DFC 809C069C 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
/* 00E00 809C06A0 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
/* 00E04 809C06A4 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00E08 809C06A8 0C01DE80 */ jal Math_StepToF
/* 00E0C 809C06AC 24E40068 */ addiu $a0, $a3, 0x0068 ## $a0 = 00000068
/* 00E10 809C06B0 10400007 */ beq $v0, $zero, .L809C06D0
/* 00E14 809C06B4 8FA70018 */ lw $a3, 0x0018($sp)
/* 00E18 809C06B8 84EE0032 */ lh $t6, 0x0032($a3) ## 00000032
/* 00E1C 809C06BC 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00E20 809C06C0 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00E24 809C06C4 01C17821 */ addu $t7, $t6, $at
/* 00E28 809C06C8 0C26FE6F */ jal func_809BF9BC
/* 00E2C 809C06CC A4EF0032 */ sh $t7, 0x0032($a3) ## 00000032
.L809C06D0:
/* 00E30 809C06D0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00E34 809C06D4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00E38 809C06D8 03E00008 */ jr $ra
/* 00E3C 809C06DC 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel func_809C06E0
/* 00E40 809C06E0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00E44 809C06E4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00E48 809C06E8 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 00E4C 809C06EC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00E50 809C06F0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00E54 809C06F4 AFA50018 */ sw $a1, 0x0018($sp)
/* 00E58 809C06F8 0C02927F */ jal SkelAnime_Update
/* 00E5C 809C06FC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00E60 809C0700 8FA50018 */ lw $a1, 0x0018($sp)
/* 00E64 809C0704 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 00E68 809C0708 8CAE0004 */ lw $t6, 0x0004($a1) ## 00000004
/* 00E6C 809C070C 31CF8000 */ andi $t7, $t6, 0x8000 ## $t7 = 00000000
/* 00E70 809C0710 51E00004 */ beql $t7, $zero, .L809C0724
/* 00E74 809C0714 84A20196 */ lh $v0, 0x0196($a1) ## 00000196
/* 00E78 809C0718 1000000A */ beq $zero, $zero, .L809C0744
/* 00E7C 809C071C A0B80114 */ sb $t8, 0x0114($a1) ## 00000114
/* 00E80 809C0720 84A20196 */ lh $v0, 0x0196($a1) ## 00000196
.L809C0724:
/* 00E84 809C0724 10400003 */ beq $v0, $zero, .L809C0734
/* 00E88 809C0728 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 00E8C 809C072C A4B90196 */ sh $t9, 0x0196($a1) ## 00000196
/* 00E90 809C0730 84A20196 */ lh $v0, 0x0196($a1) ## 00000196
.L809C0734:
/* 00E94 809C0734 54400004 */ bnel $v0, $zero, .L809C0748
/* 00E98 809C0738 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00E9C 809C073C 0C26FF3A */ jal func_809BFCE8
/* 00EA0 809C0740 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
.L809C0744:
/* 00EA4 809C0744 8FBF0014 */ lw $ra, 0x0014($sp)
.L809C0748:
/* 00EA8 809C0748 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00EAC 809C074C 03E00008 */ jr $ra
/* 00EB0 809C0750 00000000 */ nop

View file

@ -1,163 +0,0 @@
.late_rodata
glabel D_809C1750
.float 0.7
.text
glabel func_809C0754
/* 00EB4 809C0754 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 00EB8 809C0758 AFBF006C */ sw $ra, 0x006C($sp)
/* 00EBC 809C075C AFB70068 */ sw $s7, 0x0068($sp)
/* 00EC0 809C0760 AFB60064 */ sw $s6, 0x0064($sp)
/* 00EC4 809C0764 AFB50060 */ sw $s5, 0x0060($sp)
/* 00EC8 809C0768 AFB4005C */ sw $s4, 0x005C($sp)
/* 00ECC 809C076C AFB30058 */ sw $s3, 0x0058($sp)
/* 00ED0 809C0770 AFB20054 */ sw $s2, 0x0054($sp)
/* 00ED4 809C0774 AFB10050 */ sw $s1, 0x0050($sp)
/* 00ED8 809C0778 AFB0004C */ sw $s0, 0x004C($sp)
/* 00EDC 809C077C F7BC0040 */ sdc1 $f28, 0x0040($sp)
/* 00EE0 809C0780 F7BA0038 */ sdc1 $f26, 0x0038($sp)
/* 00EE4 809C0784 F7B80030 */ sdc1 $f24, 0x0030($sp)
/* 00EE8 809C0788 F7B60028 */ sdc1 $f22, 0x0028($sp)
/* 00EEC 809C078C F7B40020 */ sdc1 $f20, 0x0020($sp)
/* 00EF0 809C0790 8C8E0134 */ lw $t6, 0x0134($a0) ## 00000134
/* 00EF4 809C0794 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000
/* 00EF8 809C0798 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
/* 00EFC 809C079C 51C0000C */ beql $t6, $zero, .L809C07D0
/* 00F00 809C07A0 86420196 */ lh $v0, 0x0196($s2) ## 00000196
/* 00F04 809C07A4 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00F08 809C07A8 26460024 */ addiu $a2, $s2, 0x0024 ## $a2 = 00000024
/* 00F0C 809C07AC 24070050 */ addiu $a3, $zero, 0x0050 ## $a3 = 00000050
/* 00F10 809C07B0 31F88000 */ andi $t8, $t7, 0x8000 ## $t8 = 00000000
/* 00F14 809C07B4 57000063 */ bnel $t8, $zero, .L809C0944
/* 00F18 809C07B8 8FBF006C */ lw $ra, 0x006C($sp)
/* 00F1C 809C07BC AC800134 */ sw $zero, 0x0134($a0) ## 00000134
/* 00F20 809C07C0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00F24 809C07C4 0C007E50 */ jal Item_DropCollectibleRandom
/* 00F28 809C07C8 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000
/* 00F2C 809C07CC 86420196 */ lh $v0, 0x0196($s2) ## 00000196
.L809C07D0:
/* 00F30 809C07D0 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 00F34 809C07D4 3C01809C */ lui $at, %hi(D_809C1750) ## $at = 809C0000
/* 00F38 809C07D8 10400003 */ beq $v0, $zero, .L809C07E8
/* 00F3C 809C07DC 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 00F40 809C07E0 A6590196 */ sh $t9, 0x0196($s2) ## 00000196
/* 00F44 809C07E4 86420196 */ lh $v0, 0x0196($s2) ## 00000196
.L809C07E8:
/* 00F48 809C07E8 1040004B */ beq $v0, $zero, .L809C0918
/* 00F4C 809C07EC 24170002 */ addiu $s7, $zero, 0x0002 ## $s7 = 00000002
/* 00F50 809C07F0 C43C1750 */ lwc1 $f28, %lo(D_809C1750)($at)
/* 00F54 809C07F4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00F58 809C07F8 4481D000 */ mtc1 $at, $f26 ## $f26 = 1.00
/* 00F5C 809C07FC 3C014020 */ lui $at, 0x4020 ## $at = 40200000
/* 00F60 809C0800 4481C000 */ mtc1 $at, $f24 ## $f24 = 2.50
/* 00F64 809C0804 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00F68 809C0808 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 00F6C 809C080C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00F70 809C0810 3C15809C */ lui $s5, %hi(D_809C16B4) ## $s5 = 809C0000
/* 00F74 809C0814 3C14809C */ lui $s4, %hi(D_809C16A8) ## $s4 = 809C0000
/* 00F78 809C0818 4481A000 */ mtc1 $at, $f20 ## $f20 = 5.00
/* 00F7C 809C081C 269416A8 */ addiu $s4, $s4, %lo(D_809C16A8) ## $s4 = 809C16A8
/* 00F80 809C0820 26B516B4 */ addiu $s5, $s5, %lo(D_809C16B4) ## $s5 = 809C16B4
/* 00F84 809C0824 27B30078 */ addiu $s3, $sp, 0x0078 ## $s3 = FFFFFFF0
.L809C0828:
/* 00F88 809C0828 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00F8C 809C082C 00000000 */ nop
/* 00F90 809C0830 46160102 */ mul.s $f4, $f0, $f22
/* 00F94 809C0834 C6460024 */ lwc1 $f6, 0x0024($s2) ## 00000024
/* 00F98 809C0838 46062200 */ add.s $f8, $f4, $f6
/* 00F9C 809C083C 46144281 */ sub.s $f10, $f8, $f20
/* 00FA0 809C0840 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00FA4 809C0844 E7AA0078 */ swc1 $f10, 0x0078($sp)
/* 00FA8 809C0848 46140402 */ mul.s $f16, $f0, $f20
/* 00FAC 809C084C C6520028 */ lwc1 $f18, 0x0028($s2) ## 00000028
/* 00FB0 809C0850 46128100 */ add.s $f4, $f16, $f18
/* 00FB4 809C0854 46182181 */ sub.s $f6, $f4, $f24
/* 00FB8 809C0858 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00FBC 809C085C E7A6007C */ swc1 $f6, 0x007C($sp)
/* 00FC0 809C0860 46160202 */ mul.s $f8, $f0, $f22
/* 00FC4 809C0864 C64A002C */ lwc1 $f10, 0x002C($s2) ## 0000002C
/* 00FC8 809C0868 460A4400 */ add.s $f16, $f8, $f10
/* 00FCC 809C086C 46148481 */ sub.s $f18, $f16, $f20
/* 00FD0 809C0870 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00FD4 809C0874 E7B20080 */ swc1 $f18, 0x0080($sp)
/* 00FD8 809C0878 461A0100 */ add.s $f4, $f0, $f26
/* 00FDC 809C087C 3C01809C */ lui $at, %hi(D_809C16AC) ## $at = 809C0000
/* 00FE0 809C0880 24040028 */ addiu $a0, $zero, 0x0028 ## $a0 = 00000028
/* 00FE4 809C0884 24050028 */ addiu $a1, $zero, 0x0028 ## $a1 = 00000028
/* 00FE8 809C0888 0C01DF64 */ jal Rand_S16Offset
/* 00FEC 809C088C E42416AC */ swc1 $f4, %lo(D_809C16AC)($at)
/* 00FF0 809C0890 00028400 */ sll $s0, $v0, 16
/* 00FF4 809C0894 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00FF8 809C0898 00108403 */ sra $s0, $s0, 16
/* 00FFC 809C089C 461C003C */ c.lt.s $f0, $f28
/* 01000 809C08A0 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
/* 01004 809C08A4 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFF0
/* 01008 809C08A8 02803025 */ or $a2, $s4, $zero ## $a2 = 809C16A8
/* 0100C 809C08AC 4500000E */ bc1f .L809C08E8
/* 01010 809C08B0 02A03825 */ or $a3, $s5, $zero ## $a3 = 809C16B4
/* 01014 809C08B4 24080019 */ addiu $t0, $zero, 0x0019 ## $t0 = 00000019
/* 01018 809C08B8 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 0101C 809C08BC AFA9001C */ sw $t1, 0x001C($sp)
/* 01020 809C08C0 AFA80014 */ sw $t0, 0x0014($sp)
/* 01024 809C08C4 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
/* 01028 809C08C8 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFF0
/* 0102C 809C08CC 02803025 */ or $a2, $s4, $zero ## $a2 = 809C16A8
/* 01030 809C08D0 02A03825 */ or $a3, $s5, $zero ## $a3 = 809C16B4
/* 01034 809C08D4 AFB00010 */ sw $s0, 0x0010($sp)
/* 01038 809C08D8 0C00A586 */ jal EffectSsDtBubble_SpawnColorProfile
/* 0103C 809C08DC AFB70018 */ sw $s7, 0x0018($sp)
/* 01040 809C08E0 10000009 */ beq $zero, $zero, .L809C0908
/* 01044 809C08E4 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
.L809C08E8:
/* 01048 809C08E8 240A0019 */ addiu $t2, $zero, 0x0019 ## $t2 = 00000019
/* 0104C 809C08EC 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 01050 809C08F0 AFAB001C */ sw $t3, 0x001C($sp)
/* 01054 809C08F4 AFAA0014 */ sw $t2, 0x0014($sp)
/* 01058 809C08F8 AFB00010 */ sw $s0, 0x0010($sp)
/* 0105C 809C08FC 0C00A586 */ jal EffectSsDtBubble_SpawnColorProfile
/* 01060 809C0900 AFA00018 */ sw $zero, 0x0018($sp)
/* 01064 809C0904 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000002
.L809C0908:
/* 01068 809C0908 1637FFC7 */ bne $s1, $s7, .L809C0828
/* 0106C 809C090C 00000000 */ nop
/* 01070 809C0910 10000004 */ beq $zero, $zero, .L809C0924
/* 01074 809C0914 864C0196 */ lh $t4, 0x0196($s2) ## 00000196
.L809C0918:
/* 01078 809C0918 0C00B55C */ jal Actor_Kill
/* 0107C 809C091C 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 01080 809C0920 864C0196 */ lh $t4, 0x0196($s2) ## 00000196
.L809C0924:
/* 01084 809C0924 2401000E */ addiu $at, $zero, 0x000E ## $at = 0000000E
/* 01088 809C0928 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
/* 0108C 809C092C 15810004 */ bne $t4, $at, .L809C0940
/* 01090 809C0930 26450024 */ addiu $a1, $s2, 0x0024 ## $a1 = 00000024
/* 01094 809C0934 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 01098 809C0938 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 0109C 809C093C 2407389C */ addiu $a3, $zero, 0x389C ## $a3 = 0000389C
.L809C0940:
/* 010A0 809C0940 8FBF006C */ lw $ra, 0x006C($sp)
.L809C0944:
/* 010A4 809C0944 D7B40020 */ ldc1 $f20, 0x0020($sp)
/* 010A8 809C0948 D7B60028 */ ldc1 $f22, 0x0028($sp)
/* 010AC 809C094C D7B80030 */ ldc1 $f24, 0x0030($sp)
/* 010B0 809C0950 D7BA0038 */ ldc1 $f26, 0x0038($sp)
/* 010B4 809C0954 D7BC0040 */ ldc1 $f28, 0x0040($sp)
/* 010B8 809C0958 8FB0004C */ lw $s0, 0x004C($sp)
/* 010BC 809C095C 8FB10050 */ lw $s1, 0x0050($sp)
/* 010C0 809C0960 8FB20054 */ lw $s2, 0x0054($sp)
/* 010C4 809C0964 8FB30058 */ lw $s3, 0x0058($sp)
/* 010C8 809C0968 8FB4005C */ lw $s4, 0x005C($sp)
/* 010CC 809C096C 8FB50060 */ lw $s5, 0x0060($sp)
/* 010D0 809C0970 8FB60064 */ lw $s6, 0x0064($sp)
/* 010D4 809C0974 8FB70068 */ lw $s7, 0x0068($sp)
/* 010D8 809C0978 03E00008 */ jr $ra
/* 010DC 809C097C 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000

View file

@ -1,29 +0,0 @@
glabel func_809C0980
/* 010E0 809C0980 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 010E4 809C0984 AFBF0014 */ sw $ra, 0x0014($sp)
/* 010E8 809C0988 AFA5001C */ sw $a1, 0x001C($sp)
/* 010EC 809C098C 84820196 */ lh $v0, 0x0196($a0) ## 00000196
/* 010F0 809C0990 2405387B */ addiu $a1, $zero, 0x387B ## $a1 = 0000387B
/* 010F4 809C0994 10400002 */ beq $v0, $zero, .L809C09A0
/* 010F8 809C0998 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 010FC 809C099C A48E0196 */ sh $t6, 0x0196($a0) ## 00000196
.L809C09A0:
/* 01100 809C09A0 948F0088 */ lhu $t7, 0x0088($a0) ## 00000088
/* 01104 809C09A4 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000
/* 01108 809C09A8 53000005 */ beql $t8, $zero, .L809C09C0
/* 0110C 809C09AC 84990196 */ lh $t9, 0x0196($a0) ## 00000196
/* 01110 809C09B0 0C00BE0A */ jal Audio_PlayActorSound2
/* 01114 809C09B4 AFA40018 */ sw $a0, 0x0018($sp)
/* 01118 809C09B8 8FA40018 */ lw $a0, 0x0018($sp)
/* 0111C 809C09BC 84990196 */ lh $t9, 0x0196($a0) ## 00000196
.L809C09C0:
/* 01120 809C09C0 57200004 */ bnel $t9, $zero, .L809C09D4
/* 01124 809C09C4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01128 809C09C8 0C26FE6F */ jal func_809BF9BC
/* 0112C 809C09CC 00000000 */ nop
/* 01130 809C09D0 8FBF0014 */ lw $ra, 0x0014($sp)
.L809C09D4:
/* 01134 809C09D4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01138 809C09D8 03E00008 */ jr $ra
/* 0113C 809C09DC 00000000 */ nop

View file

@ -1,42 +0,0 @@
glabel func_809C09E0
/* 01140 809C09E0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01144 809C09E4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01148 809C09E8 AFA5001C */ sw $a1, 0x001C($sp)
/* 0114C 809C09EC 84820196 */ lh $v0, 0x0196($a0) ## 00000196
/* 01150 809C09F0 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 01154 809C09F4 10400002 */ beq $v0, $zero, .L809C0A00
/* 01158 809C09F8 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 0115C 809C09FC A48E0196 */ sh $t6, 0x0196($a0) ## 00000196
.L809C0A00:
/* 01160 809C0A00 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 01164 809C0A04 31F88000 */ andi $t8, $t7, 0x8000 ## $t8 = 00000000
/* 01168 809C0A08 57000005 */ bnel $t8, $zero, .L809C0A20
/* 0116C 809C0A0C 94990088 */ lhu $t9, 0x0088($a0) ## 00000088
/* 01170 809C0A10 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 01174 809C0A14 00000000 */ nop
/* 01178 809C0A18 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
/* 0117C 809C0A1C 94990088 */ lhu $t9, 0x0088($a0) ## 00000088
.L809C0A20:
/* 01180 809C0A20 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
/* 01184 809C0A24 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 01188 809C0A28 15000008 */ bne $t0, $zero, .L809C0A4C
/* 0118C 809C0A2C 00000000 */ nop
/* 01190 809C0A30 44813000 */ mtc1 $at, $f6 ## $f6 = -32000.00
/* 01194 809C0A34 C4880080 */ lwc1 $f8, 0x0080($a0) ## 00000080
/* 01198 809C0A38 2409000A */ addiu $t1, $zero, 0x000A ## $t1 = 0000000A
/* 0119C 809C0A3C 46083032 */ c.eq.s $f6, $f8
/* 011A0 809C0A40 00000000 */ nop
/* 011A4 809C0A44 45020006 */ bc1fl .L809C0A60
/* 011A8 809C0A48 A0890114 */ sb $t1, 0x0114($a0) ## 00000114
.L809C0A4C:
/* 011AC 809C0A4C 0C26FF3A */ jal func_809BFCE8
/* 011B0 809C0A50 A0800114 */ sb $zero, 0x0114($a0) ## 00000114
/* 011B4 809C0A54 10000003 */ beq $zero, $zero, .L809C0A64
/* 011B8 809C0A58 8FBF0014 */ lw $ra, 0x0014($sp)
/* 011BC 809C0A5C A0890114 */ sb $t1, 0x0114($a0) ## 00000114
.L809C0A60:
/* 011C0 809C0A60 8FBF0014 */ lw $ra, 0x0014($sp)
.L809C0A64:
/* 011C4 809C0A64 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 011C8 809C0A68 03E00008 */ jr $ra
/* 011CC 809C0A6C 00000000 */ nop

View file

@ -1,130 +0,0 @@
glabel func_809C0A70
/* 011D0 809C0A70 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 011D4 809C0A74 AFBF0024 */ sw $ra, 0x0024($sp)
/* 011D8 809C0A78 AFB00020 */ sw $s0, 0x0020($sp)
/* 011DC 809C0A7C AFA5002C */ sw $a1, 0x002C($sp)
/* 011E0 809C0A80 908E00AF */ lbu $t6, 0x00AF($a0) ## 000000AF
/* 011E4 809C0A84 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 011E8 809C0A88 51C00067 */ beql $t6, $zero, .L809C0C28
/* 011EC 809C0A8C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 011F0 809C0A90 908201E5 */ lbu $v0, 0x01E5($a0) ## 000001E5
/* 011F4 809C0A94 260501EC */ addiu $a1, $s0, 0x01EC ## $a1 = 000001EC
/* 011F8 809C0A98 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 011FC 809C0A9C 304F0002 */ andi $t7, $v0, 0x0002 ## $t7 = 00000000
/* 01200 809C0AA0 11E00060 */ beq $t7, $zero, .L809C0C24
/* 01204 809C0AA4 3058FFFD */ andi $t8, $v0, 0xFFFD ## $t8 = 00000000
/* 01208 809C0AA8 0C00D594 */ jal func_80035650
/* 0120C 809C0AAC A09801E5 */ sb $t8, 0x01E5($a0) ## 000001E5
/* 01210 809C0AB0 921900B1 */ lbu $t9, 0x00B1($s0) ## 000000B1
/* 01214 809C0AB4 17200004 */ bne $t9, $zero, .L809C0AC8
/* 01218 809C0AB8 00000000 */ nop
/* 0121C 809C0ABC 920800B0 */ lbu $t0, 0x00B0($s0) ## 000000B0
/* 01220 809C0AC0 51000059 */ beql $t0, $zero, .L809C0C28
/* 01224 809C0AC4 8FBF0024 */ lw $ra, 0x0024($sp)
.L809C0AC8:
/* 01228 809C0AC8 0C00D58A */ jal Actor_ApplyDamage
/* 0122C 809C0ACC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01230 809C0AD0 1440000A */ bne $v0, $zero, .L809C0AFC
/* 01234 809C0AD4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01238 809C0AD8 0C00BE0A */ jal Audio_PlayActorSound2
/* 0123C 809C0ADC 2405389B */ addiu $a1, $zero, 0x389B ## $a1 = 0000389B
/* 01240 809C0AE0 8FA4002C */ lw $a0, 0x002C($sp)
/* 01244 809C0AE4 0C00CB1F */ jal func_80032C7C
/* 01248 809C0AE8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0124C 809C0AEC 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
/* 01250 809C0AF0 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 01254 809C0AF4 01215024 */ and $t2, $t1, $at
/* 01258 809C0AF8 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
.L809C0AFC:
/* 0125C 809C0AFC 920200B1 */ lbu $v0, 0x00B1($s0) ## 000000B1
/* 01260 809C0B00 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 01264 809C0B04 5441000B */ bnel $v0, $at, .L809C0B34
/* 01268 809C0B08 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 0126C 809C0B0C 8E0C0190 */ lw $t4, 0x0190($s0) ## 00000190
/* 01270 809C0B10 3C0B809C */ lui $t3, %hi(func_809C0980) ## $t3 = 809C0000
/* 01274 809C0B14 256B0980 */ addiu $t3, $t3, %lo(func_809C0980) ## $t3 = 809C0980
/* 01278 809C0B18 516C0039 */ beql $t3, $t4, .L809C0C00
/* 0127C 809C0B1C 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
/* 01280 809C0B20 0C26FF46 */ jal func_809BFD18
/* 01284 809C0B24 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01288 809C0B28 10000035 */ beq $zero, $zero, .L809C0C00
/* 0128C 809C0B2C 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
/* 01290 809C0B30 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
.L809C0B34:
/* 01294 809C0B34 5441001A */ bnel $v0, $at, .L809C0BA0
/* 01298 809C0B38 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0129C 809C0B3C 8E0E0190 */ lw $t6, 0x0190($s0) ## 00000190
/* 012A0 809C0B40 3C0D809C */ lui $t5, %hi(func_809C0980) ## $t5 = 809C0000
/* 012A4 809C0B44 25AD0980 */ addiu $t5, $t5, %lo(func_809C0980) ## $t5 = 809C0980
/* 012A8 809C0B48 11AE0010 */ beq $t5, $t6, .L809C0B8C
/* 012AC 809C0B4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 012B0 809C0B50 240F000A */ addiu $t7, $zero, 0x000A ## $t7 = 0000000A
/* 012B4 809C0B54 AFAF0010 */ sw $t7, 0x0010($sp)
/* 012B8 809C0B58 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 012BC 809C0B5C 240600C8 */ addiu $a2, $zero, 0x00C8 ## $a2 = 000000C8
/* 012C0 809C0B60 0C00D09B */ jal func_8003426C
/* 012C4 809C0B64 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 012C8 809C0B68 921800AF */ lbu $t8, 0x00AF($s0) ## 000000AF
/* 012CC 809C0B6C 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 012D0 809C0B70 17000002 */ bne $t8, $zero, .L809C0B7C
/* 012D4 809C0B74 00000000 */ nop
/* 012D8 809C0B78 A619001C */ sh $t9, 0x001C($s0) ## 0000001C
.L809C0B7C:
/* 012DC 809C0B7C 0C26FEA3 */ jal func_809BFA8C
/* 012E0 809C0B80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 012E4 809C0B84 1000001E */ beq $zero, $zero, .L809C0C00
/* 012E8 809C0B88 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
.L809C0B8C:
/* 012EC 809C0B8C 0C26FF12 */ jal func_809BFC48
/* 012F0 809C0B90 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 012F4 809C0B94 1000001A */ beq $zero, $zero, .L809C0C00
/* 012F8 809C0B98 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
/* 012FC 809C0B9C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
.L809C0BA0:
/* 01300 809C0BA0 54410007 */ bnel $v0, $at, .L809C0BC0
/* 01304 809C0BA4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 01308 809C0BA8 0C26FF12 */ jal func_809BFC48
/* 0130C 809C0BAC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01310 809C0BB0 24080002 */ addiu $t0, $zero, 0x0002 ## $t0 = 00000002
/* 01314 809C0BB4 10000011 */ beq $zero, $zero, .L809C0BFC
/* 01318 809C0BB8 A6080196 */ sh $t0, 0x0196($s0) ## 00000196
/* 0131C 809C0BBC 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
.L809C0BC0:
/* 01320 809C0BC0 14410005 */ bne $v0, $at, .L809C0BD8
/* 01324 809C0BC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01328 809C0BC8 0C26FF65 */ jal func_809BFD94
/* 0132C 809C0BCC 8FA5002C */ lw $a1, 0x002C($sp)
/* 01330 809C0BD0 1000000B */ beq $zero, $zero, .L809C0C00
/* 01334 809C0BD4 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
.L809C0BD8:
/* 01338 809C0BD8 2401000E */ addiu $at, $zero, 0x000E ## $at = 0000000E
/* 0133C 809C0BDC 14410005 */ bne $v0, $at, .L809C0BF4
/* 01340 809C0BE0 00000000 */ nop
/* 01344 809C0BE4 0C26FEF1 */ jal func_809BFBC4
/* 01348 809C0BE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0134C 809C0BEC 10000004 */ beq $zero, $zero, .L809C0C00
/* 01350 809C0BF0 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
.L809C0BF4:
/* 01354 809C0BF4 0C26FF12 */ jal func_809BFC48
/* 01358 809C0BF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809C0BFC:
/* 0135C 809C0BFC 8E090210 */ lw $t1, 0x0210($s0) ## 00000210
.L809C0C00:
/* 01360 809C0C00 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01364 809C0C04 3421F820 */ ori $at, $at, 0xF820 ## $at = 0001F820
/* 01368 809C0C08 8D2A0000 */ lw $t2, 0x0000($t1) ## 00000000
/* 0136C 809C0C0C 01415824 */ and $t3, $t2, $at
/* 01370 809C0C10 51600005 */ beql $t3, $zero, .L809C0C28
/* 01374 809C0C14 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01378 809C0C18 8E0C0004 */ lw $t4, 0x0004($s0) ## 00000004
/* 0137C 809C0C1C 358D0010 */ ori $t5, $t4, 0x0010 ## $t5 = 00000010
/* 01380 809C0C20 AE0D0004 */ sw $t5, 0x0004($s0) ## 00000004
.L809C0C24:
/* 01384 809C0C24 8FBF0024 */ lw $ra, 0x0024($sp)
.L809C0C28:
/* 01388 809C0C28 8FB00020 */ lw $s0, 0x0020($sp)
/* 0138C 809C0C2C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 01390 809C0C30 03E00008 */ jr $ra
/* 01394 809C0C34 00000000 */ nop

View file

@ -1,192 +0,0 @@
.late_rodata
glabel D_809C1754
.word 0x3F060B41
glabel D_809C1758
.word 0x3E851EB8
glabel D_809C175C
.word 0x3EC90FDB
glabel D_809C1760
.float 0.15
glabel D_809C1764
.float 0.85
glabel D_809C1768
.word 0x3EA0D97C
glabel D_809C176C
.float 0.3
glabel D_809C1770
.float 0.2
glabel D_809C1774
.float 0.8
glabel D_809C1778
.word 0x3D920D28
glabel D_809C177C
.word 0x3E9EB852
glabel D_809C1780
.float 0.4
glabel D_809C1784
.word 0x3EA0D97C
glabel D_809C1788
.float 0.08
glabel D_809C178C
.word 0x3EC90FDB
glabel D_809C1790
.word 0x3E051EB8
glabel D_809C1794
.word 0x3F5EB852
.text
glabel func_809C0E08
/* 01568 809C0E08 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0156C 809C0E0C AFBF001C */ sw $ra, 0x001C($sp)
/* 01570 809C0E10 AFB00018 */ sw $s0, 0x0018($sp)
/* 01574 809C0E14 8C820190 */ lw $v0, 0x0190($a0) ## 00000190
/* 01578 809C0E18 3C0E809C */ lui $t6, %hi(func_809C02B8) ## $t6 = 809C0000
/* 0157C 809C0E1C 44857000 */ mtc1 $a1, $f14 ## $f14 = 0.00
/* 01580 809C0E20 25CE02B8 */ addiu $t6, $t6, %lo(func_809C02B8) ## $t6 = 809C02B8
/* 01584 809C0E24 15C2000E */ bne $t6, $v0, .L809C0E60
/* 01588 809C0E28 00C08025 */ or $s0, $a2, $zero ## $s0 = 00000000
/* 0158C 809C0E2C 3C01809C */ lui $at, %hi(D_809C1754) ## $at = 809C0000
/* 01590 809C0E30 C4241754 */ lwc1 $f4, %lo(D_809C1754)($at)
/* 01594 809C0E34 460E2302 */ mul.s $f12, $f4, $f14
/* 01598 809C0E38 0C0400A4 */ jal sinf
/* 0159C 809C0E3C 00000000 */ nop
/* 015A0 809C0E40 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 015A4 809C0E44 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 015A8 809C0E48 3C01809C */ lui $at, %hi(D_809C1758) ## $at = 809C0000
/* 015AC 809C0E4C C4261758 */ lwc1 $f6, %lo(D_809C1758)($at)
/* 015B0 809C0E50 46060202 */ mul.s $f8, $f0, $f6
/* 015B4 809C0E54 46081281 */ sub.s $f10, $f2, $f8
/* 015B8 809C0E58 1000006C */ beq $zero, $zero, .L809C100C
/* 015BC 809C0E5C E60A0004 */ swc1 $f10, 0x0004($s0) ## 00000004
.L809C0E60:
/* 015C0 809C0E60 3C0F809C */ lui $t7, %hi(func_809C04B4) ## $t7 = 809C0000
/* 015C4 809C0E64 25EF04B4 */ addiu $t7, $t7, %lo(func_809C04B4) ## $t7 = 809C04B4
/* 015C8 809C0E68 15E20044 */ bne $t7, $v0, .L809C0F7C
/* 015CC 809C0E6C 3C18809C */ lui $t8, %hi(func_809C0980) ## $t8 = 809C0000
/* 015D0 809C0E70 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 015D4 809C0E74 44810000 */ mtc1 $at, $f0 ## $f0 = 8.00
/* 015D8 809C0E78 3C014190 */ lui $at, 0x4190 ## $at = 41900000
/* 015DC 809C0E7C 4600703E */ c.le.s $f14, $f0
/* 015E0 809C0E80 00000000 */ nop
/* 015E4 809C0E84 4502000F */ bc1fl .L809C0EC4
/* 015E8 809C0E88 44811000 */ mtc1 $at, $f2 ## $f2 = 18.00
/* 015EC 809C0E8C 3C01809C */ lui $at, %hi(D_809C175C) ## $at = 809C0000
/* 015F0 809C0E90 C430175C */ lwc1 $f16, %lo(D_809C175C)($at)
/* 015F4 809C0E94 460E8302 */ mul.s $f12, $f16, $f14
/* 015F8 809C0E98 0C041184 */ jal cosf
/* 015FC 809C0E9C 00000000 */ nop
/* 01600 809C0EA0 3C01809C */ lui $at, %hi(D_809C1760) ## $at = 809C0000
/* 01604 809C0EA4 C4321760 */ lwc1 $f18, %lo(D_809C1760)($at)
/* 01608 809C0EA8 3C01809C */ lui $at, %hi(D_809C1764) ## $at = 809C0000
/* 0160C 809C0EAC C4261764 */ lwc1 $f6, %lo(D_809C1764)($at)
/* 01610 809C0EB0 46120102 */ mul.s $f4, $f0, $f18
/* 01614 809C0EB4 46062200 */ add.s $f8, $f4, $f6
/* 01618 809C0EB8 1000002D */ beq $zero, $zero, .L809C0F70
/* 0161C 809C0EBC E6080004 */ swc1 $f8, 0x0004($s0) ## 00000004
/* 01620 809C0EC0 44811000 */ mtc1 $at, $f2 ## $f2 = -0.00
.L809C0EC4:
/* 01624 809C0EC4 3C01809C */ lui $at, %hi(D_809C1778) ## $at = 809C0000
/* 01628 809C0EC8 4602703E */ c.le.s $f14, $f2
/* 0162C 809C0ECC 00000000 */ nop
/* 01630 809C0ED0 45020017 */ bc1fl .L809C0F30
/* 01634 809C0ED4 46027101 */ sub.s $f4, $f14, $f2
/* 01638 809C0ED8 46007281 */ sub.s $f10, $f14, $f0
/* 0163C 809C0EDC 3C01809C */ lui $at, %hi(D_809C1768) ## $at = 809C0000
/* 01640 809C0EE0 C4301768 */ lwc1 $f16, %lo(D_809C1768)($at)
/* 01644 809C0EE4 46105302 */ mul.s $f12, $f10, $f16
/* 01648 809C0EE8 0C041184 */ jal cosf
/* 0164C 809C0EEC 00000000 */ nop
/* 01650 809C0EF0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01654 809C0EF4 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 01658 809C0EF8 3C01809C */ lui $at, %hi(D_809C176C) ## $at = 809C0000
/* 0165C 809C0EFC C432176C */ lwc1 $f18, %lo(D_809C176C)($at)
/* 01660 809C0F00 3C01809C */ lui $at, %hi(D_809C1770) ## $at = 809C0000
/* 01664 809C0F04 46009102 */ mul.s $f4, $f18, $f0
/* 01668 809C0F08 46041181 */ sub.s $f6, $f2, $f4
/* 0166C 809C0F0C E6060004 */ swc1 $f6, 0x0004($s0) ## 00000004
/* 01670 809C0F10 C4281770 */ lwc1 $f8, %lo(D_809C1770)($at)
/* 01674 809C0F14 3C01809C */ lui $at, %hi(D_809C1774) ## $at = 809C0000
/* 01678 809C0F18 C4301774 */ lwc1 $f16, %lo(D_809C1774)($at)
/* 0167C 809C0F1C 46004282 */ mul.s $f10, $f8, $f0
/* 01680 809C0F20 46105480 */ add.s $f18, $f10, $f16
/* 01684 809C0F24 10000012 */ beq $zero, $zero, .L809C0F70
/* 01688 809C0F28 E6120000 */ swc1 $f18, 0x0000($s0) ## 00000000
/* 0168C 809C0F2C 46027101 */ sub.s $f4, $f14, $f2
.L809C0F30:
/* 01690 809C0F30 C4261778 */ lwc1 $f6, %lo(D_809C1778)($at)
/* 01694 809C0F34 46062302 */ mul.s $f12, $f4, $f6
/* 01698 809C0F38 0C041184 */ jal cosf
/* 0169C 809C0F3C 00000000 */ nop
/* 016A0 809C0F40 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 016A4 809C0F44 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 016A8 809C0F48 3C01809C */ lui $at, %hi(D_809C177C) ## $at = 809C0000
/* 016AC 809C0F4C C428177C */ lwc1 $f8, %lo(D_809C177C)($at)
/* 016B0 809C0F50 3C01809C */ lui $at, %hi(D_809C1780) ## $at = 809C0000
/* 016B4 809C0F54 46004282 */ mul.s $f10, $f8, $f0
/* 016B8 809C0F58 46025400 */ add.s $f16, $f10, $f2
/* 016BC 809C0F5C E6100004 */ swc1 $f16, 0x0004($s0) ## 00000004
/* 016C0 809C0F60 C4321780 */ lwc1 $f18, %lo(D_809C1780)($at)
/* 016C4 809C0F64 46009102 */ mul.s $f4, $f18, $f0
/* 016C8 809C0F68 46041181 */ sub.s $f6, $f2, $f4
/* 016CC 809C0F6C E6060000 */ swc1 $f6, 0x0000($s0) ## 00000000
.L809C0F70:
/* 016D0 809C0F70 C6080000 */ lwc1 $f8, 0x0000($s0) ## 00000000
/* 016D4 809C0F74 10000025 */ beq $zero, $zero, .L809C100C
/* 016D8 809C0F78 E6080008 */ swc1 $f8, 0x0008($s0) ## 00000008
.L809C0F7C:
/* 016DC 809C0F7C 27180980 */ addiu $t8, $t8, %lo(func_809C0980) ## $t8 = 00000980
/* 016E0 809C0F80 17020017 */ bne $t8, $v0, .L809C0FE0
/* 016E4 809C0F84 3C01809C */ lui $at, %hi(D_809C178C) ## $at = 809C0000
/* 016E8 809C0F88 84990196 */ lh $t9, 0x0196($a0) ## 00000196
/* 016EC 809C0F8C 3C01809C */ lui $at, %hi(D_809C1784) ## $at = 809C0000
/* 016F0 809C0F90 C4321784 */ lwc1 $f18, %lo(D_809C1784)($at)
/* 016F4 809C0F94 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 016F8 809C0F98 00000000 */ nop
/* 016FC 809C0F9C 46805420 */ cvt.s.w $f16, $f10
/* 01700 809C0FA0 46128302 */ mul.s $f12, $f16, $f18
/* 01704 809C0FA4 0C0400A4 */ jal sinf
/* 01708 809C0FA8 00000000 */ nop
/* 0170C 809C0FAC 3C01809C */ lui $at, %hi(D_809C1788) ## $at = 809C0000
/* 01710 809C0FB0 C4241788 */ lwc1 $f4, %lo(D_809C1788)($at)
/* 01714 809C0FB4 C6060000 */ lwc1 $f6, 0x0000($s0) ## 00000000
/* 01718 809C0FB8 C60A0004 */ lwc1 $f10, 0x0004($s0) ## 00000004
/* 0171C 809C0FBC 46040082 */ mul.s $f2, $f0, $f4
/* 01720 809C0FC0 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 01724 809C0FC4 46023201 */ sub.s $f8, $f6, $f2
/* 01728 809C0FC8 46025400 */ add.s $f16, $f10, $f2
/* 0172C 809C0FCC E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000
/* 01730 809C0FD0 46029101 */ sub.s $f4, $f18, $f2
/* 01734 809C0FD4 E6100004 */ swc1 $f16, 0x0004($s0) ## 00000004
/* 01738 809C0FD8 1000000C */ beq $zero, $zero, .L809C100C
/* 0173C 809C0FDC E6040008 */ swc1 $f4, 0x0008($s0) ## 00000008
.L809C0FE0:
/* 01740 809C0FE0 C426178C */ lwc1 $f6, %lo(D_809C178C)($at)
/* 01744 809C0FE4 460E3302 */ mul.s $f12, $f6, $f14
/* 01748 809C0FE8 0C041184 */ jal cosf
/* 0174C 809C0FEC 00000000 */ nop
/* 01750 809C0FF0 3C01809C */ lui $at, %hi(D_809C1790) ## $at = 809C0000
/* 01754 809C0FF4 C4281790 */ lwc1 $f8, %lo(D_809C1790)($at)
/* 01758 809C0FF8 3C01809C */ lui $at, %hi(D_809C1794) ## $at = 809C0000
/* 0175C 809C0FFC C4301794 */ lwc1 $f16, %lo(D_809C1794)($at)
/* 01760 809C1000 46080282 */ mul.s $f10, $f0, $f8
/* 01764 809C1004 46105480 */ add.s $f18, $f10, $f16
/* 01768 809C1008 E6120004 */ swc1 $f18, 0x0004($s0) ## 00000004
.L809C100C:
/* 0176C 809C100C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01770 809C1010 8FB00018 */ lw $s0, 0x0018($sp)
/* 01774 809C1014 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 01778 809C1018 03E00008 */ jr $ra
/* 0177C 809C101C 00000000 */ nop

View file

@ -1,185 +0,0 @@
.late_rodata
glabel D_809C1798
.word 0x3F060B41
glabel D_809C179C
.float 0.2
glabel D_809C17A0
.word 0x3EC90FDB
glabel D_809C17A4
.word 0x3EA0D97C
glabel D_809C17A8
.word 0x3E8CCCCD
glabel D_809C17AC
.word 0x3F79999A
glabel D_809C17B0
.word 0x3D920D28
glabel D_809C17B4
.float 0.3
glabel D_809C17B8
.word 0x3EF5C28F
glabel D_809C17BC
.word 0x3EA0D97C
glabel D_809C17C0
.float 0.08
glabel D_809C17C4
.word 0x3EC90FDB
glabel D_809C17C8
.float 1.1
glabel D_809C17CC
.float 0.1
.text
glabel func_809C1020
/* 01780 809C1020 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 01784 809C1024 AFBF001C */ sw $ra, 0x001C($sp)
/* 01788 809C1028 AFB00018 */ sw $s0, 0x0018($sp)
/* 0178C 809C102C 8C820190 */ lw $v0, 0x0190($a0) ## 00000190
/* 01790 809C1030 3C0E809C */ lui $t6, %hi(func_809C02B8) ## $t6 = 809C0000
/* 01794 809C1034 44857000 */ mtc1 $a1, $f14 ## $f14 = 0.00
/* 01798 809C1038 25CE02B8 */ addiu $t6, $t6, %lo(func_809C02B8) ## $t6 = 809C02B8
/* 0179C 809C103C 15C2000E */ bne $t6, $v0, .L809C1078
/* 017A0 809C1040 00C08025 */ or $s0, $a2, $zero ## $s0 = 00000000
/* 017A4 809C1044 3C01809C */ lui $at, %hi(D_809C1798) ## $at = 809C0000
/* 017A8 809C1048 C4241798 */ lwc1 $f4, %lo(D_809C1798)($at)
/* 017AC 809C104C 460E2302 */ mul.s $f12, $f4, $f14
/* 017B0 809C1050 0C0400A4 */ jal sinf
/* 017B4 809C1054 00000000 */ nop
/* 017B8 809C1058 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 017BC 809C105C 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 017C0 809C1060 3C01809C */ lui $at, %hi(D_809C179C) ## $at = 809C0000
/* 017C4 809C1064 C426179C */ lwc1 $f6, %lo(D_809C179C)($at)
/* 017C8 809C1068 46060202 */ mul.s $f8, $f0, $f6
/* 017CC 809C106C 46024280 */ add.s $f10, $f8, $f2
/* 017D0 809C1070 1000006E */ beq $zero, $zero, .L809C122C
/* 017D4 809C1074 E60A0004 */ swc1 $f10, 0x0004($s0) ## 00000004
.L809C1078:
/* 017D8 809C1078 3C0F809C */ lui $t7, %hi(func_809C04B4) ## $t7 = 809C0000
/* 017DC 809C107C 25EF04B4 */ addiu $t7, $t7, %lo(func_809C04B4) ## $t7 = 809C04B4
/* 017E0 809C1080 15E20046 */ bne $t7, $v0, .L809C119C
/* 017E4 809C1084 3C18809C */ lui $t8, %hi(func_809C0980) ## $t8 = 809C0000
/* 017E8 809C1088 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 017EC 809C108C 44810000 */ mtc1 $at, $f0 ## $f0 = 8.00
/* 017F0 809C1090 3C014190 */ lui $at, 0x4190 ## $at = 41900000
/* 017F4 809C1094 4600703E */ c.le.s $f14, $f0
/* 017F8 809C1098 00000000 */ nop
/* 017FC 809C109C 45020010 */ bc1fl .L809C10E0
/* 01800 809C10A0 44811000 */ mtc1 $at, $f2 ## $f2 = 18.00
/* 01804 809C10A4 3C01809C */ lui $at, %hi(D_809C17A0) ## $at = 809C0000
/* 01808 809C10A8 C43017A0 */ lwc1 $f16, %lo(D_809C17A0)($at)
/* 0180C 809C10AC 460E8302 */ mul.s $f12, $f16, $f14
/* 01810 809C10B0 0C041184 */ jal cosf
/* 01814 809C10B4 00000000 */ nop
/* 01818 809C10B8 3C013F90 */ lui $at, 0x3F90 ## $at = 3F900000
/* 0181C 809C10BC 44819000 */ mtc1 $at, $f18 ## $f18 = 1.12
/* 01820 809C10C0 3C013E00 */ lui $at, 0x3E00 ## $at = 3E000000
/* 01824 809C10C4 44812000 */ mtc1 $at, $f4 ## $f4 = 0.12
/* 01828 809C10C8 00000000 */ nop
/* 0182C 809C10CC 46040182 */ mul.s $f6, $f0, $f4
/* 01830 809C10D0 46069201 */ sub.s $f8, $f18, $f6
/* 01834 809C10D4 1000002E */ beq $zero, $zero, .L809C1190
/* 01838 809C10D8 E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000
/* 0183C 809C10DC 44811000 */ mtc1 $at, $f2 ## $f2 = 0.12
.L809C10E0:
/* 01840 809C10E0 3C01809C */ lui $at, %hi(D_809C17B0) ## $at = 809C0000
/* 01844 809C10E4 4602703E */ c.le.s $f14, $f2
/* 01848 809C10E8 00000000 */ nop
/* 0184C 809C10EC 45020018 */ bc1fl .L809C1150
/* 01850 809C10F0 46027181 */ sub.s $f6, $f14, $f2
/* 01854 809C10F4 46007281 */ sub.s $f10, $f14, $f0
/* 01858 809C10F8 3C01809C */ lui $at, %hi(D_809C17A4) ## $at = 809C0000
/* 0185C 809C10FC C43017A4 */ lwc1 $f16, %lo(D_809C17A4)($at)
/* 01860 809C1100 46105302 */ mul.s $f12, $f10, $f16
/* 01864 809C1104 0C041184 */ jal cosf
/* 01868 809C1108 00000000 */ nop
/* 0186C 809C110C 3C01809C */ lui $at, %hi(D_809C17A8) ## $at = 809C0000
/* 01870 809C1110 C42417A8 */ lwc1 $f4, %lo(D_809C17A8)($at)
/* 01874 809C1114 3C01809C */ lui $at, %hi(D_809C17AC) ## $at = 809C0000
/* 01878 809C1118 C42617AC */ lwc1 $f6, %lo(D_809C17AC)($at)
/* 0187C 809C111C 3C013FA0 */ lui $at, 0x3FA0 ## $at = 3FA00000
/* 01880 809C1120 44815000 */ mtc1 $at, $f10 ## $f10 = 1.25
/* 01884 809C1124 3C013E80 */ lui $at, 0x3E80 ## $at = 3E800000
/* 01888 809C1128 46002482 */ mul.s $f18, $f4, $f0
/* 0188C 809C112C 44818000 */ mtc1 $at, $f16 ## $f16 = 0.25
/* 01890 809C1130 00000000 */ nop
/* 01894 809C1134 46008102 */ mul.s $f4, $f16, $f0
/* 01898 809C1138 46069200 */ add.s $f8, $f18, $f6
/* 0189C 809C113C 46045481 */ sub.s $f18, $f10, $f4
/* 018A0 809C1140 E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000
/* 018A4 809C1144 10000012 */ beq $zero, $zero, .L809C1190
/* 018A8 809C1148 E6120004 */ swc1 $f18, 0x0004($s0) ## 00000004
/* 018AC 809C114C 46027181 */ sub.s $f6, $f14, $f2
.L809C1150:
/* 018B0 809C1150 C42817B0 */ lwc1 $f8, %lo(D_809C17B0)($at)
/* 018B4 809C1154 46083302 */ mul.s $f12, $f6, $f8
/* 018B8 809C1158 0C041184 */ jal cosf
/* 018BC 809C115C 00000000 */ nop
/* 018C0 809C1160 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 018C4 809C1164 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 018C8 809C1168 3C01809C */ lui $at, %hi(D_809C17B4) ## $at = 809C0000
/* 018CC 809C116C C43017B4 */ lwc1 $f16, %lo(D_809C17B4)($at)
/* 018D0 809C1170 3C01809C */ lui $at, %hi(D_809C17B8) ## $at = 809C0000
/* 018D4 809C1174 46008282 */ mul.s $f10, $f16, $f0
/* 018D8 809C1178 460A1101 */ sub.s $f4, $f2, $f10
/* 018DC 809C117C E6040000 */ swc1 $f4, 0x0000($s0) ## 00000000
/* 018E0 809C1180 C43217B8 */ lwc1 $f18, %lo(D_809C17B8)($at)
/* 018E4 809C1184 46009182 */ mul.s $f6, $f18, $f0
/* 018E8 809C1188 46023200 */ add.s $f8, $f6, $f2
/* 018EC 809C118C E6080004 */ swc1 $f8, 0x0004($s0) ## 00000004
.L809C1190:
/* 018F0 809C1190 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000
/* 018F4 809C1194 10000025 */ beq $zero, $zero, .L809C122C
/* 018F8 809C1198 E6100008 */ swc1 $f16, 0x0008($s0) ## 00000008
.L809C119C:
/* 018FC 809C119C 27180980 */ addiu $t8, $t8, %lo(func_809C0980) ## $t8 = 00000980
/* 01900 809C11A0 17020017 */ bne $t8, $v0, .L809C1200
/* 01904 809C11A4 3C01809C */ lui $at, %hi(D_809C17C4) ## $at = 809C0000
/* 01908 809C11A8 84990196 */ lh $t9, 0x0196($a0) ## 00000196
/* 0190C 809C11AC 3C01809C */ lui $at, %hi(D_809C17BC) ## $at = 809C0000
/* 01910 809C11B0 C43217BC */ lwc1 $f18, %lo(D_809C17BC)($at)
/* 01914 809C11B4 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 01918 809C11B8 00000000 */ nop
/* 0191C 809C11BC 46805120 */ cvt.s.w $f4, $f10
/* 01920 809C11C0 46122302 */ mul.s $f12, $f4, $f18
/* 01924 809C11C4 0C0400A4 */ jal sinf
/* 01928 809C11C8 00000000 */ nop
/* 0192C 809C11CC 3C01809C */ lui $at, %hi(D_809C17C0) ## $at = 809C0000
/* 01930 809C11D0 C42617C0 */ lwc1 $f6, %lo(D_809C17C0)($at)
/* 01934 809C11D4 C6080000 */ lwc1 $f8, 0x0000($s0) ## 00000000
/* 01938 809C11D8 C60A0004 */ lwc1 $f10, 0x0004($s0) ## 00000004
/* 0193C 809C11DC 46060082 */ mul.s $f2, $f0, $f6
/* 01940 809C11E0 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 01944 809C11E4 46024400 */ add.s $f16, $f8, $f2
/* 01948 809C11E8 46025101 */ sub.s $f4, $f10, $f2
/* 0194C 809C11EC E6100000 */ swc1 $f16, 0x0000($s0) ## 00000000
/* 01950 809C11F0 46029180 */ add.s $f6, $f18, $f2
/* 01954 809C11F4 E6040004 */ swc1 $f4, 0x0004($s0) ## 00000004
/* 01958 809C11F8 1000000C */ beq $zero, $zero, .L809C122C
/* 0195C 809C11FC E6060008 */ swc1 $f6, 0x0008($s0) ## 00000008
.L809C1200:
/* 01960 809C1200 C42817C4 */ lwc1 $f8, %lo(D_809C17C4)($at)
/* 01964 809C1204 460E4302 */ mul.s $f12, $f8, $f14
/* 01968 809C1208 0C041184 */ jal cosf
/* 0196C 809C120C 00000000 */ nop
/* 01970 809C1210 3C01809C */ lui $at, %hi(D_809C17C8) ## $at = 809C0000
/* 01974 809C1214 C43017C8 */ lwc1 $f16, %lo(D_809C17C8)($at)
/* 01978 809C1218 3C01809C */ lui $at, %hi(D_809C17CC) ## $at = 809C0000
/* 0197C 809C121C C42A17CC */ lwc1 $f10, %lo(D_809C17CC)($at)
/* 01980 809C1220 460A0102 */ mul.s $f4, $f0, $f10
/* 01984 809C1224 46048481 */ sub.s $f18, $f16, $f4
/* 01988 809C1228 E6120004 */ swc1 $f18, 0x0004($s0) ## 00000004
.L809C122C:
/* 0198C 809C122C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01990 809C1230 8FB00018 */ lw $s0, 0x0018($sp)
/* 01994 809C1234 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 01998 809C1238 03E00008 */ jr $ra
/* 0199C 809C123C 00000000 */ nop

View file

@ -1,126 +0,0 @@
.late_rodata
glabel D_809C17D0
.word 0x3EC90FDB
glabel D_809C17D4
.float 0.3
glabel D_809C17D8
.float 0.7
glabel D_809C17DC
.word 0x3EA0D97C
glabel D_809C17E0
.word 0x3EA66666
glabel D_809C17E4
.word 0x3F6CCCCD
glabel D_809C17E8
.word 0x3F733333
glabel D_809C17EC
.word 0x3F0CCCCD
glabel D_809C17F0
.word 0x3D920D28
glabel D_809C17F4
.float 0.4
glabel D_809C17F8
.word 0x3F051EB8, 0x00000000
.text
glabel func_809C1240
/* 019A0 809C1240 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 019A4 809C1244 AFBF0014 */ sw $ra, 0x0014($sp)
/* 019A8 809C1248 8C8F0190 */ lw $t7, 0x0190($a0) ## 00000190
/* 019AC 809C124C 3C0E809C */ lui $t6, %hi(func_809C04B4) ## $t6 = 809C0000
/* 019B0 809C1250 44857000 */ mtc1 $a1, $f14 ## $f14 = 0.00
/* 019B4 809C1254 25CE04B4 */ addiu $t6, $t6, %lo(func_809C04B4) ## $t6 = 809C04B4
/* 019B8 809C1258 15CF004F */ bne $t6, $t7, .L809C1398
/* 019BC 809C125C 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 019C0 809C1260 44810000 */ mtc1 $at, $f0 ## $f0 = 8.00
/* 019C4 809C1264 3C014190 */ lui $at, 0x4190 ## $at = 41900000
/* 019C8 809C1268 4600703E */ c.le.s $f14, $f0
/* 019CC 809C126C 00000000 */ nop
/* 019D0 809C1270 45020018 */ bc1fl .L809C12D4
/* 019D4 809C1274 44811000 */ mtc1 $at, $f2 ## $f2 = 18.00
/* 019D8 809C1278 3C01809C */ lui $at, %hi(D_809C17D0) ## $at = 809C0000
/* 019DC 809C127C C42417D0 */ lwc1 $f4, %lo(D_809C17D0)($at)
/* 019E0 809C1280 AFA60020 */ sw $a2, 0x0020($sp)
/* 019E4 809C1284 460E2302 */ mul.s $f12, $f4, $f14
/* 019E8 809C1288 0C041184 */ jal cosf
/* 019EC 809C128C 00000000 */ nop
/* 019F0 809C1290 3C013F90 */ lui $at, 0x3F90 ## $at = 3F900000
/* 019F4 809C1294 44813000 */ mtc1 $at, $f6 ## $f6 = 1.12
/* 019F8 809C1298 3C013E00 */ lui $at, 0x3E00 ## $at = 3E000000
/* 019FC 809C129C 44814000 */ mtc1 $at, $f8 ## $f8 = 0.12
/* 01A00 809C12A0 8FA60020 */ lw $a2, 0x0020($sp)
/* 01A04 809C12A4 3C01809C */ lui $at, %hi(D_809C17D4) ## $at = 809C0000
/* 01A08 809C12A8 46004282 */ mul.s $f10, $f8, $f0
/* 01A0C 809C12AC 460A3401 */ sub.s $f16, $f6, $f10
/* 01A10 809C12B0 E4D00000 */ swc1 $f16, 0x0000($a2) ## 00000000
/* 01A14 809C12B4 C43217D4 */ lwc1 $f18, %lo(D_809C17D4)($at)
/* 01A18 809C12B8 3C01809C */ lui $at, %hi(D_809C17D8) ## $at = 809C0000
/* 01A1C 809C12BC C42817D8 */ lwc1 $f8, %lo(D_809C17D8)($at)
/* 01A20 809C12C0 46009102 */ mul.s $f4, $f18, $f0
/* 01A24 809C12C4 46082180 */ add.s $f6, $f4, $f8
/* 01A28 809C12C8 10000031 */ beq $zero, $zero, .L809C1390
/* 01A2C 809C12CC E4C60004 */ swc1 $f6, 0x0004($a2) ## 00000004
/* 01A30 809C12D0 44811000 */ mtc1 $at, $f2 ## $f2 = -0.00
.L809C12D4:
/* 01A34 809C12D4 3C01809C */ lui $at, %hi(D_809C17F0) ## $at = 809C0000
/* 01A38 809C12D8 4602703E */ c.le.s $f14, $f2
/* 01A3C 809C12DC 00000000 */ nop
/* 01A40 809C12E0 45020019 */ bc1fl .L809C1348
/* 01A44 809C12E4 46027201 */ sub.s $f8, $f14, $f2
/* 01A48 809C12E8 46007281 */ sub.s $f10, $f14, $f0
/* 01A4C 809C12EC 3C01809C */ lui $at, %hi(D_809C17DC) ## $at = 809C0000
/* 01A50 809C12F0 C43017DC */ lwc1 $f16, %lo(D_809C17DC)($at)
/* 01A54 809C12F4 AFA60020 */ sw $a2, 0x0020($sp)
/* 01A58 809C12F8 46105302 */ mul.s $f12, $f10, $f16
/* 01A5C 809C12FC 0C041184 */ jal cosf
/* 01A60 809C1300 00000000 */ nop
/* 01A64 809C1304 3C01809C */ lui $at, %hi(D_809C17E0) ## $at = 809C0000
/* 01A68 809C1308 C43217E0 */ lwc1 $f18, %lo(D_809C17E0)($at)
/* 01A6C 809C130C 3C01809C */ lui $at, %hi(D_809C17E4) ## $at = 809C0000
/* 01A70 809C1310 C42817E4 */ lwc1 $f8, %lo(D_809C17E4)($at)
/* 01A74 809C1314 46009102 */ mul.s $f4, $f18, $f0
/* 01A78 809C1318 8FA60020 */ lw $a2, 0x0020($sp)
/* 01A7C 809C131C 3C01809C */ lui $at, %hi(D_809C17E8) ## $at = 809C0000
/* 01A80 809C1320 46082180 */ add.s $f6, $f4, $f8
/* 01A84 809C1324 E4C60000 */ swc1 $f6, 0x0000($a2) ## 00000000
/* 01A88 809C1328 C42A17E8 */ lwc1 $f10, %lo(D_809C17E8)($at)
/* 01A8C 809C132C 3C01809C */ lui $at, %hi(D_809C17EC) ## $at = 809C0000
/* 01A90 809C1330 C43017EC */ lwc1 $f16, %lo(D_809C17EC)($at)
/* 01A94 809C1334 46008482 */ mul.s $f18, $f16, $f0
/* 01A98 809C1338 46125101 */ sub.s $f4, $f10, $f18
/* 01A9C 809C133C 10000014 */ beq $zero, $zero, .L809C1390
/* 01AA0 809C1340 E4C40004 */ swc1 $f4, 0x0004($a2) ## 00000004
/* 01AA4 809C1344 46027201 */ sub.s $f8, $f14, $f2
.L809C1348:
/* 01AA8 809C1348 C42617F0 */ lwc1 $f6, %lo(D_809C17F0)($at)
/* 01AAC 809C134C AFA60020 */ sw $a2, 0x0020($sp)
/* 01AB0 809C1350 46064302 */ mul.s $f12, $f8, $f6
/* 01AB4 809C1354 0C041184 */ jal cosf
/* 01AB8 809C1358 00000000 */ nop
/* 01ABC 809C135C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01AC0 809C1360 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 01AC4 809C1364 3C01809C */ lui $at, %hi(D_809C17F4) ## $at = 809C0000
/* 01AC8 809C1368 C43017F4 */ lwc1 $f16, %lo(D_809C17F4)($at)
/* 01ACC 809C136C 8FA60020 */ lw $a2, 0x0020($sp)
/* 01AD0 809C1370 3C01809C */ lui $at, %hi(D_809C17F8) ## $at = 809C0000
/* 01AD4 809C1374 46008282 */ mul.s $f10, $f16, $f0
/* 01AD8 809C1378 460A1481 */ sub.s $f18, $f2, $f10
/* 01ADC 809C137C E4D20000 */ swc1 $f18, 0x0000($a2) ## 00000000
/* 01AE0 809C1380 C42417F8 */ lwc1 $f4, %lo(D_809C17F8)($at)
/* 01AE4 809C1384 46002202 */ mul.s $f8, $f4, $f0
/* 01AE8 809C1388 46024180 */ add.s $f6, $f8, $f2
/* 01AEC 809C138C E4C60004 */ swc1 $f6, 0x0004($a2) ## 00000004
.L809C1390:
/* 01AF0 809C1390 C4D00000 */ lwc1 $f16, 0x0000($a2) ## 00000000
/* 01AF4 809C1394 E4D00008 */ swc1 $f16, 0x0008($a2) ## 00000008
.L809C1398:
/* 01AF8 809C1398 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01AFC 809C139C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01B00 809C13A0 03E00008 */ jr $ra
/* 01B04 809C13A4 00000000 */ nop

View file

@ -1,64 +0,0 @@
glabel func_809C13A8
/* 01B08 809C13A8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 01B0C 809C13AC 3C0E809C */ lui $t6, %hi(D_809C16C0) ## $t6 = 809C0000
/* 01B10 809C13B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01B14 809C13B4 AFA40030 */ sw $a0, 0x0030($sp)
/* 01B18 809C13B8 AFA60038 */ sw $a2, 0x0038($sp)
/* 01B1C 809C13BC AFA7003C */ sw $a3, 0x003C($sp)
/* 01B20 809C13C0 25CE16C0 */ addiu $t6, $t6, %lo(D_809C16C0) ## $t6 = 809C16C0
/* 01B24 809C13C4 8DD80000 */ lw $t8, 0x0000($t6) ## 809C16C0
/* 01B28 809C13C8 8FA70044 */ lw $a3, 0x0044($sp)
/* 01B2C 809C13CC 27A60020 */ addiu $a2, $sp, 0x0020 ## $a2 = FFFFFFF0
/* 01B30 809C13D0 ACD80000 */ sw $t8, 0x0000($a2) ## FFFFFFF0
/* 01B34 809C13D4 8DCF0004 */ lw $t7, 0x0004($t6) ## 809C16C4
/* 01B38 809C13D8 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 01B3C 809C13DC ACCF0004 */ sw $t7, 0x0004($a2) ## FFFFFFF4
/* 01B40 809C13E0 8DD80008 */ lw $t8, 0x0008($t6) ## 809C16C8
/* 01B44 809C13E4 ACD80008 */ sw $t8, 0x0008($a2) ## FFFFFFF8
/* 01B48 809C13E8 14A10006 */ bne $a1, $at, .L809C1404
/* 01B4C 809C13EC C4E00164 */ lwc1 $f0, 0x0164($a3) ## 00000164
/* 01B50 809C13F0 44050000 */ mfc1 $a1, $f0
/* 01B54 809C13F4 0C270382 */ jal func_809C0E08
/* 01B58 809C13F8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 01B5C 809C13FC 1000001D */ beq $zero, $zero, .L809C1474
/* 01B60 809C1400 C7AC0020 */ lwc1 $f12, 0x0020($sp)
.L809C1404:
/* 01B64 809C1404 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 01B68 809C1408 54A10007 */ bnel $a1, $at, .L809C1428
/* 01B6C 809C140C 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 01B70 809C1410 44050000 */ mfc1 $a1, $f0
/* 01B74 809C1414 0C270408 */ jal func_809C1020
/* 01B78 809C1418 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 01B7C 809C141C 10000015 */ beq $zero, $zero, .L809C1474
/* 01B80 809C1420 C7AC0020 */ lwc1 $f12, 0x0020($sp)
/* 01B84 809C1424 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
.L809C1428:
/* 01B88 809C1428 54A10012 */ bnel $a1, $at, .L809C1474
/* 01B8C 809C142C C7AC0020 */ lwc1 $f12, 0x0020($sp)
/* 01B90 809C1430 44050000 */ mfc1 $a1, $f0
/* 01B94 809C1434 0C270490 */ jal func_809C1240
/* 01B98 809C1438 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 01B9C 809C143C 8FA20030 */ lw $v0, 0x0030($sp)
/* 01BA0 809C1440 845907A0 */ lh $t9, 0x07A0($v0) ## 000007A0
/* 01BA4 809C1444 00194080 */ sll $t0, $t9, 2
/* 01BA8 809C1448 00484821 */ addu $t1, $v0, $t0
/* 01BAC 809C144C 0C016A7D */ jal Camera_GetCamDirYaw
/* 01BB0 809C1450 8D240790 */ lw $a0, 0x0790($t1) ## 00000790
/* 01BB4 809C1454 8FA70044 */ lw $a3, 0x0044($sp)
/* 01BB8 809C1458 8FAD0040 */ lw $t5, 0x0040($sp)
/* 01BBC 809C145C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 01BC0 809C1460 84EA00B6 */ lh $t2, 0x00B6($a3) ## 000000B6
/* 01BC4 809C1464 004A5823 */ subu $t3, $v0, $t2
/* 01BC8 809C1468 01616021 */ addu $t4, $t3, $at
/* 01BCC 809C146C A5AC0002 */ sh $t4, 0x0002($t5) ## 00000002
/* 01BD0 809C1470 C7AC0020 */ lwc1 $f12, 0x0020($sp)
.L809C1474:
/* 01BD4 809C1474 C7AE0024 */ lwc1 $f14, 0x0024($sp)
/* 01BD8 809C1478 8FA60028 */ lw $a2, 0x0028($sp)
/* 01BDC 809C147C 0C0342A3 */ jal Matrix_Scale
/* 01BE0 809C1480 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01BE4 809C1484 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01BE8 809C1488 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 01BEC 809C148C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 01BF0 809C1490 03E00008 */ jr $ra
/* 01BF4 809C1494 00000000 */ nop

View file

@ -1,44 +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_Bili_InitVars
.word 0x00340500, 0x00005005, 0x00210000, 0x00000220
.word EnBili_Init
.word EnBili_Destroy
.word EnBili_Update
.word EnBili_Draw
glabel D_809C1640
.word 0x08110939, 0x10010000, 0x00000000, 0xFFCFFFFF, 0x03080000, 0xFFCFFFFF, 0x01000000, 0x19010100, 0x0009001C, 0xFFEC0000, 0x00000000
glabel D_809C166C
.word 0x01000009, 0x001CFFEC, 0x1E000000
glabel D_809C1678
.word 0x1002E002, 0x01020202, 0xF1F2F424, 0x34020202, 0x02243400, 0x00000104, 0x02020804, 0x00000400
glabel D_809C1698
.word 0x89170017, 0x304C07D0
glabel D_809C16A0
.word 0xFFFFFFFF
glabel D_809C16A4
.word 0xC8FFFFFF
glabel D_809C16A8
.word 0x00000000
glabel D_809C16AC
.word 0x00000000, 0x00000000
glabel D_809C16B4
.word 0x00000000, 0x00000000, 0x00000000
glabel D_809C16C0
.word 0x3F800000, 0x3F800000, 0x3F800000
glabel D_809C16CC
.word 0x06000E08, 0x06001708, 0x06002008, 0x06002908, 0x06003208, 0x06003B08, 0x06004408, 0x06004D08, 0x00000000
glabel D_809C16F0
.word 0xFC621603, 0x1F5BFFF8, 0xDF000000, 0x00000000
glabel D_809C1700
.word 0xFC121603, 0xFF5BFFF8, 0xDF000000, 0x00000000

View file

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

3
spec
View file

@ -1923,8 +1923,7 @@ endseg
beginseg
name "ovl_En_Bili"
include "build/src/overlays/actors/ovl_En_Bili/z_en_bili.o"
include "build/data/overlays/actors/z_en_bili.data.o"
include "build/data/overlays/actors/z_en_bili.reloc.o"
include "build/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o"
endseg
beginseg

View file

@ -1,3 +1,9 @@
/*
* File: z_en_bili.c
* Overlay: ovl_En_Bili
* Description: Biri (small jellyfish-like enemy)
*/
#include "z_en_bili.h"
#define FLAGS 0x00005005
@ -9,12 +15,20 @@ void EnBili_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnBili_Update(Actor* thisx, GlobalContext* globalCtx);
void EnBili_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06000024;
extern UNK_TYPE D_06000064;
extern UNK_TYPE D_060000A4;
extern UNK_TYPE D_06005848;
void EnBili_SetupFloatIdle(EnBili* this);
void EnBili_SetupSpawnedFlyApart(EnBili* this);
void EnBili_FloatIdle(EnBili* this, GlobalContext* globalCtx);
void EnBili_SpawnedFlyApart(EnBili* this, GlobalContext* globalCtx);
void EnBili_DischargeLightning(EnBili* this, GlobalContext* globalCtx);
void EnBili_Climb(EnBili* this, GlobalContext* globalCtx);
void EnBili_ApproachPlayer(EnBili* this, GlobalContext* globalCtx);
void EnBili_SetNewHomeHeight(EnBili* this, GlobalContext* globalCtx);
void EnBili_Recoil(EnBili* this, GlobalContext* globalCtx);
void EnBili_Burnt(EnBili* this, GlobalContext* globalCtx);
void EnBili_Die(EnBili* this, GlobalContext* globalCtx);
void EnBili_Stunned(EnBili* this, GlobalContext* globalCtx);
void EnBili_Frozen(EnBili* this, GlobalContext* globalCtx);
/*
const ActorInit En_Bili_InitVars = {
ACTOR_EN_BILI,
ACTORCAT_ENEMY,
@ -27,7 +41,7 @@ const ActorInit En_Bili_InitVars = {
(ActorFunc)EnBili_Draw,
};
static ColliderCylinderInit D_809C1640 = {
static ColliderCylinderInit sCylinderInit = {
{
COLTYPE_HIT8,
AT_ON | AT_TYPE_ENEMY,
@ -46,69 +60,714 @@ static ColliderCylinderInit D_809C1640 = {
},
{ 9, 28, -20, { 0, 0, 0 } },
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/EnBili_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/EnBili_Destroy.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BF9BC.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFA14.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFA8C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFAE8.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFB40.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFB5C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFBC4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFC48.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFCE8.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFD18.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFD94.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809BFF6C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C008C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0174.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0260.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C02B8.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C04B4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0570.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0600.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C067C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C06E0.s")
static CollisionCheckInfoInit2 sColChkInfoInit = { 1, 9, 28, -20, 30 };
typedef enum {
/* 0x0 */ BIRI_DMGEFF_NONE,
/* 0x1 */ BIRI_DMGEFF_DEKUNUT,
/* 0x2 */ BIRI_DMGEFF_FIRE,
/* 0x3 */ BIRI_DMGEFF_ICE,
/* 0xE */ BIRI_DMGEFF_SLINGSHOT = 0xE,
/* 0xF */ BIRI_DMGEFF_SWORD
} BiriDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, BIRI_DMGEFF_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(0, BIRI_DMGEFF_SLINGSHOT),
/* Explosive */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(1, BIRI_DMGEFF_NONE),
/* Normal arrow */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Kokiri sword */ DMG_ENTRY(1, BIRI_DMGEFF_SWORD),
/* Master sword */ DMG_ENTRY(2, BIRI_DMGEFF_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, BIRI_DMGEFF_SWORD),
/* Fire arrow */ DMG_ENTRY(4, BIRI_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(4, BIRI_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, BIRI_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(4, BIRI_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, BIRI_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Master spin */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Kokiri jump */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, BIRI_DMGEFF_NONE),
/* Master jump */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Unknown 1 */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0754.s")
static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 23, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0980.s")
extern AnimationHeader D_06000024;
extern AnimationHeader D_06000064;
extern AnimationHeader D_060000A4;
extern SkeletonHeader D_06005848;
void EnBili_Init(Actor* thisx, GlobalContext* globalCtx) {
EnBili* this = THIS;
Actor_ProcessInitChain(&this->actor, sInitChain);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 17.0f);
this->actor.shape.shadowAlpha = 155;
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06005848, &D_060000A4, this->jointTable, this->morphTable, 5);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
this->playFlySound = false;
if (this->actor.params == EN_BILI_TYPE_NORMAL) {
EnBili_SetupFloatIdle(this);
} else {
EnBili_SetupSpawnedFlyApart(this);
}
}
void EnBili_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnBili* this = THIS;
Collider_DestroyCylinder(globalCtx, &this->collider);
}
// Setup Action Functions
void EnBili_SetupFloatIdle(EnBili* this) {
this->actor.speedXZ = 0.7f;
this->collider.info.bumper.effect = 1; // Shock?
this->timer = 32;
this->collider.base.atFlags |= AT_ON;
this->collider.base.acFlags |= AC_ON;
this->actionFunc = EnBili_FloatIdle;
this->actor.home.pos.y = this->actor.world.pos.y;
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
}
/**
* Separates the Biri spawned by a dying EnVali.
*/
void EnBili_SetupSpawnedFlyApart(EnBili* this) {
Animation_PlayLoop(&this->skelAnime, &D_060000A4);
this->timer = 25;
this->actor.velocity.y = 6.0f;
this->actor.gravity = -0.3f;
this->collider.base.atFlags &= ~AT_ON;
this->actionFunc = EnBili_SpawnedFlyApart;
this->actor.speedXZ = 3.0f;
}
/**
* Used for both touching player/player's shield and being hit with sword. What to do next is determined by params.
*/
void EnBili_SetupDischargeLightning(EnBili* this) {
Animation_PlayLoop(&this->skelAnime, &D_06000024);
this->timer = 10;
this->actionFunc = EnBili_DischargeLightning;
this->actor.speedXZ = 0.0f;
this->actor.velocity.y = -1.0f;
}
void EnBili_SetupClimb(EnBili* this) {
Animation_PlayOnce(&this->skelAnime, &D_06000064);
this->collider.base.atFlags &= ~AT_ON;
this->actionFunc = EnBili_Climb;
this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f;
}
void EnBili_SetupApproachPlayer(EnBili* this) {
this->actor.speedXZ = 1.2f;
this->actionFunc = EnBili_ApproachPlayer;
}
void EnBili_SetupSetNewHomeHeight(EnBili* this) {
Animation_PlayLoop(&this->skelAnime, &D_060000A4);
this->timer = 96;
this->actor.speedXZ = 0.9f;
this->collider.base.atFlags |= AT_ON;
this->actionFunc = EnBili_SetNewHomeHeight;
this->actor.home.pos.y = this->actor.world.pos.y;
}
void EnBili_SetupRecoil(EnBili* this) {
if (this->skelAnime.animation != &D_060000A4) {
Animation_PlayLoop(&this->skelAnime, &D_060000A4);
}
this->actor.world.rot.y = Actor_WorldYawTowardPoint(&this->actor, &this->collider.base.ac->prevPos) + 0x8000;
this->actor.world.rot.x = Actor_WorldPitchTowardPoint(&this->actor, &this->collider.base.ac->prevPos);
this->actionFunc = EnBili_Recoil;
this->actor.speedXZ = 5.0f;
}
/**
* Used for both fire damage and generic damage
*/
void EnBili_SetupBurnt(EnBili* this) {
if (this->actionFunc == EnBili_Climb) {
Animation_PlayLoop(&this->skelAnime, &D_060000A4);
}
this->timer = 20;
this->collider.base.atFlags &= ~AT_ON;
this->collider.base.acFlags &= ~AC_ON;
this->actor.flags |= 0x10;
this->actor.speedXZ = 0.0f;
func_8003426C(&this->actor, 0x4000, 0xC8, 0x2000, 0x14);
this->actionFunc = EnBili_Burnt;
}
void EnBili_SetupDie(EnBili* this) {
this->timer = 18;
this->actor.flags &= ~1;
this->actionFunc = EnBili_Die;
this->actor.speedXZ = 0.0f;
}
/**
* Falls to ground
*/
void EnBili_SetupStunned(EnBili* this) {
this->timer = 80;
this->collider.info.bumper.effect = 0;
this->actor.gravity = -1.0f;
this->actor.speedXZ = 0.0f;
func_8003426C(&this->actor, 0, 0x96, 0x2000, 0x50);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
this->collider.base.atFlags &= ~AT_ON;
this->actionFunc = EnBili_Stunned;
}
void EnBili_SetupFrozen(EnBili* this, GlobalContext* globalCtx) {
s32 i;
Vec3f effectPos;
if (!(this->actor.flags & 0x8000)) {
this->actor.gravity = -1.0f;
}
this->actor.velocity.y = 0.0f;
effectPos.y = this->actor.world.pos.y - 15.0f;
for (i = 0; i < 8; i++) {
effectPos.x = this->actor.world.pos.x + ((i & 1) ? 7.0f : -7.0f);
effectPos.y += 2.5f;
effectPos.z = this->actor.world.pos.z + ((i & 4) ? 7.0f : -7.0f);
EffectSsEnIce_SpawnFlyingVec3f(globalCtx, &this->actor, &effectPos, 150, 150, 150, 250, 235, 245, 255,
(Rand_ZeroOne() * 0.2f) + 0.7f);
}
this->actor.speedXZ = 0.0f;
func_8003426C(&this->actor, 0, 0x96, 0x2000, 0xA);
this->collider.base.atFlags &= ~AT_ON;
this->collider.base.acFlags &= ~AC_ON;
this->timer = 300;
this->actionFunc = EnBili_Frozen;
}
// Miscellaneous
/**
* Changes the texture displayed on the oral arms limb using the current frame.
*/
void EnBili_UpdateOralArmsIndex(EnBili* this) {
s16 curFrame = this->skelAnime.curFrame;
s16 temp; // Not strictly necessary, but avoids a few s16 casts
if (this->actionFunc == EnBili_DischargeLightning) {
temp = 3 - curFrame;
this->oralArmsTexIndex = (ABS(temp) + 5) % 8;
} else if (this->actionFunc == EnBili_Climb) {
if (curFrame < 10) {
temp = curFrame >> 1;
this->oralArmsTexIndex = CLAMP_MAX(temp, 3);
} else if (curFrame < 19) {
temp = 17 - curFrame;
this->oralArmsTexIndex = CLAMP_MIN(temp, 0) >> 1;
} else if (curFrame < 37) {
this->oralArmsTexIndex = ((36 - curFrame) / 3) + 2;
} else {
this->oralArmsTexIndex = (40 - curFrame) >> 1;
}
} else {
this->oralArmsTexIndex = curFrame >> 1;
}
}
/**
* Tracks Player height, with oscillation, and moves away from walls
*/
void EnBili_UpdateFloating(EnBili* this) {
f32 playerHeight = this->actor.world.pos.y + this->actor.yDistToPlayer;
f32 heightOffset = ((this->actionFunc == EnBili_SetNewHomeHeight) ? 100.0f : 40.0f);
f32 baseHeight = CLAMP_MIN(this->actor.floorHeight, playerHeight);
Math_StepToF(&this->actor.home.pos.y, baseHeight + heightOffset, 1.0f);
this->actor.world.pos.y = this->actor.home.pos.y + (sinf(this->timer * (M_PI * 0.0625f)) * 3.0f);
// Turn around if touching wall
if (this->actor.bgCheckFlags & 8) {
this->actor.world.rot.y = this->actor.wallYaw;
}
}
// Action functions
void EnBili_FloatIdle(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
if (this->timer != 0) {
this->timer--;
}
if (!(this->timer % 4)) {
this->actor.world.rot.y += Rand_CenteredFloat(1820.0f);
}
EnBili_UpdateFloating(this);
if (this->timer == 0) {
this->timer = 32;
}
if ((this->actor.xzDistToPlayer < 160.0f) && (fabsf(this->actor.yDistToPlayer) < 45.0f)) {
EnBili_SetupApproachPlayer(this);
}
}
void EnBili_SpawnedFlyApart(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
if (this->timer != 0) {
this->timer--;
}
if (this->timer == 0) {
EnBili_SetupFloatIdle(this);
}
}
void EnBili_DischargeLightning(EnBili* this, GlobalContext* globalCtx) {
static Color_RGBA8 primColor = { 255, 255, 255, 255 };
static Color_RGBA8 envColor = { 200, 255, 255, 255 };
s32 i;
Vec3f effectPos;
s16 effectYaw;
for (i = 0; i < 4; i++) {
if (!((this->timer + (i << 1)) % 4)) {
effectYaw = (s16)Rand_CenteredFloat(12288.0f) + (i * 0x4000) + 0x2000;
effectPos.x = Rand_CenteredFloat(5.0f) + this->actor.world.pos.x;
effectPos.y = (Rand_ZeroOne() * 5.0f) + this->actor.world.pos.y + 2.5f;
effectPos.z = Rand_CenteredFloat(5.0f) + this->actor.world.pos.z;
EffectSsLightning_Spawn(globalCtx, &effectPos, &primColor, &envColor, 15, effectYaw, 6, 2);
}
}
SkelAnime_Update(&this->skelAnime);
func_8002F974(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG);
if (this->timer != 0) {
this->timer--;
}
this->actor.velocity.y *= -1.0f;
if ((this->timer == 0) && Animation_OnFrame(&this->skelAnime, 0.0f)) {
if (this->actor.params == EN_BILI_TYPE_DYING) {
EnBili_SetupDie(this);
} else {
EnBili_SetupClimb(this);
}
}
}
void EnBili_Climb(EnBili* this, GlobalContext* globalCtx) {
s32 skelAnimeUpdate = SkelAnime_Update(&this->skelAnime);
f32 curFrame = this->skelAnime.curFrame;
if (Animation_OnFrame(&this->skelAnime, 9.0f)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BIRI_JUMP);
}
if (curFrame > 9.0f) {
Math_ApproachF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.yDistToPlayer + 100.0f, 0.5f,
5.0f);
}
if (skelAnimeUpdate) {
EnBili_SetupSetNewHomeHeight(this);
}
}
void EnBili_ApproachPlayer(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 2, 1820);
if (this->timer != 0) {
this->timer--;
}
EnBili_UpdateFloating(this);
if (this->timer == 0) {
this->timer = 32;
}
if (this->actor.xzDistToPlayer > 200.0f) {
EnBili_SetupFloatIdle(this);
}
}
void EnBili_SetNewHomeHeight(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
if (this->timer != 0) {
this->timer--;
}
Math_ScaledStepToS(&this->actor.world.rot.y, (s16)(this->actor.yawTowardsPlayer + 0x8000), 910);
EnBili_UpdateFloating(this);
if (this->timer == 0) {
EnBili_SetupFloatIdle(this);
}
}
void EnBili_Recoil(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
if (Math_StepToF(&this->actor.speedXZ, 0.0f, 0.3f)) {
this->actor.world.rot.y += 0x8000;
EnBili_SetupFloatIdle(this);
}
}
void EnBili_Burnt(EnBili* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime);
if (this->actor.flags & 0x8000) {
this->actor.colorFilterTimer = 20;
} else {
if (this->timer != 0) {
this->timer--;
}
if (this->timer == 0) {
EnBili_SetupDie(this);
}
}
}
void EnBili_Die(EnBili* this, GlobalContext* globalCtx) {
static Vec3f effectVelocity = { 0.0f, 0.0f, 0.0f };
static Vec3f effectAccel = { 0.0f, 0.0f, 0.0f };
s16 effectScale;
Vec3f effectPos;
s32 i;
if (this->actor.draw != NULL) {
if (this->actor.flags & 0x8000) {
return;
}
this->actor.draw = NULL;
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 0x50);
}
if (this->timer != 0) {
this->timer--;
}
if (this->timer != 0) {
for (i = 0; i < 2; i++) {
effectPos.x = ((Rand_ZeroOne() * 10.0f) + this->actor.world.pos.x) - 5.0f;
effectPos.y = ((Rand_ZeroOne() * 5.0f) + this->actor.world.pos.y) - 2.5f;
effectPos.z = ((Rand_ZeroOne() * 10.0f) + this->actor.world.pos.z) - 5.0f;
effectVelocity.y = Rand_ZeroOne() + 1.0f;
effectScale = Rand_S16Offset(40, 40);
if (Rand_ZeroOne() < 0.7f) {
EffectSsDtBubble_SpawnColorProfile(globalCtx, &effectPos, &effectVelocity, &effectAccel, effectScale,
25, 2, 1);
} else {
EffectSsDtBubble_SpawnColorProfile(globalCtx, &effectPos, &effectVelocity, &effectAccel, effectScale,
25, 0, 1);
}
}
} else {
Actor_Kill(&this->actor);
}
if (this->timer == 14) {
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EN_BIRI_BUBLE);
}
}
void EnBili_Stunned(EnBili* this, GlobalContext* globalCtx) {
if (this->timer != 0) {
this->timer--;
}
if (this->actor.bgCheckFlags & 2) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DODO_M_GND);
}
if (this->timer == 0) {
EnBili_SetupFloatIdle(this);
}
}
void EnBili_Frozen(EnBili* this, GlobalContext* globalCtx) {
if (this->timer != 0) {
this->timer--;
}
if (!(this->actor.flags & 0x8000)) {
this->actor.gravity = -1.0f;
}
if ((this->actor.bgCheckFlags & 1) || (this->actor.floorHeight == BGCHECK_Y_MIN)) {
this->actor.colorFilterTimer = 0;
EnBili_SetupDie(this);
} else {
this->actor.colorFilterTimer = 10;
}
}
void EnBili_UpdateDamage(EnBili* this, GlobalContext* globalCtx) {
u8 damageEffect;
if ((this->actor.colChkInfo.health != 0) && (this->collider.base.acFlags & AC_HIT)) {
this->collider.base.acFlags &= ~AC_HIT;
func_80035650(&this->actor, &this->collider.info, 1);
if ((this->actor.colChkInfo.damageEffect != 0) || (this->actor.colChkInfo.damage != 0)) {
if (Actor_ApplyDamage(&this->actor) == 0) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BIRI_DEAD);
func_80032C7C(globalCtx, &this->actor);
this->actor.flags &= ~1;
}
damageEffect = this->actor.colChkInfo.damageEffect;
if (damageEffect == BIRI_DMGEFF_DEKUNUT) {
if (this->actionFunc != EnBili_Stunned) {
EnBili_SetupStunned(this);
}
} else if (damageEffect == BIRI_DMGEFF_SWORD) {
if (this->actionFunc != EnBili_Stunned) {
func_8003426C(&this->actor, 0x4000, 0xC8, 0x2000, 0xA);
if (this->actor.colChkInfo.health == 0) {
this->actor.params = EN_BILI_TYPE_DYING;
}
EnBili_SetupDischargeLightning(this);
} else {
EnBili_SetupBurnt(this);
}
} else if (damageEffect == BIRI_DMGEFF_FIRE) {
EnBili_SetupBurnt(this);
this->timer = 2;
} else if (damageEffect == BIRI_DMGEFF_ICE) {
EnBili_SetupFrozen(this, globalCtx);
} else if (damageEffect == BIRI_DMGEFF_SLINGSHOT) {
EnBili_SetupRecoil(this);
} else { // Only BIRI_DMGEFF_NONE
EnBili_SetupBurnt(this);
}
if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x1F820) { // DMG_ARROW
this->actor.flags |= 0x10;
}
}
}
}
void EnBili_Update(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
EnBili* this = THIS;
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~AT_HIT;
EnBili_SetupDischargeLightning(this);
}
EnBili_UpdateDamage(this, globalCtx);
this->actionFunc(this, globalCtx);
if (this->actionFunc != EnBili_Die) {
EnBili_UpdateOralArmsIndex(this);
if (Animation_OnFrame(&this->skelAnime, 9.0f)) {
if ((this->actionFunc == EnBili_FloatIdle) || (this->actionFunc == EnBili_SetNewHomeHeight) ||
(this->actionFunc == EnBili_ApproachPlayer) || (this->actionFunc == EnBili_Recoil)) {
if (this->playFlySound) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BIRI_FLY);
this->playFlySound = false;
} else {
this->playFlySound = true;
}
}
}
if (this->actionFunc == EnBili_Recoil) {
func_8002D97C(&this->actor);
} else {
Actor_MoveForward(&this->actor);
}
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, this->collider.dim.radius, this->collider.dim.height, 7);
Collider_UpdateCylinder(&this->actor, &this->collider);
if (this->collider.base.atFlags & AT_ON) {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
if (this->collider.base.acFlags & AC_ON) {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
Actor_SetFocus(&this->actor, 0.0f);
}
}
// Draw assaciated functions
void EnBili_PulseLimb3(EnBili* this, f32 frame, Vec3f* arg2) {
f32 cos;
f32 sin;
if (this->actionFunc == EnBili_DischargeLightning) {
arg2->y = 1.0f - (sinf((M_PI * 0.16667f) * frame) * 0.26f);
} else if (this->actionFunc == EnBili_Climb) {
if (frame <= 8.0f) {
arg2->y = (cosf((M_PI * 0.125f) * frame) * 0.15f) + 0.85f;
} else if (frame <= 18.0f) {
cos = cosf((frame - 8.0f) * (M_PI * 0.1f));
arg2->y = 1.0f - (0.3f * cos);
arg2->x = (0.2f * cos) + 0.8f;
} else {
cos = cosf((frame - 18.0f) * (M_PI * 0.0227f));
arg2->y = (0.31f * cos) + 1.0f;
arg2->x = 1.0f - (0.4f * cos);
}
arg2->z = arg2->x;
} else if (this->actionFunc == EnBili_Stunned) {
sin = sinf(this->timer * (M_PI * 0.1f)) * 0.08f;
arg2->x -= sin;
arg2->y += sin;
arg2->z -= sin;
} else {
arg2->y = (cosf((M_PI * 0.125f) * frame) * 0.13f) + 0.87f;
}
}
void EnBili_PulseLimb2(EnBili* this, f32 frame, Vec3f* arg2) {
f32 cos;
f32 sin;
if (this->actionFunc == EnBili_DischargeLightning) {
arg2->y = (sinf((M_PI * 0.16667f) * frame) * 0.2f) + 1.0f;
} else if (this->actionFunc == EnBili_Climb) {
if (frame <= 8.0f) {
arg2->x = 1.125f - (cosf((M_PI * 0.125f) * frame) * 0.125f);
} else if (frame <= 18.0f) {
cos = cosf((frame - 8.0f) * (M_PI * 0.1f));
arg2->x = (0.275f * cos) + 0.975f;
arg2->y = 1.25f - (0.25f * cos);
} else {
cos = cosf((frame - 18.0f) * (M_PI * 0.0227f));
arg2->x = 1.0f - (0.3f * cos);
arg2->y = (0.48f * cos) + 1.0f;
}
arg2->z = arg2->x;
} else if (this->actionFunc == EnBili_Stunned) {
sin = sinf(this->timer * (M_PI * 0.1f)) * 0.08f;
arg2->x += sin;
arg2->y -= sin;
arg2->z += sin;
} else {
arg2->y = 1.1f - (cosf((M_PI * 0.125f) * frame) * 0.1f);
}
}
void EnBili_PulseLimb4(EnBili* this, f32 frame, Vec3f* arg2) {
f32 cos;
if (this->actionFunc == EnBili_Climb) {
if (frame <= 8.0f) {
cos = cosf((M_PI * 0.125f) * frame);
arg2->x = 1.125f - (0.125f * cos);
arg2->y = (0.3f * cos) + 0.7f;
} else if (frame <= 18.0f) {
cos = cosf((frame - 8.0f) * (M_PI * 0.1f));
arg2->x = (0.325f * cos) + 0.925f;
arg2->y = 0.95f - (0.55f * cos);
} else {
cos = cosf((frame - 18.0f) * (M_PI * 0.0227f));
arg2->x = 1.0f - (0.4f * cos);
arg2->y = (0.52f * cos) + 1.0f;
}
arg2->z = arg2->x;
}
}
s32 EnBili_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx,
Gfx** gfx) {
EnBili* this = THIS;
Vec3f limbScale = { 1.0f, 1.0f, 1.0f };
f32 curFrame = this->skelAnime.curFrame;
if (limbIndex == EN_BILI_LIMB_STOMACH) {
EnBili_PulseLimb3(this, curFrame, &limbScale);
} else if (limbIndex == EN_BILI_LIMB_BELL) {
EnBili_PulseLimb2(this, curFrame, &limbScale);
} else if (limbIndex == EN_BILI_LIMB_ORALARMS) {
EnBili_PulseLimb4(this, curFrame, &limbScale);
rot->y = (Camera_GetCamDirYaw(ACTIVE_CAM) - this->actor.shape.rot.y) + 0x8000;
}
Matrix_Scale(limbScale.x, limbScale.y, limbScale.z, MTXMODE_APPLY);
return false;
}
static u64* sOralArmsTextures[] = {
0x06000E08, 0x06001708, 0x06002008, 0x06002908, 0x06003208, 0x06003B08, 0x06004408, 0x06004D08,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C09E0.s")
static Gfx D_809C16F0[] = {
gsDPSetCombineLERP(1, TEXEL0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0, TEXEL1, 0,
PRIM_LOD_FRAC, COMBINED),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0A70.s")
static Gfx D_809C1700[] = {
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0, TEXEL1, 0,
PRIM_LOD_FRAC, COMBINED),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/EnBili_Update.s")
void EnBili_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnBili* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C0E08.s")
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_bili.c", 1521);
func_80093D84(globalCtx->state.gfxCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C1020.s")
this->oralArmsTexIndex = CLAMP_MAX(this->oralArmsTexIndex, 7);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C1240.s")
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sOralArmsTextures[this->oralArmsTexIndex]));
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C13A8.s")
if ((this->actionFunc == EnBili_DischargeLightning) && ((this->timer & 1) != 0)) {
gSPSegment(POLY_XLU_DISP++, 0x09, &D_809C16F0);
} else {
gSPSegment(POLY_XLU_DISP++, 0x09, &D_809C1700);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bili/EnBili_Draw.s")
POLY_XLU_DISP = SkelAnime_Draw(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
&EnBili_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_bili.c", 1552);
}

View file

@ -6,11 +6,34 @@
struct EnBili;
typedef void (*EnBiliActionFunc)(struct EnBili*, GlobalContext*);
typedef struct EnBili {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xD4];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ EnBiliActionFunc actionFunc;
/* 0x0194 */ u8 oralArmsTexIndex;
/* 0x0195 */ u8 playFlySound;
/* 0x0196 */ s16 timer;
/* 0x0198 */ Vec3s jointTable[5];
/* 0x01B6 */ Vec3s morphTable[5];
/* 0x01D4 */ ColliderCylinder collider;
} EnBili; // size = 0x0220
extern const ActorInit En_Bili_InitVars;
typedef enum {
/* -1 */ EN_BILI_TYPE_NORMAL = -1,
/* 0 */ EN_BILI_TYPE_VALI_SPAWNED,
/* 1 */ EN_BILI_TYPE_DYING
} EnBiliType;
typedef enum {
/* 0 */ EN_BILI_LIMB_NONE,
/* 1 */ EN_BILI_LIMB_1,
/* 2 */ EN_BILI_LIMB_BELL,
/* 3 */ EN_BILI_LIMB_STOMACH,
/* 4 */ EN_BILI_LIMB_ORALARMS
} EnBiliLimb;
#endif