From 3cb03b2b2f0da72960944171081bba8b6cba6722 Mon Sep 17 00:00:00 2001 From: fullgrowngaming <42490167+fullgrowngaming@users.noreply.github.com> Date: Fri, 21 Aug 2020 23:24:07 -0700 Subject: [PATCH] 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 --- .../overlays/actors/ovl_En_Js/EnJs_Destroy.s | 12 -- .../overlays/actors/ovl_En_Js/EnJs_Draw.s | 24 --- .../overlays/actors/ovl_En_Js/EnJs_Init.s | 79 ------- .../overlays/actors/ovl_En_Js/EnJs_Update.s | 183 ---------------- .../overlays/actors/ovl_En_Js/func_80A88E10.s | 3 - .../overlays/actors/ovl_En_Js/func_80A88F64.s | 47 ---- .../overlays/actors/ovl_En_Js/func_80A89008.s | 31 --- .../overlays/actors/ovl_En_Js/func_80A89078.s | 20 -- .../overlays/actors/ovl_En_Js/func_80A890C0.s | 22 -- .../overlays/actors/ovl_En_Js/func_80A8910C.s | 23 -- .../overlays/actors/ovl_En_Js/func_80A89160.s | 28 --- .../overlays/actors/ovl_En_Js/func_80A891C4.s | 58 ----- .../overlays/actors/ovl_En_Js/func_80A89294.s | 31 --- .../overlays/actors/ovl_En_Js/func_80A89304.s | 15 -- .../overlays/actors/ovl_En_Js/func_80A895C0.s | 15 -- .../overlays/actors/ovl_En_Js/func_80A895F4.s | 18 -- data/overlays/actors/z_en_js.data.s | 22 -- data/overlays/actors/z_en_js.reloc.s | 13 -- spec | 3 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 202 ++++++++++++++++-- src/overlays/actors/ovl_En_Js/z_en_js.h | 13 +- tools/ZAP2 | 2 +- undefined_syms.txt | 5 + 23 files changed, 203 insertions(+), 666 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88E10.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88F64.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89008.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89078.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A890C0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A8910C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89160.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A891C4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89294.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89304.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895C0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895F4.s delete mode 100644 data/overlays/actors/z_en_js.data.s delete mode 100644 data/overlays/actors/z_en_js.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Destroy.s deleted file mode 100644 index 58b1cbbad4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Destroy.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Draw.s deleted file mode 100644 index c8046d6d8f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Draw.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Init.s deleted file mode 100644 index e69eeddd32..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Init.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Update.s deleted file mode 100644 index 4b013c1d2f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/EnJs_Update.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88E10.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88E10.s deleted file mode 100644 index de4ba0c213..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88E10.s +++ /dev/null @@ -1,3 +0,0 @@ -glabel func_80A88E10 -/* 00000 80A88E10 03E00008 */ jr $ra -/* 00004 80A88E14 AC85028C */ sw $a1, 0x028C($a0) ## 0000028C diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88F64.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88F64.s deleted file mode 100644 index 99e67527fb..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A88F64.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89008.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89008.s deleted file mode 100644 index 18ef3928fe..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89008.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89078.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89078.s deleted file mode 100644 index 5dce1c921a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89078.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A890C0.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A890C0.s deleted file mode 100644 index f82c31fc5b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A890C0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A8910C.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A8910C.s deleted file mode 100644 index 8fd20e854c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A8910C.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89160.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89160.s deleted file mode 100644 index d1a6680daa..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89160.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A891C4.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A891C4.s deleted file mode 100644 index 352c91a486..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A891C4.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89294.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89294.s deleted file mode 100644 index c6a1238c1c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89294.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89304.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89304.s deleted file mode 100644 index 885ff2077d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A89304.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895C0.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895C0.s deleted file mode 100644 index b49dc8b1f7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895C0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895F4.s b/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895F4.s deleted file mode 100644 index 6e3aea7bb9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Js/func_80A895F4.s +++ /dev/null @@ -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 diff --git a/data/overlays/actors/z_en_js.data.s b/data/overlays/actors/z_en_js.data.s deleted file mode 100644 index d037dc48f0..0000000000 --- a/data/overlays/actors/z_en_js.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_en_js.reloc.s b/data/overlays/actors/z_en_js.reloc.s deleted file mode 100644 index ddfa38a4a4..0000000000 --- a/data/overlays/actors/z_en_js.reloc.s +++ /dev/null @@ -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 diff --git a/spec b/spec index e4209a6e8b..77dc456d92 100644 --- a/spec +++ b/spec @@ -2701,8 +2701,7 @@ endseg beginseg name "ovl_En_Js" include "build/src/overlays/actors/ovl_En_Js/z_en_js.o" - include "build/data/overlays/actors/z_en_js.data.o" - include "build/data/overlays/actors/z_en_js.reloc.o" + include "build/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index 5d355fdc2b..25ebcdafbf 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -1,3 +1,9 @@ +/* + * File: z_en_js.c + * Overlay: ovl_En_Js + * Description: Magic Carpet Salesman + */ + #include "z_en_js.h" #define FLAGS 0x00000009 @@ -9,7 +15,8 @@ void EnJs_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnJs_Update(Actor* thisx, GlobalContext* globalCtx); void EnJs_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +void func_80A89304(EnJs* this, GlobalContext* globalCtx); + const ActorInit En_Js_InitVars = { ACTOR_EN_JS, ACTORTYPE_NPC, @@ -21,35 +28,194 @@ const ActorInit En_Js_InitVars = { (ActorFunc)EnJs_Update, (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); +} diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.h b/src/overlays/actors/ovl_En_Js/z_en_js.h index 8d9fd611d1..024dd3151d 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.h +++ b/src/overlays/actors/ovl_En_Js/z_en_js.h @@ -6,9 +6,20 @@ struct EnJs; +typedef void (*EnJsActionFunc)(struct EnJs*, GlobalContext*); + typedef struct EnJs { /* 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 extern const ActorInit En_Js_InitVars; diff --git a/tools/ZAP2 b/tools/ZAP2 index 15fcb21d2c..a781b7b098 160000 --- a/tools/ZAP2 +++ b/tools/ZAP2 @@ -1 +1 @@ -Subproject commit 15fcb21d2c4e2ef2f720d28a0f7dec259ddd06f5 +Subproject commit a781b7b098472076f99f52e4ad214823ea91be2d diff --git a/undefined_syms.txt b/undefined_syms.txt index b17d8649fb..8e5cecb730 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -853,3 +853,8 @@ D_06000970 = 0x06000970; // z_bg_jya_goroiwa D_060006B0 = 0x060006B0; + +// z_en_js +D_0600045C = 0x0600045C; +D_06005EA0 = 0x06005EA0; +D_0600018C = 0x0600018C;