1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-10 02:54:24 +00:00

Decompile ovl_En_Fhg_Fire (#248)

* Decomp EnFhgFire_Init and EnFhgFire_SetActorFunc

* Decomp EnFhgFire_Destroy

* Decomp func_80A0F6F8

* Run format

* Decomp func_80A0FA90

* Decomp func_80A0FC48

* Decomp func_80A0FD8C

* Decomp EffectSsFhgFlash_Spawn

ex func_80029CF0

* Decomp EffectSsFhgFlash_Spawn2

ex func_80029D5C

* Decomp EnFhgFire_Update

* Decomp EnFhgFire_Draw, not matching

* Decomp func_80A10F18

* Move InitVars

* PR fixes

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

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Léo Peltier 2020-07-16 10:02:27 +00:00 committed by GitHub
parent 106f7a3f6a
commit bc14f6d93e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 605 additions and 1442 deletions

View file

@ -1,29 +0,0 @@
glabel func_80029CF0
/* AA0E90 80029CF0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AA0E94 80029CF4 AFBF0014 */ sw $ra, 0x14($sp)
/* AA0E98 80029CF8 AFA40048 */ sw $a0, 0x48($sp)
/* AA0E9C 80029CFC AFA60050 */ sw $a2, 0x50($sp)
/* AA0EA0 80029D00 AFA70054 */ sw $a3, 0x54($sp)
/* AA0EA4 80029D04 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0EA8 80029D08 27A40018 */ addiu $a0, $sp, 0x18
/* AA0EAC 80029D0C 27A40024 */ addiu $a0, $sp, 0x24
/* AA0EB0 80029D10 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0EB4 80029D14 8FA50050 */ lw $a1, 0x50($sp)
/* AA0EB8 80029D18 27A40030 */ addiu $a0, $sp, 0x30
/* AA0EBC 80029D1C 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0EC0 80029D20 8FA50054 */ lw $a1, 0x54($sp)
/* AA0EC4 80029D24 87AE005A */ lh $t6, 0x5a($sp)
/* AA0EC8 80029D28 93AF005F */ lbu $t7, 0x5f($sp)
/* AA0ECC 80029D2C A3A00044 */ sb $zero, 0x44($sp)
/* AA0ED0 80029D30 8FA40048 */ lw $a0, 0x48($sp)
/* AA0ED4 80029D34 24050016 */ li $a1, 22
/* AA0ED8 80029D38 24060080 */ li $a2, 128
/* AA0EDC 80029D3C 27A70018 */ addiu $a3, $sp, 0x18
/* AA0EE0 80029D40 A7AE003C */ sh $t6, 0x3c($sp)
/* AA0EE4 80029D44 0C009DE6 */ jal EffectSs_Spawn
/* AA0EE8 80029D48 A3AF003E */ sb $t7, 0x3e($sp)
/* AA0EEC 80029D4C 8FBF0014 */ lw $ra, 0x14($sp)
/* AA0EF0 80029D50 27BD0048 */ addiu $sp, $sp, 0x48
/* AA0EF4 80029D54 03E00008 */ jr $ra
/* AA0EF8 80029D58 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_80029D5C
/* AA0EFC 80029D5C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AA0F00 80029D60 AFBF0014 */ sw $ra, 0x14($sp)
/* AA0F04 80029D64 AFA40048 */ sw $a0, 0x48($sp)
/* AA0F08 80029D68 AFA5004C */ sw $a1, 0x4c($sp)
/* AA0F0C 80029D6C AFA50040 */ sw $a1, 0x40($sp)
/* AA0F10 80029D70 AFA70054 */ sw $a3, 0x54($sp)
/* AA0F14 80029D74 00C02825 */ move $a1, $a2
/* AA0F18 80029D78 0C01DF90 */ jal Math_Vec3f_Copy
/* AA0F1C 80029D7C 27A40018 */ addiu $a0, $sp, 0x18
/* AA0F20 80029D80 87AF0056 */ lh $t7, 0x56($sp)
/* AA0F24 80029D84 93B8005B */ lbu $t8, 0x5b($sp)
/* AA0F28 80029D88 24190001 */ li $t9, 1
/* AA0F2C 80029D8C A3B90044 */ sb $t9, 0x44($sp)
/* AA0F30 80029D90 8FA40048 */ lw $a0, 0x48($sp)
/* AA0F34 80029D94 24050016 */ li $a1, 22
/* AA0F38 80029D98 24060080 */ li $a2, 128
/* AA0F3C 80029D9C 27A70018 */ addiu $a3, $sp, 0x18
/* AA0F40 80029DA0 A7AF003C */ sh $t7, 0x3c($sp)
/* AA0F44 80029DA4 0C009DE6 */ jal EffectSs_Spawn
/* AA0F48 80029DA8 A3B8003E */ sb $t8, 0x3e($sp)
/* AA0F4C 80029DAC 8FBF0014 */ lw $ra, 0x14($sp)
/* AA0F50 80029DB0 27BD0048 */ addiu $sp, $sp, 0x48
/* AA0F54 80029DB4 03E00008 */ jr $ra
/* AA0F58 80029DB8 00000000 */ nop

View file

@ -264,7 +264,7 @@ glabel BossGanondrof_Update
/* 03BE0 80914220 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 03BE4 80914224 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 03BE8 80914228 8FA60048 */ lw $a2, 0x0048($sp)
/* 03BEC 8091422C 0C00A757 */ jal func_80029D5C
/* 03BEC 8091422C 0C00A757 */ jal EffectSsFhgFlash_Spawn2
/* 03BF0 80914230 2407002D */ addiu $a3, $zero, 0x002D ## $a3 = 0000002D
/* 03BF4 80914234 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 03BF8 80914238 00108400 */ sll $s0, $s0, 16

View file

@ -485,7 +485,7 @@ glabel func_8091156C
/* 01604 80911C44 00095400 */ sll $t2, $t1, 16
/* 01608 80911C48 000A5C03 */ sra $t3, $t2, 16
/* 0160C 80911C4C 256C0096 */ addiu $t4, $t3, 0x0096 ## $t4 = 00000096
/* 01610 80911C50 0C00A73C */ jal func_80029CF0
/* 01610 80911C50 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 01614 80911C54 AFAC0010 */ sw $t4, 0x0010($sp)
/* 01618 80911C58 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 0161C 80911C5C 00108400 */ sll $s0, $s0, 16

View file

@ -436,7 +436,7 @@ glabel func_80912594
/* 0259C 80912BDC 461C5102 */ mul.s $f4, $f10, $f28
/* 025A0 80912BE0 46142483 */ div.s $f18, $f4, $f20
/* 025A4 80912BE4 E7A8009C */ swc1 $f8, 0x009C($sp)
/* 025A8 80912BE8 0C00A73C */ jal func_80029CF0
/* 025A8 80912BE8 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 025AC 80912BEC E7B200A0 */ swc1 $f18, 0x00A0($sp)
/* 025B0 80912BF0 863801AC */ lh $t8, 0x01AC($s1) ## 000001AC
/* 025B4 80912BF4 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001

View file

@ -1,33 +0,0 @@
glabel EnFhgFire_Destroy
/* 0042C 80A0F68C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00430 80A0F690 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00434 80A0F694 AFA5001C */ sw $a1, 0x001C($sp)
/* 00438 80A0F698 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 0043C 80A0F69C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00440 80A0F6A0 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023
/* 00444 80A0F6A4 10410005 */ beq $v0, $at, .L80A0F6BC
/* 00448 80A0F6A8 8FA4001C */ lw $a0, 0x001C($sp)
/* 0044C 80A0F6AC 24010024 */ addiu $at, $zero, 0x0024 ## $at = 00000024
/* 00450 80A0F6B0 10410002 */ beq $v0, $at, .L80A0F6BC
/* 00454 80A0F6B4 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
/* 00458 80A0F6B8 14410005 */ bne $v0, $at, .L80A0F6D0
.L80A0F6BC:
/* 0045C 80A0F6BC 24E501B0 */ addiu $a1, $a3, 0x01B0 ## $a1 = 000001B0
/* 00460 80A0F6C0 0C0170EB */ jal Collider_DestroyCylinder
/* 00464 80A0F6C4 AFA70018 */ sw $a3, 0x0018($sp)
/* 00468 80A0F6C8 8FA70018 */ lw $a3, 0x0018($sp)
/* 0046C 80A0F6CC 84E2001C */ lh $v0, 0x001C($a3) ## 0000001C
.L80A0F6D0:
/* 00470 80A0F6D0 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
/* 00474 80A0F6D4 14410004 */ bne $v0, $at, .L80A0F6E8
/* 00478 80A0F6D8 8FA4001C */ lw $a0, 0x001C($sp)
/* 0047C 80A0F6DC 248507A8 */ addiu $a1, $a0, 0x07A8 ## $a1 = 000007A8
/* 00480 80A0F6E0 0C01E9F1 */ jal Lights_Remove
/* 00484 80A0F6E4 8CE6019C */ lw $a2, 0x019C($a3) ## 0000019C
.L80A0F6E8:
/* 00488 80A0F6E8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0048C 80A0F6EC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00490 80A0F6F0 03E00008 */ jr $ra
/* 00494 80A0F6F4 00000000 */ nop

View file

@ -1,311 +0,0 @@
.rdata
glabel D_80A11840
.asciz "yari hikari ct 1\n"
.balign 4
glabel D_80A11854
.asciz "yari hikari ct 2\n"
.balign 4
.late_rodata
glabel D_80A119C4
.word 0x3E051EB8
glabel D_80A119C8
.word 0x4622F983
glabel D_80A119CC
.word 0x4622F983
.text
glabel EnFhgFire_Init
/* 00008 80A0F268 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 0000C 80A0F26C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00010 80A0F270 AFBF002C */ sw $ra, 0x002C($sp)
/* 00014 80A0F274 AFB00028 */ sw $s0, 0x0028($sp)
/* 00018 80A0F278 AFA5005C */ sw $a1, 0x005C($sp)
/* 0001C 80A0F27C 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00020 80A0F280 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00024 80A0F284 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
/* 00028 80A0F288 44050000 */ mfc1 $a1, $f0
/* 0002C 80A0F28C 44070000 */ mfc1 $a3, $f0
/* 00030 80A0F290 AFA40038 */ sw $a0, 0x0038($sp)
/* 00034 80A0F294 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00038 80A0F298 0C00AC78 */ jal ActorShape_Init
/* 0003C 80A0F29C AFAF004C */ sw $t7, 0x004C($sp)
/* 00040 80A0F2A0 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00044 80A0F2A4 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023
/* 00048 80A0F2A8 8FA4005C */ lw $a0, 0x005C($sp)
/* 0004C 80A0F2AC 10410006 */ beq $v0, $at, .L80A0F2C8
/* 00050 80A0F2B0 260501B0 */ addiu $a1, $s0, 0x01B0 ## $a1 = 000001B0
/* 00054 80A0F2B4 24010024 */ addiu $at, $zero, 0x0024 ## $at = 00000024
/* 00058 80A0F2B8 10410003 */ beq $v0, $at, .L80A0F2C8
/* 0005C 80A0F2BC 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
/* 00060 80A0F2C0 5441000A */ bnel $v0, $at, .L80A0F2EC
/* 00064 80A0F2C4 3C014348 */ lui $at, 0x4348 ## $at = 43480000
.L80A0F2C8:
/* 00068 80A0F2C8 0C0170D9 */ jal Collider_InitCylinder
/* 0006C 80A0F2CC AFA50034 */ sw $a1, 0x0034($sp)
/* 00070 80A0F2D0 3C0780A1 */ lui $a3, %hi(D_80A11790) ## $a3 = 80A10000
/* 00074 80A0F2D4 8FA50034 */ lw $a1, 0x0034($sp)
/* 00078 80A0F2D8 24E71790 */ addiu $a3, $a3, %lo(D_80A11790) ## $a3 = 80A11790
/* 0007C 80A0F2DC 8FA4005C */ lw $a0, 0x005C($sp)
/* 00080 80A0F2E0 0C01712B */ jal Collider_SetCylinder
/* 00084 80A0F2E4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00088 80A0F2E8 3C014348 */ lui $at, 0x4348 ## $at = 43480000
.L80A0F2EC:
/* 0008C 80A0F2EC 44812000 */ mtc1 $at, $f4 ## $f4 = 200.00
/* 00090 80A0F2F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00094 80A0F2F4 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00098 80A0F2F8 0C00B58B */ jal Actor_SetScale
/* 0009C 80A0F2FC E6040160 */ swc1 $f4, 0x0160($s0) ## 00000160
/* 000A0 80A0F300 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 000A4 80A0F304 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 000A8 80A0F308 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000AC 80A0F30C 14410008 */ bne $v0, $at, .L80A0F330
/* 000B0 80A0F310 3C0580A1 */ lui $a1, %hi(func_80A0F6F8) ## $a1 = 80A10000
/* 000B4 80A0F314 0C283C98 */ jal func_80A0F260
/* 000B8 80A0F318 24A5F6F8 */ addiu $a1, $a1, %lo(func_80A0F6F8) ## $a1 = 80A0F6F8
/* 000BC 80A0F31C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000C0 80A0F320 0C00BE0A */ jal Audio_PlayActorSound2
/* 000C4 80A0F324 240538A2 */ addiu $a1, $zero, 0x38A2 ## $a1 = 000038A2
/* 000C8 80A0F328 1000000F */ beq $zero, $zero, .L80A0F368
/* 000CC 80A0F32C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
.L80A0F330:
/* 000D0 80A0F330 28410064 */ slti $at, $v0, 0x0064
/* 000D4 80A0F334 1420000C */ bne $at, $zero, .L80A0F368
/* 000D8 80A0F338 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000DC 80A0F33C 3C0580A1 */ lui $a1, %hi(func_80A0FA90) ## $a1 = 80A10000
/* 000E0 80A0F340 0C283C98 */ jal func_80A0F260
/* 000E4 80A0F344 24A5FA90 */ addiu $a1, $a1, %lo(func_80A0FA90) ## $a1 = 80A0FA90
/* 000E8 80A0F348 8A080030 */ lwl $t0, 0x0030($s0) ## 00000030
/* 000EC 80A0F34C 8FB80038 */ lw $t8, 0x0038($sp)
/* 000F0 80A0F350 9A080033 */ lwr $t0, 0x0033($s0) ## 00000033
/* 000F4 80A0F354 AB080000 */ swl $t0, 0x0000($t8) ## 00000000
/* 000F8 80A0F358 BB080003 */ swr $t0, 0x0003($t8) ## 00000003
/* 000FC 80A0F35C 96080034 */ lhu $t0, 0x0034($s0) ## 00000034
/* 00100 80A0F360 A7080004 */ sh $t0, 0x0004($t8) ## 00000004
/* 00104 80A0F364 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
.L80A0F368:
/* 00108 80A0F368 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023
/* 0010C 80A0F36C 1441000D */ bne $v0, $at, .L80A0F3A4
/* 00110 80A0F370 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00114 80A0F374 3C0580A1 */ lui $a1, %hi(func_80A0FC48) ## $a1 = 80A10000
/* 00118 80A0F378 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 0011C 80A0F37C 0C283C98 */ jal func_80A0F260
/* 00120 80A0F380 24A5FC48 */ addiu $a1, $a1, %lo(func_80A0FC48) ## $a1 = 80A0FC48
/* 00124 80A0F384 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00128 80A0F388 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
/* 0012C 80A0F38C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00130 80A0F390 240538A3 */ addiu $a1, $zero, 0x38A3 ## $a1 = 000038A3
/* 00134 80A0F394 0C00BE0A */ jal Audio_PlayActorSound2
/* 00138 80A0F398 E6060068 */ swc1 $f6, 0x0068($s0) ## 00000068
/* 0013C 80A0F39C 100000B7 */ beq $zero, $zero, .L80A0F67C
/* 00140 80A0F3A0 8FBF002C */ lw $ra, 0x002C($sp)
.L80A0F3A4:
/* 00144 80A0F3A4 24010024 */ addiu $at, $zero, 0x0024 ## $at = 00000024
/* 00148 80A0F3A8 1441001E */ bne $v0, $at, .L80A0F424
/* 0014C 80A0F3AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00150 80A0F3B0 3C0580A1 */ lui $a1, %hi(func_80A0FD8C) ## $a1 = 80A10000
/* 00154 80A0F3B4 0C283C98 */ jal func_80A0F260
/* 00158 80A0F3B8 24A5FD8C */ addiu $a1, $a1, %lo(func_80A0FD8C) ## $a1 = 80A0FD8C
/* 0015C 80A0F3BC 860C0030 */ lh $t4, 0x0030($s0) ## 00000030
/* 00160 80A0F3C0 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 00164 80A0F3C4 44814000 */ mtc1 $at, $f8 ## $f8 = 255.00
/* 00168 80A0F3C8 448C5000 */ mtc1 $t4, $f10 ## $f10 = 0.00
/* 0016C 80A0F3CC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00170 80A0F3D0 44819000 */ mtc1 $at, $f18 ## $f18 = 100.00
/* 00174 80A0F3D4 46805020 */ cvt.s.w $f0, $f10
/* 00178 80A0F3D8 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
/* 0017C 80A0F3DC 240A0032 */ addiu $t2, $zero, 0x0032 ## $t2 = 00000032
/* 00180 80A0F3E0 240B000A */ addiu $t3, $zero, 0x000A ## $t3 = 0000000A
/* 00184 80A0F3E4 A6090150 */ sh $t1, 0x0150($s0) ## 00000150
/* 00188 80A0F3E8 A60A0152 */ sh $t2, 0x0152($s0) ## 00000152
/* 0018C 80A0F3EC 46120103 */ div.s $f4, $f0, $f18
/* 00190 80A0F3F0 A60B01FE */ sh $t3, 0x01FE($s0) ## 000001FE
/* 00194 80A0F3F4 3C0180A1 */ lui $at, %hi(D_80A119C4) ## $at = 80A10000
/* 00198 80A0F3F8 E6080160 */ swc1 $f8, 0x0160($s0) ## 00000160
/* 0019C 80A0F3FC E604018C */ swc1 $f4, 0x018C($s0) ## 0000018C
/* 001A0 80A0F400 C42619C4 */ lwc1 $f6, %lo(D_80A119C4)($at)
/* 001A4 80A0F404 A60001F4 */ sh $zero, 0x01F4($s0) ## 000001F4
/* 001A8 80A0F408 46060202 */ mul.s $f8, $f0, $f6
/* 001AC 80A0F40C 4600428D */ trunc.w.s $f10, $f8
/* 001B0 80A0F410 44025000 */ mfc1 $v0, $f10
/* 001B4 80A0F414 00000000 */ nop
/* 001B8 80A0F418 A60201F0 */ sh $v0, 0x01F0($s0) ## 000001F0
/* 001BC 80A0F41C 10000096 */ beq $zero, $zero, .L80A0F678
/* 001C0 80A0F420 A60201F2 */ sh $v0, 0x01F2($s0) ## 000001F2
.L80A0F424:
/* 001C4 80A0F424 24010026 */ addiu $at, $zero, 0x0026 ## $at = 00000026
/* 001C8 80A0F428 1441000F */ bne $v0, $at, .L80A0F468
/* 001CC 80A0F42C 3C0480A1 */ lui $a0, %hi(D_80A11840) ## $a0 = 80A10000
/* 001D0 80A0F430 0C00084C */ jal osSyncPrintf
/* 001D4 80A0F434 24841840 */ addiu $a0, $a0, %lo(D_80A11840) ## $a0 = 80A11840
/* 001D8 80A0F438 3C0580A1 */ lui $a1, %hi(func_80A10008) ## $a1 = 80A10000
/* 001DC 80A0F43C 24A50008 */ addiu $a1, $a1, %lo(func_80A10008) ## $a1 = 80A10008
/* 001E0 80A0F440 0C283C98 */ jal func_80A0F260
/* 001E4 80A0F444 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001E8 80A0F448 3C0480A1 */ lui $a0, %hi(D_80A11854) ## $a0 = 80A10000
/* 001EC 80A0F44C 0C00084C */ jal osSyncPrintf
/* 001F0 80A0F450 24841854 */ addiu $a0, $a0, %lo(D_80A11854) ## $a0 = 80A11854
/* 001F4 80A0F454 860E0030 */ lh $t6, 0x0030($s0) ## 00000030
/* 001F8 80A0F458 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
/* 001FC 80A0F45C A60E0150 */ sh $t6, 0x0150($s0) ## 00000150
/* 00200 80A0F460 10000085 */ beq $zero, $zero, .L80A0F678
/* 00204 80A0F464 A60F0158 */ sh $t7, 0x0158($s0) ## 00000158
.L80A0F468:
/* 00208 80A0F468 24010027 */ addiu $at, $zero, 0x0027 ## $at = 00000027
/* 0020C 80A0F46C 10410006 */ beq $v0, $at, .L80A0F488
/* 00210 80A0F470 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00214 80A0F474 24010028 */ addiu $at, $zero, 0x0028 ## $at = 00000028
/* 00218 80A0F478 10410003 */ beq $v0, $at, .L80A0F488
/* 0021C 80A0F47C 24010029 */ addiu $at, $zero, 0x0029 ## $at = 00000029
/* 00220 80A0F480 5441001B */ bnel $v0, $at, .L80A0F4F0
/* 00224 80A0F484 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
.L80A0F488:
/* 00228 80A0F488 0C00B58B */ jal Actor_SetScale
/* 0022C 80A0F48C 3C0540E0 */ lui $a1, 0x40E0 ## $a1 = 40E00000
/* 00230 80A0F490 3C0580A1 */ lui $a1, %hi(func_80A10F18) ## $a1 = 80A10000
/* 00234 80A0F494 24A50F18 */ addiu $a1, $a1, %lo(func_80A10F18) ## $a1 = 80A10F18
/* 00238 80A0F498 0C283C98 */ jal func_80A0F260
/* 0023C 80A0F49C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00240 80A0F4A0 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 00244 80A0F4A4 24010029 */ addiu $at, $zero, 0x0029 ## $at = 00000029
/* 00248 80A0F4A8 2408004C */ addiu $t0, $zero, 0x004C ## $t0 = 0000004C
/* 0024C 80A0F4AC 17010007 */ bne $t8, $at, .L80A0F4CC
/* 00250 80A0F4B0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00254 80A0F4B4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00258 80A0F4B8 44819000 */ mtc1 $at, $f18 ## $f18 = 1.00
/* 0025C 80A0F4BC 241901B8 */ addiu $t9, $zero, 0x01B8 ## $t9 = 000001B8
/* 00260 80A0F4C0 A6190150 */ sh $t9, 0x0150($s0) ## 00000150
/* 00264 80A0F4C4 1000006C */ beq $zero, $zero, .L80A0F678
/* 00268 80A0F4C8 E6120058 */ swc1 $f18, 0x0058($s0) ## 00000058
.L80A0F4CC:
/* 0026C 80A0F4CC A6080150 */ sh $t0, 0x0150($s0) ## 00000150
/* 00270 80A0F4D0 0C00BE0A */ jal Audio_PlayActorSound2
/* 00274 80A0F4D4 2405283F */ addiu $a1, $zero, 0x283F ## $a1 = 0000283F
/* 00278 80A0F4D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0027C 80A0F4DC 0C00BE0A */ jal Audio_PlayActorSound2
/* 00280 80A0F4E0 24052853 */ addiu $a1, $zero, 0x2853 ## $a1 = 00002853
/* 00284 80A0F4E4 10000065 */ beq $zero, $zero, .L80A0F67C
/* 00288 80A0F4E8 8FBF002C */ lw $ra, 0x002C($sp)
/* 0028C 80A0F4EC 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
.L80A0F4F0:
/* 00290 80A0F4F0 14410061 */ bne $v0, $at, .L80A0F678
/* 00294 80A0F4F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00298 80A0F4F8 86090030 */ lh $t1, 0x0030($s0) ## 00000030
/* 0029C 80A0F4FC 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 002A0 80A0F500 3C0580A1 */ lui $a1, %hi(func_80A10220) ## $a1 = 80A10000
/* 002A4 80A0F504 55200006 */ bnel $t1, $zero, .L80A0F520
/* 002A8 80A0F508 44813000 */ mtc1 $at, $f6 ## $f6 = 3.00
/* 002AC 80A0F50C 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 002B0 80A0F510 44812000 */ mtc1 $at, $f4 ## $f4 = 8.00
/* 002B4 80A0F514 10000004 */ beq $zero, $zero, .L80A0F528
/* 002B8 80A0F518 E6040068 */ swc1 $f4, 0x0068($s0) ## 00000068
/* 002BC 80A0F51C 44813000 */ mtc1 $at, $f6 ## $f6 = 8.00
.L80A0F520:
/* 002C0 80A0F520 00000000 */ nop
/* 002C4 80A0F524 E6060068 */ swc1 $f6, 0x0068($s0) ## 00000068
.L80A0F528:
/* 002C8 80A0F528 0C283C98 */ jal func_80A0F260
/* 002CC 80A0F52C 24A50220 */ addiu $a1, $a1, %lo(func_80A10220) ## $a1 = 80A10220
/* 002D0 80A0F530 8FA2004C */ lw $v0, 0x004C($sp)
/* 002D4 80A0F534 240A0046 */ addiu $t2, $zero, 0x0046 ## $t2 = 00000046
/* 002D8 80A0F538 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
/* 002DC 80A0F53C A60A0150 */ sh $t2, 0x0150($s0) ## 00000150
/* 002E0 80A0F540 A60B0152 */ sh $t3, 0x0152($s0) ## 00000152
/* 002E4 80A0F544 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 002E8 80A0F548 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 002EC 80A0F54C 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
/* 002F0 80A0F550 C4480024 */ lwc1 $f8, 0x0024($v0) ## 00000024
/* 002F4 80A0F554 C4520028 */ lwc1 $f18, 0x0028($v0) ## 00000028
/* 002F8 80A0F558 460A4301 */ sub.s $f12, $f8, $f10
/* 002FC 80A0F55C C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 00300 80A0F560 46049180 */ add.s $f6, $f18, $f4
/* 00304 80A0F564 46083281 */ sub.s $f10, $f6, $f8
/* 00308 80A0F568 E7AA0044 */ swc1 $f10, 0x0044($sp)
/* 0030C 80A0F56C C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 00310 80A0F570 C452002C */ lwc1 $f18, 0x002C($v0) ## 0000002C
/* 00314 80A0F574 E7AC0048 */ swc1 $f12, 0x0048($sp)
/* 00318 80A0F578 46049381 */ sub.s $f14, $f18, $f4
/* 0031C 80A0F57C 0C03F494 */ jal Math_atan2f
/* 00320 80A0F580 E7AE0040 */ swc1 $f14, 0x0040($sp)
/* 00324 80A0F584 3C0180A1 */ lui $at, %hi(D_80A119C8) ## $at = 80A10000
/* 00328 80A0F588 C42619C8 */ lwc1 $f6, %lo(D_80A119C8)($at)
/* 0032C 80A0F58C C7A20048 */ lwc1 $f2, 0x0048($sp)
/* 00330 80A0F590 C7B00040 */ lwc1 $f16, 0x0040($sp)
/* 00334 80A0F594 46060202 */ mul.s $f8, $f0, $f6
/* 00338 80A0F598 00000000 */ nop
/* 0033C 80A0F59C 46021482 */ mul.s $f18, $f2, $f2
/* 00340 80A0F5A0 00000000 */ nop
/* 00344 80A0F5A4 46108102 */ mul.s $f4, $f16, $f16
/* 00348 80A0F5A8 4600428D */ trunc.w.s $f10, $f8
/* 0034C 80A0F5AC 46049000 */ add.s $f0, $f18, $f4
/* 00350 80A0F5B0 440D5000 */ mfc1 $t5, $f10
/* 00354 80A0F5B4 00000000 */ nop
/* 00358 80A0F5B8 A60D0032 */ sh $t5, 0x0032($s0) ## 00000032
/* 0035C 80A0F5BC 46000384 */ sqrt.s $f14, $f0
/* 00360 80A0F5C0 0C03F494 */ jal Math_atan2f
/* 00364 80A0F5C4 C7AC0044 */ lwc1 $f12, 0x0044($sp)
/* 00368 80A0F5C8 3C0180A1 */ lui $at, %hi(D_80A119CC) ## $at = 80A10000
/* 0036C 80A0F5CC C42619CC */ lwc1 $f6, %lo(D_80A119CC)($at)
/* 00370 80A0F5D0 24180028 */ addiu $t8, $zero, 0x0028 ## $t8 = 00000028
/* 00374 80A0F5D4 24190032 */ addiu $t9, $zero, 0x0032 ## $t9 = 00000032
/* 00378 80A0F5D8 46060202 */ mul.s $f8, $f0, $f6
/* 0037C 80A0F5DC 2408FFE7 */ addiu $t0, $zero, 0xFFE7 ## $t0 = FFFFFFE7
/* 00380 80A0F5E0 A61801F0 */ sh $t8, 0x01F0($s0) ## 000001F0
/* 00384 80A0F5E4 A61901F2 */ sh $t9, 0x01F2($s0) ## 000001F2
/* 00388 80A0F5E8 A60801F4 */ sh $t0, 0x01F4($s0) ## 000001F4
/* 0038C 80A0F5EC 260601A0 */ addiu $a2, $s0, 0x01A0 ## $a2 = 000001A0
/* 00390 80A0F5F0 4600428D */ trunc.w.s $f10, $f8
/* 00394 80A0F5F4 440F5000 */ mfc1 $t7, $f10
/* 00398 80A0F5F8 00000000 */ nop
/* 0039C 80A0F5FC A60F0030 */ sh $t7, 0x0030($s0) ## 00000030
/* 003A0 80A0F600 8FA4005C */ lw $a0, 0x005C($sp)
/* 003A4 80A0F604 AFA60038 */ sw $a2, 0x0038($sp)
/* 003A8 80A0F608 0C01E9D9 */ jal Lights_Insert
/* 003AC 80A0F60C 248507A8 */ addiu $a1, $a0, 0x07A8 ## $a1 = 000007A8
/* 003B0 80A0F610 C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
/* 003B4 80A0F614 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 003B8 80A0F618 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 003BC 80A0F61C 4600910D */ trunc.w.s $f4, $f18
/* 003C0 80A0F620 AE02019C */ sw $v0, 0x019C($s0) ## 0000019C
/* 003C4 80A0F624 240D00FF */ addiu $t5, $zero, 0x00FF ## $t5 = 000000FF
/* 003C8 80A0F628 4600320D */ trunc.w.s $f8, $f6
/* 003CC 80A0F62C 44052000 */ mfc1 $a1, $f4
/* 003D0 80A0F630 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 003D4 80A0F634 4600548D */ trunc.w.s $f18, $f10
/* 003D8 80A0F638 44064000 */ mfc1 $a2, $f8
/* 003DC 80A0F63C 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 003E0 80A0F640 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 003E4 80A0F644 44079000 */ mfc1 $a3, $f18
/* 003E8 80A0F648 00052C00 */ sll $a1, $a1, 16
/* 003EC 80A0F64C 00063400 */ sll $a2, $a2, 16
/* 003F0 80A0F650 00073C00 */ sll $a3, $a3, 16
/* 003F4 80A0F654 00073C03 */ sra $a3, $a3, 16
/* 003F8 80A0F658 00063403 */ sra $a2, $a2, 16
/* 003FC 80A0F65C 00052C03 */ sra $a1, $a1, 16
/* 00400 80A0F660 AFB8001C */ sw $t8, 0x001C($sp)
/* 00404 80A0F664 AFAF0018 */ sw $t7, 0x0018($sp)
/* 00408 80A0F668 AFAE0014 */ sw $t6, 0x0014($sp)
/* 0040C 80A0F66C AFAD0010 */ sw $t5, 0x0010($sp)
/* 00410 80A0F670 0C01E763 */ jal Lights_InitType0PositionalLight
/* 00414 80A0F674 8FA40038 */ lw $a0, 0x0038($sp)
.L80A0F678:
/* 00418 80A0F678 8FBF002C */ lw $ra, 0x002C($sp)
.L80A0F67C:
/* 0041C 80A0F67C 8FB00028 */ lw $s0, 0x0028($sp)
/* 00420 80A0F680 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 00424 80A0F684 03E00008 */ jr $ra
/* 00428 80A0F688 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel EnFhgFire_Update
/* 01E88 80A110E8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01E8C 80A110EC AFBF0014 */ sw $ra, 0x0014($sp)
/* 01E90 80A110F0 848E0156 */ lh $t6, 0x0156($a0) ## 00000156
/* 01E94 80A110F4 84820150 */ lh $v0, 0x0150($a0) ## 00000150
/* 01E98 80A110F8 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 01E9C 80A110FC 10400003 */ beq $v0, $zero, .L80A1110C
/* 01EA0 80A11100 A48F0156 */ sh $t7, 0x0156($a0) ## 00000156
/* 01EA4 80A11104 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 01EA8 80A11108 A4980150 */ sh $t8, 0x0150($a0) ## 00000150
.L80A1110C:
/* 01EAC 80A1110C 84820152 */ lh $v0, 0x0152($a0) ## 00000152
/* 01EB0 80A11110 10400002 */ beq $v0, $zero, .L80A1111C
/* 01EB4 80A11114 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 01EB8 80A11118 A4990152 */ sh $t9, 0x0152($a0) ## 00000152
.L80A1111C:
/* 01EBC 80A1111C 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 01EC0 80A11120 0320F809 */ jalr $ra, $t9
/* 01EC4 80A11124 00000000 */ nop
/* 01EC8 80A11128 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01ECC 80A1112C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01ED0 80A11130 03E00008 */ jr $ra
/* 01ED4 80A11134 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80A0F260
/* 00000 80A0F260 03E00008 */ jr $ra
/* 00004 80A0F264 AC85014C */ sw $a1, 0x014C($a0) ## 0000014C

View file

@ -1,258 +0,0 @@
.late_rodata
glabel D_80A119D0
.word 0xBE4CCCCD
.text
glabel func_80A0F6F8
/* 00498 80A0F6F8 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 0049C 80A0F6FC AFB10044 */ sw $s1, 0x0044($sp)
/* 004A0 80A0F700 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 004A4 80A0F704 AFB40050 */ sw $s4, 0x0050($sp)
/* 004A8 80A0F708 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 004AC 80A0F70C AFBF0054 */ sw $ra, 0x0054($sp)
/* 004B0 80A0F710 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 004B4 80A0F714 AFB3004C */ sw $s3, 0x004C($sp)
/* 004B8 80A0F718 AFB20048 */ sw $s2, 0x0048($sp)
/* 004BC 80A0F71C AFB00040 */ sw $s0, 0x0040($sp)
/* 004C0 80A0F720 F7B40038 */ sdc1 $f20, 0x0038($sp)
/* 004C4 80A0F724 0C030129 */ jal Gameplay_GetCamera
/* 004C8 80A0F728 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 004CC 80A0F72C 86230158 */ lh $v1, 0x0158($s1) ## 00000158
/* 004D0 80A0F730 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000
/* 004D4 80A0F734 240E000A */ addiu $t6, $zero, 0x000A ## $t6 = 0000000A
/* 004D8 80A0F738 10600008 */ beq $v1, $zero, .L80A0F75C
/* 004DC 80A0F73C 240F0007 */ addiu $t7, $zero, 0x0007 ## $t7 = 00000007
/* 004E0 80A0F740 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 004E4 80A0F744 10610008 */ beq $v1, $at, .L80A0F768
/* 004E8 80A0F748 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 004EC 80A0F74C 1061006F */ beq $v1, $at, .L80A0F90C
/* 004F0 80A0F750 00000000 */ nop
/* 004F4 80A0F754 100000C3 */ beq $zero, $zero, .L80A0FA64
/* 004F8 80A0F758 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A0F75C:
/* 004FC 80A0F75C A62E0158 */ sh $t6, 0x0158($s1) ## 00000158
/* 00500 80A0F760 100000BF */ beq $zero, $zero, .L80A0FA60
/* 00504 80A0F764 A62F0150 */ sh $t7, 0x0150($s1) ## 00000150
.L80A0F768:
/* 00508 80A0F768 0C016A52 */ jal func_8005A948
/* 0050C 80A0F76C 00000000 */ nop
/* 00510 80A0F770 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00514 80A0F774 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 00518 80A0F778 86390156 */ lh $t9, 0x0156($s1) ## 00000156
/* 0051C 80A0F77C 3C073E4C */ lui $a3, 0x3E4C ## $a3 = 3E4C0000
/* 00520 80A0F780 44050000 */ mfc1 $a1, $f0
/* 00524 80A0F784 001943C0 */ sll $t0, $t9, 15
/* 00528 80A0F788 01024821 */ addu $t1, $t0, $v0
/* 0052C 80A0F78C 44060000 */ mfc1 $a2, $f0
/* 00530 80A0F790 A62900B6 */ sh $t1, 0x00B6($s1) ## 000000B6
/* 00534 80A0F794 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3E4CCCCD
/* 00538 80A0F798 0C01E107 */ jal Math_SmoothScaleMaxF
/* 0053C 80A0F79C 2624016C */ addiu $a0, $s1, 0x016C ## $a0 = 0000016C
/* 00540 80A0F7A0 862A0150 */ lh $t2, 0x0150($s1) ## 00000150
/* 00544 80A0F7A4 240B000B */ addiu $t3, $zero, 0x000B ## $t3 = 0000000B
/* 00548 80A0F7A8 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 0054C 80A0F7AC 154000AC */ bne $t2, $zero, .L80A0FA60
/* 00550 80A0F7B0 240E0025 */ addiu $t6, $zero, 0x0025 ## $t6 = 00000025
/* 00554 80A0F7B4 862C00B8 */ lh $t4, 0x00B8($s1) ## 000000B8
/* 00558 80A0F7B8 C6240028 */ lwc1 $f4, 0x0028($s1) ## 00000028
/* 0055C 80A0F7BC C62A0024 */ lwc1 $f10, 0x0024($s1) ## 00000024
/* 00560 80A0F7C0 01816821 */ addu $t5, $t4, $at
/* 00564 80A0F7C4 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00568 80A0F7C8 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00
/* 0056C 80A0F7CC A62B0158 */ sh $t3, 0x0158($s1) ## 00000158
/* 00570 80A0F7D0 A62D00B8 */ sh $t5, 0x00B8($s1) ## 000000B8
/* 00574 80A0F7D4 46062201 */ sub.s $f8, $f4, $f6
/* 00578 80A0F7D8 A62E0150 */ sh $t6, 0x0150($s1) ## 00000150
/* 0057C 80A0F7DC 240F01F4 */ addiu $t7, $zero, 0x01F4 ## $t7 = 000001F4
/* 00580 80A0F7E0 24180024 */ addiu $t8, $zero, 0x0024 ## $t8 = 00000024
/* 00584 80A0F7E4 E6280028 */ swc1 $f8, 0x0028($s1) ## 00000028
/* 00588 80A0F7E8 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 0058C 80A0F7EC C6300028 */ lwc1 $f16, 0x0028($s1) ## 00000028
/* 00590 80A0F7F0 26841C24 */ addiu $a0, $s4, 0x1C24 ## $a0 = 00001C24
/* 00594 80A0F7F4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00598 80A0F7F8 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 0059C 80A0F7FC C632002C */ lwc1 $f18, 0x002C($s1) ## 0000002C
/* 005A0 80A0F800 AFB80028 */ sw $t8, 0x0028($sp)
/* 005A4 80A0F804 AFA00024 */ sw $zero, 0x0024($sp)
/* 005A8 80A0F808 AFA00020 */ sw $zero, 0x0020($sp)
/* 005AC 80A0F80C AFAF001C */ sw $t7, 0x001C($sp)
/* 005B0 80A0F810 02803025 */ or $a2, $s4, $zero ## $a2 = 00000000
/* 005B4 80A0F814 2407006D */ addiu $a3, $zero, 0x006D ## $a3 = 0000006D
/* 005B8 80A0F818 0C00C916 */ jal Actor_SpawnAttached
/* 005BC 80A0F81C E7B20018 */ swc1 $f18, 0x0018($sp)
/* 005C0 80A0F820 3C1980A1 */ lui $t9, %hi(D_80A117BC) ## $t9 = 80A10000
/* 005C4 80A0F824 273917BC */ addiu $t9, $t9, %lo(D_80A117BC) ## $t9 = 80A117BC
/* 005C8 80A0F828 8F290000 */ lw $t1, 0x0000($t9) ## 80A117BC
/* 005CC 80A0F82C 27B30070 */ addiu $s3, $sp, 0x0070 ## $s3 = FFFFFFE0
/* 005D0 80A0F830 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 005D4 80A0F834 AE690000 */ sw $t1, 0x0000($s3) ## FFFFFFE0
/* 005D8 80A0F838 8F280004 */ lw $t0, 0x0004($t9) ## 80A117C0
/* 005DC 80A0F83C 4481A000 */ mtc1 $at, $f20 ## $f20 = 30.00
/* 005E0 80A0F840 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 005E4 80A0F844 AE680004 */ sw $t0, 0x0004($s3) ## FFFFFFE4
/* 005E8 80A0F848 8F290008 */ lw $t1, 0x0008($t9) ## 80A117C4
/* 005EC 80A0F84C 26320024 */ addiu $s2, $s1, 0x0024 ## $s2 = 00000024
/* 005F0 80A0F850 AE690008 */ sw $t1, 0x0008($s3) ## FFFFFFE8
.L80A0F854:
/* 005F4 80A0F854 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 005F8 80A0F858 4600A306 */ mov.s $f12, $f20
/* 005FC 80A0F85C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00600 80A0F860 44816000 */ mtc1 $at, $f12 ## $f12 = 5.00
/* 00604 80A0F864 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00608 80A0F868 E7A0007C */ swc1 $f0, 0x007C($sp)
/* 0060C 80A0F86C 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 00610 80A0F870 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00
/* 00614 80A0F874 4600A306 */ mov.s $f12, $f20
/* 00618 80A0F878 46040180 */ add.s $f6, $f0, $f4
/* 0061C 80A0F87C 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00620 80A0F880 E7A60080 */ swc1 $f6, 0x0080($sp)
/* 00624 80A0F884 3C0180A1 */ lui $at, %hi(D_80A119D0) ## $at = 80A10000
/* 00628 80A0F888 C42819D0 */ lwc1 $f8, %lo(D_80A119D0)($at)
/* 0062C 80A0F88C E7A00084 */ swc1 $f0, 0x0084($sp)
/* 00630 80A0F890 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00634 80A0F894 E7A80074 */ swc1 $f8, 0x0074($sp)
/* 00638 80A0F898 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 0063C 80A0F89C 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00
/* 00640 80A0F8A0 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 00644 80A0F8A4 02402825 */ or $a1, $s2, $zero ## $a1 = 00000024
/* 00648 80A0F8A8 460A0402 */ mul.s $f16, $f0, $f10
/* 0064C 80A0F8AC 27A6007C */ addiu $a2, $sp, 0x007C ## $a2 = FFFFFFEC
/* 00650 80A0F8B0 02603825 */ or $a3, $s3, $zero ## $a3 = FFFFFFE0
/* 00654 80A0F8B4 AFA00014 */ sw $zero, 0x0014($sp)
/* 00658 80A0F8B8 4600848D */ trunc.w.s $f18, $f16
/* 0065C 80A0F8BC 440B9000 */ mfc1 $t3, $f18
/* 00660 80A0F8C0 00000000 */ nop
/* 00664 80A0F8C4 000B6400 */ sll $t4, $t3, 16
/* 00668 80A0F8C8 000C6C03 */ sra $t5, $t4, 16
/* 0066C 80A0F8CC 25AE00F0 */ addiu $t6, $t5, 0x00F0 ## $t6 = 000000F0
/* 00670 80A0F8D0 0C00A73C */ jal func_80029CF0
/* 00674 80A0F8D4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00678 80A0F8D8 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 0067C 80A0F8DC 00108400 */ sll $s0, $s0, 16
/* 00680 80A0F8E0 00108403 */ sra $s0, $s0, 16
/* 00684 80A0F8E4 2A010023 */ slti $at, $s0, 0x0023
/* 00688 80A0F8E8 1420FFDA */ bne $at, $zero, .L80A0F854
/* 0068C 80A0F8EC 00000000 */ nop
/* 00690 80A0F8F0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00694 80A0F8F4 02802825 */ or $a1, $s4, $zero ## $a1 = 00000000
/* 00698 80A0F8F8 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 0069C 80A0F8FC 0C00CFA2 */ jal func_80033E88
/* 006A0 80A0F900 2407000A */ addiu $a3, $zero, 0x000A ## $a3 = 0000000A
/* 006A4 80A0F904 10000057 */ beq $zero, $zero, .L80A0FA64
/* 006A8 80A0F908 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A0F90C:
/* 006AC 80A0F90C 0C016A52 */ jal func_8005A948
/* 006B0 80A0F910 00000000 */ nop
/* 006B4 80A0F914 86380156 */ lh $t8, 0x0156($s1) ## 00000156
/* 006B8 80A0F918 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 006BC 80A0F91C 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 006C0 80A0F920 0018CBC0 */ sll $t9, $t8, 15
/* 006C4 80A0F924 03224021 */ addu $t0, $t9, $v0
/* 006C8 80A0F928 3C073E4C */ lui $a3, 0x3E4C ## $a3 = 3E4C0000
/* 006CC 80A0F92C 44060000 */ mfc1 $a2, $f0
/* 006D0 80A0F930 A62800B6 */ sh $t0, 0x00B6($s1) ## 000000B6
/* 006D4 80A0F934 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3E4CCCCD
/* 006D8 80A0F938 2624016C */ addiu $a0, $s1, 0x016C ## $a0 = 0000016C
/* 006DC 80A0F93C 0C01E107 */ jal Math_SmoothScaleMaxF
/* 006E0 80A0F940 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 006E4 80A0F944 86220150 */ lh $v0, 0x0150($s1) ## 00000150
/* 006E8 80A0F948 2401001E */ addiu $at, $zero, 0x001E ## $at = 0000001E
/* 006EC 80A0F94C 14410040 */ bne $v0, $at, .L80A0FA50
/* 006F0 80A0F950 00000000 */ nop
/* 006F4 80A0F954 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 006F8 80A0F958 00000000 */ nop
/* 006FC 80A0F95C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00700 80A0F960 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00704 80A0F964 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 00708 80A0F968 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 0070C 80A0F96C 4604003C */ c.lt.s $f0, $f4
/* 00710 80A0F970 26931C24 */ addiu $s3, $s4, 0x1C24 ## $s3 = 00001C24
/* 00714 80A0F974 45000003 */ bc1f .L80A0F984
/* 00718 80A0F978 00000000 */ nop
/* 0071C 80A0F97C 10000001 */ beq $zero, $zero, .L80A0F984
/* 00720 80A0F980 24121000 */ addiu $s2, $zero, 0x1000 ## $s2 = 00001000
.L80A0F984:
/* 00724 80A0F984 C6260024 */ lwc1 $f6, 0x0024($s1) ## 00000024
.L80A0F988:
/* 00728 80A0F988 00104B40 */ sll $t1, $s0, 13
/* 0072C 80A0F98C 01325021 */ addu $t2, $t1, $s2
/* 00730 80A0F990 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00734 80A0F994 C6280028 */ lwc1 $f8, 0x0028($s1) ## 00000028
/* 00738 80A0F998 240B4000 */ addiu $t3, $zero, 0x4000 ## $t3 = 00004000
/* 0073C 80A0F99C 260C0064 */ addiu $t4, $s0, 0x0064 ## $t4 = 00000064
/* 00740 80A0F9A0 E7A80014 */ swc1 $f8, 0x0014($sp)
/* 00744 80A0F9A4 C62A002C */ lwc1 $f10, 0x002C($s1) ## 0000002C
/* 00748 80A0F9A8 AFAC0028 */ sw $t4, 0x0028($sp)
/* 0074C 80A0F9AC AFAB0024 */ sw $t3, 0x0024($sp)
/* 00750 80A0F9B0 AFAA0020 */ sw $t2, 0x0020($sp)
/* 00754 80A0F9B4 AFA0001C */ sw $zero, 0x001C($sp)
/* 00758 80A0F9B8 02602025 */ or $a0, $s3, $zero ## $a0 = 00001C24
/* 0075C 80A0F9BC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00760 80A0F9C0 02803025 */ or $a2, $s4, $zero ## $a2 = 00000000
/* 00764 80A0F9C4 2407006D */ addiu $a3, $zero, 0x006D ## $a3 = 0000006D
/* 00768 80A0F9C8 0C00C916 */ jal Actor_SpawnAttached
/* 0076C 80A0F9CC E7AA0018 */ swc1 $f10, 0x0018($sp)
/* 00770 80A0F9D0 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00774 80A0F9D4 00108400 */ sll $s0, $s0, 16
/* 00778 80A0F9D8 00108403 */ sra $s0, $s0, 16
/* 0077C 80A0F9DC 2A010008 */ slti $at, $s0, 0x0008
/* 00780 80A0F9E0 5420FFE9 */ bnel $at, $zero, .L80A0F988
/* 00784 80A0F9E4 C6260024 */ lwc1 $f6, 0x0024($s1) ## 00000024
/* 00788 80A0F9E8 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 0078C 80A0F9EC C6300024 */ lwc1 $f16, 0x0024($s1) ## 00000024
.L80A0F9F0:
/* 00790 80A0F9F0 00106B40 */ sll $t5, $s0, 13
/* 00794 80A0F9F4 01B27021 */ addu $t6, $t5, $s2
/* 00798 80A0F9F8 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 0079C 80A0F9FC C6320028 */ lwc1 $f18, 0x0028($s1) ## 00000028
/* 007A0 80A0FA00 240F0023 */ addiu $t7, $zero, 0x0023 ## $t7 = 00000023
/* 007A4 80A0FA04 02602025 */ or $a0, $s3, $zero ## $a0 = 00001C24
/* 007A8 80A0FA08 E7B20014 */ swc1 $f18, 0x0014($sp)
/* 007AC 80A0FA0C C624002C */ lwc1 $f4, 0x002C($s1) ## 0000002C
/* 007B0 80A0FA10 AFAF0028 */ sw $t7, 0x0028($sp)
/* 007B4 80A0FA14 AFA00024 */ sw $zero, 0x0024($sp)
/* 007B8 80A0FA18 AFAE0020 */ sw $t6, 0x0020($sp)
/* 007BC 80A0FA1C AFA0001C */ sw $zero, 0x001C($sp)
/* 007C0 80A0FA20 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 007C4 80A0FA24 02803025 */ or $a2, $s4, $zero ## $a2 = 00000000
/* 007C8 80A0FA28 2407006D */ addiu $a3, $zero, 0x006D ## $a3 = 0000006D
/* 007CC 80A0FA2C 0C00C916 */ jal Actor_SpawnAttached
/* 007D0 80A0FA30 E7A40018 */ swc1 $f4, 0x0018($sp)
/* 007D4 80A0FA34 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 007D8 80A0FA38 00108400 */ sll $s0, $s0, 16
/* 007DC 80A0FA3C 00108403 */ sra $s0, $s0, 16
/* 007E0 80A0FA40 2A010008 */ slti $at, $s0, 0x0008
/* 007E4 80A0FA44 5420FFEA */ bnel $at, $zero, .L80A0F9F0
/* 007E8 80A0FA48 C6300024 */ lwc1 $f16, 0x0024($s1) ## 00000024
/* 007EC 80A0FA4C 86220150 */ lh $v0, 0x0150($s1) ## 00000150
.L80A0FA50:
/* 007F0 80A0FA50 54400004 */ bnel $v0, $zero, .L80A0FA64
/* 007F4 80A0FA54 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 007F8 80A0FA58 0C00B55C */ jal Actor_Kill
/* 007FC 80A0FA5C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A0FA60:
/* 00800 80A0FA60 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L80A0FA64:
/* 00804 80A0FA64 0C00B58B */ jal Actor_SetScale
/* 00808 80A0FA68 8E25016C */ lw $a1, 0x016C($s1) ## 0000016C
/* 0080C 80A0FA6C 8FBF0054 */ lw $ra, 0x0054($sp)
/* 00810 80A0FA70 D7B40038 */ ldc1 $f20, 0x0038($sp)
/* 00814 80A0FA74 8FB00040 */ lw $s0, 0x0040($sp)
/* 00818 80A0FA78 8FB10044 */ lw $s1, 0x0044($sp)
/* 0081C 80A0FA7C 8FB20048 */ lw $s2, 0x0048($sp)
/* 00820 80A0FA80 8FB3004C */ lw $s3, 0x004C($sp)
/* 00824 80A0FA84 8FB40050 */ lw $s4, 0x0050($sp)
/* 00828 80A0FA88 03E00008 */ jr $ra
/* 0082C 80A0FA8C 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View file

@ -1,137 +0,0 @@
.rdata
glabel D_80A11868
.asciz "FF MOVE 1\n"
.balign 4
glabel D_80A11874
.asciz "FF MOVE 2\n"
.balign 4
.text
glabel func_80A0FA90
/* 00830 80A0FA90 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00834 80A0FA94 AFB00018 */ sw $s0, 0x0018($sp)
/* 00838 80A0FA98 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0083C 80A0FA9C AFBF001C */ sw $ra, 0x001C($sp)
/* 00840 80A0FAA0 3C0480A1 */ lui $a0, %hi(D_80A11868) ## $a0 = 80A10000
/* 00844 80A0FAA4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00848 80A0FAA8 0C00084C */ jal osSyncPrintf
/* 0084C 80A0FAAC 24841868 */ addiu $a0, $a0, %lo(D_80A11868) ## $a0 = 80A11868
/* 00850 80A0FAB0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00854 80A0FAB4 00000000 */ nop
/* 00858 80A0FAB8 3C01457A */ lui $at, 0x457A ## $at = 457A0000
/* 0085C 80A0FABC 44812000 */ mtc1 $at, $f4 ## $f4 = 4000.00
/* 00860 80A0FAC0 860E00B4 */ lh $t6, 0x00B4($s0) ## 000000B4
/* 00864 80A0FAC4 86020158 */ lh $v0, 0x0158($s0) ## 00000158
/* 00868 80A0FAC8 46040182 */ mul.s $f6, $f0, $f4
/* 0086C 80A0FACC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00870 80A0FAD0 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00874 80A0FAD4 4600320D */ trunc.w.s $f8, $f6
/* 00878 80A0FAD8 44084000 */ mfc1 $t0, $f8
/* 0087C 80A0FADC 00000000 */ nop
/* 00880 80A0FAE0 01C84821 */ addu $t1, $t6, $t0
/* 00884 80A0FAE4 252A4000 */ addiu $t2, $t1, 0x4000 ## $t2 = 00004000
/* 00888 80A0FAE8 10400007 */ beq $v0, $zero, .L80A0FB08
/* 0088C 80A0FAEC A60A00B4 */ sh $t2, 0x00B4($s0) ## 000000B4
/* 00890 80A0FAF0 10410010 */ beq $v0, $at, .L80A0FB34
/* 00894 80A0FAF4 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00898 80A0FAF8 10410036 */ beq $v0, $at, .L80A0FBD4
/* 0089C 80A0FAFC 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C
/* 008A0 80A0FB00 1000003E */ beq $zero, $zero, .L80A0FBFC
/* 008A4 80A0FB04 C600016C */ lwc1 $f0, 0x016C($s0) ## 0000016C
.L80A0FB08:
/* 008A8 80A0FB08 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 008AC 80A0FB0C A60B0158 */ sh $t3, 0x0158($s0) ## 00000158
/* 008B0 80A0FB10 3C0140E0 */ lui $at, 0x40E0 ## $at = 40E00000
/* 008B4 80A0FB14 44815000 */ mtc1 $at, $f10 ## $f10 = 7.00
/* 008B8 80A0FB18 00000000 */ nop
/* 008BC 80A0FB1C 460A0402 */ mul.s $f16, $f0, $f10
/* 008C0 80A0FB20 4600848D */ trunc.w.s $f18, $f16
/* 008C4 80A0FB24 44189000 */ mfc1 $t8, $f18
/* 008C8 80A0FB28 00000000 */ nop
/* 008CC 80A0FB2C 27190007 */ addiu $t9, $t8, 0x0007 ## $t9 = 00000007
/* 008D0 80A0FB30 A6190150 */ sh $t9, 0x0150($s0) ## 00000150
.L80A0FB34:
/* 008D4 80A0FB34 3C053FD9 */ lui $a1, 0x3FD9 ## $a1 = 3FD90000
/* 008D8 80A0FB38 3C073EAE */ lui $a3, 0x3EAE ## $a3 = 3EAE0000
/* 008DC 80A0FB3C 34E7147B */ ori $a3, $a3, 0x147B ## $a3 = 3EAE147B
/* 008E0 80A0FB40 34A5999A */ ori $a1, $a1, 0x999A ## $a1 = 3FD9999A
/* 008E4 80A0FB44 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C
/* 008E8 80A0FB48 0C01E107 */ jal Math_SmoothScaleMaxF
/* 008EC 80A0FB4C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 008F0 80A0FB50 860E0150 */ lh $t6, 0x0150($s0) ## 00000150
/* 008F4 80A0FB54 24080002 */ addiu $t0, $zero, 0x0002 ## $t0 = 00000002
/* 008F8 80A0FB58 2409000A */ addiu $t1, $zero, 0x000A ## $t1 = 0000000A
/* 008FC 80A0FB5C 15C0001B */ bne $t6, $zero, .L80A0FBCC
/* 00900 80A0FB60 00000000 */ nop
/* 00904 80A0FB64 A6080158 */ sh $t0, 0x0158($s0) ## 00000158
/* 00908 80A0FB68 A6090150 */ sh $t1, 0x0150($s0) ## 00000150
/* 0090C 80A0FB6C 0C01DE1C */ jal Math_Sins
## sins?
/* 00910 80A0FB70 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 00914 80A0FB74 3C01C348 */ lui $at, 0xC348 ## $at = C3480000
/* 00918 80A0FB78 44812000 */ mtc1 $at, $f4 ## $f4 = -200.00
/* 0091C 80A0FB7C C608016C */ lwc1 $f8, 0x016C($s0) ## 0000016C
/* 00920 80A0FB80 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00924 80A0FB84 46040182 */ mul.s $f6, $f0, $f4
/* 00928 80A0FB88 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 0092C 80A0FB8C 46083282 */ mul.s $f10, $f6, $f8
/* 00930 80A0FB90 460A8480 */ add.s $f18, $f16, $f10
/* 00934 80A0FB94 0C01DE0D */ jal Math_Coss
## coss?
/* 00938 80A0FB98 E612002C */ swc1 $f18, 0x002C($s0) ## 0000002C
/* 0093C 80A0FB9C 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00940 80A0FBA0 44812000 */ mtc1 $at, $f4 ## $f4 = 200.00
/* 00944 80A0FBA4 C608016C */ lwc1 $f8, 0x016C($s0) ## 0000016C
/* 00948 80A0FBA8 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 0094C 80A0FBAC 46040182 */ mul.s $f6, $f0, $f4
/* 00950 80A0FBB0 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
/* 00954 80A0FBB4 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00958 80A0FBB8 01415821 */ addu $t3, $t2, $at
/* 0095C 80A0FBBC A60B00B6 */ sh $t3, 0x00B6($s0) ## 000000B6
/* 00960 80A0FBC0 46083402 */ mul.s $f16, $f6, $f8
/* 00964 80A0FBC4 46105480 */ add.s $f18, $f10, $f16
/* 00968 80A0FBC8 E6120024 */ swc1 $f18, 0x0024($s0) ## 00000024
.L80A0FBCC:
/* 0096C 80A0FBCC 1000000B */ beq $zero, $zero, .L80A0FBFC
/* 00970 80A0FBD0 C600016C */ lwc1 $f0, 0x016C($s0) ## 0000016C
.L80A0FBD4:
/* 00974 80A0FBD4 3C063EAE */ lui $a2, 0x3EAE ## $a2 = 3EAE0000
/* 00978 80A0FBD8 34C6147B */ ori $a2, $a2, 0x147B ## $a2 = 3EAE147B
/* 0097C 80A0FBDC 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00980 80A0FBE0 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00984 80A0FBE4 860C0150 */ lh $t4, 0x0150($s0) ## 00000150
/* 00988 80A0FBE8 55800004 */ bnel $t4, $zero, .L80A0FBFC
/* 0098C 80A0FBEC C600016C */ lwc1 $f0, 0x016C($s0) ## 0000016C
/* 00990 80A0FBF0 0C00B55C */ jal Actor_Kill
/* 00994 80A0FBF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00998 80A0FBF8 C600016C */ lwc1 $f0, 0x016C($s0) ## 0000016C
.L80A0FBFC:
/* 0099C 80A0FBFC 44050000 */ mfc1 $a1, $f0
/* 009A0 80A0FC00 0C00B58B */ jal Actor_SetScale
/* 009A4 80A0FC04 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009A8 80A0FC08 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 009AC 80A0FC0C 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 009B0 80A0FC10 C6040050 */ lwc1 $f4, 0x0050($s0) ## 00000050
/* 009B4 80A0FC14 3C0480A1 */ lui $a0, %hi(D_80A11874) ## $a0 = 80A10000
/* 009B8 80A0FC18 4604003C */ c.lt.s $f0, $f4
/* 009BC 80A0FC1C 00000000 */ nop
/* 009C0 80A0FC20 45000002 */ bc1f .L80A0FC2C
/* 009C4 80A0FC24 00000000 */ nop
/* 009C8 80A0FC28 E6000050 */ swc1 $f0, 0x0050($s0) ## 00000050
.L80A0FC2C:
/* 009CC 80A0FC2C 0C00084C */ jal osSyncPrintf
/* 009D0 80A0FC30 24841874 */ addiu $a0, $a0, %lo(D_80A11874) ## $a0 = 80A11874
/* 009D4 80A0FC34 8FBF001C */ lw $ra, 0x001C($sp)
/* 009D8 80A0FC38 8FB00018 */ lw $s0, 0x0018($sp)
/* 009DC 80A0FC3C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 009E0 80A0FC40 03E00008 */ jr $ra
/* 009E4 80A0FC44 00000000 */ nop

View file

@ -1,92 +0,0 @@
glabel func_80A0FC48
/* 009E8 80A0FC48 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 009EC 80A0FC4C AFBF0024 */ sw $ra, 0x0024($sp)
/* 009F0 80A0FC50 AFB10020 */ sw $s1, 0x0020($sp)
/* 009F4 80A0FC54 AFB0001C */ sw $s0, 0x001C($sp)
/* 009F8 80A0FC58 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 009FC 80A0FC5C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00A00 80A0FC60 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00A04 80A0FC64 AFAE003C */ sw $t6, 0x003C($sp)
/* 00A08 80A0FC68 908201C0 */ lbu $v0, 0x01C0($a0) ## 000001C0
/* 00A0C 80A0FC6C 240538A8 */ addiu $a1, $zero, 0x38A8 ## $a1 = 000038A8
/* 00A10 80A0FC70 304F0002 */ andi $t7, $v0, 0x0002 ## $t7 = 00000000
/* 00A14 80A0FC74 11E00003 */ beq $t7, $zero, .L80A0FC84
/* 00A18 80A0FC78 3058FFFD */ andi $t8, $v0, 0xFFFD ## $t8 = 00000000
/* 00A1C 80A0FC7C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00A20 80A0FC80 A09801C0 */ sb $t8, 0x01C0($a0) ## 000001C0
.L80A0FC84:
/* 00A24 80A0FC84 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00A28 80A0FC88 00000000 */ nop
/* 00A2C 80A0FC8C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00A30 80A0FC90 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00A34 80A0FC94 00000000 */ nop
/* 00A38 80A0FC98 4604003C */ c.lt.s $f0, $f4
/* 00A3C 80A0FC9C 00000000 */ nop
/* 00A40 80A0FCA0 45000012 */ bc1f .L80A0FCEC
/* 00A44 80A0FCA4 00000000 */ nop
/* 00A48 80A0FCA8 8E080024 */ lw $t0, 0x0024($s0) ## 00000024
/* 00A4C 80A0FCAC 27A60030 */ addiu $a2, $sp, 0x0030 ## $a2 = FFFFFFF0
/* 00A50 80A0FCB0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00A54 80A0FCB4 ACC80000 */ sw $t0, 0x0000($a2) ## FFFFFFF0
/* 00A58 80A0FCB8 8E190028 */ lw $t9, 0x0028($s0) ## 00000028
/* 00A5C 80A0FCBC 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 00A60 80A0FCC0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00A64 80A0FCC4 ACD90004 */ sw $t9, 0x0004($a2) ## FFFFFFF4
/* 00A68 80A0FCC8 8E08002C */ lw $t0, 0x002C($s0) ## 0000002C
/* 00A6C 80A0FCCC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00A70 80A0FCD0 240700C8 */ addiu $a3, $zero, 0x00C8 ## $a3 = 000000C8
/* 00A74 80A0FCD4 ACC80008 */ sw $t0, 0x0008($a2) ## FFFFFFF8
/* 00A78 80A0FCD8 C7A60034 */ lwc1 $f6, 0x0034($sp)
/* 00A7C 80A0FCDC AFA00010 */ sw $zero, 0x0010($sp)
/* 00A80 80A0FCE0 46083281 */ sub.s $f10, $f6, $f8
/* 00A84 80A0FCE4 0C00A757 */ jal func_80029D5C
/* 00A88 80A0FCE8 E7AA0034 */ swc1 $f10, 0x0034($sp)
.L80A0FCEC:
/* 00A8C 80A0FCEC 0C00B638 */ jal Actor_MoveForward
/* 00A90 80A0FCF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A94 80A0FCF4 260601B0 */ addiu $a2, $s0, 0x01B0 ## $a2 = 000001B0
/* 00A98 80A0FCF8 00C02825 */ or $a1, $a2, $zero ## $a1 = 000001B0
/* 00A9C 80A0FCFC AFA6002C */ sw $a2, 0x002C($sp)
/* 00AA0 80A0FD00 0C0189B7 */ jal Collider_CylinderUpdate
/* 00AA4 80A0FD04 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AA8 80A0FD08 8FA9003C */ lw $t1, 0x003C($sp)
/* 00AAC 80A0FD0C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00AB0 80A0FD10 8FA6002C */ lw $a2, 0x002C($sp)
/* 00AB4 80A0FD14 812A0A78 */ lb $t2, 0x0A78($t1) ## 00000A78
/* 00AB8 80A0FD18 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00ABC 80A0FD1C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00AC0 80A0FD20 55400004 */ bnel $t2, $zero, .L80A0FD34
/* 00AC4 80A0FD24 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00AC8 80A0FD28 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 00ACC 80A0FD2C 02212821 */ addu $a1, $s1, $at
/* 00AD0 80A0FD30 3C014248 */ lui $at, 0x4248 ## $at = 42480000
.L80A0FD34:
/* 00AD4 80A0FD34 44810000 */ mtc1 $at, $f0 ## $f0 = 50.00
/* 00AD8 80A0FD38 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00ADC 80A0FD3C 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 00AE0 80A0FD40 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00AE4 80A0FD44 44060000 */ mfc1 $a2, $f0
/* 00AE8 80A0FD48 44070000 */ mfc1 $a3, $f0
/* 00AEC 80A0FD4C AFAB0014 */ sw $t3, 0x0014($sp)
/* 00AF0 80A0FD50 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00AF4 80A0FD54 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00AF8 80A0FD58 0C00B92D */ jal func_8002E4B4
/* 00AFC 80A0FD5C E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00B00 80A0FD60 960C0088 */ lhu $t4, 0x0088($s0) ## 00000088
/* 00B04 80A0FD64 318D0008 */ andi $t5, $t4, 0x0008 ## $t5 = 00000000
/* 00B08 80A0FD68 51A00004 */ beql $t5, $zero, .L80A0FD7C
/* 00B0C 80A0FD6C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00B10 80A0FD70 0C00B55C */ jal Actor_Kill
/* 00B14 80A0FD74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B18 80A0FD78 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0FD7C:
/* 00B1C 80A0FD7C 8FB0001C */ lw $s0, 0x001C($sp)
/* 00B20 80A0FD80 8FB10020 */ lw $s1, 0x0020($sp)
/* 00B24 80A0FD84 03E00008 */ jr $ra
/* 00B28 80A0FD88 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,180 +0,0 @@
glabel func_80A0FD8C
/* 00B2C 80A0FD8C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00B30 80A0FD90 AFBF001C */ sw $ra, 0x001C($sp)
/* 00B34 80A0FD94 AFB10018 */ sw $s1, 0x0018($sp)
/* 00B38 80A0FD98 AFB00014 */ sw $s0, 0x0014($sp)
/* 00B3C 80A0FD9C 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 00B40 80A0FDA0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B44 80A0FDA4 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00B48 80A0FDA8 00250821 */ addu $at, $at, $a1
/* 00B4C 80A0FDAC AFAE002C */ sw $t6, 0x002C($sp)
/* 00B50 80A0FDB0 A0280B05 */ sb $t0, 0x0B05($at) ## 00010B05
/* 00B54 80A0FDB4 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6
/* 00B58 80A0FDB8 84820152 */ lh $v0, 0x0152($a0) ## 00000152
/* 00B5C 80A0FDBC 24010031 */ addiu $at, $zero, 0x0031 ## $at = 00000031
/* 00B60 80A0FDC0 25F81000 */ addiu $t8, $t7, 0x1000 ## $t8 = 00001000
/* 00B64 80A0FDC4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B68 80A0FDC8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00B6C 80A0FDCC 14410009 */ bne $v0, $at, .L80A0FDF4
/* 00B70 80A0FDD0 A49800B6 */ sh $t8, 0x00B6($a0) ## 000000B6
/* 00B74 80A0FDD4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B78 80A0FDD8 00250821 */ addu $at, $at, $a1
/* 00B7C 80A0FDDC A0280AE3 */ sb $t0, 0x0AE3($at) ## 00010AE3
/* 00B80 80A0FDE0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B84 80A0FDE4 00250821 */ addu $at, $at, $a1
/* 00B88 80A0FDE8 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
/* 00B8C 80A0FDEC A4390AFA */ sh $t9, 0x0AFA($at) ## 00010AFA
/* 00B90 80A0FDF0 84820152 */ lh $v0, 0x0152($a0) ## 00000152
.L80A0FDF4:
/* 00B94 80A0FDF4 2401001F */ addiu $at, $zero, 0x001F ## $at = 0000001F
/* 00B98 80A0FDF8 14410008 */ bne $v0, $at, .L80A0FE1C
/* 00B9C 80A0FDFC 24090014 */ addiu $t1, $zero, 0x0014 ## $t1 = 00000014
/* 00BA0 80A0FE00 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BA4 80A0FE04 00310821 */ addu $at, $at, $s1
/* 00BA8 80A0FE08 A0200AE3 */ sb $zero, 0x0AE3($at) ## 00010AE3
/* 00BAC 80A0FE0C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BB0 80A0FE10 00310821 */ addu $at, $at, $s1
/* 00BB4 80A0FE14 A4290AFA */ sh $t1, 0x0AFA($at) ## 00010AFA
/* 00BB8 80A0FE18 86020152 */ lh $v0, 0x0152($s0) ## 00000152
.L80A0FE1C:
/* 00BBC 80A0FE1C 28410030 */ slti $at, $v0, 0x0030
/* 00BC0 80A0FE20 1420000F */ bne $at, $zero, .L80A0FE60
/* 00BC4 80A0FE24 240300FF */ addiu $v1, $zero, 0x00FF ## $v1 = 000000FF
/* 00BC8 80A0FE28 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BCC 80A0FE2C 02211021 */ addu $v0, $s1, $at
/* 00BD0 80A0FE30 A0430B08 */ sb $v1, 0x0B08($v0) ## 00000B08
/* 00BD4 80A0FE34 A0430B07 */ sb $v1, 0x0B07($v0) ## 00000B07
/* 00BD8 80A0FE38 A0430B06 */ sb $v1, 0x0B06($v0) ## 00000B06
/* 00BDC 80A0FE3C 860B0150 */ lh $t3, 0x0150($s0) ## 00000150
/* 00BE0 80A0FE40 240D0046 */ addiu $t5, $zero, 0x0046 ## $t5 = 00000046
/* 00BE4 80A0FE44 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000
/* 00BE8 80A0FE48 11800003 */ beq $t4, $zero, .L80A0FE58
/* 00BEC 80A0FE4C 00000000 */ nop
/* 00BF0 80A0FE50 10000006 */ beq $zero, $zero, .L80A0FE6C
/* 00BF4 80A0FE54 A04D0B09 */ sb $t5, 0x0B09($v0) ## 00000B09
.L80A0FE58:
/* 00BF8 80A0FE58 10000004 */ beq $zero, $zero, .L80A0FE6C
/* 00BFC 80A0FE5C A0400B09 */ sb $zero, 0x0B09($v0) ## 00000B09
.L80A0FE60:
/* 00C00 80A0FE60 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00C04 80A0FE64 00310821 */ addu $at, $at, $s1
/* 00C08 80A0FE68 A0200B09 */ sb $zero, 0x0B09($at) ## 00010B09
.L80A0FE6C:
/* 00C0C 80A0FE6C 860E0150 */ lh $t6, 0x0150($s0) ## 00000150
/* 00C10 80A0FE70 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C
/* 00C14 80A0FE74 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00C18 80A0FE78 29C10015 */ slti $at, $t6, 0x0015
/* 00C1C 80A0FE7C 1020000B */ beq $at, $zero, .L80A0FEAC
/* 00C20 80A0FE80 3C074040 */ lui $a3, 0x4040 ## $a3 = 40400000
/* 00C24 80A0FE84 26040160 */ addiu $a0, $s0, 0x0160 ## $a0 = 00000160
/* 00C28 80A0FE88 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00C2C 80A0FE8C 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00C30 80A0FE90 3C064234 */ lui $a2, 0x4234 ## $a2 = 42340000
/* 00C34 80A0FE94 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C
/* 00C38 80A0FE98 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00C3C 80A0FE9C 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00C40 80A0FEA0 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00C44 80A0FEA4 10000004 */ beq $zero, $zero, .L80A0FEB8
/* 00C48 80A0FEA8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A0FEAC:
/* 00C4C 80A0FEAC 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00C50 80A0FEB0 8E05018C */ lw $a1, 0x018C($s0) ## 0000018C
/* 00C54 80A0FEB4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A0FEB8:
/* 00C58 80A0FEB8 0C00B58B */ jal Actor_SetScale
/* 00C5C 80A0FEBC 8E05016C */ lw $a1, 0x016C($s0) ## 0000016C
/* 00C60 80A0FEC0 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 00C64 80A0FEC4 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00
/* 00C68 80A0FEC8 C606018C */ lwc1 $f6, 0x018C($s0) ## 0000018C
/* 00C6C 80A0FECC 260601B0 */ addiu $a2, $s0, 0x01B0 ## $a2 = 000001B0
/* 00C70 80A0FED0 00C02825 */ or $a1, $a2, $zero ## $a1 = 000001B0
/* 00C74 80A0FED4 4606203C */ c.lt.s $f4, $f6
/* 00C78 80A0FED8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C7C 80A0FEDC 4502000E */ bc1fl .L80A0FF18
/* 00C80 80A0FEE0 86190150 */ lh $t9, 0x0150($s0) ## 00000150
/* 00C84 80A0FEE4 0C0189B7 */ jal Collider_CylinderUpdate
/* 00C88 80A0FEE8 AFA60024 */ sw $a2, 0x0024($sp)
/* 00C8C 80A0FEEC 8FAF002C */ lw $t7, 0x002C($sp)
/* 00C90 80A0FEF0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00C94 80A0FEF4 8FA60024 */ lw $a2, 0x0024($sp)
/* 00C98 80A0FEF8 81F80A78 */ lb $t8, 0x0A78($t7) ## 00000A78
/* 00C9C 80A0FEFC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00CA0 80A0FF00 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00CA4 80A0FF04 57000004 */ bnel $t8, $zero, .L80A0FF18
/* 00CA8 80A0FF08 86190150 */ lh $t9, 0x0150($s0) ## 00000150
/* 00CAC 80A0FF0C 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 00CB0 80A0FF10 02212821 */ addu $a1, $s1, $at
/* 00CB4 80A0FF14 86190150 */ lh $t9, 0x0150($s0) ## 00000150
.L80A0FF18:
/* 00CB8 80A0FF18 57200007 */ bnel $t9, $zero, .L80A0FF38
/* 00CBC 80A0FF1C 860201FE */ lh $v0, 0x01FE($s0) ## 000001FE
/* 00CC0 80A0FF20 0C00B55C */ jal Actor_Kill
/* 00CC4 80A0FF24 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CC8 80A0FF28 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00CCC 80A0FF2C 00310821 */ addu $at, $at, $s1
/* 00CD0 80A0FF30 A0200B05 */ sb $zero, 0x0B05($at) ## 00010B05
/* 00CD4 80A0FF34 860201FE */ lh $v0, 0x01FE($s0) ## 000001FE
.L80A0FF38:
/* 00CD8 80A0FF38 26040200 */ addiu $a0, $s0, 0x0200 ## $a0 = 00000200
/* 00CDC 80A0FF3C 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00CE0 80A0FF40 1040000C */ beq $v0, $zero, .L80A0FF74
/* 00CE4 80A0FF44 2449FFFF */ addiu $t1, $v0, 0xFFFF ## $t1 = FFFFFFFF
/* 00CE8 80A0FF48 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00CEC 80A0FF4C 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
/* 00CF0 80A0FF50 A60901FE */ sh $t1, 0x01FE($s0) ## 000001FE
/* 00CF4 80A0FF54 A20A01FC */ sb $t2, 0x01FC($s0) ## 000001FC
/* 00CF8 80A0FF58 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
/* 00CFC 80A0FF5C 26040200 */ addiu $a0, $s0, 0x0200 ## $a0 = 00000200
/* 00D00 80A0FF60 3C054220 */ lui $a1, 0x4220 ## $a1 = 42200000
/* 00D04 80A0FF64 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00D08 80A0FF68 3C074120 */ lui $a3, 0x4120 ## $a3 = 41200000
/* 00D0C 80A0FF6C 1000000B */ beq $zero, $zero, .L80A0FF9C
/* 00D10 80A0FF70 920B01FC */ lbu $t3, 0x01FC($s0) ## 000001FC
.L80A0FF74:
/* 00D14 80A0FF74 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00D18 80A0FF78 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
/* 00D1C 80A0FF7C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 00D20 80A0FF80 C60A0200 */ lwc1 $f10, 0x0200($s0) ## 00000200
/* 00D24 80A0FF84 460A4032 */ c.eq.s $f8, $f10
/* 00D28 80A0FF88 00000000 */ nop
/* 00D2C 80A0FF8C 45020003 */ bc1fl .L80A0FF9C
/* 00D30 80A0FF90 920B01FC */ lbu $t3, 0x01FC($s0) ## 000001FC
/* 00D34 80A0FF94 A20001FC */ sb $zero, 0x01FC($s0) ## 000001FC
/* 00D38 80A0FF98 920B01FC */ lbu $t3, 0x01FC($s0) ## 000001FC
.L80A0FF9C:
/* 00D3C 80A0FF9C 3C018016 */ lui $at, %hi(D_8015FCF0)
/* 00D40 80A0FFA0 3C0C8016 */ lui $t4, %hi(D_8015FCF8)
/* 00D44 80A0FFA4 A02BFCF0 */ sb $t3, %lo(D_8015FCF0)($at)
/* 00D48 80A0FFA8 8E0E0024 */ lw $t6, 0x0024($s0) ## 00000024
/* 00D4C 80A0FFAC 258CFCF8 */ addiu $t4, %lo(D_8015FCF8)
/* 00D50 80A0FFB0 3C018016 */ lui $at, %hi(D_8015FD06)
/* 00D54 80A0FFB4 AD8E0000 */ sw $t6, 0x0000($t4) ## 8015FCF8
/* 00D58 80A0FFB8 8E0D0028 */ lw $t5, 0x0028($s0) ## 00000028
/* 00D5C 80A0FFBC AD8D0004 */ sw $t5, 0x0004($t4) ## 8015FCFC
/* 00D60 80A0FFC0 8E0E002C */ lw $t6, 0x002C($s0) ## 0000002C
/* 00D64 80A0FFC4 AD8E0008 */ sw $t6, 0x0008($t4) ## 8015FD00
/* 00D68 80A0FFC8 C6100200 */ lwc1 $f16, 0x0200($s0) ## 00000200
/* 00D6C 80A0FFCC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00D70 80A0FFD0 8FB00014 */ lw $s0, 0x0014($sp)
/* 00D74 80A0FFD4 4600848D */ trunc.w.s $f18, $f16
/* 00D78 80A0FFD8 8FB10018 */ lw $s1, 0x0018($sp)
/* 00D7C 80A0FFDC 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00D80 80A0FFE0 44189000 */ mfc1 $t8, $f18
/* 00D84 80A0FFE4 00000000 */ nop
/* 00D88 80A0FFE8 A438FD06 */ sh $t8, %lo(D_8015FD06)($at)
/* 00D8C 80A0FFEC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00D90 80A0FFF0 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 00D94 80A0FFF4 3C018016 */ lui $at, %hi(D_8015FD08)
/* 00D98 80A0FFF8 E424FD08 */ swc1 $f4, %lo(D_8015FD08)($at)
/* 00D9C 80A0FFFC 3C018016 */ lui $at, %hi(D_8015FD0C)
/* 00DA0 80A10000 03E00008 */ jr $ra
/* 00DA4 80A10004 A420FD0C */ sh $zero, %lo(D_8015FD0C)($at)

View file

@ -1,171 +0,0 @@
.rdata
glabel D_80A11880
.asciz "yari hikari 1\n"
.balign 4
glabel D_80A11890
.asciz "yari hikari 2\n"
.balign 4
glabel D_80A118A0
.asciz "FLASH !!\n"
.balign 4
.late_rodata
glabel D_80A119D4
.word 0x469C4000
glabel D_80A119D8
.word 0xBDA3D70A
.text
glabel func_80A10008
/* 00DA8 80A10008 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 00DAC 80A1000C AFB10038 */ sw $s1, 0x0038($sp)
/* 00DB0 80A10010 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00DB4 80A10014 AFBF004C */ sw $ra, 0x004C($sp)
/* 00DB8 80A10018 AFB50048 */ sw $s5, 0x0048($sp)
/* 00DBC 80A1001C 3C0480A1 */ lui $a0, %hi(D_80A11880) ## $a0 = 80A10000
/* 00DC0 80A10020 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000
/* 00DC4 80A10024 AFB40044 */ sw $s4, 0x0044($sp)
/* 00DC8 80A10028 AFB30040 */ sw $s3, 0x0040($sp)
/* 00DCC 80A1002C AFB2003C */ sw $s2, 0x003C($sp)
/* 00DD0 80A10030 AFB00034 */ sw $s0, 0x0034($sp)
/* 00DD4 80A10034 F7B80028 */ sdc1 $f24, 0x0028($sp)
/* 00DD8 80A10038 F7B60020 */ sdc1 $f22, 0x0020($sp)
/* 00DDC 80A1003C F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 00DE0 80A10040 0C00084C */ jal osSyncPrintf
/* 00DE4 80A10044 24841880 */ addiu $a0, $a0, %lo(D_80A11880) ## $a0 = 80A11880
/* 00DE8 80A10048 862E0156 */ lh $t6, 0x0156($s1) ## 00000156
/* 00DEC 80A1004C 8E300118 */ lw $s0, 0x0118($s1) ## 00000118
/* 00DF0 80A10050 3C0540C0 */ lui $a1, 0x40C0 ## $a1 = 40C00000
/* 00DF4 80A10054 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00DF8 80A10058 11E00005 */ beq $t7, $zero, .L80A10070
/* 00DFC 80A1005C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00E00 80A10060 0C00B58B */ jal Actor_SetScale
/* 00E04 80A10064 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00E08 80A10068 10000004 */ beq $zero, $zero, .L80A1007C
/* 00E0C 80A1006C 8E190200 */ lw $t9, 0x0200($s0) ## 00000200
.L80A10070:
/* 00E10 80A10070 0C00B58B */ jal Actor_SetScale
/* 00E14 80A10074 3C0540A8 */ lui $a1, 0x40A8 ## $a1 = 40A80000
/* 00E18 80A10078 8E190200 */ lw $t9, 0x0200($s0) ## 00000200
.L80A1007C:
/* 00E1C 80A1007C AE390024 */ sw $t9, 0x0024($s1) ## 00000024
/* 00E20 80A10080 8E180204 */ lw $t8, 0x0204($s0) ## 00000204
/* 00E24 80A10084 AE380028 */ sw $t8, 0x0028($s1) ## 00000028
/* 00E28 80A10088 8E190208 */ lw $t9, 0x0208($s0) ## 00000208
/* 00E2C 80A1008C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00E30 80A10090 AE39002C */ sw $t9, 0x002C($s1) ## 0000002C
/* 00E34 80A10094 3C0180A1 */ lui $at, %hi(D_80A119D4) ## $at = 80A10000
/* 00E38 80A10098 C42419D4 */ lwc1 $f4, %lo(D_80A119D4)($at)
/* 00E3C 80A1009C 862800B8 */ lh $t0, 0x00B8($s1) ## 000000B8
/* 00E40 80A100A0 3C0480A1 */ lui $a0, %hi(D_80A11890) ## $a0 = 80A10000
/* 00E44 80A100A4 46040182 */ mul.s $f6, $f0, $f4
/* 00E48 80A100A8 24841890 */ addiu $a0, $a0, %lo(D_80A11890) ## $a0 = 80A11890
/* 00E4C 80A100AC 4600320D */ trunc.w.s $f8, $f6
/* 00E50 80A100B0 440C4000 */ mfc1 $t4, $f8
/* 00E54 80A100B4 00000000 */ nop
/* 00E58 80A100B8 010C6821 */ addu $t5, $t0, $t4
/* 00E5C 80A100BC 25AE4000 */ addiu $t6, $t5, 0x4000 ## $t6 = 00004000
/* 00E60 80A100C0 0C00084C */ jal osSyncPrintf
/* 00E64 80A100C4 A62E00B8 */ sh $t6, 0x00B8($s1) ## 000000B8
/* 00E68 80A100C8 862F0158 */ lh $t7, 0x0158($s1) ## 00000158
/* 00E6C 80A100CC 3C1880A1 */ lui $t8, %hi(D_80A117C8) ## $t8 = 80A10000
/* 00E70 80A100D0 271817C8 */ addiu $t8, $t8, %lo(D_80A117C8) ## $t8 = 80A117C8
/* 00E74 80A100D4 55E00042 */ bnel $t7, $zero, .L80A101E0
/* 00E78 80A100D8 86390150 */ lh $t9, 0x0150($s1) ## 00000150
/* 00E7C 80A100DC 8F090000 */ lw $t1, 0x0000($t8) ## 80A117C8
/* 00E80 80A100E0 27B20060 */ addiu $s2, $sp, 0x0060 ## $s2 = FFFFFFE0
/* 00E84 80A100E4 3C0A80A1 */ lui $t2, %hi(D_80A117D4) ## $t2 = 80A10000
/* 00E88 80A100E8 AE490000 */ sw $t1, 0x0000($s2) ## FFFFFFE0
/* 00E8C 80A100EC 8F190004 */ lw $t9, 0x0004($t8) ## 80A117CC
/* 00E90 80A100F0 254A17D4 */ addiu $t2, $t2, %lo(D_80A117D4) ## $t2 = 80A117D4
/* 00E94 80A100F4 27B30054 */ addiu $s3, $sp, 0x0054 ## $s3 = FFFFFFD4
/* 00E98 80A100F8 AE590004 */ sw $t9, 0x0004($s2) ## FFFFFFE4
/* 00E9C 80A100FC 8F090008 */ lw $t1, 0x0008($t8) ## 80A117D0
/* 00EA0 80A10100 3C0480A1 */ lui $a0, %hi(D_80A118A0) ## $a0 = 80A10000
/* 00EA4 80A10104 248418A0 */ addiu $a0, $a0, %lo(D_80A118A0) ## $a0 = 80A118A0
/* 00EA8 80A10108 AE490008 */ sw $t1, 0x0008($s2) ## FFFFFFE8
/* 00EAC 80A1010C 8D480000 */ lw $t0, 0x0000($t2) ## 80A117D4
/* 00EB0 80A10110 AE680000 */ sw $t0, 0x0000($s3) ## FFFFFFD4
/* 00EB4 80A10114 8D4B0004 */ lw $t3, 0x0004($t2) ## 80A117D8
/* 00EB8 80A10118 AE6B0004 */ sw $t3, 0x0004($s3) ## FFFFFFD8
/* 00EBC 80A1011C 8D480008 */ lw $t0, 0x0008($t2) ## 80A117DC
/* 00EC0 80A10120 0C00084C */ jal osSyncPrintf
/* 00EC4 80A10124 AE680008 */ sw $t0, 0x0008($s3) ## FFFFFFDC
/* 00EC8 80A10128 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00ECC 80A1012C 4481C000 */ mtc1 $at, $f24 ## $f24 = 80.00
/* 00ED0 80A10130 3C0180A1 */ lui $at, %hi(D_80A119D8) ## $at = 80A10000
/* 00ED4 80A10134 C43619D8 */ lwc1 $f22, %lo(D_80A119D8)($at)
/* 00ED8 80A10138 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00EDC 80A1013C 4481A000 */ mtc1 $at, $f20 ## $f20 = 20.00
/* 00EE0 80A10140 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00EE4 80A10144 27B4006C */ addiu $s4, $sp, 0x006C ## $s4 = FFFFFFEC
.L80A10148:
/* 00EE8 80A10148 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00EEC 80A1014C 4600A306 */ mov.s $f12, $f20
/* 00EF0 80A10150 C62A0024 */ lwc1 $f10, 0x0024($s1) ## 00000024
/* 00EF4 80A10154 4600A306 */ mov.s $f12, $f20
/* 00EF8 80A10158 460A0400 */ add.s $f16, $f0, $f10
/* 00EFC 80A1015C 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00F00 80A10160 E7B0006C */ swc1 $f16, 0x006C($sp)
/* 00F04 80A10164 C6320028 */ lwc1 $f18, 0x0028($s1) ## 00000028
/* 00F08 80A10168 4600A306 */ mov.s $f12, $f20
/* 00F0C 80A1016C 46120100 */ add.s $f4, $f0, $f18
/* 00F10 80A10170 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00F14 80A10174 E7A40070 */ swc1 $f4, 0x0070($sp)
/* 00F18 80A10178 C626002C */ lwc1 $f6, 0x002C($s1) ## 0000002C
/* 00F1C 80A1017C E7B60058 */ swc1 $f22, 0x0058($sp)
/* 00F20 80A10180 46060200 */ add.s $f8, $f0, $f6
/* 00F24 80A10184 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00F28 80A10188 E7A80074 */ swc1 $f8, 0x0074($sp)
/* 00F2C 80A1018C 46180282 */ mul.s $f10, $f0, $f24
/* 00F30 80A10190 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 00F34 80A10194 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFEC
/* 00F38 80A10198 02403025 */ or $a2, $s2, $zero ## $a2 = FFFFFFE0
/* 00F3C 80A1019C 02603825 */ or $a3, $s3, $zero ## $a3 = FFFFFFD4
/* 00F40 80A101A0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00F44 80A101A4 4600540D */ trunc.w.s $f16, $f10
/* 00F48 80A101A8 440D8000 */ mfc1 $t5, $f16
/* 00F4C 80A101AC 00000000 */ nop
/* 00F50 80A101B0 000D7400 */ sll $t6, $t5, 16
/* 00F54 80A101B4 000E7C03 */ sra $t7, $t6, 16
/* 00F58 80A101B8 25F80096 */ addiu $t8, $t7, 0x0096 ## $t8 = 00000096
/* 00F5C 80A101BC 0C00A73C */ jal func_80029CF0
/* 00F60 80A101C0 AFB80010 */ sw $t8, 0x0010($sp)
/* 00F64 80A101C4 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00F68 80A101C8 00108400 */ sll $s0, $s0, 16
/* 00F6C 80A101CC 00108403 */ sra $s0, $s0, 16
/* 00F70 80A101D0 2A010002 */ slti $at, $s0, 0x0002
/* 00F74 80A101D4 1420FFDC */ bne $at, $zero, .L80A10148
/* 00F78 80A101D8 00000000 */ nop
/* 00F7C 80A101DC 86390150 */ lh $t9, 0x0150($s1) ## 00000150
.L80A101E0:
/* 00F80 80A101E0 57200004 */ bnel $t9, $zero, .L80A101F4
/* 00F84 80A101E4 8FBF004C */ lw $ra, 0x004C($sp)
/* 00F88 80A101E8 0C00B55C */ jal Actor_Kill
/* 00F8C 80A101EC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00F90 80A101F0 8FBF004C */ lw $ra, 0x004C($sp)
.L80A101F4:
/* 00F94 80A101F4 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00F98 80A101F8 D7B60020 */ ldc1 $f22, 0x0020($sp)
/* 00F9C 80A101FC D7B80028 */ ldc1 $f24, 0x0028($sp)
/* 00FA0 80A10200 8FB00034 */ lw $s0, 0x0034($sp)
/* 00FA4 80A10204 8FB10038 */ lw $s1, 0x0038($sp)
/* 00FA8 80A10208 8FB2003C */ lw $s2, 0x003C($sp)
/* 00FAC 80A1020C 8FB30040 */ lw $s3, 0x0040($sp)
/* 00FB0 80A10210 8FB40044 */ lw $s4, 0x0044($sp)
/* 00FB4 80A10214 8FB50048 */ lw $s5, 0x0048($sp)
/* 00FB8 80A10218 03E00008 */ jr $ra
/* 00FBC 80A1021C 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000

View file

@ -192,7 +192,7 @@ glabel func_80A10220
/* 011D4 80A10434 000FC400 */ sll $t8, $t7, 16
/* 011D8 80A10438 0018CC03 */ sra $t9, $t8, 16
/* 011DC 80A1043C 27290096 */ addiu $t1, $t9, 0x0096 ## $t1 = 00000096
/* 011E0 80A10440 0C00A73C */ jal func_80029CF0
/* 011E0 80A10440 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 011E4 80A10444 AFA90010 */ sw $t1, 0x0010($sp)
/* 011E8 80A10448 87A200E0 */ lh $v0, 0x00E0($sp)
/* 011EC 80A1044C 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
@ -309,7 +309,7 @@ glabel func_80A10220
/* 0137C 80A105DC 00086400 */ sll $t4, $t0, 16
/* 01380 80A105E0 000C5C03 */ sra $t3, $t4, 16
/* 01384 80A105E4 256E0032 */ addiu $t6, $t3, 0x0032 ## $t6 = 00000032
/* 01388 80A105E8 0C00A73C */ jal func_80029CF0
/* 01388 80A105E8 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 0138C 80A105EC AFAE0010 */ sw $t6, 0x0010($sp)
/* 01390 80A105F0 87A200B6 */ lh $v0, 0x00B6($sp)
/* 01394 80A105F4 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
@ -702,7 +702,7 @@ glabel func_80A10220
/* 01928 80A10B88 00086400 */ sll $t4, $t0, 16
/* 0192C 80A10B8C 000C5C03 */ sra $t3, $t4, 16
/* 01930 80A10B90 256E0050 */ addiu $t6, $t3, 0x0050 ## $t6 = 00000050
/* 01934 80A10B94 0C00A73C */ jal func_80029CF0
/* 01934 80A10B94 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 01938 80A10B98 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0193C 80A10B9C 87A20096 */ lh $v0, 0x0096($sp)
/* 01940 80A10BA0 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
@ -832,7 +832,7 @@ glabel func_80A10220
/* 01B04 80A10D64 000C5C00 */ sll $t3, $t4, 16
/* 01B08 80A10D68 000B7403 */ sra $t6, $t3, 16
/* 01B0C 80A10D6C 25CF0064 */ addiu $t7, $t6, 0x0064 ## $t7 = 00000064
/* 01B10 80A10D70 0C00A73C */ jal func_80029CF0
/* 01B10 80A10D70 0C00A73C */ jal EffectSsFhgFlash_Spawn
/* 01B14 80A10D74 AFAF0010 */ sw $t7, 0x0010($sp)
/* 01B18 80A10D78 87A20078 */ lh $v0, 0x0078($sp)
/* 01B1C 80A10D7C 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001

View file

@ -1,145 +0,0 @@
.rdata
glabel D_80A11910
.asciz "EFC 1\n"
.balign 4
glabel D_80A11918
.asciz "EFC 2\n"
.balign 4
.text
glabel func_80A10F18
/* 01CB8 80A10F18 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 01CBC 80A10F1C AFBF001C */ sw $ra, 0x001C($sp)
/* 01CC0 80A10F20 AFB00018 */ sw $s0, 0x0018($sp)
/* 01CC4 80A10F24 AFA5002C */ sw $a1, 0x002C($sp)
/* 01CC8 80A10F28 8C8E0118 */ lw $t6, 0x0118($a0) ## 00000118
/* 01CCC 80A10F2C 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
/* 01CD0 80A10F30 44813000 */ mtc1 $at, $f6 ## $f6 = 25.00
/* 01CD4 80A10F34 AFAE0024 */ sw $t6, 0x0024($sp)
/* 01CD8 80A10F38 C4800184 */ lwc1 $f0, 0x0184($a0) ## 00000184
/* 01CDC 80A10F3C 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 01CE0 80A10F40 44819000 */ mtc1 $at, $f18 ## $f18 = 40.00
/* 01CE4 80A10F44 46003202 */ mul.s $f8, $f6, $f0
/* 01CE8 80A10F48 C4840174 */ lwc1 $f4, 0x0174($a0) ## 00000174
/* 01CEC 80A10F4C C4900178 */ lwc1 $f16, 0x0178($a0) ## 00000178
/* 01CF0 80A10F50 46009182 */ mul.s $f6, $f18, $f0
/* 01CF4 80A10F54 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 01CF8 80A10F58 848F001C */ lh $t7, 0x001C($a0) ## 0000001C
/* 01CFC 80A10F5C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01D00 80A10F60 46082280 */ add.s $f10, $f4, $f8
/* 01D04 80A10F64 C488017C */ lwc1 $f8, 0x017C($a0) ## 0000017C
/* 01D08 80A10F68 46068101 */ sub.s $f4, $f16, $f6
/* 01D0C 80A10F6C E48A0174 */ swc1 $f10, 0x0174($a0) ## 00000174
/* 01D10 80A10F70 44815000 */ mtc1 $at, $f10 ## $f10 = 5.00
/* 01D14 80A10F74 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 01D18 80A10F78 E4840178 */ swc1 $f4, 0x0178($a0) ## 00000178
/* 01D1C 80A10F7C 46005482 */ mul.s $f18, $f10, $f0
/* 01D20 80A10F80 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
/* 01D24 80A10F84 C4860180 */ lwc1 $f6, 0x0180($a0) ## 00000180
/* 01D28 80A10F88 24010029 */ addiu $at, $zero, 0x0029 ## $at = 00000029
/* 01D2C 80A10F8C 46002282 */ mul.s $f10, $f4, $f0
/* 01D30 80A10F90 46124400 */ add.s $f16, $f8, $f18
/* 01D34 80A10F94 460A3201 */ sub.s $f8, $f6, $f10
/* 01D38 80A10F98 E490017C */ swc1 $f16, 0x017C($a0) ## 0000017C
/* 01D3C 80A10F9C 15E10013 */ bne $t7, $at, .L80A10FEC
/* 01D40 80A10FA0 E4880180 */ swc1 $f8, 0x0180($a0) ## 00000180
/* 01D44 80A10FA4 84820150 */ lh $v0, 0x0150($a0) ## 00000150
/* 01D48 80A10FA8 28410047 */ slti $at, $v0, 0x0047
/* 01D4C 80A10FAC 54200008 */ bnel $at, $zero, .L80A10FD0
/* 01D50 80A10FB0 24010046 */ addiu $at, $zero, 0x0046 ## $at = 00000046
/* 01D54 80A10FB4 0C00BE0A */ jal Audio_PlayActorSound2
/* 01D58 80A10FB8 24052040 */ addiu $a1, $zero, 0x2040 ## $a1 = 00002040
/* 01D5C 80A10FBC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01D60 80A10FC0 0C00BE0A */ jal Audio_PlayActorSound2
/* 01D64 80A10FC4 24052054 */ addiu $a1, $zero, 0x2054 ## $a1 = 00002054
/* 01D68 80A10FC8 86020150 */ lh $v0, 0x0150($s0) ## 00000150
/* 01D6C 80A10FCC 24010046 */ addiu $at, $zero, 0x0046 ## $at = 00000046
.L80A10FD0:
/* 01D70 80A10FD0 14410006 */ bne $v0, $at, .L80A10FEC
/* 01D74 80A10FD4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01D78 80A10FD8 0C00BE0A */ jal Audio_PlayActorSound2
/* 01D7C 80A10FDC 2405283F */ addiu $a1, $zero, 0x283F ## $a1 = 0000283F
/* 01D80 80A10FE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01D84 80A10FE4 0C00BE0A */ jal Audio_PlayActorSound2
/* 01D88 80A10FE8 24052853 */ addiu $a1, $zero, 0x2853 ## $a1 = 00002853
.L80A10FEC:
/* 01D8C 80A10FEC 86020150 */ lh $v0, 0x0150($s0) ## 00000150
/* 01D90 80A10FF0 26040184 */ addiu $a0, $s0, 0x0184 ## $a0 = 00000184
/* 01D94 80A10FF4 3C073D23 */ lui $a3, 0x3D23 ## $a3 = 3D230000
/* 01D98 80A10FF8 28410033 */ slti $at, $v0, 0x0033
/* 01D9C 80A10FFC 54200017 */ bnel $at, $zero, .L80A1105C
/* 01DA0 80A11000 2841001A */ slti $at, $v0, 0x001A
/* 01DA4 80A11004 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 01DA8 80A11008 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01DAC 80A1100C 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
/* 01DB0 80A11010 2B010028 */ slti $at, $t8, 0x0028
/* 01DB4 80A11014 14200004 */ bne $at, $zero, .L80A11028
/* 01DB8 80A11018 46001006 */ mov.s $f0, $f2
/* 01DBC 80A1101C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 01DC0 80A11020 44810000 */ mtc1 $at, $f0 ## $f0 = -1.00
/* 01DC4 80A11024 00000000 */ nop
.L80A11028:
/* 01DC8 80A11028 44050000 */ mfc1 $a1, $f0
/* 01DCC 80A1102C 44061000 */ mfc1 $a2, $f2
/* 01DD0 80A11030 0C01E107 */ jal Math_SmoothScaleMaxF
/* 01DD4 80A11034 34E7D70A */ ori $a3, $a3, 0xD70A ## $a3 = 3D23D70A
/* 01DD8 80A11038 3C074123 */ lui $a3, 0x4123 ## $a3 = 41230000
/* 01DDC 80A1103C 34E73333 */ ori $a3, $a3, 0x3333 ## $a3 = 41233333
/* 01DE0 80A11040 26040188 */ addiu $a0, $s0, 0x0188 ## $a0 = 00000188
/* 01DE4 80A11044 3C05437F */ lui $a1, 0x437F ## $a1 = 437F0000
/* 01DE8 80A11048 0C01E107 */ jal Math_SmoothScaleMaxF
/* 01DEC 80A1104C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 01DF0 80A11050 1000000D */ beq $zero, $zero, .L80A11088
/* 01DF4 80A11054 00000000 */ nop
/* 01DF8 80A11058 2841001A */ slti $at, $v0, 0x001A
.L80A1105C:
/* 01DFC 80A1105C 1020000A */ beq $at, $zero, .L80A11088
/* 01E00 80A11060 26040184 */ addiu $a0, $s0, 0x0184 ## $a0 = 00000184
/* 01E04 80A11064 3C063D23 */ lui $a2, 0x3D23 ## $a2 = 3D230000
/* 01E08 80A11068 34C6D70A */ ori $a2, $a2, 0xD70A ## $a2 = 3D23D70A
/* 01E0C 80A1106C 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 01E10 80A11070 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 01E14 80A11074 3C064123 */ lui $a2, 0x4123 ## $a2 = 41230000
/* 01E18 80A11078 34C63333 */ ori $a2, $a2, 0x3333 ## $a2 = 41233333
/* 01E1C 80A1107C 26040188 */ addiu $a0, $s0, 0x0188 ## $a0 = 00000188
/* 01E20 80A11080 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 01E24 80A11084 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
.L80A11088:
/* 01E28 80A11088 3C0480A1 */ lui $a0, %hi(D_80A11910) ## $a0 = 80A10000
/* 01E2C 80A1108C 0C00084C */ jal osSyncPrintf
/* 01E30 80A11090 24841910 */ addiu $a0, $a0, %lo(D_80A11910) ## $a0 = 80A11910
/* 01E34 80A11094 86190150 */ lh $t9, 0x0150($s0) ## 00000150
/* 01E38 80A11098 13200009 */ beq $t9, $zero, .L80A110C0
/* 01E3C 80A1109C 00000000 */ nop
/* 01E40 80A110A0 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 01E44 80A110A4 24010027 */ addiu $at, $zero, 0x0027 ## $at = 00000027
/* 01E48 80A110A8 8FA90024 */ lw $t1, 0x0024($sp)
/* 01E4C 80A110AC 15010006 */ bne $t0, $at, .L80A110C8
/* 01E50 80A110B0 00000000 */ nop
/* 01E54 80A110B4 912A014F */ lbu $t2, 0x014F($t1) ## 0000014F
/* 01E58 80A110B8 11400003 */ beq $t2, $zero, .L80A110C8
/* 01E5C 80A110BC 00000000 */ nop
.L80A110C0:
/* 01E60 80A110C0 0C00B55C */ jal Actor_Kill
/* 01E64 80A110C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A110C8:
/* 01E68 80A110C8 3C0480A1 */ lui $a0, %hi(D_80A11918) ## $a0 = 80A10000
/* 01E6C 80A110CC 0C00084C */ jal osSyncPrintf
/* 01E70 80A110D0 24841918 */ addiu $a0, $a0, %lo(D_80A11918) ## $a0 = 80A11918
/* 01E74 80A110D4 8FBF001C */ lw $ra, 0x001C($sp)
/* 01E78 80A110D8 8FB00018 */ lw $s0, 0x0018($sp)
/* 01E7C 80A110DC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 01E80 80A110E0 03E00008 */ jr $ra
/* 01E84 80A110E4 00000000 */ nop

View file

@ -75,7 +75,7 @@ glabel func_80848B44
/* 16A30 80848C40 27A6003C */ addiu $a2, $sp, 0x003C ## $a2 = FFFFFFF4
/* 16A34 80848C44 87A70036 */ lh $a3, 0x0036($sp)
/* 16A38 80848C48 46128101 */ sub.s $f4, $f16, $f18
/* 16A3C 80848C4C 0C00A757 */ jal func_80029D5C
/* 16A3C 80848C4C 0C00A757 */ jal EffectSsFhgFlash_Spawn2
/* 16A40 80848C50 E7A40044 */ swc1 $f4, 0x0044($sp)
/* 16A44 80848C54 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 16A48 80848C58 0C00BE3C */ jal func_8002F8F0

View file

@ -9,12 +9,6 @@
.balign 16
glabel En_Fhg_Fire_InitVars
.word 0x00000900, 0x00000030, 0x005A0000, 0x00000204
.word EnFhgFire_Init
.word EnFhgFire_Destroy
.word EnFhgFire_Update
.word EnFhgFire_Draw
glabel D_80A11790
.word 0x0A110939, 0x10010000, 0x06000000, 0x00100700, 0x03200000, 0x0D900700, 0x00000000, 0x01010100, 0x0014001E, 0x000A0000, 0x00000000
glabel D_80A117BC

View file

@ -258,8 +258,8 @@ void func_800299AC(GlobalContext* globalCtx, Vec3f* v);
// ? func_80029C50(?);
void func_80029CA4(GlobalContext* globalCtx, s32 a, Vec3f* pos);
// ? func_80029CC8(?);
// ? func_80029CF0(?);
// ? func_80029D5C(?);
void EffectSsFhgFlash_Spawn(GlobalContext*, Vec3f*, Vec3f*, Vec3f*, s16, u8);
void EffectSsFhgFlash_Spawn2(GlobalContext *, Actor *, Vec3f *, s16, u8);
// ? func_80029DBC(?);
void func_80029E8C(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* burstDepthX, Vec3f* burstOrigin,
s16 gravityInfluence, s16 u0, s16 rotSpeed, s16 burstVel, u8 u1, s16 scale, u8 u2, s16 jitter,
@ -691,6 +691,7 @@ void func_80059EC8(Camera* camera);
s32 func_8005A77C(Camera* camera, s16 button);
// ? func_8005A7A8(?);
// ? func_8005A8C4(?);
s16 func_8005A948(Camera* camera);
Vec3s* func_8005A970(Vec3s*, Camera*);
s16 func_8005A9F4(Camera* camera);
s32 func_8005AA1C(Camera* camera, s32, s16, s32);

View file

@ -895,7 +895,8 @@ typedef struct {
/* 0xB8 */ UNK_PTR lightSettingsList;
/* 0xBC */ char unk_BC[0x03];
/* 0xBF */ u8 unk_BF;
/* 0xC0 */ char unk_C0[0x18];
/* 0xC0 */ char unk_C0[0x16];
/* 0xD6 */ s16 unk_D6;
/* 0xD8 */ f32 unk_D8;
/* 0xDC */ u8 unk_DC;
/* 0xDD */ u8 gloomySkyEvent;

View file

@ -175,7 +175,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u32 size;
/* 0x04 */ void (*init)(void* effect, void* initParms);
/* 0x04 */ void (*init)(void* effect, void* initParams);
/* 0x08 */ void (*destroy)(void* effect);
/* 0x0C */ s32 (*update)(void* effect);
/* 0x10 */ void (*draw)(void* effect, struct GraphicsContext* gfxCtx);

View file

@ -1,6 +1,7 @@
#include <ultra64.h>
#include <global.h>
#include "overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.h"
#include "overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.h"
// Draw utility for some G effects
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80027F80.s")
@ -161,9 +162,30 @@
// EffectSsFhgFlash Spawn Functions
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80029CF0.s")
void EffectSsFhgFlash_Spawn(GlobalContext *globalCtx, Vec3f *pos, Vec3f *velocity, Vec3f *accel, s16 arg4, u8 arg5) {
EffectSsFhgFlashInitParams initParams;
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/func_80029D5C.s")
Math_Vec3f_Copy(&initParams.pos, pos);
Math_Vec3f_Copy(&initParams.velocity, velocity);
Math_Vec3f_Copy(&initParams.accel, accel);
initParams.unk_24 = arg4;
initParams.unk_26 = arg5;
initParams.unk_2C = 0;
EffectSs_Spawn(globalCtx, EFFECT_SS_FHG_FLASH, 128, &initParams);
}
void EffectSsFhgFlash_Spawn2(GlobalContext *globalCtx, Actor *arg1, Vec3f *pos, s16 arg3, u8 arg4) {
EffectSsFhgFlashInitParams initParams;
initParams.unk_28 = arg1;
Math_Vec3f_Copy(&initParams.pos, pos);
initParams.unk_24 = arg3;
initParams.unk_26 = arg4;
initParams.unk_2C = 1;
EffectSs_Spawn(globalCtx, EFFECT_SS_FHG_FLASH, 128, &initParams);
}
// EffectSsKFire Spawn Functions

View file

@ -1,4 +1,11 @@
/*
* File: z_en_fhg_fire.c
* Overlay: ovl_En_Fhg_Fire
* Description: Phantom Ganon's Lighting Attack
*/
#include "z_en_fhg_fire.h"
#include "../ovl_En_fHG/z_en_fhg.h"
#define FLAGS 0x00000030
@ -9,7 +16,24 @@ void EnFhgFire_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnFhgFire_Update(Actor* thisx, GlobalContext* globalCtx);
void EnFhgFire_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_80A0F6F8(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A0FA90(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A0FC48(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A0FD8C(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A10008(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A10220(EnFhgFire* this, GlobalContext* globalCtx);
void func_80A10F18(EnFhgFire* this, GlobalContext* globalCtx);
extern ColliderCylinderInit D_80A11790;
extern Vec3f D_80A117BC;
extern Vec3f D_80A117C8;
extern Vec3f D_80A117D4;
extern Gfx D_0600FAA0[];
extern Gfx D_0600FCF8[];
extern Gfx D_060105E0[];
extern Gfx D_06012160[];
const ActorInit En_Fhg_Fire_InitVars = {
0,
ACTORTYPE_BOSS,
@ -21,27 +45,489 @@ const ActorInit En_Fhg_Fire_InitVars = {
(ActorFunc)EnFhgFire_Update,
(ActorFunc)EnFhgFire_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A0F260.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/EnFhgFire_Init.s")
void EnFhgFire_SetupAction(EnFhgFire* this, EnFhgFireActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/EnFhgFire_Destroy.s")
void EnFhgFire_Init(Actor* thisx, GlobalContext* globalCtx) {
f32 tempf0;
EnFhgFire* this = THIS;
Player* player = PLAYER;
f32 tempf1;
f32 tempf2;
f32 tempf3;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A0F6F8.s")
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
if ((thisx->params == 0x23) || (thisx->params == 0x24) || (thisx->params == 0x32)) {
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, thisx, &D_80A11790);
}
this->unk_160 = 200.0f;
Actor_SetScale(thisx, 0.0f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A0FA90.s")
if (thisx->params == 0x01) {
EnFhgFire_SetupAction(this, func_80A0F6F8);
Audio_PlayActorSound2(thisx, NA_SE_EN_FANTOM_THUNDER);
} else if (thisx->params >= 0x64) {
EnFhgFire_SetupAction(this, func_80A0FA90);
thisx->shape.rot = thisx->posRot.rot;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A0FC48.s")
if (thisx->params == 0x23) {
thisx->draw = NULL;
EnFhgFire_SetupAction(this, func_80A0FC48);
thisx->speedXZ = 30.0f;
Audio_PlayActorSound2(thisx, NA_SE_EN_FANTOM_SPARK);
return;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A0FD8C.s")
if (thisx->params == 0x24) {
EnFhgFire_SetupAction(this, func_80A0FD8C);
this->unk_160 = 255.0f;
this->unk_150.x = 0x20;
this->unk_150.y = 0x32;
this->unk_1FE = 0x0A;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A10008.s")
tempf2 = thisx->posRot.rot.x;
this->unk_18C = tempf2 / 100.0f;
tempf1 = tempf2 * 0.13f;
this->collider.dim.radius = tempf1;
this->collider.dim.height = tempf1;
this->collider.dim.yShift = 0;
return;
}
if (thisx->params == 0x26) {
// "light spear"
osSyncPrintf("yari hikari ct 1\n");
EnFhgFire_SetupAction(this, func_80A10008);
osSyncPrintf("yari hikari ct 2\n");
this->unk_150.x = thisx->posRot.rot.x;
this->fireMode = thisx->posRot.rot.y;
return;
}
switch (thisx->params) {
case 0x27:
case 0x28:
case 0x29:
Actor_SetScale(thisx, 7.0f);
EnFhgFire_SetupAction(this, func_80A10F18);
if (thisx->params == 0x29) {
this->unk_150.x = 0x01B8;
thisx->scale.z = 1.0f;
} else {
this->unk_150.x = 0x4C;
Audio_PlayActorSound2(thisx, NA_SE_EV_FANTOM_WARP_S);
Audio_PlayActorSound2(thisx, NA_SE_EV_FANTOM_WARP_S2);
}
return;
}
if (thisx->params == 0x32) {
thisx->speedXZ = (thisx->posRot.rot.x == 0) ? 8.0f : 3.0f;
EnFhgFire_SetupAction(this, func_80A10220);
this->unk_150.x = 0x46;
this->unk_150.y = 0x02;
tempf1 = player->actor.posRot.pos.x - thisx->posRot.pos.x;
tempf2 = player->actor.posRot.pos.y + 30.0f - thisx->posRot.pos.y;
tempf3 = player->actor.posRot.pos.z - thisx->posRot.pos.z;
thisx->posRot.rot.y = Math_atan2f(tempf1, tempf3) * 10430.378f; // 65536/(2*M_PI)
tempf0 = sqrtf(SQ(tempf1) + SQ(tempf3));
thisx->posRot.rot.x = Math_atan2f(tempf2, tempf0) * 10430.378f; // 65536/(2*M_PI)
this->collider.dim.radius = 40;
this->collider.dim.height = 50;
this->collider.dim.yShift = -25;
this->light = Lights_Insert(globalCtx, &globalCtx->lightCtx, (void*)(&this->unk_1A0));
Lights_InitType0PositionalLight(&this->unk_1A0, thisx->posRot.pos.x, thisx->posRot.pos.y, thisx->posRot.pos.z,
0xFF, 0xFF, 0xFF, 0xFF);
}
}
void EnFhgFire_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnFhgFire* this = THIS;
if ((thisx->params == 0x23) || (thisx->params == 0x24) || (thisx->params == 0x32)) {
Collider_DestroyCylinder(globalCtx, &this->collider);
}
if (thisx->params == 0x32) {
Lights_Remove(globalCtx, &globalCtx->lightCtx, this->light);
}
}
void func_80A0F6F8(EnFhgFire* this, GlobalContext* globalCtx) {
Camera* camera;
s32 pad;
Vec3f randVec;
Vec3f tmpVec;
s16 i;
s16 randY;
s16* tmp;
tmp = &this->unk_156;
camera = Gameplay_GetCamera(globalCtx, 0);
switch (this->fireMode) {
case 0x00:
this->fireMode = 0x0A;
this->unk_150.x = 0x07;
break;
case 0x0A:
this->actor.shape.rot.y = func_8005A948(camera) + ((*tmp & 0xFF) << 0x0F);
Math_SmoothScaleMaxF(&this->scale, 1.0f, 1.0f, 0.2f);
if (this->unk_150.x == 0) {
this->fireMode = 0x0B;
this->actor.shape.rot.z += 0x8000;
this->unk_150.x = 0x25;
this->actor.posRot.pos.y -= 200.0f;
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_FHG_FIRE,
this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, 500,
0, 0, 0x24);
tmpVec = D_80A117BC;
for (i = 0; i < 35; i++) {
randVec.x = Math_Rand_CenteredFloat(30.f);
randVec.y = Math_Rand_ZeroFloat(5.0f) + 3.0f;
randVec.z = Math_Rand_CenteredFloat(30.f);
tmpVec.y = -0.2f;
EffectSsFhgFlash_Spawn(globalCtx, &this->actor.posRot.pos, &randVec, &tmpVec,
(s16)(Math_Rand_ZeroOne() * 100.0f) + 240, 0);
}
func_80033E88(&this->actor, globalCtx, 4, 10);
}
break;
case 0x0B:
this->actor.shape.rot.y = func_8005A948(camera) + ((*tmp & 0xFF) << 0x0F);
Math_SmoothScaleMaxF(&this->scale, 0.0f, 1.0f, 0.2f);
if (this->unk_150.x == 0x1E) {
randY = (Math_Rand_ZeroOne() < 0.5f) ? 0x1000 : 0;
for (i = 0; i < 8; i++) {
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_FHG_FIRE,
this->actor.posRot.pos.x, this->actor.posRot.pos.y,
this->actor.posRot.pos.z, 0, (i * 8192) + randY, 0x4000, i + 0x64);
}
for (i = 0; i < 8; i++) {
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_FHG_FIRE,
this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0,
(i * 8192) + randY, 0, 0x23);
}
}
if (this->unk_150.x == 0) {
Actor_Kill(&this->actor);
}
}
Actor_SetScale(&this->actor, this->scale);
}
void func_80A0FA90(EnFhgFire* this, GlobalContext* globalCtx) {
osSyncPrintf("FF MOVE 1\n");
this->actor.shape.rot.x += (s16)(Math_Rand_ZeroOne() * 4000.0f) + 0x4000;
switch (this->fireMode) {
case 0:
this->fireMode = 1;
this->unk_150.x = (s16)(Math_Rand_ZeroOne() * 7.0f) + 0x07;
case 1:
Math_SmoothScaleMaxF(&this->scale, 1.7f, 1.0f, 0.34f);
if (this->unk_150.x == 0) {
this->fireMode = 0x02;
this->unk_150.x = 0x0A;
this->actor.posRot.pos.z += Math_Sins(this->actor.shape.rot.y) * -200.0f * this->scale;
this->actor.posRot.pos.x += Math_Coss(this->actor.shape.rot.y) * 200.0f * this->scale;
this->actor.shape.rot.y += 0x8000;
}
break;
case 2:
Math_SmoothDownscaleMaxF(&this->scale, 1.0f, 0.34f);
if (this->unk_150.x == 0) {
Actor_Kill(&this->actor);
}
break;
}
Actor_SetScale(&this->actor, this->scale);
if (this->actor.scale.x > 1.0f) {
this->actor.scale.x = 1.0f;
}
osSyncPrintf("FF MOVE 2\n");
}
void func_80A0FC48(EnFhgFire* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Vec3f pos;
if (this->collider.base.atFlags & 2) {
this->collider.base.atFlags = this->collider.base.atFlags & ~2;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FANTOM_HIT_THUNDER);
}
if (Math_Rand_ZeroOne() < 0.5f) {
pos = this->actor.posRot.pos;
pos.y -= 20.0f;
EffectSsFhgFlash_Spawn2(globalCtx, &this->actor, &pos, 0xC8, 0);
}
Actor_MoveForward(&this->actor);
Collider_CylinderUpdate(&this->actor, &this->collider);
if (player->invincibilityTimer == 0) {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
func_8002E4B4(globalCtx, &this->actor, 50.0f, 50.0f, 100.0f, 1);
if (this->actor.bgCheckFlags & 8) {
Actor_Kill(&this->actor);
}
}
void func_80A0FD8C(EnFhgFire* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 pad;
globalCtx->envCtx.unk_E1 = 0x01;
this->actor.shape.rot.y += 0x1000;
if (this->unk_150.y == 0x31) {
globalCtx->envCtx.unk_BF = 1;
globalCtx->envCtx.unk_D6 = 0xFF;
}
if (this->unk_150.y == 0x1F) {
globalCtx->envCtx.unk_BF = 0x00;
globalCtx->envCtx.unk_D6 = 0x14;
}
if (this->unk_150.y >= 0x30) {
globalCtx->envCtx.unk_E2[2] = 0xFF;
globalCtx->envCtx.unk_E2[1] = 0xFF;
globalCtx->envCtx.unk_E2[0] = 0xFF;
if (((this->unk_150.x & 0xFF) % 2) != 0) {
globalCtx->envCtx.unk_E2[3] = 0x46;
} else {
globalCtx->envCtx.unk_E2[3] = 0x00;
}
} else {
globalCtx->envCtx.unk_E2[3] = 0x00;
}
if (this->unk_150.x < 0x15) {
Math_SmoothDownscaleMaxF(&this->unk_160, 1.0f, 45.0f);
Math_SmoothDownscaleMaxF(&this->scale, 1.0f, 0.5f);
} else {
Math_SmoothScaleMaxF(&this->scale, this->unk_18C, 0.5f, 3.0f);
}
Actor_SetScale(&this->actor, this->scale);
if (3.0f < this->unk_18C) {
Collider_CylinderUpdate(&this->actor, &this->collider);
if (player->invincibilityTimer == 0) {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, (Collider*)&this->collider);
}
}
if (this->unk_150.x == 0) {
Actor_Kill(&this->actor);
globalCtx->envCtx.unk_E1 = 0;
}
if (this->unk_1FE != 0) {
this->unk_1FE--;
this->unk_1FC = 1;
Math_SmoothScaleMaxF(&this->unk_200, 40.0f, 0.3f, 10.0f);
} else {
Math_SmoothDownscaleMaxF(&this->unk_200, 1.0f, 5.0f);
if (this->unk_200 == 0.0f) {
this->unk_1FC = 0;
}
}
// Related to scene draw config 30, only used in BossGanon_Update and
// loaded in z_kankyo
D_8015FCF0 = this->unk_1FC;
D_8015FCF8 = this->actor.posRot.pos;
D_8015FD06 = this->unk_200;
D_8015FD08 = 10.0f;
D_8015FD0C = 0;
}
void func_80A10008(EnFhgFire* this, GlobalContext* globalCtx) {
EnfHG* horse;
s16 i;
Vec3f sp6C;
Vec3f tmp;
Vec3f sp54;
osSyncPrintf("yari hikari 1\n");
horse = (EnfHG*)this->actor.attachedA;
if ((this->unk_156 % 2) != 0) {
Actor_SetScale(&this->actor, 6.0f);
} else {
Actor_SetScale(&this->actor, 5.25f);
}
this->actor.posRot.pos = horse->unk_200;
this->actor.shape.rot.z += (s16)(Math_Rand_ZeroOne() * 20000.0f) + 0x4000;
osSyncPrintf("yari hikari 2\n");
if (this->fireMode == 0) {
tmp = D_80A117C8;
sp54 = D_80A117D4;
osSyncPrintf("FLASH !!\n");
for (i = 0; i < 2; i++) {
sp6C.x = Math_Rand_CenteredFloat(20.0f) + this->actor.posRot.pos.x;
sp6C.y = Math_Rand_CenteredFloat(20.0f) + this->actor.posRot.pos.y;
sp6C.z = Math_Rand_CenteredFloat(20.0f) + this->actor.posRot.pos.z;
sp54.y = -0.08f;
EffectSsFhgFlash_Spawn(globalCtx, &sp6C, &tmp, &sp54, (s16)(Math_Rand_ZeroOne() * 80.0f) + 150, 0);
}
}
if (this->unk_150.x == 0) {
Actor_Kill(&this->actor);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A10220.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/func_80A10F18.s")
void func_80A10F18(EnFhgFire* this, GlobalContext* globalCtx) {
EnfHG* horse = (EnfHG*)this->actor.attachedA;
f32 phi_f0;
s32 tmp;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/EnFhgFire_Update.s")
this->unk_174 = (this->unk_174 + (25.0f * this->unk_184));
this->unk_178 = (this->unk_178 - (40.0f * this->unk_184));
this->unk_17C = (this->unk_17C + (5.0f * this->unk_184));
this->unk_180 = (this->unk_180 - (30.0f * this->unk_184));
if (this->actor.params == 0x29) {
if (this->unk_150.x >= 0x47) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FANTOM_WARP_L - SFX_FLAG);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FANTOM_WARP_L2 - SFX_FLAG);
}
if (this->unk_150.x == 0x46) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FANTOM_WARP_S);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FANTOM_WARP_S2);
}
}
if (this->unk_150.x >= 0x33) {
phi_f0 = 1.0f;
if (this->actor.params >= 0x28) {
phi_f0 = -1.0f;
}
Math_SmoothScaleMaxF(&this->unk_184, phi_f0, 1.0f, 0.04f);
Math_SmoothScaleMaxF(&this->unk_188, 255.0f, 1.0f, 10.2f);
} else {
if (this->unk_150.x < 0x1A) {
Math_SmoothDownscaleMaxF(&this->unk_184, 1.0f, 0.04f);
Math_SmoothDownscaleMaxF(&this->unk_188, 1.0f, 10.2f);
}
}
osSyncPrintf("EFC 1\n");
if ((this->unk_150.x == 0) || ((this->actor.params == 0x27) && (horse->unk_14F != 0))) {
Actor_Kill(&this->actor);
}
osSyncPrintf("EFC 2\n");
}
void EnFhgFire_Update(Actor* thisx, GlobalContext* globalCtx) {
EnFhgFire* this = THIS;
this->unk_156++;
DECR(this->unk_150.x);
DECR(this->unk_150.y);
this->actionFunc(this, globalCtx);
}
// Unsolved regalloc
#ifdef NON_EQUIVALENT
void EnFhgFire_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnFhgFire* this = THIS;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, gfxCtx, "../z_en_fhg_fire.c", 1723);
if (thisx->params == 0x24) {
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 0xFF, 0xFF, 0xFF, (s32)this->unk_160 & 0xFF);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0xA5, 0xFF, 0x4B, 0x00);
gDPPipeSync(gfxCtx->polyXlu.p++);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fhg_fire.c", 1745),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, SEGMENTED_TO_VIRTUAL(D_0600FCF8));
} else if ((thisx->params == 0x26) || (thisx->params == 0x32)) {
osSyncPrintf("yari hikari draw 1\n");
func_800D1FD4(&globalCtx->mf_11DA0);
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 0xFF, 0xFF, 0xFF, (s32)this->unk_160 & 0xFF);
if (this->fireMode > 0) {
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x00, 0xFF, 0xFF, 0x00);
} else {
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0xA5, 0xFF, 0x4B, 0x00);
}
gDPPipeSync(gfxCtx->polyXlu.p++);
Matrix_RotateZ(((f32)thisx->shape.rot.z / 32768.0f) * M_PI, 1);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fhg_fire.c", 1801),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_06012160);
} else if ((thisx->params == 0x27) || (thisx->params == 0x28) || (thisx->params == 0x29)) {
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 0, 0, 0,
((u32)this->unk_188 & 0xFF)); // sic u32
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x5A, 0x32, 0x5F, (s32)(this->unk_188 * 0.5f));
gDPPipeSync(gfxCtx->polyXlu.p++);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fhg_fire.c", 1833),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(gfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (s16)this->unk_174, (s16)this->unk_178, 0x40, 0x40, 1,
(s16)this->unk_17C, (s16)this->unk_180, 0x40, 0x40));
gSPDisplayList(gfxCtx->polyXlu.p++, D_0600FAA0);
} else {
osSyncPrintf("FF DRAW 1\n");
Matrix_Translate(0.0f, -100.0f, 0.0f, 1);
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0, 0xFF, 0xFF, 0xFF, (s32)this->unk_160 & 0xFF);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0xFF, 0x1E, 0x00, 0xFF);
gDPPipeSync(gfxCtx->polyXlu.p++);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fhg_fire.c", 1892),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_060105E0);
osSyncPrintf("FF DRAW 2\n");
}
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_fhg_fire.c", 1900);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fhg_Fire/EnFhgFire_Draw.s")
#endif

View file

@ -6,9 +6,37 @@
struct EnFhgFire;
typedef void (*EnFhgFireActionFunc)(struct EnFhgFire*, GlobalContext *globalCtx);
typedef struct EnFhgFire {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xB8];
/* 0x014C */ EnFhgFireActionFunc actionFunc;
/* 0x0150 */ Vec3s unk_150; // rotation
/* 0x0156 */ s16 unk_156;
/* 0x0158 */ s16 fireMode;
/* 0x015a */ s16 unk_15A;
/* 0x015C */ s16 unk_15C;
/* 0x015E */ char unk_15E[0x02];
/* 0x0160 */ f32 unk_160;
/* 0x0164 */ char unk_164[0x08];
/* 0x016C */ f32 scale;
/* 0x0170 */ char unk_170[0x04];
/* 0x0174 */ f32 unk_174;
/* 0x0178 */ f32 unk_178;
/* 0x017C */ f32 unk_17C;
/* 0x0180 */ f32 unk_180;
/* 0x0184 */ f32 unk_184;
/* 0x0188 */ f32 unk_188;
/* 0x018C */ f32 unk_18C;
/* 0x0190 */ char unk_190[0x0C];
/* 0x019C */ z_Light* light;
/* 0x01A0 */ LightInfoPositional unk_1A0;
/* 0x01AE */ char padding_1AE[2];
/* 0x01B0 */ ColliderCylinder collider;
/* 0x01FC */ u8 unk_1FC;
/* 0x01FD */ char unk_1FD;
/* 0x01FE */ s16 unk_1FE;
/* 0x0200 */ f32 unk_200;
} EnFhgFire; // size = 0x0204
extern const ActorInit En_Fhg_Fire_InitVars;

View file

@ -1,3 +1,9 @@
/*
* File: z_en_fhg.c
* Overlay: ovl_En_fHG
* Description: Phantom Ganon's Horse
*/
#include "z_en_fhg.h"
#define FLAGS 0x00000010

View file

@ -8,7 +8,17 @@ struct EnfHG;
typedef struct EnfHG {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x148];
/* 0x014C */ char unk_14C[0x3];
/* 0x014F */ u8 unk_14F;
/* 0x0150 */ char unk_150[0x77];
/* 0x01C7 */ u8 unk_1C7;
/* 0x01C8 */ char unk_1C8;
/* 0x01C9 */ u8 flyMode;
/* 0x01CA */ u8 unk_1CA;
/* 0x01CB */ char unk_1CB[0x35];
/* 0x0200 */ Vec3f unk_200;
/* 0x020C */ Vec3f unk_20C;
/* 0x0218 */ char unk_218[0x7C];
} EnfHG; // size = 0x0294
extern const ActorInit En_Fhg_InitVars;

View file

@ -0,0 +1,17 @@
#ifndef _Z_EFF_SS_FHGFLASH_h_
#define _Z_EFF_SS_FHGFLASH_h_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3f velocity;
/* 0x18 */ Vec3f accel;
/* 0x24 */ s16 unk_24;
/* 0x26 */ u8 unk_26;
/* 0x28 */ Actor* unk_28;
/* 0x2C */ u8 unk_2C;
} EffectSsFhgFlashInitParams;
#endif

View file

@ -702,3 +702,9 @@ D_0600BAC8 = 0x0600BAC8;
// z_Bg_Spot16_Doughnut
D_06000660 = 0x06000660;
D_06000FC0 = 0x06000FC0;
// z_en_fhg_fire display lists
D_0600FAA0 = 0x0600FAA0;
D_0600FCF8 = 0x0600FCF8;
D_060105E0 = 0x060105E0;
D_06012160 = 0x06012160;