1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-17 20:41:28 +00:00

En_Fz Freezard (#519)

* En_Fr 47 of 48 func decomped

* En_Fz Frezzard 26/36 func decompiled

* En_Fz Freezard fully decomped

* revert EnFr to independently submit EnFz

* EnFz fully decompiled

* more cleanup

* pr feedback

* pr feedback

* petries review

* asm

* review

Co-authored-by: Fig02 <fig02srl@gmail.com>
This commit is contained in:
engineer124 2021-02-01 04:47:34 +11:00 committed by GitHub
parent c2b5ae3ed2
commit 9f3e8cbf97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 836 additions and 2226 deletions

View file

@ -1,24 +0,0 @@
glabel EnFz_Destroy
/* 0017C 80A1FF3C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00180 80A1FF40 AFA40018 */ sw $a0, 0x0018($sp)
/* 00184 80A1FF44 AFA5001C */ sw $a1, 0x001C($sp)
/* 00188 80A1FF48 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0018C 80A1FF4C 8FA50018 */ lw $a1, 0x0018($sp)
/* 00190 80A1FF50 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00194 80A1FF54 0C0170EB */ jal Collider_DestroyCylinder
/* 00198 80A1FF58 24A50150 */ addiu $a1, $a1, 0x0150 ## $a1 = 00000150
/* 0019C 80A1FF5C 8FA50018 */ lw $a1, 0x0018($sp)
/* 001A0 80A1FF60 8FA4001C */ lw $a0, 0x001C($sp)
/* 001A4 80A1FF64 0C0170EB */ jal Collider_DestroyCylinder
/* 001A8 80A1FF68 24A5019C */ addiu $a1, $a1, 0x019C ## $a1 = 0000019C
/* 001AC 80A1FF6C 8FA50018 */ lw $a1, 0x0018($sp)
/* 001B0 80A1FF70 8FA4001C */ lw $a0, 0x001C($sp)
/* 001B4 80A1FF74 0C0170EB */ jal Collider_DestroyCylinder
/* 001B8 80A1FF78 24A501E8 */ addiu $a1, $a1, 0x01E8 ## $a1 = 000001E8
/* 001BC 80A1FF7C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001C0 80A1FF80 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001C4 80A1FF84 03E00008 */ jr $ra
/* 001C8 80A1FF88 00000000 */ nop

View file

@ -1,149 +0,0 @@
.rdata
glabel D_80A21C60
.asciz "../z_en_fz.c"
.balign 4
glabel D_80A21C70
.asciz "../z_en_fz.c"
.balign 4
glabel D_80A21C80
.asciz "../z_en_fz.c"
.balign 4
.text
glabel EnFz_Draw
/* 0148C 80A2124C 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 01490 80A21250 AFBF003C */ sw $ra, 0x003C($sp)
/* 01494 80A21254 AFB10038 */ sw $s1, 0x0038($sp)
/* 01498 80A21258 AFB00034 */ sw $s0, 0x0034($sp)
/* 0149C 80A2125C AFA40080 */ sw $a0, 0x0080($sp)
/* 014A0 80A21260 908F00AF */ lbu $t7, 0x00AF($a0) ## 000000AF
/* 014A4 80A21264 24180006 */ addiu $t8, $zero, 0x0006 ## $t8 = 00000006
/* 014A8 80A21268 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 014AC 80A2126C 030FC823 */ subu $t9, $t8, $t7
/* 014B0 80A21270 00194843 */ sra $t1, $t9, 1
/* 014B4 80A21274 AFA90074 */ sw $t1, 0x0074($sp)
/* 014B8 80A21278 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 014BC 80A2127C 3C0680A2 */ lui $a2, %hi(D_80A21C60) ## $a2 = 80A20000
/* 014C0 80A21280 24C61C60 */ addiu $a2, $a2, %lo(D_80A21C60) ## $a2 = 80A21C60
/* 014C4 80A21284 27A40060 */ addiu $a0, $sp, 0x0060 ## $a0 = FFFFFFE0
/* 014C8 80A21288 2407048F */ addiu $a3, $zero, 0x048F ## $a3 = 0000048F
/* 014CC 80A2128C 0C031AB1 */ jal Graph_OpenDisps
/* 014D0 80A21290 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 014D4 80A21294 8FAA0080 */ lw $t2, 0x0080($sp)
/* 014D8 80A21298 240C0002 */ addiu $t4, $zero, 0x0002 ## $t4 = 00000002
/* 014DC 80A2129C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 014E0 80A212A0 914B00AF */ lbu $t3, 0x00AF($t2) ## 000000AF
/* 014E4 80A212A4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 014E8 80A212A8 55600003 */ bnel $t3, $zero, .L80A212B8
/* 014EC 80A212AC 8FAD0080 */ lw $t5, 0x0080($sp)
/* 014F0 80A212B0 AFAC0074 */ sw $t4, 0x0074($sp)
/* 014F4 80A212B4 8FAD0080 */ lw $t5, 0x0080($sp)
.L80A212B8:
/* 014F8 80A212B8 91AE0261 */ lbu $t6, 0x0261($t5) ## 00000261
/* 014FC 80A212BC 11C00059 */ beq $t6, $zero, .L80A21424
/* 01500 80A212C0 00000000 */ nop
/* 01504 80A212C4 0C00BB60 */ jal func_8002ED80
/* 01508 80A212C8 01A02025 */ or $a0, $t5, $zero ## $a0 = 00000000
/* 0150C 80A212CC 0C024F61 */ jal func_80093D84
/* 01510 80A212D0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 01514 80A212D4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01518 80A212D8 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 0151C 80A212DC 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 01520 80A212E0 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 01524 80A212E4 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 01528 80A212E8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 0152C 80A212EC 8E23009C */ lw $v1, 0x009C($s1) ## 0000009C
/* 01530 80A212F0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 01534 80A212F4 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 01538 80A212F8 00035840 */ sll $t3, $v1, 1
/* 0153C 80A212FC 316C007F */ andi $t4, $t3, 0x007F ## $t4 = 00000000
/* 01540 80A21300 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
/* 01544 80A21304 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 01548 80A21308 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
/* 0154C 80A2130C 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
/* 01550 80A21310 AFAD0028 */ sw $t5, 0x0028($sp)
/* 01554 80A21314 AFAE0024 */ sw $t6, 0x0024($sp)
/* 01558 80A21318 AFAA0018 */ sw $t2, 0x0018($sp)
/* 0155C 80A2131C AFA90014 */ sw $t1, 0x0014($sp)
/* 01560 80A21320 AFAC0020 */ sw $t4, 0x0020($sp)
/* 01564 80A21324 AFB90010 */ sw $t9, 0x0010($sp)
/* 01568 80A21328 AFA0001C */ sw $zero, 0x001C($sp)
/* 0156C 80A2132C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 01570 80A21330 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01574 80A21334 AFA2005C */ sw $v0, 0x005C($sp)
/* 01578 80A21338 0C0253D0 */ jal Gfx_TwoTexScroll
/* 0157C 80A2133C 3067007F */ andi $a3, $v1, 0x007F ## $a3 = 00000000
/* 01580 80A21340 8FA8005C */ lw $t0, 0x005C($sp)
/* 01584 80A21344 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 01588 80A21348 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 0158C 80A2134C AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 01590 80A21350 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01594 80A21354 3C0580A2 */ lui $a1, %hi(D_80A21C70) ## $a1 = 80A20000
/* 01598 80A21358 24A51C70 */ addiu $a1, $a1, %lo(D_80A21C70) ## $a1 = 80A21C70
/* 0159C 80A2135C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 015A0 80A21360 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 015A4 80A21364 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 015A8 80A21368 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 015AC 80A2136C 2406049F */ addiu $a2, $zero, 0x049F ## $a2 = 0000049F
/* 015B0 80A21370 0C0346A2 */ jal Matrix_NewMtx
/* 015B4 80A21374 AFA20058 */ sw $v0, 0x0058($sp)
/* 015B8 80A21378 8FA30058 */ lw $v1, 0x0058($sp)
/* 015BC 80A2137C 3C09FC27 */ lui $t1, 0xFC27 ## $t1 = FC270000
/* 015C0 80A21380 3C0A3514 */ lui $t2, 0x3514 ## $t2 = 35140000
/* 015C4 80A21384 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 015C8 80A21388 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 015CC 80A2138C 354A937F */ ori $t2, $t2, 0x937F ## $t2 = 3514937F
/* 015D0 80A21390 35292660 */ ori $t1, $t1, 0x2660 ## $t1 = FC272660
/* 015D4 80A21394 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 015D8 80A21398 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 015DC 80A2139C AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 015E0 80A213A0 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 015E4 80A213A4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 015E8 80A213A8 3C0CFA00 */ lui $t4, 0xFA00 ## $t4 = FA000000
/* 015EC 80A213AC 3C0E9BFF */ lui $t6, 0x9BFF ## $t6 = 9BFF0000
/* 015F0 80A213B0 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 015F4 80A213B4 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 015F8 80A213B8 35CEFFFF */ ori $t6, $t6, 0xFFFF ## $t6 = 9BFFFFFF
/* 015FC 80A213BC 358C0080 */ ori $t4, $t4, 0x0080 ## $t4 = FA000080
/* 01600 80A213C0 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 01604 80A213C4 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 01608 80A213C8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0160C 80A213CC 3C18FB00 */ lui $t8, 0xFB00 ## $t8 = FB000000
/* 01610 80A213D0 3C01C8C8 */ lui $at, 0xC8C8 ## $at = C8C80000
/* 01614 80A213D4 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 01618 80A213D8 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 0161C 80A213DC AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 01620 80A213E0 8FAF0080 */ lw $t7, 0x0080($sp)
/* 01624 80A213E4 3421C800 */ ori $at, $at, 0xC800 ## $at = C8C8C800
/* 01628 80A213E8 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 0162C 80A213EC 8DF90258 */ lw $t9, 0x0258($t7) ## 00000258
/* 01630 80A213F0 3C1880A2 */ lui $t8, %hi(D_80A21C50) ## $t8 = 80A20000
/* 01634 80A213F4 332900FF */ andi $t1, $t9, 0x00FF ## $t1 = 00000008
/* 01638 80A213F8 01215025 */ or $t2, $t1, $at ## $t2 = C8C8C808
/* 0163C 80A213FC AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 01640 80A21400 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01644 80A21404 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 01648 80A21408 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 0164C 80A2140C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 01650 80A21410 8FAE0074 */ lw $t6, 0x0074($sp)
/* 01654 80A21414 000E6880 */ sll $t5, $t6, 2
/* 01658 80A21418 030DC021 */ addu $t8, $t8, $t5
/* 0165C 80A2141C 8F181C50 */ lw $t8, %lo(D_80A21C50)($t8)
/* 01660 80A21420 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
.L80A21424:
/* 01664 80A21424 3C0680A2 */ lui $a2, %hi(D_80A21C80) ## $a2 = 80A20000
/* 01668 80A21428 24C61C80 */ addiu $a2, $a2, %lo(D_80A21C80) ## $a2 = 80A21C80
/* 0166C 80A2142C 27A40060 */ addiu $a0, $sp, 0x0060 ## $a0 = FFFFFFE0
/* 01670 80A21430 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 01674 80A21434 0C031AD5 */ jal Graph_CloseDisps
/* 01678 80A21438 240704B0 */ addiu $a3, $zero, 0x04B0 ## $a3 = 000004B0
/* 0167C 80A2143C 8FA40080 */ lw $a0, 0x0080($sp)
/* 01680 80A21440 0C28862A */ jal func_80A218A8
/* 01684 80A21444 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 01688 80A21448 8FBF003C */ lw $ra, 0x003C($sp)
/* 0168C 80A2144C 8FB00034 */ lw $s0, 0x0034($sp)
/* 01690 80A21450 8FB10038 */ lw $s1, 0x0038($sp)
/* 01694 80A21454 03E00008 */ jr $ra
/* 01698 80A21458 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000

View file

@ -1,103 +0,0 @@
glabel EnFz_Init
/* 00000 80A1FDC0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00004 80A1FDC4 AFB10018 */ sw $s1, 0x0018($sp)
/* 00008 80A1FDC8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0000C 80A1FDCC AFBF001C */ sw $ra, 0x001C($sp)
/* 00010 80A1FDD0 AFB00014 */ sw $s0, 0x0014($sp)
/* 00014 80A1FDD4 3C0580A2 */ lui $a1, %hi(D_80A21C34) ## $a1 = 80A20000
/* 00018 80A1FDD8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 80A1FDDC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 80A1FDE0 24A51C34 */ addiu $a1, $a1, %lo(D_80A21C34) ## $a1 = 80A21C34
/* 00024 80A1FDE4 3C0E80A2 */ lui $t6, %hi(D_80A21C14) ## $t6 = 80A20000
/* 00028 80A1FDE8 25CE1C14 */ addiu $t6, $t6, %lo(D_80A21C14) ## $t6 = 80A21C14
/* 0002C 80A1FDEC 240F0006 */ addiu $t7, $zero, 0x0006 ## $t7 = 00000006
/* 00030 80A1FDF0 AE0E0098 */ sw $t6, 0x0098($s0) ## 00000098
/* 00034 80A1FDF4 A20F00AF */ sb $t7, 0x00AF($s0) ## 000000AF
/* 00038 80A1FDF8 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150
/* 0003C 80A1FDFC AFA50020 */ sw $a1, 0x0020($sp)
/* 00040 80A1FE00 0C0170D9 */ jal Collider_InitCylinder
/* 00044 80A1FE04 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00048 80A1FE08 3C0780A2 */ lui $a3, %hi(D_80A21B90) ## $a3 = 80A20000
/* 0004C 80A1FE0C 8FA50020 */ lw $a1, 0x0020($sp)
/* 00050 80A1FE10 24E71B90 */ addiu $a3, $a3, %lo(D_80A21B90) ## $a3 = 80A21B90
/* 00054 80A1FE14 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00058 80A1FE18 0C017114 */ jal Collider_SetCylinderType1
/* 0005C 80A1FE1C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00060 80A1FE20 2605019C */ addiu $a1, $s0, 0x019C ## $a1 = 0000019C
/* 00064 80A1FE24 AFA50020 */ sw $a1, 0x0020($sp)
/* 00068 80A1FE28 0C0170D9 */ jal Collider_InitCylinder
/* 0006C 80A1FE2C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00070 80A1FE30 3C0780A2 */ lui $a3, %hi(D_80A21BBC) ## $a3 = 80A20000
/* 00074 80A1FE34 8FA50020 */ lw $a1, 0x0020($sp)
/* 00078 80A1FE38 24E71BBC */ addiu $a3, $a3, %lo(D_80A21BBC) ## $a3 = 80A21BBC
/* 0007C 80A1FE3C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00080 80A1FE40 0C017114 */ jal Collider_SetCylinderType1
/* 00084 80A1FE44 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00088 80A1FE48 260501E8 */ addiu $a1, $s0, 0x01E8 ## $a1 = 000001E8
/* 0008C 80A1FE4C AFA50020 */ sw $a1, 0x0020($sp)
/* 00090 80A1FE50 0C0170D9 */ jal Collider_InitCylinder
/* 00094 80A1FE54 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00098 80A1FE58 3C0780A2 */ lui $a3, %hi(D_80A21BE8) ## $a3 = 80A20000
/* 0009C 80A1FE5C 8FA50020 */ lw $a1, 0x0020($sp)
/* 000A0 80A1FE60 24E71BE8 */ addiu $a3, $a3, %lo(D_80A21BE8) ## $a3 = 80A21BE8
/* 000A4 80A1FE64 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000A8 80A1FE68 0C017114 */ jal Collider_SetCylinderType1
/* 000AC 80A1FE6C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000B0 80A1FE70 3C053C03 */ lui $a1, 0x3C03 ## $a1 = 3C030000
/* 000B4 80A1FE74 34A5126F */ ori $a1, $a1, 0x126F ## $a1 = 3C03126F
/* 000B8 80A1FE78 0C00B58B */ jal Actor_SetScale
/* 000BC 80A1FE7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000C0 80A1FE80 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 000C4 80A1FE84 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 000C8 80A1FE88 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 000CC 80A1FE8C 0301C824 */ and $t9, $t8, $at
/* 000D0 80A1FE90 C6000028 */ lwc1 $f0, 0x0028($s0) ## 00000028
/* 000D4 80A1FE94 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 000D8 80A1FE98 3C014307 */ lui $at, 0x4307 ## $at = 43070000
/* 000DC 80A1FE9C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 000E0 80A1FEA0 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 000E4 80A1FEA4 44814000 */ mtc1 $at, $f8 ## $f8 = 135.00
/* 000E8 80A1FEA8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 000EC 80A1FEAC 240300FF */ addiu $v1, $zero, 0x00FF ## $v1 = 000000FF
/* 000F0 80A1FEB0 A20300AE */ sb $v1, 0x00AE($s0) ## 000000AE
/* 000F4 80A1FEB4 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 000F8 80A1FEB8 A6000242 */ sh $zero, 0x0242($s0) ## 00000242
/* 000FC 80A1FEBC A2000249 */ sb $zero, 0x0249($s0) ## 00000249
/* 00100 80A1FEC0 A2020246 */ sb $v0, 0x0246($s0) ## 00000246
/* 00104 80A1FEC4 A2000247 */ sb $zero, 0x0247($s0) ## 00000247
/* 00108 80A1FEC8 A2000248 */ sb $zero, 0x0248($s0) ## 00000248
/* 0010C 80A1FECC A2020261 */ sb $v0, 0x0261($s0) ## 00000261
/* 00110 80A1FED0 A2000262 */ sb $zero, 0x0262($s0) ## 00000262
/* 00114 80A1FED4 E6020068 */ swc1 $f2, 0x0068($s0) ## 00000068
/* 00118 80A1FED8 E602006C */ swc1 $f2, 0x006C($s0) ## 0000006C
/* 0011C 80A1FEDC E6020060 */ swc1 $f2, 0x0060($s0) ## 00000060
/* 00120 80A1FEE0 E6000238 */ swc1 $f0, 0x0238($s0) ## 00000238
/* 00124 80A1FEE4 E600024C */ swc1 $f0, 0x024C($s0) ## 0000024C
/* 00128 80A1FEE8 E6040234 */ swc1 $f4, 0x0234($s0) ## 00000234
/* 0012C 80A1FEEC E606023C */ swc1 $f6, 0x023C($s0) ## 0000023C
/* 00130 80A1FEF0 05010007 */ bgez $t0, .L80A1FF10
/* 00134 80A1FEF4 E6080250 */ swc1 $f8, 0x0250($s0) ## 00000250
/* 00138 80A1FEF8 AE000258 */ sw $zero, 0x0258($s0) ## 00000258
/* 0013C 80A1FEFC E6020054 */ swc1 $f2, 0x0054($s0) ## 00000054
/* 00140 80A1FF00 0C2881FD */ jal func_80A207F4
/* 00144 80A1FF04 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00148 80A1FF08 10000005 */ beq $zero, $zero, .L80A1FF20
/* 0014C 80A1FF0C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A1FF10:
/* 00150 80A1FF10 AE030258 */ sw $v1, 0x0258($s0) ## 00000258
/* 00154 80A1FF14 0C2883A1 */ jal func_80A20E84
/* 00158 80A1FF18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0015C 80A1FF1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A1FF20:
/* 00160 80A1FF20 0C287FE3 */ jal func_80A1FF8C
/* 00164 80A1FF24 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00168 80A1FF28 8FBF001C */ lw $ra, 0x001C($sp)
/* 0016C 80A1FF2C 8FB00014 */ lw $s0, 0x0014($sp)
/* 00170 80A1FF30 8FB10018 */ lw $s1, 0x0018($sp)
/* 00174 80A1FF34 03E00008 */ jr $ra
/* 00178 80A1FF38 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000

View file

@ -1,115 +0,0 @@
glabel EnFz_Update
/* 012FC 80A210BC 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 01300 80A210C0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 01304 80A210C4 AFB10020 */ sw $s1, 0x0020($sp)
/* 01308 80A210C8 AFB0001C */ sw $s0, 0x001C($sp)
/* 0130C 80A210CC 848E0240 */ lh $t6, 0x0240($a0) ## 00000240
/* 01310 80A210D0 84820242 */ lh $v0, 0x0242($a0) ## 00000242
/* 01314 80A210D4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 01318 80A210D8 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 0131C 80A210DC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 01320 80A210E0 10400003 */ beq $v0, $zero, .L80A210F0
/* 01324 80A210E4 A48F0240 */ sh $t7, 0x0240($a0) ## 00000240
/* 01328 80A210E8 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 0132C 80A210EC A4980242 */ sh $t8, 0x0242($a0) ## 00000242
.L80A210F0:
/* 01330 80A210F0 86020244 */ lh $v0, 0x0244($s0) ## 00000244
/* 01334 80A210F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01338 80A210F8 10400002 */ beq $v0, $zero, .L80A21104
/* 0133C 80A210FC 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 01340 80A21100 A6190244 */ sh $t9, 0x0244($s0) ## 00000244
.L80A21104:
/* 01344 80A21104 92020263 */ lbu $v0, 0x0263($s0) ## 00000263
/* 01348 80A21108 10400002 */ beq $v0, $zero, .L80A21114
/* 0134C 80A2110C 2448FFFF */ addiu $t0, $v0, 0xFFFF ## $t0 = FFFFFFFF
/* 01350 80A21110 A2080263 */ sb $t0, 0x0263($s0) ## 00000263
.L80A21114:
/* 01354 80A21114 0C00B56E */ jal Actor_SetFocus
/* 01358 80A21118 3C054248 */ lui $a1, 0x4248 ## $a1 = 42480000
/* 0135C 80A2111C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01360 80A21120 0C288128 */ jal func_80A204A0
/* 01364 80A21124 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 01368 80A21128 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 0136C 80A2112C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01370 80A21130 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 01374 80A21134 0320F809 */ jalr $ra, $t9
/* 01378 80A21138 00000000 */ nop
/* 0137C 80A2113C 92090262 */ lbu $t1, 0x0262($s0) ## 00000262
/* 01380 80A21140 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01384 80A21144 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150
/* 01388 80A21148 5520001E */ bnel $t1, $zero, .L80A211C4
/* 0138C 80A2114C 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
/* 01390 80A21150 0C0189B7 */ jal Collider_UpdateCylinder
/* 01394 80A21154 AFA50030 */ sw $a1, 0x0030($sp)
/* 01398 80A21158 2605019C */ addiu $a1, $s0, 0x019C ## $a1 = 0000019C
/* 0139C 80A2115C AFA5002C */ sw $a1, 0x002C($sp)
/* 013A0 80A21160 0C0189B7 */ jal Collider_UpdateCylinder
/* 013A4 80A21164 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 013A8 80A21168 920A0248 */ lbu $t2, 0x0248($s0) ## 00000248
/* 013AC 80A2116C 51400015 */ beql $t2, $zero, .L80A211C4
/* 013B0 80A21170 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
/* 013B4 80A21174 920B0114 */ lbu $t3, 0x0114($s0) ## 00000114
/* 013B8 80A21178 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 013BC 80A2117C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 013C0 80A21180 15600009 */ bne $t3, $zero, .L80A211A8
/* 013C4 80A21184 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 013C8 80A21188 02212821 */ addu $a1, $s1, $at
/* 013CC 80A2118C AFA50034 */ sw $a1, 0x0034($sp)
/* 013D0 80A21190 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 013D4 80A21194 8FA60030 */ lw $a2, 0x0030($sp)
/* 013D8 80A21198 8FA50034 */ lw $a1, 0x0034($sp)
/* 013DC 80A2119C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 013E0 80A211A0 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 013E4 80A211A4 8FA6002C */ lw $a2, 0x002C($sp)
.L80A211A8:
/* 013E8 80A211A8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 013EC 80A211AC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 013F0 80A211B0 02212821 */ addu $a1, $s1, $at
/* 013F4 80A211B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 013F8 80A211B8 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOC
/* 013FC 80A211BC 8FA60030 */ lw $a2, 0x0030($sp)
/* 01400 80A211C0 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
.L80A211C4:
/* 01404 80A211C4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3E4CCCCD
/* 01408 80A211C8 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 0140C 80A211CC 0C01DE80 */ jal Math_StepToF
/* 01410 80A211D0 8E050254 */ lw $a1, 0x0254($s0) ## 00000254
/* 01414 80A211D4 0C00B638 */ jal Actor_MoveForward
/* 01418 80A211D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0141C 80A211DC 920C0246 */ lbu $t4, 0x0246($s0) ## 00000246
/* 01420 80A211E0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 01424 80A211E4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01428 80A211E8 11800008 */ beq $t4, $zero, .L80A2120C
/* 0142C 80A211EC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 01430 80A211F0 44810000 */ mtc1 $at, $f0 ## $f0 = 20.00
/* 01434 80A211F4 240D0005 */ addiu $t5, $zero, 0x0005 ## $t5 = 00000005
/* 01438 80A211F8 AFAD0014 */ sw $t5, 0x0014($sp)
/* 0143C 80A211FC 44060000 */ mfc1 $a2, $f0
/* 01440 80A21200 44070000 */ mfc1 $a3, $f0
/* 01444 80A21204 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 01448 80A21208 E7A00010 */ swc1 $f0, 0x0010($sp)
.L80A2120C:
/* 0144C 80A2120C 920E0260 */ lbu $t6, 0x0260($s0) ## 00000260
/* 01450 80A21210 3C1980A2 */ lui $t9, %hi(jtbl_80A21C40) ## $t9 = 80A20000
/* 01454 80A21214 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01458 80A21218 000E7880 */ sll $t7, $t6, 2
/* 0145C 80A2121C 032FC821 */ addu $t9, $t9, $t7
/* 01460 80A21220 8F391C40 */ lw $t9, %lo(jtbl_80A21C40)($t9)
/* 01464 80A21224 0320F809 */ jalr $ra, $t9
/* 01468 80A21228 00000000 */ nop
/* 0146C 80A2122C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01470 80A21230 0C28856F */ jal func_80A215BC
/* 01474 80A21234 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 01478 80A21238 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0147C 80A2123C 8FB0001C */ lw $s0, 0x001C($sp)
/* 01480 80A21240 8FB10020 */ lw $s1, 0x0020($sp)
/* 01484 80A21244 03E00008 */ jr $ra
/* 01488 80A21248 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,76 +0,0 @@
glabel func_80A1FF8C
/* 001CC 80A1FF8C 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 001D0 80A1FF90 AFBF0034 */ sw $ra, 0x0034($sp)
/* 001D4 80A1FF94 AFB00030 */ sw $s0, 0x0030($sp)
/* 001D8 80A1FF98 AFA5006C */ sw $a1, 0x006C($sp)
/* 001DC 80A1FF9C C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
/* 001E0 80A1FFA0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 001E4 80A1FFA4 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 001E8 80A1FFA8 E7A4005C */ swc1 $f4, 0x005C($sp)
/* 001EC 80A1FFAC C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
/* 001F0 80A1FFB0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001F4 80A1FFB4 C7AC005C */ lwc1 $f12, 0x005C($sp)
/* 001F8 80A1FFB8 46083280 */ add.s $f10, $f6, $f8
/* 001FC 80A1FFBC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00200 80A1FFC0 E7AA0060 */ swc1 $f10, 0x0060($sp)
/* 00204 80A1FFC4 C490002C */ lwc1 $f16, 0x002C($a0) ## 0000002C
/* 00208 80A1FFC8 C7AE0060 */ lwc1 $f14, 0x0060($sp)
/* 0020C 80A1FFCC E7B00064 */ swc1 $f16, 0x0064($sp)
/* 00210 80A1FFD0 0C034261 */ jal Matrix_Translate
/* 00214 80A1FFD4 8FA60064 */ lw $a2, 0x0064($sp)
/* 00218 80A1FFD8 860400B4 */ lh $a0, 0x00B4($s0) ## 000000B4
/* 0021C 80A1FFDC 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 00220 80A1FFE0 860600B8 */ lh $a2, 0x00B8($s0) ## 000000B8
/* 00224 80A1FFE4 0C034421 */ jal Matrix_RotateRPY
/* 00228 80A1FFE8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0022C 80A1FFEC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00230 80A1FFF0 3C01435C */ lui $at, 0x435C ## $at = 435C0000
/* 00234 80A1FFF4 44819000 */ mtc1 $at, $f18 ## $f18 = 220.00
/* 00238 80A1FFF8 26050264 */ addiu $a1, $s0, 0x0264 ## $a1 = 00000264
/* 0023C 80A1FFFC AFA50038 */ sw $a1, 0x0038($sp)
/* 00240 80A20000 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFDC
/* 00244 80A20004 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 00248 80A20008 E7A00044 */ swc1 $f0, 0x0044($sp)
/* 0024C 80A2000C 0C0346BD */ jal Matrix_MultVec3f
/* 00250 80A20010 E7B2004C */ swc1 $f18, 0x004C($sp)
/* 00254 80A20014 8FA4006C */ lw $a0, 0x006C($sp)
/* 00258 80A20018 27AE003C */ addiu $t6, $sp, 0x003C ## $t6 = FFFFFFD4
/* 0025C 80A2001C 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00260 80A20020 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00264 80A20024 27B90040 */ addiu $t9, $sp, 0x0040 ## $t9 = FFFFFFD8
/* 00268 80A20028 AFB90024 */ sw $t9, 0x0024($sp)
/* 0026C 80A2002C AFB80020 */ sw $t8, 0x0020($sp)
/* 00270 80A20030 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00274 80A20034 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00278 80A20038 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFF4
/* 0027C 80A2003C 8FA60038 */ lw $a2, 0x0038($sp)
/* 00280 80A20040 27A70050 */ addiu $a3, $sp, 0x0050 ## $a3 = FFFFFFE8
/* 00284 80A20044 AFA00018 */ sw $zero, 0x0018($sp)
/* 00288 80A20048 AFA0001C */ sw $zero, 0x001C($sp)
/* 0028C 80A2004C 0C00F7A1 */ jal BgCheck_EntityLineTest1
/* 00290 80A20050 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 00294 80A20054 10400003 */ beq $v0, $zero, .L80A20064
/* 00298 80A20058 8FA40038 */ lw $a0, 0x0038($sp)
/* 0029C 80A2005C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 002A0 80A20060 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFE8
.L80A20064:
/* 002A4 80A20064 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 002A8 80A20068 C6060264 */ lwc1 $f6, 0x0264($s0) ## 00000264
/* 002AC 80A2006C 46062201 */ sub.s $f8, $f4, $f6
/* 002B0 80A20070 E7A8005C */ swc1 $f8, 0x005C($sp)
/* 002B4 80A20074 C610026C */ lwc1 $f16, 0x026C($s0) ## 0000026C
/* 002B8 80A20078 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 002BC 80A2007C C7A4005C */ lwc1 $f4, 0x005C($sp)
/* 002C0 80A20080 46105481 */ sub.s $f18, $f10, $f16
/* 002C4 80A20084 46042182 */ mul.s $f6, $f4, $f4
/* 002C8 80A20088 E7B20064 */ swc1 $f18, 0x0064($sp)
/* 002CC 80A2008C C7A80064 */ lwc1 $f8, 0x0064($sp)
/* 002D0 80A20090 46084282 */ mul.s $f10, $f8, $f8
/* 002D4 80A20094 460A3400 */ add.s $f16, $f6, $f10
/* 002D8 80A20098 E6100270 */ swc1 $f16, 0x0270($s0) ## 00000270
/* 002DC 80A2009C 8FBF0034 */ lw $ra, 0x0034($sp)
/* 002E0 80A200A0 8FB00030 */ lw $s0, 0x0030($sp)
/* 002E4 80A200A4 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 002E8 80A200A8 03E00008 */ jr $ra
/* 002EC 80A200AC 00000000 */ nop

View file

@ -1,22 +0,0 @@
glabel func_80A200B0
/* 002F0 80A200B0 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
/* 002F4 80A200B4 C4A60000 */ lwc1 $f6, 0x0000($a1) ## 00000000
/* 002F8 80A200B8 C488002C */ lwc1 $f8, 0x002C($a0) ## 0000002C
/* 002FC 80A200BC C4AA0008 */ lwc1 $f10, 0x0008($a1) ## 00000008
/* 00300 80A200C0 46062001 */ sub.s $f0, $f4, $f6
/* 00304 80A200C4 C4860270 */ lwc1 $f6, 0x0270($a0) ## 00000270
/* 00308 80A200C8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 0030C 80A200CC 460A4081 */ sub.s $f2, $f8, $f10
/* 00310 80A200D0 46000402 */ mul.s $f16, $f0, $f0
/* 00314 80A200D4 00000000 */ nop
/* 00318 80A200D8 46021482 */ mul.s $f18, $f2, $f2
/* 0031C 80A200DC 46128100 */ add.s $f4, $f16, $f18
/* 00320 80A200E0 4604303E */ c.le.s $f6, $f4
/* 00324 80A200E4 00000000 */ nop
/* 00328 80A200E8 45000003 */ bc1f .L80A200F8
/* 0032C 80A200EC 00000000 */ nop
/* 00330 80A200F0 03E00008 */ jr $ra
/* 00334 80A200F4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80A200F8:
/* 00338 80A200F8 03E00008 */ jr $ra
/* 0033C 80A200FC 00000000 */ nop

View file

@ -1,147 +0,0 @@
.late_rodata
glabel D_80A21CC0
.float 0.6
glabel D_80A21CC4
.float 0.3
.text
glabel func_80A20100
/* 00340 80A20100 27BDFF48 */ addiu $sp, $sp, 0xFF48 ## $sp = FFFFFF48
/* 00344 80A20104 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00348 80A20108 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 0034C 80A2010C 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 00350 80A20110 AFB30064 */ sw $s3, 0x0064($sp)
/* 00354 80A20114 AFB20060 */ sw $s2, 0x0060($sp)
/* 00358 80A20118 AFB00058 */ sw $s0, 0x0058($sp)
/* 0035C 80A2011C 240E009B */ addiu $t6, $zero, 0x009B ## $t6 = 0000009B
/* 00360 80A20120 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 00364 80A20124 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 00368 80A20128 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
/* 0036C 80A2012C 240800C8 */ addiu $t0, $zero, 0x00C8 ## $t0 = 000000C8
/* 00370 80A20130 240900C8 */ addiu $t1, $zero, 0x00C8 ## $t1 = 000000C8
/* 00374 80A20134 240A00C8 */ addiu $t2, $zero, 0x00C8 ## $t2 = 000000C8
/* 00378 80A20138 00C09025 */ or $s2, $a2, $zero ## $s2 = 00000000
/* 0037C 80A2013C 00E09825 */ or $s3, $a3, $zero ## $s3 = 00000000
/* 00380 80A20140 AFBF007C */ sw $ra, 0x007C($sp)
/* 00384 80A20144 AFBE0078 */ sw $s8, 0x0078($sp)
/* 00388 80A20148 AFB70074 */ sw $s7, 0x0074($sp)
/* 0038C 80A2014C AFB60070 */ sw $s6, 0x0070($sp)
/* 00390 80A20150 AFB5006C */ sw $s5, 0x006C($sp)
/* 00394 80A20154 AFB40068 */ sw $s4, 0x0068($sp)
/* 00398 80A20158 AFB1005C */ sw $s1, 0x005C($sp)
/* 0039C 80A2015C F7BE0050 */ sdc1 $f30, 0x0050($sp)
/* 003A0 80A20160 F7BC0048 */ sdc1 $f28, 0x0048($sp)
/* 003A4 80A20164 F7BA0040 */ sdc1 $f26, 0x0040($sp)
/* 003A8 80A20168 F7B80038 */ sdc1 $f24, 0x0038($sp)
/* 003AC 80A2016C F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 003B0 80A20170 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 003B4 80A20174 AFA400B8 */ sw $a0, 0x00B8($sp)
/* 003B8 80A20178 AFA500BC */ sw $a1, 0x00BC($sp)
/* 003BC 80A2017C A3AE008C */ sb $t6, 0x008C($sp)
/* 003C0 80A20180 A3AF008D */ sb $t7, 0x008D($sp)
/* 003C4 80A20184 A3B8008E */ sb $t8, 0x008E($sp)
/* 003C8 80A20188 A3B9008F */ sb $t9, 0x008F($sp)
/* 003CC 80A2018C A3A80088 */ sb $t0, 0x0088($sp)
/* 003D0 80A20190 A3A90089 */ sb $t1, 0x0089($sp)
/* 003D4 80A20194 A3AA008A */ sb $t2, 0x008A($sp)
/* 003D8 80A20198 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 003DC 80A2019C E7A00098 */ swc1 $f0, 0x0098($sp)
/* 003E0 80A201A0 E7A00090 */ swc1 $f0, 0x0090($sp)
/* 003E4 80A201A4 18E0003E */ blez $a3, .L80A202A0
/* 003E8 80A201A8 E7A40094 */ swc1 $f4, 0x0094($sp)
/* 003EC 80A201AC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 003F0 80A201B0 4481F000 */ mtc1 $at, $f30 ## $f30 = 5.00
/* 003F4 80A201B4 3C0180A2 */ lui $at, %hi(D_80A21CC0) ## $at = 80A20000
/* 003F8 80A201B8 C43C1CC0 */ lwc1 $f28, %lo(D_80A21CC0)($at)
/* 003FC 80A201BC 3C0180A2 */ lui $at, %hi(D_80A21CC4) ## $at = 80A20000
/* 00400 80A201C0 C43A1CC4 */ lwc1 $f26, %lo(D_80A21CC4)($at)
/* 00404 80A201C4 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00408 80A201C8 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 0040C 80A201CC C7B400C8 */ lwc1 $f20, 0x00C8($sp)
/* 00410 80A201D0 27BE0088 */ addiu $s8, $sp, 0x0088 ## $s8 = FFFFFFD0
/* 00414 80A201D4 27B7008C */ addiu $s7, $sp, 0x008C ## $s7 = FFFFFFD4
/* 00418 80A201D8 27B60090 */ addiu $s6, $sp, 0x0090 ## $s6 = FFFFFFD8
/* 0041C 80A201DC 27B5009C */ addiu $s5, $sp, 0x009C ## $s5 = FFFFFFE4
/* 00420 80A201E0 27B400A8 */ addiu $s4, $sp, 0x00A8 ## $s4 = FFFFFFF0
.L80A201E4:
/* 00424 80A201E4 0C00CFC8 */ jal Rand_CenteredFloat
/* 00428 80A201E8 4600D306 */ mov.s $f12, $f26
/* 0042C 80A201EC 461C0600 */ add.s $f24, $f0, $f28
/* 00430 80A201F0 0C00CFC8 */ jal Rand_CenteredFloat
/* 00434 80A201F4 4600F306 */ mov.s $f12, $f30
/* 00438 80A201F8 4600018D */ trunc.w.s $f6, $f0
/* 0043C 80A201FC 4600A306 */ mov.s $f12, $f20
/* 00440 80A20200 44113000 */ mfc1 $s1, $f6
/* 00444 80A20204 0C00CFC8 */ jal Rand_CenteredFloat
/* 00448 80A20208 2631000C */ addiu $s1, $s1, 0x000C ## $s1 = 0000000C
/* 0044C 80A2020C C6480000 */ lwc1 $f8, 0x0000($s2) ## 00000000
/* 00450 80A20210 4600A306 */ mov.s $f12, $f20
/* 00454 80A20214 46080280 */ add.s $f10, $f0, $f8
/* 00458 80A20218 0C00CFBE */ jal Rand_ZeroFloat
/* 0045C 80A2021C E7AA00A8 */ swc1 $f10, 0x00A8($sp)
/* 00460 80A20220 C6500004 */ lwc1 $f16, 0x0004($s2) ## 00000004
/* 00464 80A20224 4600A306 */ mov.s $f12, $f20
/* 00468 80A20228 46100480 */ add.s $f18, $f0, $f16
/* 0046C 80A2022C 0C00CFC8 */ jal Rand_CenteredFloat
/* 00470 80A20230 E7B200AC */ swc1 $f18, 0x00AC($sp)
/* 00474 80A20234 C6440008 */ lwc1 $f4, 0x0008($s2) ## 00000008
/* 00478 80A20238 4600B306 */ mov.s $f12, $f22
/* 0047C 80A2023C 46040180 */ add.s $f6, $f0, $f4
/* 00480 80A20240 0C00CFC8 */ jal Rand_CenteredFloat
/* 00484 80A20244 E7A600B0 */ swc1 $f6, 0x00B0($sp)
/* 00488 80A20248 E7A0009C */ swc1 $f0, 0x009C($sp)
/* 0048C 80A2024C 0C00CFBE */ jal Rand_ZeroFloat
/* 00490 80A20250 4600B306 */ mov.s $f12, $f22
/* 00494 80A20254 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00498 80A20258 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
/* 0049C 80A2025C 4600B306 */ mov.s $f12, $f22
/* 004A0 80A20260 46080280 */ add.s $f10, $f0, $f8
/* 004A4 80A20264 0C00CFC8 */ jal Rand_CenteredFloat
/* 004A8 80A20268 E7AA00A0 */ swc1 $f10, 0x00A0($sp)
/* 004AC 80A2026C 4406C000 */ mfc1 $a2, $f24
/* 004B0 80A20270 E7A000A4 */ swc1 $f0, 0x00A4($sp)
/* 004B4 80A20274 8FA400BC */ lw $a0, 0x00BC($sp)
/* 004B8 80A20278 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFF0
/* 004BC 80A2027C 02A03825 */ or $a3, $s5, $zero ## $a3 = FFFFFFE4
/* 004C0 80A20280 AFB60010 */ sw $s6, 0x0010($sp)
/* 004C4 80A20284 AFB70014 */ sw $s7, 0x0014($sp)
/* 004C8 80A20288 AFBE0018 */ sw $s8, 0x0018($sp)
/* 004CC 80A2028C 0C00A8A9 */ jal EffectSsEnIce_Spawn
/* 004D0 80A20290 AFB1001C */ sw $s1, 0x001C($sp)
/* 004D4 80A20294 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 004D8 80A20298 1613FFD2 */ bne $s0, $s3, .L80A201E4
/* 004DC 80A2029C 00000000 */ nop
.L80A202A0:
/* 004E0 80A202A0 8FA400BC */ lw $a0, 0x00BC($sp)
/* 004E4 80A202A4 0C018B35 */ jal CollisionCheck_SpawnShieldParticles
/* 004E8 80A202A8 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000
/* 004EC 80A202AC 8FBF007C */ lw $ra, 0x007C($sp)
/* 004F0 80A202B0 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 004F4 80A202B4 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 004F8 80A202B8 D7B80038 */ ldc1 $f24, 0x0038($sp)
/* 004FC 80A202BC D7BA0040 */ ldc1 $f26, 0x0040($sp)
/* 00500 80A202C0 D7BC0048 */ ldc1 $f28, 0x0048($sp)
/* 00504 80A202C4 D7BE0050 */ ldc1 $f30, 0x0050($sp)
/* 00508 80A202C8 8FB00058 */ lw $s0, 0x0058($sp)
/* 0050C 80A202CC 8FB1005C */ lw $s1, 0x005C($sp)
/* 00510 80A202D0 8FB20060 */ lw $s2, 0x0060($sp)
/* 00514 80A202D4 8FB30064 */ lw $s3, 0x0064($sp)
/* 00518 80A202D8 8FB40068 */ lw $s4, 0x0068($sp)
/* 0051C 80A202DC 8FB5006C */ lw $s5, 0x006C($sp)
/* 00520 80A202E0 8FB60070 */ lw $s6, 0x0070($sp)
/* 00524 80A202E4 8FB70074 */ lw $s7, 0x0074($sp)
/* 00528 80A202E8 8FBE0078 */ lw $s8, 0x0078($sp)
/* 0052C 80A202EC 03E00008 */ jr $ra
/* 00530 80A202F0 27BD00B8 */ addiu $sp, $sp, 0x00B8 ## $sp = 00000000
glabel L80A202F4
/* 00534 80A202F4 03E00008 */ jr $ra
/* 00538 80A202F8 AFA40000 */ sw $a0, 0x0000($sp)

View file

@ -1,67 +0,0 @@
.late_rodata
glabel D_80A21CC8
.float 0.1
.text
glabel func_80A202FC
/* 0053C 80A202FC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00540 80A20300 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00544 80A20304 AFB00020 */ sw $s0, 0x0020($sp)
/* 00548 80A20308 848E0240 */ lh $t6, 0x0240($a0) ## 00000240
/* 0054C 80A2030C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00550 80A20310 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00554 80A20314 31CF000F */ andi $t7, $t6, 0x000F ## $t7 = 00000000
/* 00558 80A20318 55E0002C */ bnel $t7, $zero, .L80A203CC
/* 0055C 80A2031C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00560 80A20320 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
/* 00564 80A20324 0C00CFC8 */ jal Rand_CenteredFloat
/* 00568 80A20328 00000000 */ nop
/* 0056C 80A2032C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00570 80A20330 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00574 80A20334 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
/* 00578 80A20338 46040180 */ add.s $f6, $f0, $f4
/* 0057C 80A2033C 0C00CFC8 */ jal Rand_CenteredFloat
/* 00580 80A20340 E7A60044 */ swc1 $f6, 0x0044($sp)
/* 00584 80A20344 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 00588 80A20348 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 0058C 80A2034C 44818000 */ mtc1 $at, $f16 ## $f16 = 30.00
/* 00590 80A20350 46080280 */ add.s $f10, $f0, $f8
/* 00594 80A20354 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00598 80A20358 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
/* 0059C 80A2035C 46105480 */ add.s $f18, $f10, $f16
/* 005A0 80A20360 0C00CFC8 */ jal Rand_CenteredFloat
/* 005A4 80A20364 E7B20048 */ swc1 $f18, 0x0048($sp)
/* 005A8 80A20368 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 005AC 80A2036C 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 005B0 80A20370 3C0180A2 */ lui $at, %hi(D_80A21CC8) ## $at = 80A20000
/* 005B4 80A20374 46040180 */ add.s $f6, $f0, $f4
/* 005B8 80A20378 C4281CC8 */ lwc1 $f8, %lo(D_80A21CC8)($at)
/* 005BC 80A2037C 3C0140F0 */ lui $at, 0x40F0 ## $at = 40F00000
/* 005C0 80A20380 44816000 */ mtc1 $at, $f12 ## $f12 = 7.50
/* 005C4 80A20384 E7A6004C */ swc1 $f6, 0x004C($sp)
/* 005C8 80A20388 E7A20034 */ swc1 $f2, 0x0034($sp)
/* 005CC 80A2038C E7A2002C */ swc1 $f2, 0x002C($sp)
/* 005D0 80A20390 E7A20040 */ swc1 $f2, 0x0040($sp)
/* 005D4 80A20394 E7A2003C */ swc1 $f2, 0x003C($sp)
/* 005D8 80A20398 E7A20038 */ swc1 $f2, 0x0038($sp)
/* 005DC 80A2039C 0C00CFBE */ jal Rand_ZeroFloat
/* 005E0 80A203A0 E7A80030 */ swc1 $f8, 0x0030($sp)
/* 005E4 80A203A4 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 005E8 80A203A8 44815000 */ mtc1 $at, $f10 ## $f10 = 15.00
/* 005EC 80A203AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005F0 80A203B0 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4
/* 005F4 80A203B4 460A0400 */ add.s $f16, $f0, $f10
/* 005F8 80A203B8 27A60038 */ addiu $a2, $sp, 0x0038 ## $a2 = FFFFFFE8
/* 005FC 80A203BC 27A7002C */ addiu $a3, $sp, 0x002C ## $a3 = FFFFFFDC
/* 00600 80A203C0 0C288517 */ jal func_80A2145C
/* 00604 80A203C4 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00608 80A203C8 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A203CC:
/* 0060C 80A203CC 8FB00020 */ lw $s0, 0x0020($sp)
/* 00610 80A203D0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00614 80A203D4 03E00008 */ jr $ra
/* 00618 80A203D8 00000000 */ nop

View file

@ -1,59 +0,0 @@
.late_rodata
glabel D_80A21CCC
.float 0.1
.text
glabel func_80A203DC
/* 0061C 80A203DC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00620 80A203E0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00624 80A203E4 AFB00020 */ sw $s0, 0x0020($sp)
/* 00628 80A203E8 848E0240 */ lh $t6, 0x0240($a0) ## 00000240
/* 0062C 80A203EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00630 80A203F0 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00634 80A203F4 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
/* 00638 80A203F8 55E00025 */ bnel $t7, $zero, .L80A20490
/* 0063C 80A203FC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00640 80A20400 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
/* 00644 80A20404 0C00CFC8 */ jal Rand_CenteredFloat
/* 00648 80A20408 00000000 */ nop
/* 0064C 80A2040C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00650 80A20410 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00654 80A20414 44816000 */ mtc1 $at, $f12 ## $f12 = 40.00
/* 00658 80A20418 46040180 */ add.s $f6, $f0, $f4
/* 0065C 80A2041C E7A60044 */ swc1 $f6, 0x0044($sp)
/* 00660 80A20420 C608024C */ lwc1 $f8, 0x024C($s0) ## 0000024C
/* 00664 80A20424 0C00CFC8 */ jal Rand_CenteredFloat
/* 00668 80A20428 E7A80048 */ swc1 $f8, 0x0048($sp)
/* 0066C 80A2042C C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 00670 80A20430 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 00674 80A20434 3C0180A2 */ lui $at, %hi(D_80A21CCC) ## $at = 80A20000
/* 00678 80A20438 460A0400 */ add.s $f16, $f0, $f10
/* 0067C 80A2043C C4321CCC */ lwc1 $f18, %lo(D_80A21CCC)($at)
/* 00680 80A20440 3C0140F0 */ lui $at, 0x40F0 ## $at = 40F00000
/* 00684 80A20444 44816000 */ mtc1 $at, $f12 ## $f12 = 7.50
/* 00688 80A20448 E7B0004C */ swc1 $f16, 0x004C($sp)
/* 0068C 80A2044C E7A20034 */ swc1 $f2, 0x0034($sp)
/* 00690 80A20450 E7A2002C */ swc1 $f2, 0x002C($sp)
/* 00694 80A20454 E7A20040 */ swc1 $f2, 0x0040($sp)
/* 00698 80A20458 E7A2003C */ swc1 $f2, 0x003C($sp)
/* 0069C 80A2045C E7A20038 */ swc1 $f2, 0x0038($sp)
/* 006A0 80A20460 0C00CFBE */ jal Rand_ZeroFloat
/* 006A4 80A20464 E7B20030 */ swc1 $f18, 0x0030($sp)
/* 006A8 80A20468 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 006AC 80A2046C 44812000 */ mtc1 $at, $f4 ## $f4 = 15.00
/* 006B0 80A20470 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006B4 80A20474 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4
/* 006B8 80A20478 46040180 */ add.s $f6, $f0, $f4
/* 006BC 80A2047C 27A60038 */ addiu $a2, $sp, 0x0038 ## $a2 = FFFFFFE8
/* 006C0 80A20480 27A7002C */ addiu $a3, $sp, 0x002C ## $a3 = FFFFFFDC
/* 006C4 80A20484 0C288517 */ jal func_80A2145C
/* 006C8 80A20488 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 006CC 80A2048C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A20490:
/* 006D0 80A20490 8FB00020 */ lw $s0, 0x0020($sp)
/* 006D4 80A20494 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 006D8 80A20498 03E00008 */ jr $ra
/* 006DC 80A2049C 00000000 */ nop

View file

@ -1,170 +0,0 @@
glabel func_80A204A0
/* 006E0 80A204A0 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 006E4 80A204A4 AFBF0024 */ sw $ra, 0x0024($sp)
/* 006E8 80A204A8 AFB00020 */ sw $s0, 0x0020($sp)
/* 006EC 80A204AC AFA50044 */ sw $a1, 0x0044($sp)
/* 006F0 80A204B0 908E0247 */ lbu $t6, 0x0247($a0) ## 00000247
/* 006F4 80A204B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 006F8 80A204B8 51C00012 */ beql $t6, $zero, .L80A20504
/* 006FC 80A204BC 92190248 */ lbu $t9, 0x0248($s0) ## 00000248
/* 00700 80A204C0 94820088 */ lhu $v0, 0x0088($a0) ## 00000088
/* 00704 80A204C4 3C064270 */ lui $a2, 0x4270 ## $a2 = 42700000
/* 00708 80A204C8 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 0070C 80A204CC 55E00007 */ bnel $t7, $zero, .L80A204EC
/* 00710 80A204D0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00714 80A204D4 0C00CE6E */ jal func_800339B8
/* 00718 80A204D8 86070032 */ lh $a3, 0x0032($s0) ## 00000032
/* 0071C 80A204DC 54400009 */ bnel $v0, $zero, .L80A20504
/* 00720 80A204E0 92190248 */ lbu $t9, 0x0248($s0) ## 00000248
/* 00724 80A204E4 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
/* 00728 80A204E8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L80A204EC:
/* 0072C 80A204EC 3058FFF7 */ andi $t8, $v0, 0xFFF7 ## $t8 = 00000000
/* 00730 80A204F0 A6180088 */ sh $t8, 0x0088($s0) ## 00000088
/* 00734 80A204F4 A2000247 */ sb $zero, 0x0247($s0) ## 00000247
/* 00738 80A204F8 E6000254 */ swc1 $f0, 0x0254($s0) ## 00000254
/* 0073C 80A204FC E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 00740 80A20500 92190248 */ lbu $t9, 0x0248($s0) ## 00000248
.L80A20504:
/* 00744 80A20504 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00748 80A20508 5320007A */ beql $t9, $zero, .L80A206F4
/* 0074C 80A2050C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00750 80A20510 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00754 80A20514 05030012 */ bgezl $t0, .L80A20560
/* 00758 80A20518 920201AD */ lbu $v0, 0x01AD($s0) ## 000001AD
/* 0075C 80A2051C 92090160 */ lbu $t1, 0x0160($s0) ## 00000160
/* 00760 80A20520 240D000A */ addiu $t5, $zero, 0x000A ## $t5 = 0000000A
/* 00764 80A20524 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00768 80A20528 312A0002 */ andi $t2, $t1, 0x0002 ## $t2 = 00000000
/* 0076C 80A2052C 5140000C */ beql $t2, $zero, .L80A20560
/* 00770 80A20530 920201AD */ lbu $v0, 0x01AD($s0) ## 000001AD
/* 00774 80A20534 920B0161 */ lbu $t3, 0x0161($s0) ## 00000161
/* 00778 80A20538 A2000247 */ sb $zero, 0x0247($s0) ## 00000247
/* 0077C 80A2053C E6000254 */ swc1 $f0, 0x0254($s0) ## 00000254
/* 00780 80A20540 316CFFFD */ andi $t4, $t3, 0xFFFD ## $t4 = 00000000
/* 00784 80A20544 A20C0161 */ sb $t4, 0x0161($s0) ## 00000161
/* 00788 80A20548 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 0078C 80A2054C 0C2881D2 */ jal func_80A20748
/* 00790 80A20550 A60D0244 */ sh $t5, 0x0244($s0) ## 00000244
/* 00794 80A20554 10000067 */ beq $zero, $zero, .L80A206F4
/* 00798 80A20558 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0079C 80A2055C 920201AD */ lbu $v0, 0x01AD($s0) ## 000001AD
.L80A20560:
/* 007A0 80A20560 304E0080 */ andi $t6, $v0, 0x0080 ## $t6 = 00000000
/* 007A4 80A20564 51C00008 */ beql $t6, $zero, .L80A20588
/* 007A8 80A20568 92020161 */ lbu $v0, 0x0161($s0) ## 00000161
/* 007AC 80A2056C 92180161 */ lbu $t8, 0x0161($s0) ## 00000161
/* 007B0 80A20570 304FFF7F */ andi $t7, $v0, 0xFF7F ## $t7 = 00000000
/* 007B4 80A20574 A20F01AD */ sb $t7, 0x01AD($s0) ## 000001AD
/* 007B8 80A20578 3319FFFD */ andi $t9, $t8, 0xFFFD ## $t9 = 00000000
/* 007BC 80A2057C 1000005C */ beq $zero, $zero, .L80A206F0
/* 007C0 80A20580 A2190161 */ sb $t9, 0x0161($s0) ## 00000161
/* 007C4 80A20584 92020161 */ lbu $v0, 0x0161($s0) ## 00000161
.L80A20588:
/* 007C8 80A20588 30480002 */ andi $t0, $v0, 0x0002 ## $t0 = 00000000
/* 007CC 80A2058C 51000059 */ beql $t0, $zero, .L80A206F4
/* 007D0 80A20590 8FBF0024 */ lw $ra, 0x0024($sp)
/* 007D4 80A20594 920300B1 */ lbu $v1, 0x00B1($s0) ## 000000B1
/* 007D8 80A20598 3049FFFD */ andi $t1, $v0, 0xFFFD ## $t1 = 00000000
/* 007DC 80A2059C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 007E0 80A205A0 1061003D */ beq $v1, $at, .L80A20698
/* 007E4 80A205A4 A2090161 */ sb $t1, 0x0161($s0) ## 00000161
/* 007E8 80A205A8 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 007EC 80A205AC 54610051 */ bnel $v1, $at, .L80A206F4
/* 007F0 80A205B0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 007F4 80A205B4 0C00D58A */ jal Actor_ApplyDamage
/* 007F8 80A205B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007FC 80A205BC 240A0008 */ addiu $t2, $zero, 0x0008 ## $t2 = 00000008
/* 00800 80A205C0 AFAA0010 */ sw $t2, 0x0010($sp)
/* 00804 80A205C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00808 80A205C8 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 0080C 80A205CC 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
/* 00810 80A205D0 0C00D09B */ jal func_8003426C
/* 00814 80A205D4 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 00818 80A205D8 920B00AF */ lbu $t3, 0x00AF($s0) ## 000000AF
/* 0081C 80A205DC 240539A5 */ addiu $a1, $zero, 0x39A5 ## $a1 = 000039A5
/* 00820 80A205E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00824 80A205E4 11600014 */ beq $t3, $zero, .L80A20638
/* 00828 80A205E8 00000000 */ nop
/* 0082C 80A205EC 0C00BE0A */ jal Audio_PlayActorSound2
/* 00830 80A205F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00834 80A205F4 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00838 80A205F8 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 0083C 80A205FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00840 80A20600 E7A40034 */ swc1 $f4, 0x0034($sp)
/* 00844 80A20604 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 00848 80A20608 8FA50044 */ lw $a1, 0x0044($sp)
/* 0084C 80A2060C 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFF4
/* 00850 80A20610 E7A60038 */ swc1 $f6, 0x0038($sp)
/* 00854 80A20614 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
/* 00858 80A20618 2407000A */ addiu $a3, $zero, 0x000A ## $a3 = 0000000A
/* 0085C 80A2061C E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00860 80A20620 0C288040 */ jal func_80A20100
/* 00864 80A20624 E7A8003C */ swc1 $f8, 0x003C($sp)
/* 00868 80A20628 920C0249 */ lbu $t4, 0x0249($s0) ## 00000249
/* 0086C 80A2062C 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001
/* 00870 80A20630 1000002F */ beq $zero, $zero, .L80A206F0
/* 00874 80A20634 A20D0249 */ sb $t5, 0x0249($s0) ## 00000249
.L80A20638:
/* 00878 80A20638 0C00BE0A */ jal Audio_PlayActorSound2
/* 0087C 80A2063C 240539A6 */ addiu $a1, $zero, 0x39A6 ## $a1 = 000039A6
/* 00880 80A20640 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00884 80A20644 0C00BE0A */ jal Audio_PlayActorSound2
/* 00888 80A20648 240528CB */ addiu $a1, $zero, 0x28CB ## $a1 = 000028CB
/* 0088C 80A2064C C6100024 */ lwc1 $f16, 0x0024($s0) ## 00000024
/* 00890 80A20650 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00894 80A20654 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00898 80A20658 E7B00034 */ swc1 $f16, 0x0034($sp)
/* 0089C 80A2065C C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028
/* 008A0 80A20660 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008A4 80A20664 8FA50044 */ lw $a1, 0x0044($sp)
/* 008A8 80A20668 E7B20038 */ swc1 $f18, 0x0038($sp)
/* 008AC 80A2066C C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 008B0 80A20670 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFF4
/* 008B4 80A20674 2407001E */ addiu $a3, $zero, 0x001E ## $a3 = 0000001E
/* 008B8 80A20678 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 008BC 80A2067C 0C288040 */ jal func_80A20100
/* 008C0 80A20680 E7A4003C */ swc1 $f4, 0x003C($sp)
/* 008C4 80A20684 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008C8 80A20688 0C28832B */ jal func_80A20CAC
/* 008CC 80A2068C 8FA50044 */ lw $a1, 0x0044($sp)
/* 008D0 80A20690 10000018 */ beq $zero, $zero, .L80A206F4
/* 008D4 80A20694 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A20698:
/* 008D8 80A20698 0C00D58A */ jal Actor_ApplyDamage
/* 008DC 80A2069C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008E0 80A206A0 240E0008 */ addiu $t6, $zero, 0x0008 ## $t6 = 00000008
/* 008E4 80A206A4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 008E8 80A206A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008EC 80A206AC 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
/* 008F0 80A206B0 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
/* 008F4 80A206B4 0C00D09B */ jal func_8003426C
/* 008F8 80A206B8 24072000 */ addiu $a3, $zero, 0x2000 ## $a3 = 00002000
/* 008FC 80A206BC 920F00AF */ lbu $t7, 0x00AF($s0) ## 000000AF
/* 00900 80A206C0 240539A6 */ addiu $a1, $zero, 0x39A6 ## $a1 = 000039A6
/* 00904 80A206C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00908 80A206C8 15E00007 */ bne $t7, $zero, .L80A206E8
/* 0090C 80A206CC 00000000 */ nop
/* 00910 80A206D0 0C00BE0A */ jal Audio_PlayActorSound2
/* 00914 80A206D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00918 80A206D8 0C28835F */ jal func_80A20D7C
/* 0091C 80A206DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00920 80A206E0 10000004 */ beq $zero, $zero, .L80A206F4
/* 00924 80A206E4 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A206E8:
/* 00928 80A206E8 0C00BE0A */ jal Audio_PlayActorSound2
/* 0092C 80A206EC 240539A5 */ addiu $a1, $zero, 0x39A5 ## $a1 = 000039A5
.L80A206F0:
/* 00930 80A206F0 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A206F4:
/* 00934 80A206F4 8FB00020 */ lw $s0, 0x0020($sp)
/* 00938 80A206F8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 0093C 80A206FC 03E00008 */ jr $ra
/* 00940 80A20700 00000000 */ nop

View file

@ -1,19 +0,0 @@
glabel func_80A20704
/* 00944 80A20704 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00948 80A20708 AFBF001C */ sw $ra, 0x001C($sp)
/* 0094C 80A2070C AFA40020 */ sw $a0, 0x0020($sp)
/* 00950 80A20710 00807025 */ or $t6, $a0, $zero ## $t6 = 00000000
/* 00954 80A20714 85C5008A */ lh $a1, 0x008A($t6) ## 0000008A
/* 00958 80A20718 AFA00010 */ sw $zero, 0x0010($sp)
/* 0095C 80A2071C 248400B6 */ addiu $a0, $a0, 0x00B6 ## $a0 = 000000B6
/* 00960 80A20720 2406000A */ addiu $a2, $zero, 0x000A ## $a2 = 0000000A
/* 00964 80A20724 0C01E1A7 */ jal Math_SmoothStepToS
/* 00968 80A20728 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
/* 0096C 80A2072C 8FA20020 */ lw $v0, 0x0020($sp)
/* 00970 80A20730 844F00B6 */ lh $t7, 0x00B6($v0) ## 000000B6
/* 00974 80A20734 A44F0032 */ sh $t7, 0x0032($v0) ## 00000032
/* 00978 80A20738 8FBF001C */ lw $ra, 0x001C($sp)
/* 0097C 80A2073C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00980 80A20740 03E00008 */ jr $ra
/* 00984 80A20744 00000000 */ nop

View file

@ -1,12 +0,0 @@
glabel func_80A20748
/* 00988 80A20748 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 0098C 80A2074C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00990 80A20750 3C1980A2 */ lui $t9, %hi(func_80A20774) ## $t9 = 80A20000
/* 00994 80A20754 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00998 80A20758 27390774 */ addiu $t9, $t9, %lo(func_80A20774) ## $t9 = 80A20774
/* 0099C 80A2075C 01E1C024 */ and $t8, $t7, $at
/* 009A0 80A20760 A08E0260 */ sb $t6, 0x0260($a0) ## 00000260
/* 009A4 80A20764 A0800248 */ sb $zero, 0x0248($a0) ## 00000248
/* 009A8 80A20768 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 009AC 80A2076C 03E00008 */ jr $ra
/* 009B0 80A20770 AC99014C */ sw $t9, 0x014C($a0) ## 0000014C

View file

@ -1,36 +0,0 @@
glabel func_80A20774
/* 009B4 80A20774 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 009B8 80A20778 AFBF0024 */ sw $ra, 0x0024($sp)
/* 009BC 80A2077C AFB00020 */ sw $s0, 0x0020($sp)
/* 009C0 80A20780 AFA5002C */ sw $a1, 0x002C($sp)
/* 009C4 80A20784 8C8E0258 */ lw $t6, 0x0258($a0) ## 00000258
/* 009C8 80A20788 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009CC 80A2078C 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 009D0 80A20790 25CFFFF0 */ addiu $t7, $t6, 0xFFF0 ## $t7 = FFFFFFF0
/* 009D4 80A20794 2DE10100 */ sltiu $at, $t7, 0x0100
/* 009D8 80A20798 14200002 */ bne $at, $zero, .L80A207A4
/* 009DC 80A2079C AC8F0258 */ sw $t7, 0x0258($a0) ## 00000258
/* 009E0 80A207A0 AC800258 */ sw $zero, 0x0258($a0) ## 00000258
.L80A207A4:
/* 009E4 80A207A4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 009E8 80A207A8 3C073A03 */ lui $a3, 0x3A03 ## $a3 = 3A030000
/* 009EC 80A207AC 34E7126F */ ori $a3, $a3, 0x126F ## $a3 = 3A03126F
/* 009F0 80A207B0 26040054 */ addiu $a0, $s0, 0x0054 ## $a0 = 00000054
/* 009F4 80A207B4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 009F8 80A207B8 0C01E0C4 */ jal Math_SmoothStepToF
/* 009FC 80A207BC E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00A00 80A207C0 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00A04 80A207C4 00000000 */ nop
/* 00A08 80A207C8 46060032 */ c.eq.s $f0, $f6
/* 00A0C 80A207CC 00000000 */ nop
/* 00A10 80A207D0 45020004 */ bc1fl .L80A207E4
/* 00A14 80A207D4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00A18 80A207D8 0C2881FD */ jal func_80A207F4
/* 00A1C 80A207DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A20 80A207E0 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A207E4:
/* 00A24 80A207E4 8FB00020 */ lw $s0, 0x0020($sp)
/* 00A28 80A207E8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00A2C 80A207EC 03E00008 */ jr $ra
/* 00A30 80A207F0 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel func_80A207F4
/* 00A34 80A207F4 C4840234 */ lwc1 $f4, 0x0234($a0) ## 00000234
/* 00A38 80A207F8 C4860238 */ lwc1 $f6, 0x0238($a0) ## 00000238
/* 00A3C 80A207FC C488023C */ lwc1 $f8, 0x023C($a0) ## 0000023C
/* 00A40 80A20800 3C0F80A2 */ lui $t7, %hi(func_80A20830) ## $t7 = 80A20000
/* 00A44 80A20804 240E0064 */ addiu $t6, $zero, 0x0064 ## $t6 = 00000064
/* 00A48 80A20808 25EF0830 */ addiu $t7, $t7, %lo(func_80A20830) ## $t7 = 80A20830
/* 00A4C 80A2080C A0800260 */ sb $zero, 0x0260($a0) ## 00000260
/* 00A50 80A20810 A480025E */ sh $zero, 0x025E($a0) ## 0000025E
/* 00A54 80A20814 A480025C */ sh $zero, 0x025C($a0) ## 0000025C
/* 00A58 80A20818 A48E0244 */ sh $t6, 0x0244($a0) ## 00000244
/* 00A5C 80A2081C AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
/* 00A60 80A20820 E4840024 */ swc1 $f4, 0x0024($a0) ## 00000024
/* 00A64 80A20824 E4860028 */ swc1 $f6, 0x0028($a0) ## 00000028
/* 00A68 80A20828 03E00008 */ jr $ra
/* 00A6C 80A2082C E488002C */ swc1 $f8, 0x002C($a0) ## 0000002C

View file

@ -1,22 +0,0 @@
glabel func_80A20830
/* 00A70 80A20830 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00A74 80A20834 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00A78 80A20838 AFA5001C */ sw $a1, 0x001C($sp)
/* 00A7C 80A2083C 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00A80 80A20840 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000
/* 00A84 80A20844 55C0000B */ bnel $t6, $zero, .L80A20874
/* 00A88 80A20848 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A8C 80A2084C C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 00A90 80A20850 44813000 */ mtc1 $at, $f6 ## $f6 = 400.00
/* 00A94 80A20854 00000000 */ nop
/* 00A98 80A20858 4606203C */ c.lt.s $f4, $f6
/* 00A9C 80A2085C 00000000 */ nop
/* 00AA0 80A20860 45020004 */ bc1fl .L80A20874
/* 00AA4 80A20864 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00AA8 80A20868 0C288220 */ jal func_80A20880
/* 00AAC 80A2086C 00000000 */ nop
/* 00AB0 80A20870 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20874:
/* 00AB4 80A20874 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00AB8 80A20878 03E00008 */ jr $ra
/* 00ABC 80A2087C 00000000 */ nop

View file

@ -1,11 +0,0 @@
glabel func_80A20880
/* 00AC0 80A20880 3C1980A2 */ lui $t9, %hi(func_80A208A8) ## $t9 = 80A20000
/* 00AC4 80A20884 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00AC8 80A20888 240F0014 */ addiu $t7, $zero, 0x0014 ## $t7 = 00000014
/* 00ACC 80A2088C 24180FA0 */ addiu $t8, $zero, 0x0FA0 ## $t8 = 00000FA0
/* 00AD0 80A20890 273908A8 */ addiu $t9, $t9, %lo(func_80A208A8) ## $t9 = 80A208A8
/* 00AD4 80A20894 A08E0260 */ sb $t6, 0x0260($a0) ## 00000260
/* 00AD8 80A20898 A48F0244 */ sh $t7, 0x0244($a0) ## 00000244
/* 00ADC 80A2089C A498025E */ sh $t8, 0x025E($a0) ## 0000025E
/* 00AE0 80A208A0 03E00008 */ jr $ra
/* 00AE4 80A208A4 AC99014C */ sw $t9, 0x014C($a0) ## 0000014C

View file

@ -1,41 +0,0 @@
glabel func_80A208A8
/* 00AE8 80A208A8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00AEC 80A208AC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00AF0 80A208B0 AFB00020 */ sw $s0, 0x0020($sp)
/* 00AF4 80A208B4 AFA5002C */ sw $a1, 0x002C($sp)
/* 00AF8 80A208B8 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00AFC 80A208BC 3C053C03 */ lui $a1, 0x3C03 ## $a1 = 3C030000
/* 00B00 80A208C0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B04 80A208C4 15C00017 */ bne $t6, $zero, .L80A20924
/* 00B08 80A208C8 34A5126F */ ori $a1, $a1, 0x126F ## $a1 = 3C03126F
/* 00B0C 80A208CC 8C8F0258 */ lw $t7, 0x0258($a0) ## 00000258
/* 00B10 80A208D0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00B14 80A208D4 3C073A03 */ lui $a3, 0x3A03 ## $a3 = 3A030000
/* 00B18 80A208D8 25F80008 */ addiu $t8, $t7, 0x0008 ## $t8 = 00000008
/* 00B1C 80A208DC 2F010100 */ sltiu $at, $t8, 0x0100
/* 00B20 80A208E0 14200003 */ bne $at, $zero, .L80A208F0
/* 00B24 80A208E4 AC980258 */ sw $t8, 0x0258($a0) ## 00000258
/* 00B28 80A208E8 240800FF */ addiu $t0, $zero, 0x00FF ## $t0 = 000000FF
/* 00B2C 80A208EC AC880258 */ sw $t0, 0x0258($a0) ## 00000258
.L80A208F0:
/* 00B30 80A208F0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00B34 80A208F4 26040054 */ addiu $a0, $s0, 0x0054 ## $a0 = 00000054
/* 00B38 80A208F8 34E7126F */ ori $a3, $a3, 0x126F ## $a3 = 3A03126F
/* 00B3C 80A208FC 0C01E0C4 */ jal Math_SmoothStepToF
/* 00B40 80A20900 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00B44 80A20904 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00B48 80A20908 00000000 */ nop
/* 00B4C 80A2090C 46060032 */ c.eq.s $f0, $f6
/* 00B50 80A20910 00000000 */ nop
/* 00B54 80A20914 45020004 */ bc1fl .L80A20928
/* 00B58 80A20918 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00B5C 80A2091C 0C28824E */ jal func_80A20938
/* 00B60 80A20920 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A20924:
/* 00B64 80A20924 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A20928:
/* 00B68 80A20928 8FB00020 */ lw $s0, 0x0020($sp)
/* 00B6C 80A2092C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00B70 80A20930 03E00008 */ jr $ra
/* 00B74 80A20934 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel func_80A20938
/* 00B78 80A20938 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00B7C 80A2093C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00B80 80A20940 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 00B84 80A20944 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00B88 80A20948 3C1980A2 */ lui $t9, %hi(func_80A20978) ## $t9 = 80A20000
/* 00B8C 80A2094C 240E0028 */ addiu $t6, $zero, 0x0028 ## $t6 = 00000028
/* 00B90 80A20950 27390978 */ addiu $t9, $t9, %lo(func_80A20978) ## $t9 = 80A20978
/* 00B94 80A20954 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00B98 80A20958 A0820260 */ sb $v0, 0x0260($a0) ## 00000260
/* 00B9C 80A2095C A48E0244 */ sh $t6, 0x0244($a0) ## 00000244
/* 00BA0 80A20960 A0820246 */ sb $v0, 0x0246($a0) ## 00000246
/* 00BA4 80A20964 A0820248 */ sb $v0, 0x0248($a0) ## 00000248
/* 00BA8 80A20968 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 00BAC 80A2096C AC99014C */ sw $t9, 0x014C($a0) ## 0000014C
/* 00BB0 80A20970 03E00008 */ jr $ra
/* 00BB4 80A20974 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C

View file

@ -1,17 +0,0 @@
glabel func_80A20978
/* 00BB8 80A20978 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00BBC 80A2097C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00BC0 80A20980 AFA5001C */ sw $a1, 0x001C($sp)
/* 00BC4 80A20984 0C2881C1 */ jal func_80A20704
/* 00BC8 80A20988 AFA40018 */ sw $a0, 0x0018($sp)
/* 00BCC 80A2098C 8FA40018 */ lw $a0, 0x0018($sp)
/* 00BD0 80A20990 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00BD4 80A20994 55C00004 */ bnel $t6, $zero, .L80A209A8
/* 00BD8 80A20998 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BDC 80A2099C 0C28826D */ jal func_80A209B4
/* 00BE0 80A209A0 00000000 */ nop
/* 00BE4 80A209A4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A209A8:
/* 00BE8 80A209A8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BEC 80A209AC 03E00008 */ jr $ra
/* 00BF0 80A209B0 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_80A209B4
/* 00BF4 80A209B4 3C014080 */ lui $at, 0x4080 ## $at = 40800000
/* 00BF8 80A209B8 44812000 */ mtc1 $at, $f4 ## $f4 = 4.00
/* 00BFC 80A209BC 3C0F80A2 */ lui $t7, %hi(func_80A209E4) ## $t7 = 80A20000
/* 00C00 80A209C0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00C04 80A209C4 240E0064 */ addiu $t6, $zero, 0x0064 ## $t6 = 00000064
/* 00C08 80A209C8 25EF09E4 */ addiu $t7, $t7, %lo(func_80A209E4) ## $t7 = 80A209E4
/* 00C0C 80A209CC A0820260 */ sb $v0, 0x0260($a0) ## 00000260
/* 00C10 80A209D0 A0820247 */ sb $v0, 0x0247($a0) ## 00000247
/* 00C14 80A209D4 A48E0244 */ sh $t6, 0x0244($a0) ## 00000244
/* 00C18 80A209D8 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
/* 00C1C 80A209DC 03E00008 */ jr $ra
/* 00C20 80A209E0 E4840254 */ swc1 $f4, 0x0254($a0) ## 00000254

View file

@ -1,18 +0,0 @@
glabel func_80A209E4
/* 00C24 80A209E4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C28 80A209E8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C2C 80A209EC AFA5001C */ sw $a1, 0x001C($sp)
/* 00C30 80A209F0 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00C34 80A209F4 11C00004 */ beq $t6, $zero, .L80A20A08
/* 00C38 80A209F8 00000000 */ nop
/* 00C3C 80A209FC 908F0247 */ lbu $t7, 0x0247($a0) ## 00000247
/* 00C40 80A20A00 55E00004 */ bnel $t7, $zero, .L80A20A14
/* 00C44 80A20A04 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20A08:
/* 00C48 80A20A08 0C288288 */ jal func_80A20A20
/* 00C4C 80A20A0C 00000000 */ nop
/* 00C50 80A20A10 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20A14:
/* 00C54 80A20A14 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C58 80A20A18 03E00008 */ jr $ra
/* 00C5C 80A20A1C 00000000 */ nop

View file

@ -1,12 +0,0 @@
glabel func_80A20A20
/* 00C60 80A20A20 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00C64 80A20A24 3C1880A2 */ lui $t8, %hi(func_80A20A4C) ## $t8 = 80A20000
/* 00C68 80A20A28 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00C6C 80A20A2C 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 00C70 80A20A30 27180A4C */ addiu $t8, $t8, %lo(func_80A20A4C) ## $t8 = 80A20A4C
/* 00C74 80A20A34 A08E0260 */ sb $t6, 0x0260($a0) ## 00000260
/* 00C78 80A20A38 A48F0244 */ sh $t7, 0x0244($a0) ## 00000244
/* 00C7C 80A20A3C AC98014C */ sw $t8, 0x014C($a0) ## 0000014C
/* 00C80 80A20A40 E4800254 */ swc1 $f0, 0x0254($a0) ## 00000254
/* 00C84 80A20A44 03E00008 */ jr $ra
/* 00C88 80A20A48 E4800068 */ swc1 $f0, 0x0068($a0) ## 00000068

View file

@ -1,17 +0,0 @@
glabel func_80A20A4C
/* 00C8C 80A20A4C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C90 80A20A50 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C94 80A20A54 AFA5001C */ sw $a1, 0x001C($sp)
/* 00C98 80A20A58 0C2881C1 */ jal func_80A20704
/* 00C9C 80A20A5C AFA40018 */ sw $a0, 0x0018($sp)
/* 00CA0 80A20A60 8FA40018 */ lw $a0, 0x0018($sp)
/* 00CA4 80A20A64 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00CA8 80A20A68 55C00004 */ bnel $t6, $zero, .L80A20A7C
/* 00CAC 80A20A6C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00CB0 80A20A70 0C2882A2 */ jal func_80A20A88
/* 00CB4 80A20A74 8FA5001C */ lw $a1, 0x001C($sp)
/* 00CB8 80A20A78 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20A7C:
/* 00CBC 80A20A7C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00CC0 80A20A80 03E00008 */ jr $ra
/* 00CC4 80A20A84 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80A20A88
/* 00CC8 80A20A88 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00CCC 80A20A8C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00CD0 80A20A90 3C1880A2 */ lui $t8, %hi(func_80A20AC0) ## $t8 = 80A20000
/* 00CD4 80A20A94 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00CD8 80A20A98 240F0050 */ addiu $t7, $zero, 0x0050 ## $t7 = 00000050
/* 00CDC 80A20A9C 27180AC0 */ addiu $t8, $t8, %lo(func_80A20AC0) ## $t8 = 80A20AC0
/* 00CE0 80A20AA0 A08E0260 */ sb $t6, 0x0260($a0) ## 00000260
/* 00CE4 80A20AA4 A48F0244 */ sh $t7, 0x0244($a0) ## 00000244
/* 00CE8 80A20AA8 0C287FE3 */ jal func_80A1FF8C
/* 00CEC 80A20AAC AC98014C */ sw $t8, 0x014C($a0) ## 0000014C
/* 00CF0 80A20AB0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00CF4 80A20AB4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00CF8 80A20AB8 03E00008 */ jr $ra
/* 00CFC 80A20ABC 00000000 */ nop

View file

@ -1,137 +0,0 @@
.late_rodata
glabel D_80A21CD0
.float 0.6
glabel D_80A21CD4
.float 3.14159274101
.text
glabel func_80A20AC0
/* 00D00 80A20AC0 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 00D04 80A20AC4 AFBF002C */ sw $ra, 0x002C($sp)
/* 00D08 80A20AC8 AFB00028 */ sw $s0, 0x0028($sp)
/* 00D0C 80A20ACC AFA5006C */ sw $a1, 0x006C($sp)
/* 00D10 80A20AD0 84820244 */ lh $v0, 0x0244($a0) ## 00000244
/* 00D14 80A20AD4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D18 80A20AD8 14400005 */ bne $v0, $zero, .L80A20AF0
/* 00D1C 80A20ADC 2841000B */ slti $at, $v0, 0x000B
/* 00D20 80A20AE0 0C2881D2 */ jal func_80A20748
/* 00D24 80A20AE4 00000000 */ nop
/* 00D28 80A20AE8 1000006C */ beq $zero, $zero, .L80A20C9C
/* 00D2C 80A20AEC 8FBF002C */ lw $ra, 0x002C($sp)
.L80A20AF0:
/* 00D30 80A20AF0 14200069 */ bne $at, $zero, .L80A20C98
/* 00D34 80A20AF4 240E0096 */ addiu $t6, $zero, 0x0096 ## $t6 = 00000096
/* 00D38 80A20AF8 A3A00037 */ sb $zero, 0x0037($sp)
/* 00D3C 80A20AFC A7AE0034 */ sh $t6, 0x0034($sp)
/* 00D40 80A20B00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D44 80A20B04 0C00BE5D */ jal func_8002F974
/* 00D48 80A20B08 240531A4 */ addiu $a1, $zero, 0x31A4 ## $a1 = 000031A4
/* 00D4C 80A20B0C 86020244 */ lh $v0, 0x0244($s0) ## 00000244
/* 00D50 80A20B10 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00D54 80A20B14 244FFFF6 */ addiu $t7, $v0, 0xFFF6 ## $t7 = FFFFFFF6
/* 00D58 80A20B18 29E10010 */ slti $at, $t7, 0x0010
/* 00D5C 80A20B1C 10200005 */ beq $at, $zero, .L80A20B34
/* 00D60 80A20B20 0002C080 */ sll $t8, $v0, 2
/* 00D64 80A20B24 0302C021 */ addu $t8, $t8, $v0
/* 00D68 80A20B28 0018C040 */ sll $t8, $t8, 1
/* 00D6C 80A20B2C 2719FF9C */ addiu $t9, $t8, 0xFF9C ## $t9 = FFFFFF9C
/* 00D70 80A20B30 A7B90034 */ sh $t9, 0x0034($sp)
.L80A20B34:
/* 00D74 80A20B34 3C0180A2 */ lui $at, %hi(D_80A21CD0) ## $at = 80A20000
/* 00D78 80A20B38 C4241CD0 */ lwc1 $f4, %lo(D_80A21CD0)($at)
/* 00D7C 80A20B3C E7A00040 */ swc1 $f0, 0x0040($sp)
/* 00D80 80A20B40 E7A00038 */ swc1 $f0, 0x0038($sp)
/* 00D84 80A20B44 E7A4003C */ swc1 $f4, 0x003C($sp)
/* 00D88 80A20B48 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 00D8C 80A20B4C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00D90 80A20B50 44815000 */ mtc1 $at, $f10 ## $f10 = 20.00
/* 00D94 80A20B54 E7A60050 */ swc1 $f6, 0x0050($sp)
/* 00D98 80A20B58 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 00D9C 80A20B5C 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00DA0 80A20B60 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00DA4 80A20B64 460A4400 */ add.s $f16, $f8, $f10
/* 00DA8 80A20B68 44814000 */ mtc1 $at, $f8 ## $f8 = 32768.00
/* 00DAC 80A20B6C 3C0180A2 */ lui $at, %hi(D_80A21CD4) ## $at = 80A20000
/* 00DB0 80A20B70 E7B00054 */ swc1 $f16, 0x0054($sp)
/* 00DB4 80A20B74 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 00DB8 80A20B78 C4301CD4 */ lwc1 $f16, %lo(D_80A21CD4)($at)
/* 00DBC 80A20B7C E7B20058 */ swc1 $f18, 0x0058($sp)
/* 00DC0 80A20B80 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
/* 00DC4 80A20B84 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 00DC8 80A20B88 00000000 */ nop
/* 00DCC 80A20B8C 468021A0 */ cvt.s.w $f6, $f4
/* 00DD0 80A20B90 46083283 */ div.s $f10, $f6, $f8
/* 00DD4 80A20B94 46105302 */ mul.s $f12, $f10, $f16
/* 00DD8 80A20B98 0C034348 */ jal Matrix_RotateY
/* 00DDC 80A20B9C 00000000 */ nop
/* 00DE0 80A20BA0 3C01C000 */ lui $at, 0xC000 ## $at = C0000000
/* 00DE4 80A20BA4 44812000 */ mtc1 $at, $f4 ## $f4 = -2.00
/* 00DE8 80A20BA8 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00DEC 80A20BAC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 00DF0 80A20BB0 44813000 */ mtc1 $at, $f6 ## $f6 = 20.00
/* 00DF4 80A20BB4 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFF4
/* 00DF8 80A20BB8 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFDC
/* 00DFC 80A20BBC E7A40060 */ swc1 $f4, 0x0060($sp)
/* 00E00 80A20BC0 E7B2005C */ swc1 $f18, 0x005C($sp)
/* 00E04 80A20BC4 0C0346BD */ jal Matrix_MultVec3f
/* 00E08 80A20BC8 E7A60064 */ swc1 $f6, 0x0064($sp)
/* 00E0C 80A20BCC 86090244 */ lh $t1, 0x0244($s0) ## 00000244
/* 00E10 80A20BD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E14 80A20BD4 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFE8
/* 00E18 80A20BD8 312A0007 */ andi $t2, $t1, 0x0007 ## $t2 = 00000000
/* 00E1C 80A20BDC 15400003 */ bne $t2, $zero, .L80A20BEC
/* 00E20 80A20BE0 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFDC
/* 00E24 80A20BE4 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00E28 80A20BE8 A3AB0037 */ sb $t3, 0x0037($sp)
.L80A20BEC:
/* 00E2C 80A20BEC 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00E30 80A20BF0 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
/* 00E34 80A20BF4 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
/* 00E38 80A20BF8 44815000 */ mtc1 $at, $f10 ## $f10 = 25.00
/* 00E3C 80A20BFC 87AC0034 */ lh $t4, 0x0034($sp)
/* 00E40 80A20C00 93AD0037 */ lbu $t5, 0x0037($sp)
/* 00E44 80A20C04 27A70038 */ addiu $a3, $sp, 0x0038 ## $a3 = FFFFFFD0
/* 00E48 80A20C08 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00E4C 80A20C0C AFAC0018 */ sw $t4, 0x0018($sp)
/* 00E50 80A20C10 E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 00E54 80A20C14 0C288540 */ jal func_80A21500
/* 00E58 80A20C18 AFAD001C */ sw $t5, 0x001C($sp)
/* 00E5C 80A20C1C C7B20044 */ lwc1 $f18, 0x0044($sp)
/* 00E60 80A20C20 C7B00048 */ lwc1 $f16, 0x0048($sp)
/* 00E64 80A20C24 C7AE004C */ lwc1 $f14, 0x004C($sp)
/* 00E68 80A20C28 C7AC0050 */ lwc1 $f12, 0x0050($sp)
/* 00E6C 80A20C2C C7AA0054 */ lwc1 $f10, 0x0054($sp)
/* 00E70 80A20C30 C7A80058 */ lwc1 $f8, 0x0058($sp)
/* 00E74 80A20C34 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00E78 80A20C38 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 00E7C 80A20C3C 87AE0034 */ lh $t6, 0x0034($sp)
/* 00E80 80A20C40 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00E84 80A20C44 46069482 */ mul.s $f18, $f18, $f6
/* 00E88 80A20C48 44812000 */ mtc1 $at, $f4 ## $f4 = 2.00
/* 00E8C 80A20C4C 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
/* 00E90 80A20C50 46068402 */ mul.s $f16, $f16, $f6
/* 00E94 80A20C54 44811000 */ mtc1 $at, $f2 ## $f2 = 25.00
/* 00E98 80A20C58 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00E9C 80A20C5C 46067182 */ mul.s $f6, $f14, $f6
/* 00EA0 80A20C60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00EA4 80A20C64 46126480 */ add.s $f18, $f12, $f18
/* 00EA8 80A20C68 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFE8
/* 00EAC 80A20C6C 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFDC
/* 00EB0 80A20C70 46105400 */ add.s $f16, $f10, $f16
/* 00EB4 80A20C74 E7B20050 */ swc1 $f18, 0x0050($sp)
/* 00EB8 80A20C78 27A70038 */ addiu $a3, $sp, 0x0038 ## $a3 = FFFFFFD0
/* 00EBC 80A20C7C 46064180 */ add.s $f6, $f8, $f6
/* 00EC0 80A20C80 E7B00054 */ swc1 $f16, 0x0054($sp)
/* 00EC4 80A20C84 E7A20014 */ swc1 $f2, 0x0014($sp)
/* 00EC8 80A20C88 AFAE0018 */ sw $t6, 0x0018($sp)
/* 00ECC 80A20C8C E7A60058 */ swc1 $f6, 0x0058($sp)
/* 00ED0 80A20C90 0C288540 */ jal func_80A21500
/* 00ED4 80A20C94 AFA0001C */ sw $zero, 0x001C($sp)
.L80A20C98:
/* 00ED8 80A20C98 8FBF002C */ lw $ra, 0x002C($sp)
.L80A20C9C:
/* 00EDC 80A20C9C 8FB00028 */ lw $s0, 0x0028($sp)
/* 00EE0 80A20CA0 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 00EE4 80A20CA4 03E00008 */ jr $ra
/* 00EE8 80A20CA8 00000000 */ nop

View file

@ -1,43 +0,0 @@
glabel func_80A20CAC
/* 00EEC 80A20CAC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00EF0 80A20CB0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00EF4 80A20CB4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00EF8 80A20CB8 AFA50024 */ sw $a1, 0x0024($sp)
/* 00EFC 80A20CBC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00F00 80A20CC0 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
/* 00F04 80A20CC4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00F08 80A20CC8 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00F0C 80A20CCC 2418003C */ addiu $t8, $zero, 0x003C ## $t8 = 0000003C
/* 00F10 80A20CD0 01C17824 */ and $t7, $t6, $at
/* 00F14 80A20CD4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00F18 80A20CD8 A0800260 */ sb $zero, 0x0260($a0) ## 00000260
/* 00F1C 80A20CDC A0820246 */ sb $v0, 0x0246($a0) ## 00000246
/* 00F20 80A20CE0 A0800248 */ sb $zero, 0x0248($a0) ## 00000248
/* 00F24 80A20CE4 A0820262 */ sb $v0, 0x0262($a0) ## 00000262
/* 00F28 80A20CE8 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004
/* 00F2C 80A20CEC A0800261 */ sb $zero, 0x0261($a0) ## 00000261
/* 00F30 80A20CF0 A4980244 */ sh $t8, 0x0244($a0) ## 00000244
/* 00F34 80A20CF4 E4800254 */ swc1 $f0, 0x0254($a0) ## 00000254
/* 00F38 80A20CF8 E480006C */ swc1 $f0, 0x006C($a0) ## 0000006C
/* 00F3C 80A20CFC E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060
/* 00F40 80A20D00 E4800068 */ swc1 $f0, 0x0068($a0) ## 00000068
/* 00F44 80A20D04 8FA40024 */ lw $a0, 0x0024($sp)
/* 00F48 80A20D08 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00F4C 80A20D0C 24070006 */ addiu $a3, $zero, 0x0006 ## $a3 = 00000006
/* 00F50 80A20D10 0C00CDD2 */ jal Actor_ChangeCategory
/* 00F54 80A20D14 24851C24 */ addiu $a1, $a0, 0x1C24 ## $a1 = 00001C24
/* 00F58 80A20D18 8FA40024 */ lw $a0, 0x0024($sp)
/* 00F5C 80A20D1C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00F60 80A20D20 26060024 */ addiu $a2, $s0, 0x0024 ## $a2 = 00000024
/* 00F64 80A20D24 0C007E50 */ jal Item_DropCollectibleRandom
/* 00F68 80A20D28 24070060 */ addiu $a3, $zero, 0x0060 ## $a3 = 00000060
/* 00F6C 80A20D2C 3C0880A2 */ lui $t0, %hi(func_80A20D4C) ## $t0 = 80A20000
/* 00F70 80A20D30 25080D4C */ addiu $t0, $t0, %lo(func_80A20D4C) ## $t0 = 80A20D4C
/* 00F74 80A20D34 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
/* 00F78 80A20D38 8FBF001C */ lw $ra, 0x001C($sp)
/* 00F7C 80A20D3C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00F80 80A20D40 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00F84 80A20D44 03E00008 */ jr $ra
/* 00F88 80A20D48 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80A20D4C
/* 00F8C 80A20D4C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00F90 80A20D50 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00F94 80A20D54 AFA5001C */ sw $a1, 0x001C($sp)
/* 00F98 80A20D58 848E0244 */ lh $t6, 0x0244($a0) ## 00000244
/* 00F9C 80A20D5C 55C00004 */ bnel $t6, $zero, .L80A20D70
/* 00FA0 80A20D60 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00FA4 80A20D64 0C00B55C */ jal Actor_Kill
/* 00FA8 80A20D68 00000000 */ nop
/* 00FAC 80A20D6C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20D70:
/* 00FB0 80A20D70 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00FB4 80A20D74 03E00008 */ jr $ra
/* 00FB8 80A20D78 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel func_80A20D7C
/* 00FBC 80A20D7C 8C980004 */ lw $t8, 0x0004($a0) ## 00000004
/* 00FC0 80A20D80 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00FC4 80A20D84 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00FC8 80A20D88 3C0880A2 */ lui $t0, %hi(func_80A20DBC) ## $t0 = 80A20000
/* 00FCC 80A20D8C 240E0003 */ addiu $t6, $zero, 0x0003 ## $t6 = 00000003
/* 00FD0 80A20D90 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00FD4 80A20D94 25080DBC */ addiu $t0, $t0, %lo(func_80A20DBC) ## $t0 = 80A20DBC
/* 00FD8 80A20D98 0301C824 */ and $t9, $t8, $at
/* 00FDC 80A20D9C A08E0260 */ sb $t6, 0x0260($a0) ## 00000260
/* 00FE0 80A20DA0 A0800248 */ sb $zero, 0x0248($a0) ## 00000248
/* 00FE4 80A20DA4 A08F0262 */ sb $t7, 0x0262($a0) ## 00000262
/* 00FE8 80A20DA8 AC990004 */ sw $t9, 0x0004($a0) ## 00000004
/* 00FEC 80A20DAC AC88014C */ sw $t0, 0x014C($a0) ## 0000014C
/* 00FF0 80A20DB0 E4800068 */ swc1 $f0, 0x0068($a0) ## 00000068
/* 00FF4 80A20DB4 03E00008 */ jr $ra
/* 00FF8 80A20DB8 E4800254 */ swc1 $f0, 0x0254($a0) ## 00000254

View file

@ -1,65 +0,0 @@
.late_rodata
glabel D_80A21CD8
.word 0x3BC49BA6
glabel D_80A21CDC
.word 0x39D1B717
glabel D_80A21CE0
.word 0x3B83126F
.text
glabel func_80A20DBC
/* 00FFC 80A20DBC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01000 80A20DC0 AFA5001C */ sw $a1, 0x001C($sp)
/* 01004 80A20DC4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01008 80A20DC8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0100C 80A20DCC 3C053A1D */ lui $a1, 0x3A1D ## $a1 = 3A1D0000
/* 01010 80A20DD0 3C063951 */ lui $a2, 0x3951 ## $a2 = 39510000
/* 01014 80A20DD4 34C6B717 */ ori $a2, $a2, 0xB717 ## $a2 = 3951B717
/* 01018 80A20DD8 34A54952 */ ori $a1, $a1, 0x4952 ## $a1 = 3A1D4952
/* 0101C 80A20DDC AFA70018 */ sw $a3, 0x0018($sp)
/* 01020 80A20DE0 0C01DE80 */ jal Math_StepToF
/* 01024 80A20DE4 24840054 */ addiu $a0, $a0, 0x0054 ## $a0 = 00000054
/* 01028 80A20DE8 8FA70018 */ lw $a3, 0x0018($sp)
/* 0102C 80A20DEC 3C0180A2 */ lui $at, %hi(D_80A21CD8) ## $at = 80A20000
/* 01030 80A20DF0 C4241CD8 */ lwc1 $f4, %lo(D_80A21CD8)($at)
/* 01034 80A20DF4 C4E00054 */ lwc1 $f0, 0x0054($a3) ## 00000054
/* 01038 80A20DF8 3C0180A2 */ lui $at, %hi(D_80A21CDC) ## $at = 80A20000
/* 0103C 80A20DFC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 01040 80A20E00 4604003C */ c.lt.s $f0, $f4
/* 01044 80A20E04 00000000 */ nop
/* 01048 80A20E08 45000009 */ bc1f .L80A20E30
/* 0104C 80A20E0C 00000000 */ nop
/* 01050 80A20E10 C4221CDC */ lwc1 $f2, %lo(D_80A21CDC)($at)
/* 01054 80A20E14 C4E60050 */ lwc1 $f6, 0x0050($a3) ## 00000050
/* 01058 80A20E18 C4EA0058 */ lwc1 $f10, 0x0058($a3) ## 00000058
/* 0105C 80A20E1C C4E00054 */ lwc1 $f0, 0x0054($a3) ## 00000054
/* 01060 80A20E20 46023200 */ add.s $f8, $f6, $f2
/* 01064 80A20E24 46025400 */ add.s $f16, $f10, $f2
/* 01068 80A20E28 E4E80050 */ swc1 $f8, 0x0050($a3) ## 00000050
/* 0106C 80A20E2C E4F00058 */ swc1 $f16, 0x0058($a3) ## 00000058
.L80A20E30:
/* 01070 80A20E30 3C0180A2 */ lui $at, %hi(D_80A21CE0) ## $at = 80A20000
/* 01074 80A20E34 C4321CE0 */ lwc1 $f18, %lo(D_80A21CE0)($at)
/* 01078 80A20E38 4612003C */ c.lt.s $f0, $f18
/* 0107C 80A20E3C 00000000 */ nop
/* 01080 80A20E40 45020008 */ bc1fl .L80A20E64
/* 01084 80A20E44 8CF90258 */ lw $t9, 0x0258($a3) ## 00000258
/* 01088 80A20E48 8CEE0258 */ lw $t6, 0x0258($a3) ## 00000258
/* 0108C 80A20E4C 25CFFFF8 */ addiu $t7, $t6, 0xFFF8 ## $t7 = FFFFFFF8
/* 01090 80A20E50 2DE10100 */ sltiu $at, $t7, 0x0100
/* 01094 80A20E54 14200002 */ bne $at, $zero, .L80A20E60
/* 01098 80A20E58 ACEF0258 */ sw $t7, 0x0258($a3) ## 00000258
/* 0109C 80A20E5C ACE00258 */ sw $zero, 0x0258($a3) ## 00000258
.L80A20E60:
/* 010A0 80A20E60 8CF90258 */ lw $t9, 0x0258($a3) ## 00000258
.L80A20E64:
/* 010A4 80A20E64 57200004 */ bnel $t9, $zero, .L80A20E78
/* 010A8 80A20E68 8FBF0014 */ lw $ra, 0x0014($sp)
/* 010AC 80A20E6C 0C28832B */ jal func_80A20CAC
/* 010B0 80A20E70 8FA5001C */ lw $a1, 0x001C($sp)
/* 010B4 80A20E74 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A20E78:
/* 010B8 80A20E78 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 010BC 80A20E7C 03E00008 */ jr $ra
/* 010C0 80A20E80 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel func_80A20E84
/* 010C4 80A20E84 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 010C8 80A20E88 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 010CC 80A20E8C 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 010D0 80A20E90 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 010D4 80A20E94 3C1980A2 */ lui $t9, %hi(func_80A20EC4) ## $t9 = 80A20000
/* 010D8 80A20E98 240E0028 */ addiu $t6, $zero, 0x0028 ## $t6 = 00000028
/* 010DC 80A20E9C 27390EC4 */ addiu $t9, $t9, %lo(func_80A20EC4) ## $t9 = 80A20EC4
/* 010E0 80A20EA0 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001
/* 010E4 80A20EA4 A0820260 */ sb $v0, 0x0260($a0) ## 00000260
/* 010E8 80A20EA8 A48E0244 */ sh $t6, 0x0244($a0) ## 00000244
/* 010EC 80A20EAC A0820246 */ sb $v0, 0x0246($a0) ## 00000246
/* 010F0 80A20EB0 A0820248 */ sb $v0, 0x0248($a0) ## 00000248
/* 010F4 80A20EB4 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 010F8 80A20EB8 AC99014C */ sw $t9, 0x014C($a0) ## 0000014C
/* 010FC 80A20EBC 03E00008 */ jr $ra
/* 01100 80A20EC0 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C

View file

@ -1,139 +0,0 @@
.late_rodata
glabel D_80A21CE4
.float 0.6
glabel D_80A21CE8
.float 3.14159274101
.text
glabel func_80A20EC4
/* 01104 80A20EC4 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 01108 80A20EC8 AFBF002C */ sw $ra, 0x002C($sp)
/* 0110C 80A20ECC AFB00028 */ sw $s0, 0x0028($sp)
/* 01110 80A20ED0 AFA5006C */ sw $a1, 0x006C($sp)
/* 01114 80A20ED4 848E0240 */ lh $t6, 0x0240($a0) ## 00000240
/* 01118 80A20ED8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0111C 80A20EDC 24180096 */ addiu $t8, $zero, 0x0096 ## $t8 = 00000096
/* 01120 80A20EE0 31CF00C0 */ andi $t7, $t6, 0x00C0 ## $t7 = 00000000
/* 01124 80A20EE4 11E00008 */ beq $t7, $zero, .L80A20F08
/* 01128 80A20EE8 240531A4 */ addiu $a1, $zero, 0x31A4 ## $a1 = 000031A4
/* 0112C 80A20EEC 0C2881C1 */ jal func_80A20704
/* 01130 80A20EF0 00000000 */ nop
/* 01134 80A20EF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01138 80A20EF8 0C287FE3 */ jal func_80A1FF8C
/* 0113C 80A20EFC 8FA5006C */ lw $a1, 0x006C($sp)
/* 01140 80A20F00 1000006A */ beq $zero, $zero, .L80A210AC
/* 01144 80A20F04 8FBF002C */ lw $ra, 0x002C($sp)
.L80A20F08:
/* 01148 80A20F08 A3A00037 */ sb $zero, 0x0037($sp)
/* 0114C 80A20F0C A7B80034 */ sh $t8, 0x0034($sp)
/* 01150 80A20F10 0C00BE5D */ jal func_8002F974
/* 01154 80A20F14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01158 80A20F18 86020240 */ lh $v0, 0x0240($s0) ## 00000240
/* 0115C 80A20F1C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 01160 80A20F20 24080276 */ addiu $t0, $zero, 0x0276 ## $t0 = 00000276
/* 01164 80A20F24 3042003F */ andi $v0, $v0, 0x003F ## $v0 = 00000000
/* 01168 80A20F28 28410030 */ slti $at, $v0, 0x0030
/* 0116C 80A20F2C 14200005 */ bne $at, $zero, .L80A20F44
/* 01170 80A20F30 0002C880 */ sll $t9, $v0, 2
/* 01174 80A20F34 0322C821 */ addu $t9, $t9, $v0
/* 01178 80A20F38 0019C840 */ sll $t9, $t9, 1
/* 0117C 80A20F3C 01194823 */ subu $t1, $t0, $t9
/* 01180 80A20F40 A7A90034 */ sh $t1, 0x0034($sp)
.L80A20F44:
/* 01184 80A20F44 3C0180A2 */ lui $at, %hi(D_80A21CE4) ## $at = 80A20000
/* 01188 80A20F48 C4241CE4 */ lwc1 $f4, %lo(D_80A21CE4)($at)
/* 0118C 80A20F4C E7A00040 */ swc1 $f0, 0x0040($sp)
/* 01190 80A20F50 E7A00038 */ swc1 $f0, 0x0038($sp)
/* 01194 80A20F54 E7A4003C */ swc1 $f4, 0x003C($sp)
/* 01198 80A20F58 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 0119C 80A20F5C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 011A0 80A20F60 44815000 */ mtc1 $at, $f10 ## $f10 = 20.00
/* 011A4 80A20F64 E7A60050 */ swc1 $f6, 0x0050($sp)
/* 011A8 80A20F68 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 011AC 80A20F6C 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 011B0 80A20F70 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 011B4 80A20F74 460A4400 */ add.s $f16, $f8, $f10
/* 011B8 80A20F78 44814000 */ mtc1 $at, $f8 ## $f8 = 32768.00
/* 011BC 80A20F7C 3C0180A2 */ lui $at, %hi(D_80A21CE8) ## $at = 80A20000
/* 011C0 80A20F80 E7B00054 */ swc1 $f16, 0x0054($sp)
/* 011C4 80A20F84 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 011C8 80A20F88 C4301CE8 */ lwc1 $f16, %lo(D_80A21CE8)($at)
/* 011CC 80A20F8C E7B20058 */ swc1 $f18, 0x0058($sp)
/* 011D0 80A20F90 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
/* 011D4 80A20F94 448A2000 */ mtc1 $t2, $f4 ## $f4 = 0.00
/* 011D8 80A20F98 00000000 */ nop
/* 011DC 80A20F9C 468021A0 */ cvt.s.w $f6, $f4
/* 011E0 80A20FA0 46083283 */ div.s $f10, $f6, $f8
/* 011E4 80A20FA4 46105302 */ mul.s $f12, $f10, $f16
/* 011E8 80A20FA8 0C034348 */ jal Matrix_RotateY
/* 011EC 80A20FAC 00000000 */ nop
/* 011F0 80A20FB0 3C01C000 */ lui $at, 0xC000 ## $at = C0000000
/* 011F4 80A20FB4 44812000 */ mtc1 $at, $f4 ## $f4 = -2.00
/* 011F8 80A20FB8 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 011FC 80A20FBC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 01200 80A20FC0 44813000 */ mtc1 $at, $f6 ## $f6 = 20.00
/* 01204 80A20FC4 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFF4
/* 01208 80A20FC8 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFDC
/* 0120C 80A20FCC E7A40060 */ swc1 $f4, 0x0060($sp)
/* 01210 80A20FD0 E7B2005C */ swc1 $f18, 0x005C($sp)
/* 01214 80A20FD4 0C0346BD */ jal Matrix_MultVec3f
/* 01218 80A20FD8 E7A60064 */ swc1 $f6, 0x0064($sp)
/* 0121C 80A20FDC 860B0240 */ lh $t3, 0x0240($s0) ## 00000240
/* 01220 80A20FE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01224 80A20FE4 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFE8
/* 01228 80A20FE8 316C0007 */ andi $t4, $t3, 0x0007 ## $t4 = 00000000
/* 0122C 80A20FEC 15800003 */ bne $t4, $zero, .L80A20FFC
/* 01230 80A20FF0 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFDC
/* 01234 80A20FF4 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 01238 80A20FF8 A3AD0037 */ sb $t5, 0x0037($sp)
.L80A20FFC:
/* 0123C 80A20FFC 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 01240 80A21000 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
/* 01244 80A21004 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
/* 01248 80A21008 44815000 */ mtc1 $at, $f10 ## $f10 = 25.00
/* 0124C 80A2100C 87AE0034 */ lh $t6, 0x0034($sp)
/* 01250 80A21010 93AF0037 */ lbu $t7, 0x0037($sp)
/* 01254 80A21014 27A70038 */ addiu $a3, $sp, 0x0038 ## $a3 = FFFFFFD0
/* 01258 80A21018 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 0125C 80A2101C AFAE0018 */ sw $t6, 0x0018($sp)
/* 01260 80A21020 E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 01264 80A21024 0C288540 */ jal func_80A21500
/* 01268 80A21028 AFAF001C */ sw $t7, 0x001C($sp)
/* 0126C 80A2102C C7B20044 */ lwc1 $f18, 0x0044($sp)
/* 01270 80A21030 C7B00048 */ lwc1 $f16, 0x0048($sp)
/* 01274 80A21034 C7AE004C */ lwc1 $f14, 0x004C($sp)
/* 01278 80A21038 C7AC0050 */ lwc1 $f12, 0x0050($sp)
/* 0127C 80A2103C C7AA0054 */ lwc1 $f10, 0x0054($sp)
/* 01280 80A21040 C7A80058 */ lwc1 $f8, 0x0058($sp)
/* 01284 80A21044 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01288 80A21048 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 0128C 80A2104C 87B80034 */ lh $t8, 0x0034($sp)
/* 01290 80A21050 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 01294 80A21054 46069482 */ mul.s $f18, $f18, $f6
/* 01298 80A21058 44812000 */ mtc1 $at, $f4 ## $f4 = 2.00
/* 0129C 80A2105C 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
/* 012A0 80A21060 46068402 */ mul.s $f16, $f16, $f6
/* 012A4 80A21064 44811000 */ mtc1 $at, $f2 ## $f2 = 25.00
/* 012A8 80A21068 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 012AC 80A2106C 46067182 */ mul.s $f6, $f14, $f6
/* 012B0 80A21070 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 012B4 80A21074 46126480 */ add.s $f18, $f12, $f18
/* 012B8 80A21078 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFE8
/* 012BC 80A2107C 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFDC
/* 012C0 80A21080 46105400 */ add.s $f16, $f10, $f16
/* 012C4 80A21084 E7B20050 */ swc1 $f18, 0x0050($sp)
/* 012C8 80A21088 27A70038 */ addiu $a3, $sp, 0x0038 ## $a3 = FFFFFFD0
/* 012CC 80A2108C 46064180 */ add.s $f6, $f8, $f6
/* 012D0 80A21090 E7B00054 */ swc1 $f16, 0x0054($sp)
/* 012D4 80A21094 E7A20014 */ swc1 $f2, 0x0014($sp)
/* 012D8 80A21098 AFB80018 */ sw $t8, 0x0018($sp)
/* 012DC 80A2109C E7A60058 */ swc1 $f6, 0x0058($sp)
/* 012E0 80A210A0 0C288540 */ jal func_80A21500
/* 012E4 80A210A4 AFA0001C */ sw $zero, 0x001C($sp)
/* 012E8 80A210A8 8FBF002C */ lw $ra, 0x002C($sp)
.L80A210AC:
/* 012EC 80A210AC 8FB00028 */ lw $s0, 0x0028($sp)
/* 012F0 80A210B0 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 012F4 80A210B4 03E00008 */ jr $ra
/* 012F8 80A210B8 00000000 */ nop

View file

@ -1,44 +0,0 @@
glabel func_80A2145C
/* 0169C 80A2145C 24820274 */ addiu $v0, $a0, 0x0274 ## $v0 = 00000274
/* 016A0 80A21460 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80A21464:
/* 016A4 80A21464 904E0000 */ lbu $t6, 0x0000($v0) ## 00000274
/* 016A8 80A21468 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000001
/* 016AC 80A2146C 00031C00 */ sll $v1, $v1, 16
/* 016B0 80A21470 15C0001E */ bne $t6, $zero, .L80A214EC
/* 016B4 80A21474 00031C03 */ sra $v1, $v1, 16
/* 016B8 80A21478 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 016BC 80A2147C A04F0000 */ sb $t7, 0x0000($v0) ## 00000274
/* 016C0 80A21480 8CB90000 */ lw $t9, 0x0000($a1) ## 00000000
/* 016C4 80A21484 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 016C8 80A21488 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
/* 016CC 80A2148C AC590004 */ sw $t9, 0x0004($v0) ## 00000278
/* 016D0 80A21490 8CB80004 */ lw $t8, 0x0004($a1) ## 00000004
/* 016D4 80A21494 AC580008 */ sw $t8, 0x0008($v0) ## 0000027C
/* 016D8 80A21498 8CB90008 */ lw $t9, 0x0008($a1) ## 00000008
/* 016DC 80A2149C AC59000C */ sw $t9, 0x000C($v0) ## 00000280
/* 016E0 80A214A0 8CC90000 */ lw $t1, 0x0000($a2) ## 00000000
/* 016E4 80A214A4 AC490010 */ sw $t1, 0x0010($v0) ## 00000284
/* 016E8 80A214A8 8CC80004 */ lw $t0, 0x0004($a2) ## 00000004
/* 016EC 80A214AC AC480014 */ sw $t0, 0x0014($v0) ## 00000288
/* 016F0 80A214B0 8CC90008 */ lw $t1, 0x0008($a2) ## 00000008
/* 016F4 80A214B4 AC490018 */ sw $t1, 0x0018($v0) ## 0000028C
/* 016F8 80A214B8 8CEB0000 */ lw $t3, 0x0000($a3) ## 00000000
/* 016FC 80A214BC AC4B001C */ sw $t3, 0x001C($v0) ## 00000290
/* 01700 80A214C0 8CEA0004 */ lw $t2, 0x0004($a3) ## 00000004
/* 01704 80A214C4 AC4A0020 */ sw $t2, 0x0020($v0) ## 00000294
/* 01708 80A214C8 8CEB0008 */ lw $t3, 0x0008($a3) ## 00000008
/* 0170C 80A214CC A440002E */ sh $zero, 0x002E($v0) ## 000002A2
/* 01710 80A214D0 AC4B0024 */ sw $t3, 0x0024($v0) ## 00000298
/* 01714 80A214D4 C7A40010 */ lwc1 $f4, 0x0010($sp)
/* 01718 80A214D8 A440002C */ sh $zero, 0x002C($v0) ## 000002A0
/* 0171C 80A214DC A0400001 */ sb $zero, 0x0001($v0) ## 00000275
/* 01720 80A214E0 46062203 */ div.s $f8, $f4, $f6
/* 01724 80A214E4 03E00008 */ jr $ra
/* 01728 80A214E8 E4480030 */ swc1 $f8, 0x0030($v0) ## 000002A4
.L80A214EC:
/* 0172C 80A214EC 28610028 */ slti $at, $v1, 0x0028
/* 01730 80A214F0 1420FFDC */ bne $at, $zero, .L80A21464
/* 01734 80A214F4 2442003C */ addiu $v0, $v0, 0x003C ## $v0 = 000002B0
/* 01738 80A214F8 03E00008 */ jr $ra
/* 0173C 80A214FC 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_80A21500
/* 01740 80A21500 24820274 */ addiu $v0, $a0, 0x0274 ## $v0 = 00000274
/* 01744 80A21504 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80A21508:
/* 01748 80A21508 904E0000 */ lbu $t6, 0x0000($v0) ## 00000274
/* 0174C 80A2150C 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000001
/* 01750 80A21510 00031C00 */ sll $v1, $v1, 16
/* 01754 80A21514 15C00024 */ bne $t6, $zero, .L80A215A8
/* 01758 80A21518 00031C03 */ sra $v1, $v1, 16
/* 0175C 80A2151C 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002
/* 01760 80A21520 A04F0000 */ sb $t7, 0x0000($v0) ## 00000274
/* 01764 80A21524 8CB90000 */ lw $t9, 0x0000($a1) ## 00000000
/* 01768 80A21528 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 0176C 80A2152C 44810000 */ mtc1 $at, $f0 ## $f0 = 1000.00
/* 01770 80A21530 AC590004 */ sw $t9, 0x0004($v0) ## 00000278
/* 01774 80A21534 8CB80004 */ lw $t8, 0x0004($a1) ## 00000004
/* 01778 80A21538 AC580008 */ sw $t8, 0x0008($v0) ## 0000027C
/* 0177C 80A2153C 8CB90008 */ lw $t9, 0x0008($a1) ## 00000008
/* 01780 80A21540 AC59000C */ sw $t9, 0x000C($v0) ## 00000280
/* 01784 80A21544 8CC90000 */ lw $t1, 0x0000($a2) ## 00000000
/* 01788 80A21548 AC490010 */ sw $t1, 0x0010($v0) ## 00000284
/* 0178C 80A2154C 8CC80004 */ lw $t0, 0x0004($a2) ## 00000004
/* 01790 80A21550 AC480014 */ sw $t0, 0x0014($v0) ## 00000288
/* 01794 80A21554 8CC90008 */ lw $t1, 0x0008($a2) ## 00000008
/* 01798 80A21558 AC490018 */ sw $t1, 0x0018($v0) ## 0000028C
/* 0179C 80A2155C 8CEB0000 */ lw $t3, 0x0000($a3) ## 00000000
/* 017A0 80A21560 AC4B001C */ sw $t3, 0x001C($v0) ## 00000290
/* 017A4 80A21564 8CEA0004 */ lw $t2, 0x0004($a3) ## 00000004
/* 017A8 80A21568 AC4A0020 */ sw $t2, 0x0020($v0) ## 00000294
/* 017AC 80A2156C 8CEB0008 */ lw $t3, 0x0008($a3) ## 00000008
/* 017B0 80A21570 A440002E */ sh $zero, 0x002E($v0) ## 000002A2
/* 017B4 80A21574 AC4B0024 */ sw $t3, 0x0024($v0) ## 00000298
/* 017B8 80A21578 C7A40010 */ lwc1 $f4, 0x0010($sp)
/* 017BC 80A2157C 46002183 */ div.s $f6, $f4, $f0
/* 017C0 80A21580 E4460030 */ swc1 $f6, 0x0030($v0) ## 000002A4
/* 017C4 80A21584 C7A80014 */ lwc1 $f8, 0x0014($sp)
/* 017C8 80A21588 46004283 */ div.s $f10, $f8, $f0
/* 017CC 80A2158C E44A0034 */ swc1 $f10, 0x0034($v0) ## 000002A8
/* 017D0 80A21590 87AC001A */ lh $t4, 0x001A($sp)
/* 017D4 80A21594 A0400001 */ sb $zero, 0x0001($v0) ## 00000275
/* 017D8 80A21598 A44C002C */ sh $t4, 0x002C($v0) ## 000002A0
/* 017DC 80A2159C 93AD001F */ lbu $t5, 0x001F($sp)
/* 017E0 80A215A0 03E00008 */ jr $ra
/* 017E4 80A215A4 A04D0038 */ sb $t5, 0x0038($v0) ## 000002AC
.L80A215A8:
/* 017E8 80A215A8 28610028 */ slti $at, $v1, 0x0028
/* 017EC 80A215AC 1420FFD6 */ bne $at, $zero, .L80A21508
/* 017F0 80A215B0 2442003C */ addiu $v0, $v0, 0x003C ## $v0 = 000002B0
/* 017F4 80A215B4 03E00008 */ jr $ra
/* 017F8 80A215B8 00000000 */ nop

View file

@ -1,204 +0,0 @@
.late_rodata
glabel D_80A21CEC
.float 0.1
.text
glabel func_80A215BC
/* 017FC 80A215BC 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88
/* 01800 80A215C0 F7BC0030 */ sdc1 $f28, 0x0030($sp)
/* 01804 80A215C4 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 01808 80A215C8 4481E000 */ mtc1 $at, $f28 ## $f28 = 2.00
/* 0180C 80A215CC F7BA0028 */ sdc1 $f26, 0x0028($sp)
/* 01810 80A215D0 3C0180A2 */ lui $at, %hi(D_80A21CEC) ## $at = 80A20000
/* 01814 80A215D4 C43A1CEC */ lwc1 $f26, %lo(D_80A21CEC)($at)
/* 01818 80A215D8 F7B80020 */ sdc1 $f24, 0x0020($sp)
/* 0181C 80A215DC 3C013F40 */ lui $at, 0x3F40 ## $at = 3F400000
/* 01820 80A215E0 4481C000 */ mtc1 $at, $f24 ## $f24 = 0.75
/* 01824 80A215E4 AFB60054 */ sw $s6, 0x0054($sp)
/* 01828 80A215E8 F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 0182C 80A215EC F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 01830 80A215F0 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 01834 80A215F4 AFB70058 */ sw $s7, 0x0058($sp)
/* 01838 80A215F8 AFB50050 */ sw $s5, 0x0050($sp)
/* 0183C 80A215FC AFB4004C */ sw $s4, 0x004C($sp)
/* 01840 80A21600 AFB30048 */ sw $s3, 0x0048($sp)
/* 01844 80A21604 AFB20044 */ sw $s2, 0x0044($sp)
/* 01848 80A21608 AFB10040 */ sw $s1, 0x0040($sp)
/* 0184C 80A2160C AFB0003C */ sw $s0, 0x003C($sp)
/* 01850 80A21610 3C160001 */ lui $s6, 0x0001 ## $s6 = 00010000
/* 01854 80A21614 4481A000 */ mtc1 $at, $f20 ## $f20 = 10.00
/* 01858 80A21618 4480B000 */ mtc1 $zero, $f22 ## $f22 = 0.00
/* 0185C 80A2161C 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 01860 80A21620 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 01864 80A21624 AFBF005C */ sw $ra, 0x005C($sp)
/* 01868 80A21628 24900274 */ addiu $s0, $a0, 0x0274 ## $s0 = 00000274
/* 0186C 80A2162C 36D61E60 */ ori $s6, $s6, 0x1E60 ## $s6 = 00011E60
/* 01870 80A21630 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 01874 80A21634 24130002 */ addiu $s3, $zero, 0x0002 ## $s3 = 00000002
/* 01878 80A21638 24150001 */ addiu $s5, $zero, 0x0001 ## $s5 = 00000001
/* 0187C 80A2163C 27B70064 */ addiu $s7, $sp, 0x0064 ## $s7 = FFFFFFEC
.L80A21640:
/* 01880 80A21640 920E0000 */ lbu $t6, 0x0000($s0) ## 00000274
/* 01884 80A21644 51C00083 */ beql $t6, $zero, .L80A21854
/* 01888 80A21648 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 0188C 80A2164C C6000010 */ lwc1 $f0, 0x0010($s0) ## 00000284
/* 01890 80A21650 C6040004 */ lwc1 $f4, 0x0004($s0) ## 00000278
/* 01894 80A21654 C6020014 */ lwc1 $f2, 0x0014($s0) ## 00000288
/* 01898 80A21658 C6080008 */ lwc1 $f8, 0x0008($s0) ## 0000027C
/* 0189C 80A2165C C60C0018 */ lwc1 $f12, 0x0018($s0) ## 0000028C
/* 018A0 80A21660 C610000C */ lwc1 $f16, 0x000C($s0) ## 00000280
/* 018A4 80A21664 46002180 */ add.s $f6, $f4, $f0
/* 018A8 80A21668 C604001C */ lwc1 $f4, 0x001C($s0) ## 00000290
/* 018AC 80A2166C 920F0001 */ lbu $t7, 0x0001($s0) ## 00000275
/* 018B0 80A21670 46024280 */ add.s $f10, $f8, $f2
/* 018B4 80A21674 C6080020 */ lwc1 $f8, 0x0020($s0) ## 00000294
/* 018B8 80A21678 E6060004 */ swc1 $f6, 0x0004($s0) ## 00000278
/* 018BC 80A2167C 460C8480 */ add.s $f18, $f16, $f12
/* 018C0 80A21680 C6100024 */ lwc1 $f16, 0x0024($s0) ## 00000298
/* 018C4 80A21684 E60A0008 */ swc1 $f10, 0x0008($s0) ## 0000027C
/* 018C8 80A21688 46040180 */ add.s $f6, $f0, $f4
/* 018CC 80A2168C E612000C */ swc1 $f18, 0x000C($s0) ## 00000280
/* 018D0 80A21690 92020000 */ lbu $v0, 0x0000($s0) ## 00000274
/* 018D4 80A21694 46081280 */ add.s $f10, $f2, $f8
/* 018D8 80A21698 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 018DC 80A2169C A2180001 */ sb $t8, 0x0001($s0) ## 00000275
/* 018E0 80A216A0 46106480 */ add.s $f18, $f12, $f16
/* 018E4 80A216A4 E6060010 */ swc1 $f6, 0x0010($s0) ## 00000284
/* 018E8 80A216A8 E60A0014 */ swc1 $f10, 0x0014($s0) ## 00000288
/* 018EC 80A216AC 16A20018 */ bne $s5, $v0, .L80A21710
/* 018F0 80A216B0 E6120018 */ swc1 $f18, 0x0018($s0) ## 0000028C
/* 018F4 80A216B4 8619002E */ lh $t9, 0x002E($s0) ## 000002A2
/* 018F8 80A216B8 5720000D */ bnel $t9, $zero, .L80A216F0
/* 018FC 80A216BC 860D002C */ lh $t5, 0x002C($s0) ## 000002A0
/* 01900 80A216C0 8608002C */ lh $t0, 0x002C($s0) ## 000002A0
/* 01904 80A216C4 2509000A */ addiu $t1, $t0, 0x000A ## $t1 = 0000000A
/* 01908 80A216C8 A609002C */ sh $t1, 0x002C($s0) ## 000002A0
/* 0190C 80A216CC 860A002C */ lh $t2, 0x002C($s0) ## 000002A0
/* 01910 80A216D0 29410064 */ slti $at, $t2, 0x0064
/* 01914 80A216D4 5420005F */ bnel $at, $zero, .L80A21854
/* 01918 80A216D8 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000002
/* 0191C 80A216DC 860B002E */ lh $t3, 0x002E($s0) ## 000002A2
/* 01920 80A216E0 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001
/* 01924 80A216E4 1000005A */ beq $zero, $zero, .L80A21850
/* 01928 80A216E8 A60C002E */ sh $t4, 0x002E($s0) ## 000002A2
/* 0192C 80A216EC 860D002C */ lh $t5, 0x002C($s0) ## 000002A0
.L80A216F0:
/* 01930 80A216F0 25AEFFFD */ addiu $t6, $t5, 0xFFFD ## $t6 = FFFFFFFD
/* 01934 80A216F4 A60E002C */ sh $t6, 0x002C($s0) ## 000002A0
/* 01938 80A216F8 860F002C */ lh $t7, 0x002C($s0) ## 000002A0
/* 0193C 80A216FC 5DE00055 */ bgtzl $t7, .L80A21854
/* 01940 80A21700 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000003
/* 01944 80A21704 A600002C */ sh $zero, 0x002C($s0) ## 000002A0
/* 01948 80A21708 10000051 */ beq $zero, $zero, .L80A21850
/* 0194C 80A2170C A2000000 */ sb $zero, 0x0000($s0) ## 00000274
.L80A21710:
/* 01950 80A21710 56620050 */ bnel $s3, $v0, .L80A21854
/* 01954 80A21714 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000004
/* 01958 80A21718 C6000034 */ lwc1 $f0, 0x0034($s0) ## 000002A8
/* 0195C 80A2171C 4406D000 */ mfc1 $a2, $f26
/* 01960 80A21720 26040030 */ addiu $a0, $s0, 0x0030 ## $a0 = 000002A4
/* 01964 80A21724 46140103 */ div.s $f4, $f0, $f20
/* 01968 80A21728 44050000 */ mfc1 $a1, $f0
/* 0196C 80A2172C 44072000 */ mfc1 $a3, $f4
/* 01970 80A21730 0C01E107 */ jal Math_ApproachF
/* 01974 80A21734 00000000 */ nop
/* 01978 80A21738 8602002E */ lh $v0, 0x002E($s0) ## 000002A2
/* 0197C 80A2173C 54400009 */ bnel $v0, $zero, .L80A21764
/* 01980 80A21740 C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000284
/* 01984 80A21744 92180001 */ lbu $t8, 0x0001($s0) ## 00000275
/* 01988 80A21748 24590001 */ addiu $t9, $v0, 0x0001 ## $t9 = 00000001
/* 0198C 80A2174C 2B010007 */ slti $at, $t8, 0x0007
/* 01990 80A21750 54200012 */ bnel $at, $zero, .L80A2179C
/* 01994 80A21754 922B0263 */ lbu $t3, 0x0263($s1) ## 00000263
/* 01998 80A21758 1000000F */ beq $zero, $zero, .L80A21798
/* 0199C 80A2175C A619002E */ sh $t9, 0x002E($s0) ## 000002A2
/* 019A0 80A21760 C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000284
.L80A21764:
/* 019A4 80A21764 C60A0018 */ lwc1 $f10, 0x0018($s0) ## 0000028C
/* 019A8 80A21768 8608002C */ lh $t0, 0x002C($s0) ## 000002A0
/* 019AC 80A2176C 46183202 */ mul.s $f8, $f6, $f24
/* 019B0 80A21770 E61C0020 */ swc1 $f28, 0x0020($s0) ## 00000294
/* 019B4 80A21774 2509FFEF */ addiu $t1, $t0, 0xFFEF ## $t1 = FFFFFFEF
/* 019B8 80A21778 46185402 */ mul.s $f16, $f10, $f24
/* 019BC 80A2177C A609002C */ sh $t1, 0x002C($s0) ## 000002A0
/* 019C0 80A21780 860A002C */ lh $t2, 0x002C($s0) ## 000002A0
/* 019C4 80A21784 E6080010 */ swc1 $f8, 0x0010($s0) ## 00000284
/* 019C8 80A21788 1D400003 */ bgtz $t2, .L80A21798
/* 019CC 80A2178C E6100018 */ swc1 $f16, 0x0018($s0) ## 0000028C
/* 019D0 80A21790 A600002C */ sh $zero, 0x002C($s0) ## 000002A0
/* 019D4 80A21794 A2000000 */ sb $zero, 0x0000($s0) ## 00000274
.L80A21798:
/* 019D8 80A21798 922B0263 */ lbu $t3, 0x0263($s1) ## 00000263
.L80A2179C:
/* 019DC 80A2179C 5560001B */ bnel $t3, $zero, .L80A2180C
/* 019E0 80A217A0 C6120004 */ lwc1 $f18, 0x0004($s0) ## 00000278
/* 019E4 80A217A4 860C002C */ lh $t4, 0x002C($s0) ## 000002A0
/* 019E8 80A217A8 29810065 */ slti $at, $t4, 0x0065
/* 019EC 80A217AC 54200017 */ bnel $at, $zero, .L80A2180C
/* 019F0 80A217B0 C6120004 */ lwc1 $f18, 0x0004($s0) ## 00000278
/* 019F4 80A217B4 920D0038 */ lbu $t5, 0x0038($s0) ## 000002AC
/* 019F8 80A217B8 51A00014 */ beql $t5, $zero, .L80A2180C
/* 019FC 80A217BC C6120004 */ lwc1 $f18, 0x0004($s0) ## 00000278
/* 01A00 80A217C0 C6120004 */ lwc1 $f18, 0x0004($s0) ## 00000278
/* 01A04 80A217C4 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 01A08 80A217C8 02962821 */ addu $a1, $s4, $s6
/* 01A0C 80A217CC 4600910D */ trunc.w.s $f4, $f18
/* 01A10 80A217D0 262601E8 */ addiu $a2, $s1, 0x01E8 ## $a2 = 000001E8
/* 01A14 80A217D4 440F2000 */ mfc1 $t7, $f4
/* 01A18 80A217D8 00000000 */ nop
/* 01A1C 80A217DC A62F022E */ sh $t7, 0x022E($s1) ## 0000022E
/* 01A20 80A217E0 C6060008 */ lwc1 $f6, 0x0008($s0) ## 0000027C
/* 01A24 80A217E4 4600320D */ trunc.w.s $f8, $f6
/* 01A28 80A217E8 44194000 */ mfc1 $t9, $f8
/* 01A2C 80A217EC 00000000 */ nop
/* 01A30 80A217F0 A6390230 */ sh $t9, 0x0230($s1) ## 00000230
/* 01A34 80A217F4 C60A000C */ lwc1 $f10, 0x000C($s0) ## 00000280
/* 01A38 80A217F8 4600540D */ trunc.w.s $f16, $f10
/* 01A3C 80A217FC 44098000 */ mfc1 $t1, $f16
/* 01A40 80A21800 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 01A44 80A21804 A6290232 */ sh $t1, 0x0232($s1) ## 00000232
/* 01A48 80A21808 C6120004 */ lwc1 $f18, 0x0004($s0) ## 00000278
.L80A2180C:
/* 01A4C 80A2180C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01A50 80A21810 E7B20064 */ swc1 $f18, 0x0064($sp)
/* 01A54 80A21814 C6040008 */ lwc1 $f4, 0x0008($s0) ## 0000027C
/* 01A58 80A21818 46142180 */ add.s $f6, $f4, $f20
/* 01A5C 80A2181C E7A60068 */ swc1 $f6, 0x0068($sp)
/* 01A60 80A21820 C608000C */ lwc1 $f8, 0x000C($s0) ## 00000280
/* 01A64 80A21824 E7A8006C */ swc1 $f8, 0x006C($sp)
/* 01A68 80A21828 860A002E */ lh $t2, 0x002E($s0) ## 000002A2
/* 01A6C 80A2182C 526A0009 */ beql $s3, $t2, .L80A21854
/* 01A70 80A21830 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000005
/* 01A74 80A21834 0C28802C */ jal func_80A200B0
/* 01A78 80A21838 02E02825 */ or $a1, $s7, $zero ## $a1 = FFFFFFEC
/* 01A7C 80A2183C 50400005 */ beql $v0, $zero, .L80A21854
/* 01A80 80A21840 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000006
/* 01A84 80A21844 A613002E */ sh $s3, 0x002E($s0) ## 000002A2
/* 01A88 80A21848 E6160010 */ swc1 $f22, 0x0010($s0) ## 00000284
/* 01A8C 80A2184C E6160018 */ swc1 $f22, 0x0018($s0) ## 0000028C
.L80A21850:
/* 01A90 80A21850 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000007
.L80A21854:
/* 01A94 80A21854 00129400 */ sll $s2, $s2, 16
/* 01A98 80A21858 00129403 */ sra $s2, $s2, 16
/* 01A9C 80A2185C 2A410028 */ slti $at, $s2, 0x0028
/* 01AA0 80A21860 1420FF77 */ bne $at, $zero, .L80A21640
/* 01AA4 80A21864 2610003C */ addiu $s0, $s0, 0x003C ## $s0 = 000002B0
/* 01AA8 80A21868 8FBF005C */ lw $ra, 0x005C($sp)
/* 01AAC 80A2186C D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 01AB0 80A21870 D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 01AB4 80A21874 D7B80020 */ ldc1 $f24, 0x0020($sp)
/* 01AB8 80A21878 D7BA0028 */ ldc1 $f26, 0x0028($sp)
/* 01ABC 80A2187C D7BC0030 */ ldc1 $f28, 0x0030($sp)
/* 01AC0 80A21880 8FB0003C */ lw $s0, 0x003C($sp)
/* 01AC4 80A21884 8FB10040 */ lw $s1, 0x0040($sp)
/* 01AC8 80A21888 8FB20044 */ lw $s2, 0x0044($sp)
/* 01ACC 80A2188C 8FB30048 */ lw $s3, 0x0048($sp)
/* 01AD0 80A21890 8FB4004C */ lw $s4, 0x004C($sp)
/* 01AD4 80A21894 8FB50050 */ lw $s5, 0x0050($sp)
/* 01AD8 80A21898 8FB60054 */ lw $s6, 0x0054($sp)
/* 01ADC 80A2189C 8FB70058 */ lw $s7, 0x0058($sp)
/* 01AE0 80A218A0 03E00008 */ jr $ra
/* 01AE4 80A218A4 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000

View file

@ -1,196 +0,0 @@
.rdata
glabel D_80A21C90
.asciz "../z_en_fz.c"
.balign 4
glabel D_80A21CA0
.asciz "../z_en_fz.c"
.balign 4
glabel D_80A21CB0
.asciz "../z_en_fz.c"
.balign 4
.text
glabel func_80A218A8
/* 01AE8 80A218A8 27BDFF40 */ addiu $sp, $sp, 0xFF40 ## $sp = FFFFFF40
/* 01AEC 80A218AC AFBF0064 */ sw $ra, 0x0064($sp)
/* 01AF0 80A218B0 AFBE0060 */ sw $s8, 0x0060($sp)
/* 01AF4 80A218B4 AFB7005C */ sw $s7, 0x005C($sp)
/* 01AF8 80A218B8 AFB60058 */ sw $s6, 0x0058($sp)
/* 01AFC 80A218BC AFB50054 */ sw $s5, 0x0054($sp)
/* 01B00 80A218C0 AFB40050 */ sw $s4, 0x0050($sp)
/* 01B04 80A218C4 AFB3004C */ sw $s3, 0x004C($sp)
/* 01B08 80A218C8 AFB20048 */ sw $s2, 0x0048($sp)
/* 01B0C 80A218CC AFB10044 */ sw $s1, 0x0044($sp)
/* 01B10 80A218D0 AFB00040 */ sw $s0, 0x0040($sp)
/* 01B14 80A218D4 F7B40038 */ sdc1 $f20, 0x0038($sp)
/* 01B18 80A218D8 AFA500C4 */ sw $a1, 0x00C4($sp)
/* 01B1C 80A218DC 8CB00000 */ lw $s0, 0x0000($a1) ## 00000000
/* 01B20 80A218E0 24920274 */ addiu $s2, $a0, 0x0274 ## $s2 = 00000274
/* 01B24 80A218E4 3C0680A2 */ lui $a2, %hi(D_80A21C90) ## $a2 = 80A20000
/* 01B28 80A218E8 0000A825 */ or $s5, $zero, $zero ## $s5 = 00000000
/* 01B2C 80A218EC 24C61C90 */ addiu $a2, $a2, %lo(D_80A21C90) ## $a2 = 80A21C90
/* 01B30 80A218F0 27A4009C */ addiu $a0, $sp, 0x009C ## $a0 = FFFFFFDC
/* 01B34 80A218F4 24070568 */ addiu $a3, $zero, 0x0568 ## $a3 = 00000568
/* 01B38 80A218F8 0C031AB1 */ jal Graph_OpenDisps
/* 01B3C 80A218FC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 01B40 80A21900 8FAF00C4 */ lw $t7, 0x00C4($sp)
/* 01B44 80A21904 0C024F61 */ jal func_80093D84
/* 01B48 80A21908 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 01B4C 80A2190C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01B50 80A21910 4481A000 */ mtc1 $at, $f20 ## $f20 = 1.00
/* 01B54 80A21914 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 01B58 80A21918 3C1EDE00 */ lui $s8, 0xDE00 ## $s8 = DE000000
.L80A2191C:
/* 01B5C 80A2191C 92580000 */ lbu $t8, 0x0000($s2) ## 00000274
/* 01B60 80A21920 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01B64 80A21924 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
/* 01B68 80A21928 1B000078 */ blez $t8, .L80A21B0C
/* 01B6C 80A2192C 8FB400C4 */ lw $s4, 0x00C4($sp)
/* 01B70 80A21930 0281A021 */ addu $s4, $s4, $at
/* 01B74 80A21934 3C020600 */ lui $v0, %hi(D_06003158) ## $v0 = 06000000
/* 01B78 80A21938 24423158 */ addiu $v0, $v0, %lo(D_06003158) ## $v0 = 06003158
/* 01B7C 80A2193C 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 01B80 80A21940 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 01B84 80A21944 0041B824 */ and $s7, $v0, $at
/* 01B88 80A21948 0002C900 */ sll $t9, $v0, 4
/* 01B8C 80A2194C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01B90 80A21950 00194F02 */ srl $t1, $t9, 28
/* 01B94 80A21954 3C0B8016 */ lui $t3, %hi(gSegments)
/* 01B98 80A21958 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 06003160
/* 01B9C 80A2195C AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 01BA0 80A21960 256B6FA8 */ addiu $t3, %lo(gSegments)
/* 01BA4 80A21964 00095080 */ sll $t2, $t1, 2
/* 01BA8 80A21968 3C0DE700 */ lui $t5, 0xE700 ## $t5 = E7000000
/* 01BAC 80A2196C 014BB021 */ addu $s6, $t2, $t3
/* 01BB0 80A21970 AC4D0000 */ sw $t5, 0x0000($v0) ## 06003158
/* 01BB4 80A21974 16A00017 */ bne $s5, $zero, .L80A219D4
/* 01BB8 80A21978 AC400004 */ sw $zero, 0x0004($v0) ## 0600315C
/* 01BBC 80A2197C 3C020600 */ lui $v0, %hi(D_060030A0) ## $v0 = 06000000
/* 01BC0 80A21980 244230A0 */ addiu $v0, $v0, %lo(D_060030A0) ## $v0 = 060030A0
/* 01BC4 80A21984 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 01BC8 80A21988 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 01BCC 80A2198C 00412824 */ and $a1, $v0, $at
/* 01BD0 80A21990 00027100 */ sll $t6, $v0, 4
/* 01BD4 80A21994 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01BD8 80A21998 000E7F02 */ srl $t7, $t6, 28
/* 01BDC 80A2199C 3C198016 */ lui $t9, %hi(gSegments)
/* 01BE0 80A219A0 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 060030A8
/* 01BE4 80A219A4 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 01BE8 80A219A8 27396FA8 */ addiu $t9, %lo(gSegments)
/* 01BEC 80A219AC 000FC080 */ sll $t8, $t7, 2
/* 01BF0 80A219B0 03192021 */ addu $a0, $t8, $t9
/* 01BF4 80A219B4 AC5E0000 */ sw $s8, 0x0000($v0) ## 060030A0
/* 01BF8 80A219B8 8C8A0000 */ lw $t2, 0x0000($a0) ## 00000000
/* 01BFC 80A219BC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 01C00 80A219C0 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000001
/* 01C04 80A219C4 01455821 */ addu $t3, $t2, $a1
/* 01C08 80A219C8 01616021 */ addu $t4, $t3, $at
/* 01C0C 80A219CC 32B500FF */ andi $s5, $s5, 0x00FF ## $s5 = 00000001
/* 01C10 80A219D0 AC4C0004 */ sw $t4, 0x0004($v0) ## 060030A4
.L80A219D4:
/* 01C14 80A219D4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01C18 80A219D8 3C0EFA00 */ lui $t6, 0xFA00 ## $t6 = FA000000
/* 01C1C 80A219DC 3C01C3E1 */ lui $at, 0xC3E1 ## $at = C3E10000
/* 01C20 80A219E0 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 060030A8
/* 01C24 80A219E4 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 01C28 80A219E8 AC4E0000 */ sw $t6, 0x0000($v0) ## 060030A0
/* 01C2C 80A219EC 864F002C */ lh $t7, 0x002C($s2) ## 000002A0
/* 01C30 80A219F0 24080003 */ addiu $t0, $zero, 0x0003 ## $t0 = 00000003
/* 01C34 80A219F4 02680019 */ multu $s3, $t0
/* 01C38 80A219F8 3421EB00 */ ori $at, $at, 0xEB00 ## $at = C3E1EB00
/* 01C3C 80A219FC 31F800FF */ andi $t8, $t7, 0x00FF ## $t8 = 00000000
/* 01C40 80A21A00 0301C825 */ or $t9, $t8, $at ## $t9 = C3E1EB00
/* 01C44 80A21A04 AC590004 */ sw $t9, 0x0004($v0) ## 060030A4
/* 01C48 80A21A08 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01C4C 80A21A0C 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000
/* 01C50 80A21A10 354A0020 */ ori $t2, $t2, 0x0020 ## $t2 = DB060020
/* 01C54 80A21A14 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 060030A8
/* 01C58 80A21A18 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 01C5C 80A21A1C AC4A0000 */ sw $t2, 0x0000($v0) ## 060030A0
/* 01C60 80A21A20 924C0001 */ lbu $t4, 0x0001($s2) ## 00000275
/* 01C64 80A21A24 00006812 */ mflo $t5
/* 01C68 80A21A28 8FAB00C4 */ lw $t3, 0x00C4($sp)
/* 01C6C 80A21A2C 018D1821 */ addu $v1, $t4, $t5
/* 01C70 80A21A30 00680019 */ multu $v1, $t0
/* 01C74 80A21A34 8D640000 */ lw $a0, 0x0000($t3) ## 80166FA8
/* 01C78 80A21A38 00033900 */ sll $a3, $v1, 4
/* 01C7C 80A21A3C 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
/* 01C80 80A21A40 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 01C84 80A21A44 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 01C88 80A21A48 240F0040 */ addiu $t7, $zero, 0x0040 ## $t7 = 00000040
/* 01C8C 80A21A4C 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
/* 01C90 80A21A50 AFAE0010 */ sw $t6, 0x0010($sp)
/* 01C94 80A21A54 AFAF0014 */ sw $t7, 0x0014($sp)
/* 01C98 80A21A58 00003012 */ mflo $a2
/* 01C9C 80A21A5C AFB80018 */ sw $t8, 0x0018($sp)
/* 01CA0 80A21A60 AFB90024 */ sw $t9, 0x0024($sp)
/* 01CA4 80A21A64 AFA90028 */ sw $t1, 0x0028($sp)
/* 01CA8 80A21A68 00E33823 */ subu $a3, $a3, $v1
/* 01CAC 80A21A6C AFA00020 */ sw $zero, 0x0020($sp)
/* 01CB0 80A21A70 AFA0001C */ sw $zero, 0x001C($sp)
/* 01CB4 80A21A74 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 01CB8 80A21A78 0C0253D0 */ jal Gfx_TwoTexScroll
/* 01CBC 80A21A7C 00408825 */ or $s1, $v0, $zero ## $s1 = 060030A0
/* 01CC0 80A21A80 AE220004 */ sw $v0, 0x0004($s1) ## 060030A4
/* 01CC4 80A21A84 8E46000C */ lw $a2, 0x000C($s2) ## 00000280
/* 01CC8 80A21A88 C64E0008 */ lwc1 $f14, 0x0008($s2) ## 0000027C
/* 01CCC 80A21A8C C64C0004 */ lwc1 $f12, 0x0004($s2) ## 00000278
/* 01CD0 80A21A90 0C034261 */ jal Matrix_Translate
/* 01CD4 80A21A94 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01CD8 80A21A98 0C0347F5 */ jal func_800D1FD4
/* 01CDC 80A21A9C 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 01CE0 80A21AA0 C64C0030 */ lwc1 $f12, 0x0030($s2) ## 000002A4
/* 01CE4 80A21AA4 4406A000 */ mfc1 $a2, $f20
/* 01CE8 80A21AA8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01CEC 80A21AAC 0C0342A3 */ jal Matrix_Scale
/* 01CF0 80A21AB0 46006386 */ mov.s $f14, $f12
/* 01CF4 80A21AB4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01CF8 80A21AB8 3C0BDA38 */ lui $t3, 0xDA38 ## $t3 = DA380000
/* 01CFC 80A21ABC 356B0003 */ ori $t3, $t3, 0x0003 ## $t3 = DA380003
/* 01D00 80A21AC0 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 01D04 80A21AC4 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 01D08 80A21AC8 3C0580A2 */ lui $a1, %hi(D_80A21CA0) ## $a1 = 80A20000
/* 01D0C 80A21ACC 24A51CA0 */ addiu $a1, $a1, %lo(D_80A21CA0) ## $a1 = 80A21CA0
/* 01D10 80A21AD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01D14 80A21AD4 24060590 */ addiu $a2, $zero, 0x0590 ## $a2 = 00000590
/* 01D18 80A21AD8 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 01D1C 80A21ADC 0C0346A2 */ jal Matrix_NewMtx
/* 01D20 80A21AE0 00408825 */ or $s1, $v0, $zero ## $s1 = 00000000
/* 01D24 80A21AE4 AE220004 */ sw $v0, 0x0004($s1) ## 00000004
/* 01D28 80A21AE8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01D2C 80A21AEC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 01D30 80A21AF0 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 01D34 80A21AF4 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 01D38 80A21AF8 AC5E0000 */ sw $s8, 0x0000($v0) ## 00000000
/* 01D3C 80A21AFC 8ECD0000 */ lw $t5, 0x0000($s6) ## 00000000
/* 01D40 80A21B00 01B77021 */ addu $t6, $t5, $s7
/* 01D44 80A21B04 01C17821 */ addu $t7, $t6, $at
/* 01D48 80A21B08 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
.L80A21B0C:
/* 01D4C 80A21B0C 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 01D50 80A21B10 00139C00 */ sll $s3, $s3, 16
/* 01D54 80A21B14 00139C03 */ sra $s3, $s3, 16
/* 01D58 80A21B18 2A610028 */ slti $at, $s3, 0x0028
/* 01D5C 80A21B1C 1420FF7F */ bne $at, $zero, .L80A2191C
/* 01D60 80A21B20 2652003C */ addiu $s2, $s2, 0x003C ## $s2 = 000002B0
/* 01D64 80A21B24 3C0680A2 */ lui $a2, %hi(D_80A21CB0) ## $a2 = 80A20000
/* 01D68 80A21B28 24C61CB0 */ addiu $a2, $a2, %lo(D_80A21CB0) ## $a2 = 80A21CB0
/* 01D6C 80A21B2C 27A4009C */ addiu $a0, $sp, 0x009C ## $a0 = FFFFFFDC
/* 01D70 80A21B30 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 01D74 80A21B34 0C031AD5 */ jal Graph_CloseDisps
/* 01D78 80A21B38 24070596 */ addiu $a3, $zero, 0x0596 ## $a3 = 00000596
/* 01D7C 80A21B3C 8FBF0064 */ lw $ra, 0x0064($sp)
/* 01D80 80A21B40 D7B40038 */ ldc1 $f20, 0x0038($sp)
/* 01D84 80A21B44 8FB00040 */ lw $s0, 0x0040($sp)
/* 01D88 80A21B48 8FB10044 */ lw $s1, 0x0044($sp)
/* 01D8C 80A21B4C 8FB20048 */ lw $s2, 0x0048($sp)
/* 01D90 80A21B50 8FB3004C */ lw $s3, 0x004C($sp)
/* 01D94 80A21B54 8FB40050 */ lw $s4, 0x0050($sp)
/* 01D98 80A21B58 8FB50054 */ lw $s5, 0x0054($sp)
/* 01D9C 80A21B5C 8FB60058 */ lw $s6, 0x0058($sp)
/* 01DA0 80A21B60 8FB7005C */ lw $s7, 0x005C($sp)
/* 01DA4 80A21B64 8FBE0060 */ lw $s8, 0x0060($sp)
/* 01DA8 80A21B68 03E00008 */ jr $ra
/* 01DAC 80A21B6C 27BD00C0 */ addiu $sp, $sp, 0x00C0 ## $sp = 00000000

View file

@ -1,35 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel En_Fz_InitVars
.word 0x01210500, 0x00000415, 0x01140000, 0x00000BD4
.word EnFz_Init
.word EnFz_Destroy
.word EnFz_Update
.word EnFz_Draw
glabel D_80A21B90
.word 0x0A110939, 0x01000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0xFFCE0FDB, 0x00000000, 0x01050100, 0x001E0050, 0x00000000, 0x00000000
glabel D_80A21BBC
.word 0x09000D00, 0x01000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x0001F024, 0x00000000, 0x00010000, 0x00230050, 0x00000000, 0x00000000
glabel D_80A21BE8
.word 0x0A110000, 0x01000000, 0x00000000, 0x20000000, 0x02080000, 0x00000000, 0x00000000, 0x01000000, 0x0014001E, 0xFFF10000, 0x00000000
glabel D_80A21C14
.word 0x00F0F0F2, 0xF0F0F2F2, 0xF0F2F424, 0xF0F0F0F0, 0xF0240000, 0x0000F0F4, 0xF2F0F8F4, 0x00000000
glabel D_80A21C34
.word 0x8917003B, 0x801F0002, 0x304C001E
glabel jtbl_80A21C40
.word L80A202F4
.word func_80A202FC
.word func_80A203DC
.word func_80A203DC
glabel D_80A21C50
.word 0x06001130, 0x060021A0, 0x06002CA0, 0x00000000

View file

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

3
spec
View file

@ -2283,8 +2283,7 @@ endseg
beginseg
name "ovl_En_Fz"
include "build/src/overlays/actors/ovl_En_Fz/z_en_fz.o"
include "build/data/overlays/actors/z_en_fz.data.o"
include "build/data/overlays/actors/z_en_fz.reloc.o"
include "build/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o"
endseg
beginseg

View file

@ -9,12 +9,47 @@ void EnFz_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnFz_Update(Actor* thisx, GlobalContext* globalCtx);
void EnFz_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_060030A0;
extern UNK_TYPE D_060030A8;
extern UNK_TYPE D_06003158;
extern UNK_TYPE D_06003160;
void EnFz_UpdateTargetPos(EnFz* this, GlobalContext* globalCtx);
// Stationary Freezard
void EnFz_SetupBlowSmokeStationary(EnFz* this);
void EnFz_BlowSmokeStationary(EnFz* this, GlobalContext* globalCtx);
// Moving Freezard that can vanish and reappear
void EnFz_Wait(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupAppear(EnFz* this);
void EnFz_Appear(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupAimForMove(EnFz* this);
void EnFz_AimForMove(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupMoveTowardsPlayer(EnFz* this);
void EnFz_MoveTowardsPlayer(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupAimForFreeze(EnFz* this);
void EnFz_AimForFreeze(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupBlowSmoke(EnFz* this, GlobalContext* globalCtx);
void EnFz_BlowSmoke(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupDisappear(EnFz* this);
void EnFz_Disappear(EnFz* this, GlobalContext* globalCtx);
void EnFz_SetupWait(EnFz* this);
// Killed with fire source
void EnFz_SetupMelt(EnFz* this);
void EnFz_Melt(EnFz* this, GlobalContext* globalCtx);
// Death
void EnFz_SetupDespawn(EnFz* this, GlobalContext* globalCtx);
void EnFz_Despawn(EnFz* this, GlobalContext* globalCtx);
// Ice Smoke Effects
void EnFz_SpawnIceSmokeNoFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel, f32 xyScale);
void EnFz_SpawnIceSmokeFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel, f32 xyScale, f32 xyScaleTarget,
s16 primAlpha, u8 isTimerMod8);
void EnFz_UpdateIceSmoke(EnFz* this, GlobalContext* globalCtx);
void EnFz_DrawIceSmoke(EnFz* this, GlobalContext* globalCtx);
// Same effects as "z_eff_ss_ice_smoke.h"
extern Gfx* D_060030A0[];
extern Gfx* D_06003158[];
/*
const ActorInit En_Fz_InitVars = {
ACTOR_EN_FZ,
ACTORCAT_ENEMY,
@ -27,7 +62,7 @@ const ActorInit En_Fz_InitVars = {
(ActorFunc)EnFz_Draw,
};
static ColliderCylinderInitType1 sCylinderInit = {
static ColliderCylinderInitType1 sCylinderInit1 = {
{
COLTYPE_NONE,
AT_ON | AT_TYPE_ENEMY,
@ -46,7 +81,7 @@ static ColliderCylinderInitType1 sCylinderInit = {
{ 30, 80, 0, { 0, 0, 0 } },
};
static ColliderCylinderInitType1 sCylinderInit = {
static ColliderCylinderInitType1 sCylinderInit2 = {
{
COLTYPE_METAL,
AT_NONE,
@ -65,7 +100,7 @@ static ColliderCylinderInitType1 sCylinderInit = {
{ 35, 80, 0, { 0, 0, 0 } },
};
static ColliderCylinderInitType1 sCylinderInit = {
static ColliderCylinderInitType1 sCylinderInit3 = {
{
COLTYPE_NONE,
AT_ON | AT_TYPE_ENEMY,
@ -83,73 +118,779 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{ 20, 30, -15, { 0, 0, 0 } },
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/EnFz_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/EnFz_Destroy.s")
DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, 0x0),
/* Deku stick */ DMG_ENTRY(0, 0xF),
/* Slingshot */ DMG_ENTRY(0, 0xF),
/* Explosive */ DMG_ENTRY(2, 0xF),
/* Boomerang */ DMG_ENTRY(0, 0xF),
/* Normal arrow */ DMG_ENTRY(0, 0xF),
/* Hammer swing */ DMG_ENTRY(2, 0xF),
/* Hookshot */ DMG_ENTRY(2, 0xF),
/* Kokiri sword */ DMG_ENTRY(0, 0xF),
/* Master sword */ DMG_ENTRY(2, 0xF),
/* Giant's Knife */ DMG_ENTRY(4, 0xF),
/* Fire arrow */ DMG_ENTRY(4, 0x2),
/* Ice arrow */ DMG_ENTRY(0, 0xF),
/* Light arrow */ DMG_ENTRY(0, 0xF),
/* Unk arrow 1 */ DMG_ENTRY(0, 0xF),
/* Unk arrow 2 */ DMG_ENTRY(0, 0xF),
/* Unk arrow 3 */ DMG_ENTRY(0, 0xF),
/* Fire magic */ DMG_ENTRY(4, 0x2),
/* Ice magic */ DMG_ENTRY(0, 0x0),
/* Light magic */ DMG_ENTRY(0, 0x0),
/* Shield */ DMG_ENTRY(0, 0x0),
/* Mirror Ray */ DMG_ENTRY(0, 0x0),
/* Kokiri spin */ DMG_ENTRY(0, 0xF),
/* Giant spin */ DMG_ENTRY(4, 0xF),
/* Master spin */ DMG_ENTRY(2, 0xF),
/* Kokiri jump */ DMG_ENTRY(0, 0xF),
/* Giant jump */ DMG_ENTRY(8, 0xF),
/* Master jump */ DMG_ENTRY(4, 0xF),
/* Unknown 1 */ DMG_ENTRY(0, 0x0),
/* Unblockable */ DMG_ENTRY(0, 0x0),
/* Hammer jump */ DMG_ENTRY(0, 0x0),
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A1FF8C.s")
static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 59, ICHAIN_CONTINUE),
ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A200B0.s")
void EnFz_Init(Actor* thisx, GlobalContext* globalCtx) {
EnFz* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20100.s")
Actor_ProcessInitChain(&this->actor, sInitChain);
this->actor.colChkInfo.damageTable = &sDamageTable;
this->actor.colChkInfo.health = 6;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A202FC.s")
Collider_InitCylinder(globalCtx, &this->collider1);
Collider_SetCylinderType1(globalCtx, &this->collider1, &this->actor, &sCylinderInit1);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A203DC.s")
Collider_InitCylinder(globalCtx, &this->collider2);
Collider_SetCylinderType1(globalCtx, &this->collider2, &this->actor, &sCylinderInit2);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A204A0.s")
Collider_InitCylinder(globalCtx, &this->collider3);
Collider_SetCylinderType1(globalCtx, &this->collider3, &this->actor, &sCylinderInit3);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20704.s")
Actor_SetScale(&this->actor, 0.008f);
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
this->actor.flags &= ~1;
this->unusedTimer1 = 0;
this->unusedCounter = 0;
this->updateBgInfo = true;
this->isMoving = false;
this->isFreezing = false;
this->isActive = true;
this->isDespawning = false;
this->actor.speedXZ = 0.0f;
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
this->posOrigin.y = this->actor.world.pos.y;
this->iceSmokeFreezingSpawnHeight = this->actor.world.pos.y;
this->posOrigin.x = this->actor.world.pos.x;
this->posOrigin.z = this->actor.world.pos.z;
this->unusedFloat = 135.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20748.s")
if (this->actor.params < 0) {
this->envAlpha = 0;
this->actor.scale.y = 0.0f;
EnFz_SetupWait(this);
} else {
this->envAlpha = 255;
EnFz_SetupBlowSmokeStationary(this);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20774.s")
EnFz_UpdateTargetPos(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A207F4.s")
void EnFz_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnFz* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20830.s")
Collider_DestroyCylinder(globalCtx, &this->collider1);
Collider_DestroyCylinder(globalCtx, &this->collider2);
Collider_DestroyCylinder(globalCtx, &this->collider3);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20880.s")
void EnFz_UpdateTargetPos(EnFz* this, GlobalContext* globalCtx) {
Vec3f pos;
Vec3f hitPos;
Vec3f vec1;
s32 bgId;
CollisionPoly* hitPoly;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A208A8.s")
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + 20.0f;
pos.z = this->actor.world.pos.z;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20938.s")
Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_NEW);
Matrix_RotateRPY(this->actor.shape.rot.x, this->actor.shape.rot.y, this->actor.shape.rot.z, MTXMODE_APPLY);
vec1.x = vec1.y = 0.0f;
vec1.z = 220.0f;
Matrix_MultVec3f(&vec1, &this->wallHitPos);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20978.s")
if (BgCheck_EntityLineTest1(&globalCtx->colCtx, &pos, &this->wallHitPos, &hitPos, &hitPoly, true, false, false,
true, &bgId)) {
Math_Vec3f_Copy(&this->wallHitPos, &hitPos);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A209B4.s")
pos.x = this->actor.world.pos.x - this->wallHitPos.x;
pos.z = this->actor.world.pos.z - this->wallHitPos.z;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A209E4.s")
this->distToTargetSq = SQ(pos.x) + SQ(pos.z);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20A20.s")
s32 EnFz_ReachedTarget(EnFz* this, Vec3f* vec) {
if (this->distToTargetSq <= (SQ(this->actor.world.pos.x - vec->x) + SQ(this->actor.world.pos.z - vec->z))) {
return true;
} else {
return false;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20A4C.s")
void EnFz_Damaged(EnFz* this, GlobalContext* globalCtx, Vec3f* vec, s32 numEffects, f32 unkFloat) {
s32 i;
Vec3f pos;
Vec3f vel;
Vec3f accel;
Color_RGBA8 primColor;
Color_RGBA8 envColor;
f32 scale;
s32 life;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20A88.s")
primColor.r = 155;
primColor.g = 255;
primColor.b = 255;
primColor.a = 255;
envColor.r = 200;
envColor.g = 200;
envColor.b = 200;
accel.x = accel.z = 0.0f;
accel.y = -1.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20AC0.s")
for (i = 0; i < numEffects; i++) {
scale = Rand_CenteredFloat(0.3f) + 0.6f;
life = (s32)Rand_CenteredFloat(5.0f) + 12;
pos.x = Rand_CenteredFloat(unkFloat) + vec->x;
pos.y = Rand_ZeroFloat(unkFloat) + vec->y;
pos.z = Rand_CenteredFloat(unkFloat) + vec->z;
vel.x = Rand_CenteredFloat(10.0f);
vel.y = Rand_ZeroFloat(10.0f) + 2.0f;
vel.z = Rand_CenteredFloat(10.0f);
EffectSsEnIce_Spawn(globalCtx, &pos, scale, &vel, &accel, &primColor, &envColor, life);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20CAC.s")
CollisionCheck_SpawnShieldParticles(globalCtx, vec);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20D4C.s")
void EnFz_SpawnIceSmokeHiddenState(EnFz* this) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20D7C.s")
// Fully grown
void EnFz_SpawnIceSmokeGrowingState(EnFz* this) {
Vec3f pos;
Vec3f velocity;
Vec3f accel;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20DBC.s")
if ((this->counter % 16) == 0) {
pos.x = Rand_CenteredFloat(40.0f) + this->actor.world.pos.x;
pos.y = Rand_CenteredFloat(40.0f) + this->actor.world.pos.y + 30.0f;
pos.z = Rand_CenteredFloat(40.0f) + this->actor.world.pos.z;
accel.x = accel.z = 0.0f;
accel.y = 0.1f;
velocity.x = velocity.y = velocity.z = 0.0f;
EnFz_SpawnIceSmokeNoFreeze(this, &pos, &velocity, &accel, Rand_ZeroFloat(7.5f) + 15.0f);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20E84.s")
// (2) Growing or Shrinking to/from hiding or (3) melting from fire
void EnFz_SpawnIceSmokeActiveState(EnFz* this) {
Vec3f pos;
Vec3f velocity;
Vec3f accel;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A20EC4.s")
if ((this->counter % 4) == 0) {
pos.x = Rand_CenteredFloat(40.0f) + this->actor.world.pos.x;
pos.y = this->iceSmokeFreezingSpawnHeight;
pos.z = Rand_CenteredFloat(40.0f) + this->actor.world.pos.z;
accel.x = accel.z = 0.0f;
accel.y = 0.1f;
velocity.x = velocity.y = velocity.z = 0.0f;
EnFz_SpawnIceSmokeNoFreeze(this, &pos, &velocity, &accel, Rand_ZeroFloat(7.5f) + 15.0f);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/EnFz_Update.s")
void EnFz_ApplyDamage(EnFz* this, GlobalContext* globalCtx) {
Vec3f vec;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/EnFz_Draw.s")
if (this->isMoving && ((this->actor.bgCheckFlags & 8) ||
(func_800339B8(&this->actor, globalCtx, 60.0f, this->actor.world.rot.y) == 0))) {
this->actor.bgCheckFlags &= ~8;
this->isMoving = false;
this->speedXZ = 0.0f;
this->actor.speedXZ = 0.0f;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A2145C.s")
if (this->isFreezing) {
if ((this->actor.params < 0) && (this->collider1.base.atFlags & 2)) {
this->isMoving = false;
this->collider1.base.acFlags &= ~2;
this->actor.speedXZ = this->speedXZ = 0.0f;
this->timer = 10;
EnFz_SetupDisappear(this);
} else if (this->collider2.base.acFlags & 0x80) {
this->collider2.base.acFlags &= ~0x80;
this->collider1.base.acFlags &= ~2;
} else if (this->collider1.base.acFlags & 2) {
this->collider1.base.acFlags &= ~2;
if (this->actor.colChkInfo.damageEffect != 2) {
if (this->actor.colChkInfo.damageEffect == 0xF) {
Actor_ApplyDamage(&this->actor);
func_8003426C(&this->actor, 0x4000, 0xFF, 0x2000, 8);
if (this->actor.colChkInfo.health) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FREEZAD_DAMAGE);
vec.x = this->actor.world.pos.x;
vec.y = this->actor.world.pos.y;
vec.z = this->actor.world.pos.z;
EnFz_Damaged(this, globalCtx, &vec, 10, 0.0f);
this->unusedCounter++;
} else {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FREEZAD_DEAD);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_ICE_BROKEN);
vec.x = this->actor.world.pos.x;
vec.y = this->actor.world.pos.y;
vec.z = this->actor.world.pos.z;
EnFz_Damaged(this, globalCtx, &vec, 30, 10.0f);
EnFz_SetupDespawn(this, globalCtx);
}
}
} else {
Actor_ApplyDamage(&this->actor);
func_8003426C(&this->actor, 0x4000, 0xFF, 0x2000, 8);
if (this->actor.colChkInfo.health == 0) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FREEZAD_DEAD);
EnFz_SetupMelt(this);
} else {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FREEZAD_DAMAGE);
}
}
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A21500.s")
void EnFz_SetYawTowardsPlayer(EnFz* this) {
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 10, 2000, 0);
this->actor.world.rot.y = this->actor.shape.rot.y;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A215BC.s")
void EnFz_SetupDisappear(EnFz* this) {
this->state = 2;
this->isFreezing = false;
this->actor.flags &= ~1;
this->actionFunc = EnFz_Disappear;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Fz/func_80A218A8.s")
void EnFz_Disappear(EnFz* this, GlobalContext* globalCtx) {
this->envAlpha -= 16;
if (this->envAlpha > 255) {
this->envAlpha = 0;
}
if (Math_SmoothStepToF(&this->actor.scale.y, 0.0f, 1.0f, 0.0005f, 0) == 0.0f) {
EnFz_SetupWait(this);
}
}
void EnFz_SetupWait(EnFz* this) {
this->state = 0;
this->unusedNum2 = 0;
this->unusedNum1 = 0;
this->timer = 100;
this->actionFunc = EnFz_Wait;
this->actor.world.pos.x = this->posOrigin.x;
this->actor.world.pos.y = this->posOrigin.y;
this->actor.world.pos.z = this->posOrigin.z;
}
void EnFz_Wait(EnFz* this, GlobalContext* globalCtx) {
if ((this->timer == 0) && (this->actor.xzDistToPlayer < 400.0f)) {
EnFz_SetupAppear(this);
}
}
void EnFz_SetupAppear(EnFz* this) {
this->state = 2;
this->timer = 20;
this->unusedNum2 = 4000;
this->actionFunc = EnFz_Appear;
}
void EnFz_Appear(EnFz* this, GlobalContext* globalCtx) {
if (this->timer == 0) {
this->envAlpha += 8;
if (this->envAlpha > 255) {
this->envAlpha = 255;
}
if (Math_SmoothStepToF(&this->actor.scale.y, 0.008f, 1.0f, 0.0005f, 0.0f) == 0.0f) {
EnFz_SetupAimForMove(this);
}
}
}
void EnFz_SetupAimForMove(EnFz* this) {
this->state = 1;
this->timer = 40;
this->updateBgInfo = true;
this->isFreezing = true;
this->actor.flags |= 1;
this->actionFunc = EnFz_AimForMove;
this->actor.gravity = -1.0f;
}
void EnFz_AimForMove(EnFz* this, GlobalContext* globalCtx) {
EnFz_SetYawTowardsPlayer(this);
if (this->timer == 0) {
EnFz_SetupMoveTowardsPlayer(this);
}
}
void EnFz_SetupMoveTowardsPlayer(EnFz* this) {
this->state = 1;
this->isMoving = true;
this->timer = 100;
this->actionFunc = EnFz_MoveTowardsPlayer;
this->speedXZ = 4.0f;
}
void EnFz_MoveTowardsPlayer(EnFz* this, GlobalContext* globalCtx) {
if ((this->timer == 0) || !this->isMoving) {
EnFz_SetupAimForFreeze(this);
}
}
void EnFz_SetupAimForFreeze(EnFz* this) {
this->state = 1;
this->timer = 40;
this->actionFunc = EnFz_AimForFreeze;
this->speedXZ = 0.0f;
this->actor.speedXZ = 0.0f;
}
void EnFz_AimForFreeze(EnFz* this, GlobalContext* globalCtx) {
EnFz_SetYawTowardsPlayer(this);
if (this->timer == 0) {
EnFz_SetupBlowSmoke(this, globalCtx);
}
}
void EnFz_SetupBlowSmoke(EnFz* this, GlobalContext* globalCtx) {
this->state = 1;
this->timer = 80;
this->actionFunc = EnFz_BlowSmoke;
EnFz_UpdateTargetPos(this, globalCtx);
}
void EnFz_BlowSmoke(EnFz* this, GlobalContext* globalCtx) {
Vec3f vec1;
Vec3f pos;
Vec3f velocity;
Vec3f accel;
u8 isTimerMod8;
s16 primAlpha;
if (this->timer == 0) {
EnFz_SetupDisappear(this);
} else if (this->timer >= 11) {
isTimerMod8 = false;
primAlpha = 150;
func_8002F974(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG);
if ((this->timer - 10) < 16) { // t < 26
primAlpha = (this->timer * 10) - 100;
}
accel.x = accel.z = 0.0f;
accel.y = 0.6f;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + 20.0f;
pos.z = this->actor.world.pos.z;
Matrix_RotateY((this->actor.shape.rot.y / (f32)0x8000) * M_PI, MTXMODE_NEW);
vec1.x = 0.0f;
vec1.y = -2.0f;
vec1.z = 20.0f; // xz velocity
Matrix_MultVec3f(&vec1, &velocity);
if ((this->timer % 8) == 0) {
isTimerMod8 = true;
}
EnFz_SpawnIceSmokeFreeze(this, &pos, &velocity, &accel, 2.0f, 25.0f, primAlpha, isTimerMod8);
pos.x += (velocity.x * 0.5f);
pos.y += (velocity.y * 0.5f);
pos.z += (velocity.z * 0.5f);
EnFz_SpawnIceSmokeFreeze(this, &pos, &velocity, &accel, 2.0f, 25.0f, primAlpha, false);
}
}
void EnFz_SetupDespawn(EnFz* this, GlobalContext* globalCtx) {
this->state = 0;
this->updateBgInfo = true;
this->isFreezing = false;
this->isDespawning = true;
this->actor.flags &= ~1;
this->isActive = false;
this->timer = 60;
this->speedXZ = 0.0f;
this->actor.gravity = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.speedXZ = 0.0f;
Actor_ChangeCategory(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORCAT_PROP);
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 0x60);
this->actionFunc = EnFz_Despawn;
}
void EnFz_Despawn(EnFz* this, GlobalContext* globalCtx) {
if (this->timer == 0) {
Actor_Kill(&this->actor);
}
}
void EnFz_SetupMelt(EnFz* this) {
this->state = 3;
this->isFreezing = false;
this->isDespawning = true;
this->actor.flags &= ~1;
this->actionFunc = EnFz_Melt;
this->actor.speedXZ = 0.0f;
this->speedXZ = 0.0f;
}
void EnFz_Melt(EnFz* this, GlobalContext* globalCtx) {
Math_StepToF(&this->actor.scale.y, 0.0006f, 0.0002f);
if (this->actor.scale.y < 0.006f) {
this->actor.scale.x += 0.0004f;
this->actor.scale.z += 0.0004f;
}
if (this->actor.scale.y < 0.004f) {
this->envAlpha -= 8;
if (this->envAlpha > 255) {
this->envAlpha = 0;
}
}
if (this->envAlpha == 0) {
EnFz_SetupDespawn(this, globalCtx);
}
}
void EnFz_SetupBlowSmokeStationary(EnFz* this) {
this->state = 1;
this->timer = 40;
this->updateBgInfo = true;
this->isFreezing = true;
this->actor.flags |= 1;
this->actionFunc = EnFz_BlowSmokeStationary;
this->actor.gravity = -1.0f;
}
void EnFz_BlowSmokeStationary(EnFz* this, GlobalContext* globalCtx) {
Vec3f vec1;
Vec3f pos;
Vec3f velocity;
Vec3f accel;
u8 isTimerMod8;
s16 primAlpha;
if (this->counter & 0xC0) {
EnFz_SetYawTowardsPlayer(this);
EnFz_UpdateTargetPos(this, globalCtx);
} else {
isTimerMod8 = false;
primAlpha = 150;
func_8002F974(&this->actor, NA_SE_EN_FREEZAD_BREATH - SFX_FLAG);
if ((this->counter & 0x3F) >= 48) {
primAlpha = 630 - ((this->counter & 0x3F) * 10);
}
accel.x = accel.z = 0.0f;
accel.y = 0.6f;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + 20.0f;
pos.z = this->actor.world.pos.z;
Matrix_RotateY((this->actor.shape.rot.y / (f32)0x8000) * M_PI, MTXMODE_NEW);
vec1.x = 0.0f;
vec1.y = -2.0f;
vec1.z = 20.0f;
Matrix_MultVec3f(&vec1, &velocity);
if ((this->counter % 8) == 0) {
isTimerMod8 = true;
}
EnFz_SpawnIceSmokeFreeze(this, &pos, &velocity, &accel, 2.0f, 25.0f, primAlpha, isTimerMod8);
pos.x += (velocity.x * 0.5f);
pos.y += (velocity.y * 0.5f);
pos.z += (velocity.z * 0.5f);
EnFz_SpawnIceSmokeFreeze(this, &pos, &velocity, &accel, 2.0f, 25.0f, primAlpha, false);
}
}
static EnFzSpawnIceSmokeFunc iceSmokeSpawnFuncs[] = {
EnFz_SpawnIceSmokeHiddenState,
EnFz_SpawnIceSmokeGrowingState,
EnFz_SpawnIceSmokeActiveState,
EnFz_SpawnIceSmokeActiveState,
};
void EnFz_Update(Actor* thisx, GlobalContext* globalCtx) {
EnFz* this = THIS;
s32 pad;
this->counter++;
if (this->unusedTimer1 != 0) {
this->unusedTimer1--;
}
if (this->timer != 0) {
this->timer--;
}
if (this->unusedTimer2 != 0) {
this->unusedTimer2--;
}
Actor_SetFocus(&this->actor, 50.0f);
EnFz_ApplyDamage(this, globalCtx);
this->actionFunc(this, globalCtx);
if (this->isDespawning == false) {
Collider_UpdateCylinder(&this->actor, &this->collider1);
Collider_UpdateCylinder(&this->actor, &this->collider2);
if (this->isFreezing) {
if (this->actor.colorFilterTimer == 0) {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider1.base);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider2.base);
}
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider1.base);
}
}
Math_StepToF(&this->actor.speedXZ, this->speedXZ, 0.2f);
Actor_MoveForward(&this->actor);
if (this->updateBgInfo) {
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 20.0f, 20.0f, 20.0f, 5);
}
iceSmokeSpawnFuncs[this->state](this);
EnFz_UpdateIceSmoke(this, globalCtx);
}
void EnFz_Draw(Actor* thisx, GlobalContext* globalCtx) {
static Gfx* displayLists[] = {
0x06001130, // Body fully intact (5 or 6 health)
0x060021A0, // Top right horn chipped off (from Freezards perspective) (3 or 4 health)
0x06002CA0, // Entire head chipped off (1 or 2 health)
};
EnFz* this = THIS;
s32 pad;
s32 index;
index = (6 - this->actor.colChkInfo.health) >> 1;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_fz.c", 1167);
if (1) {}
if (this->actor.colChkInfo.health == 0) {
index = 2;
}
if (this->isActive) {
func_8002ED80(&this->actor, globalCtx, 0);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, globalCtx->state.frames & 0x7F, 32, 32, 1, 0,
(2 * globalCtx->state.frames) & 0x7F, 32, 32));
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fz.c", 1183),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetCombineLERP(POLY_XLU_DISP++, TEXEL1, PRIMITIVE, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0,
PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, ENVIRONMENT, 0);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, 155, 255, 255, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 200, this->envAlpha);
gSPDisplayList(POLY_XLU_DISP++, displayLists[index]);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_fz.c", 1200);
EnFz_DrawIceSmoke(this, globalCtx);
}
void EnFz_SpawnIceSmokeNoFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel, f32 xyScale) {
EnFzEffectSsIceSmoke* iceSmoke = this->iceSmoke;
s16 i;
for (i = 0; i < ARRAY_COUNT(this->iceSmoke); i++) {
if (iceSmoke->type == 0) {
iceSmoke->type = 1;
iceSmoke->pos = *pos;
iceSmoke->velocity = *velocity;
iceSmoke->accel = *accel;
iceSmoke->primAlphaState = 0;
iceSmoke->xyScale = xyScale / 1000.0f;
iceSmoke->primAlpha = 0;
iceSmoke->timer = 0;
break;
}
iceSmoke++;
}
}
void EnFz_SpawnIceSmokeFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel, f32 xyScale, f32 xyScaleTarget,
s16 primAlpha, u8 isTimerMod8) {
EnFzEffectSsIceSmoke* iceSmoke = this->iceSmoke;
s16 i;
for (i = 0; i < ARRAY_COUNT(this->iceSmoke); i++) {
if (iceSmoke->type == 0) {
iceSmoke->type = 2;
iceSmoke->pos = *pos;
iceSmoke->velocity = *velocity;
iceSmoke->accel = *accel;
iceSmoke->primAlphaState = 0;
iceSmoke->xyScale = xyScale / 1000.0f;
iceSmoke->xyScaleTarget = xyScaleTarget / 1000.0f;
iceSmoke->primAlpha = primAlpha;
iceSmoke->timer = 0;
iceSmoke->isTimerMod8 = isTimerMod8;
break;
}
iceSmoke++;
}
}
void EnFz_UpdateIceSmoke(EnFz* this, GlobalContext* globalCtx) {
EnFzEffectSsIceSmoke* iceSmoke = this->iceSmoke;
s16 i;
Vec3f pos;
for (i = 0; i < ARRAY_COUNT(this->iceSmoke); i++) {
if (iceSmoke->type) {
iceSmoke->pos.x += iceSmoke->velocity.x;
iceSmoke->pos.y += iceSmoke->velocity.y;
iceSmoke->pos.z += iceSmoke->velocity.z;
iceSmoke->timer++;
iceSmoke->velocity.x += iceSmoke->accel.x;
iceSmoke->velocity.y += iceSmoke->accel.y;
iceSmoke->velocity.z += iceSmoke->accel.z;
if (iceSmoke->type == 1) {
if (iceSmoke->primAlphaState == 0) { // Becoming more opaque
iceSmoke->primAlpha += 10;
if (iceSmoke->primAlpha >= 100) {
iceSmoke->primAlphaState++;
}
} else { // Becoming more transparent
iceSmoke->primAlpha -= 3;
if (iceSmoke->primAlpha <= 0) {
iceSmoke->primAlpha = 0;
iceSmoke->type = 0;
}
}
} else if (iceSmoke->type == 2) { // Freezing
Math_ApproachF(&iceSmoke->xyScale, iceSmoke->xyScaleTarget, 0.1f, iceSmoke->xyScaleTarget / 10.0f);
if (iceSmoke->primAlphaState == 0) { // Becoming more opaque
if (iceSmoke->timer >= 7) {
iceSmoke->primAlphaState++;
}
} else { // Becoming more transparent, slows down
iceSmoke->accel.y = 2.0f;
iceSmoke->primAlpha -= 17;
iceSmoke->velocity.x *= 0.75f;
iceSmoke->velocity.z *= 0.75f;
if (iceSmoke->primAlpha <= 0) {
iceSmoke->primAlpha = 0;
iceSmoke->type = 0;
}
}
if ((this->unusedTimer2 == 0) && (iceSmoke->primAlpha >= 101) && iceSmoke->isTimerMod8) {
this->collider3.dim.pos.x = (s16)iceSmoke->pos.x;
this->collider3.dim.pos.y = (s16)iceSmoke->pos.y;
this->collider3.dim.pos.z = (s16)iceSmoke->pos.z;
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider3.base);
}
pos.x = iceSmoke->pos.x;
pos.y = iceSmoke->pos.y + 10.0f;
pos.z = iceSmoke->pos.z;
if ((iceSmoke->primAlphaState != 2) && EnFz_ReachedTarget(this, &pos)) {
iceSmoke->primAlphaState = 2;
iceSmoke->velocity.x = 0.0f;
iceSmoke->velocity.z = 0.0f;
}
}
}
iceSmoke++;
}
}
void EnFz_DrawIceSmoke(EnFz* this, GlobalContext* globalCtx) {
EnFzEffectSsIceSmoke* iceSmoke = this->iceSmoke;
s16 i;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
u8 texLoaded = false;
OPEN_DISPS(gfxCtx, "../z_en_fz.c", 1384);
func_80093D84(globalCtx->state.gfxCtx);
for (i = 0; i < ARRAY_COUNT(this->iceSmoke); i++) {
if (iceSmoke->type > 0) {
gDPPipeSync(POLY_XLU_DISP++);
if (!texLoaded) {
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_060030A0));
texLoaded++;
}
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 195, 225, 235, iceSmoke->primAlpha);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 3 * (iceSmoke->timer + (3 * i)),
15 * (iceSmoke->timer + (3 * i)), 32, 64, 1, 0, 0, 32, 32));
Matrix_Translate(iceSmoke->pos.x, iceSmoke->pos.y, iceSmoke->pos.z, MTXMODE_NEW);
func_800D1FD4(&globalCtx->mf_11DA0);
Matrix_Scale(iceSmoke->xyScale, iceSmoke->xyScale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_fz.c", 1424),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_06003158));
}
iceSmoke++;
}
CLOSE_DISPS(gfxCtx, "../z_en_fz.c", 1430);
}

View file

@ -6,9 +6,50 @@
struct EnFz;
typedef void (*EnFzActionFunc)(struct EnFz*, GlobalContext*);
typedef void (*EnFzSpawnIceSmokeFunc)(struct EnFz*);
typedef struct {
/* 0x0000 */ u8 type; // 0,1,2: State of freezard (1 not freezing, 2 freezing)
/* 0x0001 */ u8 timer; // increments primAlphaState after reaching 7 (freezing), used in Gfx_TwoTexScroll
/* 0x0004 */ Vec3f pos; // Random position within 20.0f of actor
/* 0x0010 */ Vec3f velocity;
/* 0x001C */ Vec3f accel;
/* 0x0028 */ char unk_28[0x4];
/* 0x002C */ s16 primAlpha; // transparency in RGBA colour system
/* 0x002E */ s16 primAlphaState; // 0: increasing (more opaque) 1: decreasing (more transparent) 2: collision
/* 0x0030 */ f32 xyScale; //
/* 0x0034 */ f32 xyScaleTarget;
/* 0x0038 */ u8 isTimerMod8; // conditional, used to run CollisionCheck_SetAT
} EnFzEffectSsIceSmoke; // size = 0x3C
typedef struct EnFz {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xA88];
/* 0x014C */ EnFzActionFunc actionFunc;
/* 0x0150 */ ColliderCylinder collider1;
/* 0x019C */ ColliderCylinder collider2;
/* 0x01E8 */ ColliderCylinder collider3;
/* 0x0234 */ Vec3f posOrigin; // Spawn position for moving freezard
/* 0x0240 */ s16 counter; // A perpetual counter
/* 0x0242 */ s16 unusedTimer1;
/* 0x0244 */ s16 timer; // Used to time transition into next action. Can be 10, 20, 40, 60, 80, 100
/* 0x0246 */ u8 updateBgInfo; // Always true in every instance
/* 0x0247 */ u8 isMoving; // Freezard is moving in xz plane
/* 0x0248 */ u8 isFreezing; // Freezard shooting ice projectiles that can freeze Link
/* 0x0249 */ u8 unusedCounter; // Incremented when Freezard takes damage
/* 0x024C */ f32 iceSmokeFreezingSpawnHeight; // Height for Ice Smoke Spawn, only when freezing
/* 0x0250 */ f32 unusedFloat; // Set to 135.0f
/* 0x0254 */ f32 speedXZ; // Set to 4.0f when moving
/* 0x0258 */ u32 envAlpha; // transparency in RGBA colour system
/* 0x025C */ u16 unusedNum1; // Only set to 0
/* 0x025E */ u16 unusedNum2; // Set to either 0 when hidden or 4000 when growing
/* 0x0260 */ u8 state; // 0 (hidden) 1 (growning/shrinking) 2 (full size) 3 (melting from fire)
/* 0x0261 */ u8 isActive; // Default true. Set to false after beginning to despawn
/* 0x0262 */ u8 isDespawning; // Default false. Set to false after beginning to despawn or melting
/* 0x0263 */ u8 unusedTimer2; // Timer
/* 0x0264 */ Vec3f wallHitPos; // Position contact was made with a wall
/* 0x0270 */ f32 distToTargetSq;
/* 0x0274 */ EnFzEffectSsIceSmoke iceSmoke[40];
} EnFz; // size = 0x0BD4
extern const ActorInit En_Fz_InitVars;

View file

@ -10,10 +10,10 @@
#define FLAGS 0x00000010
#define THIS ((EnHorseGameCheckBase*)thisx)
#define AT_FINISH_LINE(actor) \
#define AT_FINISH_LINE(actor) \
(Math3D_PointInSquare2D(sFinishLine[0], sFinishLine[1], sFinishLine[2], sFinishLine[3], (actor)->world.pos.x, \
(actor)->world.pos.z))
#define AT_RANCH_EXIT(actor) \
#define AT_RANCH_EXIT(actor) \
(Math3D_PointInSquare2D(sRanchExit[0], sRanchExit[1], sRanchExit[2], sRanchExit[3], (actor)->world.pos.x, \
(actor)->world.pos.z))
@ -321,7 +321,8 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, GlobalContext*
if (!(this->raceFlags & MALONRACE_PLAYER_ON_MARK) && AT_FINISH_LINE(player->rideActor)) {
this->raceFlags |= MALONRACE_PLAYER_ON_MARK;
} else if ((this->raceFlags & MALONRACE_PLAYER_ON_MARK) && !(this->raceFlags & MALONRACE_PLAYER_START) && !AT_FINISH_LINE(player->rideActor)) {
} else if ((this->raceFlags & MALONRACE_PLAYER_ON_MARK) && !(this->raceFlags & MALONRACE_PLAYER_START) &&
!AT_FINISH_LINE(player->rideActor)) {
this->raceFlags |= MALONRACE_PLAYER_START;
}
if ((this->startTimer > 50) && !(this->raceFlags & MALONRACE_SET_TIMER)) {
@ -366,7 +367,8 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, GlobalContext*
}
}
}
if ((player2->rideActor != NULL) && (this->raceFlags & MALONRACE_PLAYER_START) && AT_FINISH_LINE(player2->rideActor)) {
if ((player2->rideActor != NULL) && (this->raceFlags & MALONRACE_PLAYER_START) &&
AT_FINISH_LINE(player2->rideActor)) {
if ((this->lapCount == 1) && (this->fenceCheck[15] == 0) && (player2->rideActor->prevPos.x < -200.0f)) {
this->raceFlags |= MALONRACE_BROKE_RULE;
func_8010B680(globalCtx, 0x208C, NULL);

View file

@ -169,8 +169,8 @@ void EnTr_ChooseAction2(EnTr* this, GlobalContext* globalCtx) {
this->animation = D_80B24378[this->actor.params];
this->timer = 39;
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DEMO_6K,
this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0,
0, 0, this->actor.params + 9);
this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0,
0, this->actor.params + 9);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FANTOM_MASIC1);
break;