1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-25 14:16:11 +00:00

z_en_js OK (#336)

* Initial commit for en_js

* More work on decomping en_js

* More en_js work

* z_en_js OK

* Made requested changes/improvements

* Renamed arg in func_80A88F64

* Fixed undefined_symbols.txt

* Fixed undefined_symbols.txt

* Fixed undefined_symbols.txt
This commit is contained in:
fullgrowngaming 2020-08-21 23:24:07 -07:00 committed by GitHub
parent 8d5d644647
commit 3cb03b2b2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 203 additions and 666 deletions

View file

@ -1,12 +0,0 @@
glabel EnJs_Destroy
/* 0012C 80A88F3C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00130 80A88F40 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00134 80A88F44 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00138 80A88F48 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0013C 80A88F4C 0C0170EB */ jal Collider_DestroyCylinder
/* 00140 80A88F50 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
/* 00144 80A88F54 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00148 80A88F58 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0014C 80A88F5C 03E00008 */ jr $ra
/* 00150 80A88F60 00000000 */ nop

View file

@ -1,24 +0,0 @@
glabel EnJs_Draw
/* 00824 80A89634 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00828 80A89638 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0082C 80A8963C AFA40028 */ sw $a0, 0x0028($sp)
/* 00830 80A89640 AFA5002C */ sw $a1, 0x002C($sp)
/* 00834 80A89644 0C0250F2 */ jal func_800943C8
/* 00838 80A89648 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
/* 0083C 80A8964C 8FA20028 */ lw $v0, 0x0028($sp)
/* 00840 80A89650 3C0F80A9 */ lui $t7, %hi(func_80A895C0) ## $t7 = 80A90000
/* 00844 80A89654 3C1880A9 */ lui $t8, %hi(func_80A895F4) ## $t8 = 80A90000
/* 00848 80A89658 8C45019C */ lw $a1, 0x019C($v0) ## 0000019C
/* 0084C 80A8965C 8C4601B8 */ lw $a2, 0x01B8($v0) ## 000001B8
/* 00850 80A89660 9047019A */ lbu $a3, 0x019A($v0) ## 0000019A
/* 00854 80A89664 271895F4 */ addiu $t8, $t8, %lo(func_80A895F4) ## $t8 = 80A895F4
/* 00858 80A89668 25EF95C0 */ addiu $t7, $t7, %lo(func_80A895C0) ## $t7 = 80A895C0
/* 0085C 80A8966C AFAF0010 */ sw $t7, 0x0010($sp)
/* 00860 80A89670 AFB80014 */ sw $t8, 0x0014($sp)
/* 00864 80A89674 8FA4002C */ lw $a0, 0x002C($sp)
/* 00868 80A89678 0C0286B2 */ jal SkelAnime_DrawSV
/* 0086C 80A8967C AFA20018 */ sw $v0, 0x0018($sp)
/* 00870 80A89680 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00874 80A89684 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00878 80A89688 03E00008 */ jr $ra
/* 0087C 80A8968C 00000000 */ nop

View file

@ -1,79 +0,0 @@
glabel EnJs_Init
/* 00008 80A88E18 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 0000C 80A88E1C AFB10038 */ sw $s1, 0x0038($sp)
/* 00010 80A88E20 AFB00034 */ sw $s0, 0x0034($sp)
/* 00014 80A88E24 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80A88E28 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0001C 80A88E2C AFBF003C */ sw $ra, 0x003C($sp)
/* 00020 80A88E30 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00024 80A88E34 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
/* 00028 80A88E38 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0002C 80A88E3C 0C00AC78 */ jal ActorShape_Init
/* 00030 80A88E40 3C074210 */ lui $a3, 0x4210 ## $a3 = 42100000
/* 00034 80A88E44 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198
/* 00038 80A88E48 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
/* 0003C 80A88E4C 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
/* 00040 80A88E50 260E01DC */ addiu $t6, $s0, 0x01DC ## $t6 = 000001DC
/* 00044 80A88E54 260F022A */ addiu $t7, $s0, 0x022A ## $t7 = 0000022A
/* 00048 80A88E58 2418000D */ addiu $t8, $zero, 0x000D ## $t8 = 0000000D
/* 0004C 80A88E5C AFB80018 */ sw $t8, 0x0018($sp)
/* 00050 80A88E60 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00054 80A88E64 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00058 80A88E68 24E7045C */ addiu $a3, $a3, 0x045C ## $a3 = 0600045C
/* 0005C 80A88E6C 24C65EA0 */ addiu $a2, $a2, 0x5EA0 ## $a2 = 06005EA0
/* 00060 80A88E70 AFA50044 */ sw $a1, 0x0044($sp)
/* 00064 80A88E74 0C0291BE */ jal SkelAnime_InitSV
/* 00068 80A88E78 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0006C 80A88E7C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00070 80A88E80 24A5045C */ addiu $a1, $a1, 0x045C ## $a1 = 0600045C
/* 00074 80A88E84 0C02947A */ jal SkelAnime_ChangeAnimDefaultStop
/* 00078 80A88E88 8FA40044 */ lw $a0, 0x0044($sp)
/* 0007C 80A88E8C 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00080 80A88E90 AFA50044 */ sw $a1, 0x0044($sp)
/* 00084 80A88E94 0C0170D9 */ jal Collider_InitCylinder
/* 00088 80A88E98 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0008C 80A88E9C 3C0780A9 */ lui $a3, %hi(D_80A896B0) ## $a3 = 80A90000
/* 00090 80A88EA0 8FA50044 */ lw $a1, 0x0044($sp)
/* 00094 80A88EA4 24E796B0 */ addiu $a3, $a3, %lo(D_80A896B0) ## $a3 = 80A896B0
/* 00098 80A88EA8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0009C 80A88EAC 0C01712B */ jal Collider_SetCylinder
/* 000A0 80A88EB0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000A4 80A88EB4 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
/* 000A8 80A88EB8 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 000AC 80A88EBC A21900AE */ sb $t9, 0x00AE($s0) ## 000000AE
/* 000B0 80A88EC0 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 000B4 80A88EC4 0C00B58B */ jal Actor_SetScale
/* 000B8 80A88EC8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000BC 80A88ECC 3C0580A9 */ lui $a1, %hi(func_80A89304) ## $a1 = 80A90000
/* 000C0 80A88ED0 24A59304 */ addiu $a1, $a1, %lo(func_80A89304) ## $a1 = 80A89304
/* 000C4 80A88ED4 0C2A2384 */ jal func_80A88E10
/* 000C8 80A88ED8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000CC 80A88EDC 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 000D0 80A88EE0 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00
/* 000D4 80A88EE4 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 000D8 80A88EE8 A6000284 */ sh $zero, 0x0284($s0) ## 00000284
/* 000DC 80A88EEC E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C
/* 000E0 80A88EF0 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 000E4 80A88EF4 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 000E8 80A88EF8 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 000EC 80A88EFC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 000F0 80A88F00 E7A80014 */ swc1 $f8, 0x0014($sp)
/* 000F4 80A88F04 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 000F8 80A88F08 AFA00028 */ sw $zero, 0x0028($sp)
/* 000FC 80A88F0C AFA00024 */ sw $zero, 0x0024($sp)
/* 00100 80A88F10 AFA00020 */ sw $zero, 0x0020($sp)
/* 00104 80A88F14 AFA0001C */ sw $zero, 0x001C($sp)
/* 00108 80A88F18 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 0010C 80A88F1C 2407016B */ addiu $a3, $zero, 0x016B ## $a3 = 0000016B
/* 00110 80A88F20 0C00C916 */ jal Actor_SpawnAttached
/* 00114 80A88F24 E7AA0018 */ swc1 $f10, 0x0018($sp)
/* 00118 80A88F28 8FBF003C */ lw $ra, 0x003C($sp)
/* 0011C 80A88F2C 8FB00034 */ lw $s0, 0x0034($sp)
/* 00120 80A88F30 8FB10038 */ lw $s1, 0x0038($sp)
/* 00124 80A88F34 03E00008 */ jr $ra
/* 00128 80A88F38 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -1,183 +0,0 @@
glabel EnJs_Update
/* 00528 80A89338 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 0052C 80A8933C AFB00028 */ sw $s0, 0x0028($sp)
/* 00530 80A89340 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00534 80A89344 AFBF002C */ sw $ra, 0x002C($sp)
/* 00538 80A89348 AFA5004C */ sw $a1, 0x004C($sp)
/* 0053C 80A8934C 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
/* 00540 80A89350 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000014C
/* 00544 80A89354 0C0189B7 */ jal Collider_CylinderUpdate
/* 00548 80A89358 AFA60034 */ sw $a2, 0x0034($sp)
/* 0054C 80A8935C 8FA4004C */ lw $a0, 0x004C($sp)
/* 00550 80A89360 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00554 80A89364 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00558 80A89368 8FA60034 */ lw $a2, 0x0034($sp)
/* 0055C 80A8936C 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00560 80A89370 00812821 */ addu $a1, $a0, $at
/* 00564 80A89374 0C00B638 */ jal Actor_MoveForward
/* 00568 80A89378 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0056C 80A8937C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00570 80A89380 240E0004 */ addiu $t6, $zero, 0x0004 ## $t6 = 00000004
/* 00574 80A89384 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00578 80A89388 44060000 */ mfc1 $a2, $f0
/* 0057C 80A8938C 44070000 */ mfc1 $a3, $f0
/* 00580 80A89390 8FA4004C */ lw $a0, 0x004C($sp)
/* 00584 80A89394 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00588 80A89398 0C00B92D */ jal func_8002E4B4
/* 0058C 80A8939C E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00590 80A893A0 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 00594 80A893A4 8FA4004C */ lw $a0, 0x004C($sp)
/* 00598 80A893A8 3C098016 */ lui $t1, %hi(gGameInfo)
/* 0059C 80A893AC 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 005A0 80A893B0 1300001F */ beq $t8, $zero, .L80A89430
/* 005A4 80A893B4 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 005A8 80A893B8 8E050078 */ lw $a1, 0x0078($s0) ## 00000078
/* 005AC 80A893BC 0C0107CD */ jal func_80041F34
/* 005B0 80A893C0 9206007D */ lbu $a2, 0x007D($s0) ## 0000007D
/* 005B4 80A893C4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 005B8 80A893C8 14410028 */ bne $v0, $at, .L80A8946C
/* 005BC 80A893CC 3C028016 */ lui $v0, %hi(gGameInfo)
/* 005C0 80A893D0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 005C4 80A893D4 3C01C4FA */ lui $at, 0xC4FA ## $at = C4FA0000
/* 005C8 80A893D8 44814000 */ mtc1 $at, $f8 ## $f8 = -2000.00
/* 005CC 80A893DC 84590CB4 */ lh $t9, 0x0CB4($v0) ## 80160CB4
/* 005D0 80A893E0 84480CB6 */ lh $t0, 0x0CB6($v0) ## 80160CB6
/* 005D4 80A893E4 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 005D8 80A893E8 44992000 */ mtc1 $t9, $f4 ## $f4 = 0.00
/* 005DC 80A893EC 44888000 */ mtc1 $t0, $f16 ## $f16 = 0.00
/* 005E0 80A893F0 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
/* 005E4 80A893F4 468021A0 */ cvt.s.w $f6, $f4
/* 005E8 80A893F8 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 005EC 80A893FC 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 005F0 80A89400 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 005F4 80A89404 468084A0 */ cvt.s.w $f18, $f16
/* 005F8 80A89408 46083280 */ add.s $f10, $f6, $f8
/* 005FC 80A8940C 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00
/* 00600 80A89410 46049183 */ div.s $f6, $f18, $f4
/* 00604 80A89414 44055000 */ mfc1 $a1, $f10
/* 00608 80A89418 46083280 */ add.s $f10, $f6, $f8
/* 0060C 80A8941C 44075000 */ mfc1 $a3, $f10
/* 00610 80A89420 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00614 80A89424 00000000 */ nop
/* 00618 80A89428 10000010 */ beq $zero, $zero, .L80A8946C
/* 0061C 80A8942C 00000000 */ nop
.L80A89430:
/* 00620 80A89430 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1)
/* 00624 80A89434 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00628 80A89438 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 0062C 80A8943C 852A0CB6 */ lh $t2, 0x0CB6($t1) ## 00000CB6
/* 00630 80A89440 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00634 80A89444 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00
/* 00638 80A89448 448A8000 */ mtc1 $t2, $f16 ## $f16 = 0.00
/* 0063C 80A8944C 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
/* 00640 80A89450 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00644 80A89454 468084A0 */ cvt.s.w $f18, $f16
/* 00648 80A89458 46049183 */ div.s $f6, $f18, $f4
/* 0064C 80A8945C 46083280 */ add.s $f10, $f6, $f8
/* 00650 80A89460 44065000 */ mfc1 $a2, $f10
/* 00654 80A89464 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 00658 80A89468 00000000 */ nop
.L80A8946C:
/* 0065C 80A8946C 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00660 80A89470 26040198 */ addiu $a0, $s0, 0x0198 ## $a0 = 00000198
/* 00664 80A89474 50400005 */ beql $v0, $zero, .L80A8948C
/* 00668 80A89478 8E19028C */ lw $t9, 0x028C($s0) ## 0000028C
/* 0066C 80A8947C 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
/* 00670 80A89480 00000000 */ nop
/* 00674 80A89484 E61001B0 */ swc1 $f16, 0x01B0($s0) ## 000001B0
/* 00678 80A89488 8E19028C */ lw $t9, 0x028C($s0) ## 0000028C
.L80A8948C:
/* 0067C 80A8948C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00680 80A89490 8FA5004C */ lw $a1, 0x004C($sp)
/* 00684 80A89494 0320F809 */ jalr $ra, $t9
/* 00688 80A89498 00000000 */ nop
/* 0068C 80A8949C 960B0284 */ lhu $t3, 0x0284($s0) ## 00000284
/* 00690 80A894A0 26040278 */ addiu $a0, $s0, 0x0278 ## $a0 = 00000278
/* 00694 80A894A4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00698 80A894A8 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000
/* 0069C 80A894AC 1180000E */ beq $t4, $zero, .L80A894E8
/* 006A0 80A894B0 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006
/* 006A4 80A894B4 8E0E0038 */ lw $t6, 0x0038($s0) ## 00000038
/* 006A8 80A894B8 8FA4004C */ lw $a0, 0x004C($sp)
/* 006AC 80A894BC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 006B0 80A894C0 AFAE0010 */ sw $t6, 0x0010($sp)
/* 006B4 80A894C4 8E0D003C */ lw $t5, 0x003C($s0) ## 0000003C
/* 006B8 80A894C8 26060278 */ addiu $a2, $s0, 0x0278 ## $a2 = 00000278
/* 006BC 80A894CC 2607027E */ addiu $a3, $s0, 0x027E ## $a3 = 0000027E
/* 006C0 80A894D0 AFAD0014 */ sw $t5, 0x0014($sp)
/* 006C4 80A894D4 8E0E0040 */ lw $t6, 0x0040($s0) ## 00000040
/* 006C8 80A894D8 0C00E0A4 */ jal func_80038290
/* 006CC 80A894DC AFAE0018 */ sw $t6, 0x0018($sp)
/* 006D0 80A894E0 1000001B */ beq $zero, $zero, .L80A89550
/* 006D4 80A894E4 960A0284 */ lhu $t2, 0x0284($s0) ## 00000284
.L80A894E8:
/* 006D8 80A894E8 240F0064 */ addiu $t7, $zero, 0x0064 ## $t7 = 00000064
/* 006DC 80A894EC AFAF0010 */ sw $t7, 0x0010($sp)
/* 006E0 80A894F0 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 006E4 80A894F4 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838
/* 006E8 80A894F8 24180064 */ addiu $t8, $zero, 0x0064 ## $t8 = 00000064
/* 006EC 80A894FC AFB80010 */ sw $t8, 0x0010($sp)
/* 006F0 80A89500 2604027A */ addiu $a0, $s0, 0x027A ## $a0 = 0000027A
/* 006F4 80A89504 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 006F8 80A89508 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006
/* 006FC 80A8950C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00700 80A89510 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838
/* 00704 80A89514 24080064 */ addiu $t0, $zero, 0x0064 ## $t0 = 00000064
/* 00708 80A89518 AFA80010 */ sw $t0, 0x0010($sp)
/* 0070C 80A8951C 2604027E */ addiu $a0, $s0, 0x027E ## $a0 = 0000027E
/* 00710 80A89520 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00714 80A89524 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006
/* 00718 80A89528 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 0071C 80A8952C 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838
/* 00720 80A89530 24090064 */ addiu $t1, $zero, 0x0064 ## $t1 = 00000064
/* 00724 80A89534 AFA90010 */ sw $t1, 0x0010($sp)
/* 00728 80A89538 26040280 */ addiu $a0, $s0, 0x0280 ## $a0 = 00000280
/* 0072C 80A8953C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00730 80A89540 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006
/* 00734 80A89544 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00738 80A89548 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838
/* 0073C 80A8954C 960A0284 */ lhu $t2, 0x0284($s0) ## 00000284
.L80A89550:
/* 00740 80A89550 86030288 */ lh $v1, 0x0288($s0) ## 00000288
/* 00744 80A89554 2404003C */ addiu $a0, $zero, 0x003C ## $a0 = 0000003C
/* 00748 80A89558 3159FFFE */ andi $t9, $t2, 0xFFFE ## $t9 = 00000000
/* 0074C 80A8955C 14600003 */ bne $v1, $zero, .L80A8956C
/* 00750 80A89560 A6190284 */ sh $t9, 0x0284($s0) ## 00000284
/* 00754 80A89564 10000005 */ beq $zero, $zero, .L80A8957C
/* 00758 80A89568 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A8956C:
/* 0075C 80A8956C 246BFFFF */ addiu $t3, $v1, 0xFFFF ## $t3 = FFFFFFFF
/* 00760 80A89570 A60B0288 */ sh $t3, 0x0288($s0) ## 00000288
/* 00764 80A89574 86030288 */ lh $v1, 0x0288($s0) ## 00000288
/* 00768 80A89578 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
.L80A8957C:
/* 0076C 80A8957C 54400006 */ bnel $v0, $zero, .L80A89598
/* 00770 80A89580 A6030286 */ sh $v1, 0x0286($s0) ## 00000286
/* 00774 80A89584 0C01DF64 */ jal Math_Rand_S16Offset
/* 00778 80A89588 2405003C */ addiu $a1, $zero, 0x003C ## $a1 = 0000003C
/* 0077C 80A8958C A6020288 */ sh $v0, 0x0288($s0) ## 00000288
/* 00780 80A89590 86030288 */ lh $v1, 0x0288($s0) ## 00000288
/* 00784 80A89594 A6030286 */ sh $v1, 0x0286($s0) ## 00000286
.L80A89598:
/* 00788 80A89598 860C0286 */ lh $t4, 0x0286($s0) ## 00000286
/* 0078C 80A8959C 29810003 */ slti $at, $t4, 0x0003
/* 00790 80A895A0 54200003 */ bnel $at, $zero, .L80A895B0
/* 00794 80A895A4 8FBF002C */ lw $ra, 0x002C($sp)
/* 00798 80A895A8 A6000286 */ sh $zero, 0x0286($s0) ## 00000286
/* 0079C 80A895AC 8FBF002C */ lw $ra, 0x002C($sp)
.L80A895B0:
/* 007A0 80A895B0 8FB00028 */ lw $s0, 0x0028($sp)
/* 007A4 80A895B4 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 007A8 80A895B8 03E00008 */ jr $ra
/* 007AC 80A895BC 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80A88E10
/* 00000 80A88E10 03E00008 */ jr $ra
/* 00004 80A88E14 AC85028C */ sw $a1, 0x028C($a0) ## 0000028C

View file

@ -1,47 +0,0 @@
glabel func_80A88F64
/* 00154 80A88F64 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00158 80A88F68 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0015C 80A88F6C AFA5001C */ sw $a1, 0x001C($sp)
/* 00160 80A88F70 AFA60020 */ sw $a2, 0x0020($sp)
/* 00164 80A88F74 0C00BC65 */ jal func_8002F194
/* 00168 80A88F78 AFA40018 */ sw $a0, 0x0018($sp)
/* 0016C 80A88F7C 10400003 */ beq $v0, $zero, .L80A88F8C
/* 00170 80A88F80 8FA40018 */ lw $a0, 0x0018($sp)
/* 00174 80A88F84 1000001C */ beq $zero, $zero, .L80A88FF8
/* 00178 80A88F88 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80A88F8C:
/* 0017C 80A88F8C 848F008A */ lh $t7, 0x008A($a0) ## 0000008A
/* 00180 80A88F90 849800B6 */ lh $t8, 0x00B6($a0) ## 000000B6
/* 00184 80A88F94 97AE0022 */ lhu $t6, 0x0022($sp)
/* 00188 80A88F98 01F81023 */ subu $v0, $t7, $t8
/* 0018C 80A88F9C 00021400 */ sll $v0, $v0, 16
/* 00190 80A88FA0 00021403 */ sra $v0, $v0, 16
/* 00194 80A88FA4 04400003 */ bltz $v0, .L80A88FB4
/* 00198 80A88FA8 A48E010E */ sh $t6, 0x010E($a0) ## 0000010E
/* 0019C 80A88FAC 10000002 */ beq $zero, $zero, .L80A88FB8
/* 001A0 80A88FB0 00401825 */ or $v1, $v0, $zero ## $v1 = 00000001
.L80A88FB4:
/* 001A4 80A88FB4 00021823 */ subu $v1, $zero, $v0
.L80A88FB8:
/* 001A8 80A88FB8 28611801 */ slti $at, $v1, 0x1801
/* 001AC 80A88FBC 1020000D */ beq $at, $zero, .L80A88FF4
/* 001B0 80A88FC0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 001B4 80A88FC4 44810000 */ mtc1 $at, $f0 ## $f0 = 100.00
/* 001B8 80A88FC8 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 001BC 80A88FCC 4600203C */ c.lt.s $f4, $f0
/* 001C0 80A88FD0 00000000 */ nop
/* 001C4 80A88FD4 45020008 */ bc1fl .L80A88FF8
/* 001C8 80A88FD8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 001CC 80A88FDC 94990284 */ lhu $t9, 0x0284($a0) ## 00000284
/* 001D0 80A88FE0 44060000 */ mfc1 $a2, $f0
/* 001D4 80A88FE4 37280001 */ ori $t0, $t9, 0x0001 ## $t0 = 00000001
/* 001D8 80A88FE8 A4880284 */ sh $t0, 0x0284($a0) ## 00000284
/* 001DC 80A88FEC 0C00BCB3 */ jal func_8002F2CC
/* 001E0 80A88FF0 8FA5001C */ lw $a1, 0x001C($sp)
.L80A88FF4:
/* 001E4 80A88FF4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A88FF8:
/* 001E8 80A88FF8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001EC 80A88FFC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001F0 80A89000 03E00008 */ jr $ra
/* 001F4 80A89004 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80A89008
/* 001F8 80A89008 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 001FC 80A8900C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00200 80A89010 3C0580A9 */ lui $a1, %hi(func_80A89304) ## $a1 = 80A90000
/* 00204 80A89014 AFA40028 */ sw $a0, 0x0028($sp)
/* 00208 80A89018 0C2A2384 */ jal func_80A88E10
/* 0020C 80A8901C 24A59304 */ addiu $a1, $a1, %lo(func_80A89304) ## $a1 = 80A89304
/* 00210 80A89020 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00214 80A89024 0C028800 */ jal SkelAnime_GetFrameCount
/* 00218 80A89028 2484045C */ addiu $a0, $a0, 0x045C ## $a0 = 0600045C
/* 0021C 80A8902C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00220 80A89030 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
/* 00224 80A89034 44814000 */ mtc1 $at, $f8 ## $f8 = -4.00
/* 00228 80A89038 468021A0 */ cvt.s.w $f6, $f4
/* 0022C 80A8903C 8FA40028 */ lw $a0, 0x0028($sp)
/* 00230 80A89040 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00234 80A89044 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00238 80A89048 AFAE0014 */ sw $t6, 0x0014($sp)
/* 0023C 80A8904C 24A5045C */ addiu $a1, $a1, 0x045C ## $a1 = 0600045C
/* 00240 80A89050 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00244 80A89054 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00248 80A89058 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0024C 80A8905C E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00250 80A89060 0C029468 */ jal SkelAnime_ChangeAnim
/* 00254 80A89064 24840198 */ addiu $a0, $a0, 0x0198 ## $a0 = 00000198
/* 00258 80A89068 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0025C 80A8906C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00260 80A89070 03E00008 */ jr $ra
/* 00264 80A89074 00000000 */ nop

View file

@ -1,20 +0,0 @@
glabel func_80A89078
/* 00268 80A89078 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0026C 80A8907C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00270 80A89080 0C00BCCD */ jal func_8002F334
/* 00274 80A89084 AFA40018 */ sw $a0, 0x0018($sp)
/* 00278 80A89088 5040000A */ beql $v0, $zero, .L80A890B4
/* 0027C 80A8908C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00280 80A89090 0C2A2402 */ jal func_80A89008
/* 00284 80A89094 8FA40018 */ lw $a0, 0x0018($sp)
/* 00288 80A89098 8FAE0018 */ lw $t6, 0x0018($sp)
/* 0028C 80A8909C 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000
/* 00290 80A890A0 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF
/* 00294 80A890A4 8DCF0004 */ lw $t7, 0x0004($t6) ## 00000004
/* 00298 80A890A8 01E1C024 */ and $t8, $t7, $at
/* 0029C 80A890AC ADD80004 */ sw $t8, 0x0004($t6) ## 00000004
/* 002A0 80A890B0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A890B4:
/* 002A4 80A890B4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002A8 80A890B8 03E00008 */ jr $ra
/* 002AC 80A890BC 00000000 */ nop

View file

@ -1,22 +0,0 @@
glabel func_80A890C0
/* 002B0 80A890C0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002B4 80A890C4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002B8 80A890C8 AFA5001C */ sw $a1, 0x001C($sp)
/* 002BC 80A890CC 0C00BC65 */ jal func_8002F194
/* 002C0 80A890D0 AFA40018 */ sw $a0, 0x0018($sp)
/* 002C4 80A890D4 10400006 */ beq $v0, $zero, .L80A890F0
/* 002C8 80A890D8 8FA40018 */ lw $a0, 0x0018($sp)
/* 002CC 80A890DC 3C0580A9 */ lui $a1, %hi(func_80A89078) ## $a1 = 80A90000
/* 002D0 80A890E0 0C2A2384 */ jal func_80A88E10
/* 002D4 80A890E4 24A59078 */ addiu $a1, $a1, %lo(func_80A89078) ## $a1 = 80A89078
/* 002D8 80A890E8 10000005 */ beq $zero, $zero, .L80A89100
/* 002DC 80A890EC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A890F0:
/* 002E0 80A890F0 8FA5001C */ lw $a1, 0x001C($sp)
/* 002E4 80A890F4 0C00BCB3 */ jal func_8002F2CC
/* 002E8 80A890F8 3C06447A */ lui $a2, 0x447A ## $a2 = 447A0000
/* 002EC 80A890FC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A89100:
/* 002F0 80A89100 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002F4 80A89104 03E00008 */ jr $ra
/* 002F8 80A89108 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_80A8910C
/* 002FC 80A8910C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00300 80A89110 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00304 80A89114 0C00BCCD */ jal func_8002F334
/* 00308 80A89118 AFA40018 */ sw $a0, 0x0018($sp)
/* 0030C 80A8911C 1040000C */ beq $v0, $zero, .L80A89150
/* 00310 80A89120 8FA40018 */ lw $a0, 0x0018($sp)
/* 00314 80A89124 240E6078 */ addiu $t6, $zero, 0x6078 ## $t6 = 00006078
/* 00318 80A89128 A48E010E */ sh $t6, 0x010E($a0) ## 0000010E
/* 0031C 80A8912C 3C0580A9 */ lui $a1, %hi(func_80A890C0) ## $a1 = 80A90000
/* 00320 80A89130 24A590C0 */ addiu $a1, $a1, %lo(func_80A890C0) ## $a1 = 80A890C0
/* 00324 80A89134 0C2A2384 */ jal func_80A88E10
/* 00328 80A89138 AFA40018 */ sw $a0, 0x0018($sp)
/* 0032C 80A8913C 8FA40018 */ lw $a0, 0x0018($sp)
/* 00330 80A89140 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00334 80A89144 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00338 80A89148 01E1C025 */ or $t8, $t7, $at ## $t8 = 00010000
/* 0033C 80A8914C AC980004 */ sw $t8, 0x0004($a0) ## 00000004
.L80A89150:
/* 00340 80A89150 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00344 80A89154 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00348 80A89158 03E00008 */ jr $ra
/* 0034C 80A8915C 00000000 */ nop

View file

@ -1,28 +0,0 @@
glabel func_80A89160
/* 00350 80A89160 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00354 80A89164 AFBF001C */ sw $ra, 0x001C($sp)
/* 00358 80A89168 AFA50024 */ sw $a1, 0x0024($sp)
/* 0035C 80A8916C 0C00BD04 */ jal func_8002F410
/* 00360 80A89170 AFA40020 */ sw $a0, 0x0020($sp)
/* 00364 80A89174 10400007 */ beq $v0, $zero, .L80A89194
/* 00368 80A89178 8FA40020 */ lw $a0, 0x0020($sp)
/* 0036C 80A8917C 3C0580A9 */ lui $a1, %hi(func_80A8910C) ## $a1 = 80A90000
/* 00370 80A89180 AC800118 */ sw $zero, 0x0118($a0) ## 00000118
/* 00374 80A89184 0C2A2384 */ jal func_80A88E10
/* 00378 80A89188 24A5910C */ addiu $a1, $a1, %lo(func_80A8910C) ## $a1 = 80A8910C
/* 0037C 80A8918C 1000000A */ beq $zero, $zero, .L80A891B8
/* 00380 80A89190 8FBF001C */ lw $ra, 0x001C($sp)
.L80A89194:
/* 00384 80A89194 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00388 80A89198 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00
/* 0038C 80A8919C 3C07461C */ lui $a3, 0x461C ## $a3 = 461C0000
/* 00390 80A891A0 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = 461C4000
/* 00394 80A891A4 8FA50024 */ lw $a1, 0x0024($sp)
/* 00398 80A891A8 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 0039C 80A891AC 0C00BD0D */ jal func_8002F434
/* 003A0 80A891B0 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 003A4 80A891B4 8FBF001C */ lw $ra, 0x001C($sp)
.L80A891B8:
/* 003A8 80A891B8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003AC 80A891BC 03E00008 */ jr $ra
/* 003B0 80A891C0 00000000 */ nop

View file

@ -1,58 +0,0 @@
glabel func_80A891C4
/* 003B4 80A891C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003B8 80A891C8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003BC 80A891CC AFA40018 */ sw $a0, 0x0018($sp)
/* 003C0 80A891D0 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 003C4 80A891D4 0C042F6F */ jal func_8010BDBC
/* 003C8 80A891D8 AFA5001C */ sw $a1, 0x001C($sp)
/* 003CC 80A891DC 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 003D0 80A891E0 14410028 */ bne $v0, $at, .L80A89284
/* 003D4 80A891E4 8FA6001C */ lw $a2, 0x001C($sp)
/* 003D8 80A891E8 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 003DC 80A891EC 0C041AF2 */ jal func_80106BC8
/* 003E0 80A891F0 AFA6001C */ sw $a2, 0x001C($sp)
/* 003E4 80A891F4 10400023 */ beq $v0, $zero, .L80A89284
/* 003E8 80A891F8 8FA6001C */ lw $a2, 0x001C($sp)
/* 003EC 80A891FC 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 003F0 80A89200 00461021 */ addu $v0, $v0, $a2
/* 003F4 80A89204 904204BD */ lbu $v0, 0x04BD($v0) ## 000104BD
/* 003F8 80A89208 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 003FC 80A8920C 3C0E8016 */ lui $t6, %hi(gSaveContext+0x34)
/* 00400 80A89210 10400005 */ beq $v0, $zero, .L80A89228
/* 00404 80A89214 00000000 */ nop
/* 00408 80A89218 10410016 */ beq $v0, $at, .L80A89274
/* 0040C 80A8921C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00410 80A89220 10000019 */ beq $zero, $zero, .L80A89288
/* 00414 80A89224 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A89228:
/* 00418 80A89228 85CEE694 */ lh $t6, %lo(gSaveContext+0x34)($t6)
/* 0041C 80A8922C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00420 80A89230 29C100C8 */ slti $at, $t6, 0x00C8
/* 00424 80A89234 10200007 */ beq $at, $zero, .L80A89254
/* 00428 80A89238 00000000 */ nop
/* 0042C 80A8923C 0C042DC8 */ jal func_8010B720
/* 00430 80A89240 24056075 */ addiu $a1, $zero, 0x6075 ## $a1 = 00006075
/* 00434 80A89244 0C2A2402 */ jal func_80A89008
/* 00438 80A89248 8FA40018 */ lw $a0, 0x0018($sp)
/* 0043C 80A8924C 1000000E */ beq $zero, $zero, .L80A89288
/* 00440 80A89250 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A89254:
/* 00444 80A89254 0C021CC3 */ jal Rupees_ChangeBy
/* 00448 80A89258 2404FF38 */ addiu $a0, $zero, 0xFF38 ## $a0 = FFFFFF38
/* 0044C 80A8925C 3C0580A9 */ lui $a1, %hi(func_80A89160) ## $a1 = 80A90000
/* 00450 80A89260 24A59160 */ addiu $a1, $a1, %lo(func_80A89160) ## $a1 = 80A89160
/* 00454 80A89264 0C2A2384 */ jal func_80A88E10
/* 00458 80A89268 8FA40018 */ lw $a0, 0x0018($sp)
/* 0045C 80A8926C 10000006 */ beq $zero, $zero, .L80A89288
/* 00460 80A89270 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A89274:
/* 00464 80A89274 0C042DC8 */ jal func_8010B720
/* 00468 80A89278 24056074 */ addiu $a1, $zero, 0x6074 ## $a1 = 00006074
/* 0046C 80A8927C 0C2A2402 */ jal func_80A89008
/* 00470 80A89280 8FA40018 */ lw $a0, 0x0018($sp)
.L80A89284:
/* 00474 80A89284 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A89288:
/* 00478 80A89288 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0047C 80A8928C 03E00008 */ jr $ra
/* 00480 80A89290 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80A89294
/* 00484 80A89294 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00488 80A89298 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0048C 80A8929C 3C0580A9 */ lui $a1, %hi(func_80A891C4) ## $a1 = 80A90000
/* 00490 80A892A0 AFA40028 */ sw $a0, 0x0028($sp)
/* 00494 80A892A4 0C2A2384 */ jal func_80A88E10
/* 00498 80A892A8 24A591C4 */ addiu $a1, $a1, %lo(func_80A891C4) ## $a1 = 80A891C4
/* 0049C 80A892AC 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 004A0 80A892B0 0C028800 */ jal SkelAnime_GetFrameCount
/* 004A4 80A892B4 2484018C */ addiu $a0, $a0, 0x018C ## $a0 = 0600018C
/* 004A8 80A892B8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 004AC 80A892BC 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
/* 004B0 80A892C0 44814000 */ mtc1 $at, $f8 ## $f8 = -4.00
/* 004B4 80A892C4 468021A0 */ cvt.s.w $f6, $f4
/* 004B8 80A892C8 8FA40028 */ lw $a0, 0x0028($sp)
/* 004BC 80A892CC 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 004C0 80A892D0 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 004C4 80A892D4 AFAE0014 */ sw $t6, 0x0014($sp)
/* 004C8 80A892D8 24A5018C */ addiu $a1, $a1, 0x018C ## $a1 = 0600018C
/* 004CC 80A892DC E7A60010 */ swc1 $f6, 0x0010($sp)
/* 004D0 80A892E0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 004D4 80A892E4 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 004D8 80A892E8 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 004DC 80A892EC 0C029468 */ jal SkelAnime_ChangeAnim
/* 004E0 80A892F0 24840198 */ addiu $a0, $a0, 0x0198 ## $a0 = 00000198
/* 004E4 80A892F4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004E8 80A892F8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 004EC 80A892FC 03E00008 */ jr $ra
/* 004F0 80A89300 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80A89304
/* 004F4 80A89304 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 004F8 80A89308 AFBF0014 */ sw $ra, 0x0014($sp)
/* 004FC 80A8930C AFA40018 */ sw $a0, 0x0018($sp)
/* 00500 80A89310 0C2A23D9 */ jal func_80A88F64
/* 00504 80A89314 24066077 */ addiu $a2, $zero, 0x6077 ## $a2 = 00006077
/* 00508 80A89318 50400004 */ beql $v0, $zero, .L80A8932C
/* 0050C 80A8931C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00510 80A89320 0C2A24A5 */ jal func_80A89294
/* 00514 80A89324 8FA40018 */ lw $a0, 0x0018($sp)
/* 00518 80A89328 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A8932C:
/* 0051C 80A8932C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00520 80A89330 03E00008 */ jr $ra
/* 00524 80A89334 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80A895C0
/* 007B0 80A895C0 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
/* 007B4 80A895C4 AFA40000 */ sw $a0, 0x0000($sp)
/* 007B8 80A895C8 AFA60008 */ sw $a2, 0x0008($sp)
/* 007BC 80A895CC 14A10007 */ bne $a1, $at, .L80A895EC
/* 007C0 80A895D0 AFA7000C */ sw $a3, 0x000C($sp)
/* 007C4 80A895D4 8FA20010 */ lw $v0, 0x0010($sp)
/* 007C8 80A895D8 8FAF0014 */ lw $t7, 0x0014($sp)
/* 007CC 80A895DC 844E0002 */ lh $t6, 0x0002($v0) ## 00000002
/* 007D0 80A895E0 85F8027A */ lh $t8, 0x027A($t7) ## 0000027A
/* 007D4 80A895E4 01D8C823 */ subu $t9, $t6, $t8
/* 007D8 80A895E8 A4590002 */ sh $t9, 0x0002($v0) ## 00000002
.L80A895EC:
/* 007DC 80A895EC 03E00008 */ jr $ra
/* 007E0 80A895F0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000

View file

@ -1,18 +0,0 @@
glabel func_80A895F4
/* 007E4 80A895F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007E8 80A895F8 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
/* 007EC 80A895FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 007F0 80A89600 AFA40018 */ sw $a0, 0x0018($sp)
/* 007F4 80A89604 AFA60020 */ sw $a2, 0x0020($sp)
/* 007F8 80A89608 14A10006 */ bne $a1, $at, .L80A89624
/* 007FC 80A8960C AFA70024 */ sw $a3, 0x0024($sp)
/* 00800 80A89610 8FA50028 */ lw $a1, 0x0028($sp)
/* 00804 80A89614 3C0480A9 */ lui $a0, %hi(D_80A896DC) ## $a0 = 80A90000
/* 00808 80A89618 248496DC */ addiu $a0, $a0, %lo(D_80A896DC) ## $a0 = 80A896DC
/* 0080C 80A8961C 0C0346BD */ jal Matrix_MultVec3f
/* 00810 80A89620 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038
.L80A89624:
/* 00814 80A89624 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00818 80A89628 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0081C 80A8962C 03E00008 */ jr $ra
/* 00820 80A89630 00000000 */ nop

View file

@ -1,22 +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_Js_InitVars
.word 0x016A0400, 0x00000009, 0x01440000, 0x00000290
.word EnJs_Init
.word EnJs_Destroy
.word EnJs_Update
.word EnJs_Draw
glabel D_80A896B0
.word 0x0A001139, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x001E0028, 0x00000000, 0x00000000
glabel D_80A896DC
.word 0x00000000, 0x00000000, 0x00000000, 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_80A896F0
.incbin "baserom/ovl_En_Js", 0x8E0, 0x000000B0

3
spec
View file

@ -2701,8 +2701,7 @@ endseg
beginseg beginseg
name "ovl_En_Js" name "ovl_En_Js"
include "build/src/overlays/actors/ovl_En_Js/z_en_js.o" include "build/src/overlays/actors/ovl_En_Js/z_en_js.o"
include "build/data/overlays/actors/z_en_js.data.o" include "build/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o"
include "build/data/overlays/actors/z_en_js.reloc.o"
endseg endseg
beginseg beginseg

View file

@ -1,3 +1,9 @@
/*
* File: z_en_js.c
* Overlay: ovl_En_Js
* Description: Magic Carpet Salesman
*/
#include "z_en_js.h" #include "z_en_js.h"
#define FLAGS 0x00000009 #define FLAGS 0x00000009
@ -9,7 +15,8 @@ void EnJs_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnJs_Update(Actor* thisx, GlobalContext* globalCtx); void EnJs_Update(Actor* thisx, GlobalContext* globalCtx);
void EnJs_Draw(Actor* thisx, GlobalContext* globalCtx); void EnJs_Draw(Actor* thisx, GlobalContext* globalCtx);
/* void func_80A89304(EnJs* this, GlobalContext* globalCtx);
const ActorInit En_Js_InitVars = { const ActorInit En_Js_InitVars = {
ACTOR_EN_JS, ACTOR_EN_JS,
ACTORTYPE_NPC, ACTORTYPE_NPC,
@ -21,35 +28,194 @@ const ActorInit En_Js_InitVars = {
(ActorFunc)EnJs_Update, (ActorFunc)EnJs_Update,
(ActorFunc)EnJs_Draw, (ActorFunc)EnJs_Draw,
}; };
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88E10.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Init.s") static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x11, 0x39, 0x10, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 30, 40, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Destroy.s") extern SkeletonHeader D_06005EA0;
extern AnimationHeader D_0600045C;
extern AnimationHeader D_0600018C;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88F64.s") void En_Js_SetupAction(EnJs* this, EnJsActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89008.s") void EnJs_Init(Actor* thisx, GlobalContext* globalCtx) {
EnJs* this = THIS;
s32 pad;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89078.s") ActorShape_Init(&this->actor.shape, 0.0f, NULL, 36.0f);
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06005EA0, &D_0600045C, this->limbDrawTable,
this->transitionDrawTable, 13);
SkelAnime_ChangeAnimDefaultStop(&this->skelAnime, &D_0600045C);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = 0xFF;
Actor_SetScale(&this->actor, 0.01f);
En_Js_SetupAction(this, func_80A89304);
this->unk_284 = 0;
this->actor.gravity = -1.0f;
Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_JSJUTAN, this->actor.posRot.pos.x,
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 0);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A890C0.s") void EnJs_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnJs* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A8910C.s") Collider_DestroyCylinder(globalCtx, &this->collider);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89160.s") u8 func_80A88F64(EnJs* this, GlobalContext* globalCtx, u16 textId) {
s16 yawDiff;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A891C4.s") if (func_8002F194(&this->actor, globalCtx)) {
return 1;
} else {
this->actor.textId = textId;
yawDiff = this->actor.yawTowardsLink - this->actor.shape.rot.y;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89294.s") if (ABS(yawDiff) <= 0x1800 && this->actor.xzDistFromLink < 100.0f) {
this->unk_284 |= 1;
func_8002F2CC(&this->actor, globalCtx, 100.0f);
}
return 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89304.s") void func_80A89008(EnJs* this) {
En_Js_SetupAction(this, func_80A89304);
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600045C, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_0600045C.genericHeader),
2, -4.0f);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Update.s") void func_80A89078(EnJs* this, GlobalContext* globalCtx) {
if (func_8002F334(&this->actor, globalCtx)) {
func_80A89008(this);
this->actor.flags &= ~0x10000;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895C0.s") void func_80A890C0(EnJs* this, GlobalContext* globalCtx) {
if (func_8002F194(&this->actor, globalCtx)) {
En_Js_SetupAction(this, func_80A89078);
} else {
func_8002F2CC(&this->actor, globalCtx, 1000.0f);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895F4.s") void func_80A8910C(EnJs* this, GlobalContext* globalCtx) {
if (func_8002F334(&this->actor, globalCtx)) {
this->actor.textId = 0x6078;
En_Js_SetupAction(this, func_80A890C0);
this->actor.flags |= 0x10000;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Draw.s") void func_80A89160(EnJs* this, GlobalContext* globalCtx) {
if (func_8002F410(&this->actor, globalCtx)) {
this->actor.attachedA = NULL;
En_Js_SetupAction(this, func_80A8910C);
} else {
func_8002F434(&this->actor, globalCtx, GI_BOMBCHUS_10, 10000.0f, 50.0f);
}
}
void func_80A891C4(EnJs* this, GlobalContext* globalCtx) {
if (func_8010BDBC(&globalCtx->msgCtx) == 4 && func_80106BC8(globalCtx)) {
switch (globalCtx->msgCtx.choiceIndex) {
case 0: // yes
if (gSaveContext.rupees < 200) {
func_8010B720(globalCtx, 0x6075);
func_80A89008(this);
} else {
Rupees_ChangeBy(-200);
En_Js_SetupAction(this, func_80A89160);
}
break;
case 1: // no
func_8010B720(globalCtx, 0x6074);
func_80A89008(this);
}
}
}
void func_80A89294(EnJs* this) {
En_Js_SetupAction(this, func_80A891C4);
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600018C, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_0600018C.genericHeader),
2, -4.0f);
}
void func_80A89304(EnJs* this, GlobalContext* globalCtx) {
if (func_80A88F64(this, globalCtx, 0x6077)) {
func_80A89294(this);
}
}
void EnJs_Update(Actor* thisx, GlobalContext* globalCtx) {
EnJs* this = THIS;
s32 pad;
s32 pad2;
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
Actor_MoveForward(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4);
if (this->actor.bgCheckFlags & 1) {
if (func_80041F34(&globalCtx->colCtx, this->actor.floorPoly, this->actor.floorPolySource) == 1) {
Math_SmoothScaleMaxF(&this->actor.shape.unk_08, sREG(80) + -2000.0f, 1.0f, (sREG(81) / 10.0f) + 50.0f);
}
} else {
Math_SmoothDownscaleMaxF(&this->actor.shape.unk_08, 1.0f, (sREG(81) / 10.0f) + 50.0f);
}
if (SkelAnime_FrameUpdateMatrix(&this->skelAnime)) {
this->skelAnime.animCurrentFrame = 0.0f;
}
this->actionFunc(this, globalCtx);
if (this->unk_284 & 1) {
func_80038290(globalCtx, &this->actor, &this->unk_278, &this->unk_27E, this->actor.posRot2.pos);
} else {
Math_SmoothScaleMaxMinS(&this->unk_278.x, 0, 6, 0x1838, 0x64);
Math_SmoothScaleMaxMinS(&this->unk_278.y, 0, 6, 0x1838, 0x64);
Math_SmoothScaleMaxMinS(&this->unk_27E.x, 0, 6, 0x1838, 0x64);
Math_SmoothScaleMaxMinS(&this->unk_27E.y, 0, 6, 0x1838, 0x64);
}
this->unk_284 &= ~0x1;
if (DECR(this->unk_288) == 0) {
this->unk_288 = Math_Rand_S16Offset(0x3C, 0x3C);
}
this->unk_286 = this->unk_288;
if (this->unk_286 >= 3) {
this->unk_286 = 0;
}
}
s32 EnJs_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* pos, Vec3s* rot, Actor* thisx) {
EnJs* this = THIS;
if (limbIndex == 12) {
rot->y -= this->unk_278.y;
}
return 0;
}
void EnJs_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static Vec3f D_80A896DC = { 0.0f, 0.0f, 0.0f };
if (limbIndex == 12) {
Matrix_MultVec3f(&D_80A896DC, &thisx->posRot2.pos);
}
}
void EnJs_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnJs* this = THIS;
func_800943C8(globalCtx->state.gfxCtx);
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
EnJs_OverrideLimbDraw, EnJs_PostLimbDraw, &this->actor);
}

View file

@ -6,9 +6,20 @@
struct EnJs; struct EnJs;
typedef void (*EnJsActionFunc)(struct EnJs*, GlobalContext*);
typedef struct EnJs { typedef struct EnJs {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x144]; /* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelAnime;
/* 0x01DC */ Vec3s limbDrawTable[13];
/* 0x022A */ Vec3s transitionDrawTable[13];
/* 0x0278 */ Vec3s unk_278;
/* 0x027E */ Vec3s unk_27E;
/* 0x0284 */ u16 unk_284;
/* 0x0286 */ s16 unk_286;
/* 0x0288 */ s16 unk_288;
/* 0x028C */ EnJsActionFunc actionFunc;
} EnJs; // size = 0x0290 } EnJs; // size = 0x0290
extern const ActorInit En_Js_InitVars; extern const ActorInit En_Js_InitVars;

@ -1 +1 @@
Subproject commit 15fcb21d2c4e2ef2f720d28a0f7dec259ddd06f5 Subproject commit a781b7b098472076f99f52e4ad214823ea91be2d

View file

@ -853,3 +853,8 @@ D_06000970 = 0x06000970;
// z_bg_jya_goroiwa // z_bg_jya_goroiwa
D_060006B0 = 0x060006B0; D_060006B0 = 0x060006B0;
// z_en_js
D_0600045C = 0x0600045C;
D_06005EA0 = 0x06005EA0;
D_0600018C = 0x0600018C;