1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 22:44:30 +00:00

Decompile and label EnEiyer (#852)

* En_Eiyer OK

* Label EnEiyer

* Style fixes

* Rename colCyl -> collider

* Use CLAMP_MIN

* Format

* Review changes
This commit is contained in:
Synray 2021-06-17 10:51:49 -07:00 committed by GitHub
parent 23dc339882
commit 877544491b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 661 additions and 1980 deletions

View file

@ -1,12 +0,0 @@
glabel EnEiyer_Destroy
/* 001DC 80A0017C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001E0 80A00180 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 001E4 80A00184 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001E8 80A00188 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 001EC 80A0018C 0C0170EB */ jal Collider_DestroyCylinder
/* 001F0 80A00190 24C50288 */ addiu $a1, $a2, 0x0288 ## $a1 = 00000288
/* 001F4 80A00194 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001F8 80A00198 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001FC 80A0019C 03E00008 */ jr $ra
/* 00200 80A001A0 00000000 */ nop

View file

@ -1,106 +0,0 @@
.rdata
glabel D_80A019D0
.asciz "../z_en_eiyer.c"
.balign 4
glabel D_80A019E0
.asciz "../z_en_eiyer.c"
.balign 4
.text
glabel EnEiyer_Draw
/* 0183C 80A017DC 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 01840 80A017E0 AFB20030 */ sw $s2, 0x0030($sp)
/* 01844 80A017E4 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 01848 80A017E8 AFBF0034 */ sw $ra, 0x0034($sp)
/* 0184C 80A017EC AFB1002C */ sw $s1, 0x002C($sp)
/* 01850 80A017F0 AFB00028 */ sw $s0, 0x0028($sp)
/* 01854 80A017F4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01858 80A017F8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 0185C 80A017FC 3C0680A0 */ lui $a2, %hi(D_80A019D0) ## $a2 = 80A00000
/* 01860 80A01800 24C619D0 */ addiu $a2, $a2, %lo(D_80A019D0) ## $a2 = 80A019D0
/* 01864 80A01804 27A40050 */ addiu $a0, $sp, 0x0050 ## $a0 = FFFFFFE8
/* 01868 80A01808 240705D6 */ addiu $a3, $zero, 0x05D6 ## $a3 = 000005D6
/* 0186C 80A0180C 0C031AB1 */ jal Graph_OpenDisps
/* 01870 80A01810 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 01874 80A01814 8E2F0190 */ lw $t7, 0x0190($s1) ## 00000190
/* 01878 80A01818 3C0E80A0 */ lui $t6, %hi(func_80A012F4) ## $t6 = 80A00000
/* 0187C 80A0181C 25CE12F4 */ addiu $t6, $t6, %lo(func_80A012F4) ## $t6 = 80A012F4
/* 01880 80A01820 11CF001F */ beq $t6, $t7, .L80A018A0
/* 01884 80A01824 00000000 */ nop
/* 01888 80A01828 0C024F46 */ jal func_80093D18
/* 0188C 80A0182C 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 01890 80A01830 8E0302C0 */ lw $v1, 0x02C0($s0) ## 000002C0
/* 01894 80A01834 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 01898 80A01838 3C088011 */ lui $t0, %hi(D_80116280+0x10)
/* 0189C 80A0183C 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 018A0 80A01840 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 018A4 80A01844 25086290 */ addiu $t0, %lo(D_80116280+0x10)
/* 018A8 80A01848 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 018AC 80A0184C AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 018B0 80A01850 AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 018B4 80A01854 8E0302C0 */ lw $v1, 0x02C0($s0) ## 000002C0
/* 018B8 80A01858 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
/* 018BC 80A0185C 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF
/* 018C0 80A01860 24690008 */ addiu $t1, $v1, 0x0008 ## $t1 = 00000008
/* 018C4 80A01864 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
/* 018C8 80A01868 AC6B0004 */ sw $t3, 0x0004($v1) ## 00000004
/* 018CC 80A0186C AC6A0000 */ sw $t2, 0x0000($v1) ## 00000000
/* 018D0 80A01870 8E26016C */ lw $a2, 0x016C($s1) ## 0000016C
/* 018D4 80A01874 8E250150 */ lw $a1, 0x0150($s1) ## 00000150
/* 018D8 80A01878 AFB10014 */ sw $s1, 0x0014($sp)
/* 018DC 80A0187C AFA00010 */ sw $zero, 0x0010($sp)
/* 018E0 80A01880 8E0C02C0 */ lw $t4, 0x02C0($s0) ## 000002C0
/* 018E4 80A01884 3C0780A0 */ lui $a3, %hi(func_80A0178C) ## $a3 = 80A00000
/* 018E8 80A01888 24E7178C */ addiu $a3, $a3, %lo(func_80A0178C) ## $a3 = 80A0178C
/* 018EC 80A0188C 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 018F0 80A01890 0C0288A2 */ jal SkelAnime_Draw
/* 018F4 80A01894 AFAC0018 */ sw $t4, 0x0018($sp)
/* 018F8 80A01898 10000020 */ beq $zero, $zero, .L80A0191C
/* 018FC 80A0189C AE0202C0 */ sw $v0, 0x02C0($s0) ## 000002C0
.L80A018A0:
/* 01900 80A018A0 0C024F61 */ jal func_80093D84
/* 01904 80A018A4 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 01908 80A018A8 8E0302D0 */ lw $v1, 0x02D0($s0) ## 000002D0
/* 0190C 80A018AC 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000
/* 01910 80A018B0 3C0F8011 */ lui $t7, %hi(D_80116280)
/* 01914 80A018B4 246D0008 */ addiu $t5, $v1, 0x0008 ## $t5 = 00000008
/* 01918 80A018B8 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 0191C 80A018BC 25EF6280 */ addiu $t7, %lo(D_80116280)
/* 01920 80A018C0 35CE0020 */ ori $t6, $t6, 0x0020 ## $t6 = DB060020
/* 01924 80A018C4 AC6E0000 */ sw $t6, 0x0000($v1) ## 00000000
/* 01928 80A018C8 AC6F0004 */ sw $t7, 0x0004($v1) ## 00000004
/* 0192C 80A018CC 8E0302D0 */ lw $v1, 0x02D0($s0) ## 000002D0
/* 01930 80A018D0 3C19FB00 */ lui $t9, 0xFB00 ## $t9 = FB000000
/* 01934 80A018D4 2401FF00 */ addiu $at, $zero, 0xFF00 ## $at = FFFFFF00
/* 01938 80A018D8 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 0193C 80A018DC AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 01940 80A018E0 AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 01944 80A018E4 922900C8 */ lbu $t1, 0x00C8($s1) ## 000000C8
/* 01948 80A018E8 3C0780A0 */ lui $a3, %hi(func_80A0178C) ## $a3 = 80A00000
/* 0194C 80A018EC 24E7178C */ addiu $a3, $a3, %lo(func_80A0178C) ## $a3 = 80A0178C
/* 01950 80A018F0 01215025 */ or $t2, $t1, $at ## $t2 = FFFFFF00
/* 01954 80A018F4 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 01958 80A018F8 8E26016C */ lw $a2, 0x016C($s1) ## 0000016C
/* 0195C 80A018FC 8E250150 */ lw $a1, 0x0150($s1) ## 00000150
/* 01960 80A01900 AFB10014 */ sw $s1, 0x0014($sp)
/* 01964 80A01904 AFA00010 */ sw $zero, 0x0010($sp)
/* 01968 80A01908 8E0B02D0 */ lw $t3, 0x02D0($s0) ## 000002D0
/* 0196C 80A0190C 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 01970 80A01910 0C0288A2 */ jal SkelAnime_Draw
/* 01974 80A01914 AFAB0018 */ sw $t3, 0x0018($sp)
/* 01978 80A01918 AE0202D0 */ sw $v0, 0x02D0($s0) ## 000002D0
.L80A0191C:
/* 0197C 80A0191C 3C0680A0 */ lui $a2, %hi(D_80A019E0) ## $a2 = 80A00000
/* 01980 80A01920 24C619E0 */ addiu $a2, $a2, %lo(D_80A019E0) ## $a2 = 80A019E0
/* 01984 80A01924 27A40050 */ addiu $a0, $sp, 0x0050 ## $a0 = FFFFFFE8
/* 01988 80A01928 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 0198C 80A0192C 0C031AD5 */ jal Graph_CloseDisps
/* 01990 80A01930 24070605 */ addiu $a3, $zero, 0x0605 ## $a3 = 00000605
/* 01994 80A01934 8FBF0034 */ lw $ra, 0x0034($sp)
/* 01998 80A01938 8FB00028 */ lw $s0, 0x0028($sp)
/* 0199C 80A0193C 8FB1002C */ lw $s1, 0x002C($sp)
/* 019A0 80A01940 8FB20030 */ lw $s2, 0x0030($sp)
/* 019A4 80A01944 03E00008 */ jr $ra
/* 019A8 80A01948 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 019AC 80A0194C 00000000 */ nop

View file

@ -1,138 +0,0 @@
glabel EnEiyer_Init
/* 00000 809FFFA0 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 00004 809FFFA4 AFB00034 */ sw $s0, 0x0034($sp)
/* 00008 809FFFA8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 0000C 809FFFAC AFBF003C */ sw $ra, 0x003C($sp)
/* 00010 809FFFB0 AFB10038 */ sw $s1, 0x0038($sp)
/* 00014 809FFFB4 3C0580A0 */ lui $a1, %hi(D_80A019C4) ## $a1 = 80A00000
/* 00018 809FFFB8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 0001C 809FFFBC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 809FFFC0 24A519C4 */ addiu $a1, $a1, %lo(D_80A019C4) ## $a1 = 80A019C4
/* 00024 809FFFC4 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle)
/* 00028 809FFFC8 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle)
/* 0002C 809FFFCC 262400B4 */ addiu $a0, $s1, 0x00B4 ## $a0 = 000000B4
/* 00030 809FFFD0 3C054416 */ lui $a1, 0x4416 ## $a1 = 44160000
/* 00034 809FFFD4 0C00AC78 */ jal ActorShape_Init
/* 00038 809FFFD8 3C074282 */ lui $a3, 0x4282 ## $a3 = 42820000
/* 0003C 809FFFDC 3C060600 */ lui $a2, %hi(D_06003410) ## $a2 = 06000000
/* 00040 809FFFE0 3C070600 */ lui $a3, %hi(D_060012AC) ## $a3 = 06000000
/* 00044 809FFFE4 262E0198 */ addiu $t6, $s1, 0x0198 ## $t6 = 00000198
/* 00048 809FFFE8 262F020A */ addiu $t7, $s1, 0x020A ## $t7 = 0000020A
/* 0004C 809FFFEC 24180013 */ addiu $t8, $zero, 0x0013 ## $t8 = 00000013
/* 00050 809FFFF0 AFB80018 */ sw $t8, 0x0018($sp)
/* 00054 809FFFF4 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00058 809FFFF8 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0005C 809FFFFC 24E712AC */ addiu $a3, $a3, %lo(D_060012AC) ## $a3 = 060012AC
/* 00060 80A00000 24C63410 */ addiu $a2, $a2, %lo(D_06003410) ## $a2 = 06003410
/* 00064 80A00004 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00068 80A00008 0C02915F */ jal SkelAnime_Init
/* 0006C 80A0000C 2625014C */ addiu $a1, $s1, 0x014C ## $a1 = 0000014C
/* 00070 80A00010 26250288 */ addiu $a1, $s1, 0x0288 ## $a1 = 00000288
/* 00074 80A00014 AFA50044 */ sw $a1, 0x0044($sp)
/* 00078 80A00018 0C0170D9 */ jal Collider_InitCylinder
/* 0007C 80A0001C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00080 80A00020 3C0780A0 */ lui $a3, %hi(D_80A01970) ## $a3 = 80A00000
/* 00084 80A00024 8FA50044 */ lw $a1, 0x0044($sp)
/* 00088 80A00028 24E71970 */ addiu $a3, $a3, %lo(D_80A01970) ## $a3 = 80A01970
/* 0008C 80A0002C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00090 80A00030 0C01712B */ jal Collider_SetCylinder
/* 00094 80A00034 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 00098 80A00038 3C0580A0 */ lui $a1, %hi(D_80A019A4) ## $a1 = 80A00000
/* 0009C 80A0003C 3C0680A0 */ lui $a2, %hi(D_80A0199C) ## $a2 = 80A00000
/* 000A0 80A00040 24C6199C */ addiu $a2, $a2, %lo(D_80A0199C) ## $a2 = 80A0199C
/* 000A4 80A00044 24A519A4 */ addiu $a1, $a1, %lo(D_80A019A4) ## $a1 = 80A019A4
/* 000A8 80A00048 0C0187B5 */ jal CollisionCheck_SetInfo
/* 000AC 80A0004C 26240098 */ addiu $a0, $s1, 0x0098 ## $a0 = 00000098
/* 000B0 80A00050 8622001C */ lh $v0, 0x001C($s1) ## 0000001C
/* 000B4 80A00054 28410003 */ slti $at, $v0, 0x0003
/* 000B8 80A00058 10200039 */ beq $at, $zero, .L80A00140
/* 000BC 80A0005C 00000000 */ nop
/* 000C0 80A00060 C6240008 */ lwc1 $f4, 0x0008($s1) ## 00000008
/* 000C4 80A00064 24490001 */ addiu $t1, $v0, 0x0001 ## $t1 = 00000001
/* 000C8 80A00068 26041C24 */ addiu $a0, $s0, 0x1C24 ## $a0 = 00001C24
/* 000CC 80A0006C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 000D0 80A00070 C626000C */ lwc1 $f6, 0x000C($s1) ## 0000000C
/* 000D4 80A00074 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 000D8 80A00078 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000DC 80A0007C E7A60014 */ swc1 $f6, 0x0014($sp)
/* 000E0 80A00080 C6280010 */ lwc1 $f8, 0x0010($s1) ## 00000010
/* 000E4 80A00084 AFA0001C */ sw $zero, 0x001C($sp)
/* 000E8 80A00088 2407003A */ addiu $a3, $zero, 0x003A ## $a3 = 0000003A
/* 000EC 80A0008C E7A80018 */ swc1 $f8, 0x0018($sp)
/* 000F0 80A00090 863900B6 */ lh $t9, 0x00B6($s1) ## 000000B6
/* 000F4 80A00094 AFA90028 */ sw $t1, 0x0028($sp)
/* 000F8 80A00098 AFA00024 */ sw $zero, 0x0024($sp)
/* 000FC 80A0009C 27284000 */ addiu $t0, $t9, 0x4000 ## $t0 = 00004000
/* 00100 80A000A0 0C00C916 */ jal Actor_SpawnAsChild
/* 00104 80A000A4 AFA80020 */ sw $t0, 0x0020($sp)
/* 00108 80A000A8 54400006 */ bnel $v0, $zero, .L80A000C4
/* 0010C 80A000AC 8622001C */ lh $v0, 0x001C($s1) ## 0000001C
/* 00110 80A000B0 0C00B55C */ jal Actor_Kill
/* 00114 80A000B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00118 80A000B8 1000002C */ beq $zero, $zero, .L80A0016C
/* 0011C 80A000BC 8FBF003C */ lw $ra, 0x003C($sp)
/* 00120 80A000C0 8622001C */ lh $v0, 0x001C($s1) ## 0000001C
.L80A000C4:
/* 00124 80A000C4 1440001E */ bne $v0, $zero, .L80A00140
/* 00128 80A000C8 00000000 */ nop
/* 0012C 80A000CC 8E24011C */ lw $a0, 0x011C($s1) ## 0000011C
/* 00130 80A000D0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00134 80A000D4 24030003 */ addiu $v1, $zero, 0x0003 ## $v1 = 00000003
/* 00138 80A000D8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
.L80A000DC:
/* 0013C 80A000DC 12000004 */ beq $s0, $zero, .L80A000F0
/* 00140 80A000E0 00000000 */ nop
/* 00144 80A000E4 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 00148 80A000E8 1443FFFC */ bne $v0, $v1, .L80A000DC
/* 0014C 80A000EC 8E10011C */ lw $s0, 0x011C($s0) ## 0000011C
.L80A000F0:
/* 00150 80A000F0 5043000B */ beql $v0, $v1, .L80A00120
/* 00154 80A000F4 AC910118 */ sw $s1, 0x0118($a0) ## 00000118
/* 00158 80A000F8 1220001B */ beq $s1, $zero, .L80A00168
/* 0015C 80A000FC 02208025 */ or $s0, $s1, $zero ## $s0 = 00000000
.L80A00100:
/* 00160 80A00100 0C00B55C */ jal Actor_Kill
/* 00164 80A00104 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00168 80A00108 8E10011C */ lw $s0, 0x011C($s0) ## 0000011C
/* 0016C 80A0010C 1600FFFC */ bne $s0, $zero, .L80A00100
/* 00170 80A00110 00000000 */ nop
/* 00174 80A00114 10000015 */ beq $zero, $zero, .L80A0016C
/* 00178 80A00118 8FBF003C */ lw $ra, 0x003C($sp)
/* 0017C 80A0011C AC910118 */ sw $s1, 0x0118($a0) ## 00000118
.L80A00120:
/* 00180 80A00120 8E2A011C */ lw $t2, 0x011C($s1) ## 0000011C
/* 00184 80A00124 8D4B011C */ lw $t3, 0x011C($t2) ## 0000011C
/* 00188 80A00128 AD710118 */ sw $s1, 0x0118($t3) ## 00000118
/* 0018C 80A0012C 8E2C011C */ lw $t4, 0x011C($s1) ## 0000011C
/* 00190 80A00130 8D8D011C */ lw $t5, 0x011C($t4) ## 0000011C
/* 00194 80A00134 8DAE011C */ lw $t6, 0x011C($t5) ## 0000011C
/* 00198 80A00138 ADD10118 */ sw $s1, 0x0118($t6) ## 00000118
/* 0019C 80A0013C 8622001C */ lh $v0, 0x001C($s1) ## 0000001C
.L80A00140:
/* 001A0 80A00140 10400003 */ beq $v0, $zero, .L80A00150
/* 001A4 80A00144 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 001A8 80A00148 14410005 */ bne $v0, $at, .L80A00160
/* 001AC 80A0014C 00000000 */ nop
.L80A00150:
/* 001B0 80A00150 0C280086 */ jal func_80A00218
/* 001B4 80A00154 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001B8 80A00158 10000004 */ beq $zero, $zero, .L80A0016C
/* 001BC 80A0015C 8FBF003C */ lw $ra, 0x003C($sp)
.L80A00160:
/* 001C0 80A00160 0C2800ED */ jal func_80A003B4
/* 001C4 80A00164 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A00168:
/* 001C8 80A00168 8FBF003C */ lw $ra, 0x003C($sp)
.L80A0016C:
/* 001CC 80A0016C 8FB00034 */ lw $s0, 0x0034($sp)
/* 001D0 80A00170 8FB10038 */ lw $s1, 0x0038($sp)
/* 001D4 80A00174 03E00008 */ jr $ra
/* 001D8 80A00178 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000

View file

@ -1,156 +0,0 @@
glabel EnEiyer_Update
/* 015D0 80A01570 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 015D4 80A01574 AFBF0024 */ sw $ra, 0x0024($sp)
/* 015D8 80A01578 AFB00020 */ sw $s0, 0x0020($sp)
/* 015DC 80A0157C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 015E0 80A01580 0C28050B */ jal func_80A0142C
/* 015E4 80A01584 AFA5003C */ sw $a1, 0x003C($sp)
/* 015E8 80A01588 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 015EC 80A0158C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 015F0 80A01590 8FA5003C */ lw $a1, 0x003C($sp)
/* 015F4 80A01594 0320F809 */ jalr $ra, $t9
/* 015F8 80A01598 00000000 */ nop
/* 015FC 80A0159C 860E0030 */ lh $t6, 0x0030($s0) ## 00000030
/* 01600 80A015A0 11C00006 */ beq $t6, $zero, .L80A015BC
/* 01604 80A015A4 00000000 */ nop
/* 01608 80A015A8 8E180190 */ lw $t8, 0x0190($s0) ## 00000190
/* 0160C 80A015AC 3C0F80A0 */ lui $t7, %hi(func_80A01374) ## $t7 = 80A00000
/* 01610 80A015B0 25EF1374 */ addiu $t7, $t7, %lo(func_80A01374) ## $t7 = 80A01374
/* 01614 80A015B4 15F80005 */ bne $t7, $t8, .L80A015CC
/* 01618 80A015B8 00000000 */ nop
.L80A015BC:
/* 0161C 80A015BC 0C00B638 */ jal Actor_MoveForward
/* 01620 80A015C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01624 80A015C4 10000004 */ beq $zero, $zero, .L80A015D8
/* 01628 80A015C8 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
.L80A015CC:
/* 0162C 80A015CC 0C00B65F */ jal func_8002D97C
/* 01630 80A015D0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01634 80A015D4 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
.L80A015D8:
/* 01638 80A015D8 3C0880A0 */ lui $t0, %hi(func_80A00C70) ## $t0 = 80A00000
/* 0163C 80A015DC 25080C70 */ addiu $t0, $t0, %lo(func_80A00C70) ## $t0 = 80A00C70
/* 01640 80A015E0 11020013 */ beq $t0, $v0, .L80A01630
/* 01644 80A015E4 3C0980A0 */ lui $t1, %hi(func_80A00F84) ## $t1 = 80A00000
/* 01648 80A015E8 25290F84 */ addiu $t1, $t1, %lo(func_80A00F84) ## $t1 = 80A00F84
/* 0164C 80A015EC 11220010 */ beq $t1, $v0, .L80A01630
/* 01650 80A015F0 3C0A80A0 */ lui $t2, %hi(func_80A01374) ## $t2 = 80A00000
/* 01654 80A015F4 254A1374 */ addiu $t2, $t2, %lo(func_80A01374) ## $t2 = 80A01374
/* 01658 80A015F8 1142000D */ beq $t2, $v0, .L80A01630
/* 0165C 80A015FC 3C0B80A0 */ lui $t3, %hi(func_80A01240) ## $t3 = 80A00000
/* 01660 80A01600 256B1240 */ addiu $t3, $t3, %lo(func_80A01240) ## $t3 = 80A01240
/* 01664 80A01604 1162000A */ beq $t3, $v0, .L80A01630
/* 01668 80A01608 3C0C80A0 */ lui $t4, %hi(func_80A01104) ## $t4 = 80A00000
/* 0166C 80A0160C 258C1104 */ addiu $t4, $t4, %lo(func_80A01104) ## $t4 = 80A01104
/* 01670 80A01610 11820007 */ beq $t4, $v0, .L80A01630
/* 01674 80A01614 3C0D80A0 */ lui $t5, %hi(func_80A01010) ## $t5 = 80A00000
/* 01678 80A01618 25AD1010 */ addiu $t5, $t5, %lo(func_80A01010) ## $t5 = 80A01010
/* 0167C 80A0161C 55A2000F */ bnel $t5, $v0, .L80A0165C
/* 01680 80A01620 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 01684 80A01624 86190194 */ lh $t9, 0x0194($s0) ## 00000194
/* 01688 80A01628 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 0168C 80A0162C 1721000A */ bne $t9, $at, .L80A01658
.L80A01630:
/* 01690 80A01630 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 01694 80A01634 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
/* 01698 80A01638 240E0007 */ addiu $t6, $zero, 0x0007 ## $t6 = 00000007
/* 0169C 80A0163C AFAE0014 */ sw $t6, 0x0014($sp)
/* 016A0 80A01640 8FA4003C */ lw $a0, 0x003C($sp)
/* 016A4 80A01644 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 016A8 80A01648 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
/* 016AC 80A0164C 3C0741D8 */ lui $a3, 0x41D8 ## $a3 = 41D80000
/* 016B0 80A01650 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 016B4 80A01654 E7A40010 */ swc1 $f4, 0x0010($sp)
.L80A01658:
/* 016B8 80A01658 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
.L80A0165C:
/* 016BC 80A0165C 2404000A */ addiu $a0, $zero, 0x000A ## $a0 = 0000000A
/* 016C0 80A01660 26050288 */ addiu $a1, $s0, 0x0288 ## $a1 = 00000288
/* 016C4 80A01664 5083000A */ beql $a0, $v1, .L80A01690
/* 016C8 80A01668 86080032 */ lh $t0, 0x0032($s0) ## 00000032
/* 016CC 80A0166C 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
/* 016D0 80A01670 3C0F80A0 */ lui $t7, %hi(func_80A00858) ## $t7 = 80A00000
/* 016D4 80A01674 25EF0858 */ addiu $t7, $t7, %lo(func_80A00858) ## $t7 = 80A00858
/* 016D8 80A01678 11E20007 */ beq $t7, $v0, .L80A01698
/* 016DC 80A0167C 3C1880A0 */ lui $t8, %hi(func_80A008D4) ## $t8 = 80A00000
/* 016E0 80A01680 271808D4 */ addiu $t8, $t8, %lo(func_80A008D4) ## $t8 = 80A008D4
/* 016E4 80A01684 13020004 */ beq $t8, $v0, .L80A01698
/* 016E8 80A01688 00000000 */ nop
/* 016EC 80A0168C 86080032 */ lh $t0, 0x0032($s0) ## 00000032
.L80A01690:
/* 016F0 80A01690 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 016F4 80A01694 A60800B6 */ sh $t0, 0x00B6($s0) ## 000000B6
.L80A01698:
/* 016F8 80A01698 50600003 */ beql $v1, $zero, .L80A016A8
/* 016FC 80A0169C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01700 80A016A0 1483001F */ bne $a0, $v1, .L80A01720
/* 01704 80A016A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A016A8:
/* 01708 80A016A8 0C0189B7 */ jal Collider_UpdateCylinder
/* 0170C 80A016AC AFA5002C */ sw $a1, 0x002C($sp)
/* 01710 80A016B0 92090298 */ lbu $t1, 0x0298($s0) ## 00000298
/* 01714 80A016B4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01718 80A016B8 8FA4003C */ lw $a0, 0x003C($sp)
/* 0171C 80A016BC 312A0001 */ andi $t2, $t1, 0x0001 ## $t2 = 00000000
/* 01720 80A016C0 11400004 */ beq $t2, $zero, .L80A016D4
/* 01724 80A016C4 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 01728 80A016C8 00812821 */ addu $a1, $a0, $at
/* 0172C 80A016CC 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 01730 80A016D0 8FA6002C */ lw $a2, 0x002C($sp)
.L80A016D4:
/* 01734 80A016D4 920B0299 */ lbu $t3, 0x0299($s0) ## 00000299
/* 01738 80A016D8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0173C 80A016DC 8FA4003C */ lw $a0, 0x003C($sp)
/* 01740 80A016E0 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000
/* 01744 80A016E4 11800004 */ beq $t4, $zero, .L80A016F8
/* 01748 80A016E8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 0174C 80A016EC 00812821 */ addu $a1, $a0, $at
/* 01750 80A016F0 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 01754 80A016F4 8FA6002C */ lw $a2, 0x002C($sp)
.L80A016F8:
/* 01758 80A016F8 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 0175C 80A016FC 3C0D80A0 */ lui $t5, %hi(func_80A00B18) ## $t5 = 80A00000
/* 01760 80A01700 25AD0B18 */ addiu $t5, $t5, %lo(func_80A00B18) ## $t5 = 80A00B18
/* 01764 80A01704 11B90006 */ beq $t5, $t9, .L80A01720
/* 01768 80A01708 8FA4003C */ lw $a0, 0x003C($sp)
/* 0176C 80A0170C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01770 80A01710 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 01774 80A01714 00812821 */ addu $a1, $a0, $at
/* 01778 80A01718 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOC
/* 0177C 80A0171C 8FA6002C */ lw $a2, 0x002C($sp)
.L80A01720:
/* 01780 80A01720 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004
/* 01784 80A01724 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 01788 80A01728 53000014 */ beql $t8, $zero, .L80A0177C
/* 0178C 80A0172C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01790 80A01730 0C01DE1C */ jal Math_SinS
## sins?
/* 01794 80A01734 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 01798 80A01738 3C014148 */ lui $at, 0x4148 ## $at = 41480000
/* 0179C 80A0173C 44813000 */ mtc1 $at, $f6 ## $f6 = 12.50
/* 017A0 80A01740 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 017A4 80A01744 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 017A8 80A01748 46060202 */ mul.s $f8, $f0, $f6
/* 017AC 80A0174C 460A4400 */ add.s $f16, $f8, $f10
/* 017B0 80A01750 0C01DE0D */ jal Math_CosS
## coss?
/* 017B4 80A01754 E6100038 */ swc1 $f16, 0x0038($s0) ## 00000038
/* 017B8 80A01758 3C014148 */ lui $at, 0x4148 ## $at = 41480000
/* 017BC 80A0175C 44819000 */ mtc1 $at, $f18 ## $f18 = 12.50
/* 017C0 80A01760 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 017C4 80A01764 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 017C8 80A01768 46120102 */ mul.s $f4, $f0, $f18
/* 017CC 80A0176C E60A003C */ swc1 $f10, 0x003C($s0) ## 0000003C
/* 017D0 80A01770 46062200 */ add.s $f8, $f4, $f6
/* 017D4 80A01774 E6080040 */ swc1 $f8, 0x0040($s0) ## 00000040
/* 017D8 80A01778 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0177C:
/* 017DC 80A0177C 8FB00020 */ lw $s0, 0x0020($sp)
/* 017E0 80A01780 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 017E4 80A01784 03E00008 */ jr $ra
/* 017E8 80A01788 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_80A001A4
/* 00204 80A001A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00208 80A001A8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0020C 80A001AC 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 00210 80A001B0 84840032 */ lh $a0, 0x0032($a0) ## 00000032
/* 00214 80A001B4 0C01DE1C */ jal Math_SinS
## sins?
/* 00218 80A001B8 AFA50018 */ sw $a1, 0x0018($sp)
/* 0021C 80A001BC 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00220 80A001C0 44812000 */ mtc1 $at, $f4 ## $f4 = 80.00
/* 00224 80A001C4 8FA50018 */ lw $a1, 0x0018($sp)
/* 00228 80A001C8 46040182 */ mul.s $f6, $f0, $f4
/* 0022C 80A001CC C4A80008 */ lwc1 $f8, 0x0008($a1) ## 00000008
/* 00230 80A001D0 84A40032 */ lh $a0, 0x0032($a1) ## 00000032
/* 00234 80A001D4 46083280 */ add.s $f10, $f6, $f8
/* 00238 80A001D8 0C01DE0D */ jal Math_CosS
## coss?
/* 0023C 80A001DC E4AA0024 */ swc1 $f10, 0x0024($a1) ## 00000024
/* 00240 80A001E0 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00244 80A001E4 44818000 */ mtc1 $at, $f16 ## $f16 = 80.00
/* 00248 80A001E8 8FA50018 */ lw $a1, 0x0018($sp)
/* 0024C 80A001EC 46100482 */ mul.s $f18, $f0, $f16
/* 00250 80A001F0 C4A40010 */ lwc1 $f4, 0x0010($a1) ## 00000010
/* 00254 80A001F4 84AE0032 */ lh $t6, 0x0032($a1) ## 00000032
/* 00258 80A001F8 25CF4000 */ addiu $t7, $t6, 0x4000 ## $t7 = 00004000
/* 0025C 80A001FC A4AF00B6 */ sh $t7, 0x00B6($a1) ## 000000B6
/* 00260 80A00200 46049180 */ add.s $f6, $f18, $f4
/* 00264 80A00204 E4A6002C */ swc1 $f6, 0x002C($a1) ## 0000002C
/* 00268 80A00208 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0026C 80A0020C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00270 80A00210 03E00008 */ jr $ra
/* 00274 80A00214 00000000 */ nop

View file

@ -1,87 +0,0 @@
glabel func_80A00218
/* 00278 80A00218 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0027C 80A0021C AFB00018 */ sw $s0, 0x0018($sp)
/* 00280 80A00220 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00284 80A00224 AFBF001C */ sw $ra, 0x001C($sp)
/* 00288 80A00228 240E0019 */ addiu $t6, $zero, 0x0019 ## $t6 = 00000019
/* 0028C 80A0022C 3C050600 */ lui $a1, %hi(D_060012AC) ## $a1 = 06000000
/* 00290 80A00230 AC8E02A8 */ sw $t6, 0x02A8($a0) ## 000002A8
/* 00294 80A00234 24A512AC */ addiu $a1, $a1, %lo(D_060012AC) ## $a1 = 060012AC
/* 00298 80A00238 0C0294BE */ jal Animation_PlayLoop
/* 0029C 80A0023C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 002A0 80A00240 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 002A4 80A00244 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008
/* 002A8 80A00248 44814000 */ mtc1 $at, $f8 ## $f8 = 40.00
/* 002AC 80A0024C C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C
/* 002B0 80A00250 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 002B4 80A00254 E6040024 */ swc1 $f4, 0x0024($s0) ## 00000024
/* 002B8 80A00258 46083281 */ sub.s $f10, $f6, $f8
/* 002BC 80A0025C C6100010 */ lwc1 $f16, 0x0010($s0) ## 00000010
/* 002C0 80A00260 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 002C4 80A00264 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 002C8 80A00268 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 002CC 80A0026C E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028
/* 002D0 80A00270 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C
/* 002D4 80A00274 E6120060 */ swc1 $f18, 0x0060($s0) ## 00000060
/* 002D8 80A00278 10410016 */ beq $v0, $at, .L80A002D4
/* 002DC 80A0027C E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 002E0 80A00280 5440000C */ bnel $v0, $zero, .L80A002B4
/* 002E4 80A00284 8E190118 */ lw $t9, 0x0118($s0) ## 00000118
/* 002E8 80A00288 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 002EC 80A0028C 00000000 */ nop
/* 002F0 80A00290 3C014780 */ lui $at, 0x4780 ## $at = 47800000
/* 002F4 80A00294 44813000 */ mtc1 $at, $f6 ## $f6 = 65536.00
/* 002F8 80A00298 00000000 */ nop
/* 002FC 80A0029C 46060202 */ mul.s $f8, $f0, $f6
/* 00300 80A002A0 4600428D */ trunc.w.s $f10, $f8
/* 00304 80A002A4 44185000 */ mfc1 $t8, $f10
/* 00308 80A002A8 10000006 */ beq $zero, $zero, .L80A002C4
/* 0030C 80A002AC A6180032 */ sh $t8, 0x0032($s0) ## 00000032
/* 00310 80A002B0 8E190118 */ lw $t9, 0x0118($s0) ## 00000118
.L80A002B4:
/* 00314 80A002B4 00024B80 */ sll $t1, $v0, 14
/* 00318 80A002B8 87280032 */ lh $t0, 0x0032($t9) ## 00000032
/* 0031C 80A002BC 01095021 */ addu $t2, $t0, $t1
/* 00320 80A002C0 A60A0032 */ sh $t2, 0x0032($s0) ## 00000032
.L80A002C4:
/* 00324 80A002C4 0C280069 */ jal func_80A001A4
/* 00328 80A002C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0032C 80A002CC 1000000D */ beq $zero, $zero, .L80A00304
/* 00330 80A002D0 920C0298 */ lbu $t4, 0x0298($s0) ## 00000298
.L80A002D4:
/* 00334 80A002D4 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00338 80A002D8 00000000 */ nop
/* 0033C 80A002DC 3C014780 */ lui $at, 0x4780 ## $at = 47800000
/* 00340 80A002E0 44818000 */ mtc1 $at, $f16 ## $f16 = 65536.00
/* 00344 80A002E4 00000000 */ nop
/* 00348 80A002E8 46100482 */ mul.s $f18, $f0, $f16
/* 0034C 80A002EC 4600910D */ trunc.w.s $f4, $f18
/* 00350 80A002F0 44022000 */ mfc1 $v0, $f4
/* 00354 80A002F4 00000000 */ nop
/* 00358 80A002F8 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
/* 0035C 80A002FC A6020032 */ sh $v0, 0x0032($s0) ## 00000032
/* 00360 80A00300 920C0298 */ lbu $t4, 0x0298($s0) ## 00000298
.L80A00304:
/* 00364 80A00304 920E0299 */ lbu $t6, 0x0299($s0) ## 00000299
/* 00368 80A00308 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 0036C 80A0030C 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00370 80A00310 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 00374 80A00314 2401EFFE */ addiu $at, $zero, 0xEFFE ## $at = FFFFEFFE
/* 00378 80A00318 3C0880A0 */ lui $t0, %hi(func_80A00858) ## $t0 = 80A00000
/* 0037C 80A0031C 25080858 */ addiu $t0, $t0, %lo(func_80A00858) ## $t0 = 80A00858
/* 00380 80A00320 318DFFFE */ andi $t5, $t4, 0xFFFE ## $t5 = 00000000
/* 00384 80A00324 31CFFFFE */ andi $t7, $t6, 0xFFFE ## $t7 = 00000000
/* 00388 80A00328 0301C824 */ and $t9, $t8, $at
/* 0038C 80A0032C A20D0298 */ sb $t5, 0x0298($s0) ## 00000298
/* 00390 80A00330 A20F0299 */ sb $t7, 0x0299($s0) ## 00000299
/* 00394 80A00334 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 00398 80A00338 AE080190 */ sw $t0, 0x0190($s0) ## 00000190
/* 0039C 80A0033C E60600C4 */ swc1 $f6, 0x00C4($s0) ## 000000C4
/* 003A0 80A00340 E60800BC */ swc1 $f8, 0x00BC($s0) ## 000000BC
/* 003A4 80A00344 8FBF001C */ lw $ra, 0x001C($sp)
/* 003A8 80A00348 8FB00018 */ lw $s0, 0x0018($sp)
/* 003AC 80A0034C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003B0 80A00350 03E00008 */ jr $ra
/* 003B4 80A00354 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_80A00358
/* 003B8 80A00358 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 003BC 80A0035C 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 003C0 80A00360 3C1880A0 */ lui $t8, %hi(func_80A008D4) ## $t8 = 80A00000
/* 003C4 80A00364 15C10008 */ bne $t6, $at, .L80A00388
/* 003C8 80A00368 271808D4 */ addiu $t8, $t8, %lo(func_80A008D4) ## $t8 = 80A008D4
/* 003CC 80A0036C 3C01BF00 */ lui $at, 0xBF00 ## $at = BF000000
/* 003D0 80A00370 44812000 */ mtc1 $at, $f4 ## $f4 = -0.50
/* 003D4 80A00374 3C0F80A0 */ lui $t7, %hi(func_80A00950) ## $t7 = 80A00000
/* 003D8 80A00378 25EF0950 */ addiu $t7, $t7, %lo(func_80A00950) ## $t7 = 80A00950
/* 003DC 80A0037C AC8F0190 */ sw $t7, 0x0190($a0) ## 00000190
/* 003E0 80A00380 10000002 */ beq $zero, $zero, .L80A0038C
/* 003E4 80A00384 E4840068 */ swc1 $f4, 0x0068($a0) ## 00000068
.L80A00388:
/* 003E8 80A00388 AC980190 */ sw $t8, 0x0190($a0) ## 00000190
.L80A0038C:
/* 003EC 80A0038C 8C890004 */ lw $t1, 0x0004($a0) ## 00000004
/* 003F0 80A00390 90990299 */ lbu $t9, 0x0299($a0) ## 00000299
/* 003F4 80A00394 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 003F8 80A00398 01215024 */ and $t2, $t1, $at
/* 003FC 80A0039C AC8A0004 */ sw $t2, 0x0004($a0) ## 00000004
/* 00400 80A003A0 354C0001 */ ori $t4, $t2, 0x0001 ## $t4 = 00000001
/* 00404 80A003A4 37280001 */ ori $t0, $t9, 0x0001 ## $t0 = 00000001
/* 00408 80A003A8 A0880299 */ sb $t0, 0x0299($a0) ## 00000299
/* 0040C 80A003AC 03E00008 */ jr $ra
/* 00410 80A003B0 AC8C0004 */ sw $t4, 0x0004($a0) ## 00000004

View file

@ -1,11 +0,0 @@
glabel func_80A003B4
/* 00414 80A003B4 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
/* 00418 80A003B8 849800B6 */ lh $t8, 0x00B6($a0) ## 000000B6
/* 0041C 80A003BC 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00420 80A003C0 3C1980A0 */ lui $t9, %hi(func_80A00A84) ## $t9 = 80A00000
/* 00424 80A003C4 27390A84 */ addiu $t9, $t9, %lo(func_80A00A84) ## $t9 = 80A00A84
/* 00428 80A003C8 01C17824 */ and $t7, $t6, $at
/* 0042C 80A003CC AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004
/* 00430 80A003D0 AC990190 */ sw $t9, 0x0190($a0) ## 00000190
/* 00434 80A003D4 03E00008 */ jr $ra
/* 00438 80A003D8 A4980032 */ sh $t8, 0x0032($a0) ## 00000032

View file

@ -1,58 +0,0 @@
glabel func_80A003DC
/* 0043C 80A003DC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00440 80A003E0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00444 80A003E4 AFB00020 */ sw $s0, 0x0020($sp)
/* 00448 80A003E8 AFA50034 */ sw $a1, 0x0034($sp)
/* 0044C 80A003EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00450 80A003F0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00454 80A003F4 3C050600 */ lui $a1, %hi(D_06000704) ## $a1 = 06000000
/* 00458 80A003F8 24A50704 */ addiu $a1, $a1, %lo(D_06000704) ## $a1 = 06000704
/* 0045C 80A003FC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00460 80A00400 0C02947A */ jal Animation_PlayOnce
/* 00464 80A00404 E484FF1C */ swc1 $f4, -0x00E4($a0) ## 00000068
/* 00468 80A00408 3C0EFFCF */ lui $t6, 0xFFCF ## $t6 = FFCF0000
/* 0046C 80A0040C 35CEFFFF */ ori $t6, $t6, 0xFFFF ## $t6 = FFCFFFFF
/* 00470 80A00410 AE0E02A8 */ sw $t6, 0x02A8($s0) ## 000002A8
/* 00474 80A00414 26020024 */ addiu $v0, $s0, 0x0024 ## $v0 = 00000024
/* 00478 80A00418 8C580000 */ lw $t8, 0x0000($v0) ## 00000024
/* 0047C 80A0041C 3C014282 */ lui $at, 0x4282 ## $at = 42820000
/* 00480 80A00420 44813000 */ mtc1 $at, $f6 ## $f6 = 65.00
/* 00484 80A00424 AE18027C */ sw $t8, 0x027C($s0) ## 0000027C
/* 00488 80A00428 8C4F0004 */ lw $t7, 0x0004($v0) ## 00000028
/* 0048C 80A0042C 8E080004 */ lw $t0, 0x0004($s0) ## 00000004
/* 00490 80A00430 920A0299 */ lbu $t2, 0x0299($s0) ## 00000299
/* 00494 80A00434 AE0F0280 */ sw $t7, 0x0280($s0) ## 00000280
/* 00498 80A00438 8C580008 */ lw $t8, 0x0008($v0) ## 0000002C
/* 0049C 80A0043C 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 004A0 80A00440 861900B6 */ lh $t9, 0x00B6($s0) ## 000000B6
/* 004A4 80A00444 44814000 */ mtc1 $at, $f8 ## $f8 = 600.00
/* 004A8 80A00448 35091000 */ ori $t1, $t0, 0x1000 ## $t1 = 00001000
/* 004AC 80A0044C 314BFFFE */ andi $t3, $t2, 0xFFFE ## $t3 = 00000000
/* 004B0 80A00450 AE090004 */ sw $t1, 0x0004($s0) ## 00000004
/* 004B4 80A00454 A20B0299 */ sb $t3, 0x0299($s0) ## 00000299
/* 004B8 80A00458 E60600C4 */ swc1 $f6, 0x00C4($s0) ## 000000C4
/* 004BC 80A0045C AE180284 */ sw $t8, 0x0284($s0) ## 00000284
/* 004C0 80A00460 A6190032 */ sh $t9, 0x0032($s0) ## 00000032
/* 004C4 80A00464 E60800BC */ swc1 $f8, 0x00BC($s0) ## 000000BC
/* 004C8 80A00468 AFA2002C */ sw $v0, 0x002C($sp)
/* 004CC 80A0046C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004D0 80A00470 0C00BE0A */ jal Audio_PlayActorSound2
/* 004D4 80A00474 240538C2 */ addiu $a1, $zero, 0x38C2 ## $a1 = 000038C2
/* 004D8 80A00478 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 004DC 80A0047C 240D02BC */ addiu $t5, $zero, 0x02BC ## $t5 = 000002BC
/* 004E0 80A00480 AFAD0014 */ sw $t5, 0x0014($sp)
/* 004E4 80A00484 AFAC0010 */ sw $t4, 0x0010($sp)
/* 004E8 80A00488 8FA40034 */ lw $a0, 0x0034($sp)
/* 004EC 80A0048C 8FA5002C */ lw $a1, 0x002C($sp)
/* 004F0 80A00490 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 004F4 80A00494 0C00A527 */ jal EffectSsGSplash_Spawn
/* 004F8 80A00498 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 004FC 80A0049C 3C0E80A0 */ lui $t6, %hi(func_80A00B18) ## $t6 = 80A00000
/* 00500 80A004A0 25CE0B18 */ addiu $t6, $t6, %lo(func_80A00B18) ## $t6 = 80A00B18
/* 00504 80A004A4 AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
/* 00508 80A004A8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0050C 80A004AC 8FB00020 */ lw $s0, 0x0020($sp)
/* 00510 80A004B0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00514 80A004B4 03E00008 */ jr $ra
/* 00518 80A004B8 00000000 */ nop

View file

@ -1,37 +0,0 @@
.late_rodata
glabel D_80A019F0
.word 0xBEC90FDB
.text
glabel func_80A004BC
/* 0051C 80A004BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00520 80A004C0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00524 80A004C4 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00528 80A004C8 3C0180A0 */ lui $at, %hi(D_80A019F0) ## $at = 80A00000
/* 0052C 80A004CC A48E0196 */ sh $t6, 0x0196($a0) ## 00000196
/* 00530 80A004D0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00534 80A004D4 0C041184 */ jal cosf
/* 00538 80A004D8 C42C19F0 */ lwc1 $f12, %lo(D_80A019F0)($at)
/* 0053C 80A004DC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00540 80A004E0 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00544 80A004E4 8FA70018 */ lw $a3, 0x0018($sp)
/* 00548 80A004E8 3C050600 */ lui $a1, %hi(D_06000FC0) ## $a1 = 06000000
/* 0054C 80A004EC 46040182 */ mul.s $f6, $f0, $f4
/* 00550 80A004F0 C4E80028 */ lwc1 $f8, 0x0028($a3) ## 00000028
/* 00554 80A004F4 24A50FC0 */ addiu $a1, $a1, %lo(D_06000FC0) ## $a1 = 06000FC0
/* 00558 80A004F8 3C06C0A0 */ lui $a2, 0xC0A0 ## $a2 = C0A00000
/* 0055C 80A004FC 24E4014C */ addiu $a0, $a3, 0x014C ## $a0 = 0000014C
/* 00560 80A00500 46083280 */ add.s $f10, $f6, $f8
/* 00564 80A00504 0C0294D3 */ jal Animation_MorphToLoop
/* 00568 80A00508 E4EA0280 */ swc1 $f10, 0x0280($a3) ## 00000280
/* 0056C 80A0050C 8FA70018 */ lw $a3, 0x0018($sp)
/* 00570 80A00510 3C1880A0 */ lui $t8, %hi(func_80A00C70) ## $t8 = 80A00000
/* 00574 80A00514 240F003C */ addiu $t7, $zero, 0x003C ## $t7 = 0000003C
/* 00578 80A00518 27180C70 */ addiu $t8, $t8, %lo(func_80A00C70) ## $t8 = 80A00C70
/* 0057C 80A0051C A4EF0194 */ sh $t7, 0x0194($a3) ## 00000194
/* 00580 80A00520 ACF80190 */ sw $t8, 0x0190($a3) ## 00000190
/* 00584 80A00524 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00588 80A00528 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0058C 80A0052C 03E00008 */ jr $ra
/* 00590 80A00530 00000000 */ nop

View file

@ -1,5 +0,0 @@
glabel func_80A00534
/* 00594 80A00534 3C0E80A0 */ lui $t6, %hi(func_80A00E8C) ## $t6 = 80A00000
/* 00598 80A00538 25CE0E8C */ addiu $t6, $t6, %lo(func_80A00E8C) ## $t6 = 80A00E8C
/* 0059C 80A0053C 03E00008 */ jr $ra
/* 005A0 80A00540 AC8E0190 */ sw $t6, 0x0190($a0) ## 00000190

View file

@ -1,18 +0,0 @@
glabel func_80A00544
/* 005A4 80A00544 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 005A8 80A00548 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 005AC 80A0054C 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 005B0 80A00550 E4840060 */ swc1 $f4, 0x0060($a0) ## 00000060
/* 005B4 80A00554 44814000 */ mtc1 $at, $f8 ## $f8 = 15.00
/* 005B8 80A00558 908E0298 */ lbu $t6, 0x0298($a0) ## 00000298
/* 005BC 80A0055C C4460028 */ lwc1 $f6, 0x0028($v0) ## 00000028
/* 005C0 80A00560 3C0880A0 */ lui $t0, %hi(func_80A00F84) ## $t0 = 80A00000
/* 005C4 80A00564 35D80001 */ ori $t8, $t6, 0x0001 ## $t8 = 00000001
/* 005C8 80A00568 46083280 */ add.s $f10, $f6, $f8
/* 005CC 80A0056C A0980298 */ sb $t8, 0x0298($a0) ## 00000298
/* 005D0 80A00570 3319FFFD */ andi $t9, $t8, 0xFFFD ## $t9 = 00000001
/* 005D4 80A00574 25080F84 */ addiu $t0, $t0, %lo(func_80A00F84) ## $t0 = 80A00F84
/* 005D8 80A00578 E48A0280 */ swc1 $f10, 0x0280($a0) ## 00000280
/* 005DC 80A0057C A0990298 */ sb $t9, 0x0298($a0) ## 00000298
/* 005E0 80A00580 03E00008 */ jr $ra
/* 005E4 80A00584 AC880190 */ sw $t0, 0x0190($a0) ## 00000190

View file

@ -1,31 +0,0 @@
glabel func_80A00588
/* 005E8 80A00588 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005EC 80A0058C AFBF0014 */ sw $ra, 0x0014($sp)
/* 005F0 80A00590 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 005F4 80A00594 3C050600 */ lui $a1, %hi(D_060004C4) ## $a1 = 06000000
/* 005F8 80A00598 24A504C4 */ addiu $a1, $a1, %lo(D_060004C4) ## $a1 = 060004C4
/* 005FC 80A0059C AFA70018 */ sw $a3, 0x0018($sp)
/* 00600 80A005A0 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00604 80A005A4 0C029490 */ jal Animation_MorphToPlayOnce
/* 00608 80A005A8 3C06C040 */ lui $a2, 0xC040 ## $a2 = C0400000
/* 0060C 80A005AC 8FA70018 */ lw $a3, 0x0018($sp)
/* 00610 80A005B0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00614 80A005B4 2408FFFF */ addiu $t0, $zero, 0xFFFF ## $t0 = FFFFFFFF
/* 00618 80A005B8 90EE0298 */ lbu $t6, 0x0298($a3) ## 00000298
/* 0061C 80A005BC 8CF80004 */ lw $t8, 0x0004($a3) ## 00000004
/* 00620 80A005C0 3C0980A0 */ lui $t1, %hi(D_80A01970+0x22) ## $t1 = 80A00000
/* 00624 80A005C4 31CFFFFE */ andi $t7, $t6, 0xFFFE ## $t7 = 00000000
/* 00628 80A005C8 37190010 */ ori $t9, $t8, 0x0010 ## $t9 = 00000010
/* 0062C 80A005CC A0EF0298 */ sb $t7, 0x0298($a3) ## 00000298
/* 00630 80A005D0 ACF90004 */ sw $t9, 0x0004($a3) ## 00000004
/* 00634 80A005D4 A4E80194 */ sh $t0, 0x0194($a3) ## 00000194
/* 00638 80A005D8 E4E4006C */ swc1 $f4, 0x006C($a3) ## 0000006C
/* 0063C 80A005DC 85291992 */ lh $t1, %lo(D_80A01970+0x22)($t1)
/* 00640 80A005E0 3C0A80A0 */ lui $t2, %hi(func_80A01010) ## $t2 = 80A00000
/* 00644 80A005E4 254A1010 */ addiu $t2, $t2, %lo(func_80A01010) ## $t2 = 80A01010
/* 00648 80A005E8 ACEA0190 */ sw $t2, 0x0190($a3) ## 00000190
/* 0064C 80A005EC A4E902CA */ sh $t1, 0x02CA($a3) ## 000002CA
/* 00650 80A005F0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00654 80A005F4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00658 80A005F8 03E00008 */ jr $ra
/* 0065C 80A005FC 00000000 */ nop

View file

@ -1,46 +0,0 @@
glabel func_80A00600
/* 00660 80A00600 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00664 80A00604 AFBF002C */ sw $ra, 0x002C($sp)
/* 00668 80A00608 AFB00028 */ sw $s0, 0x0028($sp)
/* 0066C 80A0060C C4840028 */ lwc1 $f4, 0x0028($a0) ## 00000028
/* 00670 80A00610 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00674 80A00614 3C01C040 */ lui $at, 0xC040 ## $at = C0400000
/* 00678 80A00618 44813000 */ mtc1 $at, $f6 ## $f6 = -3.00
/* 0067C 80A0061C E4840280 */ swc1 $f4, 0x0280($a0) ## 00000280
/* 00680 80A00620 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00684 80A00624 3C050600 */ lui $a1, %hi(D_06000FC0) ## $a1 = 06000000
/* 00688 80A00628 44070000 */ mfc1 $a3, $f0
/* 0068C 80A0062C 24A50FC0 */ addiu $a1, $a1, %lo(D_06000FC0) ## $a1 = 06000FC0
/* 00690 80A00630 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00694 80A00634 AFA00014 */ sw $zero, 0x0014($sp)
/* 00698 80A00638 3C064000 */ lui $a2, 0x4000 ## $a2 = 40000000
/* 0069C 80A0063C E7A00010 */ swc1 $f0, 0x0010($sp)
/* 006A0 80A00640 0C029468 */ jal Animation_Change
/* 006A4 80A00644 E7A60018 */ swc1 $f6, 0x0018($sp)
/* 006A8 80A00648 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006AC 80A0064C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 006B0 80A00650 44814000 */ mtc1 $at, $f8 ## $f8 = 5.00
/* 006B4 80A00654 240E0028 */ addiu $t6, $zero, 0x0028 ## $t6 = 00000028
/* 006B8 80A00658 A60E0194 */ sh $t6, 0x0194($s0) ## 00000194
/* 006BC 80A0065C 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 006C0 80A00660 E600006C */ swc1 $f0, 0x006C($s0) ## 0000006C
/* 006C4 80A00664 E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
/* 006C8 80A00668 E6080068 */ swc1 $f8, 0x0068($s0) ## 00000068
/* 006CC 80A0066C AFAF0010 */ sw $t7, 0x0010($sp)
/* 006D0 80A00670 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006D4 80A00674 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 006D8 80A00678 240600C8 */ addiu $a2, $zero, 0x00C8 ## $a2 = 000000C8
/* 006DC 80A0067C 0C00D09B */ jal Actor_SetColorFilter
/* 006E0 80A00680 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 006E4 80A00684 92180299 */ lbu $t8, 0x0299($s0) ## 00000299
/* 006E8 80A00688 3C0880A0 */ lui $t0, %hi(func_80A01104) ## $t0 = 80A00000
/* 006EC 80A0068C 25081104 */ addiu $t0, $t0, %lo(func_80A01104) ## $t0 = 80A01104
/* 006F0 80A00690 3319FFFE */ andi $t9, $t8, 0xFFFE ## $t9 = 00000000
/* 006F4 80A00694 A2190299 */ sb $t9, 0x0299($s0) ## 00000299
/* 006F8 80A00698 AE080190 */ sw $t0, 0x0190($s0) ## 00000190
/* 006FC 80A0069C 8FBF002C */ lw $ra, 0x002C($sp)
/* 00700 80A006A0 8FB00028 */ lw $s0, 0x0028($sp)
/* 00704 80A006A4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00708 80A006A8 03E00008 */ jr $ra
/* 0070C 80A006AC 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_80A006B0
/* 00710 80A006B0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00714 80A006B4 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00718 80A006B8 AFB00020 */ sw $s0, 0x0020($sp)
/* 0071C 80A006BC 240E0014 */ addiu $t6, $zero, 0x0014 ## $t6 = 00000014
/* 00720 80A006C0 A48E0194 */ sh $t6, 0x0194($a0) ## 00000194
/* 00724 80A006C4 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 00728 80A006C8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0072C 80A006CC AFAF0010 */ sw $t7, 0x0010($sp)
/* 00730 80A006D0 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 00734 80A006D4 240600C8 */ addiu $a2, $zero, 0x00C8 ## $a2 = 000000C8
/* 00738 80A006D8 0C00D09B */ jal Actor_SetColorFilter
/* 0073C 80A006DC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00740 80A006E0 8E1802A8 */ lw $t8, 0x02A8($s0) ## 000002A8
/* 00744 80A006E4 24010019 */ addiu $at, $zero, 0x0019 ## $at = 00000019
/* 00748 80A006E8 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 0074C 80A006EC 13010009 */ beq $t8, $at, .L80A00714
/* 00750 80A006F0 3C050600 */ lui $a1, %hi(D_06000FC0) ## $a1 = 06000000
/* 00754 80A006F4 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00758 80A006F8 44812000 */ mtc1 $at, $f4 ## $f4 = 6.00
/* 0075C 80A006FC 24A50FC0 */ addiu $a1, $a1, %lo(D_06000FC0) ## $a1 = 06000FC0
/* 00760 80A00700 3C06C040 */ lui $a2, 0xC040 ## $a2 = C0400000
/* 00764 80A00704 0C0294D3 */ jal Animation_MorphToLoop
/* 00768 80A00708 E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 0076C 80A0070C 10000007 */ beq $zero, $zero, .L80A0072C
/* 00770 80A00710 92080298 */ lbu $t0, 0x0298($s0) ## 00000298
.L80A00714:
/* 00774 80A00714 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00778 80A00718 44814000 */ mtc1 $at, $f8 ## $f8 = 6.00
/* 0077C 80A0071C C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
/* 00780 80A00720 46083281 */ sub.s $f10, $f6, $f8
/* 00784 80A00724 E60A0068 */ swc1 $f10, 0x0068($s0) ## 00000068
/* 00788 80A00728 92080298 */ lbu $t0, 0x0298($s0) ## 00000298
.L80A0072C:
/* 0078C 80A0072C 920A0299 */ lbu $t2, 0x0299($s0) ## 00000299
/* 00790 80A00730 3C19FFCF */ lui $t9, 0xFFCF ## $t9 = FFCF0000
/* 00794 80A00734 3C0C80A0 */ lui $t4, %hi(func_80A01240) ## $t4 = 80A00000
/* 00798 80A00738 3739FFFF */ ori $t9, $t9, 0xFFFF ## $t9 = FFCFFFFF
/* 0079C 80A0073C 258C1240 */ addiu $t4, $t4, %lo(func_80A01240) ## $t4 = 80A01240
/* 007A0 80A00740 3109FFFE */ andi $t1, $t0, 0xFFFE ## $t1 = 00000000
/* 007A4 80A00744 314BFFFE */ andi $t3, $t2, 0xFFFE ## $t3 = 00000000
/* 007A8 80A00748 AE1902A8 */ sw $t9, 0x02A8($s0) ## 000002A8
/* 007AC 80A0074C A2090298 */ sb $t1, 0x0298($s0) ## 00000298
/* 007B0 80A00750 A20B0299 */ sb $t3, 0x0299($s0) ## 00000299
/* 007B4 80A00754 AE0C0190 */ sw $t4, 0x0190($s0) ## 00000190
/* 007B8 80A00758 8FBF0024 */ lw $ra, 0x0024($sp)
/* 007BC 80A0075C 8FB00020 */ lw $s0, 0x0020($sp)
/* 007C0 80A00760 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 007C4 80A00764 03E00008 */ jr $ra
/* 007C8 80A00768 00000000 */ nop

View file

@ -1,11 +0,0 @@
glabel func_80A0076C
/* 007CC 80A0076C 948E0112 */ lhu $t6, 0x0112($a0) ## 00000112
/* 007D0 80A00770 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 007D4 80A00774 3C1880A0 */ lui $t8, %hi(func_80A012F4) ## $t8 = 80A00000
/* 007D8 80A00778 271812F4 */ addiu $t8, $t8, %lo(func_80A012F4) ## $t8 = 80A012F4
/* 007DC 80A0077C 35CF2000 */ ori $t7, $t6, 0x2000 ## $t7 = 00002000
/* 007E0 80A00780 A48F0112 */ sh $t7, 0x0112($a0) ## 00000112
/* 007E4 80A00784 AC980190 */ sw $t8, 0x0190($a0) ## 00000190
/* 007E8 80A00788 E4800068 */ swc1 $f0, 0x0068($a0) ## 00000068
/* 007EC 80A0078C 03E00008 */ jr $ra
/* 007F0 80A00790 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060

View file

@ -1,52 +0,0 @@
glabel func_80A00794
/* 007F4 80A00794 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 007F8 80A00798 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 007FC 80A0079C 3C01C100 */ lui $at, 0xC100 ## $at = C1000000
/* 00800 80A007A0 44812000 */ mtc1 $at, $f4 ## $f4 = -8.00
/* 00804 80A007A4 AFB00028 */ sw $s0, 0x0028($sp)
/* 00808 80A007A8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0080C 80A007AC AFBF002C */ sw $ra, 0x002C($sp)
/* 00810 80A007B0 3C050600 */ lui $a1, %hi(D_06000288) ## $a1 = 06000000
/* 00814 80A007B4 44070000 */ mfc1 $a3, $f0
/* 00818 80A007B8 24A50288 */ addiu $a1, $a1, %lo(D_06000288) ## $a1 = 06000288
/* 0081C 80A007BC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00820 80A007C0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00824 80A007C4 3C064000 */ lui $a2, 0x4000 ## $a2 = 40000000
/* 00828 80A007C8 E7A00010 */ swc1 $f0, 0x0010($sp)
/* 0082C 80A007CC 0C029468 */ jal Animation_Change
/* 00830 80A007D0 E7A40018 */ swc1 $f4, 0x0018($sp)
/* 00834 80A007D4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00838 80A007D8 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 0083C 80A007DC 44813000 */ mtc1 $at, $f6 ## $f6 = -1.00
/* 00840 80A007E0 240E0050 */ addiu $t6, $zero, 0x0050 ## $t6 = 00000050
/* 00844 80A007E4 A60E0194 */ sh $t6, 0x0194($s0) ## 00000194
/* 00848 80A007E8 3C0F80A0 */ lui $t7, %hi(D_80A01970+0x22) ## $t7 = 80A00000
/* 0084C 80A007EC E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 00850 80A007F0 E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
/* 00854 80A007F4 E606006C */ swc1 $f6, 0x006C($s0) ## 0000006C
/* 00858 80A007F8 85EF1992 */ lh $t7, %lo(D_80A01970+0x22)($t7)
/* 0085C 80A007FC 24190050 */ addiu $t9, $zero, 0x0050 ## $t9 = 00000050
/* 00860 80A00800 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00864 80A00804 25F80008 */ addiu $t8, $t7, 0x0008 ## $t8 = 80A00008
/* 00868 80A00808 A61802CA */ sh $t8, 0x02CA($s0) ## 000002CA
/* 0086C 80A0080C AFB90010 */ sw $t9, 0x0010($sp)
/* 00870 80A00810 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00874 80A00814 240600C8 */ addiu $a2, $zero, 0x00C8 ## $a2 = 000000C8
/* 00878 80A00818 0C00D09B */ jal Actor_SetColorFilter
/* 0087C 80A0081C 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00880 80A00820 92080298 */ lbu $t0, 0x0298($s0) ## 00000298
/* 00884 80A00824 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00888 80A00828 2405389E */ addiu $a1, $zero, 0x389E ## $a1 = 0000389E
/* 0088C 80A0082C 3109FFFE */ andi $t1, $t0, 0xFFFE ## $t1 = 00000000
/* 00890 80A00830 0C00BE0A */ jal Audio_PlayActorSound2
/* 00894 80A00834 A2090298 */ sb $t1, 0x0298($s0) ## 00000298
/* 00898 80A00838 3C0A80A0 */ lui $t2, %hi(func_80A01374) ## $t2 = 80A00000
/* 0089C 80A0083C 254A1374 */ addiu $t2, $t2, %lo(func_80A01374) ## $t2 = 80A01374
/* 008A0 80A00840 AE0A0190 */ sw $t2, 0x0190($s0) ## 00000190
/* 008A4 80A00844 8FBF002C */ lw $ra, 0x002C($sp)
/* 008A8 80A00848 8FB00028 */ lw $s0, 0x0028($sp)
/* 008AC 80A0084C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 008B0 80A00850 03E00008 */ jr $ra
/* 008B4 80A00854 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_80A00858
/* 008B8 80A00858 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008BC 80A0085C AFBF0014 */ sw $ra, 0x0014($sp)
/* 008C0 80A00860 AFA40018 */ sw $a0, 0x0018($sp)
/* 008C4 80A00864 AFA5001C */ sw $a1, 0x001C($sp)
/* 008C8 80A00868 0C02927F */ jal SkelAnime_Update
/* 008CC 80A0086C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 008D0 80A00870 8FA30018 */ lw $v1, 0x0018($sp)
/* 008D4 80A00874 3C063F40 */ lui $a2, 0x3F40 ## $a2 = 3F400000
/* 008D8 80A00878 24640028 */ addiu $a0, $v1, 0x0028 ## $a0 = 00000028
/* 008DC 80A0087C 0C01DE80 */ jal Math_StepToF
/* 008E0 80A00880 8C65000C */ lw $a1, 0x000C($v1) ## 0000000C
/* 008E4 80A00884 50400004 */ beql $v0, $zero, .L80A00898
/* 008E8 80A00888 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008EC 80A0088C 0C2800D6 */ jal func_80A00358
/* 008F0 80A00890 8FA40018 */ lw $a0, 0x0018($sp)
/* 008F4 80A00894 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A00898:
/* 008F8 80A00898 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008FC 80A0089C 03E00008 */ jr $ra
/* 00900 80A008A0 00000000 */ nop

View file

@ -1,14 +0,0 @@
glabel func_80A008A4
/* 00904 80A008A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00908 80A008A8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0090C 80A008AC 9082029B */ lbu $v0, 0x029B($a0) ## 0000029B
/* 00910 80A008B0 304E0001 */ andi $t6, $v0, 0x0001 ## $t6 = 00000000
/* 00914 80A008B4 11C00003 */ beq $t6, $zero, .L80A008C4
/* 00918 80A008B8 304FFFFE */ andi $t7, $v0, 0xFFFE ## $t7 = 00000000
/* 0091C 80A008BC 0C2800F7 */ jal func_80A003DC
/* 00920 80A008C0 A08F029B */ sb $t7, 0x029B($a0) ## 0000029B
.L80A008C4:
/* 00924 80A008C4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00928 80A008C8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0092C 80A008CC 03E00008 */ jr $ra
/* 00930 80A008D0 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_80A008D4
/* 00934 80A008D4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00938 80A008D8 AFB00018 */ sw $s0, 0x0018($sp)
/* 0093C 80A008DC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00940 80A008E0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00944 80A008E4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00948 80A008E8 0C02927F */ jal SkelAnime_Update
/* 0094C 80A008EC 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00950 80A008F0 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
/* 00954 80A008F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00958 80A008F8 25CFFFA0 */ addiu $t7, $t6, 0xFFA0 ## $t7 = FFFFFFA0
/* 0095C 80A008FC 0C280069 */ jal func_80A001A4
/* 00960 80A00900 A60F0032 */ sh $t7, 0x0032($s0) ## 00000032
/* 00964 80A00904 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00968 80A00908 0C280229 */ jal func_80A008A4
/* 0096C 80A0090C 8FA50024 */ lw $a1, 0x0024($sp)
/* 00970 80A00910 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 00974 80A00914 5300000A */ beql $t8, $zero, .L80A00940
/* 00978 80A00918 8FBF001C */ lw $ra, 0x001C($sp)
/* 0097C 80A0091C 8E080118 */ lw $t0, 0x0118($s0) ## 00000118
/* 00980 80A00920 3C1980A0 */ lui $t9, %hi(func_80A008D4) ## $t9 = 80A00000
/* 00984 80A00924 273908D4 */ addiu $t9, $t9, %lo(func_80A008D4) ## $t9 = 80A008D4
/* 00988 80A00928 8D090190 */ lw $t1, 0x0190($t0) ## 00000190
/* 0098C 80A0092C 53290004 */ beql $t9, $t1, .L80A00940
/* 00990 80A00930 8FBF001C */ lw $ra, 0x001C($sp)
/* 00994 80A00934 0C2800ED */ jal func_80A003B4
/* 00998 80A00938 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0099C 80A0093C 8FBF001C */ lw $ra, 0x001C($sp)
.L80A00940:
/* 009A0 80A00940 8FB00018 */ lw $s0, 0x0018($sp)
/* 009A4 80A00944 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 009A8 80A00948 03E00008 */ jr $ra
/* 009AC 80A0094C 00000000 */ nop

View file

@ -1,92 +0,0 @@
.late_rodata
glabel D_80A019F4
.word 0x3F7D70A4
.text
glabel func_80A00950
/* 009B0 80A00950 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 009B4 80A00954 AFB00018 */ sw $s0, 0x0018($sp)
/* 009B8 80A00958 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009BC 80A0095C AFBF001C */ sw $ra, 0x001C($sp)
/* 009C0 80A00960 AFA5002C */ sw $a1, 0x002C($sp)
/* 009C4 80A00964 0C02927F */ jal SkelAnime_Update
/* 009C8 80A00968 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 009CC 80A0096C 26050008 */ addiu $a1, $s0, 0x0008 ## $a1 = 00000008
/* 009D0 80A00970 AFA50020 */ sw $a1, 0x0020($sp)
/* 009D4 80A00974 0C00B6EC */ jal Actor_WorldDistXZToPoint
/* 009D8 80A00978 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009DC 80A0097C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 009E0 80A00980 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
/* 009E4 80A00984 8FA50020 */ lw $a1, 0x0020($sp)
/* 009E8 80A00988 4600203C */ c.lt.s $f4, $f0
/* 009EC 80A0098C 00000000 */ nop
/* 009F0 80A00990 45020008 */ bc1fl .L80A009B4
/* 009F4 80A00994 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
/* 009F8 80A00998 0C00B6B0 */ jal Actor_WorldYawTowardPoint
/* 009FC 80A0099C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A00 80A009A0 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00A04 80A009A4 00417021 */ addu $t6, $v0, $at
/* 00A08 80A009A8 1000002A */ beq $zero, $zero, .L80A00A54
/* 00A0C 80A009AC A60E0196 */ sh $t6, 0x0196($s0) ## 00000196
/* 00A10 80A009B0 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
.L80A009B4:
/* 00A14 80A009B4 86180196 */ lh $t8, 0x0196($s0) ## 00000196
/* 00A18 80A009B8 55F80027 */ bnel $t7, $t8, .L80A00A58
/* 00A1C 80A009BC 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00A20 80A009C0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A24 80A009C4 00000000 */ nop
/* 00A28 80A009C8 3C0180A0 */ lui $at, %hi(D_80A019F4) ## $at = 80A00000
/* 00A2C 80A009CC C42619F4 */ lwc1 $f6, %lo(D_80A019F4)($at)
/* 00A30 80A009D0 4600303C */ c.lt.s $f6, $f0
/* 00A34 80A009D4 00000000 */ nop
/* 00A38 80A009D8 4502001F */ bc1fl .L80A00A58
/* 00A3C 80A009DC 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00A40 80A009E0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A44 80A009E4 00000000 */ nop
/* 00A48 80A009E8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00A4C 80A009EC 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50
/* 00A50 80A009F0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00A54 80A009F4 4608003C */ c.lt.s $f0, $f8
/* 00A58 80A009F8 00000000 */ nop
/* 00A5C 80A009FC 45000003 */ bc1f .L80A00A0C
/* 00A60 80A00A00 00000000 */ nop
/* 00A64 80A00A04 10000001 */ beq $zero, $zero, .L80A00A0C
/* 00A68 80A00A08 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80A00A0C:
/* 00A6C 80A00A0C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00A70 80A00A10 AFA20024 */ sw $v0, 0x0024($sp)
/* 00A74 80A00A14 3C014600 */ lui $at, 0x4600 ## $at = 46000000
/* 00A78 80A00A18 44811000 */ mtc1 $at, $f2 ## $f2 = 8192.00
/* 00A7C 80A00A1C 8FA20024 */ lw $v0, 0x0024($sp)
/* 00A80 80A00A20 86190032 */ lh $t9, 0x0032($s0) ## 00000032
/* 00A84 80A00A24 46020282 */ mul.s $f10, $f0, $f2
/* 00A88 80A00A28 44829000 */ mtc1 $v0, $f18 ## $f18 = 0.00
/* 00A8C 80A00A2C 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
/* 00A90 80A00A30 46809120 */ cvt.s.w $f4, $f18
/* 00A94 80A00A34 46025400 */ add.s $f16, $f10, $f2
/* 00A98 80A00A38 468042A0 */ cvt.s.w $f10, $f8
/* 00A9C 80A00A3C 46048182 */ mul.s $f6, $f16, $f4
/* 00AA0 80A00A40 460A3480 */ add.s $f18, $f6, $f10
/* 00AA4 80A00A44 4600940D */ trunc.w.s $f16, $f18
/* 00AA8 80A00A48 44098000 */ mfc1 $t1, $f16
/* 00AAC 80A00A4C 00000000 */ nop
/* 00AB0 80A00A50 A6090196 */ sh $t1, 0x0196($s0) ## 00000196
.L80A00A54:
/* 00AB4 80A00A54 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
.L80A00A58:
/* 00AB8 80A00A58 86050196 */ lh $a1, 0x0196($s0) ## 00000196
/* 00ABC 80A00A5C 0C01DE2B */ jal Math_ScaledStepToS
/* 00AC0 80A00A60 240600B6 */ addiu $a2, $zero, 0x00B6 ## $a2 = 000000B6
/* 00AC4 80A00A64 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AC8 80A00A68 0C280229 */ jal func_80A008A4
/* 00ACC 80A00A6C 8FA5002C */ lw $a1, 0x002C($sp)
/* 00AD0 80A00A70 8FBF001C */ lw $ra, 0x001C($sp)
/* 00AD4 80A00A74 8FB00018 */ lw $s0, 0x0018($sp)
/* 00AD8 80A00A78 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00ADC 80A00A7C 03E00008 */ jr $ra
/* 00AE0 80A00A80 00000000 */ nop

View file

@ -1,42 +0,0 @@
glabel func_80A00A84
/* 00AE4 80A00A84 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00AE8 80A00A88 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00AEC 80A00A8C AFA5001C */ sw $a1, 0x001C($sp)
/* 00AF0 80A00A90 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00AF4 80A00A94 44813000 */ mtc1 $at, $f6 ## $f6 = 50.00
/* 00AF8 80A00A98 C484000C */ lwc1 $f4, 0x000C($a0) ## 0000000C
/* 00AFC 80A00A9C C4800028 */ lwc1 $f0, 0x0028($a0) ## 00000028
/* 00B00 80A00AA0 3C0F80A0 */ lui $t7, %hi(func_80A00858) ## $t7 = 80A00000
/* 00B04 80A00AA4 46062201 */ sub.s $f8, $f4, $f6
/* 00B08 80A00AA8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00B0C 80A00AAC 25EF0858 */ addiu $t7, $t7, %lo(func_80A00858) ## $t7 = 80A00858
/* 00B10 80A00AB0 4600403C */ c.lt.s $f8, $f0
/* 00B14 80A00AB4 00000000 */ nop
/* 00B18 80A00AB8 45020006 */ bc1fl .L80A00AD4
/* 00B1C 80A00ABC 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
/* 00B20 80A00AC0 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50
/* 00B24 80A00AC4 00000000 */ nop
/* 00B28 80A00AC8 460A0401 */ sub.s $f16, $f0, $f10
/* 00B2C 80A00ACC E4900028 */ swc1 $f16, 0x0028($a0) ## 00000028
/* 00B30 80A00AD0 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
.L80A00AD4:
/* 00B34 80A00AD4 3C0E80A0 */ lui $t6, %hi(func_80A012F4) ## $t6 = 80A00000
/* 00B38 80A00AD8 25CE12F4 */ addiu $t6, $t6, %lo(func_80A012F4) ## $t6 = 80A012F4
/* 00B3C 80A00ADC 8C430190 */ lw $v1, 0x0190($v0) ## 00000190
/* 00B40 80A00AE0 15C30005 */ bne $t6, $v1, .L80A00AF8
/* 00B44 80A00AE4 00000000 */ nop
/* 00B48 80A00AE8 0C00B55C */ jal Actor_Kill
/* 00B4C 80A00AEC 00000000 */ nop
/* 00B50 80A00AF0 10000006 */ beq $zero, $zero, .L80A00B0C
/* 00B54 80A00AF4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A00AF8:
/* 00B58 80A00AF8 55E30004 */ bnel $t7, $v1, .L80A00B0C
/* 00B5C 80A00AFC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00B60 80A00B00 0C280086 */ jal func_80A00218
/* 00B64 80A00B04 00000000 */ nop
/* 00B68 80A00B08 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A00B0C:
/* 00B6C 80A00B0C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00B70 80A00B10 03E00008 */ jr $ra
/* 00B74 80A00B14 00000000 */ nop

View file

@ -1,104 +0,0 @@
.late_rodata
glabel D_80A019F8
.word 0x3E858150
glabel D_80A019FC
.float 0.8
.text
glabel func_80A00B18
/* 00B78 80A00B18 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00B7C 80A00B1C AFB00020 */ sw $s0, 0x0020($sp)
/* 00B80 80A00B20 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B84 80A00B24 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00B88 80A00B28 AFA50044 */ sw $a1, 0x0044($sp)
/* 00B8C 80A00B2C 0C02927F */ jal SkelAnime_Update
/* 00B90 80A00B30 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00B94 80A00B34 AFA2003C */ sw $v0, 0x003C($sp)
/* 00B98 80A00B38 3C014140 */ lui $at, 0x4140 ## $at = 41400000
/* 00B9C 80A00B3C C6000164 */ lwc1 $f0, 0x0164($s0) ## 00000164
/* 00BA0 80A00B40 44812000 */ mtc1 $at, $f4 ## $f4 = 12.00
/* 00BA4 80A00B44 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00BA8 80A00B48 4604003C */ c.lt.s $f0, $f4
/* 00BAC 80A00B4C 00000000 */ nop
/* 00BB0 80A00B50 45020026 */ bc1fl .L80A00BEC
/* 00BB4 80A00B54 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 00BB8 80A00B58 3C0180A0 */ lui $at, %hi(D_80A019F8) ## $at = 80A00000
/* 00BBC 80A00B5C C42619F8 */ lwc1 $f6, %lo(D_80A019F8)($at)
/* 00BC0 80A00B60 46003302 */ mul.s $f12, $f6, $f0
/* 00BC4 80A00B64 0C041184 */ jal cosf
/* 00BC8 80A00B68 E7AC002C */ swc1 $f12, 0x002C($sp)
/* 00BCC 80A00B6C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00BD0 80A00B70 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 00BD4 80A00B74 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00BD8 80A00B78 44818000 */ mtc1 $at, $f16 ## $f16 = 40.00
/* 00BDC 80A00B7C 46004281 */ sub.s $f10, $f8, $f0
/* 00BE0 80A00B80 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 00BE4 80A00B84 C7AC002C */ lwc1 $f12, 0x002C($sp)
/* 00BE8 80A00B88 46105482 */ mul.s $f18, $f10, $f16
/* 00BEC 80A00B8C 46049180 */ add.s $f6, $f18, $f4
/* 00BF0 80A00B90 0C0400A4 */ jal sinf
/* 00BF4 80A00B94 E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028
/* 00BF8 80A00B98 3C01C220 */ lui $at, 0xC220 ## $at = C2200000
/* 00BFC 80A00B9C 44814000 */ mtc1 $at, $f8 ## $f8 = -40.00
/* 00C00 80A00BA0 00000000 */ nop
/* 00C04 80A00BA4 46080282 */ mul.s $f10, $f0, $f8
/* 00C08 80A00BA8 E7AA0034 */ swc1 $f10, 0x0034($sp)
/* 00C0C 80A00BAC 0C01DE1C */ jal Math_SinS
## sins?
/* 00C10 80A00BB0 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 00C14 80A00BB4 C7B00034 */ lwc1 $f16, 0x0034($sp)
/* 00C18 80A00BB8 C604027C */ lwc1 $f4, 0x027C($s0) ## 0000027C
/* 00C1C 80A00BBC 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 00C20 80A00BC0 46100482 */ mul.s $f18, $f0, $f16
/* 00C24 80A00BC4 46049180 */ add.s $f6, $f18, $f4
/* 00C28 80A00BC8 0C01DE0D */ jal Math_CosS
## coss?
/* 00C2C 80A00BCC E6060024 */ swc1 $f6, 0x0024($s0) ## 00000024
/* 00C30 80A00BD0 C7A80034 */ lwc1 $f8, 0x0034($sp)
/* 00C34 80A00BD4 C6100284 */ lwc1 $f16, 0x0284($s0) ## 00000284
/* 00C38 80A00BD8 46080282 */ mul.s $f10, $f0, $f8
/* 00C3C 80A00BDC 46105480 */ add.s $f18, $f10, $f16
/* 00C40 80A00BE0 1000000C */ beq $zero, $zero, .L80A00C14
/* 00C44 80A00BE4 E612002C */ swc1 $f18, 0x002C($s0) ## 0000002C
/* 00C48 80A00BE8 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
.L80A00BEC:
/* 00C4C 80A00BEC 44813000 */ mtc1 $at, $f6 ## $f6 = 0.00
/* 00C50 80A00BF0 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 00C54 80A00BF4 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00C58 80A00BF8 46062200 */ add.s $f8, $f4, $f6
/* 00C5C 80A00BFC 44054000 */ mfc1 $a1, $f8
/* 00C60 80A00C00 0C01DE80 */ jal Math_StepToF
/* 00C64 80A00C04 00000000 */ nop
/* 00C68 80A00C08 3C0180A0 */ lui $at, %hi(D_80A019FC) ## $at = 80A00000
/* 00C6C 80A00C0C C42A19FC */ lwc1 $f10, %lo(D_80A019FC)($at)
/* 00C70 80A00C10 E60A0068 */ swc1 $f10, 0x0068($s0) ## 00000068
.L80A00C14:
/* 00C74 80A00C14 8FAE003C */ lw $t6, 0x003C($sp)
/* 00C78 80A00C18 8FA40044 */ lw $a0, 0x0044($sp)
/* 00C7C 80A00C1C 26050078 */ addiu $a1, $s0, 0x0078 ## $a1 = 00000078
/* 00C80 80A00C20 11C00008 */ beq $t6, $zero, .L80A00C44
/* 00C84 80A00C24 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 00C88 80A00C28 920F0299 */ lbu $t7, 0x0299($s0) ## 00000299
/* 00C8C 80A00C2C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C90 80A00C30 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00C94 80A00C34 0C28012F */ jal func_80A004BC
/* 00C98 80A00C38 A2180299 */ sb $t8, 0x0299($s0) ## 00000299
/* 00C9C 80A00C3C 10000008 */ beq $zero, $zero, .L80A00C60
/* 00CA0 80A00C40 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A00C44:
/* 00CA4 80A00C44 26190024 */ addiu $t9, $s0, 0x0024 ## $t9 = 00000024
/* 00CA8 80A00C48 AFB90010 */ sw $t9, 0x0010($sp)
/* 00CAC 80A00C4C 27A60030 */ addiu $a2, $sp, 0x0030 ## $a2 = FFFFFFF0
/* 00CB0 80A00C50 0C00F269 */ jal BgCheck_EntityRaycastFloor4
/* 00CB4 80A00C54 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 00CB8 80A00C58 E6000080 */ swc1 $f0, 0x0080($s0) ## 00000080
/* 00CBC 80A00C5C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A00C60:
/* 00CC0 80A00C60 8FB00020 */ lw $s0, 0x0020($sp)
/* 00CC4 80A00C64 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00CC8 80A00C68 03E00008 */ jr $ra
/* 00CCC 80A00C6C 00000000 */ nop

View file

@ -1,162 +0,0 @@
.late_rodata
glabel D_80A01A00
.word 0x3DA0D97C
glabel D_80A01A04
.float 0.05
.text
glabel func_80A00C70
/* 00CD0 80A00C70 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00CD4 80A00C74 AFB00018 */ sw $s0, 0x0018($sp)
/* 00CD8 80A00C78 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00CDC 80A00C7C AFBF001C */ sw $ra, 0x001C($sp)
/* 00CE0 80A00C80 AFA50034 */ sw $a1, 0x0034($sp)
/* 00CE4 80A00C84 0C02927F */ jal SkelAnime_Update
/* 00CE8 80A00C88 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00CEC 80A00C8C 86030194 */ lh $v1, 0x0194($s0) ## 00000194
/* 00CF0 80A00C90 10600002 */ beq $v1, $zero, .L80A00C9C
/* 00CF4 80A00C94 246EFFFF */ addiu $t6, $v1, 0xFFFF ## $t6 = FFFFFFFF
/* 00CF8 80A00C98 A60E0194 */ sh $t6, 0x0194($s0) ## 00000194
.L80A00C9C:
/* 00CFC 80A00C9C C6040164 */ lwc1 $f4, 0x0164($s0) ## 00000164
/* 00D00 80A00CA0 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00D04 80A00CA4 44814000 */ mtc1 $at, $f8 ## $f8 = 80.00
/* 00D08 80A00CA8 E7A4002C */ swc1 $f4, 0x002C($sp)
/* 00D0C 80A00CAC C6060080 */ lwc1 $f6, 0x0080($s0) ## 00000080
/* 00D10 80A00CB0 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00D14 80A00CB4 44818000 */ mtc1 $at, $f16 ## $f16 = 5.00
/* 00D18 80A00CB8 46083280 */ add.s $f10, $f6, $f8
/* 00D1C 80A00CBC 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
/* 00D20 80A00CC0 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
/* 00D24 80A00CC4 8E070068 */ lw $a3, 0x0068($s0) ## 00000068
/* 00D28 80A00CC8 46105480 */ add.s $f18, $f10, $f16
/* 00D2C 80A00CCC 26040280 */ addiu $a0, $s0, 0x0280 ## $a0 = 00000280
/* 00D30 80A00CD0 44059000 */ mfc1 $a1, $f18
/* 00D34 80A00CD4 0C01E107 */ jal Math_ApproachF
/* 00D38 80A00CD8 00000000 */ nop
/* 00D3C 80A00CDC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00D40 80A00CE0 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 00D44 80A00CE4 C7A4002C */ lwc1 $f4, 0x002C($sp)
/* 00D48 80A00CE8 3C0180A0 */ lui $at, %hi(D_80A01A00) ## $at = 80A00000
/* 00D4C 80A00CEC C42A1A00 */ lwc1 $f10, %lo(D_80A01A00)($at)
/* 00D50 80A00CF0 46062201 */ sub.s $f8, $f4, $f6
/* 00D54 80A00CF4 460A4302 */ mul.s $f12, $f8, $f10
/* 00D58 80A00CF8 0C041184 */ jal cosf
/* 00D5C 80A00CFC 00000000 */ nop
/* 00D60 80A00D00 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00D64 80A00D04 44819000 */ mtc1 $at, $f18 ## $f18 = 5.00
/* 00D68 80A00D08 C6100280 */ lwc1 $f16, 0x0280($s0) ## 00000280
/* 00D6C 80A00D0C 3C014234 */ lui $at, 0x4234 ## $at = 42340000
/* 00D70 80A00D10 46120102 */ mul.s $f4, $f0, $f18
/* 00D74 80A00D14 44814000 */ mtc1 $at, $f8 ## $f8 = 45.00
/* 00D78 80A00D18 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00D7C 80A00D1C 3C053FC0 */ lui $a1, 0x3FC0 ## $a1 = 3FC00000
/* 00D80 80A00D20 3C063CF5 */ lui $a2, 0x3CF5 ## $a2 = 3CF50000
/* 00D84 80A00D24 46048181 */ sub.s $f6, $f16, $f4
/* 00D88 80A00D28 E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028
/* 00D8C 80A00D2C C7AA002C */ lwc1 $f10, 0x002C($sp)
/* 00D90 80A00D30 4608503E */ c.le.s $f10, $f8
/* 00D94 80A00D34 00000000 */ nop
/* 00D98 80A00D38 45000008 */ bc1f .L80A00D5C
/* 00D9C 80A00D3C 00000000 */ nop
/* 00DA0 80A00D40 3C063CF5 */ lui $a2, 0x3CF5 ## $a2 = 3CF50000
/* 00DA4 80A00D44 34C6C28F */ ori $a2, $a2, 0xC28F ## $a2 = 3CF5C28F
/* 00DA8 80A00D48 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00DAC 80A00D4C 0C01DE80 */ jal Math_StepToF
/* 00DB0 80A00D50 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00DB4 80A00D54 10000004 */ beq $zero, $zero, .L80A00D68
/* 00DB8 80A00D58 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
.L80A00D5C:
/* 00DBC 80A00D5C 0C01DE80 */ jal Math_StepToF
/* 00DC0 80A00D60 34C6C28F */ ori $a2, $a2, 0xC28F ## $a2 = 0000C28F
/* 00DC4 80A00D64 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
.L80A00D68:
/* 00DC8 80A00D68 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00DCC 80A00D6C 240600B6 */ addiu $a2, $zero, 0x00B6 ## $a2 = 000000B6
/* 00DD0 80A00D70 31F80008 */ andi $t8, $t7, 0x0008 ## $t8 = 00000000
/* 00DD4 80A00D74 13000003 */ beq $t8, $zero, .L80A00D84
/* 00DD8 80A00D78 00000000 */ nop
/* 00DDC 80A00D7C 8619007E */ lh $t9, 0x007E($s0) ## 0000007E
/* 00DE0 80A00D80 A6190196 */ sh $t9, 0x0196($s0) ## 00000196
.L80A00D84:
/* 00DE4 80A00D84 0C01DE2B */ jal Math_ScaledStepToS
/* 00DE8 80A00D88 86050196 */ lh $a1, 0x0196($s0) ## 00000196
/* 00DEC 80A00D8C 50400025 */ beql $v0, $zero, .L80A00E24
/* 00DF0 80A00D90 860F0194 */ lh $t7, 0x0194($s0) ## 00000194
/* 00DF4 80A00D94 86080194 */ lh $t0, 0x0194($s0) ## 00000194
/* 00DF8 80A00D98 5500000B */ bnel $t0, $zero, .L80A00DC8
/* 00DFC 80A00D9C 86090032 */ lh $t1, 0x0032($s0) ## 00000032
/* 00E00 80A00DA0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00E04 80A00DA4 00000000 */ nop
/* 00E08 80A00DA8 3C0180A0 */ lui $at, %hi(D_80A01A04) ## $at = 80A00000
/* 00E0C 80A00DAC C4321A04 */ lwc1 $f18, %lo(D_80A01A04)($at)
/* 00E10 80A00DB0 24042000 */ addiu $a0, $zero, 0x2000 ## $a0 = 00002000
/* 00E14 80A00DB4 4600903C */ c.lt.s $f18, $f0
/* 00E18 80A00DB8 00000000 */ nop
/* 00E1C 80A00DBC 45000005 */ bc1f .L80A00DD4
/* 00E20 80A00DC0 00000000 */ nop
/* 00E24 80A00DC4 86090032 */ lh $t1, 0x0032($s0) ## 00000032
.L80A00DC8:
/* 00E28 80A00DC8 252A0100 */ addiu $t2, $t1, 0x0100 ## $t2 = 00000100
/* 00E2C 80A00DCC 10000014 */ beq $zero, $zero, .L80A00E20
/* 00E30 80A00DD0 A60A0032 */ sh $t2, 0x0032($s0) ## 00000032
.L80A00DD4:
/* 00E34 80A00DD4 0C01DF64 */ jal Rand_S16Offset
/* 00E38 80A00DD8 24052000 */ addiu $a1, $zero, 0x2000 ## $a1 = 00002000
/* 00E3C 80A00DDC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00E40 80A00DE0 A7A20026 */ sh $v0, 0x0026($sp)
/* 00E44 80A00DE4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00E48 80A00DE8 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 00E4C 80A00DEC 87AB0026 */ lh $t3, 0x0026($sp)
/* 00E50 80A00DF0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00E54 80A00DF4 4610003C */ c.lt.s $f0, $f16
/* 00E58 80A00DF8 00000000 */ nop
/* 00E5C 80A00DFC 45000003 */ bc1f .L80A00E0C
/* 00E60 80A00E00 00000000 */ nop
/* 00E64 80A00E04 10000001 */ beq $zero, $zero, .L80A00E0C
/* 00E68 80A00E08 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L80A00E0C:
/* 00E6C 80A00E0C 004B0019 */ multu $v0, $t3
/* 00E70 80A00E10 860D0032 */ lh $t5, 0x0032($s0) ## 00000032
/* 00E74 80A00E14 00006012 */ mflo $t4
/* 00E78 80A00E18 018D7021 */ addu $t6, $t4, $t5
/* 00E7C 80A00E1C A60E0196 */ sh $t6, 0x0196($s0) ## 00000196
.L80A00E20:
/* 00E80 80A00E20 860F0194 */ lh $t7, 0x0194($s0) ## 00000194
.L80A00E24:
/* 00E84 80A00E24 55E00012 */ bnel $t7, $zero, .L80A00E70
/* 00E88 80A00E28 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E8C 80A00E2C C6040094 */ lwc1 $f4, 0x0094($s0) ## 00000094
/* 00E90 80A00E30 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00E94 80A00E34 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00E98 80A00E38 4606203C */ c.lt.s $f4, $f6
/* 00E9C 80A00E3C 00000000 */ nop
/* 00EA0 80A00E40 4502000B */ bc1fl .L80A00E70
/* 00EA4 80A00E44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EA8 80A00E48 C6080090 */ lwc1 $f8, 0x0090($s0) ## 00000090
/* 00EAC 80A00E4C 44815000 */ mtc1 $at, $f10 ## $f10 = 120.00
/* 00EB0 80A00E50 00000000 */ nop
/* 00EB4 80A00E54 460A403C */ c.lt.s $f8, $f10
/* 00EB8 80A00E58 00000000 */ nop
/* 00EBC 80A00E5C 45020004 */ bc1fl .L80A00E70
/* 00EC0 80A00E60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EC4 80A00E64 0C28014D */ jal func_80A00534
/* 00EC8 80A00E68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00ECC 80A00E6C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A00E70:
/* 00ED0 80A00E70 0C00BE5D */ jal func_8002F974
/* 00ED4 80A00E74 2405314F */ addiu $a1, $zero, 0x314F ## $a1 = 0000314F
/* 00ED8 80A00E78 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EDC 80A00E7C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00EE0 80A00E80 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00EE4 80A00E84 03E00008 */ jr $ra
/* 00EE8 80A00E88 00000000 */ nop

View file

@ -1,71 +0,0 @@
glabel func_80A00E8C
/* 00EEC 80A00E8C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00EF0 80A00E90 AFBF001C */ sw $ra, 0x001C($sp)
/* 00EF4 80A00E94 AFB00018 */ sw $s0, 0x0018($sp)
/* 00EF8 80A00E98 AFA5003C */ sw $a1, 0x003C($sp)
/* 00EFC 80A00E9C 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00F00 80A00EA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00F04 80A00EA4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00F08 80A00EA8 0C02927F */ jal SkelAnime_Update
/* 00F0C 80A00EAC AFA30034 */ sw $v1, 0x0034($sp)
/* 00F10 80A00EB0 860400B4 */ lh $a0, 0x00B4($s0) ## 000000B4
/* 00F14 80A00EB4 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00F18 80A00EB8 8FA30034 */ lw $v1, 0x0034($sp)
/* 00F1C 80A00EBC 1880001A */ blez $a0, .L80A00F28
/* 00F20 80A00EC0 0081082A */ slt $at, $a0, $at
/* 00F24 80A00EC4 50200019 */ beql $at, $zero, .L80A00F2C
/* 00F28 80A00EC8 248FF000 */ addiu $t7, $a0, 0xF000 ## $t7 = FFFFF000
/* 00F2C 80A00ECC C4640024 */ lwc1 $f4, 0x0024($v1) ## 00000024
/* 00F30 80A00ED0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00F34 80A00ED4 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 00F38 80A00ED8 E7A40028 */ swc1 $f4, 0x0028($sp)
/* 00F3C 80A00EDC C4660028 */ lwc1 $f6, 0x0028($v1) ## 00000028
/* 00F40 80A00EE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F44 80A00EE4 27A50028 */ addiu $a1, $sp, 0x0028 ## $a1 = FFFFFFF0
/* 00F48 80A00EE8 46083280 */ add.s $f10, $f6, $f8
/* 00F4C 80A00EEC E7AA002C */ swc1 $f10, 0x002C($sp)
/* 00F50 80A00EF0 C470002C */ lwc1 $f16, 0x002C($v1) ## 0000002C
/* 00F54 80A00EF4 0C00B6CA */ jal Actor_WorldPitchTowardPoint
/* 00F58 80A00EF8 E7B00030 */ swc1 $f16, 0x0030($sp)
/* 00F5C 80A00EFC 00022C00 */ sll $a1, $v0, 16
/* 00F60 80A00F00 00052C03 */ sra $a1, $a1, 16
/* 00F64 80A00F04 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00F68 80A00F08 0C01DE2B */ jal Math_ScaledStepToS
/* 00F6C 80A00F0C 24061000 */ addiu $a2, $zero, 0x1000 ## $a2 = 00001000
/* 00F70 80A00F10 10400007 */ beq $v0, $zero, .L80A00F30
/* 00F74 80A00F14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F78 80A00F18 0C280151 */ jal func_80A00544
/* 00F7C 80A00F1C 8FA5003C */ lw $a1, 0x003C($sp)
/* 00F80 80A00F20 10000004 */ beq $zero, $zero, .L80A00F34
/* 00F84 80A00F24 861800B4 */ lh $t8, 0x00B4($s0) ## 000000B4
.L80A00F28:
/* 00F88 80A00F28 248FF000 */ addiu $t7, $a0, 0xF000 ## $t7 = FFFFF000
.L80A00F2C:
/* 00F8C 80A00F2C A60F00B4 */ sh $t7, 0x00B4($s0) ## 000000B4
.L80A00F30:
/* 00F90 80A00F30 861800B4 */ lh $t8, 0x00B4($s0) ## 000000B4
.L80A00F34:
/* 00F94 80A00F34 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
/* 00F98 80A00F38 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
/* 00F9C 80A00F3C 0018C823 */ subu $t9, $zero, $t8
/* 00FA0 80A00F40 A6190030 */ sh $t9, 0x0030($s0) ## 00000030
/* 00FA4 80A00F44 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00FA8 80A00F48 0C01DE80 */ jal Math_StepToF
/* 00FAC 80A00F4C 3C0540A0 */ lui $a1, 0x40A0 ## $a1 = 40A00000
/* 00FB0 80A00F50 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 00FB4 80A00F54 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 00FB8 80A00F58 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002
/* 00FBC 80A00F5C 0C01E1EF */ jal Math_ApproachS
/* 00FC0 80A00F60 2407071C */ addiu $a3, $zero, 0x071C ## $a3 = 0000071C
/* 00FC4 80A00F64 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00FC8 80A00F68 0C00BE5D */ jal func_8002F974
/* 00FCC 80A00F6C 2405314F */ addiu $a1, $zero, 0x314F ## $a1 = 0000314F
/* 00FD0 80A00F70 8FBF001C */ lw $ra, 0x001C($sp)
/* 00FD4 80A00F74 8FB00018 */ lw $s0, 0x0018($sp)
/* 00FD8 80A00F78 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00FDC 80A00F7C 03E00008 */ jr $ra
/* 00FE0 80A00F80 00000000 */ nop

View file

@ -1,45 +0,0 @@
.late_rodata
glabel D_80A01A08
.float 1.1
.text
glabel func_80A00F84
/* 00FE4 80A00F84 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00FE8 80A00F88 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00FEC 80A00F8C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00FF0 80A00F90 AFA5001C */ sw $a1, 0x001C($sp)
/* 00FF4 80A00F94 AFA60018 */ sw $a2, 0x0018($sp)
/* 00FF8 80A00F98 0C02927F */ jal SkelAnime_Update
/* 00FFC 80A00F9C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 01000 80A00FA0 8FA60018 */ lw $a2, 0x0018($sp)
/* 01004 80A00FA4 3C0180A0 */ lui $at, %hi(D_80A01A08) ## $at = 80A00000
/* 01008 80A00FA8 C4261A08 */ lwc1 $f6, %lo(D_80A01A08)($at)
/* 0100C 80A00FAC C4C40068 */ lwc1 $f4, 0x0068($a2) ## 00000068
/* 01010 80A00FB0 94C20088 */ lhu $v0, 0x0088($a2) ## 00000088
/* 01014 80A00FB4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 01018 80A00FB8 46062202 */ mul.s $f8, $f4, $f6
/* 0101C 80A00FBC 304E0008 */ andi $t6, $v0, 0x0008 ## $t6 = 00000000
/* 01020 80A00FC0 304F0001 */ andi $t7, $v0, 0x0001 ## $t7 = 00000000
/* 01024 80A00FC4 15C00003 */ bne $t6, $zero, .L80A00FD4
/* 01028 80A00FC8 E4C80068 */ swc1 $f8, 0x0068($a2) ## 00000068
/* 0102C 80A00FCC 51E00005 */ beql $t7, $zero, .L80A00FE4
/* 01030 80A00FD0 90C20298 */ lbu $v0, 0x0298($a2) ## 00000298
.L80A00FD4:
/* 01034 80A00FD4 0C280162 */ jal func_80A00588
/* 01038 80A00FD8 AFA60018 */ sw $a2, 0x0018($sp)
/* 0103C 80A00FDC 8FA60018 */ lw $a2, 0x0018($sp)
/* 01040 80A00FE0 90C20298 */ lbu $v0, 0x0298($a2) ## 00000298
.L80A00FE4:
/* 01044 80A00FE4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 01048 80A00FE8 30580002 */ andi $t8, $v0, 0x0002 ## $t8 = 00000000
/* 0104C 80A00FEC 13000002 */ beq $t8, $zero, .L80A00FF8
/* 01050 80A00FF0 3059FFFC */ andi $t9, $v0, 0xFFFC ## $t9 = 00000000
/* 01054 80A00FF4 A0D90298 */ sb $t9, 0x0298($a2) ## 00000298
.L80A00FF8:
/* 01058 80A00FF8 0C00BE5D */ jal func_8002F974
/* 0105C 80A00FFC 2405314F */ addiu $a1, $zero, 0x314F ## $a1 = 0000314F
/* 01060 80A01000 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01064 80A01004 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01068 80A01008 03E00008 */ jr $ra
/* 0106C 80A0100C 00000000 */ nop

View file

@ -1,71 +0,0 @@
glabel func_80A01010
/* 01070 80A01010 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 01074 80A01014 AFB00020 */ sw $s0, 0x0020($sp)
/* 01078 80A01018 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0107C 80A0101C AFBF0024 */ sw $ra, 0x0024($sp)
/* 01080 80A01020 AFA50034 */ sw $a1, 0x0034($sp)
/* 01084 80A01024 0C02927F */ jal SkelAnime_Update
/* 01088 80A01028 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 0108C 80A0102C 26040030 */ addiu $a0, $s0, 0x0030 ## $a0 = 00000030
/* 01090 80A01030 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
/* 01094 80A01034 0C01DE2B */ jal Math_ScaledStepToS
/* 01098 80A01038 24060450 */ addiu $a2, $zero, 0x0450 ## $a2 = 00000450
/* 0109C 80A0103C 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 010A0 80A01040 3C0540E0 */ lui $a1, 0x40E0 ## $a1 = 40E00000
/* 010A4 80A01044 0C01DE80 */ jal Math_StepToF
/* 010A8 80A01048 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 010AC 80A0104C 86020194 */ lh $v0, 0x0194($s0) ## 00000194
/* 010B0 80A01050 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 010B4 80A01054 1441001D */ bne $v0, $at, .L80A010CC
/* 010B8 80A01058 00000000 */ nop
/* 010BC 80A0105C 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
/* 010C0 80A01060 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A
/* 010C4 80A01064 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 010C8 80A01068 304E0008 */ andi $t6, $v0, 0x0008 ## $t6 = 00000000
/* 010CC 80A0106C 15C00003 */ bne $t6, $zero, .L80A0107C
/* 010D0 80A01070 304F0001 */ andi $t7, $v0, 0x0001 ## $t7 = 00000000
/* 010D4 80A01074 51E0001F */ beql $t7, $zero, .L80A010F4
/* 010D8 80A01078 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0107C:
/* 010DC 80A0107C A6180194 */ sh $t8, 0x0194($s0) ## 00000194
/* 010E0 80A01080 AFA5002C */ sw $a1, 0x002C($sp)
/* 010E4 80A01084 8FA40034 */ lw $a0, 0x0034($sp)
/* 010E8 80A01088 2406001E */ addiu $a2, $zero, 0x001E ## $a2 = 0000001E
/* 010EC 80A0108C 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 010F0 80A01090 240738C4 */ addiu $a3, $zero, 0x38C4 ## $a3 = 000038C4
/* 010F4 80A01094 96190088 */ lhu $t9, 0x0088($s0) ## 00000088
/* 010F8 80A01098 8FA5002C */ lw $a1, 0x002C($sp)
/* 010FC 80A0109C 8FA40034 */ lw $a0, 0x0034($sp)
/* 01100 80A010A0 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 01104 80A010A4 11000012 */ beq $t0, $zero, .L80A010F0
/* 01108 80A010A8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0110C 80A010AC 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 01110 80A010B0 240A02BC */ addiu $t2, $zero, 0x02BC ## $t2 = 000002BC
/* 01114 80A010B4 AFAA0014 */ sw $t2, 0x0014($sp)
/* 01118 80A010B8 AFA90010 */ sw $t1, 0x0010($sp)
/* 0111C 80A010BC 0C00A527 */ jal EffectSsGSplash_Spawn
/* 01120 80A010C0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01124 80A010C4 1000000B */ beq $zero, $zero, .L80A010F4
/* 01128 80A010C8 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A010CC:
/* 0112C 80A010CC 10400003 */ beq $v0, $zero, .L80A010DC
/* 01130 80A010D0 244BFFFF */ addiu $t3, $v0, 0xFFFF ## $t3 = FFFFFFFF
/* 01134 80A010D4 A60B0194 */ sh $t3, 0x0194($s0) ## 00000194
/* 01138 80A010D8 86020194 */ lh $v0, 0x0194($s0) ## 00000194
.L80A010DC:
/* 0113C 80A010DC 14400004 */ bne $v0, $zero, .L80A010F0
/* 01140 80A010E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01144 80A010E4 A60000B4 */ sh $zero, 0x00B4($s0) ## 000000B4
/* 01148 80A010E8 0C280086 */ jal func_80A00218
/* 0114C 80A010EC A6000030 */ sh $zero, 0x0030($s0) ## 00000030
.L80A010F0:
/* 01150 80A010F0 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A010F4:
/* 01154 80A010F4 8FB00020 */ lw $s0, 0x0020($sp)
/* 01158 80A010F8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0115C 80A010FC 03E00008 */ jr $ra
/* 01160 80A01100 00000000 */ nop

View file

@ -1,94 +0,0 @@
.late_rodata
glabel D_80A01A0C
.word 0x3F20D97C
.text
glabel func_80A01104
/* 01164 80A01104 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 01168 80A01108 AFB00018 */ sw $s0, 0x0018($sp)
/* 0116C 80A0110C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01170 80A01110 AFBF001C */ sw $ra, 0x001C($sp)
/* 01174 80A01114 AFA50024 */ sw $a1, 0x0024($sp)
/* 01178 80A01118 0C02927F */ jal SkelAnime_Update
/* 0117C 80A0111C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 01180 80A01120 86020194 */ lh $v0, 0x0194($s0) ## 00000194
/* 01184 80A01124 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 01188 80A01128 44813000 */ mtc1 $at, $f6 ## $f6 = 80.00
/* 0118C 80A0112C 10400002 */ beq $v0, $zero, .L80A01138
/* 01190 80A01130 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 01194 80A01134 A60E0194 */ sh $t6, 0x0194($s0) ## 00000194
.L80A01138:
/* 01198 80A01138 C6040080 */ lwc1 $f4, 0x0080($s0) ## 00000080
/* 0119C 80A0113C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 011A0 80A01140 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 011A4 80A01144 46062200 */ add.s $f8, $f4, $f6
/* 011A8 80A01148 26040280 */ addiu $a0, $s0, 0x0280 ## $a0 = 00000280
/* 011AC 80A0114C 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 011B0 80A01150 8E070068 */ lw $a3, 0x0068($s0) ## 00000068
/* 011B4 80A01154 460A4400 */ add.s $f16, $f8, $f10
/* 011B8 80A01158 44058000 */ mfc1 $a1, $f16
/* 011BC 80A0115C 0C01E107 */ jal Math_ApproachF
/* 011C0 80A01160 00000000 */ nop
/* 011C4 80A01164 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 011C8 80A01168 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 011CC 80A0116C C6120280 */ lwc1 $f18, 0x0280($s0) ## 00000280
/* 011D0 80A01170 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 011D4 80A01174 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 011D8 80A01178 46049181 */ sub.s $f6, $f18, $f4
/* 011DC 80A0117C 31F80008 */ andi $t8, $t7, 0x0008 ## $t8 = 00000000
/* 011E0 80A01180 2406038E */ addiu $a2, $zero, 0x038E ## $a2 = 0000038E
/* 011E4 80A01184 13000004 */ beq $t8, $zero, .L80A01198
/* 011E8 80A01188 E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028
/* 011EC 80A0118C 8619007E */ lh $t9, 0x007E($s0) ## 0000007E
/* 011F0 80A01190 10000005 */ beq $zero, $zero, .L80A011A8
/* 011F4 80A01194 A6190196 */ sh $t9, 0x0196($s0) ## 00000196
.L80A01198:
/* 011F8 80A01198 8608008A */ lh $t0, 0x008A($s0) ## 0000008A
/* 011FC 80A0119C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 01200 80A011A0 01014821 */ addu $t1, $t0, $at
/* 01204 80A011A4 A6090196 */ sh $t1, 0x0196($s0) ## 00000196
.L80A011A8:
/* 01208 80A011A8 0C01DE2B */ jal Math_ScaledStepToS
/* 0120C 80A011AC 86050196 */ lh $a1, 0x0196($s0) ## 00000196
/* 01210 80A011B0 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 01214 80A011B4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 01218 80A011B8 0C01DE2B */ jal Math_ScaledStepToS
/* 0121C 80A011BC 24060200 */ addiu $a2, $zero, 0x0200 ## $a2 = 00000200
/* 01220 80A011C0 860A0194 */ lh $t2, 0x0194($s0) ## 00000194
/* 01224 80A011C4 3C0180A0 */ lui $at, %hi(D_80A01A0C) ## $at = 80A00000
/* 01228 80A011C8 C4301A0C */ lwc1 $f16, %lo(D_80A01A0C)($at)
/* 0122C 80A011CC 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 01230 80A011D0 00000000 */ nop
/* 01234 80A011D4 468042A0 */ cvt.s.w $f10, $f8
/* 01238 80A011D8 46105302 */ mul.s $f12, $f10, $f16
/* 0123C 80A011DC 0C0400A4 */ jal sinf
/* 01240 80A011E0 00000000 */ nop
/* 01244 80A011E4 3C0145A0 */ lui $at, 0x45A0 ## $at = 45A00000
/* 01248 80A011E8 44819000 */ mtc1 $at, $f18 ## $f18 = 5120.00
/* 0124C 80A011EC 860D0194 */ lh $t5, 0x0194($s0) ## 00000194
/* 01250 80A011F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01254 80A011F4 46120102 */ mul.s $f4, $f0, $f18
/* 01258 80A011F8 4600218D */ trunc.w.s $f6, $f4
/* 0125C 80A011FC 440C3000 */ mfc1 $t4, $f6
/* 01260 80A01200 15A00007 */ bne $t5, $zero, .L80A01220
/* 01264 80A01204 A60C00B8 */ sh $t4, 0x00B8($s0) ## 000000B8
/* 01268 80A01208 920E0299 */ lbu $t6, 0x0299($s0) ## 00000299
/* 0126C 80A0120C A60000B4 */ sh $zero, 0x00B4($s0) ## 000000B4
/* 01270 80A01210 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
/* 01274 80A01214 35CF0001 */ ori $t7, $t6, 0x0001 ## $t7 = 00000001
/* 01278 80A01218 0C28012F */ jal func_80A004BC
/* 0127C 80A0121C A20F0299 */ sb $t7, 0x0299($s0) ## 00000299
.L80A01220:
/* 01280 80A01220 861800B4 */ lh $t8, 0x00B4($s0) ## 000000B4
/* 01284 80A01224 0018C823 */ subu $t9, $zero, $t8
/* 01288 80A01228 A6190030 */ sh $t9, 0x0030($s0) ## 00000030
/* 0128C 80A0122C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01290 80A01230 8FB00018 */ lw $s0, 0x0018($sp)
/* 01294 80A01234 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 01298 80A01238 03E00008 */ jr $ra
/* 0129C 80A0123C 00000000 */ nop

View file

@ -1,54 +0,0 @@
glabel func_80A01240
/* 012A0 80A01240 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 012A4 80A01244 AFB00018 */ sw $s0, 0x0018($sp)
/* 012A8 80A01248 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 012AC 80A0124C AFBF001C */ sw $ra, 0x001C($sp)
/* 012B0 80A01250 AFA50024 */ sw $a1, 0x0024($sp)
/* 012B4 80A01254 0C02927F */ jal SkelAnime_Update
/* 012B8 80A01258 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 012BC 80A0125C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 012C0 80A01260 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
/* 012C4 80A01264 24060400 */ addiu $a2, $zero, 0x0400 ## $a2 = 00000400
/* 012C8 80A01268 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 012CC 80A0126C 4606203C */ c.lt.s $f4, $f6
/* 012D0 80A01270 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 012D4 80A01274 45000006 */ bc1f .L80A01290
/* 012D8 80A01278 00000000 */ nop
/* 012DC 80A0127C 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 012E0 80A01280 0C01DE2B */ jal Math_ScaledStepToS
/* 012E4 80A01284 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
/* 012E8 80A01288 10000004 */ beq $zero, $zero, .L80A0129C
/* 012EC 80A0128C 860E00B8 */ lh $t6, 0x00B8($s0) ## 000000B8
.L80A01290:
/* 012F0 80A01290 0C01DE2B */ jal Math_ScaledStepToS
/* 012F4 80A01294 24060400 */ addiu $a2, $zero, 0x0400 ## $a2 = 00000400
/* 012F8 80A01298 860E00B8 */ lh $t6, 0x00B8($s0) ## 000000B8
.L80A0129C:
/* 012FC 80A0129C 86020194 */ lh $v0, 0x0194($s0) ## 00000194
/* 01300 80A012A0 25CF1000 */ addiu $t7, $t6, 0x1000 ## $t7 = 00001000
/* 01304 80A012A4 10400004 */ beq $v0, $zero, .L80A012B8
/* 01308 80A012A8 A60F00B8 */ sh $t7, 0x00B8($s0) ## 000000B8
/* 0130C 80A012AC 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 01310 80A012B0 A6180194 */ sh $t8, 0x0194($s0) ## 00000194
/* 01314 80A012B4 86020194 */ lh $v0, 0x0194($s0) ## 00000194
.L80A012B8:
/* 01318 80A012B8 861900B4 */ lh $t9, 0x00B4($s0) ## 000000B4
/* 0131C 80A012BC 00194023 */ subu $t0, $zero, $t9
/* 01320 80A012C0 10400005 */ beq $v0, $zero, .L80A012D8
/* 01324 80A012C4 A6080030 */ sh $t0, 0x0030($s0) ## 00000030
/* 01328 80A012C8 96090088 */ lhu $t1, 0x0088($s0) ## 00000088
/* 0132C 80A012CC 312A0010 */ andi $t2, $t1, 0x0010 ## $t2 = 00000000
/* 01330 80A012D0 51400004 */ beql $t2, $zero, .L80A012E4
/* 01334 80A012D4 8FBF001C */ lw $ra, 0x001C($sp)
.L80A012D8:
/* 01338 80A012D8 0C2801DB */ jal func_80A0076C
/* 0133C 80A012DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01340 80A012E0 8FBF001C */ lw $ra, 0x001C($sp)
.L80A012E4:
/* 01344 80A012E4 8FB00018 */ lw $s0, 0x0018($sp)
/* 01348 80A012E8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0134C 80A012EC 03E00008 */ jr $ra
/* 01350 80A012F0 00000000 */ nop

View file

@ -1,38 +0,0 @@
glabel func_80A012F4
/* 01354 80A012F4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 01358 80A012F8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0135C 80A012FC AFB00018 */ sw $s0, 0x0018($sp)
/* 01360 80A01300 AFA50024 */ sw $a1, 0x0024($sp)
/* 01364 80A01304 908200C8 */ lbu $v0, 0x00C8($a0) ## 000000C8
/* 01368 80A01308 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 0136C 80A0130C 44813000 */ mtc1 $at, $f6 ## $f6 = 2.00
/* 01370 80A01310 2442FFFB */ addiu $v0, $v0, 0xFFFB ## $v0 = FFFFFFFB
/* 01374 80A01314 00021400 */ sll $v0, $v0, 16
/* 01378 80A01318 00021403 */ sra $v0, $v0, 16
/* 0137C 80A0131C 04410003 */ bgez $v0, .L80A0132C
/* 01380 80A01320 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01384 80A01324 10000002 */ beq $zero, $zero, .L80A01330
/* 01388 80A01328 A08000C8 */ sb $zero, 0x00C8($a0) ## 000000C8
.L80A0132C:
/* 0138C 80A0132C A20200C8 */ sb $v0, 0x00C8($s0) ## 000000C8
.L80A01330:
/* 01390 80A01330 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 01394 80A01334 920E00C8 */ lbu $t6, 0x00C8($s0) ## 000000C8
/* 01398 80A01338 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0139C 80A0133C 46062201 */ sub.s $f8, $f4, $f6
/* 013A0 80A01340 26060024 */ addiu $a2, $s0, 0x0024 ## $a2 = 00000024
/* 013A4 80A01344 24070050 */ addiu $a3, $zero, 0x0050 ## $a3 = 00000050
/* 013A8 80A01348 15C00005 */ bne $t6, $zero, .L80A01360
/* 013AC 80A0134C E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
/* 013B0 80A01350 0C007E50 */ jal Item_DropCollectibleRandom
/* 013B4 80A01354 8FA40024 */ lw $a0, 0x0024($sp)
/* 013B8 80A01358 0C00B55C */ jal Actor_Kill
/* 013BC 80A0135C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A01360:
/* 013C0 80A01360 8FBF001C */ lw $ra, 0x001C($sp)
/* 013C4 80A01364 8FB00018 */ lw $s0, 0x0018($sp)
/* 013C8 80A01368 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 013CC 80A0136C 03E00008 */ jr $ra
/* 013D0 80A01370 00000000 */ nop

View file

@ -1,55 +0,0 @@
glabel func_80A01374
/* 013D4 80A01374 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 013D8 80A01378 AFBF001C */ sw $ra, 0x001C($sp)
/* 013DC 80A0137C AFB00018 */ sw $s0, 0x0018($sp)
/* 013E0 80A01380 AFA5002C */ sw $a1, 0x002C($sp)
/* 013E4 80A01384 84820194 */ lh $v0, 0x0194($a0) ## 00000194
/* 013E8 80A01388 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 013EC 80A0138C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 013F0 80A01390 10400003 */ beq $v0, $zero, .L80A013A0
/* 013F4 80A01394 24060200 */ addiu $a2, $zero, 0x0200 ## $a2 = 00000200
/* 013F8 80A01398 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 013FC 80A0139C A48E0194 */ sh $t6, 0x0194($a0) ## 00000194
.L80A013A0:
/* 01400 80A013A0 0C01DE2B */ jal Math_ScaledStepToS
/* 01404 80A013A4 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 01408 80A013A8 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 0140C 80A013AC 0C02927F */ jal SkelAnime_Update
/* 01410 80A013B0 AFA40024 */ sw $a0, 0x0024($sp)
/* 01414 80A013B4 8FA40024 */ lw $a0, 0x0024($sp)
/* 01418 80A013B8 0C0295B2 */ jal Animation_OnFrame
/* 0141C 80A013BC 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 01420 80A013C0 10400003 */ beq $v0, $zero, .L80A013D0
/* 01424 80A013C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01428 80A013C8 0C00BE0A */ jal Audio_PlayActorSound2
/* 0142C 80A013CC 2405394E */ addiu $a1, $zero, 0x394E ## $a1 = 0000394E
.L80A013D0:
/* 01430 80A013D0 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 01434 80A013D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01438 80A013D8 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000
/* 0143C 80A013DC 53000004 */ beql $t8, $zero, .L80A013F0
/* 01440 80A013E0 86190194 */ lh $t9, 0x0194($s0) ## 00000194
/* 01444 80A013E4 0C00BE0A */ jal Audio_PlayActorSound2
/* 01448 80A013E8 2405387B */ addiu $a1, $zero, 0x387B ## $a1 = 0000387B
/* 0144C 80A013EC 86190194 */ lh $t9, 0x0194($s0) ## 00000194
.L80A013F0:
/* 01450 80A013F0 5720000A */ bnel $t9, $zero, .L80A0141C
/* 01454 80A013F4 8FBF001C */ lw $ra, 0x001C($sp)
/* 01458 80A013F8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0145C 80A013FC 3C0880A0 */ lui $t0, %hi(D_80A01970+0x22) ## $t0 = 80A00000
/* 01460 80A01400 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01464 80A01404 E600006C */ swc1 $f0, 0x006C($s0) ## 0000006C
/* 01468 80A01408 E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
/* 0146C 80A0140C 85081992 */ lh $t0, %lo(D_80A01970+0x22)($t0)
/* 01470 80A01410 0C28012F */ jal func_80A004BC
/* 01474 80A01414 A60802CA */ sh $t0, 0x02CA($s0) ## 000002CA
/* 01478 80A01418 8FBF001C */ lw $ra, 0x001C($sp)
.L80A0141C:
/* 0147C 80A0141C 8FB00018 */ lw $s0, 0x0018($sp)
/* 01480 80A01420 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 01484 80A01424 03E00008 */ jr $ra
/* 01488 80A01428 00000000 */ nop

View file

@ -1,93 +0,0 @@
glabel func_80A0142C
/* 0148C 80A0142C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 01490 80A01430 AFBF001C */ sw $ra, 0x001C($sp)
/* 01494 80A01434 AFB00018 */ sw $s0, 0x0018($sp)
/* 01498 80A01438 AFA50024 */ sw $a1, 0x0024($sp)
/* 0149C 80A0143C 90820299 */ lbu $v0, 0x0299($a0) ## 00000299
/* 014A0 80A01440 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 014A4 80A01444 260502A0 */ addiu $a1, $s0, 0x02A0 ## $a1 = 000002A0
/* 014A8 80A01448 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 014AC 80A0144C 11C00043 */ beq $t6, $zero, .L80A0155C
/* 014B0 80A01450 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
/* 014B4 80A01454 A08F0299 */ sb $t7, 0x0299($a0) ## 00000299
/* 014B8 80A01458 0C00D594 */ jal func_80035650
/* 014BC 80A0145C 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 014C0 80A01460 921800B1 */ lbu $t8, 0x00B1($s0) ## 000000B1
/* 014C4 80A01464 17000004 */ bne $t8, $zero, .L80A01478
/* 014C8 80A01468 00000000 */ nop
/* 014CC 80A0146C 921900B0 */ lbu $t9, 0x00B0($s0) ## 000000B0
/* 014D0 80A01470 5320003B */ beql $t9, $zero, .L80A01560
/* 014D4 80A01474 8FBF001C */ lw $ra, 0x001C($sp)
.L80A01478:
/* 014D8 80A01478 0C00D58A */ jal Actor_ApplyDamage
/* 014DC 80A0147C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 014E0 80A01480 1440000A */ bne $v0, $zero, .L80A014AC
/* 014E4 80A01484 8FA40024 */ lw $a0, 0x0024($sp)
/* 014E8 80A01488 0C00CB1F */ jal func_80032C7C
/* 014EC 80A0148C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 014F0 80A01490 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 014F4 80A01494 0C00BE0A */ jal Audio_PlayActorSound2
/* 014F8 80A01498 2405394D */ addiu $a1, $zero, 0x394D ## $a1 = 0000394D
/* 014FC 80A0149C 8E080004 */ lw $t0, 0x0004($s0) ## 00000004
/* 01500 80A014A0 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 01504 80A014A4 01014824 */ and $t1, $t0, $at
/* 01508 80A014A8 AE090004 */ sw $t1, 0x0004($s0) ## 00000004
.L80A014AC:
/* 0150C 80A014AC 8E0A02A8 */ lw $t2, 0x02A8($s0) ## 000002A8
/* 01510 80A014B0 24010019 */ addiu $at, $zero, 0x0019 ## $at = 00000019
/* 01514 80A014B4 5541000E */ bnel $t2, $at, .L80A014F0
/* 01518 80A014B8 920C00B1 */ lbu $t4, 0x00B1($s0) ## 000000B1
/* 0151C 80A014BC 920B00B0 */ lbu $t3, 0x00B0($s0) ## 000000B0
/* 01520 80A014C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01524 80A014C4 15600005 */ bne $t3, $zero, .L80A014DC
/* 01528 80A014C8 00000000 */ nop
/* 0152C 80A014CC 0C2800F7 */ jal func_80A003DC
/* 01530 80A014D0 8FA50024 */ lw $a1, 0x0024($sp)
/* 01534 80A014D4 10000022 */ beq $zero, $zero, .L80A01560
/* 01538 80A014D8 8FBF001C */ lw $ra, 0x001C($sp)
.L80A014DC:
/* 0153C 80A014DC 0C2801AC */ jal func_80A006B0
/* 01540 80A014E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01544 80A014E4 1000001E */ beq $zero, $zero, .L80A01560
/* 01548 80A014E8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0154C 80A014EC 920C00B1 */ lbu $t4, 0x00B1($s0) ## 000000B1
.L80A014F0:
/* 01550 80A014F0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 01554 80A014F4 5581000B */ bnel $t4, $at, .L80A01524
/* 01558 80A014F8 920F00AF */ lbu $t7, 0x00AF($s0) ## 000000AF
/* 0155C 80A014FC 8E0E0190 */ lw $t6, 0x0190($s0) ## 00000190
/* 01560 80A01500 3C0D80A0 */ lui $t5, %hi(func_80A01374) ## $t5 = 80A00000
/* 01564 80A01504 25AD1374 */ addiu $t5, $t5, %lo(func_80A01374) ## $t5 = 80A01374
/* 01568 80A01508 51AE0015 */ beql $t5, $t6, .L80A01560
/* 0156C 80A0150C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01570 80A01510 0C2801E5 */ jal func_80A00794
/* 01574 80A01514 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01578 80A01518 10000011 */ beq $zero, $zero, .L80A01560
/* 0157C 80A0151C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01580 80A01520 920F00AF */ lbu $t7, 0x00AF($s0) ## 000000AF
.L80A01524:
/* 01584 80A01524 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01588 80A01528 3C1880A0 */ lui $t8, %hi(D_80A01970+0x22) ## $t8 = 80A00000
/* 0158C 80A0152C 11E00007 */ beq $t7, $zero, .L80A0154C
/* 01590 80A01530 00000000 */ nop
/* 01594 80A01534 0C00BE0A */ jal Audio_PlayActorSound2
/* 01598 80A01538 2405394C */ addiu $a1, $zero, 0x394C ## $a1 = 0000394C
/* 0159C 80A0153C 0C280180 */ jal func_80A00600
/* 015A0 80A01540 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 015A4 80A01544 10000006 */ beq $zero, $zero, .L80A01560
/* 015A8 80A01548 8FBF001C */ lw $ra, 0x001C($sp)
.L80A0154C:
/* 015AC 80A0154C 87181992 */ lh $t8, %lo(D_80A01970+0x22)($t8)
/* 015B0 80A01550 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 015B4 80A01554 0C2801AC */ jal func_80A006B0
/* 015B8 80A01558 A61802CA */ sh $t8, 0x02CA($s0) ## 000002CA
.L80A0155C:
/* 015BC 80A0155C 8FBF001C */ lw $ra, 0x001C($sp)
.L80A01560:
/* 015C0 80A01560 8FB00018 */ lw $s0, 0x0018($sp)
/* 015C4 80A01564 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 015C8 80A01568 03E00008 */ jr $ra
/* 015CC 80A0156C 00000000 */ nop

View file

@ -1,28 +0,0 @@
.late_rodata
glabel D_80A01A10
.float 2500.0
.text
glabel func_80A0178C
/* 017EC 80A0178C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 017F0 80A01790 14A10006 */ bne $a1, $at, .L80A017AC
/* 017F4 80A01794 AFA40000 */ sw $a0, 0x0000($sp)
/* 017F8 80A01798 3C0180A0 */ lui $at, %hi(D_80A01A10) ## $at = 80A00000
/* 017FC 80A0179C C4261A10 */ lwc1 $f6, %lo(D_80A01A10)($at)
/* 01800 80A017A0 C4E40008 */ lwc1 $f4, 0x0008($a3) ## 00000008
/* 01804 80A017A4 46062200 */ add.s $f8, $f4, $f6
/* 01808 80A017A8 E4E80008 */ swc1 $f8, 0x0008($a3) ## 00000008
.L80A017AC:
/* 0180C 80A017AC 8FAE0014 */ lw $t6, 0x0014($sp)
/* 01810 80A017B0 24010019 */ addiu $at, $zero, 0x0019 ## $at = 00000019
/* 01814 80A017B4 8DCF02A8 */ lw $t7, 0x02A8($t6) ## 000002A8
/* 01818 80A017B8 15E10006 */ bne $t7, $at, .L80A017D4
/* 0181C 80A017BC 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
/* 01820 80A017C0 10A10004 */ beq $a1, $at, .L80A017D4
/* 01824 80A017C4 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 01828 80A017C8 10A10002 */ beq $a1, $at, .L80A017D4
/* 0182C 80A017CC 00000000 */ nop
/* 01830 80A017D0 ACC00000 */ sw $zero, 0x0000($a2) ## 00000000
.L80A017D4:
/* 01834 80A017D4 03E00008 */ jr $ra
/* 01838 80A017D8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000

View file

@ -1,26 +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_Eiyer_InitVars
.word 0x003A0500, 0x00000005, 0x00260000, 0x000002D4
.word EnEiyer_Init
.word EnEiyer_Destroy
.word EnEiyer_Update
.word EnEiyer_Draw
glabel D_80A01970
.byte 0x00, 0x11, 0x09, 0x39, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xCF, 0xFF, 0xFF, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x01, 0x00, 0x00, 0x1B, 0x00, 0x11, 0xFF, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
glabel D_80A0199C
.word 0x0200002D, 0x000F6400
glabel D_80A019A4
.word 0x10020102, 0x10020202, 0x01020402, 0x02020202, 0x02000404, 0x00000104, 0x02020804, 0x00000400
glabel D_80A019C4
.word 0x89170019, 0xC8500005, 0x304C09C4

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_80A01A20
.incbin "baserom/ovl_En_Eiyer", 0x1A80, 0x00000210

3
spec
View file

@ -2138,8 +2138,7 @@ endseg
beginseg
name "ovl_En_Eiyer"
include "build/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o"
include "build/data/overlays/actors/z_en_eiyer.data.o"
include "build/data/overlays/actors/z_en_eiyer.reloc.o"
include "build/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o"
endseg
beginseg

View file

@ -9,14 +9,40 @@ void EnEiyer_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnEiyer_Update(Actor* thisx, GlobalContext* globalCtx);
void EnEiyer_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06000288;
extern UNK_TYPE D_060004C4;
extern UNK_TYPE D_06000704;
extern UNK_TYPE D_06000FC0;
extern UNK_TYPE D_060012AC;
extern UNK_TYPE D_06003410;
void EnEiyer_SetupAppearFromGround(EnEiyer* this);
void EnEiyer_SetupUnderground(EnEiyer* this);
void EnEiyer_SetupInactive(EnEiyer* this);
void EnEiyer_SetupAmbush(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_SetupGlide(EnEiyer* this);
void EnEiyer_SetupStartAttack(EnEiyer* this);
void EnEiyer_SetupDiveAttack(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_SetupLand(EnEiyer* this);
void EnEiyer_SetupHurt(EnEiyer* this);
void EnEiyer_SetupDie(EnEiyer* this);
void EnEiyer_SetupDead(EnEiyer* this);
void EnEiyer_SetupStunned(EnEiyer* this);
void EnEiyer_AppearFromGround(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_WanderUnderground(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_CircleUnderground(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Inactive(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Ambush(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Glide(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_StartAttack(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_DiveAttack(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Land(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Hurt(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Die(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Dead(EnEiyer* this, GlobalContext* globalCtx);
void EnEiyer_Stunned(EnEiyer* this, GlobalContext* globalCtx);
extern AnimationHeader D_06000288;
extern AnimationHeader D_060004C4;
extern AnimationHeader D_06000704;
extern AnimationHeader D_06000FC0;
extern AnimationHeader D_060012AC;
extern SkeletonHeader D_06003410;
/*
const ActorInit En_Eiyer_InitVars = {
ACTOR_EN_EIYER,
ACTORCAT_ENEMY,
@ -29,7 +55,7 @@ const ActorInit En_Eiyer_InitVars = {
(ActorFunc)EnEiyer_Draw,
};
static ColliderCylinderInit D_80A01970 = {
static ColliderCylinderInit sColCylInit = {
{
COLTYPE_HIT0,
AT_ON | AT_TYPE_ENEMY,
@ -48,69 +74,651 @@ static ColliderCylinderInit D_80A01970 = {
},
{ 27, 17, -10, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 2, 45, 15, 100 };
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, 0x1),
/* Deku stick */ DMG_ENTRY(2, 0x0),
/* Slingshot */ DMG_ENTRY(1, 0x0),
/* Explosive */ DMG_ENTRY(2, 0x0),
/* Boomerang */ DMG_ENTRY(0, 0x1),
/* Normal arrow */ DMG_ENTRY(2, 0x0),
/* Hammer swing */ DMG_ENTRY(2, 0x0),
/* Hookshot */ DMG_ENTRY(2, 0x0),
/* Kokiri sword */ DMG_ENTRY(1, 0x0),
/* Master sword */ DMG_ENTRY(2, 0x0),
/* Giant's Knife */ DMG_ENTRY(4, 0x0),
/* Fire arrow */ DMG_ENTRY(2, 0x0),
/* Ice arrow */ DMG_ENTRY(2, 0x0),
/* Light arrow */ DMG_ENTRY(2, 0x0),
/* Unk arrow 1 */ DMG_ENTRY(2, 0x0),
/* Unk arrow 2 */ DMG_ENTRY(2, 0x0),
/* Unk arrow 3 */ DMG_ENTRY(2, 0x0),
/* Fire magic */ DMG_ENTRY(0, 0x0),
/* Ice magic */ DMG_ENTRY(4, 0x0),
/* Light magic */ DMG_ENTRY(4, 0x0),
/* Shield */ DMG_ENTRY(0, 0x0),
/* Mirror Ray */ DMG_ENTRY(0, 0x0),
/* Kokiri spin */ DMG_ENTRY(1, 0x0),
/* Giant spin */ DMG_ENTRY(4, 0x0),
/* Master spin */ DMG_ENTRY(2, 0x0),
/* Kokiri jump */ DMG_ENTRY(2, 0x0),
/* Giant jump */ DMG_ENTRY(8, 0x0),
/* Master jump */ DMG_ENTRY(4, 0x0),
/* Unknown 1 */ DMG_ENTRY(0, 0x0),
/* Unblockable */ DMG_ENTRY(0, 0x0),
/* Hammer jump */ DMG_ENTRY(4, 0x0),
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
};
static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 25, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_STOP),
};
/**
* params 0: Spawn 3 clones and circle around spawn point
* params 1-3: Clone, spawn another clone for the main Eiyer if params < 3
* params 10: Normal Eiyer, wander around spawn point
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/EnEiyer_Init.s")
void EnEiyer_Init(Actor* thisx, GlobalContext* globalCtx) {
EnEiyer* this = THIS;
s32 pad;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/EnEiyer_Destroy.s")
Actor_ProcessInitChain(&this->actor, sInitChain);
ActorShape_Init(&this->actor.shape, 600.0f, ActorShadow_DrawCircle, 65.0f);
SkelAnime_Init(globalCtx, &this->skelanime, &D_06003410, &D_060012AC, this->jointTable, this->morphTable, 19);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sColCylInit);
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A001A4.s")
if (this->actor.params < 3) {
// Each clone spawns another clone
if (Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_EIYER, this->actor.home.pos.x,
this->actor.home.pos.y, this->actor.home.pos.z, 0, this->actor.shape.rot.y + 0x4000, 0,
this->actor.params + 1) == NULL) {
Actor_Kill(&this->actor);
return;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00218.s")
if (this->actor.params == 0) {
Actor* child = this->actor.child;
s32 clonesSpawned;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00358.s")
for (clonesSpawned = 0; clonesSpawned != 3; clonesSpawned++) {
if (child == NULL) {
break;
}
child = child->child;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A003B4.s")
if (clonesSpawned != 3) {
for (child = &this->actor; child != NULL; child = child->child) {
Actor_Kill(child);
}
return;
} else {
this->actor.child->parent = &this->actor;
this->actor.child->child->parent = &this->actor;
this->actor.child->child->child->parent = &this->actor;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A003DC.s")
if (this->actor.params == 0 || this->actor.params == 10) {
EnEiyer_SetupAppearFromGround(this);
} else {
EnEiyer_SetupInactive(this);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A004BC.s")
void EnEiyer_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnEiyer* this = THIS;
Collider_DestroyCylinder(globalCtx, &this->collider);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00534.s")
void EnEiyer_RotateAroundHome(EnEiyer* this) {
this->actor.world.pos.x = Math_SinS(this->actor.world.rot.y) * 80.0f + this->actor.home.pos.x;
this->actor.world.pos.z = Math_CosS(this->actor.world.rot.y) * 80.0f + this->actor.home.pos.z;
this->actor.shape.rot.y = this->actor.world.rot.y + 0x4000;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00544.s")
void EnEiyer_SetupAppearFromGround(EnEiyer* this) {
this->collider.info.bumper.dmgFlags = 0x19;
Animation_PlayLoop(&this->skelanime, &D_060012AC);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00588.s")
this->actor.world.pos.x = this->actor.home.pos.x;
this->actor.world.pos.y = this->actor.home.pos.y - 40.0f;
this->actor.world.pos.z = this->actor.home.pos.z;
this->actor.velocity.y = 0.0f;
this->actor.speedXZ = 0.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00600.s")
if (this->actor.params != 0xA) {
if (this->actor.params == 0) {
this->actor.world.rot.y = Rand_ZeroOne() * 0x10000;
} else {
this->actor.world.rot.y = this->actor.parent->world.rot.y + this->actor.params * 0x4000;
}
EnEiyer_RotateAroundHome(this);
} else {
this->actor.world.rot.y = this->actor.shape.rot.y = Rand_ZeroOne() * 0x10000;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A006B0.s")
this->collider.base.atFlags &= ~AT_ON;
this->collider.base.acFlags &= ~AC_ON;
this->actor.flags &= ~0x1001;
this->actor.shape.shadowScale = 0.0f;
this->actor.shape.yOffset = 0.0f;
this->actionFunc = EnEiyer_AppearFromGround;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A0076C.s")
void EnEiyer_SetupUnderground(EnEiyer* this) {
if (this->actor.params == 0xA) {
this->actor.speedXZ = -0.5f;
this->actionFunc = EnEiyer_WanderUnderground;
} else {
this->actionFunc = EnEiyer_CircleUnderground;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00794.s")
this->collider.base.acFlags |= AC_ON;
this->actor.flags &= ~0x10;
this->actor.flags |= 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00858.s")
void EnEiyer_SetupInactive(EnEiyer* this) {
this->actor.flags &= ~1;
this->actor.world.rot.y = this->actor.shape.rot.y;
this->actionFunc = EnEiyer_Inactive;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A008A4.s")
void EnEiyer_SetupAmbush(EnEiyer* this, GlobalContext* globalCtx) {
this->actor.speedXZ = 0.0f;
Animation_PlayOnce(&this->skelanime, &D_06000704);
this->collider.info.bumper.dmgFlags = ~0x00300000;
this->basePos = this->actor.world.pos;
this->actor.world.rot.y = this->actor.shape.rot.y;
this->actor.flags |= 0x1000;
this->collider.base.acFlags &= ~AC_ON;
this->actor.shape.shadowScale = 65.0f;
this->actor.shape.yOffset = 600.0f;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_OCTAROCK_JUMP);
EffectSsGSplash_Spawn(globalCtx, &this->actor.world.pos, NULL, NULL, 1, 700);
this->actionFunc = EnEiyer_Ambush;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A008D4.s")
void EnEiyer_SetupGlide(EnEiyer* this) {
this->targetYaw = this->actor.shape.rot.y;
this->basePos.y = (cosf(-M_PI / 8) * 5.0f) + this->actor.world.pos.y;
Animation_MorphToLoop(&this->skelanime, &D_06000FC0, -5.0f);
this->timer = 60;
this->actionFunc = EnEiyer_Glide;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00950.s")
void EnEiyer_SetupStartAttack(EnEiyer* this) {
this->actionFunc = EnEiyer_StartAttack;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00A84.s")
void EnEiyer_SetupDiveAttack(EnEiyer* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00B18.s")
this->actor.velocity.y = 0.0f;
this->basePos.y = player->actor.world.pos.y + 15.0f;
this->collider.base.atFlags |= AT_ON;
this->collider.base.atFlags &= ~AT_HIT;
this->actionFunc = EnEiyer_DiveAttack;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00C70.s")
void EnEiyer_SetupLand(EnEiyer* this) {
Animation_MorphToPlayOnce(&this->skelanime, &D_060004C4, -3.0f);
this->collider.base.atFlags &= ~AT_ON;
this->actor.flags |= 0x10;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00E8C.s")
// Update BgCheck info, play sound, and spawn effect on the first frame of the land action
this->timer = -1;
this->actor.gravity = 0.0f;
this->collider.dim.height = sColCylInit.dim.height;
this->actionFunc = EnEiyer_Land;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A00F84.s")
void EnEiyer_SetupHurt(EnEiyer* this) {
this->basePos.y = this->actor.world.pos.y;
Animation_Change(&this->skelanime, &D_06000FC0, 2.0f, 0.0f, 0.0f, 0, -3.0f);
this->timer = 40;
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.speedXZ = 5.0f;
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, 40);
this->collider.base.acFlags &= ~AC_ON;
this->actionFunc = EnEiyer_Hurt;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A01010.s")
void EnEiyer_SetupDie(EnEiyer* this) {
this->timer = 20;
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, 40);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A01104.s")
if (this->collider.info.bumper.dmgFlags != 0x19) {
this->actor.speedXZ = 6.0f;
Animation_MorphToLoop(&this->skelanime, &D_06000FC0, -3.0f);
} else {
this->actor.speedXZ -= 6.0f;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A01240.s")
this->collider.info.bumper.dmgFlags = ~0x00300000;
this->collider.base.atFlags &= ~AT_ON;
this->collider.base.acFlags &= ~AC_ON;
this->actionFunc = EnEiyer_Die;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A012F4.s")
void EnEiyer_SetupDead(EnEiyer* this) {
this->actor.colorFilterParams |= 0x2000;
this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f;
this->actionFunc = EnEiyer_Dead;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A01374.s")
void EnEiyer_SetupStunned(EnEiyer* this) {
Animation_Change(&this->skelanime, &D_06000288, 2.0f, 0.0f, 0.0f, 0, -8.0f);
this->timer = 80;
this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.gravity = -1.0f;
this->collider.dim.height = sColCylInit.dim.height + 8;
Actor_SetColorFilter(&this->actor, 0, 200, 0, 80);
this->collider.base.atFlags &= ~AT_ON;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
this->actionFunc = EnEiyer_Stunned;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A0142C.s")
void EnEiyer_AppearFromGround(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/EnEiyer_Update.s")
if (Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.75f)) {
EnEiyer_SetupUnderground(this);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/func_80A0178C.s")
void EnEiyer_CheckPlayerCollision(EnEiyer* this, GlobalContext* globalCtx) {
if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) {
this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER;
EnEiyer_SetupAmbush(this, globalCtx);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Eiyer/EnEiyer_Draw.s")
void EnEiyer_CircleUnderground(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
this->actor.world.rot.y += -0x60;
EnEiyer_RotateAroundHome(this);
EnEiyer_CheckPlayerCollision(this, globalCtx);
// Clones disappear when the main Eiyer leaves the ground
if (this->actor.params != 0 && ((EnEiyer*)this->actor.parent)->actionFunc != EnEiyer_CircleUnderground) {
EnEiyer_SetupInactive(this);
}
}
void EnEiyer_WanderUnderground(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
if (Actor_WorldDistXZToPoint(&this->actor, &this->actor.home.pos) > 100.0f) {
this->targetYaw = Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos) + 0x8000;
} else if (this->targetYaw == this->actor.world.rot.y && Rand_ZeroOne() > 0.99f) {
this->targetYaw = this->actor.world.rot.y +
(Rand_ZeroOne() < 0.5f ? -1 : 1) * (Rand_ZeroOne() * 0x2000 + 0x2000);
}
Math_ScaledStepToS(&this->actor.world.rot.y, this->targetYaw, 0xB6);
EnEiyer_CheckPlayerCollision(this, globalCtx);
}
void EnEiyer_Inactive(EnEiyer* this, GlobalContext* globalCtx) {
EnEiyer* parent;
if (this->actor.home.pos.y - 50.0f < this->actor.world.pos.y) {
this->actor.world.pos.y -= 0.5f;
}
parent = (EnEiyer*)this->actor.parent;
if (parent->actionFunc == EnEiyer_Dead) {
Actor_Kill(&this->actor);
} else if (parent->actionFunc == EnEiyer_AppearFromGround) {
EnEiyer_SetupAppearFromGround(this);
}
}
void EnEiyer_Ambush(EnEiyer* this, GlobalContext* globalCtx) {
s32 animFinished;
f32 curFrame;
f32 xzOffset;
s32 bgId;
animFinished = SkelAnime_Update(&this->skelanime);
curFrame = this->skelanime.curFrame;
if (this->skelanime.curFrame < 12.0f) {
this->actor.world.pos.y = ((1.0f - cosf((0.996f * M_PI / 12.0f) * curFrame)) * 40.0f) + this->actor.home.pos.y;
xzOffset = sinf((0.996f * M_PI / 12.0f) * curFrame) * -40.0f;
this->actor.world.pos.x = (Math_SinS(this->actor.shape.rot.y) * xzOffset) + this->basePos.x;
this->actor.world.pos.z = (Math_CosS(this->actor.shape.rot.y) * xzOffset) + this->basePos.z;
} else {
Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 80.0f, 0.5f);
this->actor.speedXZ = 0.8f;
}
if (animFinished) {
this->collider.base.acFlags |= AC_ON;
EnEiyer_SetupGlide(this);
} else {
this->actor.floorHeight = BgCheck_EntityRaycastFloor4(&globalCtx->colCtx, &this->actor.floorPoly, &bgId,
&this->actor, &this->actor.world.pos);
}
}
void EnEiyer_Glide(EnEiyer* this, GlobalContext* globalCtx) {
f32 curFrame;
s32 pad;
s16 yawChange;
SkelAnime_Update(&this->skelanime);
if (this->timer != 0) {
this->timer--;
}
curFrame = this->skelanime.curFrame;
Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.3f, this->actor.speedXZ);
this->actor.world.pos.y = this->basePos.y - cosf((curFrame - 5.0f) * (M_PI / 40)) * 5.0f;
if (curFrame <= 45.0f) {
Math_StepToF(&this->actor.speedXZ, 1.0f, 0.03f);
} else {
Math_StepToF(&this->actor.speedXZ, 1.5f, 0.03f);
}
if (this->actor.bgCheckFlags & 8) {
this->targetYaw = this->actor.wallYaw;
}
if (Math_ScaledStepToS(&this->actor.world.rot.y, this->targetYaw, 0xB6)) {
if (this->timer != 0 || Rand_ZeroOne() > 0.05f) {
this->actor.world.rot.y += 0x100;
} else {
yawChange = Rand_S16Offset(0x2000, 0x2000);
this->targetYaw = (Rand_ZeroOne() < 0.5f ? -1 : 1) * yawChange + this->actor.world.rot.y;
}
}
if (this->timer == 0 && this->actor.yDistToPlayer < 0.0f && this->actor.xzDistToPlayer < 120.0f) {
EnEiyer_SetupStartAttack(this);
}
func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG);
}
void EnEiyer_StartAttack(EnEiyer* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Vec3f focus;
SkelAnime_Update(&this->skelanime);
if (this->actor.shape.rot.x > 0 && this->actor.shape.rot.x < 0x8000) {
focus.x = player->actor.world.pos.x;
focus.y = player->actor.world.pos.y + 20.0f;
focus.z = player->actor.world.pos.z;
if (Math_ScaledStepToS(&this->actor.shape.rot.x, Actor_WorldPitchTowardPoint(&this->actor, &focus), 0x1000)) {
EnEiyer_SetupDiveAttack(this, globalCtx);
}
} else {
this->actor.shape.rot.x -= 0x1000;
}
this->actor.world.rot.x = -this->actor.shape.rot.x;
Math_StepToF(&this->actor.speedXZ, 5.0f, 0.3f);
Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 2, 0x71C);
func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG);
}
void EnEiyer_DiveAttack(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
this->actor.speedXZ *= 1.1f;
if (this->actor.bgCheckFlags & 8 || this->actor.bgCheckFlags & 1) {
EnEiyer_SetupLand(this);
}
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~(AT_ON | AT_HIT);
}
func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG);
}
void EnEiyer_Land(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
Math_ScaledStepToS(&this->actor.world.rot.x, -0x4000, 0x450);
Math_StepToF(&this->actor.speedXZ, 7.0f, 1.0f);
if (this->timer == -1) {
if (this->actor.bgCheckFlags & 8 || this->actor.bgCheckFlags & 1) {
this->timer = 10;
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 30, NA_SE_EN_OCTAROCK_SINK);
if (this->actor.bgCheckFlags & 1) {
EffectSsGSplash_Spawn(globalCtx, &this->actor.world.pos, NULL, NULL, 1, 700);
}
}
} else {
if (this->timer != 0) {
this->timer--;
}
if (this->timer == 0) {
this->actor.shape.rot.x = 0;
this->actor.world.rot.x = 0;
EnEiyer_SetupAppearFromGround(this);
}
}
}
void EnEiyer_Hurt(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
if (this->timer != 0) {
this->timer--;
}
Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.5f, this->actor.speedXZ);
this->actor.world.pos.y = this->basePos.y - 5.0f;
if (this->actor.bgCheckFlags & 8) {
this->targetYaw = this->actor.wallYaw;
} else {
this->targetYaw = this->actor.yawTowardsPlayer + 0x8000;
}
Math_ScaledStepToS(&this->actor.world.rot.y, this->targetYaw, 0x38E);
Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x200);
this->actor.shape.rot.z = sinf(this->timer * (M_PI / 5)) * 5120.0f;
if (this->timer == 0) {
this->actor.shape.rot.x = 0;
this->actor.shape.rot.z = 0;
this->collider.base.acFlags |= AC_ON;
EnEiyer_SetupGlide(this);
}
this->actor.world.rot.x = -this->actor.shape.rot.x;
}
void EnEiyer_Die(EnEiyer* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelanime);
if (this->actor.speedXZ > 0.0f) {
Math_ScaledStepToS(&this->actor.shape.rot.x, -0x4000, 0x400);
} else {
Math_ScaledStepToS(&this->actor.shape.rot.x, 0x4000, 0x400);
}
this->actor.shape.rot.z += 0x1000;
if (this->timer != 0) {
this->timer--;
}
this->actor.world.rot.x = -this->actor.shape.rot.x;
if (this->timer == 0 || this->actor.bgCheckFlags & 0x10) {
EnEiyer_SetupDead(this);
}
}
void EnEiyer_Dead(EnEiyer* this, GlobalContext* globalCtx) {
this->actor.shape.shadowAlpha = CLAMP_MIN((s16)(this->actor.shape.shadowAlpha - 5), 0);
this->actor.world.pos.y -= 2.0f;
if (this->actor.shape.shadowAlpha == 0) {
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 80);
Actor_Kill(&this->actor);
}
}
void EnEiyer_Stunned(EnEiyer* this, GlobalContext* globalCtx) {
if (this->timer != 0) {
this->timer--;
}
Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x200);
SkelAnime_Update(&this->skelanime);
if (Animation_OnFrame(&this->skelanime, 0.0f)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_EIER_FLUTTER);
}
if (this->actor.bgCheckFlags & 2) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DODO_M_GND);
}
if (this->timer == 0) {
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
this->collider.dim.height = sColCylInit.dim.height;
EnEiyer_SetupGlide(this);
}
}
void EnEiyer_UpdateDamage(EnEiyer* this, GlobalContext* globalCtx) {
if (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) {
func_80032C7C(globalCtx, &this->actor);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_EIER_DEAD);
this->actor.flags &= ~1;
}
// If underground, one hit kill
if (this->collider.info.bumper.dmgFlags == 0x19) {
if (this->actor.colChkInfo.damage == 0) {
EnEiyer_SetupAmbush(this, globalCtx);
} else {
EnEiyer_SetupDie(this);
}
} else if (this->actor.colChkInfo.damageEffect == 1) {
if (this->actionFunc != EnEiyer_Stunned) {
EnEiyer_SetupStunned(this);
}
} else if (this->actor.colChkInfo.health != 0) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_EIER_DAMAGE);
EnEiyer_SetupHurt(this);
} else {
this->collider.dim.height = sColCylInit.dim.height;
EnEiyer_SetupDie(this);
}
}
}
}
void EnEiyer_Update(Actor* thisx, GlobalContext* globalCtx) {
EnEiyer* this = THIS;
s32 pad;
EnEiyer_UpdateDamage(this, globalCtx);
this->actionFunc(this, globalCtx);
if (this->actor.world.rot.x == 0 || this->actionFunc == EnEiyer_Stunned) {
Actor_MoveForward(&this->actor);
} else {
func_8002D97C(&this->actor);
}
if (this->actionFunc == EnEiyer_Glide || this->actionFunc == EnEiyer_DiveAttack ||
this->actionFunc == EnEiyer_Stunned || this->actionFunc == EnEiyer_Die || this->actionFunc == EnEiyer_Hurt ||
(this->actionFunc == EnEiyer_Land && this->timer == -1)) {
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 5.0f, 27.0f, 30.0f, 7);
}
if (this->actor.params == 0xA ||
(this->actionFunc != EnEiyer_AppearFromGround && this->actionFunc != EnEiyer_CircleUnderground)) {
this->actor.shape.rot.y = this->actor.world.rot.y;
}
// only the main Eiyer can ambush the player
if (this->actor.params == 0 || this->actor.params == 0xA) {
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);
}
if (this->actionFunc != EnEiyer_Ambush) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
}
if (this->actor.flags & 1) {
this->actor.focus.pos.x = this->actor.world.pos.x + Math_SinS(this->actor.shape.rot.y) * 12.5f;
this->actor.focus.pos.z = this->actor.world.pos.z + Math_CosS(this->actor.shape.rot.y) * 12.5f;
this->actor.focus.pos.y = this->actor.world.pos.y;
}
}
s32 EnEiyer_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx,
Gfx** gfx) {
EnEiyer* this = THIS;
if (limbIndex == 1) {
pos->z += 2500.0f;
}
if (this->collider.info.bumper.dmgFlags == 0x19 && limbIndex != 9 && limbIndex != 10) {
*dList = NULL;
}
return 0;
}
void EnEiyer_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnEiyer* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_eiyer.c", 1494);
if (this->actionFunc != EnEiyer_Dead) {
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
POLY_OPA_DISP = SkelAnime_Draw(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable,
EnEiyer_OverrideLimbDraw, NULL, this, POLY_OPA_DISP);
} else {
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08, D_80116280);
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->actor.shape.shadowAlpha);
POLY_XLU_DISP = SkelAnime_Draw(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable,
EnEiyer_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_eiyer.c", 1541);
}

View file

@ -6,9 +6,18 @@
struct EnEiyer;
typedef void (*EnEiyerActionFunc)(struct EnEiyer*, GlobalContext*);
typedef struct EnEiyer {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x188];
/* 0x014C */ SkelAnime skelanime;
/* 0x0190 */ EnEiyerActionFunc actionFunc;
/* 0x0194 */ s16 timer;
/* 0x0196 */ s16 targetYaw;
/* 0x0198 */ Vec3s jointTable[19];
/* 0x020A */ Vec3s morphTable[19];
/* 0x027C */ Vec3f basePos;
/* 0x0288 */ ColliderCylinder collider;
} EnEiyer; // size = 0x02D4
extern const ActorInit En_Eiyer_InitVars;