1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

z_en_kakasi.c OK (#428)

* Starts decompiling z_en_kakasi

* Destroy

* EnKakasi_Init

* func_80A8F660

* func_80A8F75C

* func_80A8F28C

* func_80A8F320 equivalent, non matching due to regalloc

* EnKakasi_Draw

* func_80A8FBB8

* func_80A8FAA4

* func_80A8F9C8

* z_en_kakasi.c OK (1 equivalent, 1 non-matching)

* Fixed one non matching

* z_en_kakasi.c OK

* Removes unused asm

* Some fixes

* Additional fixes

* PR fixes

* Rename angle reference to yaw

* Change low rotation values to decimal

Co-authored-by: i82orbom <i82orbom i82orbom@github>
This commit is contained in:
i82orbom 2020-10-04 18:17:54 +02:00 committed by GitHub
parent 353d4d134f
commit 9bfad1ebd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 331 additions and 983 deletions

View File

@ -1,12 +0,0 @@
glabel EnKakasi_Destroy
/* 00000 80A8F170 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00004 80A8F174 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 80A8F178 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0000C 80A8F17C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00010 80A8F180 0C0170EB */ jal Collider_DestroyCylinder
/* 00014 80A8F184 24C501BC */ addiu $a1, $a2, 0x01BC ## $a1 = 000001BC
/* 00018 80A8F188 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0001C 80A8F18C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00020 80A8F190 03E00008 */ jr $ra
/* 00024 80A8F194 00000000 */ nop

View File

@ -1,50 +0,0 @@
.rdata
glabel D_80A8FEB8
.asciz "\n\n"
.balign 4
glabel D_80A8FEBC
.asciz "\x1b[33m %d\n\x1b[m"
.balign 4
.text
glabel EnKakasi_Draw
/* 00BE0 80A8FD50 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00BE4 80A8FD54 3C0E8016 */ lui $t6, %hi(gGameInfo)
/* 00BE8 80A8FD58 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* 00BEC 80A8FD5C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00BF0 80A8FD60 AFA40028 */ sw $a0, 0x0028($sp)
/* 00BF4 80A8FD64 AFA5002C */ sw $a1, 0x002C($sp)
/* 00BF8 80A8FD68 85CF12DA */ lh $t7, 0x12DA($t6) ## 801612DA
/* 00BFC 80A8FD6C 3C0480A9 */ lui $a0, %hi(D_80A8FEB8) ## $a0 = 80A90000
/* 00C00 80A8FD70 51E00009 */ beql $t7, $zero, .L80A8FD98
/* 00C04 80A8FD74 8FB8002C */ lw $t8, 0x002C($sp)
/* 00C08 80A8FD78 0C00084C */ jal osSyncPrintf
/* 00C0C 80A8FD7C 2484FEB8 */ addiu $a0, $a0, %lo(D_80A8FEB8) ## $a0 = 80A8FEB8
/* 00C10 80A8FD80 3C0480A9 */ lui $a0, %hi(D_80A8FEBC) ## $a0 = 80A90000
/* 00C14 80A8FD84 3C058016 */ lui $a1, %hi(gSaveContext+0xf40)
/* 00C18 80A8FD88 90A5F5A0 */ lbu $a1, %lo(gSaveContext+0xf40)($a1)
/* 00C1C 80A8FD8C 0C00084C */ jal osSyncPrintf
/* 00C20 80A8FD90 2484FEBC */ addiu $a0, $a0, %lo(D_80A8FEBC) ## $a0 = 80A8FEBC
/* 00C24 80A8FD94 8FB8002C */ lw $t8, 0x002C($sp)
.L80A8FD98:
/* 00C28 80A8FD98 0C024F46 */ jal func_80093D18
/* 00C2C 80A8FD9C 8F040000 */ lw $a0, 0x0000($t8) ## 00000000
/* 00C30 80A8FDA0 8FA20028 */ lw $v0, 0x0028($sp)
/* 00C34 80A8FDA4 8FA4002C */ lw $a0, 0x002C($sp)
/* 00C38 80A8FDA8 8C450154 */ lw $a1, 0x0154($v0) ## 00000154
/* 00C3C 80A8FDAC 8C460170 */ lw $a2, 0x0170($v0) ## 00000170
/* 00C40 80A8FDB0 90470152 */ lbu $a3, 0x0152($v0) ## 00000152
/* 00C44 80A8FDB4 AFA00014 */ sw $zero, 0x0014($sp)
/* 00C48 80A8FDB8 AFA00010 */ sw $zero, 0x0010($sp)
/* 00C4C 80A8FDBC 0C0286B2 */ jal SkelAnime_DrawSV
/* 00C50 80A8FDC0 AFA20018 */ sw $v0, 0x0018($sp)
/* 00C54 80A8FDC4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00C58 80A8FDC8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00C5C 80A8FDCC 03E00008 */ jr $ra
/* 00C60 80A8FDD0 00000000 */ nop
/* 00C64 80A8FDD4 00000000 */ nop
/* 00C68 80A8FDD8 00000000 */ nop
/* 00C6C 80A8FDDC 00000000 */ nop

View File

@ -1,77 +0,0 @@
.rdata
glabel D_80A8FE30
.asciz "\n\n"
.balign 4
glabel D_80A8FE34
.asciz "\x1b[33m %f\n\x1b[m"
.balign 4
.text
glabel EnKakasi_Init
/* 00028 80A8F198 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0002C 80A8F19C AFB00028 */ sw $s0, 0x0028($sp)
/* 00030 80A8F1A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00034 80A8F1A4 AFBF002C */ sw $ra, 0x002C($sp)
/* 00038 80A8F1A8 3C0480A9 */ lui $a0, %hi(D_80A8FE30) ## $a0 = 80A90000
/* 0003C 80A8F1AC AFA5003C */ sw $a1, 0x003C($sp)
/* 00040 80A8F1B0 0C00084C */ jal osSyncPrintf
/* 00044 80A8F1B4 2484FE30 */ addiu $a0, $a0, %lo(D_80A8FE30) ## $a0 = 80A8FE30
/* 00048 80A8F1B8 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 0004C 80A8F1BC 3C0480A9 */ lui $a0, %hi(D_80A8FE34) ## $a0 = 80A90000
/* 00050 80A8F1C0 2484FE34 */ addiu $a0, $a0, %lo(D_80A8FE34) ## $a0 = 80A8FE34
/* 00054 80A8F1C4 460021A1 */ cvt.d.s $f6, $f4
/* 00058 80A8F1C8 44073000 */ mfc1 $a3, $f6
/* 0005C 80A8F1CC 44063800 */ mfc1 $a2, $f7
/* 00060 80A8F1D0 0C00084C */ jal osSyncPrintf
/* 00064 80A8F1D4 00000000 */ nop
/* 00068 80A8F1D8 260501BC */ addiu $a1, $s0, 0x01BC ## $a1 = 000001BC
/* 0006C 80A8F1DC AFA50030 */ sw $a1, 0x0030($sp)
/* 00070 80A8F1E0 0C0170D9 */ jal Collider_InitCylinder
/* 00074 80A8F1E4 8FA4003C */ lw $a0, 0x003C($sp)
/* 00078 80A8F1E8 3C0780A9 */ lui $a3, %hi(D_80A8FDE0) ## $a3 = 80A90000
/* 0007C 80A8F1EC 8FA50030 */ lw $a1, 0x0030($sp)
/* 00080 80A8F1F0 24E7FDE0 */ addiu $a3, $a3, %lo(D_80A8FDE0) ## $a3 = 80A8FDE0
/* 00084 80A8F1F4 8FA4003C */ lw $a0, 0x003C($sp)
/* 00088 80A8F1F8 0C01712B */ jal Collider_SetCylinder
/* 0008C 80A8F1FC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00090 80A8F200 240E0006 */ addiu $t6, $zero, 0x0006 ## $t6 = 00000006
/* 00094 80A8F204 A20E001F */ sb $t6, 0x001F($s0) ## 0000001F
/* 00098 80A8F208 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
/* 0009C 80A8F20C 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
/* 000A0 80A8F210 24E70214 */ addiu $a3, $a3, 0x0214 ## $a3 = 06000214
/* 000A4 80A8F214 24C665B0 */ addiu $a2, $a2, 0x65B0 ## $a2 = 060065B0
/* 000A8 80A8F218 AFA00018 */ sw $zero, 0x0018($sp)
/* 000AC 80A8F21C AFA00014 */ sw $zero, 0x0014($sp)
/* 000B0 80A8F220 AFA00010 */ sw $zero, 0x0010($sp)
/* 000B4 80A8F224 8FA4003C */ lw $a0, 0x003C($sp)
/* 000B8 80A8F228 0C0291BE */ jal SkelAnime_InitSV
/* 000BC 80A8F22C 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150
/* 000C0 80A8F230 8A180030 */ lwl $t8, 0x0030($s0) ## 00000030
/* 000C4 80A8F234 9A180033 */ lwr $t8, 0x0033($s0) ## 00000033
/* 000C8 80A8F238 8E190004 */ lw $t9, 0x0004($s0) ## 00000004
/* 000CC 80A8F23C 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
/* 000D0 80A8F240 AA1801AE */ swl $t8, 0x01AE($s0) ## 000001AE
/* 000D4 80A8F244 BA1801B1 */ swr $t8, 0x01B1($s0) ## 000001B1
/* 000D8 80A8F248 96180034 */ lhu $t8, 0x0034($s0) ## 00000034
/* 000DC 80A8F24C 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 000E0 80A8F250 37280400 */ ori $t0, $t9, 0x0400 ## $t0 = 00000400
/* 000E4 80A8F254 AE080004 */ sw $t0, 0x0004($s0) ## 00000004
/* 000E8 80A8F258 A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE
/* 000EC 80A8F25C 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 000F0 80A8F260 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000F4 80A8F264 0C00B58B */ jal Actor_SetScale
/* 000F8 80A8F268 A61801B2 */ sh $t8, 0x01B2($s0) ## 000001B2
/* 000FC 80A8F26C 3C0A80A9 */ lui $t2, %hi(func_80A8F660) ## $t2 = 80A90000
/* 00100 80A8F270 254AF660 */ addiu $t2, $t2, %lo(func_80A8F660) ## $t2 = 80A8F660
/* 00104 80A8F274 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C
/* 00108 80A8F278 8FBF002C */ lw $ra, 0x002C($sp)
/* 0010C 80A8F27C 8FB00028 */ lw $s0, 0x0028($sp)
/* 00110 80A8F280 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00114 80A8F284 03E00008 */ jr $ra
/* 00118 80A8F288 00000000 */ nop

View File

@ -1,72 +0,0 @@
glabel EnKakasi_Update
/* 00ADC 80A8FC4C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00AE0 80A8FC50 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00AE4 80A8FC54 AFB00020 */ sw $s0, 0x0020($sp)
/* 00AE8 80A8FC58 AFA5003C */ sw $a1, 0x003C($sp)
/* 00AEC 80A8FC5C 889900B4 */ lwl $t9, 0x00B4($a0) ## 000000B4
/* 00AF0 80A8FC60 989900B7 */ lwr $t9, 0x00B7($a0) ## 000000B7
/* 00AF4 80A8FC64 848E0198 */ lh $t6, 0x0198($a0) ## 00000198
/* 00AF8 80A8FC68 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00AFC 80A8FC6C A8990030 */ swl $t9, 0x0030($a0) ## 00000030
/* 00B00 80A8FC70 B8990033 */ swr $t9, 0x0033($a0) ## 00000033
/* 00B04 80A8FC74 949900B8 */ lhu $t9, 0x00B8($a0) ## 000000B8
/* 00B08 80A8FC78 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 00B0C 80A8FC7C A48F0198 */ sh $t7, 0x0198($a0) ## 00000198
/* 00B10 80A8FC80 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008
/* 00B14 80A8FC84 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 00B18 80A8FC88 00801025 */ or $v0, $a0, $zero ## $v0 = 00000000
/* 00B1C 80A8FC8C A4990034 */ sh $t9, 0x0034($a0) ## 00000034
.L80A8FC90:
/* 00B20 80A8FC90 8444019C */ lh $a0, 0x019C($v0) ## 0000019C
/* 00B24 80A8FC94 24630002 */ addiu $v1, $v1, 0x0002 ## $v1 = 00000002
/* 00B28 80A8FC98 10800002 */ beq $a0, $zero, .L80A8FCA4
/* 00B2C 80A8FC9C 2488FFFF */ addiu $t0, $a0, 0xFFFF ## $t0 = FFFFFFFF
/* 00B30 80A8FCA0 A448019C */ sh $t0, 0x019C($v0) ## 0000019C
.L80A8FCA4:
/* 00B34 80A8FCA4 1465FFFA */ bne $v1, $a1, .L80A8FC90
/* 00B38 80A8FCA8 24420002 */ addiu $v0, $v0, 0x0002 ## $v0 = 00000002
/* 00B3C 80A8FCAC 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00B40 80A8FCB0 44810000 */ mtc1 $at, $f0 ## $f0 = 60.00
/* 00B44 80A8FCB4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B48 80A8FCB8 44050000 */ mfc1 $a1, $f0
/* 00B4C 80A8FCBC 0C00B56E */ jal Actor_SetHeight
/* 00B50 80A8FCC0 E60001B4 */ swc1 $f0, 0x01B4($s0) ## 000001B4
/* 00B54 80A8FCC4 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 00B58 80A8FCC8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B5C 80A8FCCC 8FA5003C */ lw $a1, 0x003C($sp)
/* 00B60 80A8FCD0 0320F809 */ jalr $ra, $t9
/* 00B64 80A8FCD4 00000000 */ nop
/* 00B68 80A8FCD8 0C00B638 */ jal Actor_MoveForward
/* 00B6C 80A8FCDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B70 80A8FCE0 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00B74 80A8FCE4 44810000 */ mtc1 $at, $f0 ## $f0 = 50.00
/* 00B78 80A8FCE8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00B7C 80A8FCEC 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
/* 00B80 80A8FCF0 2409001C */ addiu $t1, $zero, 0x001C ## $t1 = 0000001C
/* 00B84 80A8FCF4 44060000 */ mfc1 $a2, $f0
/* 00B88 80A8FCF8 44070000 */ mfc1 $a3, $f0
/* 00B8C 80A8FCFC AFA90014 */ sw $t1, 0x0014($sp)
/* 00B90 80A8FD00 8FA4003C */ lw $a0, 0x003C($sp)
/* 00B94 80A8FD04 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00B98 80A8FD08 0C00B92D */ jal func_8002E4B4
/* 00B9C 80A8FD0C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00BA0 80A8FD10 260601BC */ addiu $a2, $s0, 0x01BC ## $a2 = 000001BC
/* 00BA4 80A8FD14 00C02825 */ or $a1, $a2, $zero ## $a1 = 000001BC
/* 00BA8 80A8FD18 AFA60028 */ sw $a2, 0x0028($sp)
/* 00BAC 80A8FD1C 0C0189B7 */ jal Collider_CylinderUpdate
/* 00BB0 80A8FD20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BB4 80A8FD24 8FA4003C */ lw $a0, 0x003C($sp)
/* 00BB8 80A8FD28 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BBC 80A8FD2C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00BC0 80A8FD30 8FA60028 */ lw $a2, 0x0028($sp)
/* 00BC4 80A8FD34 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00BC8 80A8FD38 00812821 */ addu $a1, $a0, $at
/* 00BCC 80A8FD3C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00BD0 80A8FD40 8FB00020 */ lw $s0, 0x0020($sp)
/* 00BD4 80A8FD44 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00BD8 80A8FD48 03E00008 */ jr $ra
/* 00BDC 80A8FD4C 00000000 */ nop

View File

@ -1,42 +0,0 @@
glabel func_80A8F28C
/* 0011C 80A8F28C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00120 80A8F290 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00124 80A8F294 AFB00020 */ sw $s0, 0x0020($sp)
/* 00128 80A8F298 A48001AC */ sh $zero, 0x01AC($a0) ## 000001AC
/* 0012C 80A8F29C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00130 80A8F2A0 848E01AC */ lh $t6, 0x01AC($a0) ## 000001AC
/* 00134 80A8F2A4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00138 80A8F2A8 A48001A4 */ sh $zero, 0x01A4($a0) ## 000001A4
/* 0013C 80A8F2AC 24840168 */ addiu $a0, $a0, 0x0168 ## $a0 = 00000168
/* 00140 80A8F2B0 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
/* 00144 80A8F2B4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00148 80A8F2B8 E4840004 */ swc1 $f4, 0x0004($a0) ## 0000016C
/* 0014C 80A8F2BC 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00150 80A8F2C0 A48E0040 */ sh $t6, 0x0040($a0) ## 000001A8
/* 00154 80A8F2C4 860501AE */ lh $a1, 0x01AE($s0) ## 000001AE
/* 00158 80A8F2C8 AFA00010 */ sw $zero, 0x0010($sp)
/* 0015C 80A8F2CC 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00160 80A8F2D0 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 00164 80A8F2D4 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00168 80A8F2D8 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710
/* 0016C 80A8F2DC 860501B0 */ lh $a1, 0x01B0($s0) ## 000001B0
/* 00170 80A8F2E0 AFA00010 */ sw $zero, 0x0010($sp)
/* 00174 80A8F2E4 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00178 80A8F2E8 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 0017C 80A8F2EC 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00180 80A8F2F0 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710
/* 00184 80A8F2F4 860501B2 */ lh $a1, 0x01B2($s0) ## 000001B2
/* 00188 80A8F2F8 AFA00010 */ sw $zero, 0x0010($sp)
/* 0018C 80A8F2FC 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8
/* 00190 80A8F300 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 00194 80A8F304 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00198 80A8F308 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710
/* 0019C 80A8F30C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 001A0 80A8F310 8FB00020 */ lw $s0, 0x0020($sp)
/* 001A4 80A8F314 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 001A8 80A8F318 03E00008 */ jr $ra
/* 001AC 80A8F31C 00000000 */ nop

View File

@ -1,253 +0,0 @@
.late_rodata
glabel D_80A8FEE8
.word 0x412FD70A
glabel D_80A8FEEC
.word 0x409FAE14
glabel D_80A8FEF0
.word 0x403F5C29
glabel jtbl_80A8FEF4
.word L80A8F3D8
.word L80A8F408
.word L80A8F424
.word L80A8F444
.word L80A8F464
.word 0x00000000, 0x00000000
.text
glabel func_80A8F320
/* 001B0 80A8F320 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 001B4 80A8F324 AFA60030 */ sw $a2, 0x0030($sp)
/* 001B8 80A8F328 00063400 */ sll $a2, $a2, 16
/* 001BC 80A8F32C 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 001C0 80A8F330 00063403 */ sra $a2, $a2, 16
/* 001C4 80A8F334 AFBF0024 */ sw $ra, 0x0024($sp)
/* 001C8 80A8F338 AFB00020 */ sw $s0, 0x0020($sp)
/* 001CC 80A8F33C 00451021 */ addu $v0, $v0, $a1
/* 001D0 80A8F340 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001D4 80A8F344 10C0001C */ beq $a2, $zero, .L80A8F3B8
/* 001D8 80A8F348 904204E8 */ lbu $v0, 0x04E8($v0) ## 000104E8
/* 001DC 80A8F34C 848E01A2 */ lh $t6, 0x01A2($a0) ## 000001A2
/* 001E0 80A8F350 3C0180A9 */ lui $at, %hi(D_80A8FEE8) ## $at = 80A90000
/* 001E4 80A8F354 15C0000F */ bne $t6, $zero, .L80A8F394
/* 001E8 80A8F358 00000000 */ nop
/* 001EC 80A8F35C 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 001F0 80A8F360 C42CFEE8 */ lwc1 $f12, %lo(D_80A8FEE8)($at)
/* 001F4 80A8F364 4600010D */ trunc.w.s $f4, $f0
/* 001F8 80A8F368 3C0180A9 */ lui $at, %hi(D_80A8FEEC) ## $at = 80A90000
/* 001FC 80A8F36C 44082000 */ mfc1 $t0, $f4
/* 00200 80A8F370 00000000 */ nop
/* 00204 80A8F374 2509001E */ addiu $t1, $t0, 0x001E ## $t1 = 0000001E
/* 00208 80A8F378 A60901A2 */ sh $t1, 0x01A2($s0) ## 000001A2
/* 0020C 80A8F37C 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00210 80A8F380 C42CFEEC */ lwc1 $f12, %lo(D_80A8FEEC)($at)
/* 00214 80A8F384 4600018D */ trunc.w.s $f6, $f0
/* 00218 80A8F388 440B3000 */ mfc1 $t3, $f6
/* 0021C 80A8F38C 00000000 */ nop
/* 00220 80A8F390 A60B01A6 */ sh $t3, 0x01A6($s0) ## 000001A6
.L80A8F394:
/* 00224 80A8F394 3C0180A9 */ lui $at, %hi(D_80A8FEF0) ## $at = 80A90000
/* 00228 80A8F398 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 0022C 80A8F39C C42CFEF0 */ lwc1 $f12, %lo(D_80A8FEF0)($at)
/* 00230 80A8F3A0 4600020D */ trunc.w.s $f8, $f0
/* 00234 80A8F3A4 860201A6 */ lh $v0, 0x01A6($s0) ## 000001A6
/* 00238 80A8F3A8 440F4000 */ mfc1 $t7, $f8
/* 0023C 80A8F3AC 00000000 */ nop
/* 00240 80A8F3B0 25F80005 */ addiu $t8, $t7, 0x0005 ## $t8 = 00000005
/* 00244 80A8F3B4 A618019A */ sh $t8, 0x019A($s0) ## 0000019A
.L80A8F3B8:
/* 00248 80A8F3B8 2C410005 */ sltiu $at, $v0, 0x0005
/* 0024C 80A8F3BC 1020002F */ beq $at, $zero, .L80A8F47C
/* 00250 80A8F3C0 0002C880 */ sll $t9, $v0, 2
/* 00254 80A8F3C4 3C0180A9 */ lui $at, %hi(jtbl_80A8FEF4) ## $at = 80A90000
/* 00258 80A8F3C8 00390821 */ addu $at, $at, $t9
/* 0025C 80A8F3CC 8C39FEF4 */ lw $t9, %lo(jtbl_80A8FEF4)($at)
/* 00260 80A8F3D0 03200008 */ jr $t9
/* 00264 80A8F3D4 00000000 */ nop
glabel L80A8F3D8
/* 00268 80A8F3D8 8608019A */ lh $t0, 0x019A($s0) ## 0000019A
/* 0026C 80A8F3DC 860A01A4 */ lh $t2, 0x01A4($s0) ## 000001A4
/* 00270 80A8F3E0 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00274 80A8F3E4 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
/* 00278 80A8F3E8 15400024 */ bne $t2, $zero, .L80A8F47C
/* 0027C 80A8F3EC A609019A */ sh $t1, 0x019A($s0) ## 0000019A
/* 00280 80A8F3F0 A60B01A4 */ sh $t3, 0x01A4($s0) ## 000001A4
/* 00284 80A8F3F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00288 80A8F3F8 0C00BE0A */ jal Audio_PlayActorSound2
/* 0028C 80A8F3FC 2405286B */ addiu $a1, $zero, 0x286B ## $a1 = 0000286B
/* 00290 80A8F400 1000001F */ beq $zero, $zero, .L80A8F480
/* 00294 80A8F404 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
glabel L80A8F408
/* 00298 80A8F408 860C019A */ lh $t4, 0x019A($s0) ## 0000019A
/* 0029C 80A8F40C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 002A0 80A8F410 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00
/* 002A4 80A8F414 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001
/* 002A8 80A8F418 A60D019A */ sh $t5, 0x019A($s0) ## 0000019A
/* 002AC 80A8F41C 10000017 */ beq $zero, $zero, .L80A8F47C
/* 002B0 80A8F420 E60A01B8 */ swc1 $f10, 0x01B8($s0) ## 000001B8
glabel L80A8F424
/* 002B4 80A8F424 860E019A */ lh $t6, 0x019A($s0) ## 0000019A
/* 002B8 80A8F428 861801AC */ lh $t8, 0x01AC($s0) ## 000001AC
/* 002BC 80A8F42C 24191388 */ addiu $t9, $zero, 0x1388 ## $t9 = 00001388
/* 002C0 80A8F430 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 002C4 80A8F434 17000011 */ bne $t8, $zero, .L80A8F47C
/* 002C8 80A8F438 A60F019A */ sh $t7, 0x019A($s0) ## 0000019A
/* 002CC 80A8F43C 1000000F */ beq $zero, $zero, .L80A8F47C
/* 002D0 80A8F440 A61901AC */ sh $t9, 0x01AC($s0) ## 000001AC
glabel L80A8F444
/* 002D4 80A8F444 8608019A */ lh $t0, 0x019A($s0) ## 0000019A
/* 002D8 80A8F448 860A01A8 */ lh $t2, 0x01A8($s0) ## 000001A8
/* 002DC 80A8F44C 240B1388 */ addiu $t3, $zero, 0x1388 ## $t3 = 00001388
/* 002E0 80A8F450 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
/* 002E4 80A8F454 15400009 */ bne $t2, $zero, .L80A8F47C
/* 002E8 80A8F458 A609019A */ sh $t1, 0x019A($s0) ## 0000019A
/* 002EC 80A8F45C 10000007 */ beq $zero, $zero, .L80A8F47C
/* 002F0 80A8F460 A60B01A8 */ sh $t3, 0x01A8($s0) ## 000001A8
glabel L80A8F464
/* 002F4 80A8F464 860C019A */ lh $t4, 0x019A($s0) ## 0000019A
/* 002F8 80A8F468 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 002FC 80A8F46C 44818000 */ mtc1 $at, $f16 ## $f16 = 2.00
/* 00300 80A8F470 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001
/* 00304 80A8F474 A60D019A */ sh $t5, 0x019A($s0) ## 0000019A
/* 00308 80A8F478 E61001B8 */ swc1 $f16, 0x01B8($s0) ## 000001B8
.L80A8F47C:
/* 0030C 80A8F47C 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
.L80A8F480:
/* 00310 80A8F480 240E0008 */ addiu $t6, $zero, 0x0008 ## $t6 = 00000008
/* 00314 80A8F484 28410009 */ slti $at, $v0, 0x0009
/* 00318 80A8F488 14200003 */ bne $at, $zero, .L80A8F498
/* 0031C 80A8F48C 00000000 */ nop
/* 00320 80A8F490 A60E019A */ sh $t6, 0x019A($s0) ## 0000019A
/* 00324 80A8F494 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
.L80A8F498:
/* 00328 80A8F498 1040006C */ beq $v0, $zero, .L80A8F64C
/* 0032C 80A8F49C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00330 80A8F4A0 44819000 */ mtc1 $at, $f18 ## $f18 = -1.00
/* 00334 80A8F4A4 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008
/* 00338 80A8F4A8 1441000B */ bne $v0, $at, .L80A8F4D8
/* 0033C 80A8F4AC E612006C */ swc1 $f18, 0x006C($s0) ## 0000006C
/* 00340 80A8F4B0 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 00344 80A8F4B4 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 00348 80A8F4B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0034C 80A8F4BC 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00350 80A8F4C0 53000006 */ beql $t8, $zero, .L80A8F4DC
/* 00354 80A8F4C4 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
/* 00358 80A8F4C8 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00
/* 0035C 80A8F4CC 24051847 */ addiu $a1, $zero, 0x1847 ## $a1 = 00001847
/* 00360 80A8F4D0 0C00BE0A */ jal Audio_PlayActorSound2
/* 00364 80A8F4D4 E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
.L80A8F4D8:
/* 00368 80A8F4D8 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000
.L80A8F4DC:
/* 0036C 80A8F4DC 3C073E4C */ lui $a3, 0x3E4C ## $a3 = 3E4C0000
/* 00370 80A8F4E0 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3E4CCCCD
/* 00374 80A8F4E4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD
/* 00378 80A8F4E8 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C
/* 0037C 80A8F4EC 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00380 80A8F4F0 8E0501B8 */ lw $a1, 0x01B8($s0) ## 000001B8
/* 00384 80A8F4F4 860501A8 */ lh $a1, 0x01A8($s0) ## 000001A8
/* 00388 80A8F4F8 AFA00010 */ sw $zero, 0x0010($sp)
/* 0038C 80A8F4FC 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00390 80A8F500 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 00394 80A8F504 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00398 80A8F508 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8
/* 0039C 80A8F50C 860501AC */ lh $a1, 0x01AC($s0) ## 000001AC
/* 003A0 80A8F510 AFA00010 */ sw $zero, 0x0010($sp)
/* 003A4 80A8F514 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8
/* 003A8 80A8F518 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 003AC 80A8F51C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 003B0 80A8F520 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8
/* 003B4 80A8F524 860201A8 */ lh $v0, 0x01A8($s0) ## 000001A8
/* 003B8 80A8F528 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003BC 80A8F52C 50400017 */ beql $v0, $zero, .L80A8F58C
/* 003C0 80A8F530 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC
/* 003C4 80A8F534 861900B4 */ lh $t9, 0x00B4($s0) ## 000000B4
/* 003C8 80A8F538 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 003CC 80A8F53C 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00
/* 003D0 80A8F540 03224023 */ subu $t0, $t9, $v0
/* 003D4 80A8F544 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00
/* 003D8 80A8F548 00000000 */ nop
/* 003DC 80A8F54C 46803020 */ cvt.s.w $f0, $f6
/* 003E0 80A8F550 46000005 */ abs.s $f0, $f0
/* 003E4 80A8F554 4608003C */ c.lt.s $f0, $f8
/* 003E8 80A8F558 00000000 */ nop
/* 003EC 80A8F55C 4502000B */ bc1fl .L80A8F58C
/* 003F0 80A8F560 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC
/* 003F4 80A8F564 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00
/* 003F8 80A8F568 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 003FC 80A8F56C 44819000 */ mtc1 $at, $f18 ## $f18 = -1.00
/* 00400 80A8F570 46805420 */ cvt.s.w $f16, $f10
/* 00404 80A8F574 46128102 */ mul.s $f4, $f16, $f18
/* 00408 80A8F578 4600218D */ trunc.w.s $f6, $f4
/* 0040C 80A8F57C 440A3000 */ mfc1 $t2, $f6
/* 00410 80A8F580 00000000 */ nop
/* 00414 80A8F584 A60A01A8 */ sh $t2, 0x01A8($s0) ## 000001A8
/* 00418 80A8F588 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC
.L80A8F58C:
/* 0041C 80A8F58C 50400017 */ beql $v0, $zero, .L80A8F5EC
/* 00420 80A8F590 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4
/* 00424 80A8F594 860B00B8 */ lh $t3, 0x00B8($s0) ## 000000B8
/* 00428 80A8F598 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 0042C 80A8F59C 44815000 */ mtc1 $at, $f10 ## $f10 = 50.00
/* 00430 80A8F5A0 01626023 */ subu $t4, $t3, $v0
/* 00434 80A8F5A4 448C4000 */ mtc1 $t4, $f8 ## $f8 = 0.00
/* 00438 80A8F5A8 00000000 */ nop
/* 0043C 80A8F5AC 46804020 */ cvt.s.w $f0, $f8
/* 00440 80A8F5B0 46000005 */ abs.s $f0, $f0
/* 00444 80A8F5B4 460A003C */ c.lt.s $f0, $f10
/* 00448 80A8F5B8 00000000 */ nop
/* 0044C 80A8F5BC 4502000B */ bc1fl .L80A8F5EC
/* 00450 80A8F5C0 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4
/* 00454 80A8F5C4 44828000 */ mtc1 $v0, $f16 ## $f16 = 0.00
/* 00458 80A8F5C8 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 0045C 80A8F5CC 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 00460 80A8F5D0 468084A0 */ cvt.s.w $f18, $f16
/* 00464 80A8F5D4 46049182 */ mul.s $f6, $f18, $f4
/* 00468 80A8F5D8 4600320D */ trunc.w.s $f8, $f6
/* 0046C 80A8F5DC 440E4000 */ mfc1 $t6, $f8
/* 00470 80A8F5E0 00000000 */ nop
/* 00474 80A8F5E4 A60E01AC */ sh $t6, 0x01AC($s0) ## 000001AC
/* 00478 80A8F5E8 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4
.L80A8F5EC:
/* 0047C 80A8F5EC 51E00009 */ beql $t7, $zero, .L80A8F614
/* 00480 80A8F5F0 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168
/* 00484 80A8F5F4 861800B6 */ lh $t8, 0x00B6($s0) ## 000000B6
/* 00488 80A8F5F8 27191000 */ addiu $t9, $t8, 0x1000 ## $t9 = 00001000
/* 0048C 80A8F5FC A61900B6 */ sh $t9, 0x00B6($s0) ## 000000B6
/* 00490 80A8F600 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
/* 00494 80A8F604 55000003 */ bnel $t0, $zero, .L80A8F614
/* 00498 80A8F608 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168
/* 0049C 80A8F60C A60001A4 */ sh $zero, 0x01A4($s0) ## 000001A4
/* 004A0 80A8F610 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168
.L80A8F614:
/* 004A4 80A8F614 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 004A8 80A8F618 4600540D */ trunc.w.s $f16, $f10
/* 004AC 80A8F61C 44028000 */ mfc1 $v0, $f16
/* 004B0 80A8F620 00000000 */ nop
/* 004B4 80A8F624 00021400 */ sll $v0, $v0, 16
/* 004B8 80A8F628 00021403 */ sra $v0, $v0, 16
/* 004BC 80A8F62C 10410003 */ beq $v0, $at, .L80A8F63C
/* 004C0 80A8F630 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 004C4 80A8F634 14410003 */ bne $v0, $at, .L80A8F644
/* 004C8 80A8F638 00000000 */ nop
.L80A8F63C:
/* 004CC 80A8F63C 0C00BE0A */ jal Audio_PlayActorSound2
/* 004D0 80A8F640 2405286A */ addiu $a1, $zero, 0x286A ## $a1 = 0000286A
.L80A8F644:
/* 004D4 80A8F644 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 004D8 80A8F648 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150
.L80A8F64C:
/* 004DC 80A8F64C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004E0 80A8F650 8FB00020 */ lw $s0, 0x0020($sp)
/* 004E4 80A8F654 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 004E8 80A8F658 03E00008 */ jr $ra
/* 004EC 80A8F65C 00000000 */ nop

View File

@ -1,69 +0,0 @@
glabel func_80A8F660
/* 004F0 80A8F660 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 004F4 80A8F664 AFB00028 */ sw $s0, 0x0028($sp)
/* 004F8 80A8F668 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004FC 80A8F66C AFBF002C */ sw $ra, 0x002C($sp)
/* 00500 80A8F670 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00504 80A8F674 AFA50034 */ sw $a1, 0x0034($sp)
/* 00508 80A8F678 0C028800 */ jal SkelAnime_GetFrameCount
/* 0050C 80A8F67C 24840214 */ addiu $a0, $a0, 0x0214 ## $a0 = 06000214
/* 00510 80A8F680 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00514 80A8F684 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00518 80A8F688 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00
/* 0051C 80A8F68C 468021A0 */ cvt.s.w $f6, $f4
/* 00520 80A8F690 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00524 80A8F694 24A50214 */ addiu $a1, $a1, 0x0214 ## $a1 = 06000214
/* 00528 80A8F698 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150
/* 0052C 80A8F69C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00530 80A8F6A0 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00534 80A8F6A4 4600320D */ trunc.w.s $f8, $f6
/* 00538 80A8F6A8 AFA00014 */ sw $zero, 0x0014($sp)
/* 0053C 80A8F6AC E7B20018 */ swc1 $f18, 0x0018($sp)
/* 00540 80A8F6B0 440F4000 */ mfc1 $t7, $f8
/* 00544 80A8F6B4 00000000 */ nop
/* 00548 80A8F6B8 000FC400 */ sll $t8, $t7, 16
/* 0054C 80A8F6BC 0018CC03 */ sra $t9, $t8, 16
/* 00550 80A8F6C0 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00554 80A8F6C4 00000000 */ nop
/* 00558 80A8F6C8 46805420 */ cvt.s.w $f16, $f10
/* 0055C 80A8F6CC 0C029468 */ jal SkelAnime_ChangeAnim
/* 00560 80A8F6D0 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00564 80A8F6D4 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00568 80A8F6D8 24084076 */ addiu $t0, $zero, 0x4076 ## $t0 = 00004076
/* 0056C 80A8F6DC 24090006 */ addiu $t1, $zero, 0x0006 ## $t1 = 00000006
/* 00570 80A8F6E0 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00574 80A8F6E4 A608010E */ sh $t0, 0x010E($s0) ## 0000010E
/* 00578 80A8F6E8 A6090196 */ sh $t1, 0x0196($s0) ## 00000196
/* 0057C 80A8F6EC 8C4A0004 */ lw $t2, 0x0004($v0) ## 8015E664
/* 00580 80A8F6F0 3C0880A9 */ lui $t0, %hi(func_80A8F75C) ## $t0 = 80A90000
/* 00584 80A8F6F4 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00588 80A8F6F8 1140000A */ beq $t2, $zero, .L80A8F724
/* 0058C 80A8F6FC 2508F75C */ addiu $t0, $t0, %lo(func_80A8F75C) ## $t0 = 80A8F75C
/* 00590 80A8F700 A2000194 */ sb $zero, 0x0194($s0) ## 00000194
/* 00594 80A8F704 904B0F40 */ lbu $t3, 0x0F40($v0) ## 8015F5A0
/* 00598 80A8F708 240C407A */ addiu $t4, $zero, 0x407A ## $t4 = 0000407A
/* 0059C 80A8F70C 240D0005 */ addiu $t5, $zero, 0x0005 ## $t5 = 00000005
/* 005A0 80A8F710 5160000D */ beql $t3, $zero, .L80A8F748
/* 005A4 80A8F714 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
/* 005A8 80A8F718 A60C010E */ sh $t4, 0x010E($s0) ## 0000010E
/* 005AC 80A8F71C 10000009 */ beq $zero, $zero, .L80A8F744
/* 005B0 80A8F720 A60D0196 */ sh $t5, 0x0196($s0) ## 00000196
.L80A8F724:
/* 005B4 80A8F724 A20E0194 */ sb $t6, 0x0194($s0) ## 00000194
/* 005B8 80A8F728 904F0F40 */ lbu $t7, 0x0F40($v0) ## 8015F5A0
/* 005BC 80A8F72C 24184079 */ addiu $t8, $zero, 0x4079 ## $t8 = 00004079
/* 005C0 80A8F730 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005
/* 005C4 80A8F734 51E00004 */ beql $t7, $zero, .L80A8F748
/* 005C8 80A8F738 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
/* 005CC 80A8F73C A618010E */ sh $t8, 0x010E($s0) ## 0000010E
/* 005D0 80A8F740 A6190196 */ sh $t9, 0x0196($s0) ## 00000196
.L80A8F744:
/* 005D4 80A8F744 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
.L80A8F748:
/* 005D8 80A8F748 8FBF002C */ lw $ra, 0x002C($sp)
/* 005DC 80A8F74C 8FB00028 */ lw $s0, 0x0028($sp)
/* 005E0 80A8F750 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 005E4 80A8F754 03E00008 */ jr $ra
/* 005E8 80A8F758 00000000 */ nop

View File

@ -1,103 +0,0 @@
glabel func_80A8F75C
/* 005EC 80A8F75C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 005F0 80A8F760 AFBF0024 */ sw $ra, 0x0024($sp)
/* 005F4 80A8F764 AFB00020 */ sw $s0, 0x0020($sp)
/* 005F8 80A8F768 AFA50034 */ sw $a1, 0x0034($sp)
/* 005FC 80A8F76C 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00600 80A8F770 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00604 80A8F774 0C2A3CA3 */ jal func_80A8F28C
/* 00608 80A8F778 AFAF002C */ sw $t7, 0x002C($sp)
/* 0060C 80A8F77C 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00610 80A8F780 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150
/* 00614 80A8F784 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF
/* 00618 80A8F788 A6180208 */ sh $t8, 0x0208($s0) ## 00000208
/* 0061C 80A8F78C 8FA50034 */ lw $a1, 0x0034($sp)
/* 00620 80A8F790 0C00BC65 */ jal func_8002F194
/* 00624 80A8F794 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00628 80A8F798 1040000C */ beq $v0, $zero, .L80A8F7CC
/* 0062C 80A8F79C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00630 80A8F7A0 86190196 */ lh $t9, 0x0196($s0) ## 00000196
/* 00634 80A8F7A4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00638 80A8F7A8 3C0980A9 */ lui $t1, %hi(func_80A8F660) ## $t1 = 80A90000
/* 0063C 80A8F7AC 17210005 */ bne $t9, $at, .L80A8F7C4
/* 00640 80A8F7B0 2529F660 */ addiu $t1, $t1, %lo(func_80A8F660) ## $t1 = 80A8F660
/* 00644 80A8F7B4 3C0880A9 */ lui $t0, %hi(func_80A8F9C8) ## $t0 = 80A90000
/* 00648 80A8F7B8 2508F9C8 */ addiu $t0, $t0, %lo(func_80A8F9C8) ## $t0 = 80A8F9C8
/* 0064C 80A8F7BC 1000003F */ beq $zero, $zero, .L80A8F8BC
/* 00650 80A8F7C0 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
.L80A8F7C4:
/* 00654 80A8F7C4 1000003D */ beq $zero, $zero, .L80A8F8BC
/* 00658 80A8F7C8 AE09014C */ sw $t1, 0x014C($s0) ## 0000014C
.L80A8F7CC:
/* 0065C 80A8F7CC C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090
/* 00660 80A8F7D0 44812000 */ mtc1 $at, $f4 ## $f4 = 0.00
/* 00664 80A8F7D4 860A008A */ lh $t2, 0x008A($s0) ## 0000008A
/* 00668 80A8F7D8 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
/* 0066C 80A8F7DC 4600203C */ c.lt.s $f4, $f0
/* 00670 80A8F7E0 014B1023 */ subu $v0, $t2, $t3
/* 00674 80A8F7E4 00021400 */ sll $v0, $v0, 16
/* 00678 80A8F7E8 45010034 */ bc1t .L80A8F8BC
/* 0067C 80A8F7EC 00021403 */ sra $v0, $v0, 16
/* 00680 80A8F7F0 04400004 */ bltz $v0, .L80A8F804
/* 00684 80A8F7F4 00021823 */ subu $v1, $zero, $v0
/* 00688 80A8F7F8 00021C00 */ sll $v1, $v0, 16
/* 0068C 80A8F7FC 10000003 */ beq $zero, $zero, .L80A8F80C
/* 00690 80A8F800 00031C03 */ sra $v1, $v1, 16
.L80A8F804:
/* 00694 80A8F804 00031C00 */ sll $v1, $v1, 16
/* 00698 80A8F808 00031C03 */ sra $v1, $v1, 16
.L80A8F80C:
/* 0069C 80A8F80C 28614300 */ slti $at, $v1, 0x4300
/* 006A0 80A8F810 5020002B */ beql $at, $zero, .L80A8F8C0
/* 006A4 80A8F814 8FBF0024 */ lw $ra, 0x0024($sp)
/* 006A8 80A8F818 920C0194 */ lbu $t4, 0x0194($s0) ## 00000194
/* 006AC 80A8F81C 8FA3002C */ lw $v1, 0x002C($sp)
/* 006B0 80A8F820 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006B4 80A8F824 15800023 */ bne $t4, $zero, .L80A8F8B4
/* 006B8 80A8F828 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000
/* 006BC 80A8F82C 8C620680 */ lw $v0, 0x0680($v1) ## 00000680
/* 006C0 80A8F830 240508D4 */ addiu $a1, $zero, 0x08D4 ## $a1 = 000008D4
/* 006C4 80A8F834 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 006C8 80A8F838 000269C0 */ sll $t5, $v0, 7
/* 006CC 80A8F83C 05A10015 */ bgez $t5, .L80A8F894
/* 006D0 80A8F840 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 006D4 80A8F844 8FA40034 */ lw $a0, 0x0034($sp)
/* 006D8 80A8F848 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 006DC 80A8F84C 0C02003E */ jal func_800800F8
/* 006E0 80A8F850 AFA00010 */ sw $zero, 0x0010($sp)
/* 006E4 80A8F854 A6020208 */ sh $v0, 0x0208($s0) ## 00000208
/* 006E8 80A8F858 8FA40034 */ lw $a0, 0x0034($sp)
/* 006EC 80A8F85C 0C042F56 */ jal func_8010BD58
/* 006F0 80A8F860 2405002A */ addiu $a1, $zero, 0x002A ## $a1 = 0000002A
/* 006F4 80A8F864 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 006F8 80A8F868 A600019A */ sh $zero, 0x019A($s0) ## 0000019A
/* 006FC 80A8F86C 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 00700 80A8F870 E60601B8 */ swc1 $f6, 0x01B8($s0) ## 000001B8
/* 00704 80A8F874 8FAE002C */ lw $t6, 0x002C($sp)
/* 00708 80A8F878 3C1980A9 */ lui $t9, %hi(func_80A8F8D0) ## $t9 = 80A90000
/* 0070C 80A8F87C 2739F8D0 */ addiu $t9, $t9, %lo(func_80A8F8D0) ## $t9 = 80A8F8D0
/* 00710 80A8F880 8DCF0680 */ lw $t7, 0x0680($t6) ## 00000680
/* 00714 80A8F884 01E1C025 */ or $t8, $t7, $at ## $t8 = 00800000
/* 00718 80A8F888 ADD80680 */ sw $t8, 0x0680($t6) ## 00000680
/* 0071C 80A8F88C 1000000B */ beq $zero, $zero, .L80A8F8BC
/* 00720 80A8F890 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
.L80A8F894:
/* 00724 80A8F894 44814000 */ mtc1 $at, $f8 ## $f8 = 0.00
/* 00728 80A8F898 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 0072C 80A8F89C 00414025 */ or $t0, $v0, $at ## $t0 = 00800000
/* 00730 80A8F8A0 4608003C */ c.lt.s $f0, $f8
/* 00734 80A8F8A4 00000000 */ nop
/* 00738 80A8F8A8 45000002 */ bc1f .L80A8F8B4
/* 0073C 80A8F8AC 00000000 */ nop
/* 00740 80A8F8B0 AC680680 */ sw $t0, 0x0680($v1) ## 00000680
.L80A8F8B4:
/* 00744 80A8F8B4 0C00BCB3 */ jal func_8002F2CC
/* 00748 80A8F8B8 8FA50034 */ lw $a1, 0x0034($sp)
.L80A8F8BC:
/* 0074C 80A8F8BC 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A8F8C0:
/* 00750 80A8F8C0 8FB00020 */ lw $s0, 0x0020($sp)
/* 00754 80A8F8C4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00758 80A8F8C8 03E00008 */ jr $ra
/* 0075C 80A8F8CC 00000000 */ nop

View File

@ -1,74 +0,0 @@
.rdata
glabel D_80A8FE70
.asciz "\x1b[34m \n\x1b[m"
.balign 4
.text
glabel func_80A8F8D0
/* 00760 80A8F8D0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00764 80A8F8D4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00768 80A8F8D8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0076C 80A8F8DC AFB00018 */ sw $s0, 0x0018($sp)
/* 00770 80A8F8E0 00A11821 */ addu $v1, $a1, $at
/* 00774 80A8F8E4 946604C6 */ lhu $a2, 0x04C6($v1) ## 000004C6
/* 00778 80A8F8E8 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 0077C 80A8F8EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00780 80A8F8F0 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00784 80A8F8F4 14C10023 */ bne $a2, $at, .L80A8F984
/* 00788 80A8F8F8 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 0078C 80A8F8FC 906E03DC */ lbu $t6, 0x03DC($v1) ## 000003DC
/* 00790 80A8F900 3C0480A9 */ lui $a0, %hi(D_80A8FE70) ## $a0 = 80A90000
/* 00794 80A8F904 2484FE70 */ addiu $a0, $a0, %lo(D_80A8FE70) ## $a0 = 80A8FE70
/* 00798 80A8F908 55C0001F */ bnel $t6, $zero, .L80A8F988
/* 0079C 80A8F90C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 007A0 80A8F910 0C00084C */ jal osSyncPrintf
/* 007A4 80A8F914 AFA5002C */ sw $a1, 0x002C($sp)
/* 007A8 80A8F918 860F019A */ lh $t7, 0x019A($s0) ## 0000019A
/* 007AC 80A8F91C 8FA7002C */ lw $a3, 0x002C($sp)
/* 007B0 80A8F920 11E00010 */ beq $t7, $zero, .L80A8F964
/* 007B4 80A8F924 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 007B8 80A8F928 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 007BC 80A8F92C 0C041B33 */ jal func_80106CCC
/* 007C0 80A8F930 AFA7002C */ sw $a3, 0x002C($sp)
/* 007C4 80A8F934 8FA4002C */ lw $a0, 0x002C($sp)
/* 007C8 80A8F938 24184077 */ addiu $t8, $zero, 0x4077 ## $t8 = 00004077
/* 007CC 80A8F93C 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005
/* 007D0 80A8F940 A618010E */ sh $t8, 0x010E($s0) ## 0000010E
/* 007D4 80A8F944 A6190196 */ sh $t9, 0x0196($s0) ## 00000196
/* 007D8 80A8F948 3305FFFF */ andi $a1, $t8, 0xFFFF ## $a1 = 00004077
/* 007DC 80A8F94C 0C042DA0 */ jal func_8010B680
/* 007E0 80A8F950 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 007E4 80A8F954 3C0880A9 */ lui $t0, %hi(func_80A8F9C8) ## $t0 = 80A90000
/* 007E8 80A8F958 2508F9C8 */ addiu $t0, $t0, %lo(func_80A8F9C8) ## $t0 = 80A8F9C8
/* 007EC 80A8F95C 10000015 */ beq $zero, $zero, .L80A8F9B4
/* 007F0 80A8F960 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
.L80A8F964:
/* 007F4 80A8F964 0C0200FC */ jal func_800803F0
/* 007F8 80A8F968 86050208 */ lh $a1, 0x0208($s0) ## 00000208
/* 007FC 80A8F96C 3C0A80A9 */ lui $t2, %hi(func_80A8F660) ## $t2 = 80A90000
/* 00800 80A8F970 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF
/* 00804 80A8F974 254AF660 */ addiu $t2, $t2, %lo(func_80A8F660) ## $t2 = 80A8F660
/* 00808 80A8F978 A6090208 */ sh $t1, 0x0208($s0) ## 00000208
/* 0080C 80A8F97C 1000000D */ beq $zero, $zero, .L80A8F9B4
/* 00810 80A8F980 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C
.L80A8F984:
/* 00814 80A8F984 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
.L80A8F988:
/* 00818 80A8F988 14C1000A */ bne $a2, $at, .L80A8F9B4
/* 0081C 80A8F98C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00820 80A8F990 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00824 80A8F994 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00828 80A8F998 0C2A3CC8 */ jal func_80A8F320
/* 0082C 80A8F99C AFA20024 */ sw $v0, 0x0024($sp)
/* 00830 80A8F9A0 8FA20024 */ lw $v0, 0x0024($sp)
/* 00834 80A8F9A4 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 00838 80A8F9A8 8C4B0680 */ lw $t3, 0x0680($v0) ## 00000680
/* 0083C 80A8F9AC 01616025 */ or $t4, $t3, $at ## $t4 = 00800000
/* 00840 80A8F9B0 AC4C0680 */ sw $t4, 0x0680($v0) ## 00000680
.L80A8F9B4:
/* 00844 80A8F9B4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00848 80A8F9B8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0084C 80A8F9BC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00850 80A8F9C0 03E00008 */ jr $ra
/* 00854 80A8F9C4 00000000 */ nop

View File

@ -1,59 +0,0 @@
glabel func_80A8F9C8
/* 00858 80A8F9C8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 0085C 80A8F9CC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00860 80A8F9D0 AFB10020 */ sw $s1, 0x0020($sp)
/* 00864 80A8F9D4 AFB0001C */ sw $s0, 0x001C($sp)
/* 00868 80A8F9D8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 0086C 80A8F9DC 0C2A3CA3 */ jal func_80A8F28C
/* 00870 80A8F9E0 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00874 80A8F9E4 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00878 80A8F9E8 26240150 */ addiu $a0, $s1, 0x0150 ## $a0 = 00000150
/* 0087C 80A8F9EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00880 80A8F9F0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00884 80A8F9F4 0C00B7D5 */ jal func_8002DF54
/* 00888 80A8F9F8 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 0088C 80A8F9FC 0C042F6F */ jal func_8010BDBC
/* 00890 80A8FA00 260420D8 */ addiu $a0, $s0, 0x20D8 ## $a0 = 000020D8
/* 00894 80A8FA04 862E0196 */ lh $t6, 0x0196($s1) ## 00000196
/* 00898 80A8FA08 55C20022 */ bnel $t6, $v0, .L80A8FA94
/* 0089C 80A8FA0C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 008A0 80A8FA10 0C041AF2 */ jal func_80106BC8
/* 008A4 80A8FA14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008A8 80A8FA18 5040001E */ beql $v0, $zero, .L80A8FA94
/* 008AC 80A8FA1C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 008B0 80A8FA20 86220208 */ lh $v0, 0x0208($s1) ## 00000208
/* 008B4 80A8FA24 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 008B8 80A8FA28 10410004 */ beq $v0, $at, .L80A8FA3C
/* 008BC 80A8FA2C 00027880 */ sll $t7, $v0, 2
/* 008C0 80A8FA30 020FC021 */ addu $t8, $s0, $t7
/* 008C4 80A8FA34 0C016C69 */ jal func_8005B1A4
/* 008C8 80A8FA38 8F040790 */ lw $a0, 0x0790($t8) ## 00000790
.L80A8FA3C:
/* 008CC 80A8FA3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008D0 80A8FA40 240508DE */ addiu $a1, $zero, 0x08DE ## $a1 = 000008DE
/* 008D4 80A8FA44 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 008D8 80A8FA48 02203825 */ or $a3, $s1, $zero ## $a3 = 00000000
/* 008DC 80A8FA4C 0C02003E */ jal func_800800F8
/* 008E0 80A8FA50 AFA00010 */ sw $zero, 0x0010($sp)
/* 008E4 80A8FA54 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 008E8 80A8FA58 A6220208 */ sh $v0, 0x0208($s1) ## 00000208
/* 008EC 80A8FA5C 00300821 */ addu $at, $at, $s0
/* 008F0 80A8FA60 24190037 */ addiu $t9, $zero, 0x0037 ## $t9 = 00000037
/* 008F4 80A8FA64 A03903DC */ sb $t9, 0x03DC($at) ## 000103DC
/* 008F8 80A8FA68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008FC 80A8FA6C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00900 80A8FA70 0C00B7D5 */ jal func_8002DF54
/* 00904 80A8FA74 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 00908 80A8FA78 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0090C 80A8FA7C 0C042F56 */ jal func_8010BD58
/* 00910 80A8FA80 2405002B */ addiu $a1, $zero, 0x002B ## $a1 = 0000002B
/* 00914 80A8FA84 3C0880A9 */ lui $t0, %hi(func_80A8FAA4) ## $t0 = 80A90000
/* 00918 80A8FA88 2508FAA4 */ addiu $t0, $t0, %lo(func_80A8FAA4) ## $t0 = 80A8FAA4
/* 0091C 80A8FA8C AE28014C */ sw $t0, 0x014C($s1) ## 0000014C
/* 00920 80A8FA90 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A8FA94:
/* 00924 80A8FA94 8FB0001C */ lw $s0, 0x001C($sp)
/* 00928 80A8FA98 8FB10020 */ lw $s1, 0x0020($sp)
/* 0092C 80A8FA9C 03E00008 */ jr $ra
/* 00930 80A8FAA0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000

View File

@ -1,81 +0,0 @@
.rdata
glabel D_80A8FE98
.asciz "game_play->message.msg_mode=%d\n"
.balign 4
.text
glabel func_80A8FAA4
/* 00934 80A8FAA4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00938 80A8FAA8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0093C 80A8FAAC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00940 80A8FAB0 AFB10020 */ sw $s1, 0x0020($sp)
/* 00944 80A8FAB4 AFB0001C */ sw $s0, 0x001C($sp)
/* 00948 80A8FAB8 00A11021 */ addu $v0, $a1, $at
/* 0094C 80A8FABC 944E04C6 */ lhu $t6, 0x04C6($v0) ## 000004C6
/* 00950 80A8FAC0 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00954 80A8FAC4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00958 80A8FAC8 11C10005 */ beq $t6, $at, .L80A8FAE0
/* 0095C 80A8FACC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00960 80A8FAD0 0C2A3CC8 */ jal func_80A8F320
/* 00964 80A8FAD4 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 00968 80A8FAD8 10000033 */ beq $zero, $zero, .L80A8FBA8
/* 0096C 80A8FADC 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A8FAE0:
/* 00970 80A8FAE0 3C0480A9 */ lui $a0, %hi(D_80A8FE98) ## $a0 = 80A90000
/* 00974 80A8FAE4 904503DC */ lbu $a1, 0x03DC($v0) ## 000003DC
/* 00978 80A8FAE8 AFA2002C */ sw $v0, 0x002C($sp)
/* 0097C 80A8FAEC 0C00084C */ jal osSyncPrintf
/* 00980 80A8FAF0 2484FE98 */ addiu $a0, $a0, %lo(D_80A8FE98) ## $a0 = 80A8FE98
/* 00984 80A8FAF4 8FA2002C */ lw $v0, 0x002C($sp)
/* 00988 80A8FAF8 904F03DC */ lbu $t7, 0x03DC($v0) ## 000003DC
/* 0098C 80A8FAFC 55E0002A */ bnel $t7, $zero, .L80A8FBA8
/* 00990 80A8FB00 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00994 80A8FB04 92180194 */ lbu $t8, 0x0194($s0) ## 00000194
/* 00998 80A8FB08 24094078 */ addiu $t1, $zero, 0x4078 ## $t1 = 00004078
/* 0099C 80A8FB0C 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005
/* 009A0 80A8FB10 1300000B */ beq $t8, $zero, .L80A8FB40
/* 009A4 80A8FB14 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 009A8 80A8FB18 24194077 */ addiu $t9, $zero, 0x4077 ## $t9 = 00004077
/* 009AC 80A8FB1C 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005
/* 009B0 80A8FB20 A619010E */ sh $t9, 0x010E($s0) ## 0000010E
/* 009B4 80A8FB24 A6080196 */ sh $t0, 0x0196($s0) ## 00000196
/* 009B8 80A8FB28 3325FFFF */ andi $a1, $t9, 0xFFFF ## $a1 = 00004077
/* 009BC 80A8FB2C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 009C0 80A8FB30 0C042DA0 */ jal func_8010B680
/* 009C4 80A8FB34 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 009C8 80A8FB38 10000006 */ beq $zero, $zero, .L80A8FB54
/* 009CC 80A8FB3C 00000000 */ nop
.L80A8FB40:
/* 009D0 80A8FB40 A609010E */ sh $t1, 0x010E($s0) ## 0000010E
/* 009D4 80A8FB44 A60A0196 */ sh $t2, 0x0196($s0) ## 00000196
/* 009D8 80A8FB48 3125FFFF */ andi $a1, $t1, 0xFFFF ## $a1 = 00000000
/* 009DC 80A8FB4C 0C042DA0 */ jal func_8010B680
/* 009E0 80A8FB50 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
.L80A8FB54:
/* 009E4 80A8FB54 3C0B80A9 */ lui $t3, %hi(func_80A8FBB8) ## $t3 = 80A90000
/* 009E8 80A8FB58 256BFBB8 */ addiu $t3, $t3, %lo(func_80A8FBB8) ## $t3 = 80A8FBB8
/* 009EC 80A8FB5C AE0B014C */ sw $t3, 0x014C($s0) ## 0000014C
/* 009F0 80A8FB60 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 009F4 80A8FB64 0C0200FC */ jal func_800803F0
/* 009F8 80A8FB68 86050208 */ lh $a1, 0x0208($s0) ## 00000208
/* 009FC 80A8FB6C 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF
/* 00A00 80A8FB70 A60C0208 */ sh $t4, 0x0208($s0) ## 00000208
/* 00A04 80A8FB74 AFA00010 */ sw $zero, 0x0010($sp)
/* 00A08 80A8FB78 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00A0C 80A8FB7C 240508D4 */ addiu $a1, $zero, 0x08D4 ## $a1 = 000008D4
/* 00A10 80A8FB80 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 00A14 80A8FB84 0C02003E */ jal func_800800F8
/* 00A18 80A8FB88 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 00A1C 80A8FB8C A6020208 */ sh $v0, 0x0208($s0) ## 00000208
/* 00A20 80A8FB90 860D0208 */ lh $t5, 0x0208($s0) ## 00000208
/* 00A24 80A8FB94 000D7080 */ sll $t6, $t5, 2
/* 00A28 80A8FB98 022E7821 */ addu $t7, $s1, $t6
/* 00A2C 80A8FB9C 0C016C69 */ jal func_8005B1A4
/* 00A30 80A8FBA0 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790
/* 00A34 80A8FBA4 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A8FBA8:
/* 00A38 80A8FBA8 8FB0001C */ lw $s0, 0x001C($sp)
/* 00A3C 80A8FBAC 8FB10020 */ lw $s1, 0x0020($sp)
/* 00A40 80A8FBB0 03E00008 */ jr $ra
/* 00A44 80A8FBB4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000

View File

@ -1,40 +0,0 @@
glabel func_80A8FBB8
/* 00A48 80A8FBB8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00A4C 80A8FBBC AFBF001C */ sw $ra, 0x001C($sp)
/* 00A50 80A8FBC0 AFB10018 */ sw $s1, 0x0018($sp)
/* 00A54 80A8FBC4 AFB00014 */ sw $s0, 0x0014($sp)
/* 00A58 80A8FBC8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00A5C 80A8FBCC 0C2A3CA3 */ jal func_80A8F28C
/* 00A60 80A8FBD0 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00A64 80A8FBD4 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00A68 80A8FBD8 26240150 */ addiu $a0, $s1, 0x0150 ## $a0 = 00000150
/* 00A6C 80A8FBDC 0C042F6F */ jal func_8010BDBC
/* 00A70 80A8FBE0 260420D8 */ addiu $a0, $s0, 0x20D8 ## $a0 = 000020D8
/* 00A74 80A8FBE4 862E0196 */ lh $t6, 0x0196($s1) ## 00000196
/* 00A78 80A8FBE8 55C20014 */ bnel $t6, $v0, .L80A8FC3C
/* 00A7C 80A8FBEC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A80 80A8FBF0 0C041AF2 */ jal func_80106BC8
/* 00A84 80A8FBF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A88 80A8FBF8 50400010 */ beql $v0, $zero, .L80A8FC3C
/* 00A8C 80A8FBFC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A90 80A8FC00 862F0208 */ lh $t7, 0x0208($s1) ## 00000208
/* 00A94 80A8FC04 000FC080 */ sll $t8, $t7, 2
/* 00A98 80A8FC08 0218C821 */ addu $t9, $s0, $t8
/* 00A9C 80A8FC0C 0C016C69 */ jal func_8005B1A4
/* 00AA0 80A8FC10 8F240790 */ lw $a0, 0x0790($t9) ## 00000790
/* 00AA4 80A8FC14 0C041B33 */ jal func_80106CCC
/* 00AA8 80A8FC18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AAC 80A8FC1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AB0 80A8FC20 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00AB4 80A8FC24 0C00B7D5 */ jal func_8002DF54
/* 00AB8 80A8FC28 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 00ABC 80A8FC2C 3C0880A9 */ lui $t0, %hi(func_80A8F660) ## $t0 = 80A90000
/* 00AC0 80A8FC30 2508F660 */ addiu $t0, $t0, %lo(func_80A8F660) ## $t0 = 80A8F660
/* 00AC4 80A8FC34 AE28014C */ sw $t0, 0x014C($s1) ## 0000014C
/* 00AC8 80A8FC38 8FBF001C */ lw $ra, 0x001C($sp)
.L80A8FC3C:
/* 00ACC 80A8FC3C 8FB00014 */ lw $s0, 0x0014($sp)
/* 00AD0 80A8FC40 8FB10018 */ lw $s1, 0x0018($sp)
/* 00AD4 80A8FC44 03E00008 */ jr $ra
/* 00AD8 80A8FC48 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000

View File

@ -1,21 +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 D_80A8FDE0
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040100, 0x00140046, 0x00000000, 0x00000000
glabel En_Kakasi_InitVars
.word 0x017B0400, 0x02000009, 0x01540000, 0x0000020C
.word EnKakasi_Init
.word EnKakasi_Destroy
.word EnKakasi_Update
.word EnKakasi_Draw
.word 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_80A8FF10
.incbin "baserom/ovl_En_Kakasi", 0xDA0, 0x00000100

3
spec
View File

@ -2638,8 +2638,7 @@ endseg
beginseg
name "ovl_En_Kakasi"
include "build/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o"
include "build/data/overlays/actors/z_en_kakasi.data.o"
include "build/data/overlays/actors/z_en_kakasi.reloc.o"
include "build/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o"
endseg
beginseg

View File

@ -1,4 +1,11 @@
/*
* File: z_en_kakasi.c
* Overlay: ovl_En_Kakasi
* Description: Pierre the Scarecrow
*/
#include "z_en_kakasi.h"
#include "vt.h"
#define FLAGS 0x02000009
@ -9,7 +16,22 @@ void EnKakasi_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnKakasi_Update(Actor* thisx, GlobalContext* globalCtx);
void EnKakasi_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_80A8F660(EnKakasi* this, GlobalContext* globalCtx);
void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx);
void func_80A8F8D0(EnKakasi* this, GlobalContext* globalCtx);
void func_80A8F9C8(EnKakasi* this, GlobalContext* globalCtx);
void func_80A8FBB8(EnKakasi* this, GlobalContext* globalCtx);
void func_80A8FAA4(EnKakasi* this, GlobalContext* globalCtx);
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x04, 0x01 },
{ 20, 70, 0, { 0, 0, 0 } },
};
extern SkeletonHeader D_060065B0;
extern AnimationHeader D_06000214;
const ActorInit En_Kakasi_InitVars = {
ACTOR_EN_KAKASI,
ACTORTYPE_NPC,
@ -21,27 +43,301 @@ const ActorInit En_Kakasi_InitVars = {
(ActorFunc)EnKakasi_Update,
(ActorFunc)EnKakasi_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s")
void EnKakasi_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnKakasi* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s")
Collider_DestroyCylinder(globalCtx, &this->collider);
//! @bug Skelanime_Free is not called
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s")
void EnKakasi_Init(Actor* thisx, GlobalContext* globalCtx) {
EnKakasi* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s")
osSyncPrintf("\n\n");
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ ☆☆☆☆☆ %f\n" VT_RST, this->actor.posRot.pos.y);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s")
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.unk_1F = 6;
SkelAnime_InitSV(globalCtx, &this->skelanime, &D_060065B0, &D_06000214, NULL, NULL, 0);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s")
this->rot = this->actor.posRot.rot;
this->actor.flags |= 0x400;
this->actor.colChkInfo.mass = 0xFF;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s")
Actor_SetScale(&this->actor, 0.01f);
this->actionFunc = func_80A8F660;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s")
void func_80A8F28C(EnKakasi* this) {
this->unk_1A4 = 0;
this->skelanime.animPlaybackSpeed = 0.0f;
this->unk_1A8 = this->unk_1AC = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s")
Math_SmoothDownscaleMaxF(&this->skelanime.animCurrentFrame, 0.5f, 1.0f);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.x, this->rot.x, 5, 0x2710, 0);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, this->rot.y, 5, 0x2710, 0);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.z, this->rot.z, 5, 0x2710, 0);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s")
void func_80A8F320(EnKakasi* this, GlobalContext* globalCtx, s16 arg) {
s16 phi_v0;
s16 currentFrame;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s")
phi_v0 = globalCtx->msgCtx.unk_E410[0];
if (arg != 0) {
if (this->unk_19C[3] == 0) {
this->unk_19C[3] = (s16)Math_Rand_ZeroFloat(10.99f) + 30;
this->unk_1A6 = (s16)Math_Rand_ZeroFloat(4.99f);
}
this->unk_19A = (s16)Math_Rand_ZeroFloat(2.99f) + 5;
phi_v0 = this->unk_1A6;
}
switch (phi_v0) {
case 0:
this->unk_19A++;
if (this->unk_1A4 == 0) {
this->unk_1A4 = 1;
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL);
}
break;
case 1:
this->unk_19A++;
this->unk_1B8 = 1.0f;
break;
case 2:
this->unk_19A++;
if (this->unk_1AC == 0) {
this->unk_1AC = 0x1388;
}
break;
case 3:
this->unk_19A++;
if (this->unk_1A8 == 0) {
this->unk_1A8 = 0x1388;
}
break;
case 4:
this->unk_19A++;
this->unk_1B8 = 2.0f;
break;
}
if (this->unk_19A > 8) {
this->unk_19A = 8;
}
if (this->unk_19A != 0) {
this->actor.gravity = -1.0f;
if (this->unk_19A == 8 && (this->actor.bgCheckFlags & 1)) {
this->actor.velocity.y = 3.0f;
Audio_PlayActorSound2(&this->actor, NA_SE_IT_KAKASHI_JUMP);
}
Math_SmoothScaleMaxF(&this->skelanime.animPlaybackSpeed, this->unk_1B8, 0.1f, 0.2f);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.x, this->unk_1A8, 5, 0x3E8, 0);
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.z, this->unk_1AC, 5, 0x3E8, 0);
if (this->unk_1A8 != 0 && fabsf(this->actor.shape.rot.x - this->unk_1A8) < 50.0f) {
this->unk_1A8 *= -1.0f;
}
if (this->unk_1AC != 0 && fabsf(this->actor.shape.rot.z - this->unk_1AC) < 50.0f) {
this->unk_1AC *= -1.0f;
}
if (this->unk_1A4 != 0) {
this->actor.shape.rot.y += 0x1000;
if (this->actor.shape.rot.y == 0) {
this->unk_1A4 = 0;
}
}
currentFrame = this->skelanime.animCurrentFrame;
if (currentFrame == 11 || currentFrame == 17) {
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_SWING);
}
SkelAnime_FrameUpdateMatrix(&this->skelanime);
}
}
void func_80A8F660(EnKakasi* this, GlobalContext* globalCtx) {
f32 frameCount = SkelAnime_GetFrameCount(&D_06000214.genericHeader);
SkelAnime_ChangeAnim(&this->skelanime, &D_06000214, 1.0f, 0.0f, (s16)frameCount, 0, -10.0f);
this->actor.textId = 0x4076;
this->unk_196 = 6;
if (LINK_IS_CHILD) {
this->unk_194 = false;
if (gSaveContext.unk_F3C[4] != 0) {
this->actor.textId = 0x407A;
this->unk_196 = 5;
}
} else {
this->unk_194 = true;
if (gSaveContext.unk_F3C[4] != 0) {
this->actor.textId = 0x4079;
this->unk_196 = 5;
}
}
this->actionFunc = func_80A8F75C;
}
void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s16 yawTowardsLink;
s16 absyawTowardsLink;
func_80A8F28C(this);
SkelAnime_FrameUpdateMatrix(&this->skelanime);
this->camId = -1;
if (func_8002F194(&this->actor, globalCtx)) {
if (this->unk_196 == 5) {
this->actionFunc = func_80A8F9C8;
} else {
this->actionFunc = func_80A8F660;
}
return;
}
yawTowardsLink = this->actor.yawTowardsLink - this->actor.shape.rot.y;
if (!(this->actor.xzDistFromLink > 120.0f)) {
absyawTowardsLink = ABS(yawTowardsLink);
if (absyawTowardsLink < 0x4300) {
if (!this->unk_194) {
if (player->stateFlags2 & 0x1000000) {
this->camId = func_800800F8(globalCtx, 0x8D4, -0x63, &this->actor, 0);
func_8010BD58(globalCtx, 0x2A);
this->unk_19A = 0;
this->unk_1B8 = 0.0;
player->stateFlags2 |= 0x800000;
this->actionFunc = func_80A8F8D0;
return;
}
if (this->actor.xzDistFromLink < 80.0f) {
player->stateFlags2 |= 0x800000;
}
}
func_8002F2CC(&this->actor, globalCtx, 100.0f);
}
}
}
void func_80A8F8D0(EnKakasi* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (globalCtx->msgCtx.unk_E3EE == 4 && globalCtx->msgCtx.msgMode == 0) {
// end?
osSyncPrintf(VT_FGCOL(BLUE) "☆☆☆☆☆ 終り? ☆☆☆☆☆ \n" VT_RST);
if (this->unk_19A != 0) {
func_80106CCC(globalCtx);
this->actor.textId = 0x4077;
this->unk_196 = 5;
func_8010B680(globalCtx, this->actor.textId, NULL);
this->actionFunc = func_80A8F9C8;
} else {
func_800803F0(globalCtx, this->camId);
this->camId = -1;
this->actionFunc = func_80A8F660;
}
} else if (globalCtx->msgCtx.unk_E3EE == 1) {
func_80A8F320(this, globalCtx, 0);
player->stateFlags2 |= 0x800000;
}
}
void func_80A8F9C8(EnKakasi* this, GlobalContext* globalCtx) {
func_80A8F28C(this);
SkelAnime_FrameUpdateMatrix(&this->skelanime);
func_8002DF54(globalCtx, NULL, 8);
if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx) && (func_80106BC8(globalCtx) != 0)) {
if (this->camId != -1) {
func_8005B1A4(globalCtx->cameraPtrs[this->camId]);
}
this->camId = func_800800F8(globalCtx, 0x8DE, -0x63, &this->actor, 0);
globalCtx->msgCtx.msgMode = 0x37;
func_8002DF54(globalCtx, NULL, 8);
func_8010BD58(globalCtx, 0x2B);
this->actionFunc = func_80A8FAA4;
}
}
void func_80A8FAA4(EnKakasi* this, GlobalContext* globalCtx) {
if (globalCtx->msgCtx.unk_E3EE != 0xF) {
func_80A8F320(this, globalCtx, 1);
return;
}
osSyncPrintf("game_play->message.msg_mode=%d\n", globalCtx->msgCtx.msgMode);
if (globalCtx->msgCtx.msgMode == 0) {
if (this->unk_194) {
this->actor.textId = 0x4077;
this->unk_196 = 5;
func_8010B680(globalCtx, this->actor.textId, NULL);
} else {
this->actor.textId = 0x4078;
this->unk_196 = 5;
func_8010B680(globalCtx, this->actor.textId, NULL);
}
this->actionFunc = func_80A8FBB8;
func_800803F0(globalCtx, this->camId);
this->camId = -1;
this->camId = func_800800F8(globalCtx, 0x8D4, -0x63, &this->actor, 0);
func_8005B1A4(globalCtx->cameraPtrs[this->camId]);
}
}
void func_80A8FBB8(EnKakasi* this, GlobalContext* globalCtx) {
func_80A8F28C(this);
SkelAnime_FrameUpdateMatrix(&this->skelanime);
if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx)) {
if (func_80106BC8(globalCtx) != 0) {
func_8005B1A4(globalCtx->cameraPtrs[this->camId]);
func_80106CCC(globalCtx);
func_8002DF54(globalCtx, NULL, 7);
this->actionFunc = func_80A8F660;
}
}
}
void EnKakasi_Update(Actor* thisx, GlobalContext* globalCtx) {
EnKakasi* this = THIS;
s32 pad;
s32 i;
this->unk_198++;
this->actor.posRot.rot = this->actor.shape.rot;
for (i = 0; i < ARRAY_COUNT(this->unk_19C); i++) {
if (this->unk_19C[i] != 0) {
this->unk_19C[i]--;
}
}
this->height = 60.0f;
Actor_SetHeight(&this->actor, this->height);
this->actionFunc(this, globalCtx);
Actor_MoveForward(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 50.0f, 50.0f, 100.0f, 28);
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
void EnKakasi_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnKakasi* this = THIS;
if (BREG(3) != 0) {
osSyncPrintf("\n\n");
// flag!
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ フラグ! ☆☆☆☆☆ %d\n" VT_RST, gSaveContext.unk_F3C[4]);
}
func_80093D18(globalCtx->state.gfxCtx);
SkelAnime_DrawSV(globalCtx, this->skelanime.skeleton, this->skelanime.limbDrawTbl, this->skelanime.dListCount, NULL,
NULL, &this->actor);
}

View File

@ -6,9 +6,27 @@
struct EnKakasi;
typedef void (*EnKakasiFunc)(struct EnKakasi*, GlobalContext*);
typedef struct EnKakasi {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xC0];
/* 0x014C */ EnKakasiFunc actionFunc;
/* 0x0150 */ SkelAnime skelanime;
/* 0x0194 */ u8 unk_194;
/* 0x0196 */ s16 unk_196;
/* 0x0198 */ s16 unk_198;
/* 0x019A */ s16 unk_19A;
/* 0x019C */ s16 unk_19C[4];
/* 0x01A4 */ s16 unk_1A4;
/* 0x01A6 */ s16 unk_1A6;
/* 0x01A8 */ s16 unk_1A8;
/* 0x01AA */ char unk_1AA[0x2];
/* 0x01AC */ s16 unk_1AC;
/* 0x01AE */ Vec3s rot;
/* 0x01B4 */ f32 height;
/* 0x01B8 */ f32 unk_1B8;
/* 0x01BC */ ColliderCylinder collider;
/* 0x0208 */ s16 camId;
} EnKakasi; // size = 0x020C
extern const ActorInit En_Kakasi_InitVars;

View File

@ -870,6 +870,7 @@ D_06001080 = 0x06001080;
D_06004768 = 0x06004768;
D_0600039C = 0x0600039C;
// z_en_kakasi
// z_en_kakasi2
// z_en_kakasi3
D_060065B0 = 0x060065B0;