1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 07:07:09 +00:00

EnTr, 1 nonmatching, mostly documented (#621)

* 2 functions left, data imported

* one function left

* setup for NON_MATCHING

* struct variables named

* most of the functions named, type enums

* delete ASM

* Actor fixes
This commit is contained in:
EllipticEllipsis 2021-01-31 05:07:58 +00:00 committed by GitHub
parent 9607ce34fd
commit c2b5ae3ed2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 527 additions and 1543 deletions

View file

@ -1,4 +0,0 @@
glabel EnTr_Destroy
/* 00170 80B22E60 AFA40000 */ sw $a0, 0x0000($sp)
/* 00174 80B22E64 03E00008 */ jr $ra
/* 00178 80B22E68 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,92 +0,0 @@
.rdata
glabel D_80B24414
.asciz "../z_en_tr.c"
.balign 4
glabel D_80B24424
.asciz "../z_en_tr.c"
.balign 4
.text
glabel EnTr_Draw
/* 011B4 80B23EA4 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 011B8 80B23EA8 AFBF002C */ sw $ra, 0x002C($sp)
/* 011BC 80B23EAC AFB10028 */ sw $s1, 0x0028($sp)
/* 011C0 80B23EB0 AFB00024 */ sw $s0, 0x0024($sp)
/* 011C4 80B23EB4 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 011C8 80B23EB8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 011CC 80B23EBC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 011D0 80B23EC0 11C0000B */ beq $t6, $zero, .L80B23EF0
/* 011D4 80B23EC4 00000000 */ nop
/* 011D8 80B23EC8 848F02D8 */ lh $t7, 0x02D8($a0) ## 000002D8
/* 011DC 80B23ECC 3C098003 */ lui $t1, %hi(ActorShadow_DrawCircle)
/* 011E0 80B23ED0 3C0680B2 */ lui $a2, %hi(D_80B24414) ## $a2 = 80B20000
/* 011E4 80B23ED4 000FC080 */ sll $t8, $t7, 2
/* 011E8 80B23ED8 00B8C821 */ addu $t9, $a1, $t8
/* 011EC 80B23EDC 8F281D8C */ lw $t0, 0x1D8C($t9) ## 00001D8C
/* 011F0 80B23EE0 2529B5EC */ addiu $t1, %lo(ActorShadow_DrawCircle)
/* 011F4 80B23EE4 24C64414 */ addiu $a2, $a2, %lo(D_80B24414) ## $a2 = 80B24414
/* 011F8 80B23EE8 15000003 */ bne $t0, $zero, .L80B23EF8
/* 011FC 80B23EEC 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
.L80B23EF0:
/* 01200 80B23EF0 10000035 */ beq $zero, $zero, .L80B23FC8
/* 01204 80B23EF4 AE0000C0 */ sw $zero, 0x00C0($s0) ## 000000C0
.L80B23EF8:
/* 01208 80B23EF8 AE0900C0 */ sw $t1, 0x00C0($s0) ## 000000C0
/* 0120C 80B23EFC 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 01210 80B23F00 24070348 */ addiu $a3, $zero, 0x0348 ## $a3 = 00000348
/* 01214 80B23F04 0C031AB1 */ jal Graph_OpenDisps
/* 01218 80B23F08 AFA5004C */ sw $a1, 0x004C($sp)
/* 0121C 80B23F0C 0C0250F2 */ jal func_800943C8
/* 01220 80B23F10 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 01224 80B23F14 8FA5004C */ lw $a1, 0x004C($sp)
/* 01228 80B23F18 3C0BDB06 */ lui $t3, 0xDB06 ## $t3 = DB060000
/* 0122C 80B23F1C 356B0020 */ ori $t3, $t3, 0x0020 ## $t3 = DB060020
/* 01230 80B23F20 8CA302C0 */ lw $v1, 0x02C0($a1) ## 000002C0
/* 01234 80B23F24 3C0480B2 */ lui $a0, %hi(D_80B243D0) ## $a0 = 80B20000
/* 01238 80B23F28 3C088016 */ lui $t0, %hi(gSegments)
/* 0123C 80B23F2C 246A0008 */ addiu $t2, $v1, 0x0008 ## $t2 = 00000008
/* 01240 80B23F30 ACAA02C0 */ sw $t2, 0x02C0($a1) ## 000002C0
/* 01244 80B23F34 AC6B0000 */ sw $t3, 0x0000($v1) ## 00000000
/* 01248 80B23F38 860C02E0 */ lh $t4, 0x02E0($s0) ## 000002E0
/* 0124C 80B23F3C 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 01250 80B23F40 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 01254 80B23F44 000C6880 */ sll $t5, $t4, 2
/* 01258 80B23F48 008D2021 */ addu $a0, $a0, $t5
/* 0125C 80B23F4C 8C8443D0 */ lw $a0, %lo(D_80B243D0)($a0)
/* 01260 80B23F50 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 01264 80B23F54 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01268 80B23F58 00047900 */ sll $t7, $a0, 4
/* 0126C 80B23F5C 000FC702 */ srl $t8, $t7, 28
/* 01270 80B23F60 0018C880 */ sll $t9, $t8, 2
/* 01274 80B23F64 01194021 */ addu $t0, $t0, $t9
/* 01278 80B23F68 8D086FA8 */ lw $t0, %lo(gSegments)($t0)
/* 0127C 80B23F6C 00817024 */ and $t6, $a0, $at
/* 01280 80B23F70 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 01284 80B23F74 01C84821 */ addu $t1, $t6, $t0
/* 01288 80B23F78 01215021 */ addu $t2, $t1, $at
/* 0128C 80B23F7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01290 80B23F80 0C00BAF3 */ jal func_8002EBCC
/* 01294 80B23F84 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 01298 80B23F88 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 0129C 80B23F8C 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 012A0 80B23F90 9207014E */ lbu $a3, 0x014E($s0) ## 0000014E
/* 012A4 80B23F94 3C0B80B2 */ lui $t3, %hi(func_80B23D74) ## $t3 = 80B20000
/* 012A8 80B23F98 256B3D74 */ addiu $t3, $t3, %lo(func_80B23D74) ## $t3 = 80B23D74
/* 012AC 80B23F9C AFAB0010 */ sw $t3, 0x0010($sp)
/* 012B0 80B23FA0 AFB00018 */ sw $s0, 0x0018($sp)
/* 012B4 80B23FA4 AFA00014 */ sw $zero, 0x0014($sp)
/* 012B8 80B23FA8 0C0286B2 */ jal SkelAnime_DrawFlexOpa
/* 012BC 80B23FAC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 012C0 80B23FB0 3C0680B2 */ lui $a2, %hi(D_80B24424) ## $a2 = 80B20000
/* 012C4 80B23FB4 24C64424 */ addiu $a2, $a2, %lo(D_80B24424) ## $a2 = 80B24424
/* 012C8 80B23FB8 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
/* 012CC 80B23FBC 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 012D0 80B23FC0 0C031AD5 */ jal Graph_CloseDisps
/* 012D4 80B23FC4 24070356 */ addiu $a3, $zero, 0x0356 ## $a3 = 00000356
.L80B23FC8:
/* 012D8 80B23FC8 8FBF002C */ lw $ra, 0x002C($sp)
/* 012DC 80B23FCC 8FB00024 */ lw $s0, 0x0024($sp)
/* 012E0 80B23FD0 8FB10028 */ lw $s1, 0x0028($sp)
/* 012E4 80B23FD4 03E00008 */ jr $ra
/* 012E8 80B23FD8 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000

View file

@ -1,108 +0,0 @@
.rdata
glabel D_80B24400
.asciz "0"
.balign 4
glabel D_80B24404
.asciz "../z_en_tr.c"
.balign 4
.text
glabel EnTr_Init
/* 00008 80B22CF8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 0000C 80B22CFC AFB00024 */ sw $s0, 0x0024($sp)
/* 00010 80B22D00 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00014 80B22D04 AFBF002C */ sw $ra, 0x002C($sp)
/* 00018 80B22D08 AFA50034 */ sw $a1, 0x0034($sp)
/* 0001C 80B22D0C 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle)
/* 00020 80B22D10 AFB10028 */ sw $s1, 0x0028($sp)
/* 00024 80B22D14 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle)
/* 00028 80B22D18 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 0002C 80B22D1C 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
/* 00030 80B22D20 0C00AC78 */ jal ActorShape_Init
/* 00034 80B22D24 3C0741F0 */ lui $a3, 0x41F0 ## $a3 = 41F00000
/* 00038 80B22D28 3C0580B2 */ lui $a1, %hi(func_80B22F1C) ## $a1 = 80B20000
/* 0003C 80B22D2C 24A52F1C */ addiu $a1, $a1, %lo(func_80B22F1C) ## $a1 = 80B22F1C
/* 00040 80B22D30 0C2C8B3C */ jal func_80B22CF0
/* 00044 80B22D34 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00048 80B22D38 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 0004C 80B22D3C A60002D4 */ sh $zero, 0x02D4($s0) ## 000002D4
/* 00050 80B22D40 AE00011C */ sw $zero, 0x011C($s0) ## 0000011C
/* 00054 80B22D44 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00058 80B22D48 0C00B58B */ jal Actor_SetScale
/* 0005C 80B22D4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00060 80B22D50 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00064 80B22D54 2611014C */ addiu $s1, $s0, 0x014C ## $s1 = 0000014C
/* 00068 80B22D58 02202825 */ or $a1, $s1, $zero ## $a1 = 0000014C
/* 0006C 80B22D5C 10400006 */ beq $v0, $zero, .L80B22D78
/* 00070 80B22D60 8FA40034 */ lw $a0, 0x0034($sp)
/* 00074 80B22D64 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00078 80B22D68 1041001A */ beq $v0, $at, .L80B22DD4
/* 0007C 80B22D6C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00080 80B22D70 10000031 */ beq $zero, $zero, .L80B22E38
/* 00084 80B22D74 3C0480B2 */ lui $a0, %hi(D_80B24400) ## $a0 = 80B20000
.L80B22D78:
/* 00088 80B22D78 3C060601 */ lui $a2, %hi(D_06011688) ## $a2 = 06010000
/* 0008C 80B22D7C 3C070600 */ lui $a3, %hi(D_06003FC8) ## $a3 = 06000000
/* 00090 80B22D80 260E0190 */ addiu $t6, $s0, 0x0190 ## $t6 = 00000190
/* 00094 80B22D84 260F0232 */ addiu $t7, $s0, 0x0232 ## $t7 = 00000232
/* 00098 80B22D88 2418001B */ addiu $t8, $zero, 0x001B ## $t8 = 0000001B
/* 0009C 80B22D8C AFB80018 */ sw $t8, 0x0018($sp)
/* 000A0 80B22D90 AFAF0014 */ sw $t7, 0x0014($sp)
/* 000A4 80B22D94 AFAE0010 */ sw $t6, 0x0010($sp)
/* 000A8 80B22D98 24E73FC8 */ addiu $a3, $a3, %lo(D_06003FC8) ## $a3 = 06003FC8
/* 000AC 80B22D9C 0C0291BE */ jal SkelAnime_InitFlex
/* 000B0 80B22DA0 24C61688 */ addiu $a2, $a2, %lo(D_06011688) ## $a2 = 06011688
/* 000B4 80B22DA4 3C050600 */ lui $a1, %hi(D_06003FC8) ## $a1 = 06000000
/* 000B8 80B22DA8 24A53FC8 */ addiu $a1, $a1, %lo(D_06003FC8) ## $a1 = 06003FC8
/* 000BC 80B22DAC 0C02947A */ jal Animation_PlayOnce
/* 000C0 80B22DB0 02202025 */ or $a0, $s1, $zero ## $a0 = 0000014C
/* 000C4 80B22DB4 3C0580B2 */ lui $a1, %hi(func_80B23A88) ## $a1 = 80B20000
/* 000C8 80B22DB8 AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 000CC 80B22DBC 24A53A88 */ addiu $a1, $a1, %lo(func_80B23A88) ## $a1 = 80B23A88
/* 000D0 80B22DC0 0C2C8B3C */ jal func_80B22CF0
/* 000D4 80B22DC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000D8 80B22DC8 24190003 */ addiu $t9, $zero, 0x0003 ## $t9 = 00000003
/* 000DC 80B22DCC 1000001F */ beq $zero, $zero, .L80B22E4C
/* 000E0 80B22DD0 A61902D8 */ sh $t9, 0x02D8($s0) ## 000002D8
.L80B22DD4:
/* 000E4 80B22DD4 2611014C */ addiu $s1, $s0, 0x014C ## $s1 = 0000014C
/* 000E8 80B22DD8 3C060601 */ lui $a2, %hi(D_0600C530) ## $a2 = 06010000
/* 000EC 80B22DDC 3C070600 */ lui $a3, %hi(D_06001CDC) ## $a3 = 06000000
/* 000F0 80B22DE0 26080190 */ addiu $t0, $s0, 0x0190 ## $t0 = 00000190
/* 000F4 80B22DE4 26090232 */ addiu $t1, $s0, 0x0232 ## $t1 = 00000232
/* 000F8 80B22DE8 240A001B */ addiu $t2, $zero, 0x001B ## $t2 = 0000001B
/* 000FC 80B22DEC AFAA0018 */ sw $t2, 0x0018($sp)
/* 00100 80B22DF0 AFA90014 */ sw $t1, 0x0014($sp)
/* 00104 80B22DF4 AFA80010 */ sw $t0, 0x0010($sp)
/* 00108 80B22DF8 24E71CDC */ addiu $a3, $a3, %lo(D_06001CDC) ## $a3 = 06001CDC
/* 0010C 80B22DFC 24C6C530 */ addiu $a2, $a2, %lo(D_0600C530) ## $a2 = 0600C530
/* 00110 80B22E00 0C0291BE */ jal SkelAnime_InitFlex
/* 00114 80B22E04 02202825 */ or $a1, $s1, $zero ## $a1 = 0000014C
/* 00118 80B22E08 3C050600 */ lui $a1, %hi(D_06001CDC) ## $a1 = 06000000
/* 0011C 80B22E0C 24A51CDC */ addiu $a1, $a1, %lo(D_06001CDC) ## $a1 = 06001CDC
/* 00120 80B22E10 0C02947A */ jal Animation_PlayOnce
/* 00124 80B22E14 02202025 */ or $a0, $s1, $zero ## $a0 = 0000014C
/* 00128 80B22E18 3C0580B2 */ lui $a1, %hi(func_80B23A88) ## $a1 = 80B20000
/* 0012C 80B22E1C AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 00130 80B22E20 24A53A88 */ addiu $a1, $a1, %lo(func_80B23A88) ## $a1 = 80B23A88
/* 00134 80B22E24 0C2C8B3C */ jal func_80B22CF0
/* 00138 80B22E28 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0013C 80B22E2C 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
/* 00140 80B22E30 10000006 */ beq $zero, $zero, .L80B22E4C
/* 00144 80B22E34 A60B02D8 */ sh $t3, 0x02D8($s0) ## 000002D8
.L80B22E38:
/* 00148 80B22E38 3C0580B2 */ lui $a1, %hi(D_80B24404) ## $a1 = 80B20000
/* 0014C 80B22E3C 24A54404 */ addiu $a1, $a1, %lo(D_80B24404) ## $a1 = 80B24404
/* 00150 80B22E40 24844400 */ addiu $a0, $a0, %lo(D_80B24400) ## $a0 = 00004400
/* 00154 80B22E44 0C0007FC */ jal __assert
/* 00158 80B22E48 24060115 */ addiu $a2, $zero, 0x0115 ## $a2 = 00000115
.L80B22E4C:
/* 0015C 80B22E4C 8FBF002C */ lw $ra, 0x002C($sp)
/* 00160 80B22E50 8FB00024 */ lw $s0, 0x0024($sp)
/* 00164 80B22E54 8FB10028 */ lw $s1, 0x0028($sp)
/* 00168 80B22E58 03E00008 */ jr $ra
/* 0016C 80B22E5C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000

View file

@ -1,131 +0,0 @@
glabel EnTr_Update
/* 00ECC 80B23BBC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00ED0 80B23BC0 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00ED4 80B23BC4 AFB00028 */ sw $s0, 0x0028($sp)
/* 00ED8 80B23BC8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00EDC 80B23BCC AFBF002C */ sw $ra, 0x002C($sp)
/* 00EE0 80B23BD0 AFA5004C */ sw $a1, 0x004C($sp)
/* 00EE4 80B23BD4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00EE8 80B23BD8 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
/* 00EEC 80B23BDC 44060000 */ mfc1 $a2, $f0
/* 00EF0 80B23BE0 44070000 */ mfc1 $a3, $f0
/* 00EF4 80B23BE4 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00EF8 80B23BE8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00EFC 80B23BEC 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 00F00 80B23BF0 E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00F04 80B23BF4 8E1902DC */ lw $t9, 0x02DC($s0) ## 000002DC
/* 00F08 80B23BF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F0C 80B23BFC 8FA5004C */ lw $a1, 0x004C($sp)
/* 00F10 80B23C00 0320F809 */ jalr $ra, $t9
/* 00F14 80B23C04 00000000 */ nop
/* 00F18 80B23C08 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00F1C 80B23C0C 0C02927F */ jal SkelAnime_Update
/* 00F20 80B23C10 AFA40034 */ sw $a0, 0x0034($sp)
/* 00F24 80B23C14 5040003B */ beql $v0, $zero, .L80B23D04
/* 00F28 80B23C18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F2C 80B23C1C 8E0502E4 */ lw $a1, 0x02E4($s0) ## 000002E4
/* 00F30 80B23C20 3C0F0600 */ lui $t7, %hi(D_060035CC) ## $t7 = 06000000
/* 00F34 80B23C24 25EF35CC */ addiu $t7, $t7, %lo(D_060035CC) ## $t7 = 060035CC
/* 00F38 80B23C28 50A00033 */ beql $a1, $zero, .L80B23CF8
/* 00F3C 80B23C2C 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 00F40 80B23C30 11E50004 */ beq $t7, $a1, .L80B23C44
/* 00F44 80B23C34 3C180600 */ lui $t8, %hi(D_060013CC) ## $t8 = 06000000
/* 00F48 80B23C38 271813CC */ addiu $t8, $t8, %lo(D_060013CC) ## $t8 = 060013CC
/* 00F4C 80B23C3C 17050011 */ bne $t8, $a1, .L80B23C84
/* 00F50 80B23C40 3C090600 */ lui $t1, 0x0600 ## $t1 = 06000000
.L80B23C44:
/* 00F54 80B23C44 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00F58 80B23C48 240539B1 */ addiu $a1, $zero, 0x39B1 ## $a1 = 000039B1
/* 00F5C 80B23C4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F60 80B23C50 11000005 */ beq $t0, $zero, .L80B23C68
/* 00F64 80B23C54 00000000 */ nop
/* 00F68 80B23C58 0C00BE0A */ jal Audio_PlayActorSound2
/* 00F6C 80B23C5C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F70 80B23C60 10000004 */ beq $zero, $zero, .L80B23C74
/* 00F74 80B23C64 8FA40034 */ lw $a0, 0x0034($sp)
.L80B23C68:
/* 00F78 80B23C68 0C00BE0A */ jal Audio_PlayActorSound2
/* 00F7C 80B23C6C 240539B0 */ addiu $a1, $zero, 0x39B0 ## $a1 = 000039B0
/* 00F80 80B23C70 8FA40034 */ lw $a0, 0x0034($sp)
.L80B23C74:
/* 00F84 80B23C74 0C0294BE */ jal Animation_PlayLoop
/* 00F88 80B23C78 8E0502E4 */ lw $a1, 0x02E4($s0) ## 000002E4
/* 00F8C 80B23C7C 1000001B */ beq $zero, $zero, .L80B23CEC
/* 00F90 80B23C80 00000000 */ nop
.L80B23C84:
/* 00F94 80B23C84 252949C8 */ addiu $t1, $t1, 0x49C8 ## $t1 = 000049C8
/* 00F98 80B23C88 15250016 */ bne $t1, $a1, .L80B23CE4
/* 00F9C 80B23C8C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00FA0 80B23C90 3C0580B2 */ lui $a1, %hi(func_80B22F28) ## $a1 = 80B20000
/* 00FA4 80B23C94 0C2C8B3C */ jal func_80B22CF0
/* 00FA8 80B23C98 24A52F28 */ addiu $a1, $a1, %lo(func_80B22F28) ## $a1 = 80B22F28
/* 00FAC 80B23C9C 3C040600 */ lui $a0, %hi(D_060049C8) ## $a0 = 06000000
/* 00FB0 80B23CA0 0C028800 */ jal Animation_GetLastFrame
/* 00FB4 80B23CA4 248449C8 */ addiu $a0, $a0, %lo(D_060049C8) ## $a0 = 060049C8
/* 00FB8 80B23CA8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00FBC 80B23CAC 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000
/* 00FC0 80B23CB0 44814000 */ mtc1 $at, $f8 ## $f8 = -5.00
/* 00FC4 80B23CB4 468021A0 */ cvt.s.w $f6, $f4
/* 00FC8 80B23CB8 3C050600 */ lui $a1, %hi(D_060049C8) ## $a1 = 06000000
/* 00FCC 80B23CBC 24A549C8 */ addiu $a1, $a1, %lo(D_060049C8) ## $a1 = 060049C8
/* 00FD0 80B23CC0 8FA40034 */ lw $a0, 0x0034($sp)
/* 00FD4 80B23CC4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00FD8 80B23CC8 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00FDC 80B23CCC E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00FE0 80B23CD0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00FE4 80B23CD4 0C029468 */ jal Animation_Change
/* 00FE8 80B23CD8 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00FEC 80B23CDC 10000003 */ beq $zero, $zero, .L80B23CEC
/* 00FF0 80B23CE0 00000000 */ nop
.L80B23CE4:
/* 00FF4 80B23CE4 0C0294BE */ jal Animation_PlayLoop
/* 00FF8 80B23CE8 8FA40034 */ lw $a0, 0x0034($sp)
.L80B23CEC:
/* 00FFC 80B23CEC 10000004 */ beq $zero, $zero, .L80B23D00
/* 01000 80B23CF0 AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 01004 80B23CF4 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
.L80B23CF8:
/* 01008 80B23CF8 00000000 */ nop
/* 0100C 80B23CFC E60A0164 */ swc1 $f10, 0x0164($s0) ## 00000164
.L80B23D00:
/* 01010 80B23D00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B23D04:
/* 01014 80B23D04 0C00B56E */ jal Actor_SetFocus
/* 01018 80B23D08 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 0101C 80B23D0C 860302E2 */ lh $v1, 0x02E2($s0) ## 000002E2
/* 01020 80B23D10 2404003C */ addiu $a0, $zero, 0x003C ## $a0 = 0000003C
/* 01024 80B23D14 14600003 */ bne $v1, $zero, .L80B23D24
/* 01028 80B23D18 246AFFFF */ addiu $t2, $v1, 0xFFFF ## $t2 = FFFFFFFF
/* 0102C 80B23D1C 10000004 */ beq $zero, $zero, .L80B23D30
/* 01030 80B23D20 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80B23D24:
/* 01034 80B23D24 A60A02E2 */ sh $t2, 0x02E2($s0) ## 000002E2
/* 01038 80B23D28 860302E2 */ lh $v1, 0x02E2($s0) ## 000002E2
/* 0103C 80B23D2C 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
.L80B23D30:
/* 01040 80B23D30 54400006 */ bnel $v0, $zero, .L80B23D4C
/* 01044 80B23D34 A60302E0 */ sh $v1, 0x02E0($s0) ## 000002E0
/* 01048 80B23D38 0C01DF64 */ jal Rand_S16Offset
/* 0104C 80B23D3C 2405003C */ addiu $a1, $zero, 0x003C ## $a1 = 0000003C
/* 01050 80B23D40 A60202E2 */ sh $v0, 0x02E2($s0) ## 000002E2
/* 01054 80B23D44 860302E2 */ lh $v1, 0x02E2($s0) ## 000002E2
/* 01058 80B23D48 A60302E0 */ sh $v1, 0x02E0($s0) ## 000002E0
.L80B23D4C:
/* 0105C 80B23D4C 860B02E0 */ lh $t3, 0x02E0($s0) ## 000002E0
/* 01060 80B23D50 29610003 */ slti $at, $t3, 0x0003
/* 01064 80B23D54 54200003 */ bnel $at, $zero, .L80B23D64
/* 01068 80B23D58 8FBF002C */ lw $ra, 0x002C($sp)
/* 0106C 80B23D5C A60002E0 */ sh $zero, 0x02E0($s0) ## 000002E0
/* 01070 80B23D60 8FBF002C */ lw $ra, 0x002C($sp)
.L80B23D64:
/* 01074 80B23D64 8FB00028 */ lw $s0, 0x0028($sp)
/* 01078 80B23D68 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 0107C 80B23D6C 03E00008 */ jr $ra
/* 01080 80B23D70 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80B22CF0
/* 00000 80B22CF0 03E00008 */ jr $ra
/* 00004 80B22CF4 AC8502DC */ sw $a1, 0x02DC($a0) ## 000002DC

View file

@ -1,50 +0,0 @@
glabel func_80B22E6C
/* 0017C 80B22E6C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00180 80B22E70 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00184 80B22E74 AFB00020 */ sw $s0, 0x0020($sp)
/* 00188 80B22E78 AFA5002C */ sw $a1, 0x002C($sp)
/* 0018C 80B22E7C 948302D6 */ lhu $v1, 0x02D6($a0) ## 000002D6
/* 00190 80B22E80 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B
/* 00194 80B22E84 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00198 80B22E88 14610014 */ bne $v1, $at, .L80B22EDC
/* 0019C 80B22E8C 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
/* 001A0 80B22E90 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 001A4 80B22E94 3C078013 */ lui $a3, %hi(D_801333E0)
/* 001A8 80B22E98 24E733E0 */ addiu $a3, %lo(D_801333E0)
/* 001AC 80B22E9C 15C00004 */ bne $t6, $zero, .L80B22EB0
/* 001B0 80B22EA0 3C0F8016 */ lui $t7, %hi(gSaveContext+0x1360)
/* 001B4 80B22EA4 8DEFF9C0 */ lw $t7, %lo(gSaveContext+0x1360)($t7)
/* 001B8 80B22EA8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 001BC 80B22EAC 15E1000B */ bne $t7, $at, .L80B22EDC
.L80B22EB0:
/* 001C0 80B22EB0 3C188013 */ lui $t8, %hi(D_801333E8)
/* 001C4 80B22EB4 271833E8 */ addiu $t8, %lo(D_801333E8)
/* 001C8 80B22EB8 3C058013 */ lui $a1, %hi(D_801333D4)
/* 001CC 80B22EBC 24A533D4 */ addiu $a1, %lo(D_801333D4)
/* 001D0 80B22EC0 AFB80014 */ sw $t8, 0x0014($sp)
/* 001D4 80B22EC4 240439B3 */ addiu $a0, $zero, 0x39B3 ## $a0 = 000039B3
/* 001D8 80B22EC8 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 001DC 80B22ECC 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 001E0 80B22ED0 AFA70010 */ sw $a3, 0x0010($sp)
/* 001E4 80B22ED4 960302D6 */ lhu $v1, 0x02D6($s0) ## 000002D6
/* 001E8 80B22ED8 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
.L80B22EDC:
/* 001EC 80B22EDC 18400004 */ blez $v0, .L80B22EF0
/* 001F0 80B22EE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001F4 80B22EE4 2479FFFF */ addiu $t9, $v1, 0xFFFF ## $t9 = FFFFFFFF
/* 001F8 80B22EE8 10000005 */ beq $zero, $zero, .L80B22F00
/* 001FC 80B22EEC A61902D6 */ sh $t9, 0x02D6($s0) ## 000002D6
.L80B22EF0:
/* 00200 80B22EF0 8E08011C */ lw $t0, 0x011C($s0) ## 0000011C
/* 00204 80B22EF4 11000002 */ beq $t0, $zero, .L80B22F00
/* 00208 80B22EF8 00000000 */ nop
/* 0020C 80B22EFC AE00011C */ sw $zero, 0x011C($s0) ## 0000011C
.L80B22F00:
/* 00210 80B22F00 0C00BE5D */ jal func_8002F974
/* 00214 80B22F04 2405317B */ addiu $a1, $zero, 0x317B ## $a1 = 0000317B
/* 00218 80B22F08 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0021C 80B22F0C 8FB00020 */ lw $s0, 0x0020($sp)
/* 00220 80B22F10 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00224 80B22F14 03E00008 */ jr $ra
/* 00228 80B22F18 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_80B22F1C
/* 0022C 80B22F1C AFA40000 */ sw $a0, 0x0000($sp)
/* 00230 80B22F20 03E00008 */ jr $ra
/* 00234 80B22F24 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,120 +0,0 @@
glabel func_80B22F28
/* 00238 80B22F28 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0023C 80B22F2C AFBF003C */ sw $ra, 0x003C($sp)
/* 00240 80B22F30 AFB10038 */ sw $s1, 0x0038($sp)
/* 00244 80B22F34 AFB00034 */ sw $s0, 0x0034($sp)
/* 00248 80B22F38 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 0024C 80B22F3C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00250 80B22F40 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00254 80B22F44 51C00060 */ beql $t6, $zero, .L80B230C8
/* 00258 80B22F48 8FBF003C */ lw $ra, 0x003C($sp)
/* 0025C 80B22F4C 848602D8 */ lh $a2, 0x02D8($a0) ## 000002D8
/* 00260 80B22F50 00067880 */ sll $t7, $a2, 2
/* 00264 80B22F54 00AFC021 */ addu $t8, $a1, $t7
/* 00268 80B22F58 8F021D8C */ lw $v0, 0x1D8C($t8) ## 00001D8C
/* 0026C 80B22F5C 5040005A */ beql $v0, $zero, .L80B230C8
/* 00270 80B22F60 8FBF003C */ lw $ra, 0x003C($sp)
/* 00274 80B22F64 94430000 */ lhu $v1, 0x0000($v0) ## 00000000
/* 00278 80B22F68 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 0027C 80B22F6C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00280 80B22F70 10610006 */ beq $v1, $at, .L80B22F8C
/* 00284 80B22F74 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00288 80B22F78 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 0028C 80B22F7C 10610010 */ beq $v1, $at, .L80B22FC0
/* 00290 80B22F80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00294 80B22F84 10000046 */ beq $zero, $zero, .L80B230A0
/* 00298 80B22F88 00000000 */ nop
.L80B22F8C:
/* 0029C 80B22F8C 0C00B58B */ jal Actor_SetScale
/* 002A0 80B22F90 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 002A4 80B22F94 3C0580B2 */ lui $a1, %hi(func_80B234D4) ## $a1 = 80B20000
/* 002A8 80B22F98 24A534D4 */ addiu $a1, $a1, %lo(func_80B234D4) ## $a1 = 80B234D4
/* 002AC 80B22F9C 0C2C8B3C */ jal func_80B22CF0
/* 002B0 80B22FA0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002B4 80B22FA4 24190018 */ addiu $t9, $zero, 0x0018 ## $t9 = 00000018
/* 002B8 80B22FA8 A61902D6 */ sh $t9, 0x02D6($s0) ## 000002D6
/* 002BC 80B22FAC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002C0 80B22FB0 0C00BE0A */ jal Audio_PlayActorSound2
/* 002C4 80B22FB4 24053877 */ addiu $a1, $zero, 0x3877 ## $a1 = 00003877
/* 002C8 80B22FB8 10000040 */ beq $zero, $zero, .L80B230BC
/* 002CC 80B22FBC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B22FC0:
/* 002D0 80B22FC0 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 002D4 80B22FC4 3C0480B2 */ lui $a0, %hi(D_80B24380) ## $a0 = 80B20000
/* 002D8 80B22FC8 00084880 */ sll $t1, $t0, 2
/* 002DC 80B22FCC 00892021 */ addu $a0, $a0, $t1
/* 002E0 80B22FD0 0C028800 */ jal Animation_GetLastFrame
/* 002E4 80B22FD4 8C844380 */ lw $a0, %lo(D_80B24380)($a0)
/* 002E8 80B22FD8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 002EC 80B22FDC 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 002F0 80B22FE0 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000
/* 002F4 80B22FE4 468021A0 */ cvt.s.w $f6, $f4
/* 002F8 80B22FE8 44814000 */ mtc1 $at, $f8 ## $f8 = -5.00
/* 002FC 80B22FEC 3C0580B2 */ lui $a1, %hi(D_80B24380) ## $a1 = 80B20000
/* 00300 80B22FF0 000A5880 */ sll $t3, $t2, 2
/* 00304 80B22FF4 00AB2821 */ addu $a1, $a1, $t3
/* 00308 80B22FF8 240C0002 */ addiu $t4, $zero, 0x0002 ## $t4 = 00000002
/* 0030C 80B22FFC AFAC0014 */ sw $t4, 0x0014($sp)
/* 00310 80B23000 8CA54380 */ lw $a1, %lo(D_80B24380)($a1)
/* 00314 80B23004 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00318 80B23008 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 0031C 80B2300C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00320 80B23010 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00324 80B23014 0C029468 */ jal Animation_Change
/* 00328 80B23018 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 0032C 80B2301C 3C0580B2 */ lui $a1, %hi(func_80B22E6C) ## $a1 = 80B20000
/* 00330 80B23020 24A52E6C */ addiu $a1, $a1, %lo(func_80B22E6C) ## $a1 = 80B22E6C
/* 00334 80B23024 0C2C8B3C */ jal func_80B22CF0
/* 00338 80B23028 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0033C 80B2302C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00340 80B23030 3C0E80B2 */ lui $t6, %hi(D_80B24378) ## $t6 = 80B20000
/* 00344 80B23034 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 00348 80B23038 00026880 */ sll $t5, $v0, 2
/* 0034C 80B2303C 01CD7021 */ addu $t6, $t6, $t5
/* 00350 80B23040 8DCE4378 */ lw $t6, %lo(D_80B24378)($t6)
/* 00354 80B23044 240F0027 */ addiu $t7, $zero, 0x0027 ## $t7 = 00000027
/* 00358 80B23048 A60F02D6 */ sh $t7, 0x02D6($s0) ## 000002D6
/* 0035C 80B2304C AE0E02E4 */ sw $t6, 0x02E4($s0) ## 000002E4
/* 00360 80B23050 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00364 80B23054 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 00368 80B23058 24580009 */ addiu $t8, $v0, 0x0009 ## $t8 = 00000009
/* 0036C 80B2305C 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 00370 80B23060 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 00374 80B23064 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 00378 80B23068 AFB80028 */ sw $t8, 0x0028($sp)
/* 0037C 80B2306C AFA00024 */ sw $zero, 0x0024($sp)
/* 00380 80B23070 AFA00020 */ sw $zero, 0x0020($sp)
/* 00384 80B23074 AFA0001C */ sw $zero, 0x001C($sp)
/* 00388 80B23078 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0038C 80B2307C 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 00390 80B23080 240700F5 */ addiu $a3, $zero, 0x00F5 ## $a3 = 000000F5
/* 00394 80B23084 0C00C916 */ jal Actor_SpawnAsChild
/* 00398 80B23088 E7B20018 */ swc1 $f18, 0x0018($sp)
/* 0039C 80B2308C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003A0 80B23090 0C00BE0A */ jal Audio_PlayActorSound2
/* 003A4 80B23094 240538A5 */ addiu $a1, $zero, 0x38A5 ## $a1 = 000038A5
/* 003A8 80B23098 10000008 */ beq $zero, $zero, .L80B230BC
/* 003AC 80B2309C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B230A0:
/* 003B0 80B230A0 0C2C900E */ jal func_80B24038
/* 003B4 80B230A4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 003B8 80B230A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003BC 80B230AC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 003C0 80B230B0 0C2C908C */ jal func_80B24230
/* 003C4 80B230B4 860602D8 */ lh $a2, 0x02D8($s0) ## 000002D8
/* 003C8 80B230B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B230BC:
/* 003CC 80B230BC 0C00BE5D */ jal func_8002F974
/* 003D0 80B230C0 2405317B */ addiu $a1, $zero, 0x317B ## $a1 = 0000317B
/* 003D4 80B230C4 8FBF003C */ lw $ra, 0x003C($sp)
.L80B230C8:
/* 003D8 80B230C8 8FB00034 */ lw $s0, 0x0034($sp)
/* 003DC 80B230CC 8FB10038 */ lw $s1, 0x0038($sp)
/* 003E0 80B230D0 03E00008 */ jr $ra
/* 003E4 80B230D4 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,103 +0,0 @@
glabel func_80B230D8
/* 003E8 80B230D8 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 003EC 80B230DC AFBF0024 */ sw $ra, 0x0024($sp)
/* 003F0 80B230E0 AFB10020 */ sw $s1, 0x0020($sp)
/* 003F4 80B230E4 AFB0001C */ sw $s0, 0x001C($sp)
/* 003F8 80B230E8 8C980024 */ lw $t8, 0x0024($a0) ## 00000024
/* 003FC 80B230EC 27AE0034 */ addiu $t6, $sp, 0x0034 ## $t6 = FFFFFFF4
/* 00400 80B230F0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00404 80B230F4 ADD80000 */ sw $t8, 0x0000($t6) ## FFFFFFF4
/* 00408 80B230F8 8C8F0028 */ lw $t7, 0x0028($a0) ## 00000028
/* 0040C 80B230FC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00410 80B23100 ADCF0004 */ sw $t7, 0x0004($t6) ## FFFFFFF8
/* 00414 80B23104 8C98002C */ lw $t8, 0x002C($a0) ## 0000002C
/* 00418 80B23108 ADD80008 */ sw $t8, 0x0008($t6) ## FFFFFFFC
/* 0041C 80B2310C 90B91D6C */ lbu $t9, 0x1D6C($a1) ## 00001D6C
/* 00420 80B23110 5320004C */ beql $t9, $zero, .L80B23244
/* 00424 80B23114 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00428 80B23118 848602D8 */ lh $a2, 0x02D8($a0) ## 000002D8
/* 0042C 80B2311C 00064080 */ sll $t0, $a2, 2
/* 00430 80B23120 00A84821 */ addu $t1, $a1, $t0
/* 00434 80B23124 8D221D8C */ lw $v0, 0x1D8C($t1) ## 00001D8C
/* 00438 80B23128 50400046 */ beql $v0, $zero, .L80B23244
/* 0043C 80B2312C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00440 80B23130 944A0000 */ lhu $t2, 0x0000($v0) ## 00000000
/* 00444 80B23134 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008
/* 00448 80B23138 55410012 */ bnel $t2, $at, .L80B23184
/* 0044C 80B2313C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00450 80B23140 0C2C900E */ jal func_80B24038
/* 00454 80B23144 00000000 */ nop
/* 00458 80B23148 C60C0064 */ lwc1 $f12, 0x0064($s0) ## 00000064
/* 0045C 80B2314C 0C034199 */ jal Math_Atan2S
/* 00460 80B23150 C60E005C */ lwc1 $f14, 0x005C($s0) ## 0000005C
/* 00464 80B23154 A6020032 */ sh $v0, 0x0032($s0) ## 00000032
/* 00468 80B23158 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 0046C 80B2315C 240B0100 */ addiu $t3, $zero, 0x0100 ## $t3 = 00000100
/* 00470 80B23160 AFAB0010 */ sw $t3, 0x0010($sp)
/* 00474 80B23164 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00478 80B23168 2406000A */ addiu $a2, $zero, 0x000A ## $a2 = 0000000A
/* 0047C 80B2316C 0C01E1A7 */ jal Math_SmoothStepToS
/* 00480 80B23170 24070400 */ addiu $a3, $zero, 0x0400 ## $a3 = 00000400
/* 00484 80B23174 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6
/* 00488 80B23178 1000002A */ beq $zero, $zero, .L80B23224
/* 0048C 80B2317C A60C0032 */ sh $t4, 0x0032($s0) ## 00000032
/* 00490 80B23180 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B23184:
/* 00494 80B23184 0C2C90AD */ jal func_80B242B4
/* 00498 80B23188 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0049C 80B2318C 0C01DE1C */ jal Math_SinS
## sins?
/* 004A0 80B23190 860402D6 */ lh $a0, 0x02D6($s0) ## 000002D6
/* 004A4 80B23194 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 004A8 80B23198 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00
/* 004AC 80B2319C 3C01C2C8 */ lui $at, 0xC2C8 ## $at = C2C80000
/* 004B0 80B231A0 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 004B4 80B231A4 46060202 */ mul.s $f8, $f0, $f6
/* 004B8 80B231A8 44819000 */ mtc1 $at, $f18 ## $f18 = -100.00
/* 004BC 80B231AC C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 004C0 80B231B0 860402D6 */ lh $a0, 0x02D6($s0) ## 000002D6
/* 004C4 80B231B4 46128180 */ add.s $f6, $f16, $f18
/* 004C8 80B231B8 46082280 */ add.s $f10, $f4, $f8
/* 004CC 80B231BC E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028
/* 004D0 80B231C0 0C01DE0D */ jal Math_CosS
## coss?
/* 004D4 80B231C4 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
/* 004D8 80B231C8 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 004DC 80B231CC 44814000 */ mtc1 $at, $f8 ## $f8 = 150.00
/* 004E0 80B231D0 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 004E4 80B231D4 960E02D6 */ lhu $t6, 0x02D6($s0) ## 000002D6
/* 004E8 80B231D8 46080282 */ mul.s $f10, $f0, $f8
/* 004EC 80B231DC C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
/* 004F0 80B231E0 25CF4000 */ addiu $t7, $t6, 0x4000 ## $t7 = 00004000
/* 004F4 80B231E4 25D80400 */ addiu $t8, $t6, 0x0400 ## $t8 = 00000400
/* 004F8 80B231E8 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
/* 004FC 80B231EC A61802D6 */ sh $t8, 0x02D6($s0) ## 000002D6
/* 00500 80B231F0 460A2400 */ add.s $f16, $f4, $f10
/* 00504 80B231F4 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00508 80B231F8 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C
/* 0050C 80B231FC C7A60034 */ lwc1 $f6, 0x0034($sp)
/* 00510 80B23200 46069201 */ sub.s $f8, $f18, $f6
/* 00514 80B23204 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 00518 80B23208 E608005C */ swc1 $f8, 0x005C($s0) ## 0000005C
/* 0051C 80B2320C C7AA0038 */ lwc1 $f10, 0x0038($sp)
/* 00520 80B23210 460A2401 */ sub.s $f16, $f4, $f10
/* 00524 80B23214 E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060
/* 00528 80B23218 C7A6003C */ lwc1 $f6, 0x003C($sp)
/* 0052C 80B2321C 46069201 */ sub.s $f8, $f18, $f6
/* 00530 80B23220 E6080064 */ swc1 $f8, 0x0064($s0) ## 00000064
.L80B23224:
/* 00534 80B23224 96391D74 */ lhu $t9, 0x1D74($s1) ## 00001D74
/* 00538 80B23228 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0053C 80B2322C 2B21029E */ slti $at, $t9, 0x029E
/* 00540 80B23230 50200004 */ beql $at, $zero, .L80B23244
/* 00544 80B23234 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00548 80B23238 0C00BE5D */ jal func_8002F974
/* 0054C 80B2323C 2405317B */ addiu $a1, $zero, 0x317B ## $a1 = 0000317B
/* 00550 80B23240 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B23244:
/* 00554 80B23244 8FB0001C */ lw $s0, 0x001C($sp)
/* 00558 80B23248 8FB10020 */ lw $s1, 0x0020($sp)
/* 0055C 80B2324C 03E00008 */ jr $ra
/* 00560 80B23250 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,170 +0,0 @@
glabel func_80B23254
/* 00564 80B23254 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 00568 80B23258 AFBF002C */ sw $ra, 0x002C($sp)
/* 0056C 80B2325C AFB00028 */ sw $s0, 0x0028($sp)
/* 00570 80B23260 AFA40088 */ sw $a0, 0x0088($sp)
/* 00574 80B23264 AFA5008C */ sw $a1, 0x008C($sp)
/* 00578 80B23268 AFA60090 */ sw $a2, 0x0090($sp)
/* 0057C 80B2326C AFA70094 */ sw $a3, 0x0094($sp)
/* 00580 80B23270 84AE07A0 */ lh $t6, 0x07A0($a1) ## 000007A0
/* 00584 80B23274 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFBC
/* 00588 80B23278 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 0058C 80B2327C 000E7880 */ sll $t7, $t6, 2
/* 00590 80B23280 00AFC021 */ addu $t8, $a1, $t7
/* 00594 80B23284 8F190790 */ lw $t9, 0x0790($t8) ## 00000790
/* 00598 80B23288 8F29005C */ lw $t1, 0x005C($t9) ## 0000005C
/* 0059C 80B2328C AC890000 */ sw $t1, 0x0000($a0) ## FFFFFFBC
/* 005A0 80B23290 8F280060 */ lw $t0, 0x0060($t9) ## 00000060
/* 005A4 80B23294 AC880004 */ sw $t0, 0x0004($a0) ## FFFFFFC0
/* 005A8 80B23298 8F290064 */ lw $t1, 0x0064($t9) ## 00000064
/* 005AC 80B2329C AC890008 */ sw $t1, 0x0008($a0) ## FFFFFFC4
/* 005B0 80B232A0 8FA50088 */ lw $a1, 0x0088($sp)
/* 005B4 80B232A4 AFA7008C */ sw $a3, 0x008C($sp)
/* 005B8 80B232A8 24A50024 */ addiu $a1, $a1, 0x0024 ## $a1 = 00000024
/* 005BC 80B232AC 0C01E01A */ jal Math_Vec3f_Yaw
/* 005C0 80B232B0 AFA50038 */ sw $a1, 0x0038($sp)
/* 005C4 80B232B4 00028400 */ sll $s0, $v0, 16
/* 005C8 80B232B8 00108403 */ sra $s0, $s0, 16
/* 005CC 80B232BC 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFBC
/* 005D0 80B232C0 0C01E027 */ jal Math_Vec3f_Pitch
/* 005D4 80B232C4 8FA50038 */ lw $a1, 0x0038($sp)
/* 005D8 80B232C8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 005DC 80B232CC 00025023 */ subu $t2, $zero, $v0
/* 005E0 80B232D0 00102400 */ sll $a0, $s0, 16
/* 005E4 80B232D4 A7AA0040 */ sh $t2, 0x0040($sp)
/* 005E8 80B232D8 00042403 */ sra $a0, $a0, 16
/* 005EC 80B232DC E7A0006C */ swc1 $f0, 0x006C($sp)
/* 005F0 80B232E0 0C01DE1C */ jal Math_SinS
## sins?
/* 005F4 80B232E4 E7A00064 */ swc1 $f0, 0x0064($sp)
/* 005F8 80B232E8 E7A0003C */ swc1 $f0, 0x003C($sp)
/* 005FC 80B232EC 0C01DE0D */ jal Math_CosS
## coss?
/* 00600 80B232F0 87A40040 */ lh $a0, 0x0040($sp)
/* 00604 80B232F4 C7A40094 */ lwc1 $f4, 0x0094($sp)
/* 00608 80B232F8 C7A6003C */ lwc1 $f6, 0x003C($sp)
/* 0060C 80B232FC 87A40040 */ lh $a0, 0x0040($sp)
/* 00610 80B23300 46062202 */ mul.s $f8, $f4, $f6
/* 00614 80B23304 00000000 */ nop
/* 00618 80B23308 46080282 */ mul.s $f10, $f0, $f8
/* 0061C 80B2330C 0C01DE1C */ jal Math_SinS
## sins?
/* 00620 80B23310 E7AA0070 */ swc1 $f10, 0x0070($sp)
/* 00624 80B23314 C7B00094 */ lwc1 $f16, 0x0094($sp)
/* 00628 80B23318 00102400 */ sll $a0, $s0, 16
/* 0062C 80B2331C 00042403 */ sra $a0, $a0, 16
/* 00630 80B23320 46100482 */ mul.s $f18, $f0, $f16
/* 00634 80B23324 0C01DE0D */ jal Math_CosS
## coss?
/* 00638 80B23328 E7B20074 */ swc1 $f18, 0x0074($sp)
/* 0063C 80B2332C E7A0003C */ swc1 $f0, 0x003C($sp)
/* 00640 80B23330 0C01DE0D */ jal Math_CosS
## coss?
/* 00644 80B23334 87A40040 */ lh $a0, 0x0040($sp)
/* 00648 80B23338 C7A40094 */ lwc1 $f4, 0x0094($sp)
/* 0064C 80B2333C C7A6003C */ lwc1 $f6, 0x003C($sp)
/* 00650 80B23340 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00654 80B23344 44811000 */ mtc1 $at, $f2 ## $f2 = 10.00
/* 00658 80B23348 46062202 */ mul.s $f8, $f4, $f6
/* 0065C 80B2334C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00660 80B23350 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 00664 80B23354 8FAB0088 */ lw $t3, 0x0088($sp)
/* 00668 80B23358 3C0F80B2 */ lui $t7, %hi(D_80B243C0) ## $t7 = 80B20000
/* 0066C 80B2335C E7B00068 */ swc1 $f16, 0x0068($sp)
/* 00670 80B23360 25EF43C0 */ addiu $t7, $t7, %lo(D_80B243C0) ## $t7 = 80B243C0
/* 00674 80B23364 46080282 */ mul.s $f10, $f0, $f8
/* 00678 80B23368 8FA80038 */ lw $t0, 0x0038($sp)
/* 0067C 80B2336C 27B90058 */ addiu $t9, $sp, 0x0058 ## $t9 = FFFFFFD0
/* 00680 80B23370 00102400 */ sll $a0, $s0, 16
/* 00684 80B23374 00042403 */ sra $a0, $a0, 16
/* 00688 80B23378 E7AA0078 */ swc1 $f10, 0x0078($sp)
/* 0068C 80B2337C 856D001C */ lh $t5, 0x001C($t3) ## 0000001C
/* 00690 80B23380 000D70C0 */ sll $t6, $t5, 3
/* 00694 80B23384 01CF1021 */ addu $v0, $t6, $t7
/* 00698 80B23388 24580004 */ addiu $t8, $v0, 0x0004 ## $t8 = 00000004
/* 0069C 80B2338C AFA20054 */ sw $v0, 0x0054($sp)
/* 006A0 80B23390 AFB80050 */ sw $t8, 0x0050($sp)
/* 006A4 80B23394 8D0A0000 */ lw $t2, 0x0000($t0) ## 00000000
/* 006A8 80B23398 AF2A0000 */ sw $t2, 0x0000($t9) ## FFFFFFD0
/* 006AC 80B2339C 8D090004 */ lw $t1, 0x0004($t0) ## 00000004
/* 006B0 80B233A0 AF290004 */ sw $t1, 0x0004($t9) ## FFFFFFD4
/* 006B4 80B233A4 8D0A0008 */ lw $t2, 0x0008($t0) ## 00000008
/* 006B8 80B233A8 AF2A0008 */ sw $t2, 0x0008($t9) ## FFFFFFD8
/* 006BC 80B233AC C7A40070 */ lwc1 $f4, 0x0070($sp)
/* 006C0 80B233B0 C7B20058 */ lwc1 $f18, 0x0058($sp)
/* 006C4 80B233B4 C7B00074 */ lwc1 $f16, 0x0074($sp)
/* 006C8 80B233B8 46022182 */ mul.s $f6, $f4, $f2
/* 006CC 80B233BC C7AA005C */ lwc1 $f10, 0x005C($sp)
/* 006D0 80B233C0 46028102 */ mul.s $f4, $f16, $f2
/* 006D4 80B233C4 46069201 */ sub.s $f8, $f18, $f6
/* 006D8 80B233C8 C7A60060 */ lwc1 $f6, 0x0060($sp)
/* 006DC 80B233CC 46045481 */ sub.s $f18, $f10, $f4
/* 006E0 80B233D0 E7A80058 */ swc1 $f8, 0x0058($sp)
/* 006E4 80B233D4 C7A80078 */ lwc1 $f8, 0x0078($sp)
/* 006E8 80B233D8 E7B2005C */ swc1 $f18, 0x005C($sp)
/* 006EC 80B233DC 46024402 */ mul.s $f16, $f8, $f2
/* 006F0 80B233E0 46103281 */ sub.s $f10, $f6, $f16
/* 006F4 80B233E4 0C01DE0D */ jal Math_CosS
## coss?
/* 006F8 80B233E8 E7AA0060 */ swc1 $f10, 0x0060($sp)
/* 006FC 80B233EC 8FA20090 */ lw $v0, 0x0090($sp)
/* 00700 80B233F0 3C0B80B2 */ lui $t3, %hi(D_80B24388) ## $t3 = 80B20000
/* 00704 80B233F4 256B4388 */ addiu $t3, $t3, %lo(D_80B24388) ## $t3 = 80B24388
/* 00708 80B233F8 00021080 */ sll $v0, $v0, 2
/* 0070C 80B233FC 004B1821 */ addu $v1, $v0, $t3
/* 00710 80B23400 C4640000 */ lwc1 $f4, 0x0000($v1) ## 00000000
/* 00714 80B23404 C7A20098 */ lwc1 $f2, 0x0098($sp)
/* 00718 80B23408 3C0180B2 */ lui $at, %hi(D_80B243A4) ## $at = 80B20000
/* 0071C 80B2340C 00220821 */ addu $at, $at, $v0
/* 00720 80B23410 46022482 */ mul.s $f18, $f4, $f2
/* 00724 80B23414 C42A43A4 */ lwc1 $f10, %lo(D_80B243A4)($at)
/* 00728 80B23418 C7A60058 */ lwc1 $f6, 0x0058($sp)
/* 0072C 80B2341C 00102400 */ sll $a0, $s0, 16
/* 00730 80B23420 00042403 */ sra $a0, $a0, 16
/* 00734 80B23424 AFA30038 */ sw $v1, 0x0038($sp)
/* 00738 80B23428 46120202 */ mul.s $f8, $f0, $f18
/* 0073C 80B2342C C7B2005C */ lwc1 $f18, 0x005C($sp)
/* 00740 80B23430 46025102 */ mul.s $f4, $f10, $f2
/* 00744 80B23434 46064400 */ add.s $f16, $f8, $f6
/* 00748 80B23438 46122200 */ add.s $f8, $f4, $f18
/* 0074C 80B2343C E7B0007C */ swc1 $f16, 0x007C($sp)
/* 00750 80B23440 0C01DE1C */ jal Math_SinS
## sins?
/* 00754 80B23444 E7A80080 */ swc1 $f8, 0x0080($sp)
/* 00758 80B23448 8FA30038 */ lw $v1, 0x0038($sp)
/* 0075C 80B2344C C7A20098 */ lwc1 $f2, 0x0098($sp)
/* 00760 80B23450 C7A60060 */ lwc1 $f6, 0x0060($sp)
/* 00764 80B23454 C4700000 */ lwc1 $f16, 0x0000($v1) ## 00000000
/* 00768 80B23458 3C014448 */ lui $at, 0x4448 ## $at = 44480000
/* 0076C 80B2345C 44814000 */ mtc1 $at, $f8 ## $f8 = 800.00
/* 00770 80B23460 46028282 */ mul.s $f10, $f16, $f2
/* 00774 80B23464 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 00778 80B23468 8FAC0054 */ lw $t4, 0x0054($sp)
/* 0077C 80B2346C 8FAD0050 */ lw $t5, 0x0050($sp)
/* 00780 80B23470 8FA4008C */ lw $a0, 0x008C($sp)
/* 00784 80B23474 27A5007C */ addiu $a1, $sp, 0x007C ## $a1 = FFFFFFF4
/* 00788 80B23478 27A60070 */ addiu $a2, $sp, 0x0070 ## $a2 = FFFFFFE8
/* 0078C 80B2347C 460A0102 */ mul.s $f4, $f0, $f10
/* 00790 80B23480 27A70064 */ addiu $a3, $sp, 0x0064 ## $a3 = FFFFFFDC
/* 00794 80B23484 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00798 80B23488 46024402 */ mul.s $f16, $f8, $f2
/* 0079C 80B2348C AFAD0014 */ sw $t5, 0x0014($sp)
/* 007A0 80B23490 46043481 */ sub.s $f18, $f6, $f4
/* 007A4 80B23494 44813000 */ mtc1 $at, $f6 ## $f6 = 80.00
/* 007A8 80B23498 4600828D */ trunc.w.s $f10, $f16
/* 007AC 80B2349C 46023102 */ mul.s $f4, $f6, $f2
/* 007B0 80B234A0 E7B20084 */ swc1 $f18, 0x0084($sp)
/* 007B4 80B234A4 440F5000 */ mfc1 $t7, $f10
/* 007B8 80B234A8 00000000 */ nop
/* 007BC 80B234AC AFAF0018 */ sw $t7, 0x0018($sp)
/* 007C0 80B234B0 4600248D */ trunc.w.s $f18, $f4
/* 007C4 80B234B4 44199000 */ mfc1 $t9, $f18
/* 007C8 80B234B8 0C00A0A7 */ jal func_8002829C
/* 007CC 80B234BC AFB9001C */ sw $t9, 0x001C($sp)
/* 007D0 80B234C0 8FBF002C */ lw $ra, 0x002C($sp)
/* 007D4 80B234C4 8FB00028 */ lw $s0, 0x0028($sp)
/* 007D8 80B234C8 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000
/* 007DC 80B234CC 03E00008 */ jr $ra
/* 007E0 80B234D0 00000000 */ nop

View file

@ -1,135 +0,0 @@
.late_rodata
glabel D_80B24434
.float 0.9
glabel D_80B24438
.float 0.2
glabel D_80B2443C
.float 0.2
glabel D_80B24440
.float 0.9
.text
glabel func_80B234D4
/* 007E4 80B234D4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 007E8 80B234D8 AFBF0024 */ sw $ra, 0x0024($sp)
/* 007EC 80B234DC AFB00020 */ sw $s0, 0x0020($sp)
/* 007F0 80B234E0 AFA50034 */ sw $a1, 0x0034($sp)
/* 007F4 80B234E4 948202D6 */ lhu $v0, 0x02D6($a0) ## 000002D6
/* 007F8 80B234E8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 007FC 80B234EC 28410011 */ slti $at, $v0, 0x0011
/* 00800 80B234F0 1420000C */ bne $at, $zero, .L80B23524
/* 00804 80B234F4 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
/* 00808 80B234F8 00027880 */ sll $t7, $v0, 2
/* 0080C 80B234FC 01E27821 */ addu $t7, $t7, $v0
/* 00810 80B23500 000F78C0 */ sll $t7, $t7, 3
/* 00814 80B23504 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00818 80B23508 01E27821 */ addu $t7, $t7, $v0
/* 0081C 80B2350C 000F7900 */ sll $t7, $t7, 4
/* 00820 80B23510 01E27823 */ subu $t7, $t7, $v0
/* 00824 80B23514 01CFC023 */ subu $t8, $t6, $t7
/* 00828 80B23518 27193D68 */ addiu $t9, $t8, 0x3D68 ## $t9 = 00003D68
/* 0082C 80B2351C 1000004D */ beq $zero, $zero, .L80B23654
/* 00830 80B23520 A49900B6 */ sh $t9, 0x00B6($a0) ## 000000B6
.L80B23524:
/* 00834 80B23524 28610005 */ slti $at, $v1, 0x0005
/* 00838 80B23528 14200015 */ bne $at, $zero, .L80B23580
/* 0083C 80B2352C 3C0180B2 */ lui $at, %hi(D_80B24434) ## $at = 80B20000
/* 00840 80B23530 C4264434 */ lwc1 $f6, %lo(D_80B24434)($at)
/* 00844 80B23534 C6040050 */ lwc1 $f4, 0x0050($s0) ## 00000050
/* 00848 80B23538 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0084C 80B2353C 46062202 */ mul.s $f8, $f4, $f6
/* 00850 80B23540 44054000 */ mfc1 $a1, $f8
/* 00854 80B23544 0C00B58B */ jal Actor_SetScale
/* 00858 80B23548 00000000 */ nop
/* 0085C 80B2354C 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 00860 80B23550 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
/* 00864 80B23554 00024880 */ sll $t1, $v0, 2
/* 00868 80B23558 01224821 */ addu $t1, $t1, $v0
/* 0086C 80B2355C 000948C0 */ sll $t1, $t1, 3
/* 00870 80B23560 01224821 */ addu $t1, $t1, $v0
/* 00874 80B23564 00094900 */ sll $t1, $t1, 4
/* 00878 80B23568 01224823 */ subu $t1, $t1, $v0
/* 0087C 80B2356C 01095023 */ subu $t2, $t0, $t1
/* 00880 80B23570 254B3D68 */ addiu $t3, $t2, 0x3D68 ## $t3 = 00003D68
/* 00884 80B23574 A60B00B6 */ sh $t3, 0x00B6($s0) ## 000000B6
/* 00888 80B23578 10000036 */ beq $zero, $zero, .L80B23654
/* 0088C 80B2357C 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B23580:
/* 00890 80B23580 1860002E */ blez $v1, .L80B2363C
/* 00894 80B23584 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00898 80B23588 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 0089C 80B2358C 00033040 */ sll $a2, $v1, 1
/* 008A0 80B23590 00C1001A */ div $zero, $a2, $at
/* 008A4 80B23594 3C0180B2 */ lui $at, %hi(D_80B24438) ## $at = 80B20000
/* 008A8 80B23598 C42A4438 */ lwc1 $f10, %lo(D_80B24438)($at)
/* 008AC 80B2359C 00003010 */ mfhi $a2
/* 008B0 80B235A0 AFA6002C */ sw $a2, 0x002C($sp)
/* 008B4 80B235A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008B8 80B235A8 8FA50034 */ lw $a1, 0x0034($sp)
/* 008BC 80B235AC 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
/* 008C0 80B235B0 0C2C8C95 */ jal func_80B23254
/* 008C4 80B235B4 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 008C8 80B235B8 8FA6002C */ lw $a2, 0x002C($sp)
/* 008CC 80B235BC 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 008D0 80B235C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008D4 80B235C4 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000001
/* 008D8 80B235C8 00C1001A */ div $zero, $a2, $at
/* 008DC 80B235CC 3C0180B2 */ lui $at, %hi(D_80B2443C) ## $at = 80B20000
/* 008E0 80B235D0 C430443C */ lwc1 $f16, %lo(D_80B2443C)($at)
/* 008E4 80B235D4 00003010 */ mfhi $a2
/* 008E8 80B235D8 8FA50034 */ lw $a1, 0x0034($sp)
/* 008EC 80B235DC 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
/* 008F0 80B235E0 0C2C8C95 */ jal func_80B23254
/* 008F4 80B235E4 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 008F8 80B235E8 3C0180B2 */ lui $at, %hi(D_80B24440) ## $at = 80B20000
/* 008FC 80B235EC C4244440 */ lwc1 $f4, %lo(D_80B24440)($at)
/* 00900 80B235F0 C6120050 */ lwc1 $f18, 0x0050($s0) ## 00000050
/* 00904 80B235F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00908 80B235F8 46049182 */ mul.s $f6, $f18, $f4
/* 0090C 80B235FC 44053000 */ mfc1 $a1, $f6
/* 00910 80B23600 0C00B58B */ jal Actor_SetScale
/* 00914 80B23604 00000000 */ nop
/* 00918 80B23608 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 0091C 80B2360C 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6
/* 00920 80B23610 00026880 */ sll $t5, $v0, 2
/* 00924 80B23614 01A26821 */ addu $t5, $t5, $v0
/* 00928 80B23618 000D68C0 */ sll $t5, $t5, 3
/* 0092C 80B2361C 01A26821 */ addu $t5, $t5, $v0
/* 00930 80B23620 000D6900 */ sll $t5, $t5, 4
/* 00934 80B23624 01A26823 */ subu $t5, $t5, $v0
/* 00938 80B23628 018D7023 */ subu $t6, $t4, $t5
/* 0093C 80B2362C 25CF3D68 */ addiu $t7, $t6, 0x3D68 ## $t7 = 00003D68
/* 00940 80B23630 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
/* 00944 80B23634 10000007 */ beq $zero, $zero, .L80B23654
/* 00948 80B23638 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B2363C:
/* 0094C 80B2363C 3C0580B2 */ lui $a1, %hi(func_80B23820) ## $a1 = 80B20000
/* 00950 80B23640 0C2C8B3C */ jal func_80B22CF0
/* 00954 80B23644 24A53820 */ addiu $a1, $a1, %lo(func_80B23820) ## $a1 = 80B23820
/* 00958 80B23648 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 0095C 80B2364C AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 00960 80B23650 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B23654:
/* 00964 80B23654 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00968 80B23658 14610005 */ bne $v1, $at, .L80B23670
/* 0096C 80B2365C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00970 80B23660 0C00BE0A */ jal Audio_PlayActorSound2
/* 00974 80B23664 240538CD */ addiu $a1, $zero, 0x38CD ## $a1 = 000038CD
/* 00978 80B23668 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 0097C 80B2366C 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B23670:
/* 00980 80B23670 18600002 */ blez $v1, .L80B2367C
/* 00984 80B23674 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 00988 80B23678 A61802D6 */ sh $t8, 0x02D6($s0) ## 000002D6
.L80B2367C:
/* 0098C 80B2367C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00990 80B23680 8FB00020 */ lw $s0, 0x0020($sp)
/* 00994 80B23684 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00998 80B23688 03E00008 */ jr $ra
/* 0099C 80B2368C 00000000 */ nop

View file

@ -1,116 +0,0 @@
.late_rodata
glabel D_80B24444
.float 0.8
glabel D_80B24448
.float 0.002
.text
glabel func_80B23690
/* 009A0 80B23690 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 009A4 80B23694 AFBF0024 */ sw $ra, 0x0024($sp)
/* 009A8 80B23698 AFB00020 */ sw $s0, 0x0020($sp)
/* 009AC 80B2369C AFA50034 */ sw $a1, 0x0034($sp)
/* 009B0 80B236A0 948202D6 */ lhu $v0, 0x02D6($a0) ## 000002D6
/* 009B4 80B236A4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009B8 80B236A8 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
/* 009BC 80B236AC 2841001F */ slti $at, $v0, 0x001F
/* 009C0 80B236B0 14200019 */ bne $at, $zero, .L80B23718
/* 009C4 80B236B4 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
/* 009C8 80B236B8 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 009CC 80B236BC 00033040 */ sll $a2, $v1, 1
/* 009D0 80B236C0 00C1001A */ div $zero, $a2, $at
/* 009D4 80B236C4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 009D8 80B236C8 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
/* 009DC 80B236CC 00003010 */ mfhi $a2
/* 009E0 80B236D0 AFA6002C */ sw $a2, 0x002C($sp)
/* 009E4 80B236D4 0C2C8C95 */ jal func_80B23254
/* 009E8 80B236D8 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 009EC 80B236DC 8FA6002C */ lw $a2, 0x002C($sp)
/* 009F0 80B236E0 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 009F4 80B236E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009F8 80B236E8 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000001
/* 009FC 80B236EC 00C1001A */ div $zero, $a2, $at
/* 00A00 80B236F0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00A04 80B236F4 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 00A08 80B236F8 00003010 */ mfhi $a2
/* 00A0C 80B236FC 8FA50034 */ lw $a1, 0x0034($sp)
/* 00A10 80B23700 3C0740A0 */ lui $a3, 0x40A0 ## $a3 = 40A00000
/* 00A14 80B23704 0C2C8C95 */ jal func_80B23254
/* 00A18 80B23708 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00A1C 80B2370C 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 00A20 80B23710 10000038 */ beq $zero, $zero, .L80B237F4
/* 00A24 80B23714 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B23718:
/* 00A28 80B23718 2401001E */ addiu $at, $zero, 0x001E ## $at = 0000001E
/* 00A2C 80B2371C 14610010 */ bne $v1, $at, .L80B23760
/* 00A30 80B23720 3C0E80B2 */ lui $t6, %hi(EnTr_Draw) ## $t6 = 80B20000
/* 00A34 80B23724 0003C080 */ sll $t8, $v1, 2
/* 00A38 80B23728 0303C023 */ subu $t8, $t8, $v1
/* 00A3C 80B2372C 0018C080 */ sll $t8, $t8, 2
/* 00A40 80B23730 0303C021 */ addu $t8, $t8, $v1
/* 00A44 80B23734 0018C080 */ sll $t8, $t8, 2
/* 00A48 80B23738 0303C021 */ addu $t8, $t8, $v1
/* 00A4C 80B2373C 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6
/* 00A50 80B23740 0018C080 */ sll $t8, $t8, 2
/* 00A54 80B23744 0303C023 */ subu $t8, $t8, $v1
/* 00A58 80B23748 0018C040 */ sll $t8, $t8, 1
/* 00A5C 80B2374C 25CE3EA4 */ addiu $t6, $t6, %lo(EnTr_Draw) ## $t6 = 80B23EA4
/* 00A60 80B23750 01F8C821 */ addu $t9, $t7, $t8
/* 00A64 80B23754 AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134
/* 00A68 80B23758 10000026 */ beq $zero, $zero, .L80B237F4
/* 00A6C 80B2375C A61900B6 */ sh $t9, 0x00B6($s0) ## 000000B6
.L80B23760:
/* 00A70 80B23760 1860001B */ blez $v1, .L80B237D0
/* 00A74 80B23764 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A78 80B23768 00034880 */ sll $t1, $v1, 2
/* 00A7C 80B2376C 01234823 */ subu $t1, $t1, $v1
/* 00A80 80B23770 00094880 */ sll $t1, $t1, 2
/* 00A84 80B23774 01234821 */ addu $t1, $t1, $v1
/* 00A88 80B23778 00094880 */ sll $t1, $t1, 2
/* 00A8C 80B2377C 01234821 */ addu $t1, $t1, $v1
/* 00A90 80B23780 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
/* 00A94 80B23784 00094880 */ sll $t1, $t1, 2
/* 00A98 80B23788 01234823 */ subu $t1, $t1, $v1
/* 00A9C 80B2378C 00094840 */ sll $t1, $t1, 1
/* 00AA0 80B23790 01095021 */ addu $t2, $t0, $t1
/* 00AA4 80B23794 A60A00B6 */ sh $t2, 0x00B6($s0) ## 000000B6
/* 00AA8 80B23798 3C0180B2 */ lui $at, %hi(D_80B24444) ## $at = 80B20000
/* 00AAC 80B2379C C42A4444 */ lwc1 $f10, %lo(D_80B24444)($at)
/* 00AB0 80B237A0 C6080050 */ lwc1 $f8, 0x0050($s0) ## 00000050
/* 00AB4 80B237A4 3C0180B2 */ lui $at, %hi(D_80B24448) ## $at = 80B20000
/* 00AB8 80B237A8 C4324448 */ lwc1 $f18, %lo(D_80B24448)($at)
/* 00ABC 80B237AC 460A4402 */ mul.s $f16, $f8, $f10
/* 00AC0 80B237B0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AC4 80B237B4 46128100 */ add.s $f4, $f16, $f18
/* 00AC8 80B237B8 44052000 */ mfc1 $a1, $f4
/* 00ACC 80B237BC 0C00B58B */ jal Actor_SetScale
/* 00AD0 80B237C0 00000000 */ nop
/* 00AD4 80B237C4 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 00AD8 80B237C8 1000000A */ beq $zero, $zero, .L80B237F4
/* 00ADC 80B237CC 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B237D0:
/* 00AE0 80B237D0 3C0580B2 */ lui $a1, %hi(func_80B22F28) ## $a1 = 80B20000
/* 00AE4 80B237D4 0C2C8B3C */ jal func_80B22CF0
/* 00AE8 80B237D8 24A52F28 */ addiu $a1, $a1, %lo(func_80B22F28) ## $a1 = 80B22F28
/* 00AEC 80B237DC 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00AF0 80B237E0 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00AF4 80B237E4 0C00B58B */ jal Actor_SetScale
/* 00AF8 80B237E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AFC 80B237EC 960202D6 */ lhu $v0, 0x02D6($s0) ## 000002D6
/* 00B00 80B237F0 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L80B237F4:
/* 00B04 80B237F4 18600003 */ blez $v1, .L80B23804
/* 00B08 80B237F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B0C 80B237FC 244BFFFF */ addiu $t3, $v0, 0xFFFF ## $t3 = FFFFFFFF
/* 00B10 80B23800 A60B02D6 */ sh $t3, 0x02D6($s0) ## 000002D6
.L80B23804:
/* 00B14 80B23804 0C00BE5D */ jal func_8002F974
/* 00B18 80B23808 2405317B */ addiu $a1, $zero, 0x317B ## $a1 = 0000317B
/* 00B1C 80B2380C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00B20 80B23810 8FB00020 */ lw $s0, 0x0020($sp)
/* 00B24 80B23814 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00B28 80B23818 03E00008 */ jr $ra
/* 00B2C 80B2381C 00000000 */ nop

View file

@ -1,53 +0,0 @@
glabel func_80B23820
/* 00B30 80B23820 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00B34 80B23824 AFBF001C */ sw $ra, 0x001C($sp)
/* 00B38 80B23828 AFB00018 */ sw $s0, 0x0018($sp)
/* 00B3C 80B2382C 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 00B40 80B23830 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B44 80B23834 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00B48 80B23838 51C00025 */ beql $t6, $zero, .L80B238D0
/* 00B4C 80B2383C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00B50 80B23840 848F02D8 */ lh $t7, 0x02D8($a0) ## 000002D8
/* 00B54 80B23844 000FC080 */ sll $t8, $t7, 2
/* 00B58 80B23848 00B8C821 */ addu $t9, $a1, $t8
/* 00B5C 80B2384C 8F221D8C */ lw $v0, 0x1D8C($t9) ## 00001D8C
/* 00B60 80B23850 5040001F */ beql $v0, $zero, .L80B238D0
/* 00B64 80B23854 8FBF001C */ lw $ra, 0x001C($sp)
/* 00B68 80B23858 94430000 */ lhu $v1, 0x0000($v0) ## 00000000
/* 00B6C 80B2385C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00B70 80B23860 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B74 80B23864 10610004 */ beq $v1, $at, .L80B23878
/* 00B78 80B23868 2405390D */ addiu $a1, $zero, 0x390D ## $a1 = 0000390D
/* 00B7C 80B2386C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00B80 80B23870 54610017 */ bnel $v1, $at, .L80B238D0
/* 00B84 80B23874 8FBF001C */ lw $ra, 0x001C($sp)
.L80B23878:
/* 00B88 80B23878 0C00BE0A */ jal Audio_PlayActorSound2
/* 00B8C 80B2387C AFA70024 */ sw $a3, 0x0024($sp)
/* 00B90 80B23880 8FA50024 */ lw $a1, 0x0024($sp)
/* 00B94 80B23884 24080022 */ addiu $t0, $zero, 0x0022 ## $t0 = 00000022
/* 00B98 80B23888 A60802D6 */ sh $t0, 0x02D6($s0) ## 000002D6
/* 00B9C 80B2388C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BA0 80B23890 0C2C90AD */ jal func_80B242B4
/* 00BA4 80B23894 860602D8 */ lh $a2, 0x02D8($s0) ## 000002D8
/* 00BA8 80B23898 3C0580B2 */ lui $a1, %hi(func_80B23690) ## $a1 = 80B20000
/* 00BAC 80B2389C 24A53690 */ addiu $a1, $a1, %lo(func_80B23690) ## $a1 = 80B23690
/* 00BB0 80B238A0 0C2C8B3C */ jal func_80B22CF0
/* 00BB4 80B238A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BB8 80B238A8 3C050600 */ lui $a1, %hi(D_060049C8) ## $a1 = 06000000
/* 00BBC 80B238AC 24A549C8 */ addiu $a1, $a1, %lo(D_060049C8) ## $a1 = 060049C8
/* 00BC0 80B238B0 0C0294BE */ jal Animation_PlayLoop
/* 00BC4 80B238B4 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00BC8 80B238B8 3C053B44 */ lui $a1, 0x3B44 ## $a1 = 3B440000
/* 00BCC 80B238BC AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 00BD0 80B238C0 34A59BA6 */ ori $a1, $a1, 0x9BA6 ## $a1 = 3B449BA6
/* 00BD4 80B238C4 0C00B58B */ jal Actor_SetScale
/* 00BD8 80B238C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BDC 80B238CC 8FBF001C */ lw $ra, 0x001C($sp)
.L80B238D0:
/* 00BE0 80B238D0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00BE4 80B238D4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00BE8 80B238D8 03E00008 */ jr $ra
/* 00BEC 80B238DC 00000000 */ nop

View file

@ -1,55 +0,0 @@
glabel func_80B238E0
/* 00BF0 80B238E0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00BF4 80B238E4 AFBF002C */ sw $ra, 0x002C($sp)
/* 00BF8 80B238E8 AFB00028 */ sw $s0, 0x0028($sp)
/* 00BFC 80B238EC AFA50034 */ sw $a1, 0x0034($sp)
/* 00C00 80B238F0 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00C04 80B238F4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00C08 80B238F8 3C0480B2 */ lui $a0, %hi(D_80B24378) ## $a0 = 80B20000
/* 00C0C 80B238FC 000E7880 */ sll $t7, $t6, 2
/* 00C10 80B23900 008F2021 */ addu $a0, $a0, $t7
/* 00C14 80B23904 0C028800 */ jal Animation_GetLastFrame
/* 00C18 80B23908 8C844378 */ lw $a0, %lo(D_80B24378)($a0)
/* 00C1C 80B2390C 8FA30034 */ lw $v1, 0x0034($sp)
/* 00C20 80B23910 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00C24 80B23914 90781D6C */ lbu $t8, 0x1D6C($v1) ## 00001D6C
/* 00C28 80B23918 46802020 */ cvt.s.w $f0, $f4
/* 00C2C 80B2391C 5300001E */ beql $t8, $zero, .L80B23998
/* 00C30 80B23920 8FBF002C */ lw $ra, 0x002C($sp)
/* 00C34 80B23924 861902D8 */ lh $t9, 0x02D8($s0) ## 000002D8
/* 00C38 80B23928 00194080 */ sll $t0, $t9, 2
/* 00C3C 80B2392C 00684821 */ addu $t1, $v1, $t0
/* 00C40 80B23930 8D221D8C */ lw $v0, 0x1D8C($t1) ## 00001D8C
/* 00C44 80B23934 50400018 */ beql $v0, $zero, .L80B23998
/* 00C48 80B23938 8FBF002C */ lw $ra, 0x002C($sp)
/* 00C4C 80B2393C 944A0000 */ lhu $t2, 0x0000($v0) ## 00000000
/* 00C50 80B23940 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00C54 80B23944 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00C58 80B23948 15410012 */ bne $t2, $at, .L80B23994
/* 00C5C 80B2394C 3C0580B2 */ lui $a1, %hi(D_80B24378) ## $a1 = 80B20000
/* 00C60 80B23950 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
/* 00C64 80B23954 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00C68 80B23958 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00
/* 00C6C 80B2395C 000B6080 */ sll $t4, $t3, 2
/* 00C70 80B23960 00AC2821 */ addu $a1, $a1, $t4
/* 00C74 80B23964 8CA54378 */ lw $a1, %lo(D_80B24378)($a1)
/* 00C78 80B23968 AFA00014 */ sw $zero, 0x0014($sp)
/* 00C7C 80B2396C E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00C80 80B23970 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00C84 80B23974 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00C88 80B23978 0C029468 */ jal Animation_Change
/* 00C8C 80B2397C E7A60018 */ swc1 $f6, 0x0018($sp)
/* 00C90 80B23980 3C0580B2 */ lui $a1, %hi(func_80B22F28) ## $a1 = 80B20000
/* 00C94 80B23984 AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 00C98 80B23988 24A52F28 */ addiu $a1, $a1, %lo(func_80B22F28) ## $a1 = 80B22F28
/* 00C9C 80B2398C 0C2C8B3C */ jal func_80B22CF0
/* 00CA0 80B23990 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80B23994:
/* 00CA4 80B23994 8FBF002C */ lw $ra, 0x002C($sp)
.L80B23998:
/* 00CA8 80B23998 8FB00028 */ lw $s0, 0x0028($sp)
/* 00CAC 80B2399C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00CB0 80B239A0 03E00008 */ jr $ra
/* 00CB4 80B239A4 00000000 */ nop

View file

@ -1,61 +0,0 @@
glabel func_80B239A8
/* 00CB8 80B239A8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00CBC 80B239AC AFBF002C */ sw $ra, 0x002C($sp)
/* 00CC0 80B239B0 AFB00028 */ sw $s0, 0x0028($sp)
/* 00CC4 80B239B4 AFA50034 */ sw $a1, 0x0034($sp)
/* 00CC8 80B239B8 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00CCC 80B239BC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00CD0 80B239C0 3C0480B2 */ lui $a0, %hi(D_80B24368) ## $a0 = 80B20000
/* 00CD4 80B239C4 000E7880 */ sll $t7, $t6, 2
/* 00CD8 80B239C8 008F2021 */ addu $a0, $a0, $t7
/* 00CDC 80B239CC 0C028800 */ jal Animation_GetLastFrame
/* 00CE0 80B239D0 8C844368 */ lw $a0, %lo(D_80B24368)($a0)
/* 00CE4 80B239D4 8FA30034 */ lw $v1, 0x0034($sp)
/* 00CE8 80B239D8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00CEC 80B239DC 90781D6C */ lbu $t8, 0x1D6C($v1) ## 00001D6C
/* 00CF0 80B239E0 46802020 */ cvt.s.w $f0, $f4
/* 00CF4 80B239E4 53000024 */ beql $t8, $zero, .L80B23A78
/* 00CF8 80B239E8 8FBF002C */ lw $ra, 0x002C($sp)
/* 00CFC 80B239EC 861902D8 */ lh $t9, 0x02D8($s0) ## 000002D8
/* 00D00 80B239F0 00194080 */ sll $t0, $t9, 2
/* 00D04 80B239F4 00684821 */ addu $t1, $v1, $t0
/* 00D08 80B239F8 8D221D8C */ lw $v0, 0x1D8C($t1) ## 00001D8C
/* 00D0C 80B239FC 5040001E */ beql $v0, $zero, .L80B23A78
/* 00D10 80B23A00 8FBF002C */ lw $ra, 0x002C($sp)
/* 00D14 80B23A04 944A0000 */ lhu $t2, 0x0000($v0) ## 00000000
/* 00D18 80B23A08 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00D1C 80B23A0C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00D20 80B23A10 15410018 */ bne $t2, $at, .L80B23A74
/* 00D24 80B23A14 3C0580B2 */ lui $a1, %hi(D_80B24368) ## $a1 = 80B20000
/* 00D28 80B23A18 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
/* 00D2C 80B23A1C 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
/* 00D30 80B23A20 44813000 */ mtc1 $at, $f6 ## $f6 = -4.00
/* 00D34 80B23A24 000B6080 */ sll $t4, $t3, 2
/* 00D38 80B23A28 00AC2821 */ addu $a1, $a1, $t4
/* 00D3C 80B23A2C 240D0002 */ addiu $t5, $zero, 0x0002 ## $t5 = 00000002
/* 00D40 80B23A30 AFAD0014 */ sw $t5, 0x0014($sp)
/* 00D44 80B23A34 8CA54368 */ lw $a1, %lo(D_80B24368)($a1)
/* 00D48 80B23A38 E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00D4C 80B23A3C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00D50 80B23A40 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00D54 80B23A44 0C029468 */ jal Animation_Change
/* 00D58 80B23A48 E7A60018 */ swc1 $f6, 0x0018($sp)
/* 00D5C 80B23A4C 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00D60 80B23A50 3C1880B2 */ lui $t8, %hi(D_80B24370) ## $t8 = 80B20000
/* 00D64 80B23A54 3C0580B2 */ lui $a1, %hi(func_80B238E0) ## $a1 = 80B20000
/* 00D68 80B23A58 000E7880 */ sll $t7, $t6, 2
/* 00D6C 80B23A5C 030FC021 */ addu $t8, $t8, $t7
/* 00D70 80B23A60 8F184370 */ lw $t8, %lo(D_80B24370)($t8)
/* 00D74 80B23A64 24A538E0 */ addiu $a1, $a1, %lo(func_80B238E0) ## $a1 = 80B238E0
/* 00D78 80B23A68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D7C 80B23A6C 0C2C8B3C */ jal func_80B22CF0
/* 00D80 80B23A70 AE1802E4 */ sw $t8, 0x02E4($s0) ## 000002E4
.L80B23A74:
/* 00D84 80B23A74 8FBF002C */ lw $ra, 0x002C($sp)
.L80B23A78:
/* 00D88 80B23A78 8FB00028 */ lw $s0, 0x0028($sp)
/* 00D8C 80B23A7C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00D90 80B23A80 03E00008 */ jr $ra
/* 00D94 80B23A84 00000000 */ nop

View file

@ -1,85 +0,0 @@
glabel func_80B23A88
/* 00D98 80B23A88 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00D9C 80B23A8C AFBF001C */ sw $ra, 0x001C($sp)
/* 00DA0 80B23A90 AFB00018 */ sw $s0, 0x0018($sp)
/* 00DA4 80B23A94 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 00DA8 80B23A98 3C070001 */ lui $a3, 0x0001 ## $a3 = 00010000
/* 00DAC 80B23A9C 00E53821 */ addu $a3, $a3, $a1
/* 00DB0 80B23AA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00DB4 80B23AA4 11C00040 */ beq $t6, $zero, .L80B23BA8
/* 00DB8 80B23AA8 8CE71DE4 */ lw $a3, 0x1DE4($a3) ## 00011DE4
/* 00DBC 80B23AAC 848602D8 */ lh $a2, 0x02D8($a0) ## 000002D8
/* 00DC0 80B23AB0 00067880 */ sll $t7, $a2, 2
/* 00DC4 80B23AB4 00AFC021 */ addu $t8, $a1, $t7
/* 00DC8 80B23AB8 8F031D8C */ lw $v1, 0x1D8C($t8) ## 00001D8C
/* 00DCC 80B23ABC 5060003B */ beql $v1, $zero, .L80B23BAC
/* 00DD0 80B23AC0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00DD4 80B23AC4 94620000 */ lhu $v0, 0x0000($v1) ## 00000000
/* 00DD8 80B23AC8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00DDC 80B23ACC 1041000A */ beq $v0, $at, .L80B23AF8
/* 00DE0 80B23AD0 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00DE4 80B23AD4 10410010 */ beq $v0, $at, .L80B23B18
/* 00DE8 80B23AD8 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00DEC 80B23ADC 1041001A */ beq $v0, $at, .L80B23B48
/* 00DF0 80B23AE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00DF4 80B23AE4 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 00DF8 80B23AE8 1041001C */ beq $v0, $at, .L80B23B5C
/* 00DFC 80B23AEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E00 80B23AF0 1000002E */ beq $zero, $zero, .L80B23BAC
/* 00E04 80B23AF4 8FBF001C */ lw $ra, 0x001C($sp)
.L80B23AF8:
/* 00E08 80B23AF8 0C2C90AD */ jal func_80B242B4
/* 00E0C 80B23AFC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E10 80B23B00 3C0580B2 */ lui $a1, %hi(func_80B239A8) ## $a1 = 80B20000
/* 00E14 80B23B04 24A539A8 */ addiu $a1, $a1, %lo(func_80B239A8) ## $a1 = 80B239A8
/* 00E18 80B23B08 0C2C8B3C */ jal func_80B22CF0
/* 00E1C 80B23B0C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E20 80B23B10 10000026 */ beq $zero, $zero, .L80B23BAC
/* 00E24 80B23B14 8FBF001C */ lw $ra, 0x001C($sp)
.L80B23B18:
/* 00E28 80B23B18 0C2C90AD */ jal func_80B242B4
/* 00E2C 80B23B1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E30 80B23B20 3C0580B2 */ lui $a1, %hi(func_80B22F28) ## $a1 = 80B20000
/* 00E34 80B23B24 24A52F28 */ addiu $a1, $a1, %lo(func_80B22F28) ## $a1 = 80B22F28
/* 00E38 80B23B28 0C2C8B3C */ jal func_80B22CF0
/* 00E3C 80B23B2C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E40 80B23B30 3C050600 */ lui $a1, %hi(D_060049C8) ## $a1 = 06000000
/* 00E44 80B23B34 24A549C8 */ addiu $a1, $a1, %lo(D_060049C8) ## $a1 = 060049C8
/* 00E48 80B23B38 0C0294BE */ jal Animation_PlayLoop
/* 00E4C 80B23B3C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00E50 80B23B40 10000019 */ beq $zero, $zero, .L80B23BA8
/* 00E54 80B23B44 AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
.L80B23B48:
/* 00E58 80B23B48 3C0580B2 */ lui $a1, %hi(func_80B23820) ## $a1 = 80B20000
/* 00E5C 80B23B4C 0C2C8B3C */ jal func_80B22CF0
/* 00E60 80B23B50 24A53820 */ addiu $a1, $a1, %lo(func_80B23820) ## $a1 = 80B23820
/* 00E64 80B23B54 10000014 */ beq $zero, $zero, .L80B23BA8
/* 00E68 80B23B58 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
.L80B23B5C:
/* 00E6C 80B23B5C 3C0580B2 */ lui $a1, %hi(func_80B230D8) ## $a1 = 80B20000
/* 00E70 80B23B60 24A530D8 */ addiu $a1, $a1, %lo(func_80B230D8) ## $a1 = 80B230D8
/* 00E74 80B23B64 0C2C8B3C */ jal func_80B22CF0
/* 00E78 80B23B68 AFA70024 */ sw $a3, 0x0024($sp)
/* 00E7C 80B23B6C 3C050600 */ lui $a1, %hi(D_060049C8) ## $a1 = 06000000
/* 00E80 80B23B70 24A549C8 */ addiu $a1, $a1, %lo(D_060049C8) ## $a1 = 060049C8
/* 00E84 80B23B74 0C0294BE */ jal Animation_PlayLoop
/* 00E88 80B23B78 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00E8C 80B23B7C 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
/* 00E90 80B23B80 8FA70024 */ lw $a3, 0x0024($sp)
/* 00E94 80B23B84 AE0002E4 */ sw $zero, 0x02E4($s0) ## 000002E4
/* 00E98 80B23B88 13200006 */ beq $t9, $zero, .L80B23BA4
/* 00E9C 80B23B8C 00076280 */ sll $t4, $a3, 10
/* 00EA0 80B23B90 00074A80 */ sll $t1, $a3, 10
/* 00EA4 80B23B94 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00EA8 80B23B98 01215021 */ addu $t2, $t1, $at
/* 00EAC 80B23B9C 10000002 */ beq $zero, $zero, .L80B23BA8
/* 00EB0 80B23BA0 A60A02D6 */ sh $t2, 0x02D6($s0) ## 000002D6
.L80B23BA4:
/* 00EB4 80B23BA4 A60C02D6 */ sh $t4, 0x02D6($s0) ## 000002D6
.L80B23BA8:
/* 00EB8 80B23BA8 8FBF001C */ lw $ra, 0x001C($sp)
.L80B23BAC:
/* 00EBC 80B23BAC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00EC0 80B23BB0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00EC4 80B23BB4 03E00008 */ jr $ra
/* 00EC8 80B23BB8 00000000 */ nop

View file

@ -1,81 +0,0 @@
glabel func_80B23D74
/* 01084 80B23D74 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 01088 80B23D78 3C0E80B2 */ lui $t6, %hi(D_80B243DC) ## $t6 = 80B20000
/* 0108C 80B23D7C AFBF0014 */ sw $ra, 0x0014($sp)
/* 01090 80B23D80 AFA40040 */ sw $a0, 0x0040($sp)
/* 01094 80B23D84 AFA60048 */ sw $a2, 0x0048($sp)
/* 01098 80B23D88 AFA7004C */ sw $a3, 0x004C($sp)
/* 0109C 80B23D8C 25CE43DC */ addiu $t6, $t6, %lo(D_80B243DC) ## $t6 = 80B243DC
/* 010A0 80B23D90 8DD80000 */ lw $t8, 0x0000($t6) ## 80B243DC
/* 010A4 80B23D94 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFF4
/* 010A8 80B23D98 3C1980B2 */ lui $t9, %hi(D_80B243E8) ## $t9 = 80B20000
/* 010AC 80B23D9C ACD80000 */ sw $t8, 0x0000($a2) ## FFFFFFF4
/* 010B0 80B23DA0 8DCF0004 */ lw $t7, 0x0004($t6) ## 80B243E0
/* 010B4 80B23DA4 273943E8 */ addiu $t9, $t9, %lo(D_80B243E8) ## $t9 = 80B243E8
/* 010B8 80B23DA8 27A70028 */ addiu $a3, $sp, 0x0028 ## $a3 = FFFFFFE8
/* 010BC 80B23DAC ACCF0004 */ sw $t7, 0x0004($a2) ## FFFFFFF8
/* 010C0 80B23DB0 8DD80008 */ lw $t8, 0x0008($t6) ## 80B243E4
/* 010C4 80B23DB4 24010013 */ addiu $at, $zero, 0x0013 ## $at = 00000013
/* 010C8 80B23DB8 ACD80008 */ sw $t8, 0x0008($a2) ## FFFFFFFC
/* 010CC 80B23DBC 8F290000 */ lw $t1, 0x0000($t9) ## 80B243E8
/* 010D0 80B23DC0 ACE90000 */ sw $t1, 0x0000($a3) ## FFFFFFE8
/* 010D4 80B23DC4 8F280004 */ lw $t0, 0x0004($t9) ## 80B243EC
/* 010D8 80B23DC8 ACE80004 */ sw $t0, 0x0004($a3) ## FFFFFFEC
/* 010DC 80B23DCC 8F290008 */ lw $t1, 0x0008($t9) ## 80B243F0
/* 010E0 80B23DD0 ACE90008 */ sw $t1, 0x0008($a3) ## FFFFFFF0
/* 010E4 80B23DD4 8FAA0054 */ lw $t2, 0x0054($sp)
/* 010E8 80B23DD8 8D42011C */ lw $v0, 0x011C($t2) ## 0000011C
/* 010EC 80B23DDC 5040002D */ beql $v0, $zero, .L80B23E94
/* 010F0 80B23DE0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 010F4 80B23DE4 14A1002A */ bne $a1, $at, .L80B23E90
/* 010F8 80B23DE8 00C02025 */ or $a0, $a2, $zero ## $a0 = FFFFFFF4
/* 010FC 80B23DEC 00E02825 */ or $a1, $a3, $zero ## $a1 = FFFFFFE8
/* 01100 80B23DF0 0C0346BD */ jal Matrix_MultVec3f
/* 01104 80B23DF4 AFA20020 */ sw $v0, 0x0020($sp)
/* 01108 80B23DF8 8FA20040 */ lw $v0, 0x0040($sp)
/* 0110C 80B23DFC 844B07A0 */ lh $t3, 0x07A0($v0) ## 000007A0
/* 01110 80B23E00 000B6080 */ sll $t4, $t3, 2
/* 01114 80B23E04 004C6821 */ addu $t5, $v0, $t4
/* 01118 80B23E08 0C016A7D */ jal Camera_GetCamDirYaw
/* 0111C 80B23E0C 8DA40790 */ lw $a0, 0x0790($t5) ## 00000790
/* 01120 80B23E10 00022400 */ sll $a0, $v0, 16
/* 01124 80B23E14 0C01DE1C */ jal Math_SinS
## sins?
/* 01128 80B23E18 00042403 */ sra $a0, $a0, 16
/* 0112C 80B23E1C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 01130 80B23E20 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 01134 80B23E24 C7A40028 */ lwc1 $f4, 0x0028($sp)
/* 01138 80B23E28 8FA20040 */ lw $v0, 0x0040($sp)
/* 0113C 80B23E2C 46003202 */ mul.s $f8, $f6, $f0
/* 01140 80B23E30 46082281 */ sub.s $f10, $f4, $f8
/* 01144 80B23E34 E7AA0028 */ swc1 $f10, 0x0028($sp)
/* 01148 80B23E38 844E07A0 */ lh $t6, 0x07A0($v0) ## 000007A0
/* 0114C 80B23E3C 000E7880 */ sll $t7, $t6, 2
/* 01150 80B23E40 004FC021 */ addu $t8, $v0, $t7
/* 01154 80B23E44 0C016A7D */ jal Camera_GetCamDirYaw
/* 01158 80B23E48 8F040790 */ lw $a0, 0x0790($t8) ## 00000790
/* 0115C 80B23E4C 00022400 */ sll $a0, $v0, 16
/* 01160 80B23E50 0C01DE0D */ jal Math_CosS
## coss?
/* 01164 80B23E54 00042403 */ sra $a0, $a0, 16
/* 01168 80B23E58 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 0116C 80B23E5C 44819000 */ mtc1 $at, $f18 ## $f18 = 10.00
/* 01170 80B23E60 C7B00030 */ lwc1 $f16, 0x0030($sp)
/* 01174 80B23E64 27A80028 */ addiu $t0, $sp, 0x0028 ## $t0 = FFFFFFE8
/* 01178 80B23E68 46009182 */ mul.s $f6, $f18, $f0
/* 0117C 80B23E6C 8FB90020 */ lw $t9, 0x0020($sp)
/* 01180 80B23E70 46068101 */ sub.s $f4, $f16, $f6
/* 01184 80B23E74 E7A40030 */ swc1 $f4, 0x0030($sp)
/* 01188 80B23E78 8D0A0000 */ lw $t2, 0x0000($t0) ## FFFFFFE8
/* 0118C 80B23E7C AF2A0024 */ sw $t2, 0x0024($t9) ## 00000024
/* 01190 80B23E80 8D090004 */ lw $t1, 0x0004($t0) ## FFFFFFEC
/* 01194 80B23E84 AF290028 */ sw $t1, 0x0028($t9) ## 00000028
/* 01198 80B23E88 8D0A0008 */ lw $t2, 0x0008($t0) ## FFFFFFF0
/* 0119C 80B23E8C AF2A002C */ sw $t2, 0x002C($t9) ## 0000002C
.L80B23E90:
/* 011A0 80B23E90 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B23E94:
/* 011A4 80B23E94 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 011A8 80B23E98 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 011AC 80B23E9C 03E00008 */ jr $ra
/* 011B0 80B23EA0 00000000 */ nop

View file

@ -1,25 +0,0 @@
glabel func_80B23FDC
/* 012EC 80B23FDC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 012F0 80B23FE0 00057880 */ sll $t7, $a1, 2
/* 012F4 80B23FE4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 012F8 80B23FE8 AFA5001C */ sw $a1, 0x001C($sp)
/* 012FC 80B23FEC 008FC021 */ addu $t8, $a0, $t7
/* 01300 80B23FF0 8F021D8C */ lw $v0, 0x1D8C($t8) ## 00001D8C
/* 01304 80B23FF4 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 01308 80B23FF8 94E61D74 */ lhu $a2, 0x1D74($a3) ## 00001D74
/* 0130C 80B23FFC 94440004 */ lhu $a0, 0x0004($v0) ## 00000004
/* 01310 80B24000 0C01BE4F */ jal func_8006F93C
/* 01314 80B24004 94450002 */ lhu $a1, 0x0002($v0) ## 00000002
/* 01318 80B24008 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0131C 80B2400C 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00
/* 01320 80B24010 46000086 */ mov.s $f2, $f0
/* 01324 80B24014 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01328 80B24018 4600603C */ c.lt.s $f12, $f0
/* 0132C 80B2401C 00000000 */ nop
/* 01330 80B24020 45020003 */ bc1fl .L80B24030
/* 01334 80B24024 46001006 */ mov.s $f0, $f2
/* 01338 80B24028 46006086 */ mov.s $f2, $f12
/* 0133C 80B2402C 46001006 */ mov.s $f0, $f2
.L80B24030:
/* 01340 80B24030 03E00008 */ jr $ra
/* 01344 80B24034 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000

View file

@ -1,41 +0,0 @@
.late_rodata
glabel D_80B24458
.float 0.1
.text
glabel func_80B24230
/* 01540 80B24230 00067080 */ sll $t6, $a2, 2
/* 01544 80B24234 00AE7821 */ addu $t7, $a1, $t6
/* 01548 80B24238 8DF81D8C */ lw $t8, 0x1D8C($t7) ## 00001D8C
/* 0154C 80B2423C 84870032 */ lh $a3, 0x0032($a0) ## 00000032
/* 01550 80B24240 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 01554 80B24244 87020008 */ lh $v0, 0x0008($t8) ## 00000008
/* 01558 80B24248 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 0155C 80B2424C 00E21823 */ subu $v1, $a3, $v0
/* 01560 80B24250 04610004 */ bgez $v1, .L80B24264
/* 01564 80B24254 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
/* 01568 80B24258 00031823 */ subu $v1, $zero, $v1
/* 0156C 80B2425C 10000001 */ beq $zero, $zero, .L80B24264
/* 01570 80B24260 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80B24264:
/* 01574 80B24264 0061082A */ slt $at, $v1, $at
/* 01578 80B24268 54200004 */ bnel $at, $zero, .L80B2427C
/* 0157C 80B2426C 44832000 */ mtc1 $v1, $f4 ## $f4 = 0.00
/* 01580 80B24270 00021023 */ subu $v0, $zero, $v0
/* 01584 80B24274 03231823 */ subu $v1, $t9, $v1
/* 01588 80B24278 44832000 */ mtc1 $v1, $f4 ## $f4 = 0.00
.L80B2427C:
/* 0158C 80B2427C 3C0180B2 */ lui $at, %hi(D_80B24458) ## $at = 80B20000
/* 01590 80B24280 C4284458 */ lwc1 $f8, %lo(D_80B24458)($at)
/* 01594 80B24284 468021A0 */ cvt.s.w $f6, $f4
/* 01598 80B24288 46083282 */ mul.s $f10, $f6, $f8
/* 0159C 80B2428C 4600540D */ trunc.w.s $f16, $f10
/* 015A0 80B24290 44038000 */ mfc1 $v1, $f16
/* 015A4 80B24294 00000000 */ nop
/* 015A8 80B24298 00620019 */ multu $v1, $v0
/* 015AC 80B2429C 00004812 */ mflo $t1
/* 015B0 80B242A0 00E95021 */ addu $t2, $a3, $t1
/* 015B4 80B242A4 A48A0032 */ sh $t2, 0x0032($a0) ## 00000032
/* 015B8 80B242A8 848B0032 */ lh $t3, 0x0032($a0) ## 00000032
/* 015BC 80B242AC 03E00008 */ jr $ra
/* 015C0 80B242B0 A48B00B6 */ sh $t3, 0x00B6($a0) ## 000000B6

View file

@ -1,36 +0,0 @@
glabel func_80B242B4
/* 015C4 80B242B4 00067080 */ sll $t6, $a2, 2
/* 015C8 80B242B8 00AE1021 */ addu $v0, $a1, $t6
/* 015CC 80B242BC 8C4F1D8C */ lw $t7, 0x1D8C($v0) ## 00001D8C
/* 015D0 80B242C0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 015D4 80B242C4 27AB000C */ addiu $t3, $sp, 0x000C ## $t3 = FFFFFFF4
/* 015D8 80B242C8 8DF8000C */ lw $t8, 0x000C($t7) ## 0000000C
/* 015DC 80B242CC 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 015E0 80B242D0 00000000 */ nop
/* 015E4 80B242D4 468021A0 */ cvt.s.w $f6, $f4
/* 015E8 80B242D8 E7A6000C */ swc1 $f6, 0x000C($sp)
/* 015EC 80B242DC 8C591D8C */ lw $t9, 0x1D8C($v0) ## 00001D8C
/* 015F0 80B242E0 8F280010 */ lw $t0, 0x0010($t9) ## 00000010
/* 015F4 80B242E4 44884000 */ mtc1 $t0, $f8 ## $f8 = 0.00
/* 015F8 80B242E8 00000000 */ nop
/* 015FC 80B242EC 468042A0 */ cvt.s.w $f10, $f8
/* 01600 80B242F0 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 01604 80B242F4 8C491D8C */ lw $t1, 0x1D8C($v0) ## 00001D8C
/* 01608 80B242F8 8D2A0014 */ lw $t2, 0x0014($t1) ## 00000014
/* 0160C 80B242FC 448A8000 */ mtc1 $t2, $f16 ## $f16 = 0.00
/* 01610 80B24300 00000000 */ nop
/* 01614 80B24304 468084A0 */ cvt.s.w $f18, $f16
/* 01618 80B24308 E7B20014 */ swc1 $f18, 0x0014($sp)
/* 0161C 80B2430C 8D6D0000 */ lw $t5, 0x0000($t3) ## FFFFFFF4
/* 01620 80B24310 AC8D0024 */ sw $t5, 0x0024($a0) ## 00000024
/* 01624 80B24314 8D6C0004 */ lw $t4, 0x0004($t3) ## FFFFFFF8
/* 01628 80B24318 AC8C0028 */ sw $t4, 0x0028($a0) ## 00000028
/* 0162C 80B2431C 8D6D0008 */ lw $t5, 0x0008($t3) ## FFFFFFFC
/* 01630 80B24320 AC8D002C */ sw $t5, 0x002C($a0) ## 0000002C
/* 01634 80B24324 8C4E1D8C */ lw $t6, 0x1D8C($v0) ## 00001D8C
/* 01638 80B24328 85C30008 */ lh $v1, 0x0008($t6) ## 00000008
/* 0163C 80B2432C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01640 80B24330 A48300B6 */ sh $v1, 0x00B6($a0) ## 000000B6
/* 01644 80B24334 03E00008 */ jr $ra
/* 01648 80B24338 A4830032 */ sh $v1, 0x0032($a0) ## 00000032
/* 0164C 80B2433C 00000000 */ nop

View file

@ -1,39 +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_Tr_InitVars
.word 0x00CC0400, 0x00000010, 0x00C10000, 0x000002E8
.word EnTr_Init
.word EnTr_Destroy
.word EnTr_Update
.word EnTr_Draw
.word 0x06003FC8, 0x06001CDC
glabel D_80B24368
.word 0x06002BC4, 0x06000BFC
glabel D_80B24370
.word 0x060035CC, 0x060013CC
glabel D_80B24378
.word 0x060049C8, 0x060049C8
glabel D_80B24380
.word 0x06012E1C, 0x06012E1C
glabel D_80B24388
.word 0x00000000, 0x41A00000, 0xC1F00000, 0x41A00000, 0xC1A00000, 0xC1A00000, 0x41F00000
glabel D_80B243A4
.word 0x00000000, 0x41F00000, 0x00000000, 0xC1F00000, 0x41F00000, 0xC1F00000, 0x00000000
glabel D_80B243C0
.word 0xFFC800FF, 0xFF0000FF, 0xFFFFFFFF, 0x0000FFFF
glabel D_80B243D0
.word 0x060086D8, 0x060094D8, 0x060098D8
glabel D_80B243DC
.word 0x450FC000, 0x00000000, 0xC4160000
glabel D_80B243E8
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000

5
spec
View file

@ -3062,8 +3062,11 @@ endseg
beginseg
name "ovl_En_Tr"
include "build/src/overlays/actors/ovl_En_Tr/z_en_tr.o"
include "build/data/overlays/actors/z_en_tr.data.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o"
#else
include "build/data/overlays/actors/z_en_tr.reloc.o"
#endif
endseg
beginseg

View file

@ -15,15 +15,15 @@ void EnTr_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnTr_Update(Actor* thisx, GlobalContext* globalCtx);
void EnTr_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_060013CC;
extern UNK_TYPE D_06001CDC;
extern UNK_TYPE D_060035CC;
extern UNK_TYPE D_06003FC8;
extern UNK_TYPE D_060049C8;
extern UNK_TYPE D_0600C530;
extern UNK_TYPE D_06011688;
void EnTr_DoNothing(EnTr* this, GlobalContext* globalCtx);
void EnTr_ShrinkVanish(EnTr* this, GlobalContext* globalCtx);
void EnTr_WaitToReappear(EnTr* this, GlobalContext* globalCtx);
void EnTr_ChooseAction1(EnTr* this, GlobalContext* globalCtx);
void EnTr_UpdateRotation(EnTr* this, GlobalContext* globalCtx, s32 actionIndex);
void func_80B24038(EnTr* this, GlobalContext* globalCtx, s32 actionIndex);
void EnTr_SetStartPosRot(EnTr* this, GlobalContext* globalCtx, s32 actionIndex);
/*
const ActorInit En_Tr_InitVars = {
ACTOR_EN_TR,
ACTORCAT_NPC,
@ -35,45 +35,522 @@ const ActorInit En_Tr_InitVars = {
(ActorFunc)EnTr_Update,
(ActorFunc)EnTr_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B22CF0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/EnTr_Init.s")
// The first elements of these animation arrays are for Koume, the second for Kotake
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/EnTr_Destroy.s")
static AnimationHeader* unused[] = {
0x06003FC8,
0x06001CDC,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B22E6C.s")
static AnimationHeader* D_80B24368[] = {
0x06002BC4, // Turn to look over right shoulder
0x06000BFC, // Turn to look over right shoulder
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B22F1C.s")
static AnimationHeader* D_80B24370[] = {
0x060035CC, // Looking over left shoulder
0x060013CC, // Looking over right shoulder
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B22F28.s")
static AnimationHeader* D_80B24378[] = {
0x060049C8, // Floating on broom
0x060049C8, // Floating on broom
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B230D8.s")
static AnimationHeader* D_80B24380[] = {
0x06012E1C, // Casting magic
0x06012E1C, // Casting magic
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23254.s")
static f32 D_80B24388[] = { 0.0f, 20.0f, -30.0f, 20.0f, -20.0f, -20.0f, 30.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B234D4.s")
static f32 D_80B243A4[] = { 0.0f, 30.0f, 0.0f, -30.0f, 30.0f, -30.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23690.s")
// Has to be 1-dimensional to match
static Color_RGBA8 D_80B243C0[4] = {
{ 255, 200, 0, 255 },
{ 255, 0, 0, 255 },
{ 255, 255, 255, 255 },
{ 0, 0, 255, 255 },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23820.s")
static u64* sEyeTextures[] = {
0x060086D8, // Open
0x060094D8, // Half
0x060098D8, // Closed
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B238E0.s")
extern AnimationHeader D_060013CC; // Looking over right shoulder
extern AnimationHeader D_06001CDC; // Standing, broom in left hand
extern AnimationHeader D_060035CC; // Looking over left shoulder
extern AnimationHeader D_06003FC8; // Standing, broom over right shoulder
extern AnimationHeader D_060049C8; // Floating on broom
extern FlexSkeletonHeader D_0600C530;
extern FlexSkeletonHeader D_06011688;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B239A8.s")
void EnTr_SetupAction(EnTr* this, EnTrActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23A88.s")
void EnTr_Init(Actor* thisx, GlobalContext* globalCtx) {
EnTr* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/EnTr_Update.s")
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
EnTr_SetupAction(this, EnTr_DoNothing);
this->unk_2D4 = 0; // Set and not used
this->actor.child = NULL;
Actor_SetScale(&this->actor, 0.01f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23D74.s")
switch (this->actor.params) {
case TR_KOUME:
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06011688, &D_06003FC8, this->jointTable,
this->morphTable, 27);
Animation_PlayOnce(&this->skelAnime, &D_06003FC8);
this->animation = NULL;
EnTr_SetupAction(this, EnTr_ChooseAction1);
this->actionIndex = 3;
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/EnTr_Draw.s")
case TR_KOTAKE:
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600C530, &D_06001CDC, this->jointTable,
this->morphTable, 27);
Animation_PlayOnce(&this->skelAnime, &D_06001CDC);
this->animation = NULL;
EnTr_SetupAction(this, EnTr_ChooseAction1);
this->actionIndex = 2;
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23FDC.s")
default:
__assert("0", "../z_en_tr.c", 277);
break;
}
}
void EnTr_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void EnTr_CrySpellcast(EnTr* this, GlobalContext* globalCtx) {
if (this->timer == 11) {
// Both cry in the title screen cutscene, but only Kotake in the in-game cutscene
if ((this->actor.params != TR_KOUME) || (gSaveContext.sceneSetupIndex == 6)) {
Audio_PlaySoundGeneral(NA_SE_EN_TWINROBA_SHOOT_VOICE, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
}
}
if (this->timer > 0) {
this->timer--;
} else if (this->actor.child != NULL) {
this->actor.child = NULL;
}
func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG);
}
void EnTr_DoNothing(EnTr* this, GlobalContext* globalCtx) {
}
void EnTr_ChooseAction2(EnTr* this, GlobalContext* globalCtx) {
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[this->actionIndex] != NULL) {
switch (globalCtx->csCtx.npcActions[this->actionIndex]->action) {
case 4:
Actor_SetScale(&this->actor, 0.01f);
EnTr_SetupAction(this, EnTr_ShrinkVanish);
this->timer = 24;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_PO_DEAD2);
break;
case 6:
Animation_Change(&this->skelAnime, D_80B24380[this->actor.params], 1.0f, 0.0f,
Animation_GetLastFrame(D_80B24380[this->actor.params]), ANIMMODE_ONCE, -5.0f);
EnTr_SetupAction(this, EnTr_CrySpellcast);
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);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FANTOM_MASIC1);
break;
default:
func_80B24038(this, globalCtx, this->actionIndex);
EnTr_UpdateRotation(this, globalCtx, this->actionIndex);
break;
}
func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG);
}
}
}
void EnTr_FlyKidnapCutscene(EnTr* this, GlobalContext* globalCtx) {
Vec3f originalPos;
s16 actionIndex;
originalPos = this->actor.world.pos;
if (globalCtx->csCtx.state != 0) {
actionIndex = this->actionIndex;
if (globalCtx->csCtx.npcActions[actionIndex] != NULL) {
if (globalCtx->csCtx.npcActions[actionIndex]->action == 8) {
func_80B24038(this, globalCtx, actionIndex);
this->actor.world.rot.y = Math_Atan2S(this->actor.velocity.z, this->actor.velocity.x);
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.world.rot.y, 10, 0x400, 0x100);
this->actor.world.rot.y = this->actor.shape.rot.y;
} else {
EnTr_SetStartPosRot(this, globalCtx, actionIndex);
this->actor.world.pos.x += Math_SinS(this->timer) * 150.0f;
this->actor.world.pos.y += -100.0f;
this->actor.world.pos.z += Math_CosS(this->timer) * 150.0f;
this->actor.shape.rot.y = (s16)(this->timer) + 0x4000;
this->timer += 0x400;
this->actor.velocity.x = this->actor.world.pos.x - originalPos.x;
this->actor.velocity.y = this->actor.world.pos.y - originalPos.y;
this->actor.velocity.z = this->actor.world.pos.z - originalPos.z;
}
if (globalCtx->csCtx.frames < 670) {
func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG);
}
}
}
}
void func_80B23254(EnTr* this, GlobalContext* globalCtx, s32 arg2, f32 arg3, f32 scale) {
Vec3f pos;
Vec3f velocity;
Vec3f accel;
Vec3f sp58;
Color_RGBA8* primColor;
Color_RGBA8* envColor;
Vec3f cameraEye;
s16 yaw;
s16 reversePitch;
f32 sp3C;
cameraEye = ACTIVE_CAM->eye;
yaw = Math_Vec3f_Yaw(&cameraEye, &this->actor.world.pos);
reversePitch = -Math_Vec3f_Pitch(&cameraEye, &this->actor.world.pos);
accel.z = 0.0f;
accel.x = 0.0f;
sp3C = Math_SinS(yaw);
velocity.x = Math_CosS(reversePitch) * (arg3 * sp3C);
velocity.y = Math_SinS(reversePitch) * arg3;
sp3C = Math_CosS(yaw);
velocity.z = Math_CosS(reversePitch) * (arg3 * sp3C);
accel.y = 0.5f;
primColor = &D_80B243C0[2 * this->actor.params];
envColor = &D_80B243C0[2 * this->actor.params + 1];
sp58 = this->actor.world.pos;
sp58.x -= velocity.x * 10.0f;
sp58.y -= velocity.y * 10.0f;
sp58.z -= velocity.z * 10.0f;
pos.x = sp58.x + ((D_80B24388[arg2] * scale) * Math_CosS(yaw));
pos.y = sp58.y + (D_80B243A4[arg2] * scale);
pos.z = sp58.z - ((D_80B24388[arg2] * scale) * Math_SinS(yaw));
func_8002829C(globalCtx, &pos, &velocity, &accel, primColor, envColor, (s32)(800.0f * scale), (s32)(80.0f * scale));
}
void EnTr_ShrinkVanish(EnTr* this, GlobalContext* globalCtx) {
s32 temp_hi;
if (this->timer >= 17) {
this->actor.shape.rot.y = (this->actor.shape.rot.y - (this->timer * 0x28F)) + 0x3D68;
} else {
if (this->timer >= 5) {
Actor_SetScale(&this->actor, this->actor.scale.x * 0.9f);
this->actor.shape.rot.y = (this->actor.shape.rot.y - (this->timer * 0x28F)) + 0x3D68;
} else if (this->timer > 0) {
temp_hi = (this->timer * 2) % 7;
func_80B23254(this, globalCtx, temp_hi, 5.0f, 0.2f);
func_80B23254(this, globalCtx, (temp_hi + 1) % 7, 5.0f, 0.2f);
Actor_SetScale(&this->actor, this->actor.scale.x * 0.9f);
this->actor.shape.rot.y = (this->actor.shape.rot.y - (this->timer * 0x28F)) + 0x3D68;
} else {
EnTr_SetupAction(this, EnTr_WaitToReappear);
this->actor.draw = NULL;
}
}
if (this->timer == 4) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BUBLE_DOWN);
}
if (this->timer > 0) {
this->timer--;
}
}
void EnTr_Reappear(EnTr* this, GlobalContext* globalCtx) {
s32 temp_hi;
if (this->timer >= 31) {
temp_hi = (this->timer * 2) % 7;
func_80B23254(this, globalCtx, temp_hi, 5.0f, 1.0f);
func_80B23254(this, globalCtx, (temp_hi + 1) % 7, 5.0f, 1.0f);
} else if (this->timer == 30) {
this->actor.draw = EnTr_Draw;
this->actor.shape.rot.y += this->timer * 0x1A6;
} else if (this->timer > 0) {
this->actor.shape.rot.y += this->timer * 0x1A6;
Actor_SetScale(&this->actor, (this->actor.scale.x * 0.8f) + 0.002f);
} else {
EnTr_SetupAction(this, EnTr_ChooseAction2);
Actor_SetScale(&this->actor, 0.01f);
}
if (this->timer > 0) {
this->timer--;
}
func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG);
}
void EnTr_WaitToReappear(EnTr* this, GlobalContext* globalCtx) {
if (globalCtx->csCtx.state != 0) {
if ((globalCtx->csCtx.npcActions[this->actionIndex] != NULL) &&
((globalCtx->csCtx.npcActions[this->actionIndex]->action == 3) ||
(globalCtx->csCtx.npcActions[this->actionIndex]->action == 5))) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_TRANSFORM);
this->timer = 34;
EnTr_SetStartPosRot(this, globalCtx, this->actionIndex);
EnTr_SetupAction(this, EnTr_Reappear);
Animation_PlayLoop(&this->skelAnime, &D_060049C8);
this->animation = NULL;
Actor_SetScale(&this->actor, 0.003f);
}
}
}
void EnTr_TakeOff(EnTr* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(D_80B24378[this->actor.params]);
if (globalCtx->csCtx.state != 0) {
if ((globalCtx->csCtx.npcActions[this->actionIndex] != NULL) &&
(globalCtx->csCtx.npcActions[this->actionIndex]->action == 3)) {
Animation_Change(&this->skelAnime, D_80B24378[this->actor.params], 1.0f, 0.0f, lastFrame, ANIMMODE_LOOP,
-10.0f);
this->animation = NULL;
EnTr_SetupAction(this, EnTr_ChooseAction2);
}
}
}
void EnTr_TurnLookOverShoulder(EnTr* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(D_80B24368[this->actor.params]);
if (globalCtx->csCtx.state != 0) {
if ((globalCtx->csCtx.npcActions[this->actionIndex] != NULL) &&
(globalCtx->csCtx.npcActions[this->actionIndex]->action == 2)) {
Animation_Change(&this->skelAnime, D_80B24368[this->actor.params], 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE,
-4.0f);
this->animation = D_80B24370[this->actor.params];
EnTr_SetupAction(this, EnTr_TakeOff);
}
}
}
void EnTr_ChooseAction1(EnTr* this, GlobalContext* globalCtx) {
u32 frames = globalCtx->gameplayFrames;
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[this->actionIndex] != NULL) {
switch (globalCtx->csCtx.npcActions[this->actionIndex]->action) {
case 1:
EnTr_SetStartPosRot(this, globalCtx, this->actionIndex);
EnTr_SetupAction(this, EnTr_TurnLookOverShoulder);
break;
case 3:
EnTr_SetStartPosRot(this, globalCtx, this->actionIndex);
EnTr_SetupAction(this, EnTr_ChooseAction2);
Animation_PlayLoop(&this->skelAnime, &D_060049C8);
this->animation = NULL;
break;
case 4:
EnTr_SetupAction(this, EnTr_WaitToReappear);
this->actor.draw = NULL;
break;
case 7:
EnTr_SetupAction(this, EnTr_FlyKidnapCutscene);
Animation_PlayLoop(&this->skelAnime, &D_060049C8);
this->animation = NULL;
this->timer = ((this->actor.params != TR_KOUME) ? ((u8)frames << 10) + 0x8000 : (u8)frames << 10);
break;
}
}
}
}
void EnTr_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnTr* this = THIS;
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 5);
this->actionFunc(this, globalCtx);
if (SkelAnime_Update(&this->skelAnime) != 0) {
if (this->animation != NULL) {
if ((this->animation == &D_060035CC) || (this->animation == &D_060013CC)) {
if (this->actor.params != TR_KOUME) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_LAUGH2);
} else {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_LAUGH);
}
Animation_PlayLoop(&this->skelAnime, this->animation);
} else if (this->animation == &D_060049C8) {
EnTr_SetupAction(this, EnTr_ChooseAction2);
Animation_Change(&this->skelAnime, &D_060049C8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060049C8),
ANIMMODE_LOOP, -5.0f);
} else {
Animation_PlayLoop(&this->skelAnime, this->animation);
}
this->animation = NULL;
} else {
this->skelAnime.curFrame = 0.0f;
}
}
Actor_SetFocus(&this->actor, 0.0f);
if (DECR(this->blinkTimer) == 0) {
this->blinkTimer = Rand_S16Offset(60, 60);
}
this->eyeIndex = this->blinkTimer;
if (this->eyeIndex >= 3) {
this->eyeIndex = 0;
}
}
s32 EnTr_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
Vec3f src = { 2300.0f, 0.0f, -600.0f };
Vec3f dest = { 0.0f, 0.0f, 0.0f };
EnTr* this = THIS;
Actor* child = this->actor.child;
if ((child != NULL) && (limbIndex == 19)) {
Matrix_MultVec3f(&src, &dest);
dest.x -= (10.0f * Math_SinS(Camera_GetCamDirYaw(globalCtx->cameraPtrs[globalCtx->activeCamera])));
dest.z -= (10.0f * Math_CosS(Camera_GetCamDirYaw(globalCtx->cameraPtrs[globalCtx->activeCamera])));
child->world.pos = dest;
}
return 0;
}
void EnTr_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnTr* this = THIS;
if (1) {}
if ((globalCtx->csCtx.state == 0) || (globalCtx->csCtx.npcActions[this->actionIndex] == 0)) {
this->actor.shape.shadowDraw = NULL;
return;
}
this->actor.shape.shadowDraw = ActorShadow_DrawCircle;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_tr.c", 840);
func_800943C8(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIndex]));
func_8002EBCC(&this->actor, globalCtx, 0);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
EnTr_OverrideLimbDraw, NULL, this);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_tr.c", 854);
}
f32 func_80B23FDC(GlobalContext* globalCtx, s32 actionIndex) {
f32 phi_f2;
phi_f2 = func_8006F93C(globalCtx->csCtx.npcActions[actionIndex]->endFrame,
globalCtx->csCtx.npcActions[actionIndex]->startFrame, globalCtx->csCtx.frames);
phi_f2 = CLAMP_MAX(phi_f2, 1.0f);
return phi_f2;
}
#ifdef NON_MATCHING
// Major ordering issues, not making the three 0.1fs separate rodata, etc.
void func_80B24038(EnTr* this, GlobalContext* globalCtx, s32 actionIndex) {
Vec3f startPos;
Vec3f endPos;
Vec3f goalVel;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f2_2;
f32 phi_f12;
startPos.x = globalCtx->csCtx.npcActions[actionIndex]->startPos.x;
startPos.y = globalCtx->csCtx.npcActions[actionIndex]->startPos.y;
startPos.z = globalCtx->csCtx.npcActions[actionIndex]->startPos.z;
endPos.x = globalCtx->csCtx.npcActions[actionIndex]->endPos.x;
endPos.y = globalCtx->csCtx.npcActions[actionIndex]->endPos.y;
endPos.z = globalCtx->csCtx.npcActions[actionIndex]->endPos.z;
temp_f0 = func_80B23FDC(globalCtx, actionIndex);
goalVel.x = ((((endPos.x - startPos.x) * temp_f0) + startPos.x) - this->actor.world.pos.x) * 0.1f;
goalVel.y = ((((endPos.y - startPos.y) * temp_f0) + startPos.y) - this->actor.world.pos.y) * 0.1f;
goalVel.z = ((((endPos.z - startPos.z) * temp_f0) + startPos.z) - this->actor.world.pos.z) * 0.1f;
temp_f0_2 = sqrtf(SQ(goalVel.x) + SQ(goalVel.y) + SQ(goalVel.z));
phi_f12 = CLAMP(temp_f0_2, 0.0f, 20.0f);
if ((temp_f0_2 != phi_f12) && (temp_f0_2 != 0.0f)) {
temp_f2_2 = phi_f12 / temp_f0_2;
goalVel.x *= temp_f2_2;
goalVel.y *= temp_f2_2;
goalVel.z *= temp_f2_2;
}
Math_StepToF(&this->actor.velocity.x, goalVel.x, 1.0f);
Math_StepToF(&this->actor.velocity.y, goalVel.y, 1.0f);
Math_StepToF(&this->actor.velocity.z, goalVel.z, 1.0f);
func_8002D7EC(&this->actor);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B24038.s")
#endif
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B24230.s")
void EnTr_UpdateRotation(EnTr* this, GlobalContext* globalCtx, s32 actionIndex) {
s16 rotY;
s32 rotDiff;
s32 rotSign;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B242B4.s")
rotY = globalCtx->csCtx.npcActions[actionIndex]->rot.y;
rotDiff = this->actor.world.rot.y - rotY;
if (rotDiff < 0) {
rotDiff = 0 - rotDiff;
rotSign = 1;
} else {
rotSign = -1;
}
if (rotDiff >= 0x8000) {
rotSign = 0 - rotSign;
rotDiff = 0x10000 - rotDiff;
}
rotDiff *= 0.1f;
this->actor.world.rot.y += rotDiff * rotSign;
this->actor.shape.rot.y = this->actor.world.rot.y;
}
void EnTr_SetStartPosRot(EnTr* this, GlobalContext* globalCtx, s32 actionIndex) {
Vec3f startPos;
startPos.x = globalCtx->csCtx.npcActions[actionIndex]->startPos.x;
startPos.y = globalCtx->csCtx.npcActions[actionIndex]->startPos.y;
startPos.z = globalCtx->csCtx.npcActions[actionIndex]->startPos.z;
this->actor.world.pos = startPos;
this->actor.world.rot.y = this->actor.shape.rot.y = globalCtx->csCtx.npcActions[actionIndex]->rot.y;
}

View file

@ -6,11 +6,27 @@
struct EnTr;
typedef void (*EnTrActionFunc)(struct EnTr*, GlobalContext*);
typedef struct EnTr {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x19C];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[27];
/* 0x0232 */ Vec3s morphTable[27];
/* 0x02D4 */ s16 unk_2D4;
/* 0x02D6 */ u16 timer; // Also used as an angle
/* 0x02D8 */ s16 actionIndex;
/* 0x02DC */ EnTrActionFunc actionFunc;
/* 0x02E0 */ s16 eyeIndex;
/* 0x02E2 */ s16 blinkTimer;
/* 0x02E4 */ AnimationHeader* animation;
} EnTr; // size = 0x02E8
extern const ActorInit En_Tr_InitVars;
typedef enum {
/* 0 */ TR_KOUME,
/* 1 */ TR_KOTAKE
} TwinrovaType;
#endif