1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-29 16:26:18 +00:00

En_Dns OK (#477)

* En_Dns OK

All functions matching, several named. I left unnamed the really short ones that just do purchase checks, and the string of action functions near the end where the purposes are somewhat opaque.

* Addressed all comments
(with the exception of one that didn't match)

* missed the header

* Apply suggestions from code review

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

* else if review comment addressed

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
EllipticEllipsis 2020-12-02 00:07:38 +00:00 committed by GitHub
parent 140a554f8e
commit 330bd35d23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 480 additions and 1383 deletions

View file

@ -1,12 +0,0 @@
glabel EnDns_Destroy
/* 001A4 809EF4F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001A8 809EF4F8 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 001AC 809EF4FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 001B0 809EF500 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 001B4 809EF504 0C0170EB */ jal Collider_DestroyCylinder
/* 001B8 809EF508 24C5026C */ addiu $a1, $a2, 0x026C ## $a1 = 0000026C
/* 001BC 809EF50C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001C0 809EF510 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001C4 809EF514 03E00008 */ jr $ra
/* 001C8 809EF518 00000000 */ nop

View file

@ -1,22 +0,0 @@
glabel EnDns_Draw
/* 0101C 809F036C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 01020 809F0370 AFBF0024 */ sw $ra, 0x0024($sp)
/* 01024 809F0374 AFA40028 */ sw $a0, 0x0028($sp)
/* 01028 809F0378 AFA5002C */ sw $a1, 0x002C($sp)
/* 0102C 809F037C 0C024F46 */ jal func_80093D18
/* 01030 809F0380 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
/* 01034 809F0384 8FA20028 */ lw $v0, 0x0028($sp)
/* 01038 809F0388 8FA4002C */ lw $a0, 0x002C($sp)
/* 0103C 809F038C 8C450150 */ lw $a1, 0x0150($v0) ## 00000150
/* 01040 809F0390 8C46016C */ lw $a2, 0x016C($v0) ## 0000016C
/* 01044 809F0394 9047014E */ lbu $a3, 0x014E($v0) ## 0000014E
/* 01048 809F0398 AFA00014 */ sw $zero, 0x0014($sp)
/* 0104C 809F039C AFA00010 */ sw $zero, 0x0010($sp)
/* 01050 809F03A0 0C0286B2 */ jal SkelAnime_DrawSV
/* 01054 809F03A4 AFA20018 */ sw $v0, 0x0018($sp)
/* 01058 809F03A8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0105C 809F03AC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 01060 809F03B0 03E00008 */ jr $ra
/* 01064 809F03B4 00000000 */ nop
/* 01068 809F03B8 00000000 */ nop
/* 0106C 809F03BC 00000000 */ nop

View file

@ -1,172 +0,0 @@
.rdata
glabel D_809F0560
.asciz " "
.balign 4
glabel D_809F057C
.asciz " "
.balign 4
glabel D_809F0598
.asciz " "
.balign 4
glabel D_809F05B4
.asciz " "
.balign 4
glabel D_809F05D0
.asciz " "
.balign 4
glabel D_809F05EC
.asciz " "
.balign 4
glabel D_809F0608
.asciz " "
.balign 4
glabel D_809F0624
.asciz " "
.balign 4
glabel D_809F0640
.asciz " "
.balign 4
glabel D_809F065C
.asciz ""
.balign 4
glabel D_809F0678
.asciz ""
.balign 4
glabel D_809F0694
.asciz "\x1b[31m[ arg_data = %d ]\x1b[m\n"
.balign 4
glabel D_809F06C8
.asciz "\x1b[32m %s \x1b[m\n"
.balign 4
.text
glabel EnDns_Init
/* 00000 809EF350 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00004 809EF354 AFBF002C */ sw $ra, 0x002C($sp)
/* 00008 809EF358 AFB00028 */ sw $s0, 0x0028($sp)
/* 0000C 809EF35C AFA50044 */ sw $a1, 0x0044($sp)
/* 00010 809EF360 8486001C */ lh $a2, 0x001C($a0) ## 0000001C
/* 00014 809EF364 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 809EF368 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 0001C 809EF36C 04C10009 */ bgez $a2, .L809EF394
/* 00020 809EF370 3C04809F */ lui $a0, %hi(D_809F06C8) ## $a0 = 809F0000
/* 00024 809EF374 3C04809F */ lui $a0, %hi(D_809F0694) ## $a0 = 809F0000
/* 00028 809EF378 24840694 */ addiu $a0, $a0, %lo(D_809F0694) ## $a0 = 809F0694
/* 0002C 809EF37C 0C00084C */ jal osSyncPrintf
/* 00030 809EF380 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
/* 00034 809EF384 0C00B55C */ jal Actor_Kill
/* 00038 809EF388 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0003C 809EF38C 10000055 */ beq $zero, $zero, .L809EF4E4
/* 00040 809EF390 8FBF002C */ lw $ra, 0x002C($sp)
.L809EF394:
/* 00044 809EF394 14C1000D */ bne $a2, $at, .L809EF3CC
/* 00048 809EF398 248406C8 */ addiu $a0, $a0, %lo(D_809F06C8) ## $a0 = 000006C8
/* 0004C 809EF39C 3C0E8016 */ lui $t6, %hi(gSaveContext+4)
/* 00050 809EF3A0 8DCEE664 */ lw $t6, %lo(gSaveContext+4)($t6)
/* 00054 809EF3A4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00058 809EF3A8 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011
/* 0005C 809EF3AC 11C00003 */ beq $t6, $zero, .L809EF3BC
/* 00060 809EF3B0 240F0003 */ addiu $t7, $zero, 0x0003 ## $t7 = 00000003
/* 00064 809EF3B4 10000001 */ beq $zero, $zero, .L809EF3BC
/* 00068 809EF3B8 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
.L809EF3BC:
/* 0006C 809EF3BC 54410004 */ bnel $v0, $at, .L809EF3D0
/* 00070 809EF3C0 0006C080 */ sll $t8, $a2, 2
/* 00074 809EF3C4 A60F001C */ sh $t7, 0x001C($s0) ## 0000001C
/* 00078 809EF3C8 8606001C */ lh $a2, 0x001C($s0) ## 0000001C
.L809EF3CC:
/* 0007C 809EF3CC 0006C080 */ sll $t8, $a2, 2
.L809EF3D0:
/* 00080 809EF3D0 3C05809F */ lui $a1, %hi(D_809F0424) ## $a1 = 809F0000
/* 00084 809EF3D4 00B82821 */ addu $a1, $a1, $t8
/* 00088 809EF3D8 0C00084C */ jal osSyncPrintf
/* 0008C 809EF3DC 8CA50424 */ lw $a1, %lo(D_809F0424)($a1)
/* 00090 809EF3E0 3C05809F */ lui $a1, %hi(D_809F052C) ## $a1 = 809F0000
/* 00094 809EF3E4 24A5052C */ addiu $a1, $a1, %lo(D_809F052C) ## $a1 = 809F052C
/* 00098 809EF3E8 0C01E037 */ jal Actor_ProcessInitChain
/* 0009C 809EF3EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000A0 809EF3F0 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
/* 000A4 809EF3F4 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
/* 000A8 809EF3F8 26190190 */ addiu $t9, $s0, 0x0190 ## $t9 = 00000190
/* 000AC 809EF3FC 260801FC */ addiu $t0, $s0, 0x01FC ## $t0 = 000001FC
/* 000B0 809EF400 24090012 */ addiu $t1, $zero, 0x0012 ## $t1 = 00000012
/* 000B4 809EF404 AFA90018 */ sw $t1, 0x0018($sp)
/* 000B8 809EF408 AFA80014 */ sw $t0, 0x0014($sp)
/* 000BC 809EF40C AFB90010 */ sw $t9, 0x0010($sp)
/* 000C0 809EF410 24E709A0 */ addiu $a3, $a3, 0x09A0 ## $a3 = 060009A0
/* 000C4 809EF414 24C641A8 */ addiu $a2, $a2, 0x41A8 ## $a2 = 060041A8
/* 000C8 809EF418 8FA40044 */ lw $a0, 0x0044($sp)
/* 000CC 809EF41C 0C0291BE */ jal SkelAnime_InitSV
/* 000D0 809EF420 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 000D4 809EF424 2605026C */ addiu $a1, $s0, 0x026C ## $a1 = 0000026C
/* 000D8 809EF428 AFA50034 */ sw $a1, 0x0034($sp)
/* 000DC 809EF42C 0C0170D9 */ jal Collider_InitCylinder
/* 000E0 809EF430 8FA40044 */ lw $a0, 0x0044($sp)
/* 000E4 809EF434 3C07809F */ lui $a3, %hi(D_809F03E0) ## $a3 = 809F0000
/* 000E8 809EF438 8FA50034 */ lw $a1, 0x0034($sp)
/* 000EC 809EF43C 24E703E0 */ addiu $a3, $a3, %lo(D_809F03E0) ## $a3 = 809F03E0
/* 000F0 809EF440 8FA40044 */ lw $a0, 0x0044($sp)
/* 000F4 809EF444 0C017114 */ jal Collider_SetCylinder_Set3
/* 000F8 809EF448 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000FC 809EF44C 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
/* 00100 809EF450 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
/* 00104 809EF454 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00108 809EF458 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 0010C 809EF45C 0C00AC78 */ jal ActorShape_Init
/* 00110 809EF460 3C07420C */ lui $a3, 0x420C ## $a3 = 420C0000
/* 00114 809EF464 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 00118 809EF468 3C0C809F */ lui $t4, %hi(D_809F040C) ## $t4 = 809F0000
/* 0011C 809EF46C 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00120 809EF470 000A5840 */ sll $t3, $t2, 1
/* 00124 809EF474 018B6021 */ addu $t4, $t4, $t3
/* 00128 809EF478 958C040C */ lhu $t4, %lo(D_809F040C)($t4)
/* 0012C 809EF47C 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00130 809EF480 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00134 809EF484 0C00B58B */ jal Actor_SetScale
/* 00138 809EF488 A60C010E */ sh $t4, 0x010E($s0) ## 0000010E
/* 0013C 809EF48C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00140 809EF490 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00144 809EF494 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00148 809EF498 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 0014C 809EF49C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00150 809EF4A0 240D00FF */ addiu $t5, $zero, 0x00FF ## $t5 = 000000FF
/* 00154 809EF4A4 3C18809F */ lui $t8, %hi(D_809F0500) ## $t8 = 809F0000
/* 00158 809EF4A8 000E7880 */ sll $t7, $t6, 2
/* 0015C 809EF4AC A20D00AE */ sb $t5, 0x00AE($s0) ## 000000AE
/* 00160 809EF4B0 A20202BB */ sb $v0, 0x02BB($s0) ## 000002BB
/* 00164 809EF4B4 A20202BC */ sb $v0, 0x02BC($s0) ## 000002BC
/* 00168 809EF4B8 A20002BD */ sb $zero, 0x02BD($s0) ## 000002BD
/* 0016C 809EF4BC 030FC021 */ addu $t8, $t8, $t7
/* 00170 809EF4C0 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 00174 809EF4C4 E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
/* 00178 809EF4C8 E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C
/* 0017C 809EF4CC 8F180500 */ lw $t8, %lo(D_809F0500)($t8)
/* 00180 809EF4D0 3C19809F */ lui $t9, %hi(func_809EFB84) ## $t9 = 809F0000
/* 00184 809EF4D4 2739FB84 */ addiu $t9, $t9, %lo(func_809EFB84) ## $t9 = 809EFB84
/* 00188 809EF4D8 AE190268 */ sw $t9, 0x0268($s0) ## 00000268
/* 0018C 809EF4DC AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00190 809EF4E0 8FBF002C */ lw $ra, 0x002C($sp)
.L809EF4E4:
/* 00194 809EF4E4 8FB00028 */ lw $s0, 0x0028($sp)
/* 00198 809EF4E8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 0019C 809EF4EC 03E00008 */ jr $ra
/* 001A0 809EF4F0 00000000 */ nop

View file

@ -1,68 +0,0 @@
glabel EnDns_Update
/* 00F30 809F0280 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00F34 809F0284 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00F38 809F0288 AFB00020 */ sw $s0, 0x0020($sp)
/* 00F3C 809F028C AFA5003C */ sw $a1, 0x003C($sp)
/* 00F40 809F0290 848E02B8 */ lh $t6, 0x02B8($a0) ## 000002B8
/* 00F44 809F0294 8498001C */ lh $t8, 0x001C($a0) ## 0000001C
/* 00F48 809F0298 3C08809F */ lui $t0, %hi(D_809F040C) ## $t0 = 809F0000
/* 00F4C 809F029C 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 00F50 809F02A0 0018C840 */ sll $t9, $t8, 1
/* 00F54 809F02A4 A48F02B8 */ sh $t7, 0x02B8($a0) ## 000002B8
/* 00F58 809F02A8 01194021 */ addu $t0, $t0, $t9
/* 00F5C 809F02AC 9508040C */ lhu $t0, %lo(D_809F040C)($t0)
/* 00F60 809F02B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00F64 809F02B4 3C054270 */ lui $a1, 0x4270 ## $a1 = 42700000
/* 00F68 809F02B8 0C00B56E */ jal Actor_SetHeight
/* 00F6C 809F02BC A488010E */ sh $t0, 0x010E($a0) ## 0000010E
/* 00F70 809F02C0 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00F74 809F02C4 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00F78 809F02C8 0C00B58B */ jal Actor_SetScale
/* 00F7C 809F02CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F80 809F02D0 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00F84 809F02D4 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00F88 809F02D8 0C00B638 */ jal Actor_MoveForward
/* 00F8C 809F02DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F90 809F02E0 8E190268 */ lw $t9, 0x0268($s0) ## 00000268
/* 00F94 809F02E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F98 809F02E8 8FA5003C */ lw $a1, 0x003C($sp)
/* 00F9C 809F02EC 0320F809 */ jalr $ra, $t9
/* 00FA0 809F02F0 00000000 */ nop
/* 00FA4 809F02F4 920902BC */ lbu $t1, 0x02BC($s0) ## 000002BC
/* 00FA8 809F02F8 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00FAC 809F02FC 8FA4003C */ lw $a0, 0x003C($sp)
/* 00FB0 809F0300 11200008 */ beq $t1, $zero, .L809F0324
/* 00FB4 809F0304 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00FB8 809F0308 44810000 */ mtc1 $at, $f0 ## $f0 = 20.00
/* 00FBC 809F030C 240A0004 */ addiu $t2, $zero, 0x0004 ## $t2 = 00000004
/* 00FC0 809F0310 AFAA0014 */ sw $t2, 0x0014($sp)
/* 00FC4 809F0314 44060000 */ mfc1 $a2, $f0
/* 00FC8 809F0318 44070000 */ mfc1 $a3, $f0
/* 00FCC 809F031C 0C00B92D */ jal func_8002E4B4
/* 00FD0 809F0320 E7A00010 */ swc1 $f0, 0x0010($sp)
.L809F0324:
/* 00FD4 809F0324 920B02BB */ lbu $t3, 0x02BB($s0) ## 000002BB
/* 00FD8 809F0328 2606026C */ addiu $a2, $s0, 0x026C ## $a2 = 0000026C
/* 00FDC 809F032C 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000026C
/* 00FE0 809F0330 11600009 */ beq $t3, $zero, .L809F0358
/* 00FE4 809F0334 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00FE8 809F0338 0C0189B7 */ jal Collider_CylinderUpdate
/* 00FEC 809F033C AFA6002C */ sw $a2, 0x002C($sp)
/* 00FF0 809F0340 8FA4003C */ lw $a0, 0x003C($sp)
/* 00FF4 809F0344 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00FF8 809F0348 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00FFC 809F034C 8FA6002C */ lw $a2, 0x002C($sp)
/* 01000 809F0350 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 01004 809F0354 00812821 */ addu $a1, $a0, $at
.L809F0358:
/* 01008 809F0358 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0100C 809F035C 8FB00020 */ lw $s0, 0x0020($sp)
/* 01010 809F0360 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 01014 809F0364 03E00008 */ jr $ra
/* 01018 809F0368 00000000 */ nop

View file

@ -1,37 +0,0 @@
glabel func_809EF51C
/* 001CC 809EF51C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 001D0 809EF520 AFA50034 */ sw $a1, 0x0034($sp)
/* 001D4 809EF524 93AE0037 */ lbu $t6, 0x0037($sp)
/* 001D8 809EF528 3C18809F */ lui $t8, %hi(D_809F0538) ## $t8 = 809F0000
/* 001DC 809EF52C 27180538 */ addiu $t8, $t8, %lo(D_809F0538) ## $t8 = 809F0538
/* 001E0 809EF530 000E7880 */ sll $t7, $t6, 2
/* 001E4 809EF534 01EE7823 */ subu $t7, $t7, $t6
/* 001E8 809EF538 000F7880 */ sll $t7, $t7, 2
/* 001EC 809EF53C AFBF0024 */ sw $ra, 0x0024($sp)
/* 001F0 809EF540 AFA40030 */ sw $a0, 0x0030($sp)
/* 001F4 809EF544 01F81821 */ addu $v1, $t7, $t8
/* 001F8 809EF548 8C640000 */ lw $a0, 0x0000($v1) ## 00000000
/* 001FC 809EF54C 0C028800 */ jal SkelAnime_GetFrameCount
/* 00200 809EF550 AFA30028 */ sw $v1, 0x0028($sp)
/* 00204 809EF554 8FA80030 */ lw $t0, 0x0030($sp)
/* 00208 809EF558 93B90037 */ lbu $t9, 0x0037($sp)
/* 0020C 809EF55C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00210 809EF560 8FA30028 */ lw $v1, 0x0028($sp)
/* 00214 809EF564 A11902BA */ sb $t9, 0x02BA($t0) ## 000002BA
/* 00218 809EF568 468021A0 */ cvt.s.w $f6, $f4
/* 0021C 809EF56C C4680008 */ lwc1 $f8, 0x0008($v1) ## 00000008
/* 00220 809EF570 90690004 */ lbu $t1, 0x0004($v1) ## 00000004
/* 00224 809EF574 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00228 809EF578 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0022C 809EF57C 2504014C */ addiu $a0, $t0, 0x014C ## $a0 = 0000014C
/* 00230 809EF580 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00234 809EF584 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 00238 809EF588 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 0023C 809EF58C 0C029468 */ jal SkelAnime_ChangeAnim
/* 00240 809EF590 AFA90014 */ sw $t1, 0x0014($sp)
/* 00244 809EF594 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00248 809EF598 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0024C 809EF59C 03E00008 */ jr $ra
/* 00250 809EF5A0 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_809EF5A4
/* 00254 809EF5A4 3C038016 */ lui $v1, %hi(gSaveContext)
/* 00258 809EF5A8 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 0025C 809EF5AC 3C0F8012 */ lui $t7, %hi(gUpgradeMasks+0x1c)
/* 00260 809EF5B0 8DEF71CC */ lw $t7, %lo(gUpgradeMasks+0x1c)($t7)
/* 00264 809EF5B4 8C6E00A0 */ lw $t6, 0x00A0($v1) ## 8015E700
/* 00268 809EF5B8 3C198012 */ lui $t9, %hi(gUpgradeShifts+7)
/* 0026C 809EF5BC 933971FB */ lbu $t9, %lo(gUpgradeShifts+7)($t9)
/* 00270 809EF5C0 01CFC024 */ and $t8, $t6, $t7
/* 00274 809EF5C4 3C028012 */ lui $v0, %hi(gUpgradeCapacities+0x38)
/* 00278 809EF5C8 03384007 */ srav $t0, $t8, $t9
/* 0027C 809EF5CC 00084840 */ sll $t1, $t0, 1
/* 00280 809EF5D0 00491021 */ addu $v0, $v0, $t1
/* 00284 809EF5D4 94427234 */ lhu $v0, %lo(gUpgradeCapacities+0x38)($v0)
/* 00288 809EF5D8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0028C 809EF5DC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00290 809EF5E0 10400009 */ beq $v0, $zero, .L809EF608
/* 00294 809EF5E4 3C0A8012 */ lui $t2, %hi(gItemSlots+1)
/* 00298 809EF5E8 914A7465 */ lbu $t2, %lo(gItemSlots+1)($t2)
/* 0029C 809EF5EC 006A5821 */ addu $t3, $v1, $t2
/* 002A0 809EF5F0 816C008C */ lb $t4, 0x008C($t3) ## 0000008C
/* 002A4 809EF5F4 0182082A */ slt $at, $t4, $v0
/* 002A8 809EF5F8 54200004 */ bnel $at, $zero, .L809EF60C
/* 002AC 809EF5FC 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 002B0 809EF600 10000011 */ beq $zero, $zero, .L809EF648
/* 002B4 809EF604 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809EF608:
/* 002B8 809EF608 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
.L809EF60C:
/* 002BC 809EF60C 846D0034 */ lh $t5, 0x0034($v1) ## 8015E694
/* 002C0 809EF610 85CF0000 */ lh $t7, 0x0000($t6) ## 00000000
/* 002C4 809EF614 01AF082A */ slt $at, $t5, $t7
/* 002C8 809EF618 10200003 */ beq $at, $zero, .L809EF628
/* 002CC 809EF61C 00000000 */ nop
/* 002D0 809EF620 10000009 */ beq $zero, $zero, .L809EF648
/* 002D4 809EF624 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF628:
/* 002D8 809EF628 0C0218E2 */ jal Item_CheckObtainability
/* 002DC 809EF62C 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 002E0 809EF630 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 002E4 809EF634 54410004 */ bnel $v0, $at, .L809EF648
/* 002E8 809EF638 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 002EC 809EF63C 10000002 */ beq $zero, $zero, .L809EF648
/* 002F0 809EF640 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
/* 002F4 809EF644 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
.L809EF648:
/* 002F8 809EF648 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002FC 809EF64C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00300 809EF650 03E00008 */ jr $ra
/* 00304 809EF654 00000000 */ nop

View file

@ -1,50 +0,0 @@
glabel func_809EF658
/* 00308 809EF658 3C038016 */ lui $v1, %hi(gSaveContext)
/* 0030C 809EF65C 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00310 809EF660 3C0F8012 */ lui $t7, %hi(gUpgradeMasks+0x18)
/* 00314 809EF664 8DEF71C8 */ lw $t7, %lo(gUpgradeMasks+0x18)($t7)
/* 00318 809EF668 8C6E00A0 */ lw $t6, 0x00A0($v1) ## 8015E700
/* 0031C 809EF66C 3C198012 */ lui $t9, %hi(gUpgradeShifts+6)
/* 00320 809EF670 933971FA */ lbu $t9, %lo(gUpgradeShifts+6)($t9)
/* 00324 809EF674 01CFC024 */ and $t8, $t6, $t7
/* 00328 809EF678 3C028012 */ lui $v0, %hi(gUpgradeCapacities+0x30)
/* 0032C 809EF67C 03384007 */ srav $t0, $t8, $t9
/* 00330 809EF680 00084840 */ sll $t1, $t0, 1
/* 00334 809EF684 00491021 */ addu $v0, $v0, $t1
/* 00338 809EF688 9442722C */ lhu $v0, %lo(gUpgradeCapacities+0x30)($v0)
/* 0033C 809EF68C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00340 809EF690 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00344 809EF694 10400009 */ beq $v0, $zero, .L809EF6BC
/* 00348 809EF698 3C0A8012 */ lui $t2, %hi(gItemSlots)
/* 0034C 809EF69C 914A7464 */ lbu $t2, %lo(gItemSlots)($t2)
/* 00350 809EF6A0 006A5821 */ addu $t3, $v1, $t2
/* 00354 809EF6A4 816C008C */ lb $t4, 0x008C($t3) ## 0000008C
/* 00358 809EF6A8 0182082A */ slt $at, $t4, $v0
/* 0035C 809EF6AC 54200004 */ bnel $at, $zero, .L809EF6C0
/* 00360 809EF6B0 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 00364 809EF6B4 10000011 */ beq $zero, $zero, .L809EF6FC
/* 00368 809EF6B8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809EF6BC:
/* 0036C 809EF6BC 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
.L809EF6C0:
/* 00370 809EF6C0 846D0034 */ lh $t5, 0x0034($v1) ## 8015E694
/* 00374 809EF6C4 85CF0000 */ lh $t7, 0x0000($t6) ## 00000000
/* 00378 809EF6C8 01AF082A */ slt $at, $t5, $t7
/* 0037C 809EF6CC 10200003 */ beq $at, $zero, .L809EF6DC
/* 00380 809EF6D0 00000000 */ nop
/* 00384 809EF6D4 10000009 */ beq $zero, $zero, .L809EF6FC
/* 00388 809EF6D8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF6DC:
/* 0038C 809EF6DC 0C0218E2 */ jal Item_CheckObtainability
/* 00390 809EF6E0 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00394 809EF6E4 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 00398 809EF6E8 54410004 */ bnel $v0, $at, .L809EF6FC
/* 0039C 809EF6EC 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 003A0 809EF6F0 10000002 */ beq $zero, $zero, .L809EF6FC
/* 003A4 809EF6F4 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
/* 003A8 809EF6F8 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
.L809EF6FC:
/* 003AC 809EF6FC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003B0 809EF700 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003B4 809EF704 03E00008 */ jr $ra
/* 003B8 809EF708 00000000 */ nop

View file

@ -1,14 +0,0 @@
glabel func_809EF70C
/* 003BC 809EF70C 8C8F02C0 */ lw $t7, 0x02C0($a0) ## 000002C0
/* 003C0 809EF710 3C0E8016 */ lui $t6, %hi(gSaveContext+0x34)
/* 003C4 809EF714 85CEE694 */ lh $t6, %lo(gSaveContext+0x34)($t6)
/* 003C8 809EF718 85F80000 */ lh $t8, 0x0000($t7) ## 00000000
/* 003CC 809EF71C 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 003D0 809EF720 01D8082A */ slt $at, $t6, $t8
/* 003D4 809EF724 10200003 */ beq $at, $zero, .L809EF734
/* 003D8 809EF728 00000000 */ nop
/* 003DC 809EF72C 03E00008 */ jr $ra
/* 003E0 809EF730 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF734:
/* 003E4 809EF734 03E00008 */ jr $ra
/* 003E8 809EF738 00000000 */ nop

View file

@ -1,54 +0,0 @@
glabel func_809EF73C
/* 003EC 809EF73C 3C0E8012 */ lui $t6, %hi(gItemSlots+6)
/* 003F0 809EF740 91CE746A */ lbu $t6, %lo(gItemSlots+6)($t6)
/* 003F4 809EF744 3C038016 */ lui $v1, %hi(gSaveContext)
/* 003F8 809EF748 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 003FC 809EF74C 006E1021 */ addu $v0, $v1, $t6
/* 00400 809EF750 904F0074 */ lbu $t7, 0x0074($v0) ## 00000074
/* 00404 809EF754 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00408 809EF758 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 0040C 809EF75C 15E10003 */ bne $t7, $at, .L809EF76C
/* 00410 809EF760 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00414 809EF764 10000022 */ beq $zero, $zero, .L809EF7F0
/* 00418 809EF768 24020003 */ addiu $v0, $zero, 0x0003 ## $v0 = 00000003
.L809EF76C:
/* 0041C 809EF76C 3C088012 */ lui $t0, %hi(gUpgradeMasks+0x14)
/* 00420 809EF770 8D0871C4 */ lw $t0, %lo(gUpgradeMasks+0x14)($t0)
/* 00424 809EF774 8C7900A0 */ lw $t9, 0x00A0($v1) ## 8015E700
/* 00428 809EF778 3C0A8012 */ lui $t2, %hi(gUpgradeShifts+5)
/* 0042C 809EF77C 914A71F9 */ lbu $t2, %lo(gUpgradeShifts+5)($t2)
/* 00430 809EF780 03284824 */ and $t1, $t9, $t0
/* 00434 809EF784 3C0D8012 */ lui $t5, %hi(gUpgradeCapacities+0x28)
/* 00438 809EF788 01495807 */ srav $t3, $t1, $t2
/* 0043C 809EF78C 000B6040 */ sll $t4, $t3, 1
/* 00440 809EF790 01AC6821 */ addu $t5, $t5, $t4
/* 00444 809EF794 95AD7224 */ lhu $t5, %lo(gUpgradeCapacities+0x28)($t5)
/* 00448 809EF798 8058008C */ lb $t8, 0x008C($v0) ## 0000008F
/* 0044C 809EF79C 030D082A */ slt $at, $t8, $t5
/* 00450 809EF7A0 54200004 */ bnel $at, $zero, .L809EF7B4
/* 00454 809EF7A4 8C8F02C0 */ lw $t7, 0x02C0($a0) ## 000002C0
/* 00458 809EF7A8 10000011 */ beq $zero, $zero, .L809EF7F0
/* 0045C 809EF7AC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00460 809EF7B0 8C8F02C0 */ lw $t7, 0x02C0($a0) ## 000002C0
.L809EF7B4:
/* 00464 809EF7B4 846E0034 */ lh $t6, 0x0034($v1) ## 8015E694
/* 00468 809EF7B8 85F90000 */ lh $t9, 0x0000($t7) ## 00000000
/* 0046C 809EF7BC 01D9082A */ slt $at, $t6, $t9
/* 00470 809EF7C0 10200003 */ beq $at, $zero, .L809EF7D0
/* 00474 809EF7C4 00000000 */ nop
/* 00478 809EF7C8 10000009 */ beq $zero, $zero, .L809EF7F0
/* 0047C 809EF7CC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF7D0:
/* 00480 809EF7D0 0C0218E2 */ jal Item_CheckObtainability
/* 00484 809EF7D4 24040058 */ addiu $a0, $zero, 0x0058 ## $a0 = 00000058
/* 00488 809EF7D8 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 0048C 809EF7DC 54410004 */ bnel $v0, $at, .L809EF7F0
/* 00490 809EF7E0 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 00494 809EF7E4 10000002 */ beq $zero, $zero, .L809EF7F0
/* 00498 809EF7E8 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002
/* 0049C 809EF7EC 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
.L809EF7F0:
/* 004A0 809EF7F0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004A4 809EF7F4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004A8 809EF7F8 03E00008 */ jr $ra
/* 004AC 809EF7FC 00000000 */ nop

View file

@ -1,25 +0,0 @@
glabel func_809EF800
/* 004B0 809EF800 3C028016 */ lui $v0, %hi(gSaveContext)
/* 004B4 809EF804 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 004B8 809EF808 3C0E8012 */ lui $t6, %hi(gBitFlags+0x10)
/* 004BC 809EF80C 8DCE7130 */ lw $t6, %lo(gBitFlags+0x10)($t6)
/* 004C0 809EF810 944F009C */ lhu $t7, 0x009C($v0) ## 8015E6FC
/* 004C4 809EF814 01CFC024 */ and $t8, $t6, $t7
/* 004C8 809EF818 53000004 */ beql $t8, $zero, .L809EF82C
/* 004CC 809EF81C 8C8802C0 */ lw $t0, 0x02C0($a0) ## 000002C0
/* 004D0 809EF820 03E00008 */ jr $ra
/* 004D4 809EF824 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809EF828:
/* 004D8 809EF828 8C8802C0 */ lw $t0, 0x02C0($a0) ## 000002C0
.L809EF82C:
/* 004DC 809EF82C 84590034 */ lh $t9, 0x0034($v0) ## 00000035
/* 004E0 809EF830 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 004E4 809EF834 85090000 */ lh $t1, 0x0000($t0) ## 00000000
/* 004E8 809EF838 0329082A */ slt $at, $t9, $t1
/* 004EC 809EF83C 10200003 */ beq $at, $zero, .L809EF84C
/* 004F0 809EF840 00000000 */ nop
/* 004F4 809EF844 03E00008 */ jr $ra
/* 004F8 809EF848 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF84C:
/* 004FC 809EF84C 03E00008 */ jr $ra
/* 00500 809EF850 00000000 */ nop

View file

@ -1,45 +0,0 @@
glabel func_809EF854
/* 00504 809EF854 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00508 809EF858 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 0050C 809EF85C 3C0E8012 */ lui $t6, %hi(gBitFlags+0x4c)
/* 00510 809EF860 8DCE716C */ lw $t6, %lo(gBitFlags+0x4c)($t6)
/* 00514 809EF864 8C4F00A4 */ lw $t7, 0x00A4($v0) ## 8015E704
/* 00518 809EF868 3C198012 */ lui $t9, %hi(gItemSlots+2)
/* 0051C 809EF86C 3C0B8012 */ lui $t3, %hi(gUpgradeMasks+4)
/* 00520 809EF870 01CFC024 */ and $t8, $t6, $t7
/* 00524 809EF874 17000003 */ bne $t8, $zero, .L809EF884
/* 00528 809EF878 3C0D8012 */ lui $t5, %hi(gUpgradeShifts+1)
/* 0052C 809EF87C 03E00008 */ jr $ra
/* 00530 809EF880 24020003 */ addiu $v0, $zero, 0x0003 ## $v0 = 00000003
.L809EF884:
/* 00534 809EF884 8C4A00A0 */ lw $t2, 0x00A0($v0) ## 000000A3
/* 00538 809EF888 8D6B71B4 */ lw $t3, %lo(gUpgradeMasks+4)($t3)
/* 0053C 809EF88C 91AD71F5 */ lbu $t5, %lo(gUpgradeShifts+1)($t5)
/* 00540 809EF890 93397466 */ lbu $t9, %lo(gItemSlots+2)($t9)
/* 00544 809EF894 014B6024 */ and $t4, $t2, $t3
/* 00548 809EF898 01AC7007 */ srav $t6, $t4, $t5
/* 0054C 809EF89C 000E7840 */ sll $t7, $t6, 1
/* 00550 809EF8A0 3C188012 */ lui $t8, %hi(gUpgradeCapacities+8)
/* 00554 809EF8A4 030FC021 */ addu $t8, $t8, $t7
/* 00558 809EF8A8 00594021 */ addu $t0, $v0, $t9
/* 0055C 809EF8AC 8109008C */ lb $t1, 0x008C($t0) ## 0000008C
/* 00560 809EF8B0 97187204 */ lhu $t8, %lo(gUpgradeCapacities+8)($t8)
/* 00564 809EF8B4 0138082A */ slt $at, $t1, $t8
/* 00568 809EF8B8 54200004 */ bnel $at, $zero, .L809EF8CC
/* 0056C 809EF8BC 8C8802C0 */ lw $t0, 0x02C0($a0) ## 000002C0
/* 00570 809EF8C0 03E00008 */ jr $ra
/* 00574 809EF8C4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809EF8C8:
/* 00578 809EF8C8 8C8802C0 */ lw $t0, 0x02C0($a0) ## 000002C0
.L809EF8CC:
/* 0057C 809EF8CC 84590034 */ lh $t9, 0x0034($v0) ## 00000035
/* 00580 809EF8D0 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 00584 809EF8D4 850A0000 */ lh $t2, 0x0000($t0) ## 00000000
/* 00588 809EF8D8 032A082A */ slt $at, $t9, $t2
/* 0058C 809EF8DC 10200003 */ beq $at, $zero, .L809EF8EC
/* 00590 809EF8E0 00000000 */ nop
/* 00594 809EF8E4 03E00008 */ jr $ra
/* 00598 809EF8E8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF8EC:
/* 0059C 809EF8EC 03E00008 */ jr $ra
/* 005A0 809EF8F0 00000000 */ nop

View file

@ -1,48 +0,0 @@
glabel func_809EF8F4
/* 005A4 809EF8F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005A8 809EF8F8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005AC 809EF8FC AFA40018 */ sw $a0, 0x0018($sp)
/* 005B0 809EF900 0C0218E2 */ jal Item_CheckObtainability
/* 005B4 809EF904 24040003 */ addiu $a0, $zero, 0x0003 ## $a0 = 00000003
/* 005B8 809EF908 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 005BC 809EF90C 14410003 */ bne $v0, $at, .L809EF91C
/* 005C0 809EF910 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005C4 809EF914 10000021 */ beq $zero, $zero, .L809EF99C
/* 005C8 809EF918 24020003 */ addiu $v0, $zero, 0x0003 ## $v0 = 00000003
.L809EF91C:
/* 005CC 809EF91C 3C028016 */ lui $v0, %hi(gSaveContext)
/* 005D0 809EF920 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 005D4 809EF924 3C088012 */ lui $t0, %hi(gUpgradeMasks)
/* 005D8 809EF928 8D0871B0 */ lw $t0, %lo(gUpgradeMasks)($t0)
/* 005DC 809EF92C 8C5900A0 */ lw $t9, 0x00A0($v0) ## 8015E700
/* 005E0 809EF930 3C0A8012 */ lui $t2, %hi(gUpgradeShifts)
/* 005E4 809EF934 914A71F4 */ lbu $t2, %lo(gUpgradeShifts)($t2)
/* 005E8 809EF938 3C0E8012 */ lui $t6, %hi(gItemSlots+3)
/* 005EC 809EF93C 91CE7467 */ lbu $t6, %lo(gItemSlots+3)($t6)
/* 005F0 809EF940 03284824 */ and $t1, $t9, $t0
/* 005F4 809EF944 01495807 */ srav $t3, $t1, $t2
/* 005F8 809EF948 000B6040 */ sll $t4, $t3, 1
/* 005FC 809EF94C 3C0D8012 */ lui $t5, %hi(gUpgradeCapacities)
/* 00600 809EF950 01AC6821 */ addu $t5, $t5, $t4
/* 00604 809EF954 004E7821 */ addu $t7, $v0, $t6
/* 00608 809EF958 81F8008C */ lb $t8, 0x008C($t7) ## 0000008C
/* 0060C 809EF95C 95AD71FC */ lhu $t5, %lo(gUpgradeCapacities)($t5)
/* 00610 809EF960 8FAF0018 */ lw $t7, 0x0018($sp)
/* 00614 809EF964 030D082A */ slt $at, $t8, $t5
/* 00618 809EF968 54200004 */ bnel $at, $zero, .L809EF97C
/* 0061C 809EF96C 8DF902C0 */ lw $t9, 0x02C0($t7) ## 000002C0
/* 00620 809EF970 1000000A */ beq $zero, $zero, .L809EF99C
/* 00624 809EF974 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00628 809EF978 8DF902C0 */ lw $t9, 0x02C0($t7) ## 000002C0
.L809EF97C:
/* 0062C 809EF97C 844E0034 */ lh $t6, 0x0034($v0) ## 00000035
/* 00630 809EF980 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 00634 809EF984 87280000 */ lh $t0, 0x0000($t9) ## 00000000
/* 00638 809EF988 01C8082A */ slt $at, $t6, $t0
/* 0063C 809EF98C 10200003 */ beq $at, $zero, .L809EF99C
/* 00640 809EF990 00000000 */ nop
/* 00644 809EF994 10000001 */ beq $zero, $zero, .L809EF99C
/* 00648 809EF998 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF99C:
/* 0064C 809EF99C 03E00008 */ jr $ra
/* 00650 809EF9A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000

View file

@ -1,24 +0,0 @@
glabel func_809EF9A4
/* 00654 809EF9A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00658 809EF9A8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0065C 809EF9AC 0C021AAF */ jal Inventory_HasEmptyBottle
/* 00660 809EF9B0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00664 809EF9B4 14400003 */ bne $v0, $zero, .L809EF9C4
/* 00668 809EF9B8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0066C 809EF9BC 1000000C */ beq $zero, $zero, .L809EF9F0
/* 00670 809EF9C0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L809EF9C4:
/* 00674 809EF9C4 8FAF0018 */ lw $t7, 0x0018($sp)
/* 00678 809EF9C8 3C0E8016 */ lui $t6, %hi(gSaveContext+0x34)
/* 0067C 809EF9CC 85CEE694 */ lh $t6, %lo(gSaveContext+0x34)($t6)
/* 00680 809EF9D0 8DF802C0 */ lw $t8, 0x02C0($t7) ## 000002C0
/* 00684 809EF9D4 24020004 */ addiu $v0, $zero, 0x0004 ## $v0 = 00000004
/* 00688 809EF9D8 87190000 */ lh $t9, 0x0000($t8) ## 00000000
/* 0068C 809EF9DC 01D9082A */ slt $at, $t6, $t9
/* 00690 809EF9E0 10200003 */ beq $at, $zero, .L809EF9F0
/* 00694 809EF9E4 00000000 */ nop
/* 00698 809EF9E8 10000001 */ beq $zero, $zero, .L809EF9F0
/* 0069C 809EF9EC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L809EF9F0:
/* 006A0 809EF9F0 03E00008 */ jr $ra
/* 006A4 809EF9F4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000

View file

@ -1,13 +0,0 @@
glabel func_809EF9F8
/* 006A8 809EF9F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006AC 809EF9FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 006B0 809EFA00 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 006B4 809EFA04 85C40000 */ lh $a0, 0x0000($t6) ## 00000000
/* 006B8 809EFA08 00042023 */ subu $a0, $zero, $a0
/* 006BC 809EFA0C 00042400 */ sll $a0, $a0, 16
/* 006C0 809EFA10 0C021CC3 */ jal Rupees_ChangeBy
/* 006C4 809EFA14 00042403 */ sra $a0, $a0, 16
/* 006C8 809EFA18 8FBF0014 */ lw $ra, 0x0014($sp)
/* 006CC 809EFA1C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 006D0 809EFA20 03E00008 */ jr $ra
/* 006D4 809EFA24 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_809EFA28
/* 006D8 809EFA28 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006DC 809EFA2C AFBF0014 */ sw $ra, 0x0014($sp)
/* 006E0 809EFA30 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 006E4 809EFA34 85C40000 */ lh $a0, 0x0000($t6) ## 00000000
/* 006E8 809EFA38 00042023 */ subu $a0, $zero, $a0
/* 006EC 809EFA3C 00042400 */ sll $a0, $a0, 16
/* 006F0 809EFA40 0C021CC3 */ jal Rupees_ChangeBy
/* 006F4 809EFA44 00042403 */ sra $a0, $a0, 16
/* 006F8 809EFA48 8FBF0014 */ lw $ra, 0x0014($sp)
/* 006FC 809EFA4C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00700 809EFA50 03E00008 */ jr $ra
/* 00704 809EFA54 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_809EFA58
/* 00708 809EFA58 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0070C 809EFA5C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00710 809EFA60 944E0EF0 */ lhu $t6, 0x0EF0($v0) ## 8015F550
/* 00714 809EFA64 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00718 809EFA68 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0071C 809EFA6C 35CF0800 */ ori $t7, $t6, 0x0800 ## $t7 = 00000800
/* 00720 809EFA70 A44F0EF0 */ sh $t7, 0x0EF0($v0) ## 8015F550
/* 00724 809EFA74 8C9802C0 */ lw $t8, 0x02C0($a0) ## 000002C0
/* 00728 809EFA78 87040000 */ lh $a0, 0x0000($t8) ## 00000000
/* 0072C 809EFA7C 00042023 */ subu $a0, $zero, $a0
/* 00730 809EFA80 00042400 */ sll $a0, $a0, 16
/* 00734 809EFA84 0C021CC3 */ jal Rupees_ChangeBy
/* 00738 809EFA88 00042403 */ sra $a0, $a0, 16
/* 0073C 809EFA8C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00740 809EFA90 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00744 809EFA94 03E00008 */ jr $ra
/* 00748 809EFA98 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_809EFA9C
/* 0074C 809EFA9C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00750 809EFAA0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00754 809EFAA4 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 00758 809EFAA8 85C40000 */ lh $a0, 0x0000($t6) ## 00000000
/* 0075C 809EFAAC 00042023 */ subu $a0, $zero, $a0
/* 00760 809EFAB0 00042400 */ sll $a0, $a0, 16
/* 00764 809EFAB4 0C021CC3 */ jal Rupees_ChangeBy
/* 00768 809EFAB8 00042403 */ sra $a0, $a0, 16
/* 0076C 809EFABC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00770 809EFAC0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00774 809EFAC4 03E00008 */ jr $ra
/* 00778 809EFAC8 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_809EFACC
/* 0077C 809EFACC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00780 809EFAD0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00784 809EFAD4 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 00788 809EFAD8 85C40000 */ lh $a0, 0x0000($t6) ## 00000000
/* 0078C 809EFADC 00042023 */ subu $a0, $zero, $a0
/* 00790 809EFAE0 00042400 */ sll $a0, $a0, 16
/* 00794 809EFAE4 0C021CC3 */ jal Rupees_ChangeBy
/* 00798 809EFAE8 00042403 */ sra $a0, $a0, 16
/* 0079C 809EFAEC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007A0 809EFAF0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 007A4 809EFAF4 03E00008 */ jr $ra
/* 007A8 809EFAF8 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_809EFAFC
/* 007AC 809EFAFC 3C028016 */ lui $v0, %hi(gSaveContext)
/* 007B0 809EFB00 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 007B4 809EFB04 944E0F2A */ lhu $t6, 0x0F2A($v0) ## 8015F58A
/* 007B8 809EFB08 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007BC 809EFB0C AFBF0014 */ sw $ra, 0x0014($sp)
/* 007C0 809EFB10 35CF0004 */ ori $t7, $t6, 0x0004 ## $t7 = 00000004
/* 007C4 809EFB14 A44F0F2A */ sh $t7, 0x0F2A($v0) ## 8015F58A
/* 007C8 809EFB18 8C9802C0 */ lw $t8, 0x02C0($a0) ## 000002C0
/* 007CC 809EFB1C 87040000 */ lh $a0, 0x0000($t8) ## 00000000
/* 007D0 809EFB20 00042023 */ subu $a0, $zero, $a0
/* 007D4 809EFB24 00042400 */ sll $a0, $a0, 16
/* 007D8 809EFB28 0C021CC3 */ jal Rupees_ChangeBy
/* 007DC 809EFB2C 00042403 */ sra $a0, $a0, 16
/* 007E0 809EFB30 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007E4 809EFB34 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 007E8 809EFB38 03E00008 */ jr $ra
/* 007EC 809EFB3C 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_809EFB40
/* 007F0 809EFB40 3C028016 */ lui $v0, %hi(gSaveContext)
/* 007F4 809EFB44 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 007F8 809EFB48 944E0F2A */ lhu $t6, 0x0F2A($v0) ## 8015F58A
/* 007FC 809EFB4C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00800 809EFB50 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00804 809EFB54 35CF0008 */ ori $t7, $t6, 0x0008 ## $t7 = 00000008
/* 00808 809EFB58 A44F0F2A */ sh $t7, 0x0F2A($v0) ## 8015F58A
/* 0080C 809EFB5C 8C9802C0 */ lw $t8, 0x02C0($a0) ## 000002C0
/* 00810 809EFB60 87040000 */ lh $a0, 0x0000($t8) ## 00000000
/* 00814 809EFB64 00042023 */ subu $a0, $zero, $a0
/* 00818 809EFB68 00042400 */ sll $a0, $a0, 16
/* 0081C 809EFB6C 0C021CC3 */ jal Rupees_ChangeBy
/* 00820 809EFB70 00042403 */ sra $a0, $a0, 16
/* 00824 809EFB74 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00828 809EFB78 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0082C 809EFB7C 03E00008 */ jr $ra
/* 00830 809EFB80 00000000 */ nop

View file

@ -1,19 +0,0 @@
glabel func_809EFB84
/* 00834 809EFB84 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00838 809EFB88 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0083C 809EFB8C AFA5001C */ sw $a1, 0x001C($sp)
/* 00840 809EFB90 C4860164 */ lwc1 $f6, 0x0164($a0) ## 00000164
/* 00844 809EFB94 C484015C */ lwc1 $f4, 0x015C($a0) ## 0000015C
/* 00848 809EFB98 3C0E809F */ lui $t6, %hi(func_809EFBC8) ## $t6 = 809F0000
/* 0084C 809EFB9C 25CEFBC8 */ addiu $t6, $t6, %lo(func_809EFBC8) ## $t6 = 809EFBC8
/* 00850 809EFBA0 46062032 */ c.eq.s $f4, $f6
/* 00854 809EFBA4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00858 809EFBA8 45020004 */ bc1fl .L809EFBBC
/* 0085C 809EFBAC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00860 809EFBB0 0C27BD47 */ jal func_809EF51C
/* 00864 809EFBB4 AC8E0268 */ sw $t6, 0x0268($a0) ## 00000268
/* 00868 809EFBB8 8FBF0014 */ lw $ra, 0x0014($sp)
.L809EFBBC:
/* 0086C 809EFBBC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00870 809EFBC0 03E00008 */ jr $ra
/* 00874 809EFBC4 00000000 */ nop

View file

@ -1,61 +0,0 @@
glabel func_809EFBC8
/* 00878 809EFBC8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 0087C 809EFBCC AFB00020 */ sw $s0, 0x0020($sp)
/* 00880 809EFBD0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00884 809EFBD4 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00888 809EFBD8 AFA5002C */ sw $a1, 0x002C($sp)
/* 0088C 809EFBDC 8605008A */ lh $a1, 0x008A($s0) ## 0000008A
/* 00890 809EFBE0 AFA00010 */ sw $zero, 0x0010($sp)
/* 00894 809EFBE4 248400B6 */ addiu $a0, $a0, 0x00B6 ## $a0 = 000000B6
/* 00898 809EFBE8 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 0089C 809EFBEC 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 008A0 809EFBF0 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
/* 008A4 809EFBF4 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
/* 008A8 809EFBF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008AC 809EFBFC A60E0032 */ sh $t6, 0x0032($s0) ## 00000032
/* 008B0 809EFC00 0C00BC65 */ jal func_8002F194
/* 008B4 809EFC04 8FA5002C */ lw $a1, 0x002C($sp)
/* 008B8 809EFC08 10400004 */ beq $v0, $zero, .L809EFC1C
/* 008BC 809EFC0C 3C0F809F */ lui $t7, %hi(func_809EFC9C) ## $t7 = 809F0000
/* 008C0 809EFC10 25EFFC9C */ addiu $t7, $t7, %lo(func_809EFC9C) ## $t7 = 809EFC9C
/* 008C4 809EFC14 1000001C */ beq $zero, $zero, .L809EFC88
/* 008C8 809EFC18 AE0F0268 */ sw $t7, 0x0268($s0) ## 00000268
.L809EFC1C:
/* 008CC 809EFC1C 9218027E */ lbu $t8, 0x027E($s0) ## 0000027E
/* 008D0 809EFC20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 008D4 809EFC24 33190002 */ andi $t9, $t8, 0x0002 ## $t9 = 00000000
/* 008D8 809EFC28 57200005 */ bnel $t9, $zero, .L809EFC40
/* 008DC 809EFC2C 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
/* 008E0 809EFC30 9208010C */ lbu $t0, 0x010C($s0) ## 0000010C
/* 008E4 809EFC34 51000007 */ beql $t0, $zero, .L809EFC54
/* 008E8 809EFC38 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
/* 008EC 809EFC3C 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
.L809EFC40:
/* 008F0 809EFC40 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 008F4 809EFC44 01215025 */ or $t2, $t1, $at ## $t2 = 00010000
/* 008F8 809EFC48 10000006 */ beq $zero, $zero, .L809EFC64
/* 008FC 809EFC4C AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
/* 00900 809EFC50 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
.L809EFC54:
/* 00904 809EFC54 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000
/* 00908 809EFC58 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF
/* 0090C 809EFC5C 01616024 */ and $t4, $t3, $at
/* 00910 809EFC60 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
.L809EFC64:
/* 00914 809EFC64 3C014302 */ lui $at, 0x4302 ## $at = 43020000
/* 00918 809EFC68 44813000 */ mtc1 $at, $f6 ## $f6 = 130.00
/* 0091C 809EFC6C C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 00920 809EFC70 4606203C */ c.lt.s $f4, $f6
/* 00924 809EFC74 00000000 */ nop
/* 00928 809EFC78 45020004 */ bc1fl .L809EFC8C
/* 0092C 809EFC7C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00930 809EFC80 0C00BCBD */ jal func_8002F2F4
/* 00934 809EFC84 8FA5002C */ lw $a1, 0x002C($sp)
.L809EFC88:
/* 00938 809EFC88 8FBF0024 */ lw $ra, 0x0024($sp)
.L809EFC8C:
/* 0093C 809EFC8C 8FB00020 */ lw $s0, 0x0020($sp)
/* 00940 809EFC90 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00944 809EFC94 03E00008 */ jr $ra
/* 00948 809EFC98 00000000 */ nop

View file

@ -1,95 +0,0 @@
.late_rodata
glabel jtbl_809F06F0
.word L809EFD38
.word L809EFD54
.word L809EFD8C
.word L809EFD70
.word L809EFD8C
.text
glabel func_809EFC9C
/* 0094C 809EFC9C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00950 809EFCA0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00954 809EFCA4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00958 809EFCA8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0095C 809EFCAC 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00960 809EFCB0 0C042F6F */ jal func_8010BDBC
/* 00964 809EFCB4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00968 809EFCB8 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 0096C 809EFCBC 1441003F */ bne $v0, $at, .L809EFDBC
/* 00970 809EFCC0 8FA60024 */ lw $a2, 0x0024($sp)
/* 00974 809EFCC4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00978 809EFCC8 0C041AF2 */ jal func_80106BC8
/* 0097C 809EFCCC AFA60024 */ sw $a2, 0x0024($sp)
/* 00980 809EFCD0 1040003A */ beq $v0, $zero, .L809EFDBC
/* 00984 809EFCD4 8FA60024 */ lw $a2, 0x0024($sp)
/* 00988 809EFCD8 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 0098C 809EFCDC 00461021 */ addu $v0, $v0, $a2
/* 00990 809EFCE0 904204BD */ lbu $v0, 0x04BD($v0) ## 000104BD
/* 00994 809EFCE4 10400005 */ beq $v0, $zero, .L809EFCFC
/* 00998 809EFCE8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0099C 809EFCEC 1041002E */ beq $v0, $at, .L809EFDA8
/* 009A0 809EFCF0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 009A4 809EFCF4 10000032 */ beq $zero, $zero, .L809EFDC0
/* 009A8 809EFCF8 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFCFC:
/* 009AC 809EFCFC AFA60024 */ sw $a2, 0x0024($sp)
/* 009B0 809EFD00 8E0E02C0 */ lw $t6, 0x02C0($s0) ## 000002C0
/* 009B4 809EFD04 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009B8 809EFD08 8DD90008 */ lw $t9, 0x0008($t6) ## 00000008
/* 009BC 809EFD0C 0320F809 */ jalr $ra, $t9
/* 009C0 809EFD10 00000000 */ nop
/* 009C4 809EFD14 2C410005 */ sltiu $at, $v0, 0x0005
/* 009C8 809EFD18 10200028 */ beq $at, $zero, .L809EFDBC
/* 009CC 809EFD1C 8FA60024 */ lw $a2, 0x0024($sp)
/* 009D0 809EFD20 00027880 */ sll $t7, $v0, 2
/* 009D4 809EFD24 3C01809F */ lui $at, %hi(jtbl_809F06F0) ## $at = 809F0000
/* 009D8 809EFD28 002F0821 */ addu $at, $at, $t7
/* 009DC 809EFD2C 8C2F06F0 */ lw $t7, %lo(jtbl_809F06F0)($at)
/* 009E0 809EFD30 01E00008 */ jr $t7
/* 009E4 809EFD34 00000000 */ nop
glabel L809EFD38
/* 009E8 809EFD38 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 009EC 809EFD3C 0C042DC8 */ jal func_8010B720
/* 009F0 809EFD40 240510A5 */ addiu $a1, $zero, 0x10A5 ## $a1 = 000010A5
/* 009F4 809EFD44 3C18809F */ lui $t8, %hi(func_809F008C) ## $t8 = 809F0000
/* 009F8 809EFD48 2718008C */ addiu $t8, $t8, %lo(func_809F008C) ## $t8 = 809F008C
/* 009FC 809EFD4C 1000001B */ beq $zero, $zero, .L809EFDBC
/* 00A00 809EFD50 AE180268 */ sw $t8, 0x0268($s0) ## 00000268
glabel L809EFD54
/* 00A04 809EFD54 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00A08 809EFD58 0C042DC8 */ jal func_8010B720
/* 00A0C 809EFD5C 240510A6 */ addiu $a1, $zero, 0x10A6 ## $a1 = 000010A6
/* 00A10 809EFD60 3C08809F */ lui $t0, %hi(func_809F008C) ## $t0 = 809F0000
/* 00A14 809EFD64 2508008C */ addiu $t0, $t0, %lo(func_809F008C) ## $t0 = 809F008C
/* 00A18 809EFD68 10000014 */ beq $zero, $zero, .L809EFDBC
/* 00A1C 809EFD6C AE080268 */ sw $t0, 0x0268($s0) ## 00000268
glabel L809EFD70
/* 00A20 809EFD70 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00A24 809EFD74 0C042DC8 */ jal func_8010B720
/* 00A28 809EFD78 240510DE */ addiu $a1, $zero, 0x10DE ## $a1 = 000010DE
/* 00A2C 809EFD7C 3C09809F */ lui $t1, %hi(func_809F008C) ## $t1 = 809F0000
/* 00A30 809EFD80 2529008C */ addiu $t1, $t1, %lo(func_809F008C) ## $t1 = 809F008C
/* 00A34 809EFD84 1000000D */ beq $zero, $zero, .L809EFDBC
/* 00A38 809EFD88 AE090268 */ sw $t1, 0x0268($s0) ## 00000268
glabel L809EFD8C
/* 00A3C 809EFD8C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00A40 809EFD90 0C042DC8 */ jal func_8010B720
/* 00A44 809EFD94 240510A7 */ addiu $a1, $zero, 0x10A7 ## $a1 = 000010A7
/* 00A48 809EFD98 3C0A809F */ lui $t2, %hi(func_809EFEE8) ## $t2 = 809F0000
/* 00A4C 809EFD9C 254AFEE8 */ addiu $t2, $t2, %lo(func_809EFEE8) ## $t2 = 809EFEE8
/* 00A50 809EFDA0 10000006 */ beq $zero, $zero, .L809EFDBC
/* 00A54 809EFDA4 AE0A0268 */ sw $t2, 0x0268($s0) ## 00000268
.L809EFDA8:
/* 00A58 809EFDA8 0C042DC8 */ jal func_8010B720
/* 00A5C 809EFDAC 240510A4 */ addiu $a1, $zero, 0x10A4 ## $a1 = 000010A4
/* 00A60 809EFDB0 3C0B809F */ lui $t3, %hi(func_809F008C) ## $t3 = 809F0000
/* 00A64 809EFDB4 256B008C */ addiu $t3, $t3, %lo(func_809F008C) ## $t3 = 809F008C
/* 00A68 809EFDB8 AE0B0268 */ sw $t3, 0x0268($s0) ## 00000268
.L809EFDBC:
/* 00A6C 809EFDBC 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFDC0:
/* 00A70 809EFDC0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00A74 809EFDC4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00A78 809EFDC8 03E00008 */ jr $ra
/* 00A7C 809EFDCC 00000000 */ nop

View file

@ -1,76 +0,0 @@
glabel func_809EFDD0
/* 00A80 809EFDD0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00A84 809EFDD4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00A88 809EFDD8 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00A8C 809EFDDC 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
/* 00A90 809EFDE0 3C0E8016 */ lui $t6, %hi(gSaveContext+0xa0)
/* 00A94 809EFDE4 14410019 */ bne $v0, $at, .L809EFE4C
/* 00A98 809EFDE8 3C0F8012 */ lui $t7, %hi(gUpgradeMasks+0x18)
/* 00A9C 809EFDEC 8DCEE700 */ lw $t6, %lo(gSaveContext+0xa0)($t6)
/* 00AA0 809EFDF0 8DEF71C8 */ lw $t7, %lo(gUpgradeMasks+0x18)($t7)
/* 00AA4 809EFDF4 3C198012 */ lui $t9, %hi(gUpgradeShifts+6)
/* 00AA8 809EFDF8 933971FA */ lbu $t9, %lo(gUpgradeShifts+6)($t9)
/* 00AAC 809EFDFC 01CFC024 */ and $t8, $t6, $t7
/* 00AB0 809EFE00 3C074302 */ lui $a3, 0x4302 ## $a3 = 43020000
/* 00AB4 809EFE04 03384007 */ srav $t0, $t8, $t9
/* 00AB8 809EFE08 29010002 */ slti $at, $t0, 0x0002
/* 00ABC 809EFE0C 10200008 */ beq $at, $zero, .L809EFE30
/* 00AC0 809EFE10 24060078 */ addiu $a2, $zero, 0x0078 ## $a2 = 00000078
/* 00AC4 809EFE14 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00AC8 809EFE18 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
/* 00ACC 809EFE1C 24060077 */ addiu $a2, $zero, 0x0077 ## $a2 = 00000077
/* 00AD0 809EFE20 0C00BD0D */ jal func_8002F434
/* 00AD4 809EFE24 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00AD8 809EFE28 1000002C */ beq $zero, $zero, .L809EFEDC
/* 00ADC 809EFE2C 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFE30:
/* 00AE0 809EFE30 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00AE4 809EFE34 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00AE8 809EFE38 3C074302 */ lui $a3, 0x4302 ## $a3 = 43020000
/* 00AEC 809EFE3C 0C00BD0D */ jal func_8002F434
/* 00AF0 809EFE40 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00AF4 809EFE44 10000025 */ beq $zero, $zero, .L809EFEDC
/* 00AF8 809EFE48 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFE4C:
/* 00AFC 809EFE4C 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
/* 00B00 809EFE50 1441001B */ bne $v0, $at, .L809EFEC0
/* 00B04 809EFE54 3C074302 */ lui $a3, 0x4302 ## $a3 = 43020000
/* 00B08 809EFE58 3C098016 */ lui $t1, %hi(gSaveContext+0xa0)
/* 00B0C 809EFE5C 3C0A8012 */ lui $t2, %hi(gUpgradeMasks+0x1c)
/* 00B10 809EFE60 8D4A71CC */ lw $t2, %lo(gUpgradeMasks+0x1c)($t2)
/* 00B14 809EFE64 8D29E700 */ lw $t1, %lo(gSaveContext+0xa0)($t1)
/* 00B18 809EFE68 3C0C8012 */ lui $t4, %hi(gUpgradeShifts+7)
/* 00B1C 809EFE6C 918C71FB */ lbu $t4, %lo(gUpgradeShifts+7)($t4)
/* 00B20 809EFE70 012A5824 */ and $t3, $t1, $t2
/* 00B24 809EFE74 3C074302 */ lui $a3, 0x4302 ## $a3 = 43020000
/* 00B28 809EFE78 018B6807 */ srav $t5, $t3, $t4
/* 00B2C 809EFE7C 29A10002 */ slti $at, $t5, 0x0002
/* 00B30 809EFE80 10200008 */ beq $at, $zero, .L809EFEA4
/* 00B34 809EFE84 2406007A */ addiu $a2, $zero, 0x007A ## $a2 = 0000007A
/* 00B38 809EFE88 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00B3C 809EFE8C 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
/* 00B40 809EFE90 24060079 */ addiu $a2, $zero, 0x0079 ## $a2 = 00000079
/* 00B44 809EFE94 0C00BD0D */ jal func_8002F434
/* 00B48 809EFE98 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00B4C 809EFE9C 1000000F */ beq $zero, $zero, .L809EFEDC
/* 00B50 809EFEA0 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFEA4:
/* 00B54 809EFEA4 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00B58 809EFEA8 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00
/* 00B5C 809EFEAC 3C074302 */ lui $a3, 0x4302 ## $a3 = 43020000
/* 00B60 809EFEB0 0C00BD0D */ jal func_8002F434
/* 00B64 809EFEB4 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00B68 809EFEB8 10000008 */ beq $zero, $zero, .L809EFEDC
/* 00B6C 809EFEBC 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFEC0:
/* 00B70 809EFEC0 8C8E02C0 */ lw $t6, 0x02C0($a0) ## 000002C0
/* 00B74 809EFEC4 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00B78 809EFEC8 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 00B7C 809EFECC 8DC60004 */ lw $a2, 0x0004($t6) ## 00000004
/* 00B80 809EFED0 0C00BD0D */ jal func_8002F434
/* 00B84 809EFED4 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00B88 809EFED8 8FBF001C */ lw $ra, 0x001C($sp)
.L809EFEDC:
/* 00B8C 809EFEDC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00B90 809EFEE0 03E00008 */ jr $ra
/* 00B94 809EFEE4 00000000 */ nop

View file

@ -1,28 +0,0 @@
glabel func_809EFEE8
/* 00B98 809EFEE8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00B9C 809EFEEC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00BA0 809EFEF0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00BA4 809EFEF4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00BA8 809EFEF8 0C042F6F */ jal func_8010BDBC
/* 00BAC 809EFEFC 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00BB0 809EFF00 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00BB4 809EFF04 5441000F */ bnel $v0, $at, .L809EFF44
/* 00BB8 809EFF08 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BBC 809EFF0C 0C041AF2 */ jal func_80106BC8
/* 00BC0 809EFF10 8FA4001C */ lw $a0, 0x001C($sp)
/* 00BC4 809EFF14 5040000B */ beql $v0, $zero, .L809EFF44
/* 00BC8 809EFF18 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BCC 809EFF1C 0C041B33 */ jal func_80106CCC
/* 00BD0 809EFF20 8FA4001C */ lw $a0, 0x001C($sp)
/* 00BD4 809EFF24 8FA40018 */ lw $a0, 0x0018($sp)
/* 00BD8 809EFF28 0C27BF74 */ jal func_809EFDD0
/* 00BDC 809EFF2C 8FA5001C */ lw $a1, 0x001C($sp)
/* 00BE0 809EFF30 8FAF0018 */ lw $t7, 0x0018($sp)
/* 00BE4 809EFF34 3C0E809F */ lui $t6, %hi(func_809EFF50) ## $t6 = 809F0000
/* 00BE8 809EFF38 25CEFF50 */ addiu $t6, $t6, %lo(func_809EFF50) ## $t6 = 809EFF50
/* 00BEC 809EFF3C ADEE0268 */ sw $t6, 0x0268($t7) ## 00000268
/* 00BF0 809EFF40 8FBF0014 */ lw $ra, 0x0014($sp)
.L809EFF44:
/* 00BF4 809EFF44 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BF8 809EFF48 03E00008 */ jr $ra
/* 00BFC 809EFF4C 00000000 */ nop

View file

@ -1,21 +0,0 @@
glabel func_809EFF50
/* 00C00 809EFF50 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C04 809EFF54 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C08 809EFF58 AFA5001C */ sw $a1, 0x001C($sp)
/* 00C0C 809EFF5C 0C00BD04 */ jal Actor_HasParent
/* 00C10 809EFF60 AFA40018 */ sw $a0, 0x0018($sp)
/* 00C14 809EFF64 10400006 */ beq $v0, $zero, .L809EFF80
/* 00C18 809EFF68 8FA40018 */ lw $a0, 0x0018($sp)
/* 00C1C 809EFF6C 3C0E809F */ lui $t6, %hi(func_809EFF98) ## $t6 = 809F0000
/* 00C20 809EFF70 25CEFF98 */ addiu $t6, $t6, %lo(func_809EFF98) ## $t6 = 809EFF98
/* 00C24 809EFF74 AC800118 */ sw $zero, 0x0118($a0) ## 00000118
/* 00C28 809EFF78 10000003 */ beq $zero, $zero, .L809EFF88
/* 00C2C 809EFF7C AC8E0268 */ sw $t6, 0x0268($a0) ## 00000268
.L809EFF80:
/* 00C30 809EFF80 0C27BF74 */ jal func_809EFDD0
/* 00C34 809EFF84 8FA5001C */ lw $a1, 0x001C($sp)
.L809EFF88:
/* 00C38 809EFF88 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C3C 809EFF8C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C40 809EFF90 03E00008 */ jr $ra
/* 00C44 809EFF94 00000000 */ nop

View file

@ -1,65 +0,0 @@
glabel func_809EFF98
/* 00C48 809EFF98 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00C4C 809EFF9C AFBF001C */ sw $ra, 0x001C($sp)
/* 00C50 809EFFA0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00C54 809EFFA4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00C58 809EFFA8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00C5C 809EFFAC 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00C60 809EFFB0 8C4E067C */ lw $t6, 0x067C($v0) ## 0000067C
/* 00C64 809EFFB4 31CF0400 */ andi $t7, $t6, 0x0400 ## $t7 = 00000000
/* 00C68 809EFFB8 51E0001E */ beql $t7, $zero, .L809F0034
/* 00C6C 809EFFBC 8E0C02C0 */ lw $t4, 0x02C0($s0) ## 000002C0
/* 00C70 809EFFC0 0C042F6F */ jal func_8010BDBC
/* 00C74 809EFFC4 AFA50024 */ sw $a1, 0x0024($sp)
/* 00C78 809EFFC8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00C7C 809EFFCC 1441002A */ bne $v0, $at, .L809F0078
/* 00C80 809EFFD0 8FA50024 */ lw $a1, 0x0024($sp)
/* 00C84 809EFFD4 0C041AF2 */ jal func_80106BC8
/* 00C88 809EFFD8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00C8C 809EFFDC 50400027 */ beql $v0, $zero, .L809F007C
/* 00C90 809EFFE0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00C94 809EFFE4 8E1802C0 */ lw $t8, 0x02C0($s0) ## 000002C0
/* 00C98 809EFFE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C9C 809EFFEC 8F19000C */ lw $t9, 0x000C($t8) ## 0000000C
/* 00CA0 809EFFF0 0320F809 */ jalr $ra, $t9
/* 00CA4 809EFFF4 00000000 */ nop
/* 00CA8 809EFFF8 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
/* 00CAC 809EFFFC 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00CB0 809F0000 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00CB4 809F0004 01215024 */ and $t2, $t1, $at
/* 00CB8 809F0008 A20802BD */ sb $t0, 0x02BD($s0) ## 000002BD
/* 00CBC 809F000C A20002BB */ sb $zero, 0x02BB($s0) ## 000002BB
/* 00CC0 809F0010 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
/* 00CC4 809F0014 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CC8 809F0018 0C27BD47 */ jal func_809EF51C
/* 00CCC 809F001C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00CD0 809F0020 3C0B809F */ lui $t3, %hi(func_809F0100) ## $t3 = 809F0000
/* 00CD4 809F0024 256B0100 */ addiu $t3, $t3, %lo(func_809F0100) ## $t3 = 809F0100
/* 00CD8 809F0028 10000013 */ beq $zero, $zero, .L809F0078
/* 00CDC 809F002C AE0B0268 */ sw $t3, 0x0268($s0) ## 00000268
/* 00CE0 809F0030 8E0C02C0 */ lw $t4, 0x02C0($s0) ## 000002C0
.L809F0034:
/* 00CE4 809F0034 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CE8 809F0038 8D99000C */ lw $t9, 0x000C($t4) ## 0000000C
/* 00CEC 809F003C 0320F809 */ jalr $ra, $t9
/* 00CF0 809F0040 00000000 */ nop
/* 00CF4 809F0044 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00CF8 809F0048 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00CFC 809F004C 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 00D00 809F0050 01C17824 */ and $t7, $t6, $at
/* 00D04 809F0054 A20D02BD */ sb $t5, 0x02BD($s0) ## 000002BD
/* 00D08 809F0058 A20002BB */ sb $zero, 0x02BB($s0) ## 000002BB
/* 00D0C 809F005C AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 00D10 809F0060 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D14 809F0064 0C27BD47 */ jal func_809EF51C
/* 00D18 809F0068 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D1C 809F006C 3C18809F */ lui $t8, %hi(func_809F0100) ## $t8 = 809F0000
/* 00D20 809F0070 27180100 */ addiu $t8, $t8, %lo(func_809F0100) ## $t8 = 809F0100
/* 00D24 809F0074 AE180268 */ sw $t8, 0x0268($s0) ## 00000268
.L809F0078:
/* 00D28 809F0078 8FBF001C */ lw $ra, 0x001C($sp)
.L809F007C:
/* 00D2C 809F007C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00D30 809F0080 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00D34 809F0084 03E00008 */ jr $ra
/* 00D38 809F0088 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_809F008C
/* 00D3C 809F008C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00D40 809F0090 AFB00018 */ sw $s0, 0x0018($sp)
/* 00D44 809F0094 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D48 809F0098 AFBF001C */ sw $ra, 0x001C($sp)
/* 00D4C 809F009C AFA50024 */ sw $a1, 0x0024($sp)
/* 00D50 809F00A0 0C042F6F */ jal func_8010BDBC
/* 00D54 809F00A4 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00D58 809F00A8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00D5C 809F00AC 54410010 */ bnel $v0, $at, .L809F00F0
/* 00D60 809F00B0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00D64 809F00B4 0C041AF2 */ jal func_80106BC8
/* 00D68 809F00B8 8FA40024 */ lw $a0, 0x0024($sp)
/* 00D6C 809F00BC 1040000B */ beq $v0, $zero, .L809F00EC
/* 00D70 809F00C0 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00D74 809F00C4 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00D78 809F00C8 A20002BB */ sb $zero, 0x02BB($s0) ## 000002BB
/* 00D7C 809F00CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D80 809F00D0 01C17824 */ and $t7, $t6, $at
/* 00D84 809F00D4 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 00D88 809F00D8 0C27BD47 */ jal func_809EF51C
/* 00D8C 809F00DC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D90 809F00E0 3C18809F */ lui $t8, %hi(func_809F0100) ## $t8 = 809F0000
/* 00D94 809F00E4 27180100 */ addiu $t8, $t8, %lo(func_809F0100) ## $t8 = 809F0100
/* 00D98 809F00E8 AE180268 */ sw $t8, 0x0268($s0) ## 00000268
.L809F00EC:
/* 00D9C 809F00EC 8FBF001C */ lw $ra, 0x001C($sp)
.L809F00F0:
/* 00DA0 809F00F0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00DA4 809F00F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00DA8 809F00F8 03E00008 */ jr $ra
/* 00DAC 809F00FC 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel func_809F0100
/* 00DB0 809F0100 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00DB4 809F0104 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00DB8 809F0108 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00DBC 809F010C 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00DC0 809F0110 AFA5001C */ sw $a1, 0x001C($sp)
/* 00DC4 809F0114 24844404 */ addiu $a0, $a0, 0x4404 ## $a0 = 06004404
/* 00DC8 809F0118 0C028800 */ jal SkelAnime_GetFrameCount
/* 00DCC 809F011C AFA60018 */ sw $a2, 0x0018($sp)
/* 00DD0 809F0120 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00DD4 809F0124 8FA60018 */ lw $a2, 0x0018($sp)
/* 00DD8 809F0128 24053987 */ addiu $a1, $zero, 0x3987 ## $a1 = 00003987
/* 00DDC 809F012C 468021A0 */ cvt.s.w $f6, $f4
/* 00DE0 809F0130 C4C80164 */ lwc1 $f8, 0x0164($a2) ## 00000164
/* 00DE4 809F0134 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00DE8 809F0138 46083032 */ c.eq.s $f6, $f8
/* 00DEC 809F013C 00000000 */ nop
/* 00DF0 809F0140 4502000B */ bc1fl .L809F0170
/* 00DF4 809F0144 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00DF8 809F0148 0C00BE0A */ jal Audio_PlayActorSound2
/* 00DFC 809F014C AFA60018 */ sw $a2, 0x0018($sp)
/* 00E00 809F0150 8FA60018 */ lw $a2, 0x0018($sp)
/* 00E04 809F0154 3C0E809F */ lui $t6, %hi(func_809F017C) ## $t6 = 809F0000
/* 00E08 809F0158 25CE017C */ addiu $t6, $t6, %lo(func_809F017C) ## $t6 = 809F017C
/* 00E0C 809F015C C4CA0028 */ lwc1 $f10, 0x0028($a2) ## 00000028
/* 00E10 809F0160 ACCE0268 */ sw $t6, 0x0268($a2) ## 00000268
/* 00E14 809F0164 A0C002BC */ sb $zero, 0x02BC($a2) ## 000002BC
/* 00E18 809F0168 E4CA02C4 */ swc1 $f10, 0x02C4($a2) ## 000002C4
/* 00E1C 809F016C 8FBF0014 */ lw $ra, 0x0014($sp)
.L809F0170:
/* 00E20 809F0170 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00E24 809F0174 03E00008 */ jr $ra
/* 00E28 809F0178 00000000 */ nop

View file

@ -1,72 +0,0 @@
glabel func_809F017C
/* 00E2C 809F017C 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00E30 809F0180 AFBF002C */ sw $ra, 0x002C($sp)
/* 00E34 809F0184 AFB40028 */ sw $s4, 0x0028($sp)
/* 00E38 809F0188 AFB30024 */ sw $s3, 0x0024($sp)
/* 00E3C 809F018C AFB20020 */ sw $s2, 0x0020($sp)
/* 00E40 809F0190 AFB1001C */ sw $s1, 0x001C($sp)
/* 00E44 809F0194 AFB00018 */ sw $s0, 0x0018($sp)
/* 00E48 809F0198 848E02B8 */ lh $t6, 0x02B8($a0) ## 000002B8
/* 00E4C 809F019C C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
/* 00E50 809F01A0 C48402C4 */ lwc1 $f4, 0x02C4($a0) ## 000002C4
/* 00E54 809F01A4 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
/* 00E58 809F01A8 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 00E5C 809F01AC 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
/* 00E60 809F01B0 15E0000D */ bne $t7, $zero, .L809F01E8
/* 00E64 809F01B4 46062001 */ sub.s $f0, $f4, $f6
/* 00E68 809F01B8 C4880024 */ lwc1 $f8, 0x0024($a0) ## 00000024
/* 00E6C 809F01BC 27A60038 */ addiu $a2, $sp, 0x0038 ## $a2 = FFFFFFF0
/* 00E70 809F01C0 E7A80038 */ swc1 $f8, 0x0038($sp)
/* 00E74 809F01C4 C48A02C4 */ lwc1 $f10, 0x02C4($a0) ## 000002C4
/* 00E78 809F01C8 E7AA003C */ swc1 $f10, 0x003C($sp)
/* 00E7C 809F01CC C490002C */ lwc1 $f16, 0x002C($a0) ## 0000002C
/* 00E80 809F01D0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00E84 809F01D4 3C0541A0 */ lui $a1, 0x41A0 ## $a1 = 41A00000
/* 00E88 809F01D8 E7A00044 */ swc1 $f0, 0x0044($sp)
/* 00E8C 809F01DC 0C00A264 */ jal func_80028990
/* 00E90 809F01E0 E7B00040 */ swc1 $f16, 0x0040($sp)
/* 00E94 809F01E4 C7A00044 */ lwc1 $f0, 0x0044($sp)
.L809F01E8:
/* 00E98 809F01E8 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000
/* 00E9C 809F01EC 44819000 */ mtc1 $at, $f18 ## $f18 = 400.00
/* 00EA0 809F01F0 867800B6 */ lh $t8, 0x00B6($s3) ## 000000B6
/* 00EA4 809F01F4 27B40038 */ addiu $s4, $sp, 0x0038 ## $s4 = FFFFFFF0
/* 00EA8 809F01F8 4600903C */ c.lt.s $f18, $f0
/* 00EAC 809F01FC 27192000 */ addiu $t9, $t8, 0x2000 ## $t9 = 00002000
/* 00EB0 809F0200 A67900B6 */ sh $t9, 0x00B6($s3) ## 000000B6
/* 00EB4 809F0204 45020017 */ bc1fl .L809F0264
/* 00EB8 809F0208 8FBF002C */ lw $ra, 0x002C($sp)
/* 00EBC 809F020C 926802BD */ lbu $t0, 0x02BD($s3) ## 000002BD
/* 00EC0 809F0210 11000011 */ beq $t0, $zero, .L809F0258
/* 00EC4 809F0214 00000000 */ nop
/* 00EC8 809F0218 C6640024 */ lwc1 $f4, 0x0024($s3) ## 00000024
/* 00ECC 809F021C 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00ED0 809F0220 24110003 */ addiu $s1, $zero, 0x0003 ## $s1 = 00000003
/* 00ED4 809F0224 E7A40038 */ swc1 $f4, 0x0038($sp)
/* 00ED8 809F0228 C66602C4 */ lwc1 $f6, 0x02C4($s3) ## 000002C4
/* 00EDC 809F022C E7A6003C */ swc1 $f6, 0x003C($sp)
/* 00EE0 809F0230 C668002C */ lwc1 $f8, 0x002C($s3) ## 0000002C
/* 00EE4 809F0234 E7A80040 */ swc1 $f8, 0x0040($sp)
/* 00EE8 809F0238 00113400 */ sll $a2, $s1, 16
.L809F023C:
/* 00EEC 809F023C 00063403 */ sra $a2, $a2, 16
/* 00EF0 809F0240 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 00EF4 809F0244 0C007D52 */ jal Item_DropCollectible
/* 00EF8 809F0248 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFF0
/* 00EFC 809F024C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00F00 809F0250 5611FFFA */ bnel $s0, $s1, .L809F023C
/* 00F04 809F0254 00113400 */ sll $a2, $s1, 16
.L809F0258:
/* 00F08 809F0258 0C00B55C */ jal Actor_Kill
/* 00F0C 809F025C 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00F10 809F0260 8FBF002C */ lw $ra, 0x002C($sp)
.L809F0264:
/* 00F14 809F0264 8FB00018 */ lw $s0, 0x0018($sp)
/* 00F18 809F0268 8FB1001C */ lw $s1, 0x001C($sp)
/* 00F1C 809F026C 8FB20020 */ lw $s2, 0x0020($sp)
/* 00F20 809F0270 8FB30024 */ lw $s3, 0x0024($sp)
/* 00F24 809F0274 8FB40028 */ lw $s4, 0x0028($sp)
/* 00F28 809F0278 03E00008 */ jr $ra
/* 00F2C 809F027C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000

View file

@ -1,94 +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_Dns_InitVars
.word 0x011A0100, 0x00000009, 0x01680000, 0x000002C8
.word EnDns_Init
.word EnDns_Destroy
.word EnDns_Update
.word EnDns_Draw
glabel D_809F03E0
.word 0x0A000939, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x00120020, 0x00000000, 0x00000000
glabel D_809F040C
.word 0x10A010A1, 0x10A210CA, 0x10CB10CC, 0x10CD10CE, 0x10CF10DC, 0x10DD0000
glabel D_809F0424
.word D_809F0560
.word D_809F057C
.word D_809F0598
.word D_809F05B4
.word D_809F05D0
.word D_809F05EC
.word D_809F0608
.word D_809F0624
.word D_809F0640
.word D_809F065C
.word D_809F0678
glabel D_809F0450
.word 0x00140005, 0x00000063
.word func_809EF5A4
.word func_809EFA28
glabel D_809F0460
.word 0x000F0001, 0x00000007
.word func_809EF658
.word func_809EF9F8
glabel D_809F0470
.word 0x000A0001, 0x0000003E
.word func_809EF70C
.word func_809EFA58
glabel D_809F0480
.word 0x0028001E, 0x00000069
.word func_809EF73C
.word func_809EF9F8
glabel D_809F0490
.word 0x00320001, 0x00000029
.word func_809EF800
.word func_809EF9F8
glabel D_809F04A0
.word 0x00280005, 0x00000001
.word func_809EF854
.word func_809EFA9C
glabel D_809F04B0
.word 0x00460014, 0x0000004B
.word func_809EF8F4
.word func_809EFACC
glabel D_809F04C0
.word 0x00280001, 0x00000010
.word func_809EF9A4
.word func_809EF9F8
glabel D_809F04D0
.word 0x00280001, 0x00000011
.word func_809EF9A4
.word func_809EF9F8
glabel D_809F04E0
.word 0x00280001, 0x00000077
.word func_809EF70C
.word func_809EFAFC
glabel D_809F04F0
.word 0x00280001, 0x00000079
.word func_809EF70C
.word func_809EFB40
glabel D_809F0500
.word D_809F0450
.word D_809F0460
.word D_809F0470
.word D_809F0480
.word D_809F0490
.word D_809F04A0
.word D_809F04B0
.word D_809F04C0
.word D_809F04D0
.word D_809F04E0
.word D_809F04F0
glabel D_809F052C
.word 0x8917004E, 0x801F0002, 0x304C001E
glabel D_809F0538
.word 0x06001108, 0x00000000, 0x00000000, 0x06004404, 0x02000000, 0x00000000, 0x060009A0, 0x02000000, 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_809F0710
.incbin "baserom/ovl_En_Dns", 0x13C0, 0x000001D0

3
spec
View file

@ -2138,8 +2138,7 @@ endseg
beginseg
name "ovl_En_Dns"
include "build/src/overlays/actors/ovl_En_Dns/z_en_dns.o"
include "build/data/overlays/actors/z_en_dns.data.o"
include "build/data/overlays/actors/z_en_dns.reloc.o"
include "build/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o"
endseg
beginseg

View file

@ -1,4 +1,11 @@
/*
* File: z_en_dns.c
* Overlay: En_Dns
* Description: Deku Salesman
*/
#include "z_en_dns.h"
#include "vt.h"
#define FLAGS 0x00000009
@ -9,7 +16,34 @@ void EnDns_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnDns_Update(Actor* thisx, GlobalContext* globalCtx);
void EnDns_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
u32 func_809EF5A4(EnDns* this);
u32 func_809EF658(EnDns* this);
u32 func_809EF70C(EnDns* this);
u32 func_809EF73C(EnDns* this);
u32 func_809EF800(EnDns* this);
u32 func_809EF854(EnDns* this);
u32 func_809EF8F4(EnDns* this);
u32 func_809EF9A4(EnDns* this);
void func_809EF9F8(EnDns* this);
void func_809EFA28(EnDns* this);
void func_809EFA58(EnDns* this);
void func_809EFA9C(EnDns* this);
void func_809EFACC(EnDns* this);
void func_809EFAFC(EnDns* this);
void func_809EFB40(EnDns* this);
void EnDns_SetupWait(EnDns* this, GlobalContext* globalCtx);
void EnDns_Wait(EnDns* this, GlobalContext* globalCtx);
void EnDns_Talk(EnDns* this, GlobalContext* globalCtx);
void func_809EFDD0(EnDns* this, GlobalContext* globalCtx);
void func_809EFEE8(EnDns* this, GlobalContext* globalCtx);
void func_809EFF50(EnDns* this, GlobalContext* globalCtx);
void func_809EFF98(EnDns* this, GlobalContext* globalCtx);
void func_809F008C(EnDns* this, GlobalContext* globalCtx);
void EnDns_SetupBurrow(EnDns* this, GlobalContext* globalCtx);
void EnDns_Burrow(EnDns* this, GlobalContext* globalCtx);
const ActorInit En_Dns_InitVars = {
ACTOR_EN_DNS,
ACTORTYPE_BG,
@ -21,63 +55,438 @@ const ActorInit En_Dns_InitVars = {
(ActorFunc)EnDns_Update,
(ActorFunc)EnDns_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/EnDns_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/EnDns_Destroy.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF51C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF5A4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF658.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF70C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF73C.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF800.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF854.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF8F4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF9A4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EF9F8.s")
static ColliderCylinderInit_Set3 sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x09, 0x39, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 18, 32, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFA28.s")
u16 D_809F040C[] = {
0x10A0, 0x10A1, 0x10A2, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10DC, 0x10DD,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFA58.s")
// Debug text: sells { Deku Nuts, Deku Sticks, Piece of Heart, Deku Seeds,
// Deku Shield, Bombs, Arrows, Red Potion,
// Green Potion, Deku Stick Upgrade, Deku Nut Upgrade }
char* D_809F0424[] = {
"デクの実売り ", "デクの棒売り ", "ハートの欠片売り ", "デクの種売り ",
"デクの盾売り ", "バクダン売り ", "矢売り ", "赤のくすり売り ",
"緑のくすり売り ", "デクの棒持てる数を増やす", "デクの実持てる数を増やす",
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFA9C.s")
DnsItemEntry D_809F0450 = { 20, 5, GI_NUTS_5_2, func_809EF5A4, func_809EFA28 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFACC.s")
DnsItemEntry D_809F0460 = { 15, 1, GI_STICKS_1, func_809EF658, func_809EF9F8 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFAFC.s")
DnsItemEntry D_809F0470 = { 10, 1, GI_HEART_PIECE, func_809EF70C, func_809EFA58 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFB40.s")
DnsItemEntry D_809F0480 = { 40, 30, GI_SEEDS_30, func_809EF73C, func_809EF9F8 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFB84.s")
DnsItemEntry D_809F0490 = { 50, 1, GI_SHIELD_DEKU, func_809EF800, func_809EF9F8 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFBC8.s")
DnsItemEntry D_809F04A0 = { 40, 5, GI_BOMBS_5, func_809EF854, func_809EFA9C };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFC9C.s")
DnsItemEntry D_809F04B0 = { 70, 20, GI_ARROWS_LARGE, func_809EF8F4, func_809EFACC };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFDD0.s")
DnsItemEntry D_809F04C0 = { 40, 1, GI_POTION_RED, func_809EF9A4, func_809EF9F8 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFEE8.s")
DnsItemEntry D_809F04D0 = { 40, 1, GI_POTION_GREEN, func_809EF9A4, func_809EF9F8 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFF50.s")
DnsItemEntry D_809F04E0 = { 40, 1, GI_STICK_UPGRADE_20, func_809EF70C, func_809EFAFC };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809EFF98.s")
DnsItemEntry D_809F04F0 = { 40, 1, GI_NUT_UPGRADE_30, func_809EF70C, func_809EFB40 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809F008C.s")
DnsItemEntry* D_809F0500[] = {
&D_809F0450, &D_809F0460, &D_809F0470, &D_809F0480, &D_809F0490, &D_809F04A0,
&D_809F04B0, &D_809F04C0, &D_809F04D0, &D_809F04E0, &D_809F04F0,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809F0100.s")
static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 78, ICHAIN_CONTINUE),
ICHAIN_U8(unk_1F, 2, ICHAIN_CONTINUE),
ICHAIN_F32(unk_4C, 30, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/func_809F017C.s")
typedef struct {
/* 0x00 */ AnimationHeader* anim;
/* 0x04 */ u8 mode;
/* 0x08 */ f32 transitionRate;
} DnsAnimInfo; // size = 0xC
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/EnDns_Update.s")
DnsAnimInfo D_809F0538[] = {
{ 0x06001108, 0x00, 0.0f },
{ 0x06004404, 0x02, 0.0f },
{ 0x060009A0, 0x02, 0.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dns/EnDns_Draw.s")
extern AnimationHeader D_060009A0;
extern SkeletonHeader D_060041A8;
extern GenericAnimationHeader D_06004404;
void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) {
EnDns* this = THIS;
if (this->actor.params < 0) {
// "Function Error (Deku Salesman)"
osSyncPrintf(VT_FGCOL(RED) "引数エラー(売りナッツ)[ arg_data = %d ]" VT_RST "\n", this->actor.params);
Actor_Kill(&this->actor);
return;
}
// Sell Seeds instead of Arrows if Link is child
if ((this->actor.params == 0x0006) && (LINK_AGE_IN_YEARS == YEARS_CHILD)) {
this->actor.params = 0x0003;
}
// Deku Salesman
osSyncPrintf(VT_FGCOL(GREEN) "◆◆◆ 売りナッツ『%s』 ◆◆◆" VT_RST "\n", D_809F0424[this->actor.params],
this->actor.params);
Actor_ProcessInitChain(&this->actor, sInitChain);
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_060041A8, &D_060009A0, this->limbDrawTable,
this->transitionDrawTable, 18);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder_Set3(globalCtx, &this->collider, &this->actor, &sCylinderInit);
ActorShape_Init(&this->actor.shape, 0.0f, &ActorShadow_DrawFunc_Circle, 35.0f);
this->actor.textId = D_809F040C[this->actor.params];
Actor_SetScale(&this->actor, 0.01f);
this->actor.colChkInfo.mass = 0xFF;
this->maintainCollider = 1;
this->standOnGround = 1;
this->dropCollectible = 0;
this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.gravity = -1.0f;
this->dnsItemEntry = D_809F0500[this->actor.params];
this->actionFunc = EnDns_SetupWait;
}
void EnDns_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnDns* this = THIS;
Collider_DestroyCylinder(globalCtx, &this->collider);
}
void EnDns_ChangeAnim(EnDns* this, u8 arg1) {
s16 frameCount;
frameCount = SkelAnime_GetFrameCount(&D_809F0538[arg1].anim->genericHeader);
this->unk_2BA = arg1; // Not used anywhere else?
SkelAnime_ChangeAnim(&this->skelAnime, D_809F0538[arg1].anim, 1.0f, 0.0f, (f32)frameCount, D_809F0538[arg1].mode,
D_809F0538[arg1].transitionRate);
}
/* Item give checking functions */
u32 func_809EF5A4(EnDns* this) {
if ((CUR_CAPACITY(UPG_NUTS) != 0) && (AMMO(ITEM_NUT) >= CUR_CAPACITY(UPG_NUTS))) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
if (Item_CheckObtainability(ITEM_NUT) == ITEM_NONE) {
return 2;
}
return 4;
}
u32 func_809EF658(EnDns* this) {
if ((CUR_CAPACITY(UPG_STICKS) != 0) && (AMMO(ITEM_STICK) >= CUR_CAPACITY(UPG_STICKS))) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
if (Item_CheckObtainability(ITEM_STICK) == ITEM_NONE) {
return 2;
}
return 4;
}
u32 func_809EF70C(EnDns* this) {
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
return 4;
}
u32 func_809EF73C(EnDns* this) {
if (INV_CONTENT(SLOT_SLINGSHOT) == ITEM_NONE) {
return 3;
}
if (AMMO(ITEM_SLINGSHOT) >= CUR_CAPACITY(UPG_BULLET_BAG)) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
if (Item_CheckObtainability(ITEM_SEEDS) == ITEM_NONE) {
return 2;
}
return 4;
}
u32 func_809EF800(EnDns* this) {
if (gBitFlags[4] & gSaveContext.inventory.equipment) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
return 4;
}
u32 func_809EF854(EnDns* this) {
if (!CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
return 3;
}
if (AMMO(ITEM_BOMB) >= CUR_CAPACITY(UPG_BOMB_BAG)) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
return 4;
}
u32 func_809EF8F4(EnDns* this) {
if (Item_CheckObtainability(ITEM_BOW) == ITEM_NONE) {
return 3;
}
if (AMMO(ITEM_BOW) >= CUR_CAPACITY(UPG_QUIVER)) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
return 4;
}
u32 func_809EF9A4(EnDns* this) {
if (!Inventory_HasEmptyBottle()) {
return 1;
}
if (gSaveContext.rupees < this->dnsItemEntry->itemPrice) {
return 0;
}
return 4;
}
/* Paying and flagging functions */
void func_809EF9F8(EnDns* this) {
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFA28(EnDns* this) {
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFA58(EnDns* this) {
gSaveContext.itemGetInf[0] |= 0x800;
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFA9C(EnDns* this) {
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFACC(EnDns* this) {
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFAFC(EnDns* this) {
gSaveContext.infTable[25] |= 0x4;
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void func_809EFB40(EnDns* this) {
gSaveContext.infTable[25] |= 0x8;
Rupees_ChangeBy(-this->dnsItemEntry->itemPrice);
}
void EnDns_SetupWait(EnDns* this, GlobalContext* globalCtx) {
if (this->skelAnime.animCurrentFrame == this->skelAnime.animFrameCount) {
this->actionFunc = EnDns_Wait;
EnDns_ChangeAnim(this, 0);
}
}
void EnDns_Wait(EnDns* this, GlobalContext* globalCtx) {
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, this->actor.yawTowardsLink, 3, 2000, 0);
this->actor.posRot.rot.y = this->actor.shape.rot.y;
if (func_8002F194(&this->actor, globalCtx)) {
this->actionFunc = EnDns_Talk;
} else {
if ((this->collider.base.maskA & 2) || (this->actor.unk_10C != 0)) {
this->actor.flags |= 0x10000;
} else {
this->actor.flags &= ~0x10000;
}
if (this->actor.xzDistFromLink < 130.0f) {
func_8002F2F4(&this->actor, globalCtx);
}
}
}
void EnDns_Talk(EnDns* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx))) {
switch (globalCtx->msgCtx.choiceIndex) {
case 0: // OK
switch (this->dnsItemEntry->purchaseableCheck(this)) {
case 0:
func_8010B720(globalCtx, 0x10A5);
this->actionFunc = func_809F008C;
break;
case 1:
func_8010B720(globalCtx, 0x10A6);
this->actionFunc = func_809F008C;
break;
case 3:
func_8010B720(globalCtx, 0x10DE);
this->actionFunc = func_809F008C;
break;
case 2:
case 4:
func_8010B720(globalCtx, 0x10A7);
this->actionFunc = func_809EFEE8;
break;
}
break;
case 1: // No way
func_8010B720(globalCtx, 0x10A4);
this->actionFunc = func_809F008C;
}
}
}
void func_809EFDD0(EnDns* this, GlobalContext* globalCtx) {
if (this->actor.params == 0x9) {
if (CUR_UPG_VALUE(UPG_STICKS) < 2) {
func_8002F434(&this->actor, globalCtx, GI_STICK_UPGRADE_20, 130.0f, 100.0f);
} else {
func_8002F434(&this->actor, globalCtx, GI_STICK_UPGRADE_30, 130.0f, 100.0f);
}
} else if (this->actor.params == 0xA) {
if (CUR_UPG_VALUE(UPG_NUTS) < 2) {
func_8002F434(&this->actor, globalCtx, GI_NUT_UPGRADE_30, 130.0f, 100.0f);
} else {
func_8002F434(&this->actor, globalCtx, GI_NUT_UPGRADE_40, 130.0f, 100.0f);
}
} else {
func_8002F434(&this->actor, globalCtx, this->dnsItemEntry->getItemID, 130.0f, 100.0f);
}
}
void func_809EFEE8(EnDns* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
func_80106CCC(globalCtx);
func_809EFDD0(this, globalCtx);
this->actionFunc = func_809EFF50;
}
}
void func_809EFF50(EnDns* this, GlobalContext* globalCtx) {
if (Actor_HasParent(&this->actor, globalCtx)) {
this->actor.parent = NULL;
this->actionFunc = func_809EFF98;
} else {
func_809EFDD0(this, globalCtx);
}
}
void func_809EFF98(EnDns* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (player->stateFlags1 & 0x400) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) {
this->dnsItemEntry->setRupeesAndFlags(this);
this->dropCollectible = 1;
this->maintainCollider = 0;
this->actor.flags &= ~1;
EnDns_ChangeAnim(this, 1);
this->actionFunc = EnDns_SetupBurrow;
}
} else {
this->dnsItemEntry->setRupeesAndFlags(this);
this->dropCollectible = 1;
this->maintainCollider = 0;
this->actor.flags &= ~1;
EnDns_ChangeAnim(this, 1);
this->actionFunc = EnDns_SetupBurrow;
}
}
void func_809F008C(EnDns* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 6) && (func_80106BC8(globalCtx) != 0)) {
this->maintainCollider = 0;
this->actor.flags &= ~1;
EnDns_ChangeAnim(this, 1);
this->actionFunc = EnDns_SetupBurrow;
}
}
void EnDns_SetupBurrow(EnDns* this, GlobalContext* globalCtx) {
f32 frameCount = SkelAnime_GetFrameCount(&D_06004404);
if (this->skelAnime.animCurrentFrame == frameCount) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_AKINDONUTS_HIDE);
this->actionFunc = EnDns_Burrow;
this->standOnGround = 0;
this->yInitPos = this->actor.posRot.pos.y;
}
}
void EnDns_Burrow(EnDns* this, GlobalContext* globalCtx) {
f32 depth;
Vec3f initPos;
s32 i;
depth = this->yInitPos - this->actor.posRot.pos.y;
if ((this->dustTimer & 3) == 0) {
initPos.x = this->actor.posRot.pos.x;
initPos.y = this->yInitPos;
initPos.z = this->actor.posRot.pos.z;
func_80028990(globalCtx, 20.0f, &initPos);
}
this->actor.shape.rot.y += 0x2000;
// Drops only if you bought its item
if (depth > 400.0f) {
if (this->dropCollectible) {
initPos.x = this->actor.posRot.pos.x;
initPos.y = this->yInitPos;
initPos.z = this->actor.posRot.pos.z;
for (i = 0; i < 3; i++) {
Item_DropCollectible(globalCtx, &initPos, ITEM00_HEART);
}
}
Actor_Kill(&this->actor);
}
}
void EnDns_Update(Actor* thisx, GlobalContext* globalCtx) {
EnDns* this = THIS;
s16 pad;
this->dustTimer++;
this->actor.textId = D_809F040C[this->actor.params];
Actor_SetHeight(&this->actor, 60.0f);
Actor_SetScale(&this->actor, 0.01f);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
Actor_MoveForward(&this->actor);
this->actionFunc(this, globalCtx);
if (this->standOnGround) {
func_8002E4B4(globalCtx, &this->actor, 20.0f, 20.0f, 20.0f, 4);
}
if (this->maintainCollider) {
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
}
void EnDns_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnDns* this = THIS;
func_80093D18(globalCtx->state.gfxCtx);
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount, 0, 0,
&this->actor);
}

View file

@ -6,9 +6,32 @@
struct EnDns;
typedef void (*EnDnsActionFunc)(struct EnDns*, GlobalContext*);
typedef u32 (*EnDnsPurchaseableCheck)(struct EnDns*);
typedef void (*EnDnsSetRupeesAndFlags)(struct EnDns*);
typedef struct {
/* 0x00 */ s16 itemPrice;
/* 0x02 */ u16 itemAmount;
/* 0x04 */ s32 getItemID;
/* 0x08 */ EnDnsPurchaseableCheck purchaseableCheck;
/* 0x0C */ EnDnsSetRupeesAndFlags setRupeesAndFlags;
} DnsItemEntry; // size = 0x10
typedef struct EnDns {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x17C];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[18];
/* 0x01FC */ Vec3s transitionDrawTable[18];
/* 0x0268 */ EnDnsActionFunc actionFunc;
/* 0x026C */ ColliderCylinder collider;
/* 0x02B8 */ s16 dustTimer;
/* 0x02BA */ u8 unk_2BA;
/* 0x02BB */ u8 maintainCollider;
/* 0x02BC */ u8 standOnGround;
/* 0x02BD */ u8 dropCollectible;
/* 0x02C0 */ DnsItemEntry* dnsItemEntry;
/* 0x02C4 */ f32 yInitPos;
} EnDns; // size = 0x02C8
extern const ActorInit En_Dns_InitVars;

View file

@ -1425,3 +1425,7 @@ D_06002428 = 0x06002428;
D_060023D0 = 0x060023D0;
D_06002594 = 0x06002594;
// z_en_dns
D_060041A8 = 0x060041A8;
D_060009A0 = 0x060009A0;
D_06004404 = 0x06004404;