1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00

En_Daiku_Kakariko OK (Kakariko Village Carpenters) (#635)

* mostly done, one function left

* daiku_kakariko OK

* should be ready for pr

* removed unused asm

* should build OK now

* builds OK now

* all of fig's suggestions resolved
This commit is contained in:
Zelllll 2021-01-31 17:14:47 -06:00 committed by GitHub
parent 8137c016a2
commit da993894d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 489 additions and 1349 deletions

View file

@ -1,12 +0,0 @@
glabel EnDaikuKakariko_Destroy
/* 00404 809E4724 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00408 809E4728 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 0040C 809E472C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00410 809E4730 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00414 809E4734 0C0170EB */ jal Collider_DestroyCylinder
/* 00418 809E4738 24C50194 */ addiu $a1, $a2, 0x0194 ## $a1 = 00000194
/* 0041C 809E473C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00420 809E4740 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00424 809E4744 03E00008 */ jr $ra
/* 00428 809E4748 00000000 */ nop

View file

@ -1,99 +0,0 @@
.rdata
glabel D_809E55E0
.asciz "../z_en_daiku_kakariko.c"
.balign 4
glabel D_809E55FC
.asciz "../z_en_daiku_kakariko.c"
.balign 4
.text
glabel EnDaikuKakariko_Draw
/* 01020 809E5340 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 01024 809E5344 AFBF0024 */ sw $ra, 0x0024($sp)
/* 01028 809E5348 AFA40058 */ sw $a0, 0x0058($sp)
/* 0102C 809E534C AFA5005C */ sw $a1, 0x005C($sp)
/* 01030 809E5350 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01034 809E5354 3C06809E */ lui $a2, %hi(D_809E55E0) ## $a2 = 809E0000
/* 01038 809E5358 24C655E0 */ addiu $a2, $a2, %lo(D_809E55E0) ## $a2 = 809E55E0
/* 0103C 809E535C 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8
/* 01040 809E5360 24070464 */ addiu $a3, $zero, 0x0464 ## $a3 = 00000464
/* 01044 809E5364 0C031AB1 */ jal Graph_OpenDisps
/* 01048 809E5368 AFA50050 */ sw $a1, 0x0050($sp)
/* 0104C 809E536C 8FAF005C */ lw $t7, 0x005C($sp)
/* 01050 809E5370 0C024F46 */ jal func_80093D18
/* 01054 809E5374 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 01058 809E5378 8FA90058 */ lw $t1, 0x0058($sp)
/* 0105C 809E537C 8FA80050 */ lw $t0, 0x0050($sp)
/* 01060 809E5380 3C19FB00 */ lui $t9, 0xFB00 ## $t9 = FB000000
/* 01064 809E5384 8522001C */ lh $v0, 0x001C($t1) ## 0000001C
/* 01068 809E5388 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0106C 809E538C 30420003 */ andi $v0, $v0, 0x0003 ## $v0 = 00000000
/* 01070 809E5390 14400009 */ bne $v0, $zero, .L809E53B8
/* 01074 809E5394 00000000 */ nop
/* 01078 809E5398 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 0107C 809E539C 3C0AAA0A */ lui $t2, 0xAA0A ## $t2 = AA0A0000
/* 01080 809E53A0 354A46FF */ ori $t2, $t2, 0x46FF ## $t2 = AA0A46FF
/* 01084 809E53A4 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 01088 809E53A8 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 0108C 809E53AC AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 01090 809E53B0 10000020 */ beq $zero, $zero, .L809E5434
/* 01094 809E53B4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
.L809E53B8:
/* 01098 809E53B8 14410009 */ bne $v0, $at, .L809E53E0
/* 0109C 809E53BC 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000
/* 010A0 809E53C0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 010A4 809E53C4 3C0DAAC8 */ lui $t5, 0xAAC8 ## $t5 = AAC80000
/* 010A8 809E53C8 35ADFFFF */ ori $t5, $t5, 0xFFFF ## $t5 = AAC8FFFF
/* 010AC 809E53CC 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 010B0 809E53D0 AD0B02C0 */ sw $t3, 0x02C0($t0) ## 000002C0
/* 010B4 809E53D4 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 010B8 809E53D8 10000016 */ beq $zero, $zero, .L809E5434
/* 010BC 809E53DC AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
.L809E53E0:
/* 010C0 809E53E0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 010C4 809E53E4 14410009 */ bne $v0, $at, .L809E540C
/* 010C8 809E53E8 3C0FFB00 */ lui $t7, 0xFB00 ## $t7 = FB000000
/* 010CC 809E53EC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 010D0 809E53F0 3C1800E6 */ lui $t8, 0x00E6 ## $t8 = 00E60000
/* 010D4 809E53F4 371846FF */ ori $t8, $t8, 0x46FF ## $t8 = 00E646FF
/* 010D8 809E53F8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 010DC 809E53FC AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 010E0 809E5400 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 010E4 809E5404 1000000B */ beq $zero, $zero, .L809E5434
/* 010E8 809E5408 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
.L809E540C:
/* 010EC 809E540C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 010F0 809E5410 14410008 */ bne $v0, $at, .L809E5434
/* 010F4 809E5414 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
/* 010F8 809E5418 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 010FC 809E541C 3C0BC800 */ lui $t3, 0xC800 ## $t3 = C8000000
/* 01100 809E5420 356B96FF */ ori $t3, $t3, 0x96FF ## $t3 = C80096FF
/* 01104 809E5424 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 01108 809E5428 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 0110C 809E542C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 01110 809E5430 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
.L809E5434:
/* 01114 809E5434 8D250150 */ lw $a1, 0x0150($t1) ## 00000150
/* 01118 809E5438 8D26016C */ lw $a2, 0x016C($t1) ## 0000016C
/* 0111C 809E543C 9127014E */ lbu $a3, 0x014E($t1) ## 0000014E
/* 01120 809E5440 3C0C809E */ lui $t4, %hi(func_809E50B4) ## $t4 = 809E0000
/* 01124 809E5444 3C0D809E */ lui $t5, %hi(func_809E5288) ## $t5 = 809E0000
/* 01128 809E5448 25AD5288 */ addiu $t5, $t5, %lo(func_809E5288) ## $t5 = 809E5288
/* 0112C 809E544C 258C50B4 */ addiu $t4, $t4, %lo(func_809E50B4) ## $t4 = 809E50B4
/* 01130 809E5450 AFAC0010 */ sw $t4, 0x0010($sp)
/* 01134 809E5454 AFAD0014 */ sw $t5, 0x0014($sp)
/* 01138 809E5458 AFA90018 */ sw $t1, 0x0018($sp)
/* 0113C 809E545C 0C0286B2 */ jal SkelAnime_DrawFlexOpa
/* 01140 809E5460 8FA4005C */ lw $a0, 0x005C($sp)
/* 01144 809E5464 8FAE005C */ lw $t6, 0x005C($sp)
/* 01148 809E5468 3C06809E */ lui $a2, %hi(D_809E55FC) ## $a2 = 809E0000
/* 0114C 809E546C 24C655FC */ addiu $a2, $a2, %lo(D_809E55FC) ## $a2 = 809E55FC
/* 01150 809E5470 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8
/* 01154 809E5474 2407047F */ addiu $a3, $zero, 0x047F ## $a3 = 0000047F
/* 01158 809E5478 0C031AD5 */ jal Graph_CloseDisps
/* 0115C 809E547C 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
/* 01160 809E5480 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01164 809E5484 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 01168 809E5488 03E00008 */ jr $ra
/* 0116C 809E548C 00000000 */ nop

View file

@ -1,238 +0,0 @@
glabel EnDaikuKakariko_Init
/* 000B0 809E43D0 3C038016 */ lui $v1, %hi(gSaveContext)
/* 000B4 809E43D4 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 000B8 809E43D8 8C6E0004 */ lw $t6, 0x0004($v1) ## 8015E664
/* 000BC 809E43DC 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 000C0 809E43E0 AFB00028 */ sw $s0, 0x0028($sp)
/* 000C4 809E43E4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 000C8 809E43E8 AFBF002C */ sw $ra, 0x002C($sp)
/* 000CC 809E43EC 11C00003 */ beq $t6, $zero, .L809E43FC
/* 000D0 809E43F0 AFA5004C */ sw $a1, 0x004C($sp)
/* 000D4 809E43F4 10000002 */ beq $zero, $zero, .L809E4400
/* 000D8 809E43F8 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
.L809E43FC:
/* 000DC 809E43FC 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011
.L809E4400:
/* 000E0 809E4400 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 000E4 809E4404 54410025 */ bnel $v0, $at, .L809E449C
/* 000E8 809E4408 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
/* 000EC 809E440C 8FAF004C */ lw $t7, 0x004C($sp)
/* 000F0 809E4410 2401002A */ addiu $at, $zero, 0x002A ## $at = 0000002A
/* 000F4 809E4414 85E200A4 */ lh $v0, 0x00A4($t7) ## 000000A4
/* 000F8 809E4418 10410014 */ beq $v0, $at, .L809E446C
/* 000FC 809E441C 24010030 */ addiu $at, $zero, 0x0030 ## $at = 00000030
/* 00100 809E4420 1041001A */ beq $v0, $at, .L809E448C
/* 00104 809E4424 24010052 */ addiu $at, $zero, 0x0052 ## $at = 00000052
/* 00108 809E4428 5441001C */ bnel $v0, $at, .L809E449C
/* 0010C 809E442C 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
/* 00110 809E4430 8C780010 */ lw $t8, 0x0010($v1) ## 8015E670
/* 00114 809E4434 57000019 */ bnel $t8, $zero, .L809E449C
/* 00118 809E4438 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
/* 0011C 809E443C 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 00120 809E4440 96190200 */ lhu $t9, 0x0200($s0) ## 00000200
/* 00124 809E4444 3C0D809E */ lui $t5, %hi(D_809E5568) ## $t5 = 809E0000
/* 00128 809E4448 314B0003 */ andi $t3, $t2, 0x0003 ## $t3 = 00000000
/* 0012C 809E444C 000B6040 */ sll $t4, $t3, 1
/* 00130 809E4450 37290001 */ ori $t1, $t9, 0x0001 ## $t1 = 00000001
/* 00134 809E4454 A6090200 */ sh $t1, 0x0200($s0) ## 00000200
/* 00138 809E4458 01AC6821 */ addu $t5, $t5, $t4
/* 0013C 809E445C 95AD5568 */ lhu $t5, %lo(D_809E5568)($t5)
/* 00140 809E4460 012D7025 */ or $t6, $t1, $t5 ## $t6 = 809E0001
/* 00144 809E4464 1000000C */ beq $zero, $zero, .L809E4498
/* 00148 809E4468 A60E0200 */ sh $t6, 0x0200($s0) ## 00000200
.L809E446C:
/* 0014C 809E446C 8C6F0010 */ lw $t7, 0x0010($v1) ## 8015E670
/* 00150 809E4470 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00154 809E4474 55E10009 */ bnel $t7, $at, .L809E449C
/* 00158 809E4478 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
/* 0015C 809E447C 96180200 */ lhu $t8, 0x0200($s0) ## 00000200
/* 00160 809E4480 37190002 */ ori $t9, $t8, 0x0002 ## $t9 = 00000002
/* 00164 809E4484 10000004 */ beq $zero, $zero, .L809E4498
/* 00168 809E4488 A6190200 */ sh $t9, 0x0200($s0) ## 00000200
.L809E448C:
/* 0016C 809E448C 96080200 */ lhu $t0, 0x0200($s0) ## 00000200
/* 00170 809E4490 350A0004 */ ori $t2, $t0, 0x0004 ## $t2 = 00000004
/* 00174 809E4494 A60A0200 */ sh $t2, 0x0200($s0) ## 00000200
.L809E4498:
/* 00178 809E4498 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
.L809E449C:
/* 0017C 809E449C 316C0007 */ andi $t4, $t3, 0x0007 ## $t4 = 00000000
/* 00180 809E44A0 55800006 */ bnel $t4, $zero, .L809E44BC
/* 00184 809E44A4 8C690010 */ lw $t1, 0x0010($v1) ## 8015E670
/* 00188 809E44A8 0C00B55C */ jal Actor_Kill
/* 0018C 809E44AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00190 809E44B0 3C038016 */ lui $v1, %hi(gSaveContext)
/* 00194 809E44B4 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00198 809E44B8 8C690010 */ lw $t1, 0x0010($v1) ## 8015E670
.L809E44BC:
/* 0019C 809E44BC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 001A0 809E44C0 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 001A4 809E44C4 15210004 */ bne $t1, $at, .L809E44D8
/* 001A8 809E44C8 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 001AC 809E44CC 960D0200 */ lhu $t5, 0x0200($s0) ## 00000200
/* 001B0 809E44D0 35AE0008 */ ori $t6, $t5, 0x0008 ## $t6 = 00000008
/* 001B4 809E44D4 A60E0200 */ sh $t6, 0x0200($s0) ## 00000200
.L809E44D8:
/* 001B8 809E44D8 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle)
/* 001BC 809E44DC 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle)
/* 001C0 809E44E0 0C00AC78 */ jal ActorShape_Init
/* 001C4 809E44E4 3C074220 */ lui $a3, 0x4220 ## $a3 = 42200000
/* 001C8 809E44E8 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 001CC 809E44EC 3C060600 */ lui $a2, %hi(D_06007958) ## $a2 = 06000000
/* 001D0 809E44F0 260F022C */ addiu $t7, $s0, 0x022C ## $t7 = 0000022C
/* 001D4 809E44F4 26180292 */ addiu $t8, $s0, 0x0292 ## $t8 = 00000292
/* 001D8 809E44F8 24190011 */ addiu $t9, $zero, 0x0011 ## $t9 = 00000011
/* 001DC 809E44FC AFB90018 */ sw $t9, 0x0018($sp)
/* 001E0 809E4500 AFB80014 */ sw $t8, 0x0014($sp)
/* 001E4 809E4504 AFAF0010 */ sw $t7, 0x0010($sp)
/* 001E8 809E4508 24C67958 */ addiu $a2, $a2, %lo(D_06007958) ## $a2 = 06007958
/* 001EC 809E450C AFA50034 */ sw $a1, 0x0034($sp)
/* 001F0 809E4510 8FA4004C */ lw $a0, 0x004C($sp)
/* 001F4 809E4514 0C0291BE */ jal SkelAnime_InitFlex
/* 001F8 809E4518 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 001FC 809E451C 26050194 */ addiu $a1, $s0, 0x0194 ## $a1 = 00000194
/* 00200 809E4520 AFA50030 */ sw $a1, 0x0030($sp)
/* 00204 809E4524 0C0170D9 */ jal Collider_InitCylinder
/* 00208 809E4528 8FA4004C */ lw $a0, 0x004C($sp)
/* 0020C 809E452C 3C07809E */ lui $a3, %hi(D_809E54B0) ## $a3 = 809E0000
/* 00210 809E4530 8FA50030 */ lw $a1, 0x0030($sp)
/* 00214 809E4534 24E754B0 */ addiu $a3, $a3, %lo(D_809E54B0) ## $a3 = 809E54B0
/* 00218 809E4538 8FA4004C */ lw $a0, 0x004C($sp)
/* 0021C 809E453C 0C01712B */ jal Collider_SetCylinder
/* 00220 809E4540 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00224 809E4544 3C05809E */ lui $a1, %hi(D_809E54E8) ## $a1 = 809E0000
/* 00228 809E4548 3C06809E */ lui $a2, %hi(D_809E54DC) ## $a2 = 809E0000
/* 0022C 809E454C 24C654DC */ addiu $a2, $a2, %lo(D_809E54DC) ## $a2 = 809E54DC
/* 00230 809E4550 24A554E8 */ addiu $a1, $a1, %lo(D_809E54E8) ## $a1 = 809E54E8
/* 00234 809E4554 0C0187BF */ jal CollisionCheck_SetInfo2
/* 00238 809E4558 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 0023C 809E455C 3C03809E */ lui $v1, %hi(D_809E5508) ## $v1 = 809E0000
/* 00240 809E4560 24635508 */ addiu $v1, $v1, %lo(D_809E5508) ## $v1 = 809E5508
/* 00244 809E4564 0C028800 */ jal Animation_GetLastFrame
/* 00248 809E4568 8C640000 */ lw $a0, 0x0000($v1) ## 809E5508
/* 0024C 809E456C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00250 809E4570 3C03809E */ lui $v1, %hi(D_809E5508) ## $v1 = 809E0000
/* 00254 809E4574 24635508 */ addiu $v1, $v1, %lo(D_809E5508) ## $v1 = 809E5508
/* 00258 809E4578 468021A0 */ cvt.s.w $f6, $f4
/* 0025C 809E457C 90680008 */ lbu $t0, 0x0008($v1) ## 809E5510
/* 00260 809E4580 C468000C */ lwc1 $f8, 0x000C($v1) ## 809E5514
/* 00264 809E4584 8C650000 */ lw $a1, 0x0000($v1) ## 809E5508
/* 00268 809E4588 8FA40034 */ lw $a0, 0x0034($sp)
/* 0026C 809E458C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00270 809E4590 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00274 809E4594 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00278 809E4598 AFA80014 */ sw $t0, 0x0014($sp)
/* 0027C 809E459C 0C029468 */ jal Animation_Change
/* 00280 809E45A0 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00284 809E45A4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00288 809E45A8 240A0004 */ addiu $t2, $zero, 0x0004 ## $t2 = 00000004
/* 0028C 809E45AC AFAA0014 */ sw $t2, 0x0014($sp)
/* 00290 809E45B0 44060000 */ mfc1 $a2, $f0
/* 00294 809E45B4 44070000 */ mfc1 $a3, $f0
/* 00298 809E45B8 8FA4004C */ lw $a0, 0x004C($sp)
/* 0029C 809E45BC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 002A0 809E45C0 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 002A4 809E45C4 E7A00010 */ swc1 $f0, 0x0010($sp)
/* 002A8 809E45C8 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 002AC 809E45CC 44818000 */ mtc1 $at, $f16 ## $f16 = 3.00
/* 002B0 809E45D0 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 002B4 809E45D4 3C014496 */ lui $at, 0x4496 ## $at = 44960000
/* 002B8 809E45D8 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 002BC 809E45DC 44819000 */ mtc1 $at, $f18 ## $f18 = 1200.00
/* 002C0 809E45E0 240B0006 */ addiu $t3, $zero, 0x0006 ## $t3 = 00000006
/* 002C4 809E45E4 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF
/* 002C8 809E45E8 30490040 */ andi $t1, $v0, 0x0040 ## $t1 = 00000000
/* 002CC 809E45EC A20B001F */ sb $t3, 0x001F($s0) ## 0000001F
/* 002D0 809E45F0 AE0C01EC */ sw $t4, 0x01EC($s0) ## 000001EC
/* 002D4 809E45F4 E61001E8 */ swc1 $f16, 0x01E8($s0) ## 000001E8
/* 002D8 809E45F8 E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C
/* 002DC 809E45FC 11200005 */ beq $t1, $zero, .L809E4614
/* 002E0 809E4600 E61200F4 */ swc1 $f18, 0x00F4($s0) ## 000000F4
/* 002E4 809E4604 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 002E8 809E4608 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 002EC 809E460C 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 002F0 809E4610 E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C
.L809E4614:
/* 002F4 809E4614 304D0010 */ andi $t5, $v0, 0x0010 ## $t5 = 00000000
/* 002F8 809E4618 11A00009 */ beq $t5, $zero, .L809E4640
/* 002FC 809E461C 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 00300 809E4620 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00304 809E4624 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00308 809E4628 0C2790C8 */ jal func_809E4320
/* 0030C 809E462C 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00310 809E4630 3C0E809E */ lui $t6, %hi(func_809E4BC4) ## $t6 = 809E0000
/* 00314 809E4634 25CE4BC4 */ addiu $t6, $t6, %lo(func_809E4BC4) ## $t6 = 809E4BC4
/* 00318 809E4638 10000035 */ beq $zero, $zero, .L809E4710
/* 0031C 809E463C AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
.L809E4640:
/* 00320 809E4640 11E0001F */ beq $t7, $zero, .L809E46C0
/* 00324 809E4644 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00328 809E4648 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 0032C 809E464C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00330 809E4650 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00334 809E4654 30420003 */ andi $v0, $v0, 0x0003 ## $v0 = 00000000
/* 00338 809E4658 10410004 */ beq $v0, $at, .L809E466C
/* 0033C 809E465C 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 00340 809E4660 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00344 809E4664 14410007 */ bne $v0, $at, .L809E4684
/* 00348 809E4668 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
.L809E466C:
/* 0034C 809E466C 0C2790C8 */ jal func_809E4320
/* 00350 809E4670 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00354 809E4674 96180200 */ lhu $t8, 0x0200($s0) ## 00000200
/* 00358 809E4678 37190800 */ ori $t9, $t8, 0x0800 ## $t9 = 00000800
/* 0035C 809E467C 10000004 */ beq $zero, $zero, .L809E4690
/* 00360 809E4680 A6190200 */ sh $t9, 0x0200($s0) ## 00000200
.L809E4684:
/* 00364 809E4684 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00368 809E4688 0C2790C8 */ jal func_809E4320
/* 0036C 809E468C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
.L809E4690:
/* 00370 809E4690 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00374 809E4694 00000000 */ nop
/* 00378 809E4698 C606015C */ lwc1 $f6, 0x015C($s0) ## 0000015C
/* 0037C 809E469C 46060202 */ mul.s $f8, $f0, $f6
/* 00380 809E46A0 4600428D */ trunc.w.s $f10, $f8
/* 00384 809E46A4 440A5000 */ mfc1 $t2, $f10
/* 00388 809E46A8 00000000 */ nop
/* 0038C 809E46AC 448A8000 */ mtc1 $t2, $f16 ## $f16 = 0.00
/* 00390 809E46B0 00000000 */ nop
/* 00394 809E46B4 468084A0 */ cvt.s.w $f18, $f16
/* 00398 809E46B8 1000000F */ beq $zero, $zero, .L809E46F8
/* 0039C 809E46BC E6120164 */ swc1 $f18, 0x0164($s0) ## 00000164
.L809E46C0:
/* 003A0 809E46C0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 003A4 809E46C4 0C2790C8 */ jal func_809E4320
/* 003A8 809E46C8 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 003AC 809E46CC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 003B0 809E46D0 00000000 */ nop
/* 003B4 809E46D4 C604015C */ lwc1 $f4, 0x015C($s0) ## 0000015C
/* 003B8 809E46D8 46040182 */ mul.s $f6, $f0, $f4
/* 003BC 809E46DC 4600320D */ trunc.w.s $f8, $f6
/* 003C0 809E46E0 440C4000 */ mfc1 $t4, $f8
/* 003C4 809E46E4 00000000 */ nop
/* 003C8 809E46E8 448C5000 */ mtc1 $t4, $f10 ## $f10 = 0.00
/* 003CC 809E46EC 00000000 */ nop
/* 003D0 809E46F0 46805420 */ cvt.s.w $f16, $f10
/* 003D4 809E46F4 E6100164 */ swc1 $f16, 0x0164($s0) ## 00000164
.L809E46F8:
/* 003D8 809E46F8 96090200 */ lhu $t1, 0x0200($s0) ## 00000200
/* 003DC 809E46FC 3C0E809E */ lui $t6, %hi(func_809E4A7C) ## $t6 = 809E0000
/* 003E0 809E4700 25CE4A7C */ addiu $t6, $t6, %lo(func_809E4A7C) ## $t6 = 809E4A7C
/* 003E4 809E4704 352D0100 */ ori $t5, $t1, 0x0100 ## $t5 = 00000100
/* 003E8 809E4708 A60D0200 */ sh $t5, 0x0200($s0) ## 00000200
/* 003EC 809E470C AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
.L809E4710:
/* 003F0 809E4710 8FBF002C */ lw $ra, 0x002C($sp)
/* 003F4 809E4714 8FB00028 */ lw $s0, 0x0028($sp)
/* 003F8 809E4718 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 003FC 809E471C 03E00008 */ jr $ra
/* 00400 809E4720 00000000 */ nop

View file

@ -1,104 +0,0 @@
glabel EnDaikuKakariko_Update
/* 00C20 809E4F40 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00C24 809E4F44 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00C28 809E4F48 AFB00020 */ sw $s0, 0x0020($sp)
/* 00C2C 809E4F4C AFA50044 */ sw $a1, 0x0044($sp)
/* 00C30 809E4F50 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00C34 809E4F54 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00C38 809E4F58 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00C3C 809E4F5C AFAF0034 */ sw $t7, 0x0034($sp)
/* 00C40 809E4F60 8C9801EC */ lw $t8, 0x01EC($a0) ## 000001EC
/* 00C44 809E4F64 5701000E */ bnel $t8, $at, .L809E4FA0
/* 00C48 809E4F68 26060194 */ addiu $a2, $s0, 0x0194 ## $a2 = 00000194
/* 00C4C 809E4F6C C4840164 */ lwc1 $f4, 0x0164($a0) ## 00000164
/* 00C50 809E4F70 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00C54 809E4F74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C58 809E4F78 4600218D */ trunc.w.s $f6, $f4
/* 00C5C 809E4F7C 44023000 */ mfc1 $v0, $f6
/* 00C60 809E4F80 00000000 */ nop
/* 00C64 809E4F84 10410003 */ beq $v0, $at, .L809E4F94
/* 00C68 809E4F88 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00C6C 809E4F8C 54410004 */ bnel $v0, $at, .L809E4FA0
/* 00C70 809E4F90 26060194 */ addiu $a2, $s0, 0x0194 ## $a2 = 00000194
.L809E4F94:
/* 00C74 809E4F94 0C00BE0A */ jal Audio_PlayActorSound2
/* 00C78 809E4F98 240538B8 */ addiu $a1, $zero, 0x38B8 ## $a1 = 000038B8
/* 00C7C 809E4F9C 26060194 */ addiu $a2, $s0, 0x0194 ## $a2 = 00000194
.L809E4FA0:
/* 00C80 809E4FA0 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000194
/* 00C84 809E4FA4 AFA6002C */ sw $a2, 0x002C($sp)
/* 00C88 809E4FA8 0C0189B7 */ jal Collider_UpdateCylinder
/* 00C8C 809E4FAC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C90 809E4FB0 96080200 */ lhu $t0, 0x0200($s0) ## 00000200
/* 00C94 809E4FB4 8FA6002C */ lw $a2, 0x002C($sp)
/* 00C98 809E4FB8 240E003F */ addiu $t6, $zero, 0x003F ## $t6 = 0000003F
/* 00C9C 809E4FBC 31090004 */ andi $t1, $t0, 0x0004 ## $t1 = 00000000
/* 00CA0 809E4FC0 11200008 */ beq $t1, $zero, .L809E4FE4
/* 00CA4 809E4FC4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00CA8 809E4FC8 860A01DA */ lh $t2, 0x01DA($s0) ## 000001DA
/* 00CAC 809E4FCC 860C01DE */ lh $t4, 0x01DE($s0) ## 000001DE
/* 00CB0 809E4FD0 A60E01D4 */ sh $t6, 0x01D4($s0) ## 000001D4
/* 00CB4 809E4FD4 254BFFE5 */ addiu $t3, $t2, 0xFFE5 ## $t3 = FFFFFFE5
/* 00CB8 809E4FD8 258DFFE5 */ addiu $t5, $t4, 0xFFE5 ## $t5 = FFFFFFE5
/* 00CBC 809E4FDC A60B01DA */ sh $t3, 0x01DA($s0) ## 000001DA
/* 00CC0 809E4FE0 A60D01DE */ sh $t5, 0x01DE($s0) ## 000001DE
.L809E4FE4:
/* 00CC4 809E4FE4 8FA40044 */ lw $a0, 0x0044($sp)
/* 00CC8 809E4FE8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00CCC 809E4FEC 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOC
/* 00CD0 809E4FF0 00812821 */ addu $a1, $a0, $at
/* 00CD4 809E4FF4 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 00CD8 809E4FF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CDC 809E4FFC 8FA50044 */ lw $a1, 0x0044($sp)
/* 00CE0 809E5000 0320F809 */ jalr $ra, $t9
/* 00CE4 809E5004 00000000 */ nop
/* 00CE8 809E5008 8FA30034 */ lw $v1, 0x0034($sp)
/* 00CEC 809E500C 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 00CF0 809E5010 2418170C */ addiu $t8, $zero, 0x170C ## $t8 = 0000170C
/* 00CF4 809E5014 C4680038 */ lwc1 $f8, 0x0038($v1) ## 00000038
/* 00CF8 809E5018 304F0100 */ andi $t7, $v0, 0x0100 ## $t7 = 00000000
/* 00CFC 809E501C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D00 809E5020 E608021C */ swc1 $f8, 0x021C($s0) ## 0000021C
/* 00D04 809E5024 C46A003C */ lwc1 $f10, 0x003C($v1) ## 0000003C
/* 00D08 809E5028 26050204 */ addiu $a1, $s0, 0x0204 ## $a1 = 00000204
/* 00D0C 809E502C 34481000 */ ori $t0, $v0, 0x1000 ## $t0 = 00001000
/* 00D10 809E5030 E60A0220 */ swc1 $f10, 0x0220($s0) ## 00000220
/* 00D14 809E5034 C4700040 */ lwc1 $f16, 0x0040($v1) ## 00000040
/* 00D18 809E5038 30490200 */ andi $t1, $v0, 0x0200 ## $t1 = 00000000
/* 00D1C 809E503C 11E00008 */ beq $t7, $zero, .L809E5060
/* 00D20 809E5040 E6100224 */ swc1 $f16, 0x0224($s0) ## 00000224
/* 00D24 809E5044 A6180302 */ sh $t8, 0x0302($s0) ## 00000302
/* 00D28 809E5048 A6080200 */ sh $t0, 0x0200($s0) ## 00000200
/* 00D2C 809E504C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00D30 809E5050 0C00D285 */ jal func_80034A14
/* 00D34 809E5054 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 00D38 809E5058 1000000C */ beq $zero, $zero, .L809E508C
/* 00D3C 809E505C 86050302 */ lh $a1, 0x0302($s0) ## 00000302
.L809E5060:
/* 00D40 809E5060 11200009 */ beq $t1, $zero, .L809E5088
/* 00D44 809E5064 240A170C */ addiu $t2, $zero, 0x170C ## $t2 = 0000170C
/* 00D48 809E5068 344B1000 */ ori $t3, $v0, 0x1000 ## $t3 = 00001000
/* 00D4C 809E506C A60A0302 */ sh $t2, 0x0302($s0) ## 00000302
/* 00D50 809E5070 A60B0200 */ sh $t3, 0x0200($s0) ## 00000200
/* 00D54 809E5074 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D58 809E5078 26050204 */ addiu $a1, $s0, 0x0204 ## $a1 = 00000204
/* 00D5C 809E507C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00D60 809E5080 0C00D285 */ jal func_80034A14
/* 00D64 809E5084 24070004 */ addiu $a3, $zero, 0x0004 ## $a3 = 00000004
.L809E5088:
/* 00D68 809E5088 86050302 */ lh $a1, 0x0302($s0) ## 00000302
.L809E508C:
/* 00D6C 809E508C AFA00010 */ sw $zero, 0x0010($sp)
/* 00D70 809E5090 260402FC */ addiu $a0, $s0, 0x02FC ## $a0 = 000002FC
/* 00D74 809E5094 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 00D78 809E5098 0C01E1A7 */ jal Math_SmoothStepToS
/* 00D7C 809E509C 2407071C */ addiu $a3, $zero, 0x071C ## $a3 = 0000071C
/* 00D80 809E50A0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00D84 809E50A4 8FB00020 */ lw $s0, 0x0020($sp)
/* 00D88 809E50A8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00D8C 809E50AC 03E00008 */ jr $ra
/* 00D90 809E50B0 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_809E4320
/* 00000 809E4320 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00004 809E4324 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00008 809E4328 AFA40038 */ sw $a0, 0x0038($sp)
/* 0000C 809E432C AFA60040 */ sw $a2, 0x0040($sp)
/* 00010 809E4330 8CC20000 */ lw $v0, 0x0000($a2) ## 00000000
/* 00014 809E4334 3C18809E */ lui $t8, %hi(D_809E5508) ## $t8 = 809E0000
/* 00018 809E4338 27185508 */ addiu $t8, $t8, %lo(D_809E5508) ## $t8 = 809E5508
/* 0001C 809E433C 04400003 */ bltz $v0, .L809E434C
/* 00020 809E4340 00057900 */ sll $t7, $a1, 4
/* 00024 809E4344 14A20004 */ bne $a1, $v0, .L809E4358
/* 00028 809E4348 0005C900 */ sll $t9, $a1, 4
.L809E434C:
/* 0002C 809E434C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00030 809E4350 10000005 */ beq $zero, $zero, .L809E4368
/* 00034 809E4354 01F81821 */ addu $v1, $t7, $t8
.L809E4358:
/* 00038 809E4358 3C08809E */ lui $t0, %hi(D_809E5508) ## $t0 = 809E0000
/* 0003C 809E435C 25085508 */ addiu $t0, $t0, %lo(D_809E5508) ## $t0 = 809E5508
/* 00040 809E4360 03281821 */ addu $v1, $t9, $t0
/* 00044 809E4364 C460000C */ lwc1 $f0, 0x000C($v1) ## 0000000C
.L809E4368:
/* 00048 809E4368 8C640000 */ lw $a0, 0x0000($v1) ## 00000000
/* 0004C 809E436C AFA3002C */ sw $v1, 0x002C($sp)
/* 00050 809E4370 AFA5003C */ sw $a1, 0x003C($sp)
/* 00054 809E4374 0C028800 */ jal Animation_GetLastFrame
/* 00058 809E4378 E7A00034 */ swc1 $f0, 0x0034($sp)
/* 0005C 809E437C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00060 809E4380 8FA3002C */ lw $v1, 0x002C($sp)
/* 00064 809E4384 C7A00034 */ lwc1 $f0, 0x0034($sp)
/* 00068 809E4388 468021A0 */ cvt.s.w $f6, $f4
/* 0006C 809E438C 8FA40038 */ lw $a0, 0x0038($sp)
/* 00070 809E4390 90690008 */ lbu $t1, 0x0008($v1) ## 00000008
/* 00074 809E4394 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00078 809E4398 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0007C 809E439C 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 00080 809E43A0 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00084 809E43A4 E7A00018 */ swc1 $f0, 0x0018($sp)
/* 00088 809E43A8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 0008C 809E43AC 0C029468 */ jal Animation_Change
/* 00090 809E43B0 AFA90014 */ sw $t1, 0x0014($sp)
/* 00094 809E43B4 8FAA003C */ lw $t2, 0x003C($sp)
/* 00098 809E43B8 8FAB0040 */ lw $t3, 0x0040($sp)
/* 0009C 809E43BC AD6A0000 */ sw $t2, 0x0000($t3) ## 00000000
/* 000A0 809E43C0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 000A4 809E43C4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 000A8 809E43C8 03E00008 */ jr $ra
/* 000AC 809E43CC 00000000 */ nop

View file

@ -1,46 +0,0 @@
glabel func_809E474C
/* 0042C 809E474C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00430 809E4750 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00434 809E4754 AFA40020 */ sw $a0, 0x0020($sp)
/* 00438 809E4758 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 0043C 809E475C AFA50024 */ sw $a1, 0x0024($sp)
/* 00440 809E4760 AFAE001C */ sw $t6, 0x001C($sp)
/* 00444 809E4764 0C042F6F */ jal func_8010BDBC
/* 00448 809E4768 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 0044C 809E476C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00450 809E4770 5441001A */ bnel $v0, $at, .L809E47DC
/* 00454 809E4774 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00458 809E4778 0C041AF2 */ jal func_80106BC8
/* 0045C 809E477C 8FA40024 */ lw $a0, 0x0024($sp)
/* 00460 809E4780 10400015 */ beq $v0, $zero, .L809E47D8
/* 00464 809E4784 8FAF0020 */ lw $t7, 0x0020($sp)
/* 00468 809E4788 95E2010E */ lhu $v0, 0x010E($t7) ## 0000010E
/* 0046C 809E478C 24016061 */ addiu $at, $zero, 0x6061 ## $at = 00006061
/* 00470 809E4790 10410005 */ beq $v0, $at, .L809E47A8
/* 00474 809E4794 24016064 */ addiu $at, $zero, 0x6064 ## $at = 00006064
/* 00478 809E4798 10410009 */ beq $v0, $at, .L809E47C0
/* 0047C 809E479C 00000000 */ nop
/* 00480 809E47A0 1000000D */ beq $zero, $zero, .L809E47D8
/* 00484 809E47A4 AFA0001C */ sw $zero, 0x001C($sp)
.L809E47A8:
/* 00488 809E47A8 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0048C 809E47AC 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00490 809E47B0 94580F26 */ lhu $t8, 0x0F26($v0) ## 8015F586
/* 00494 809E47B4 37190040 */ ori $t9, $t8, 0x0040 ## $t9 = 00000040
/* 00498 809E47B8 10000006 */ beq $zero, $zero, .L809E47D4
/* 0049C 809E47BC A4590F26 */ sh $t9, 0x0F26($v0) ## 8015F586
.L809E47C0:
/* 004A0 809E47C0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 004A4 809E47C4 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 004A8 809E47C8 94480F26 */ lhu $t0, 0x0F26($v0) ## 8015F586
/* 004AC 809E47CC 35090100 */ ori $t1, $t0, 0x0100 ## $t1 = 00000100
/* 004B0 809E47D0 A4490F26 */ sh $t1, 0x0F26($v0) ## 8015F586
.L809E47D4:
/* 004B4 809E47D4 AFA0001C */ sw $zero, 0x001C($sp)
.L809E47D8:
/* 004B8 809E47D8 8FBF0014 */ lw $ra, 0x0014($sp)
.L809E47DC:
/* 004BC 809E47DC 8FA2001C */ lw $v0, 0x001C($sp)
/* 004C0 809E47E0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 004C4 809E47E4 03E00008 */ jr $ra
/* 004C8 809E47E8 00000000 */ nop

View file

@ -1,123 +0,0 @@
glabel func_809E47EC
/* 004CC 809E47EC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 004D0 809E47F0 AFBF001C */ sw $ra, 0x001C($sp)
/* 004D4 809E47F4 AFB00018 */ sw $s0, 0x0018($sp)
/* 004D8 809E47F8 8C8E01E0 */ lw $t6, 0x01E0($a0) ## 000001E0
/* 004DC 809E47FC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 004E0 809E4800 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004E4 809E4804 55C10006 */ bnel $t6, $at, .L809E4820
/* 004E8 809E4808 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004EC 809E480C 0C2791D3 */ jal func_809E474C
/* 004F0 809E4810 00000000 */ nop
/* 004F4 809E4814 1000005F */ beq $zero, $zero, .L809E4994
/* 004F8 809E4818 AE0201E0 */ sw $v0, 0x01E0($s0) ## 000001E0
/* 004FC 809E481C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809E4820:
/* 00500 809E4820 0C00BC65 */ jal func_8002F194
/* 00504 809E4824 AFA5002C */ sw $a1, 0x002C($sp)
/* 00508 809E4828 10400004 */ beq $v0, $zero, .L809E483C
/* 0050C 809E482C 8FA4002C */ lw $a0, 0x002C($sp)
/* 00510 809E4830 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002
/* 00514 809E4834 10000057 */ beq $zero, $zero, .L809E4994
/* 00518 809E4838 AE0F01E0 */ sw $t7, 0x01E0($s0) ## 000001E0
.L809E483C:
/* 0051C 809E483C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00520 809E4840 27A60026 */ addiu $a2, $sp, 0x0026 ## $a2 = FFFFFFFE
/* 00524 809E4844 0C00BCDD */ jal func_8002F374
/* 00528 809E4848 27A70024 */ addiu $a3, $sp, 0x0024 ## $a3 = FFFFFFFC
/* 0052C 809E484C 87A20026 */ lh $v0, 0x0026($sp)
/* 00530 809E4850 04400050 */ bltz $v0, .L809E4994
/* 00534 809E4854 28410141 */ slti $at, $v0, 0x0141
/* 00538 809E4858 1020004E */ beq $at, $zero, .L809E4994
/* 0053C 809E485C 87A20024 */ lh $v0, 0x0024($sp)
/* 00540 809E4860 0440004C */ bltz $v0, .L809E4994
/* 00544 809E4864 284100F1 */ slti $at, $v0, 0x00F1
/* 00548 809E4868 5020004B */ beql $at, $zero, .L809E4998
/* 0054C 809E486C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00550 809E4870 8E1801E0 */ lw $t8, 0x01E0($s0) ## 000001E0
/* 00554 809E4874 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00558 809E4878 8FA5002C */ lw $a1, 0x002C($sp)
/* 0055C 809E487C 57000046 */ bnel $t8, $zero, .L809E4998
/* 00560 809E4880 8FBF001C */ lw $ra, 0x001C($sp)
/* 00564 809E4884 0C00BCB3 */ jal func_8002F2CC
/* 00568 809E4888 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000
/* 0056C 809E488C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00570 809E4890 54410041 */ bnel $v0, $at, .L809E4998
/* 00574 809E4894 8FBF001C */ lw $ra, 0x001C($sp)
/* 00578 809E4898 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
/* 0057C 809E489C 3C05809E */ lui $a1, %hi(D_809E5570) ## $a1 = 809E0000
/* 00580 809E48A0 8FA4002C */ lw $a0, 0x002C($sp)
/* 00584 809E48A4 33280003 */ andi $t0, $t9, 0x0003 ## $t0 = 00000000
/* 00588 809E48A8 00084880 */ sll $t1, $t0, 2
/* 0058C 809E48AC 00A92821 */ addu $a1, $a1, $t1
/* 00590 809E48B0 0C01B0D8 */ jal Text_GetFaceReaction
/* 00594 809E48B4 8CA55570 */ lw $a1, %lo(D_809E5570)($a1)
/* 00598 809E48B8 304AFFFF */ andi $t2, $v0, 0xFFFF ## $t2 = 00000000
/* 0059C 809E48BC 15400035 */ bne $t2, $zero, .L809E4994
/* 005A0 809E48C0 A602010E */ sh $v0, 0x010E($s0) ## 0000010E
/* 005A4 809E48C4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 005A8 809E48C8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 005AC 809E48CC 30420003 */ andi $v0, $v0, 0x0003 ## $v0 = 00000000
/* 005B0 809E48D0 5040000A */ beql $v0, $zero, .L809E48FC
/* 005B4 809E48D4 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
/* 005B8 809E48D8 10410011 */ beq $v0, $at, .L809E4920
/* 005BC 809E48DC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 005C0 809E48E0 10410019 */ beq $v0, $at, .L809E4948
/* 005C4 809E48E4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 005C8 809E48E8 50410022 */ beql $v0, $at, .L809E4974
/* 005CC 809E48EC 960D0200 */ lhu $t5, 0x0200($s0) ## 00000200
/* 005D0 809E48F0 10000029 */ beq $zero, $zero, .L809E4998
/* 005D4 809E48F4 8FBF001C */ lw $ra, 0x001C($sp)
/* 005D8 809E48F8 960B0200 */ lhu $t3, 0x0200($s0) ## 00000200
.L809E48FC:
/* 005DC 809E48FC 240D5076 */ addiu $t5, $zero, 0x5076 ## $t5 = 00005076
/* 005E0 809E4900 240E5075 */ addiu $t6, $zero, 0x5075 ## $t6 = 00005075
/* 005E4 809E4904 316C0008 */ andi $t4, $t3, 0x0008 ## $t4 = 00000000
/* 005E8 809E4908 11800003 */ beq $t4, $zero, .L809E4918
/* 005EC 809E490C 00000000 */ nop
/* 005F0 809E4910 10000020 */ beq $zero, $zero, .L809E4994
/* 005F4 809E4914 A60D010E */ sh $t5, 0x010E($s0) ## 0000010E
.L809E4918:
/* 005F8 809E4918 1000001E */ beq $zero, $zero, .L809E4994
/* 005FC 809E491C A60E010E */ sh $t6, 0x010E($s0) ## 0000010E
.L809E4920:
/* 00600 809E4920 960F0200 */ lhu $t7, 0x0200($s0) ## 00000200
/* 00604 809E4924 2419502A */ addiu $t9, $zero, 0x502A ## $t9 = 0000502A
/* 00608 809E4928 24085074 */ addiu $t0, $zero, 0x5074 ## $t0 = 00005074
/* 0060C 809E492C 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 00610 809E4930 13000003 */ beq $t8, $zero, .L809E4940
/* 00614 809E4934 00000000 */ nop
/* 00618 809E4938 10000016 */ beq $zero, $zero, .L809E4994
/* 0061C 809E493C A619010E */ sh $t9, 0x010E($s0) ## 0000010E
.L809E4940:
/* 00620 809E4940 10000014 */ beq $zero, $zero, .L809E4994
/* 00624 809E4944 A608010E */ sh $t0, 0x010E($s0) ## 0000010E
.L809E4948:
/* 00628 809E4948 96090200 */ lhu $t1, 0x0200($s0) ## 00000200
/* 0062C 809E494C 240B506A */ addiu $t3, $zero, 0x506A ## $t3 = 0000506A
/* 00630 809E4950 240C506B */ addiu $t4, $zero, 0x506B ## $t4 = 0000506B
/* 00634 809E4954 312A0001 */ andi $t2, $t1, 0x0001 ## $t2 = 00000000
/* 00638 809E4958 11400003 */ beq $t2, $zero, .L809E4968
/* 0063C 809E495C 00000000 */ nop
/* 00640 809E4960 1000000C */ beq $zero, $zero, .L809E4994
/* 00644 809E4964 A60B010E */ sh $t3, 0x010E($s0) ## 0000010E
.L809E4968:
/* 00648 809E4968 1000000A */ beq $zero, $zero, .L809E4994
/* 0064C 809E496C A60C010E */ sh $t4, 0x010E($s0) ## 0000010E
/* 00650 809E4970 960D0200 */ lhu $t5, 0x0200($s0) ## 00000200
.L809E4974:
/* 00654 809E4974 240F5077 */ addiu $t7, $zero, 0x5077 ## $t7 = 00005077
/* 00658 809E4978 24185078 */ addiu $t8, $zero, 0x5078 ## $t8 = 00005078
/* 0065C 809E497C 31AE0001 */ andi $t6, $t5, 0x0001 ## $t6 = 00000000
/* 00660 809E4980 51C00004 */ beql $t6, $zero, .L809E4994
/* 00664 809E4984 A618010E */ sh $t8, 0x010E($s0) ## 0000010E
/* 00668 809E4988 10000002 */ beq $zero, $zero, .L809E4994
/* 0066C 809E498C A60F010E */ sh $t7, 0x010E($s0) ## 0000010E
/* 00670 809E4990 A618010E */ sh $t8, 0x010E($s0) ## 0000010E
.L809E4994:
/* 00674 809E4994 8FBF001C */ lw $ra, 0x001C($sp)
.L809E4998:
/* 00678 809E4998 8FB00018 */ lw $s0, 0x0018($sp)
/* 0067C 809E499C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00680 809E49A0 03E00008 */ jr $ra
/* 00684 809E49A4 00000000 */ nop

View file

@ -1,61 +0,0 @@
glabel func_809E49A8
/* 00688 809E49A8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0068C 809E49AC AFB00018 */ sw $s0, 0x0018($sp)
/* 00690 809E49B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00694 809E49B4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00698 809E49B8 AFA50024 */ sw $a1, 0x0024($sp)
/* 0069C 809E49BC 0C02927F */ jal SkelAnime_Update
/* 006A0 809E49C0 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 006A4 809E49C4 10400004 */ beq $v0, $zero, .L809E49D8
/* 006A8 809E49C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006AC 809E49CC 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 006B0 809E49D0 0C2790C8 */ jal func_809E4320
/* 006B4 809E49D4 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
.L809E49D8:
/* 006B8 809E49D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006BC 809E49DC 0C2791FB */ jal func_809E47EC
/* 006C0 809E49E0 8FA50024 */ lw $a1, 0x0024($sp)
/* 006C4 809E49E4 8E0E01E0 */ lw $t6, 0x01E0($s0) ## 000001E0
/* 006C8 809E49E8 55C00020 */ bnel $t6, $zero, .L809E4A6C
/* 006CC 809E49EC 8FBF001C */ lw $ra, 0x001C($sp)
/* 006D0 809E49F0 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 006D4 809E49F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006D8 809E49F8 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 006DC 809E49FC 304F0010 */ andi $t7, $v0, 0x0010 ## $t7 = 00000000
/* 006E0 809E4A00 11E0000A */ beq $t7, $zero, .L809E4A2C
/* 006E4 809E4A04 30490008 */ andi $t1, $v0, 0x0008 ## $t1 = 00000000
/* 006E8 809E4A08 0C2790C8 */ jal func_809E4320
/* 006EC 809E4A0C 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 006F0 809E4A10 96180200 */ lhu $t8, 0x0200($s0) ## 00000200
/* 006F4 809E4A14 3C08809E */ lui $t0, %hi(func_809E4BC4) ## $t0 = 809E0000
/* 006F8 809E4A18 25084BC4 */ addiu $t0, $t0, %lo(func_809E4BC4) ## $t0 = 809E4BC4
/* 006FC 809E4A1C 3319FCFF */ andi $t9, $t8, 0xFCFF ## $t9 = 00000000
/* 00700 809E4A20 A6190200 */ sh $t9, 0x0200($s0) ## 00000200
/* 00704 809E4A24 10000010 */ beq $zero, $zero, .L809E4A68
/* 00708 809E4A28 AE080190 */ sw $t0, 0x0190($s0) ## 00000190
.L809E4A2C:
/* 0070C 809E4A2C 15200005 */ bne $t1, $zero, .L809E4A44
/* 00710 809E4A30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00714 809E4A34 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00718 809E4A38 0C2790C8 */ jal func_809E4320
/* 0071C 809E4A3C 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00720 809E4A40 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
.L809E4A44:
/* 00724 809E4A44 304A0800 */ andi $t2, $v0, 0x0800 ## $t2 = 00000000
/* 00728 809E4A48 15400005 */ bne $t2, $zero, .L809E4A60
/* 0072C 809E4A4C 3C0E809E */ lui $t6, %hi(func_809E4A7C) ## $t6 = 809E0000
/* 00730 809E4A50 304CFDFF */ andi $t4, $v0, 0xFDFF ## $t4 = 00000000
/* 00734 809E4A54 A60C0200 */ sh $t4, 0x0200($s0) ## 00000200
/* 00738 809E4A58 358D0100 */ ori $t5, $t4, 0x0100 ## $t5 = 00000100
/* 0073C 809E4A5C A60D0200 */ sh $t5, 0x0200($s0) ## 00000200
.L809E4A60:
/* 00740 809E4A60 25CE4A7C */ addiu $t6, $t6, %lo(func_809E4A7C) ## $t6 = 809E4A7C
/* 00744 809E4A64 AE0E0190 */ sw $t6, 0x0190($s0) ## 00000190
.L809E4A68:
/* 00748 809E4A68 8FBF001C */ lw $ra, 0x001C($sp)
.L809E4A6C:
/* 0074C 809E4A6C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00750 809E4A70 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00754 809E4A74 03E00008 */ jr $ra
/* 00758 809E4A78 00000000 */ nop

View file

@ -1,44 +0,0 @@
glabel func_809E4A7C
/* 0075C 809E4A7C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00760 809E4A80 AFBF001C */ sw $ra, 0x001C($sp)
/* 00764 809E4A84 AFB00018 */ sw $s0, 0x0018($sp)
/* 00768 809E4A88 0C2791FB */ jal func_809E47EC
/* 0076C 809E4A8C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00770 809E4A90 0C02927F */ jal SkelAnime_Update
/* 00774 809E4A94 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00778 809E4A98 10400004 */ beq $v0, $zero, .L809E4AAC
/* 0077C 809E4A9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00780 809E4AA0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00784 809E4AA4 0C2790C8 */ jal func_809E4320
/* 00788 809E4AA8 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
.L809E4AAC:
/* 0078C 809E4AAC 8E0E01E0 */ lw $t6, 0x01E0($s0) ## 000001E0
/* 00790 809E4AB0 51C00014 */ beql $t6, $zero, .L809E4B04
/* 00794 809E4AB4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00798 809E4AB8 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 0079C 809E4ABC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007A0 809E4AC0 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004
/* 007A4 809E4AC4 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 007A8 809E4AC8 55E00005 */ bnel $t7, $zero, .L809E4AE0
/* 007AC 809E4ACC 30580800 */ andi $t8, $v0, 0x0800 ## $t8 = 00000000
/* 007B0 809E4AD0 0C2790C8 */ jal func_809E4320
/* 007B4 809E4AD4 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 007B8 809E4AD8 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 007BC 809E4ADC 30580800 */ andi $t8, $v0, 0x0800 ## $t8 = 00000000
.L809E4AE0:
/* 007C0 809E4AE0 17000005 */ bne $t8, $zero, .L809E4AF8
/* 007C4 809E4AE4 3C0A809E */ lui $t2, %hi(func_809E49A8) ## $t2 = 809E0000
/* 007C8 809E4AE8 34480200 */ ori $t0, $v0, 0x0200 ## $t0 = 00000200
/* 007CC 809E4AEC A6080200 */ sh $t0, 0x0200($s0) ## 00000200
/* 007D0 809E4AF0 3109FEFF */ andi $t1, $t0, 0xFEFF ## $t1 = 00000200
/* 007D4 809E4AF4 A6090200 */ sh $t1, 0x0200($s0) ## 00000200
.L809E4AF8:
/* 007D8 809E4AF8 254A49A8 */ addiu $t2, $t2, %lo(func_809E49A8) ## $t2 = 809E49A8
/* 007DC 809E4AFC AE0A0190 */ sw $t2, 0x0190($s0) ## 00000190
/* 007E0 809E4B00 8FBF001C */ lw $ra, 0x001C($sp)
.L809E4B04:
/* 007E4 809E4B04 8FB00018 */ lw $s0, 0x0018($sp)
/* 007E8 809E4B08 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 007EC 809E4B0C 03E00008 */ jr $ra
/* 007F0 809E4B10 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_809E4B14
/* 007F4 809E4B14 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 007F8 809E4B18 AFB00018 */ sw $s0, 0x0018($sp)
/* 007FC 809E4B1C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00800 809E4B20 AFBF001C */ sw $ra, 0x001C($sp)
/* 00804 809E4B24 AFA50024 */ sw $a1, 0x0024($sp)
/* 00808 809E4B28 0C02927F */ jal SkelAnime_Update
/* 0080C 809E4B2C 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00810 809E4B30 50400010 */ beql $v0, $zero, .L809E4B74
/* 00814 809E4B34 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00818 809E4B38 8E0E02F8 */ lw $t6, 0x02F8($s0) ## 000002F8
/* 0081C 809E4B3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00820 809E4B40 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00824 809E4B44 25CFFFFF */ addiu $t7, $t6, 0xFFFF ## $t7 = FFFFFFFF
/* 00828 809E4B48 1DE00007 */ bgtz $t7, .L809E4B68
/* 0082C 809E4B4C AE0F02F8 */ sw $t7, 0x02F8($s0) ## 000002F8
/* 00830 809E4B50 0C2790C8 */ jal func_809E4320
/* 00834 809E4B54 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00838 809E4B58 3C19809E */ lui $t9, %hi(func_809E4BC4) ## $t9 = 809E0000
/* 0083C 809E4B5C 27394BC4 */ addiu $t9, $t9, %lo(func_809E4BC4) ## $t9 = 809E4BC4
/* 00840 809E4B60 10000003 */ beq $zero, $zero, .L809E4B70
/* 00844 809E4B64 AE190190 */ sw $t9, 0x0190($s0) ## 00000190
.L809E4B68:
/* 00848 809E4B68 C6040158 */ lwc1 $f4, 0x0158($s0) ## 00000158
/* 0084C 809E4B6C E6040164 */ swc1 $f4, 0x0164($s0) ## 00000164
.L809E4B70:
/* 00850 809E4B70 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809E4B74:
/* 00854 809E4B74 0C2791FB */ jal func_809E47EC
/* 00858 809E4B78 8FA50024 */ lw $a1, 0x0024($sp)
/* 0085C 809E4B7C 8E0801E0 */ lw $t0, 0x01E0($s0) ## 000001E0
/* 00860 809E4B80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00864 809E4B84 5100000B */ beql $t0, $zero, .L809E4BB4
/* 00868 809E4B88 8FBF001C */ lw $ra, 0x001C($sp)
/* 0086C 809E4B8C 96090200 */ lhu $t1, 0x0200($s0) ## 00000200
/* 00870 809E4B90 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004
/* 00874 809E4B94 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00878 809E4B98 352A0200 */ ori $t2, $t1, 0x0200 ## $t2 = 00000200
/* 0087C 809E4B9C 0C2790C8 */ jal func_809E4320
/* 00880 809E4BA0 A60A0200 */ sh $t2, 0x0200($s0) ## 00000200
/* 00884 809E4BA4 3C0B809E */ lui $t3, %hi(func_809E49A8) ## $t3 = 809E0000
/* 00888 809E4BA8 256B49A8 */ addiu $t3, $t3, %lo(func_809E49A8) ## $t3 = 809E49A8
/* 0088C 809E4BAC AE0B0190 */ sw $t3, 0x0190($s0) ## 00000190
/* 00890 809E4BB0 8FBF001C */ lw $ra, 0x001C($sp)
.L809E4BB4:
/* 00894 809E4BB4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00898 809E4BB8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0089C 809E4BBC 03E00008 */ jr $ra
/* 008A0 809E4BC0 00000000 */ nop

View file

@ -1,247 +0,0 @@
.late_rodata
glabel D_809E5618
.word 0x4622F983
.text
glabel func_809E4BC4
/* 008A4 809E4BC4 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 008A8 809E4BC8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 008AC 809E4BCC AFB30038 */ sw $s3, 0x0038($sp)
/* 008B0 809E4BD0 AFB0002C */ sw $s0, 0x002C($sp)
/* 008B4 809E4BD4 00A13021 */ addu $a2, $a1, $at
/* 008B8 809E4BD8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 008BC 809E4BDC AFBF003C */ sw $ra, 0x003C($sp)
/* 008C0 809E4BE0 AFB20034 */ sw $s2, 0x0034($sp)
/* 008C4 809E4BE4 AFB10030 */ sw $s1, 0x0030($sp)
/* 008C8 809E4BE8 F7B60020 */ sdc1 $f22, 0x0020($sp)
/* 008CC 809E4BEC F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 008D0 809E4BF0 AFA5006C */ sw $a1, 0x006C($sp)
/* 008D4 809E4BF4 AFA60040 */ sw $a2, 0x0040($sp)
/* 008D8 809E4BF8 24130001 */ addiu $s3, $zero, 0x0001 ## $s3 = 00000001
/* 008DC 809E4BFC 8FA60040 */ lw $a2, 0x0040($sp)
.L809E4C00:
/* 008E0 809E4C00 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 008E4 809E4C04 3C0C8016 */ lui $t4, %hi(gSegments)
/* 008E8 809E4C08 8CCE1E08 */ lw $t6, 0x1E08($a2) ## 00001E08
/* 008EC 809E4C0C 000FC203 */ sra $t8, $t7, 8
/* 008F0 809E4C10 331900FF */ andi $t9, $t8, 0x00FF ## $t9 = 00000000
/* 008F4 809E4C14 001940C0 */ sll $t0, $t9, 3
/* 008F8 809E4C18 01C88821 */ addu $s1, $t6, $t0
/* 008FC 809E4C1C 8E230004 */ lw $v1, 0x0004($s1) ## 00000004
/* 00900 809E4C20 8E1801E4 */ lw $t8, 0x01E4($s0) ## 000001E4
/* 00904 809E4C24 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00908 809E4C28 00034900 */ sll $t1, $v1, 4
/* 0090C 809E4C2C 00095702 */ srl $t2, $t1, 28
/* 00910 809E4C30 000A5880 */ sll $t3, $t2, 2
/* 00914 809E4C34 018B6021 */ addu $t4, $t4, $t3
/* 00918 809E4C38 8D8C6FA8 */ lw $t4, %lo(gSegments)($t4)
/* 0091C 809E4C3C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00920 809E4C40 0018C880 */ sll $t9, $t8, 2
/* 00924 809E4C44 00616824 */ and $t5, $v1, $at
/* 00928 809E4C48 0338C823 */ subu $t9, $t9, $t8
/* 0092C 809E4C4C 0019C840 */ sll $t9, $t9, 1
/* 00930 809E4C50 018D7821 */ addu $t7, $t4, $t5
/* 00934 809E4C54 01F91021 */ addu $v0, $t7, $t9
/* 00938 809E4C58 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 0093C 809E4C5C 00411021 */ addu $v0, $v0, $at
/* 00940 809E4C60 844E0000 */ lh $t6, 0x0000($v0) ## 00000000
/* 00944 809E4C64 84480004 */ lh $t0, 0x0004($v0) ## 00000004
/* 00948 809E4C68 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 0094C 809E4C6C 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00
/* 00950 809E4C70 44885000 */ mtc1 $t0, $f10 ## $f10 = 0.00
/* 00954 809E4C74 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 00958 809E4C78 468021A0 */ cvt.s.w $f6, $f4
/* 0095C 809E4C7C 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 00960 809E4C80 46805420 */ cvt.s.w $f16, $f10
/* 00964 809E4C84 46083501 */ sub.s $f20, $f6, $f8
/* 00968 809E4C88 46128581 */ sub.s $f22, $f16, $f18
/* 0096C 809E4C8C 4600A306 */ mov.s $f12, $f20
/* 00970 809E4C90 0C03F494 */ jal Math_FAtan2F
/* 00974 809E4C94 4600B386 */ mov.s $f14, $f22
/* 00978 809E4C98 3C01809E */ lui $at, %hi(D_809E5618) ## $at = 809E0000
/* 0097C 809E4C9C C4245618 */ lwc1 $f4, %lo(D_809E5618)($at)
/* 00980 809E4CA0 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00984 809E4CA4 44819000 */ mtc1 $at, $f18 ## $f18 = 10.00
/* 00988 809E4CA8 46040182 */ mul.s $f6, $f0, $f4
/* 0098C 809E4CAC 00000000 */ nop
/* 00990 809E4CB0 4614A282 */ mul.s $f10, $f20, $f20
/* 00994 809E4CB4 00000000 */ nop
/* 00998 809E4CB8 4616B402 */ mul.s $f16, $f22, $f22
/* 0099C 809E4CBC 4600320D */ trunc.w.s $f8, $f6
/* 009A0 809E4CC0 46105000 */ add.s $f0, $f10, $f16
/* 009A4 809E4CC4 44054000 */ mfc1 $a1, $f8
/* 009A8 809E4CC8 46000084 */ sqrt.s $f2, $f0
/* 009AC 809E4CCC 00052C00 */ sll $a1, $a1, 16
/* 009B0 809E4CD0 00052C03 */ sra $a1, $a1, 16
/* 009B4 809E4CD4 4612103E */ c.le.s $f2, $f18
/* 009B8 809E4CD8 00000000 */ nop
/* 009BC 809E4CDC 45000039 */ bc1f .L809E4DC4
/* 009C0 809E4CE0 00000000 */ nop
/* 009C4 809E4CE4 8E0A01F8 */ lw $t2, 0x01F8($s0) ## 000001F8
/* 009C8 809E4CE8 55400022 */ bnel $t2, $zero, .L809E4D74
/* 009CC 809E4CEC 8E0901E4 */ lw $t1, 0x01E4($s0) ## 000001E4
/* 009D0 809E4CF0 8E0B01E4 */ lw $t3, 0x01E4($s0) ## 000001E4
/* 009D4 809E4CF4 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001
/* 009D8 809E4CF8 AE0C01E4 */ sw $t4, 0x01E4($s0) ## 000001E4
/* 009DC 809E4CFC 92230000 */ lbu $v1, 0x0000($s1) ## 00000000
/* 009E0 809E4D00 0183082A */ slt $at, $t4, $v1
/* 009E4 809E4D04 54200018 */ bnel $at, $zero, .L809E4D68
/* 009E8 809E4D08 02609025 */ or $s2, $s3, $zero ## $s2 = 00000001
/* 009EC 809E4D0C 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 009F0 809E4D10 246FFFFE */ addiu $t7, $v1, 0xFFFE ## $t7 = FFFFFFFE
/* 009F4 809E4D14 30580020 */ andi $t8, $v0, 0x0020 ## $t8 = 00000000
/* 009F8 809E4D18 1300000F */ beq $t8, $zero, .L809E4D58
/* 009FC 809E4D1C 30590400 */ andi $t9, $v0, 0x0400 ## $t9 = 00000000
/* 00A00 809E4D20 AE0F01E4 */ sw $t7, 0x01E4($s0) ## 000001E4
/* 00A04 809E4D24 AE1301F8 */ sw $s3, 0x01F8($s0) ## 000001F8
/* 00A08 809E4D28 13200026 */ beq $t9, $zero, .L809E4DC4
/* 00A0C 809E4D2C AE0001FC */ sw $zero, 0x01FC($s0) ## 000001FC
/* 00A10 809E4D30 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00A14 809E4D34 AE0E02F8 */ sw $t6, 0x02F8($s0) ## 000002F8
/* 00A18 809E4D38 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A1C 809E4D3C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00A20 809E4D40 0C2790C8 */ jal func_809E4320
/* 00A24 809E4D44 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00A28 809E4D48 3C08809E */ lui $t0, %hi(func_809E4B14) ## $t0 = 809E0000
/* 00A2C 809E4D4C 25084B14 */ addiu $t0, $t0, %lo(func_809E4B14) ## $t0 = 809E4B14
/* 00A30 809E4D50 10000072 */ beq $zero, $zero, .L809E4F1C
/* 00A34 809E4D54 AE080190 */ sw $t0, 0x0190($s0) ## 00000190
.L809E4D58:
/* 00A38 809E4D58 AE0001E4 */ sw $zero, 0x01E4($s0) ## 000001E4
/* 00A3C 809E4D5C 10000019 */ beq $zero, $zero, .L809E4DC4
/* 00A40 809E4D60 02609025 */ or $s2, $s3, $zero ## $s2 = 00000001
/* 00A44 809E4D64 02609025 */ or $s2, $s3, $zero ## $s2 = 00000001
.L809E4D68:
/* 00A48 809E4D68 10000016 */ beq $zero, $zero, .L809E4DC4
/* 00A4C 809E4D6C AE1301FC */ sw $s3, 0x01FC($s0) ## 000001FC
/* 00A50 809E4D70 8E0901E4 */ lw $t1, 0x01E4($s0) ## 000001E4
.L809E4D74:
/* 00A54 809E4D74 252AFFFF */ addiu $t2, $t1, 0xFFFF ## $t2 = FFFFFFFF
/* 00A58 809E4D78 05410011 */ bgez $t2, .L809E4DC0
/* 00A5C 809E4D7C AE0A01E4 */ sw $t2, 0x01E4($s0) ## 000001E4
/* 00A60 809E4D80 960C0200 */ lhu $t4, 0x0200($s0) ## 00000200
/* 00A64 809E4D84 AE1301E4 */ sw $s3, 0x01E4($s0) ## 000001E4
/* 00A68 809E4D88 AE0001F8 */ sw $zero, 0x01F8($s0) ## 000001F8
/* 00A6C 809E4D8C 318D0400 */ andi $t5, $t4, 0x0400 ## $t5 = 00000000
/* 00A70 809E4D90 11A0000C */ beq $t5, $zero, .L809E4DC4
/* 00A74 809E4D94 AE0001FC */ sw $zero, 0x01FC($s0) ## 000001FC
/* 00A78 809E4D98 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002
/* 00A7C 809E4D9C AE1802F8 */ sw $t8, 0x02F8($s0) ## 000002F8
/* 00A80 809E4DA0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A84 809E4DA4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00A88 809E4DA8 0C2790C8 */ jal func_809E4320
/* 00A8C 809E4DAC 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00A90 809E4DB0 3C0F809E */ lui $t7, %hi(func_809E4B14) ## $t7 = 809E0000
/* 00A94 809E4DB4 25EF4B14 */ addiu $t7, $t7, %lo(func_809E4B14) ## $t7 = 809E4B14
/* 00A98 809E4DB8 10000058 */ beq $zero, $zero, .L809E4F1C
/* 00A9C 809E4DBC AE0F0190 */ sw $t7, 0x0190($s0) ## 00000190
.L809E4DC0:
/* 00AA0 809E4DC0 02609025 */ or $s2, $s3, $zero ## $s2 = 00000001
.L809E4DC4:
/* 00AA4 809E4DC4 5640FF8E */ bnel $s2, $zero, .L809E4C00
/* 00AA8 809E4DC8 8FA60040 */ lw $a2, 0x0040($sp)
/* 00AAC 809E4DCC 00133400 */ sll $a2, $s3, 16
/* 00AB0 809E4DD0 00063403 */ sra $a2, $a2, 16
/* 00AB4 809E4DD4 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 00AB8 809E4DD8 24071388 */ addiu $a3, $zero, 0x1388 ## $a3 = 00001388
/* 00ABC 809E4DDC AFA00010 */ sw $zero, 0x0010($sp)
/* 00AC0 809E4DE0 0C01E1A7 */ jal Math_SmoothStepToS
/* 00AC4 809E4DE4 E7A2004C */ swc1 $f2, 0x004C($sp)
/* 00AC8 809E4DE8 8E0301FC */ lw $v1, 0x01FC($s0) ## 000001FC
/* 00ACC 809E4DEC 861900B6 */ lh $t9, 0x00B6($s0) ## 000000B6
/* 00AD0 809E4DF0 C7A2004C */ lwc1 $f2, 0x004C($sp)
/* 00AD4 809E4DF4 14600008 */ bne $v1, $zero, .L809E4E18
/* 00AD8 809E4DF8 A6190032 */ sh $t9, 0x0032($s0) ## 00000032
/* 00ADC 809E4DFC 14400003 */ bne $v0, $zero, .L809E4E0C
/* 00AE0 809E4E00 02601825 */ or $v1, $s3, $zero ## $v1 = 00000001
/* 00AE4 809E4E04 10000004 */ beq $zero, $zero, .L809E4E18
/* 00AE8 809E4E08 AE1301FC */ sw $s3, 0x01FC($s0) ## 000001FC
.L809E4E0C:
/* 00AEC 809E4E0C 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
/* 00AF0 809E4E10 8E0301FC */ lw $v1, 0x01FC($s0) ## 000001FC
/* 00AF4 809E4E14 E6140068 */ swc1 $f20, 0x0068($s0) ## 00000068
.L809E4E18:
/* 00AF8 809E4E18 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
/* 00AFC 809E4E1C 16630007 */ bne $s3, $v1, .L809E4E3C
/* 00B00 809E4E20 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00B04 809E4E24 8E0501E8 */ lw $a1, 0x01E8($s0) ## 000001E8
/* 00B08 809E4E28 3C063F4C */ lui $a2, 0x3F4C ## $a2 = 3F4C0000
/* 00B0C 809E4E2C 44071000 */ mfc1 $a3, $f2
/* 00B10 809E4E30 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3F4CCCCD
/* 00B14 809E4E34 0C01E0C4 */ jal Math_SmoothStepToF
/* 00B18 809E4E38 E7B40010 */ swc1 $f20, 0x0010($sp)
.L809E4E3C:
/* 00B1C 809E4E3C 0C00B638 */ jal Actor_MoveForward
/* 00B20 809E4E40 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B24 809E4E44 96020200 */ lhu $v0, 0x0200($s0) ## 00000200
/* 00B28 809E4E48 8FA4006C */ lw $a0, 0x006C($sp)
/* 00B2C 809E4E4C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00B30 809E4E50 304E0040 */ andi $t6, $v0, 0x0040 ## $t6 = 00000000
/* 00B34 809E4E54 11C00009 */ beq $t6, $zero, .L809E4E7C
/* 00B38 809E4E58 30490080 */ andi $t1, $v0, 0x0080 ## $t1 = 00000000
/* 00B3C 809E4E5C 4406A000 */ mfc1 $a2, $f20
/* 00B40 809E4E60 4407A000 */ mfc1 $a3, $f20
/* 00B44 809E4E64 24080004 */ addiu $t0, $zero, 0x0004 ## $t0 = 00000004
/* 00B48 809E4E68 AFA80014 */ sw $t0, 0x0014($sp)
/* 00B4C 809E4E6C 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 00B50 809E4E70 E7B40010 */ swc1 $f20, 0x0010($sp)
/* 00B54 809E4E74 10000017 */ beq $zero, $zero, .L809E4ED4
/* 00B58 809E4E78 00000000 */ nop
.L809E4E7C:
/* 00B5C 809E4E7C 51200008 */ beql $t1, $zero, .L809E4EA0
/* 00B60 809E4E80 960D0202 */ lhu $t5, 0x0202($s0) ## 00000202
/* 00B64 809E4E84 960A0202 */ lhu $t2, 0x0202($s0) ## 00000202
/* 00B68 809E4E88 304CFF7F */ andi $t4, $v0, 0xFF7F ## $t4 = 00000000
/* 00B6C 809E4E8C A60C0200 */ sh $t4, 0x0200($s0) ## 00000200
/* 00B70 809E4E90 354B0001 */ ori $t3, $t2, 0x0001 ## $t3 = 00000001
/* 00B74 809E4E94 1000000F */ beq $zero, $zero, .L809E4ED4
/* 00B78 809E4E98 A60B0202 */ sh $t3, 0x0202($s0) ## 00000202
/* 00B7C 809E4E9C 960D0202 */ lhu $t5, 0x0202($s0) ## 00000202
.L809E4EA0:
/* 00B80 809E4EA0 8FA4006C */ lw $a0, 0x006C($sp)
/* 00B84 809E4EA4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00B88 809E4EA8 31B80001 */ andi $t8, $t5, 0x0001 ## $t8 = 00000000
/* 00B8C 809E4EAC 13000009 */ beq $t8, $zero, .L809E4ED4
/* 00B90 809E4EB0 240F0004 */ addiu $t7, $zero, 0x0004 ## $t7 = 00000004
/* 00B94 809E4EB4 4406A000 */ mfc1 $a2, $f20
/* 00B98 809E4EB8 4407A000 */ mfc1 $a3, $f20
/* 00B9C 809E4EBC E7B40010 */ swc1 $f20, 0x0010($sp)
/* 00BA0 809E4EC0 0C00B92D */ jal Actor_UpdateBgCheckInfo
/* 00BA4 809E4EC4 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00BA8 809E4EC8 96190202 */ lhu $t9, 0x0202($s0) ## 00000202
/* 00BAC 809E4ECC 332EFFFE */ andi $t6, $t9, 0xFFFE ## $t6 = 00000000
/* 00BB0 809E4ED0 A60E0202 */ sh $t6, 0x0202($s0) ## 00000202
.L809E4ED4:
/* 00BB4 809E4ED4 0C02927F */ jal SkelAnime_Update
/* 00BB8 809E4ED8 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00BBC 809E4EDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BC0 809E4EE0 0C2791FB */ jal func_809E47EC
/* 00BC4 809E4EE4 8FA5006C */ lw $a1, 0x006C($sp)
/* 00BC8 809E4EE8 8E0801E0 */ lw $t0, 0x01E0($s0) ## 000001E0
/* 00BCC 809E4EEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BD0 809E4EF0 5100000B */ beql $t0, $zero, .L809E4F20
/* 00BD4 809E4EF4 8FBF003C */ lw $ra, 0x003C($sp)
/* 00BD8 809E4EF8 96090200 */ lhu $t1, 0x0200($s0) ## 00000200
/* 00BDC 809E4EFC 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004
/* 00BE0 809E4F00 260601EC */ addiu $a2, $s0, 0x01EC ## $a2 = 000001EC
/* 00BE4 809E4F04 352A0200 */ ori $t2, $t1, 0x0200 ## $t2 = 00000200
/* 00BE8 809E4F08 0C2790C8 */ jal func_809E4320
/* 00BEC 809E4F0C A60A0200 */ sh $t2, 0x0200($s0) ## 00000200
/* 00BF0 809E4F10 3C0B809E */ lui $t3, %hi(func_809E49A8) ## $t3 = 809E0000
/* 00BF4 809E4F14 256B49A8 */ addiu $t3, $t3, %lo(func_809E49A8) ## $t3 = 809E49A8
/* 00BF8 809E4F18 AE0B0190 */ sw $t3, 0x0190($s0) ## 00000190
.L809E4F1C:
/* 00BFC 809E4F1C 8FBF003C */ lw $ra, 0x003C($sp)
.L809E4F20:
/* 00C00 809E4F20 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00C04 809E4F24 D7B60020 */ ldc1 $f22, 0x0020($sp)
/* 00C08 809E4F28 8FB0002C */ lw $s0, 0x002C($sp)
/* 00C0C 809E4F2C 8FB10030 */ lw $s1, 0x0030($sp)
/* 00C10 809E4F30 8FB20034 */ lw $s2, 0x0034($sp)
/* 00C14 809E4F34 8FB30038 */ lw $s3, 0x0038($sp)
/* 00C18 809E4F38 03E00008 */ jr $ra
/* 00C1C 809E4F3C 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000

View file

@ -1,149 +0,0 @@
.rdata
glabel D_809E55A0
.asciz "<%d>\n"
.balign 4
.late_rodata
glabel D_809E561C
.float 9.58738019108e-05
glabel D_809E5620
.float 9.58738019108e-05
glabel D_809E5624
.float 9.58738019108e-05
glabel D_809E5628
.float 9.58738019108e-05
glabel D_809E562C
.float 9.58738019108e-05
glabel D_809E5630
.float 9.58738019108e-05
.text
glabel func_809E50B4
/* 00D94 809E50B4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00D98 809E50B8 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008
/* 00D9C 809E50BC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00DA0 809E50C0 AFA40028 */ sw $a0, 0x0028($sp)
/* 00DA4 809E50C4 AFA60030 */ sw $a2, 0x0030($sp)
/* 00DA8 809E50C8 10A10006 */ beq $a1, $at, .L809E50E4
/* 00DAC 809E50CC AFA70034 */ sw $a3, 0x0034($sp)
/* 00DB0 809E50D0 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00DB4 809E50D4 50A10020 */ beql $a1, $at, .L809E5158
/* 00DB8 809E50D8 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00DBC 809E50DC 10000066 */ beq $zero, $zero, .L809E5278
/* 00DC0 809E50E0 8FBF0014 */ lw $ra, 0x0014($sp)
.L809E50E4:
/* 00DC4 809E50E4 8FAF003C */ lw $t7, 0x003C($sp)
/* 00DC8 809E50E8 27AE001C */ addiu $t6, $sp, 0x001C ## $t6 = FFFFFFF4
/* 00DCC 809E50EC 3C01809E */ lui $at, %hi(D_809E561C) ## $at = 809E0000
/* 00DD0 809E50F0 89F90212 */ lwl $t9, 0x0212($t7) ## 00000212
/* 00DD4 809E50F4 99F90215 */ lwr $t9, 0x0215($t7) ## 00000215
/* 00DD8 809E50F8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00DDC 809E50FC ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
/* 00DE0 809E5100 95F90216 */ lhu $t9, 0x0216($t7) ## 00000216
/* 00DE4 809E5104 A5D90004 */ sh $t9, 0x0004($t6) ## FFFFFFF8
/* 00DE8 809E5108 87A8001E */ lh $t0, 0x001E($sp)
/* 00DEC 809E510C C428561C */ lwc1 $f8, %lo(D_809E561C)($at)
/* 00DF0 809E5110 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 00DF4 809E5114 00000000 */ nop
/* 00DF8 809E5118 468021A0 */ cvt.s.w $f6, $f4
/* 00DFC 809E511C 46083302 */ mul.s $f12, $f6, $f8
/* 00E00 809E5120 0C0342DC */ jal Matrix_RotateX
/* 00E04 809E5124 46006307 */ neg.s $f12, $f12
/* 00E08 809E5128 87A9001C */ lh $t1, 0x001C($sp)
/* 00E0C 809E512C 3C01809E */ lui $at, %hi(D_809E5620) ## $at = 809E0000
/* 00E10 809E5130 C4325620 */ lwc1 $f18, %lo(D_809E5620)($at)
/* 00E14 809E5134 44895000 */ mtc1 $t1, $f10 ## $f10 = 0.00
/* 00E18 809E5138 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00E1C 809E513C 46805420 */ cvt.s.w $f16, $f10
/* 00E20 809E5140 46128302 */ mul.s $f12, $f16, $f18
/* 00E24 809E5144 0C0343B5 */ jal Matrix_RotateZ
/* 00E28 809E5148 46006307 */ neg.s $f12, $f12
/* 00E2C 809E514C 1000004A */ beq $zero, $zero, .L809E5278
/* 00E30 809E5150 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00E34 809E5154 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
.L809E5158:
/* 00E38 809E5158 3C0144AF */ lui $at, 0x44AF ## $at = 44AF0000
/* 00E3C 809E515C 44816000 */ mtc1 $at, $f12 ## $f12 = 1400.00
/* 00E40 809E5160 44067000 */ mfc1 $a2, $f14
/* 00E44 809E5164 0C034261 */ jal Matrix_Translate
/* 00E48 809E5168 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00E4C 809E516C 8FA2003C */ lw $v0, 0x003C($sp)
/* 00E50 809E5170 27AA001C */ addiu $t2, $sp, 0x001C ## $t2 = FFFFFFF4
/* 00E54 809E5174 3C04809E */ lui $a0, %hi(D_809E55A0) ## $a0 = 809E0000
/* 00E58 809E5178 884C020C */ lwl $t4, 0x020C($v0) ## 0000020C
/* 00E5C 809E517C 984C020F */ lwr $t4, 0x020F($v0) ## 0000020F
/* 00E60 809E5180 248455A0 */ addiu $a0, $a0, %lo(D_809E55A0) ## $a0 = 809E55A0
/* 00E64 809E5184 AD4C0000 */ sw $t4, 0x0000($t2) ## FFFFFFF4
/* 00E68 809E5188 944C0210 */ lhu $t4, 0x0210($v0) ## 00000210
/* 00E6C 809E518C A54C0004 */ sh $t4, 0x0004($t2) ## FFFFFFF8
/* 00E70 809E5190 944D0200 */ lhu $t5, 0x0200($v0) ## 00000200
/* 00E74 809E5194 31AE1000 */ andi $t6, $t5, 0x1000 ## $t6 = 00000000
/* 00E78 809E5198 11C0001F */ beq $t6, $zero, .L809E5218
/* 00E7C 809E519C 87AD001E */ lh $t5, 0x001E($sp)
/* 00E80 809E51A0 0C00084C */ jal osSyncPrintf
/* 00E84 809E51A4 844502FC */ lh $a1, 0x02FC($v0) ## 000002FC
/* 00E88 809E51A8 8FB8003C */ lw $t8, 0x003C($sp)
/* 00E8C 809E51AC 87AF001E */ lh $t7, 0x001E($sp)
/* 00E90 809E51B0 3C01809E */ lui $at, %hi(D_809E5624) ## $at = 809E0000
/* 00E94 809E51B4 871902FE */ lh $t9, 0x02FE($t8) ## 000002FE
/* 00E98 809E51B8 C4285624 */ lwc1 $f8, %lo(D_809E5624)($at)
/* 00E9C 809E51BC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00EA0 809E51C0 01F94021 */ addu $t0, $t7, $t9
/* 00EA4 809E51C4 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 00EA8 809E51C8 00000000 */ nop
/* 00EAC 809E51CC 468021A0 */ cvt.s.w $f6, $f4
/* 00EB0 809E51D0 46083302 */ mul.s $f12, $f6, $f8
/* 00EB4 809E51D4 0C0342DC */ jal Matrix_RotateX
/* 00EB8 809E51D8 00000000 */ nop
/* 00EBC 809E51DC 8FAA003C */ lw $t2, 0x003C($sp)
/* 00EC0 809E51E0 87A9001C */ lh $t1, 0x001C($sp)
/* 00EC4 809E51E4 3C01809E */ lui $at, %hi(D_809E5628) ## $at = 809E0000
/* 00EC8 809E51E8 854B02FC */ lh $t3, 0x02FC($t2) ## 000002FC
/* 00ECC 809E51EC C4325628 */ lwc1 $f18, %lo(D_809E5628)($at)
/* 00ED0 809E51F0 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00ED4 809E51F4 012B6021 */ addu $t4, $t1, $t3
/* 00ED8 809E51F8 448C5000 */ mtc1 $t4, $f10 ## $f10 = 0.00
/* 00EDC 809E51FC 00000000 */ nop
/* 00EE0 809E5200 46805420 */ cvt.s.w $f16, $f10
/* 00EE4 809E5204 46128302 */ mul.s $f12, $f16, $f18
/* 00EE8 809E5208 0C0343B5 */ jal Matrix_RotateZ
/* 00EEC 809E520C 00000000 */ nop
/* 00EF0 809E5210 10000013 */ beq $zero, $zero, .L809E5260
/* 00EF4 809E5214 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
.L809E5218:
/* 00EF8 809E5218 448D2000 */ mtc1 $t5, $f4 ## $f4 = 0.00
/* 00EFC 809E521C 3C01809E */ lui $at, %hi(D_809E562C) ## $at = 809E0000
/* 00F00 809E5220 C428562C */ lwc1 $f8, %lo(D_809E562C)($at)
/* 00F04 809E5224 468021A0 */ cvt.s.w $f6, $f4
/* 00F08 809E5228 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00F0C 809E522C 46083302 */ mul.s $f12, $f6, $f8
/* 00F10 809E5230 0C0342DC */ jal Matrix_RotateX
/* 00F14 809E5234 00000000 */ nop
/* 00F18 809E5238 87AE001C */ lh $t6, 0x001C($sp)
/* 00F1C 809E523C 3C01809E */ lui $at, %hi(D_809E5630) ## $at = 809E0000
/* 00F20 809E5240 C4325630 */ lwc1 $f18, %lo(D_809E5630)($at)
/* 00F24 809E5244 448E5000 */ mtc1 $t6, $f10 ## $f10 = 0.00
/* 00F28 809E5248 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00F2C 809E524C 46805420 */ cvt.s.w $f16, $f10
/* 00F30 809E5250 46128302 */ mul.s $f12, $f16, $f18
/* 00F34 809E5254 0C0343B5 */ jal Matrix_RotateZ
/* 00F38 809E5258 00000000 */ nop
/* 00F3C 809E525C 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
.L809E5260:
/* 00F40 809E5260 3C01C4AF */ lui $at, 0xC4AF ## $at = C4AF0000
/* 00F44 809E5264 44816000 */ mtc1 $at, $f12 ## $f12 = -1400.00
/* 00F48 809E5268 44067000 */ mfc1 $a2, $f14
/* 00F4C 809E526C 0C034261 */ jal Matrix_Translate
/* 00F50 809E5270 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00F54 809E5274 8FBF0014 */ lw $ra, 0x0014($sp)
.L809E5278:
/* 00F58 809E5278 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00F5C 809E527C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00F60 809E5280 03E00008 */ jr $ra
/* 00F64 809E5284 00000000 */ nop

View file

@ -1,58 +0,0 @@
.rdata
glabel D_809E55A8
.asciz "../z_en_daiku_kakariko.c"
.balign 4
glabel D_809E55C4
.asciz "../z_en_daiku_kakariko.c"
.balign 4
.text
glabel func_809E5288
/* 00F68 809E5288 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00F6C 809E528C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00F70 809E5290 AFA40038 */ sw $a0, 0x0038($sp)
/* 00F74 809E5294 AFA5003C */ sw $a1, 0x003C($sp)
/* 00F78 809E5298 AFA60040 */ sw $a2, 0x0040($sp)
/* 00F7C 809E529C AFA70044 */ sw $a3, 0x0044($sp)
/* 00F80 809E52A0 8C850000 */ lw $a1, 0x0000($a0) ## 00000000
/* 00F84 809E52A4 3C06809E */ lui $a2, %hi(D_809E55A8) ## $a2 = 809E0000
/* 00F88 809E52A8 24C655A8 */ addiu $a2, $a2, %lo(D_809E55A8) ## $a2 = 809E55A8
/* 00F8C 809E52AC 27A40020 */ addiu $a0, $sp, 0x0020 ## $a0 = FFFFFFE8
/* 00F90 809E52B0 24070450 */ addiu $a3, $zero, 0x0450 ## $a3 = 00000450
/* 00F94 809E52B4 0C031AB1 */ jal Graph_OpenDisps
/* 00F98 809E52B8 AFA50030 */ sw $a1, 0x0030($sp)
/* 00F9C 809E52BC 8FAF003C */ lw $t7, 0x003C($sp)
/* 00FA0 809E52C0 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00FA4 809E52C4 3C04809E */ lui $a0, %hi(D_809E5590) ## $a0 = 809E0000
/* 00FA8 809E52C8 15E10012 */ bne $t7, $at, .L809E5314
/* 00FAC 809E52CC 8FA50048 */ lw $a1, 0x0048($sp)
/* 00FB0 809E52D0 24845590 */ addiu $a0, $a0, %lo(D_809E5590) ## $a0 = 809E5590
/* 00FB4 809E52D4 0C0346BD */ jal Matrix_MultVec3f
/* 00FB8 809E52D8 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038
/* 00FBC 809E52DC 8FA40030 */ lw $a0, 0x0030($sp)
/* 00FC0 809E52E0 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
/* 00FC4 809E52E4 3C0C809E */ lui $t4, %hi(D_809E5580) ## $t4 = 809E0000
/* 00FC8 809E52E8 8C8302C0 */ lw $v1, 0x02C0($a0) ## 000002C0
/* 00FCC 809E52EC 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 00FD0 809E52F0 AC9802C0 */ sw $t8, 0x02C0($a0) ## 000002C0
/* 00FD4 809E52F4 AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 00FD8 809E52F8 8FA80048 */ lw $t0, 0x0048($sp)
/* 00FDC 809E52FC 8509001C */ lh $t1, 0x001C($t0) ## 0000001C
/* 00FE0 809E5300 312A0003 */ andi $t2, $t1, 0x0003 ## $t2 = 00000000
/* 00FE4 809E5304 000A5880 */ sll $t3, $t2, 2
/* 00FE8 809E5308 018B6021 */ addu $t4, $t4, $t3
/* 00FEC 809E530C 8D8C5580 */ lw $t4, %lo(D_809E5580)($t4)
/* 00FF0 809E5310 AC6C0004 */ sw $t4, 0x0004($v1) ## 00000004
.L809E5314:
/* 00FF4 809E5314 8FAD0038 */ lw $t5, 0x0038($sp)
/* 00FF8 809E5318 3C06809E */ lui $a2, %hi(D_809E55C4) ## $a2 = 809E0000
/* 00FFC 809E531C 24C655C4 */ addiu $a2, $a2, %lo(D_809E55C4) ## $a2 = 809E55C4
/* 01000 809E5320 27A40020 */ addiu $a0, $sp, 0x0020 ## $a0 = FFFFFFE8
/* 01004 809E5324 24070459 */ addiu $a3, $zero, 0x0459 ## $a3 = 00000459
/* 01008 809E5328 0C031AD5 */ jal Graph_CloseDisps
/* 0100C 809E532C 8DA50000 */ lw $a1, 0x0000($t5) ## 00000000
/* 01010 809E5330 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01014 809E5334 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 01018 809E5338 03E00008 */ jr $ra
/* 0101C 809E533C 00000000 */ nop

View file

@ -1,34 +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_Daiku_Kakariko_InitVars
.word 0x01BC0400, 0x00000019, 0x01220000, 0x00000308
.word EnDaikuKakariko_Init
.word EnDaikuKakariko_Destroy
.word EnDaikuKakariko_Update
.word EnDaikuKakariko_Draw
glabel D_809E54B0
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00120042, 0x00000000, 0x00000000
glabel D_809E54DC
.word 0x00000000, 0x00000000, 0xFF000000
glabel D_809E54E8
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_809E5508
.word 0x06001AB0, 0x3F800000, 0x02000000, 0xC0E00000, 0x06007DE0, 0x3F800000, 0x00000000, 0xC0E00000, 0x0600885C, 0x3F800000, 0x00000000, 0xC0E00000, 0x06000C44, 0x3F800000, 0x00000000, 0xC0E00000, 0x06000600, 0x3F800000, 0x00000000, 0xC0E00000, 0x06008164, 0x3F800000, 0x00000000, 0xC0E00000
glabel D_809E5568
.word 0x008000B0, 0x00700470
glabel D_809E5570
.word 0x00000001, 0x00000002, 0x00000003, 0x00000004
glabel D_809E5580
.word 0x06005BD0, 0x06005AC0, 0x06005990, 0x06005880
glabel D_809E5590
.word 0x442F0000, 0x44898000, 0x00000000, 0x00000000

View file

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

View file

@ -1061,7 +1061,7 @@ typedef struct {
/* 0x0E */ Vec3s unk_0E;
/* 0x14 */ f32 unk_14;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ char unk_24[0x4];
/* 0x24 */ s16 unk_24;
} struct_80034A14_arg1; // size = 0x28
typedef struct {

3
spec
View file

@ -2058,8 +2058,7 @@ endseg
beginseg
name "ovl_En_Daiku_Kakariko"
include "build/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o"
include "build/data/overlays/actors/z_en_daiku_kakariko.data.o"
include "build/data/overlays/actors/z_en_daiku_kakariko.reloc.o"
include "build/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o"
endseg
beginseg

View file

@ -1,17 +1,32 @@
/*
* File: z_en_daiku_kakariko.c
* Overlay: ovl_En_Daiku_Kakariko
* Description: Kakariko Village Carpenters
*/
#include "z_en_daiku_kakariko.h"
#define FLAGS 0x00000019
#define THIS ((EnDaikuKakariko*)thisx)
typedef enum {
/* 0x0 */ CARPENTER_ICHIRO, // Red and purple pants, normal hair
/* 0x1 */ CARPENTER_SABOORO, // Light blue pants
/* 0x2 */ CARPENTER_JIRO, // Green pants
/* 0x3 */ CARPENTER_SHIRO // Pink and purple pants, two-spiked hair
} KakarikoCarpenterType;
void EnDaikuKakariko_Init(Actor* thisx, GlobalContext* globalCtx);
void EnDaikuKakariko_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnDaikuKakariko_Update(Actor* thisx, GlobalContext* globalCtx);
void EnDaikuKakariko_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06007958;
void EnDaikuKakariko_Wait(EnDaikuKakariko* this, GlobalContext* globalCtx);
void EnDaikuKakariko_Run(EnDaikuKakariko* this, GlobalContext* globalCtx);
extern FlexSkeletonHeader D_06007958;
/*
const ActorInit En_Daiku_Kakariko_InitVars = {
ACTOR_EN_DAIKU_KAKARIKO,
ACTORCAT_NPC,
@ -24,7 +39,7 @@ const ActorInit En_Daiku_Kakariko_InitVars = {
(ActorFunc)EnDaikuKakariko_Draw,
};
static ColliderCylinderInit D_809E54B0 = {
static ColliderCylinderInit sCylinderInit = {
{
COLTYPE_NONE,
AT_NONE,
@ -43,29 +58,464 @@ static ColliderCylinderInit D_809E54B0 = {
},
{ 18, 66, 0, { 0, 0, 0 } },
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E4320.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/EnDaikuKakariko_Init.s")
static CollisionCheckInfoInit2 sColChkInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/EnDaikuKakariko_Destroy.s")
static DamageTable sDamageTable = { 0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E474C.s")
static struct_D_80AA1678 sAnimations[] = {
{ 0x06001AB0, 1.0f, 2, -7.0f }, { 0x06007DE0, 1.0f, 0, -7.0f }, { 0x0600885C, 1.0f, 0, -7.0f },
{ 0x06000C44, 1.0f, 0, -7.0f }, { 0x06000600, 1.0f, 0, -7.0f }, { 0x06008164, 1.0f, 0, -7.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E47EC.s")
void EnDaikuKakariko_SetAnimFromIndex(EnDaikuKakariko* this, s32 animIndex, s32* currentAnimIndex) {
f32 morphFrames;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E49A8.s")
if ((*currentAnimIndex < 0) || (animIndex == *currentAnimIndex)) {
morphFrames = 0.0f;
} else {
morphFrames = sAnimations[animIndex].transitionRate;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E4A7C.s")
Animation_Change(&this->skelAnime, sAnimations[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimations[animIndex].animation), sAnimations[animIndex].mode,
morphFrames);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E4B14.s")
*currentAnimIndex = animIndex;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E4BC4.s")
void EnDaikuKakariko_Init(Actor* thisx, GlobalContext* globalCtx) {
static u16 initFlags[] = { 0x0080, 0x00B0, 0x0070, 0x0470 }; // List of inital values for this->flags
EnDaikuKakariko* this = THIS;
s32 pad;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/EnDaikuKakariko_Update.s")
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
switch (globalCtx->sceneNum) {
case SCENE_SPOT01:
if (gSaveContext.nightFlag == 0) {
this->flags |= 1;
this->flags |= initFlags[this->actor.params & 3];
}
break;
case SCENE_KAKARIKO:
if (gSaveContext.nightFlag == 1) {
this->flags |= 2;
}
break;
case SCENE_DRAG:
this->flags |= 4;
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E50B4.s")
if (!(this->flags & 7)) {
Actor_Kill(&this->actor);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/func_809E5288.s")
if (gSaveContext.nightFlag == 1) {
this->flags |= 8;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Daiku_Kakariko/EnDaikuKakariko_Draw.s")
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 40.0f);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06007958, NULL, &this->jointTable, &this->morphTable, 17);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInit);
Animation_Change(&this->skelAnime, sAnimations->animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimations->animation), sAnimations->mode, sAnimations->transitionRate);
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4);
this->actor.gravity = 0.0f;
this->runSpeed = 3.0f;
this->actor.uncullZoneForward = 1200.0f;
this->actor.targetMode = 6;
this->currentAnimIndex = -1;
if (this->flags & 0x40) {
this->actor.gravity = -1.0f;
}
if (this->flags & 0x10) {
EnDaikuKakariko_SetAnimFromIndex(this, 3, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_Run;
} else {
if (this->flags & 8) {
if (((this->actor.params & 3) == CARPENTER_SABOORO) || ((this->actor.params & 3) == CARPENTER_SHIRO)) {
EnDaikuKakariko_SetAnimFromIndex(this, 5, &this->currentAnimIndex);
this->flags |= 0x800;
} else {
EnDaikuKakariko_SetAnimFromIndex(this, 1, &this->currentAnimIndex);
}
this->skelAnime.curFrame = (s32)(Rand_ZeroOne() * this->skelAnime.endFrame);
} else {
EnDaikuKakariko_SetAnimFromIndex(this, 0, &this->currentAnimIndex);
this->skelAnime.curFrame = (s32)(Rand_ZeroOne() * this->skelAnime.endFrame);
}
this->flags |= 0x100;
this->actionFunc = EnDaikuKakariko_Wait;
}
}
void EnDaikuKakariko_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnDaikuKakariko* this = THIS;
Collider_DestroyCylinder(globalCtx, &this->collider);
}
s32 EnDaikuKakariko_GetTalkState(EnDaikuKakariko* this, GlobalContext* globalCtx) {
s32 talkState = 2;
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx))) {
switch (this->actor.textId) {
case 0x6061:
gSaveContext.infTable[23] |= 0x40;
break;
case 0x6064:
gSaveContext.infTable[23] |= 0x100;
break;
}
talkState = 0;
}
return talkState;
}
void EnDaikuKakariko_HandleTalking(EnDaikuKakariko* this, GlobalContext* globalCtx) {
static s32 maskReactionSets[] = { 1, 2, 3, 4 };
s16 sp26;
s16 sp24;
if (this->talkState == 2) {
this->talkState = EnDaikuKakariko_GetTalkState(this, globalCtx);
} else if (func_8002F194(&this->actor, globalCtx)) {
this->talkState = 2;
} else {
func_8002F374(globalCtx, &this->actor, &sp26, &sp24);
if ((sp26 >= 0) && (sp26 <= 320) && (sp24 >= 0) && (sp24 <= 240) && (this->talkState == 0) &&
(func_8002F2CC(&this->actor, globalCtx, 100.0f) == 1)) {
this->actor.textId = Text_GetFaceReaction(globalCtx, maskReactionSets[this->actor.params & 3]);
if (this->actor.textId == 0) {
switch (this->actor.params & 3) {
case 0:
if (this->flags & 8) {
this->actor.textId = 0x5076;
} else {
this->actor.textId = 0x5075;
}
break;
case 1:
if (this->flags & 1) {
this->actor.textId = 0x502A;
} else {
this->actor.textId = 0x5074;
}
break;
case 2:
if (this->flags & 1) {
this->actor.textId = 0x506A;
} else {
this->actor.textId = 0x506B;
}
break;
case 3:
if (this->flags & 1) {
this->actor.textId = 0x5077;
} else {
this->actor.textId = 0x5078;
}
break;
}
}
}
}
}
void EnDaikuKakariko_Talk(EnDaikuKakariko* this, GlobalContext* globalCtx) {
if (SkelAnime_Update(&this->skelAnime)) {
EnDaikuKakariko_SetAnimFromIndex(this, 3, &this->currentAnimIndex);
}
EnDaikuKakariko_HandleTalking(this, globalCtx);
if (this->talkState == 0) {
if (this->flags & 0x10) {
EnDaikuKakariko_SetAnimFromIndex(this, 3, &this->currentAnimIndex);
this->flags &= ~0x0300;
this->actionFunc = EnDaikuKakariko_Run;
return;
}
if (!(this->flags & 8)) {
EnDaikuKakariko_SetAnimFromIndex(this, 0, &this->currentAnimIndex);
}
if ((this->flags & 0x800) == 0) {
this->flags &= ~0x0200;
this->flags |= 0x100;
}
this->actionFunc = EnDaikuKakariko_Wait;
}
}
void EnDaikuKakariko_Wait(EnDaikuKakariko* this, GlobalContext* globalCtx) {
EnDaikuKakariko_HandleTalking(this, globalCtx);
if (SkelAnime_Update(&this->skelAnime)) {
EnDaikuKakariko_SetAnimFromIndex(this, 0, &this->currentAnimIndex);
}
if (this->talkState != 0) {
if (!(this->flags & 8)) {
EnDaikuKakariko_SetAnimFromIndex(this, 4, &this->currentAnimIndex);
}
if (!(this->flags & 0x800)) {
this->flags |= 0x200;
this->flags &= ~0x0100;
}
this->actionFunc = EnDaikuKakariko_Talk;
}
}
void EnDaikuKakariko_StopRunning(EnDaikuKakariko* this, GlobalContext* globalCtx) {
if (SkelAnime_Update(&this->skelAnime)) {
this->timer--;
if (this->timer <= 0) {
EnDaikuKakariko_SetAnimFromIndex(this, 3, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_Run;
} else {
this->skelAnime.curFrame = this->skelAnime.startFrame;
}
}
EnDaikuKakariko_HandleTalking(this, globalCtx);
if (this->talkState != 0) {
this->flags |= 0x200;
EnDaikuKakariko_SetAnimFromIndex(this, 4, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_Talk;
}
}
void EnDaikuKakariko_Run(EnDaikuKakariko* this, GlobalContext* globalCtx) {
s32 pad;
Path* path;
Vec3s* pathPos;
f32 xDist;
f32 zDist;
s16 runAngle;
f32 runDist;
s16 angleStepDiff;
s32 run;
do {
path = &globalCtx->setupPathList[(this->actor.params >> 8) & 0xFF];
pathPos = &((Vec3s*)SEGMENTED_TO_VIRTUAL(path->points))[this->waypoint];
xDist = pathPos->x - this->actor.world.pos.x;
zDist = pathPos->z - this->actor.world.pos.z;
runAngle = Math_FAtan2F(xDist, zDist) * (32768.0f / M_PI);
runDist = sqrtf((xDist * xDist) + (zDist * zDist));
run = false;
if (runDist <= 10.0f) {
if (this->pathContinue == false) {
this->waypoint++;
if (this->waypoint >= path->count) {
if (this->flags & 0x20) {
this->waypoint = path->count - 2;
this->pathContinue = true;
this->run = run = false;
if (this->flags & 0x400) {
this->timer = 2;
EnDaikuKakariko_SetAnimFromIndex(this, 0, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_StopRunning;
return;
}
} else {
this->waypoint = 0;
run = true;
}
} else {
this->run = run = true;
}
} else {
this->waypoint--;
if (this->waypoint < 0) {
this->waypoint = 1;
this->pathContinue = false;
this->run = run = false;
if (this->flags & 0x400) {
this->timer = 2;
EnDaikuKakariko_SetAnimFromIndex(this, 0, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_StopRunning;
return;
}
} else {
run = true;
}
}
}
} while (run);
angleStepDiff = Math_SmoothStepToS(&this->actor.shape.rot.y, runAngle, 1, 5000, 0);
this->actor.world.rot.y = this->actor.shape.rot.y;
if (this->run == false) {
if (angleStepDiff == 0) {
this->run = true;
} else {
this->actor.speedXZ = 0.0f;
}
}
if (this->run == true) {
Math_SmoothStepToF(&this->actor.speedXZ, this->runSpeed, 0.8f, runDist, 0.0f);
}
Actor_MoveForward(&this->actor);
if (this->flags & 0x40) {
Actor_UpdateBgCheckInfo(globalCtx, this, 0.0f, 0.0f, 0.0f, 4);
} else if (this->flags & 0x80) {
this->runFlag |= 1;
this->flags &= ~0x0080;
} else if (this->runFlag & 1) {
Actor_UpdateBgCheckInfo(globalCtx, this, 0.0f, 0.0f, 0.0f, 4);
this->runFlag &= ~1;
}
SkelAnime_Update(&this->skelAnime);
EnDaikuKakariko_HandleTalking(this, globalCtx);
if (this->talkState != 0) {
this->flags |= 0x200;
EnDaikuKakariko_SetAnimFromIndex(this, 4, &this->currentAnimIndex);
this->actionFunc = EnDaikuKakariko_Talk;
}
}
void EnDaikuKakariko_Update(Actor* thisx, GlobalContext* globalCtx) {
EnDaikuKakariko* this = THIS;
s32 pad;
Player* player = PLAYER;
s32 pad2;
if (this->currentAnimIndex == 3) {
if (((s32)this->skelAnime.curFrame == 6) || ((s32)this->skelAnime.curFrame == 15)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_MORIBLIN_WALK);
}
}
Collider_UpdateCylinder(&this->actor, &this->collider);
if (this->flags & 4) {
this->collider.dim.pos.x -= 27;
this->collider.dim.pos.z -= 27;
this->collider.dim.radius = 63;
}
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
this->actionFunc(this, globalCtx);
this->npcInfo.unk_18.x = player->actor.focus.pos.x;
this->npcInfo.unk_18.y = player->actor.focus.pos.y;
this->npcInfo.unk_18.z = player->actor.focus.pos.z;
if (this->flags & 0x100) {
this->neckAngleTarget.x = 5900;
this->flags |= 0x1000;
func_80034A14(&this->actor, &this->npcInfo, 0, 2);
} else if (this->flags & 0x200) {
this->neckAngleTarget.x = 5900;
this->flags |= 0x1000;
func_80034A14(&this->actor, &this->npcInfo, 0, 4);
}
Math_SmoothStepToS(&this->neckAngle.x, this->neckAngleTarget.x, 1, 1820, 0);
}
s32 EnDaikuKakariko_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
void* thisx) {
EnDaikuKakariko* this = THIS;
Vec3s angle;
switch (limbIndex) {
case 8:
angle = this->npcInfo.unk_0E;
Matrix_RotateX(-(angle.y * (M_PI / 32768.0f)), MTXMODE_APPLY);
Matrix_RotateZ(-(angle.x * (M_PI / 32768.0f)), MTXMODE_APPLY);
break;
case 15:
Matrix_Translate(1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
angle = this->npcInfo.unk_08;
if (this->flags & 0x1000) {
osSyncPrintf("<%d>\n", this->neckAngle.x);
Matrix_RotateX((angle.y + this->neckAngle.y) * (M_PI / 32768.0f), MTXMODE_APPLY);
Matrix_RotateZ((angle.x + this->neckAngle.x) * (M_PI / 32768.0f), MTXMODE_APPLY);
} else {
Matrix_RotateX(angle.y * (M_PI / 32768.0f), MTXMODE_APPLY);
Matrix_RotateZ(angle.x * (M_PI / 32768.0f), MTXMODE_APPLY);
}
Matrix_Translate(-1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
break;
}
return 0;
}
void EnDaikuKakariko_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
static Gfx* carpenterHeadDLists[] = { 0x06005BD0, 0x06005AC0, 0x06005990, 0x06005880 };
static Vec3f unkVec = { 700.0f, 1100.0f, 0.0f };
EnDaikuKakariko* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_daiku_kakariko.c", 1104);
if (limbIndex == 15) {
Matrix_MultVec3f(&unkVec, &this->actor.focus.pos);
gSPDisplayList(POLY_OPA_DISP++, carpenterHeadDLists[this->actor.params & 3]);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_daiku_kakariko.c", 1113);
}
void EnDaikuKakariko_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnDaikuKakariko* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_daiku_kakariko.c", 1124);
func_80093D18(globalCtx->state.gfxCtx);
if ((thisx->params & 3) == CARPENTER_ICHIRO) {
gDPSetEnvColor(POLY_OPA_DISP++, 170, 10, 70, 255);
} else if ((thisx->params & 3) == CARPENTER_SABOORO) {
gDPSetEnvColor(POLY_OPA_DISP++, 170, 200, 255, 255);
} else if ((thisx->params & 3) == CARPENTER_JIRO) {
gDPSetEnvColor(POLY_OPA_DISP++, 0, 230, 70, 255);
} else if ((thisx->params & 3) == CARPENTER_SHIRO) {
gDPSetEnvColor(POLY_OPA_DISP++, 200, 0, 150, 255);
}
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
EnDaikuKakariko_OverrideLimbDraw, EnDaikuKakariko_PostLimbDraw, thisx);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_daiku_kakariko.c", 1151);
}

View file

@ -6,9 +6,28 @@
struct EnDaikuKakariko;
typedef void (*EnDaikuKakarikoActionFunc)(struct EnDaikuKakariko*, GlobalContext*);
typedef struct EnDaikuKakariko {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1BC];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ EnDaikuKakarikoActionFunc actionFunc;
/* 0x0194 */ ColliderCylinder collider;
/* 0x01E0 */ s32 talkState;
/* 0x01E4 */ s32 waypoint;
/* 0x01E8 */ f32 runSpeed;
/* 0x01EC */ s32 currentAnimIndex;
/* 0x01F0 */ char unk_1F0[8]; // Unused variables?
/* 0x01F8 */ s32 pathContinue; // If true, continue looping through the path data
/* 0x01FC */ s32 run; // If true the carpenter will run
/* 0x0200 */ u16 flags;
/* 0x0202 */ u16 runFlag;
/* 0x0204 */ struct_80034A14_arg1 npcInfo; // Info related to NPCs and turning their head towards the player
/* 0x022C */ Vec3s jointTable[17];
/* 0x0292 */ Vec3s morphTable[17];
/* 0x02F8 */ s32 timer;
/* 0x02FC */ Vec3s neckAngle;
/* 0x0302 */ Vec3s neckAngleTarget;
} EnDaikuKakariko; // size = 0x0308
extern const ActorInit En_Daiku_Kakariko_InitVars;