From 1173f4c681d64b7ad3d664ef3008f575d44a5b3b Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 14:44:44 -0500 Subject: [PATCH 01/14] :island: --- asm/nonmatchings/code_317020/func_802BD174.s | 9 -- .../dgb_00/BFA100/func_80240060_BFA100.s | 24 ----- .../dgb_01/BFD880/func_80240000_BFD880.s | 20 ---- .../dgb_01/BFD9A0/func_802433BC_C00C3C.s | 17 ---- .../dgb_08/C3FDB0/func_80243B6C_C4391C.s | 15 --- .../dgb_15/C4F510/func_80241760_C50C70.s | 16 --- .../dgb_18/C55F40/func_80240E90_C56DD0.s | 15 --- .../kkj_25/B06A50/func_80240050_B06A50.s | 16 --- .../world/script_api/7E0E80/MakeShopOwner.s | 22 ----- .../world/script_api/7E0E80/func_802803C8.s | 24 ----- .../world/script_api/7E2AA0/func_80282594.s | 4 +- .../7E3700/TeleportPartnerToPlayer.s | 41 -------- .../world/script_api/7E3700/func_80282880.s | 27 ----- .../world/script_api/7E3700/func_80283810.s | 33 ------- .../world/script_api/7E3700/func_80283B88.s | 14 --- .../world/script_api/7E3700/func_80283BB0.s | 12 --- .../world/script_api/7E3700/func_80283BD0.s | 30 ------ include/common.h | 1 + include/common_structs.h | 5 +- include/functions.h | 2 + src/code_102610_len_2330.c | 6 +- src/code_317020.c | 5 +- src/code_838b0_len_5900.c | 2 +- src/code_de740_len_23f0.c | 2 +- src/world/area_dgb/dgb_00/BFA100.c | 7 +- src/world/area_dgb/dgb_01/BFD880.c | 5 +- src/world/area_dgb/dgb_01/BFD9A0.c | 2 +- src/world/area_dgb/dgb_08/C3FDB0.c | 2 +- src/world/area_dgb/dgb_15/C4F510.c | 2 +- src/world/area_dgb/dgb_18/C55F40.c | 2 +- src/world/area_kkj/kkj_25/B06A50.c | 2 +- src/world/area_sbk/sbk_00/929270.c | 58 +++++++++++ src/world/area_sbk/sbk_00/9292B0.c | 68 +++++++++++++ src/world/area_sbk/sbk_00/929A00.bin.c | 8 ++ src/world/area_sbk/sbk_00/sbk_00.h | 2 + src/world/common/UnkFunc1.inc.c | 7 ++ src/world/script_api/7E0E80.c | 24 ++++- src/world/script_api/7E3700.c | 98 +++++++++++++++++-- tools/disasm_script.py | 8 +- tools/splat.yaml | 6 +- tools/symbol_addrs.txt | 4 + 41 files changed, 300 insertions(+), 367 deletions(-) delete mode 100644 asm/nonmatchings/code_317020/func_802BD174.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s delete mode 100644 asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s delete mode 100644 asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s delete mode 100644 asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80282880.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283810.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283B88.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s create mode 100644 src/world/area_sbk/sbk_00/929A00.bin.c create mode 100644 src/world/common/UnkFunc1.inc.c diff --git a/asm/nonmatchings/code_317020/func_802BD174.s b/asm/nonmatchings/code_317020/func_802BD174.s deleted file mode 100644 index eaab83f2f5..0000000000 --- a/asm/nonmatchings/code_317020/func_802BD174.s +++ /dev/null @@ -1,9 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD174 -/* 317094 802BD174 24020018 */ addiu $v0, $zero, 0x18 -/* 317098 802BD178 A48200A8 */ sh $v0, 0xa8($a0) -/* 31709C 802BD17C 24020014 */ addiu $v0, $zero, 0x14 -/* 3170A0 802BD180 03E00008 */ jr $ra -/* 3170A4 802BD184 A48200A6 */ sh $v0, 0xa6($a0) diff --git a/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s b/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s deleted file mode 100644 index ff23ced951..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240060_BFA100 -/* BFA100 80240060 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* BFA104 80240064 AFBF0018 */ sw $ra, 0x18($sp) -/* BFA108 80240068 0C00FB3A */ jal get_enemy -/* BFA10C 8024006C 24040006 */ addiu $a0, $zero, 6 -/* BFA110 80240070 84440008 */ lh $a0, 8($v0) -/* BFA114 80240074 0C00EABB */ jal get_npc_unsafe -/* BFA118 80240078 00000000 */ nop -/* BFA11C 8024007C C4400040 */ lwc1 $f0, 0x40($v0) -/* BFA120 80240080 2404032E */ addiu $a0, $zero, 0x32e -/* BFA124 80240084 E7A00010 */ swc1 $f0, 0x10($sp) -/* BFA128 80240088 8C460038 */ lw $a2, 0x38($v0) -/* BFA12C 8024008C 8C47003C */ lw $a3, 0x3c($v0) -/* BFA130 80240090 0C05267B */ jal func_801499EC -/* BFA134 80240094 0000282D */ daddu $a1, $zero, $zero -/* BFA138 80240098 8FBF0018 */ lw $ra, 0x18($sp) -/* BFA13C 8024009C 24020002 */ addiu $v0, $zero, 2 -/* BFA140 802400A0 03E00008 */ jr $ra -/* BFA144 802400A4 27BD0020 */ addiu $sp, $sp, 0x20 -/* BFA148 802400A8 00000000 */ nop -/* BFA14C 802400AC 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s b/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s deleted file mode 100644 index 4516098874..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240000_BFD880 -/* BFD880 80240000 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* BFD884 80240004 3C0400C2 */ lui $a0, 0xc2 -/* BFD888 80240008 24840F40 */ addiu $a0, $a0, 0xf40 -/* BFD88C 8024000C 3C0500C3 */ lui $a1, 0xc3 -/* BFD890 80240010 24A5EBA0 */ addiu $a1, $a1, -0x1460 -/* BFD894 80240014 3C068020 */ lui $a2, %hi(gBackgroundImage) -/* BFD898 80240018 24C60000 */ addiu $a2, $a2, %lo(gBackgroundImage) -/* BFD89C 8024001C AFBF0010 */ sw $ra, 0x10($sp) -/* BFD8A0 80240020 0C00A5CF */ jal dma_copy -/* BFD8A4 80240024 00000000 */ nop -/* BFD8A8 80240028 8FBF0010 */ lw $ra, 0x10($sp) -/* BFD8AC 8024002C 24020002 */ addiu $v0, $zero, 2 -/* BFD8B0 80240030 03E00008 */ jr $ra -/* BFD8B4 80240034 27BD0018 */ addiu $sp, $sp, 0x18 -/* BFD8B8 80240038 00000000 */ nop -/* BFD8BC 8024003C 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s b/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s deleted file mode 100644 index 779db28dea..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s +++ /dev/null @@ -1,17 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802433BC_C00C3C -/* C00C3C 802433BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C00C40 802433C0 AFBF0010 */ sw $ra, 0x10($sp) -/* C00C44 802433C4 0C03A6D5 */ jal increment_status_menu_disabled -/* C00C48 802433C8 00000000 */ nop -/* C00C4C 802433CC 3C05437F */ lui $a1, 0x437f -/* C00C50 802433D0 0C04DF69 */ jal func_80137DA4 -/* C00C54 802433D4 0000202D */ daddu $a0, $zero, $zero -/* C00C58 802433D8 8FBF0010 */ lw $ra, 0x10($sp) -/* C00C5C 802433DC 24020002 */ addiu $v0, $zero, 2 -/* C00C60 802433E0 03E00008 */ jr $ra -/* C00C64 802433E4 27BD0018 */ addiu $sp, $sp, 0x18 -/* C00C68 802433E8 00000000 */ nop -/* C00C6C 802433EC 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s b/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s deleted file mode 100644 index eb87c275e9..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80243B6C_C4391C -/* C4391C 80243B6C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C43920 80243B70 AFBF0010 */ sw $ra, 0x10($sp) -/* C43924 80243B74 0C03A6D5 */ jal increment_status_menu_disabled -/* C43928 80243B78 00000000 */ nop -/* C4392C 80243B7C 3C05437F */ lui $a1, 0x437f -/* C43930 80243B80 0C04DF69 */ jal func_80137DA4 -/* C43934 80243B84 0000202D */ daddu $a0, $zero, $zero -/* C43938 80243B88 8FBF0010 */ lw $ra, 0x10($sp) -/* C4393C 80243B8C 24020002 */ addiu $v0, $zero, 2 -/* C43940 80243B90 03E00008 */ jr $ra -/* C43944 80243B94 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s b/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s deleted file mode 100644 index 6930360aea..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s +++ /dev/null @@ -1,16 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80241760_C50C70 -/* C50C70 80241760 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C50C74 80241764 AFBF0010 */ sw $ra, 0x10($sp) -/* C50C78 80241768 0C03A6D5 */ jal increment_status_menu_disabled -/* C50C7C 8024176C 00000000 */ nop -/* C50C80 80241770 3C05437F */ lui $a1, 0x437f -/* C50C84 80241774 0C04DF69 */ jal func_80137DA4 -/* C50C88 80241778 0000202D */ daddu $a0, $zero, $zero -/* C50C8C 8024177C 8FBF0010 */ lw $ra, 0x10($sp) -/* C50C90 80241780 24020002 */ addiu $v0, $zero, 2 -/* C50C94 80241784 03E00008 */ jr $ra -/* C50C98 80241788 27BD0018 */ addiu $sp, $sp, 0x18 -/* C50C9C 8024178C 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s b/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s deleted file mode 100644 index 4c68fcda40..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240E90_C56DD0 -/* C56DD0 80240E90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C56DD4 80240E94 AFBF0010 */ sw $ra, 0x10($sp) -/* C56DD8 80240E98 0C03A6D5 */ jal increment_status_menu_disabled -/* C56DDC 80240E9C 00000000 */ nop -/* C56DE0 80240EA0 3C05437F */ lui $a1, 0x437f -/* C56DE4 80240EA4 0C04DF69 */ jal func_80137DA4 -/* C56DE8 80240EA8 0000202D */ daddu $a0, $zero, $zero -/* C56DEC 80240EAC 8FBF0010 */ lw $ra, 0x10($sp) -/* C56DF0 80240EB0 24020002 */ addiu $v0, $zero, 2 -/* C56DF4 80240EB4 03E00008 */ jr $ra -/* C56DF8 80240EB8 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s b/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s deleted file mode 100644 index 07fa0e0388..0000000000 --- a/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s +++ /dev/null @@ -1,16 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240050_B06A50 -/* B06A50 80240050 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B06A54 80240054 AFBF0010 */ sw $ra, 0x10($sp) -/* B06A58 80240058 0C03A6D5 */ jal increment_status_menu_disabled -/* B06A5C 8024005C 00000000 */ nop -/* B06A60 80240060 3C05437F */ lui $a1, 0x437f -/* B06A64 80240064 0C04DF69 */ jal func_80137DA4 -/* B06A68 80240068 0000202D */ daddu $a0, $zero, $zero -/* B06A6C 8024006C 8FBF0010 */ lw $ra, 0x10($sp) -/* B06A70 80240070 24020002 */ addiu $v0, $zero, 2 -/* B06A74 80240074 03E00008 */ jr $ra -/* B06A78 80240078 27BD0018 */ addiu $sp, $sp, 0x18 -/* B06A7C 8024007C 00000000 */ nop diff --git a/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s b/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s deleted file mode 100644 index f2774454e3..0000000000 --- a/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s +++ /dev/null @@ -1,22 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel MakeShopOwner -/* 7E2A58 80281BD8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E2A5C 80281BDC AFBF0014 */ sw $ra, 0x14($sp) -/* 7E2A60 80281BE0 AFB00010 */ sw $s0, 0x10($sp) -/* 7E2A64 80281BE4 8C82000C */ lw $v0, 0xc($a0) -/* 7E2A68 80281BE8 3C038007 */ lui $v1, %hi(gGameStatusPtr) -/* 7E2A6C 80281BEC 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1) -/* 7E2A70 80281BF0 8C450000 */ lw $a1, ($v0) -/* 7E2A74 80281BF4 0C0B1EAF */ jal get_variable -/* 7E2A78 80281BF8 8C700144 */ lw $s0, 0x144($v1) -/* 7E2A7C 80281BFC AE020010 */ sw $v0, 0x10($s0) -/* 7E2A80 80281C00 8FBF0014 */ lw $ra, 0x14($sp) -/* 7E2A84 80281C04 8FB00010 */ lw $s0, 0x10($sp) -/* 7E2A88 80281C08 24020002 */ addiu $v0, $zero, 2 -/* 7E2A8C 80281C0C 03E00008 */ jr $ra -/* 7E2A90 80281C10 27BD0018 */ addiu $sp, $sp, 0x18 -/* 7E2A94 80281C14 00000000 */ nop -/* 7E2A98 80281C18 00000000 */ nop -/* 7E2A9C 80281C1C 00000000 */ nop diff --git a/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s b/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s deleted file mode 100644 index 64650b0886..0000000000 --- a/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802803C8 -/* 7E1248 802803C8 3C058011 */ lui $a1, %hi(gPlayerStatus) -/* 7E124C 802803CC 24A5EFC8 */ addiu $a1, $a1, %lo(gPlayerStatus) -/* 7E1250 802803D0 AC80008C */ sw $zero, 0x8c($a0) -/* 7E1254 802803D4 80A300B4 */ lb $v1, 0xb4($a1) -/* 7E1258 802803D8 24020004 */ addiu $v0, $zero, 4 -/* 7E125C 802803DC 10620008 */ beq $v1, $v0, .L80280400 -/* 7E1260 802803E0 24020008 */ addiu $v0, $zero, 8 -/* 7E1264 802803E4 10620006 */ beq $v1, $v0, .L80280400 -/* 7E1268 802803E8 00000000 */ nop -/* 7E126C 802803EC 8CA20000 */ lw $v0, ($a1) -/* 7E1270 802803F0 30420100 */ andi $v0, $v0, 0x100 -/* 7E1274 802803F4 14400004 */ bnez $v0, .L80280408 -/* 7E1278 802803F8 24020001 */ addiu $v0, $zero, 1 -/* 7E127C 802803FC AC82008C */ sw $v0, 0x8c($a0) -.L80280400: -/* 7E1280 80280400 03E00008 */ jr $ra -/* 7E1284 80280404 24020002 */ addiu $v0, $zero, 2 -.L80280408: -/* 7E1288 80280408 03E00008 */ jr $ra -/* 7E128C 8028040C 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s b/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s index b0c513c697..2663f990ca 100644 --- a/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s +++ b/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s @@ -11,9 +11,9 @@ glabel func_80282594 /* 7E342C 802825AC 3C02800B */ lui $v0, %hi(gCameras) /* 7E3430 802825B0 24421D80 */ addiu $v0, $v0, %lo(gCameras) /* 7E3434 802825B4 44800000 */ mtc1 $zero, $f0 -/* 7E3438 802825B8 00000000 */ nop +/* 7E3438 802825B8 00000000 */ nop /* 7E343C 802825BC 4602003E */ c.le.s $f0, $f2 -/* 7E3440 802825C0 00000000 */ nop +/* 7E3440 802825C0 00000000 */ nop /* 7E3444 802825C4 45000006 */ bc1f .L802825E0 /* 7E3448 802825C8 0040182D */ daddu $v1, $v0, $zero /* 7E344C 802825CC C4400490 */ lwc1 $f0, 0x490($v0) diff --git a/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s b/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s deleted file mode 100644 index 3af1e3c00a..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s +++ /dev/null @@ -1,41 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel TeleportPartnerToPlayer -/* 7E46FC 8028387C 3C028011 */ lui $v0, %hi(gPlayerData+0x12) -/* 7E4700 80283880 8042F2A2 */ lb $v0, %lo(gPlayerData+0x12)($v0) -/* 7E4704 80283884 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 7E4708 80283888 AFB10014 */ sw $s1, 0x14($sp) -/* 7E470C 8028388C 3C118011 */ lui $s1, %hi(gPlayerStatus) -/* 7E4710 80283890 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) -/* 7E4714 80283894 AFB20018 */ sw $s2, 0x18($sp) -/* 7E4718 80283898 0220902D */ daddu $s2, $s1, $zero -/* 7E471C 8028389C AFBF001C */ sw $ra, 0x1c($sp) -/* 7E4720 802838A0 10400012 */ beqz $v0, .L802838EC -/* 7E4724 802838A4 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4728 802838A8 0C00EABB */ jal get_npc_unsafe -/* 7E472C 802838AC 2404FFFC */ addiu $a0, $zero, -4 -/* 7E4730 802838B0 C6200028 */ lwc1 $f0, 0x28($s1) -/* 7E4734 802838B4 0040802D */ daddu $s0, $v0, $zero -/* 7E4738 802838B8 E6000038 */ swc1 $f0, 0x38($s0) -/* 7E473C 802838BC C6200030 */ lwc1 $f0, 0x30($s1) -/* 7E4740 802838C0 0C03A969 */ jal is_current_partner_flying -/* 7E4744 802838C4 E6000040 */ swc1 $f0, 0x40($s0) -/* 7E4748 802838C8 10400003 */ beqz $v0, .L802838D8 -/* 7E474C 802838CC 00000000 */ nop -/* 7E4750 802838D0 C620002C */ lwc1 $f0, 0x2c($s1) -/* 7E4754 802838D4 E600003C */ swc1 $f0, 0x3c($s0) -.L802838D8: -/* 7E4758 802838D8 8E450080 */ lw $a1, 0x80($s2) -/* 7E475C 802838DC 0C00ECD0 */ jal set_npc_yaw -/* 7E4760 802838E0 0200202D */ daddu $a0, $s0, $zero -/* 7E4764 802838E4 0C03BD17 */ jal clear_partner_move_history -/* 7E4768 802838E8 0200202D */ daddu $a0, $s0, $zero -.L802838EC: -/* 7E476C 802838EC 24020002 */ addiu $v0, $zero, 2 -/* 7E4770 802838F0 8FBF001C */ lw $ra, 0x1c($sp) -/* 7E4774 802838F4 8FB20018 */ lw $s2, 0x18($sp) -/* 7E4778 802838F8 8FB10014 */ lw $s1, 0x14($sp) -/* 7E477C 802838FC 8FB00010 */ lw $s0, 0x10($sp) -/* 7E4780 80283900 03E00008 */ jr $ra -/* 7E4784 80283904 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80282880.s b/asm/nonmatchings/world/script_api/7E3700/func_80282880.s deleted file mode 100644 index f06a66e3ff..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80282880.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80282880 -/* 7E3700 80282880 3C028011 */ lui $v0, %hi(gPlayerStatus) -/* 7E3704 80282884 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus) -/* 7E3708 80282888 C4420028 */ lwc1 $f2, 0x28($v0) -/* 7E370C 8028288C C4800084 */ lwc1 $f0, 0x84($a0) -/* 7E3710 80282890 46800020 */ cvt.s.w $f0, $f0 -/* 7E3714 80282894 46020001 */ sub.s $f0, $f0, $f2 -/* 7E3718 80282898 3C013F00 */ lui $at, 0x3f00 -/* 7E371C 8028289C 44812000 */ mtc1 $at, $f4 -/* 7E3720 802828A0 00000000 */ nop -/* 7E3724 802828A4 46040002 */ mul.s $f0, $f0, $f4 -/* 7E3728 802828A8 00000000 */ nop -/* 7E372C 802828AC 46001080 */ add.s $f2, $f2, $f0 -/* 7E3730 802828B0 E4420028 */ swc1 $f2, 0x28($v0) -/* 7E3734 802828B4 C4420030 */ lwc1 $f2, 0x30($v0) -/* 7E3738 802828B8 C480008C */ lwc1 $f0, 0x8c($a0) -/* 7E373C 802828BC 46800020 */ cvt.s.w $f0, $f0 -/* 7E3740 802828C0 46020001 */ sub.s $f0, $f0, $f2 -/* 7E3744 802828C4 46040002 */ mul.s $f0, $f0, $f4 -/* 7E3748 802828C8 00000000 */ nop -/* 7E374C 802828CC 46001080 */ add.s $f2, $f2, $f0 -/* 7E3750 802828D0 E4420030 */ swc1 $f2, 0x30($v0) -/* 7E3754 802828D4 03E00008 */ jr $ra -/* 7E3758 802828D8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283810.s b/asm/nonmatchings/world/script_api/7E3700/func_80283810.s deleted file mode 100644 index 6059f9801d..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283810.s +++ /dev/null @@ -1,33 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283810 -/* 7E4690 80283810 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4694 80283814 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4698 80283818 0080802D */ daddu $s0, $a0, $zero -/* 7E469C 8028381C AFBF0014 */ sw $ra, 0x14($sp) -/* 7E46A0 80283820 0C03AD8E */ jal partner_get_ride_script -/* 7E46A4 80283824 AE0000AC */ sw $zero, 0xac($s0) -/* 7E46A8 80283828 1040000F */ beqz $v0, .L80283868 -/* 7E46AC 8028382C 00000000 */ nop -/* 7E46B0 80283830 3C028011 */ lui $v0, %hi(D_8010EBB0) -/* 7E46B4 80283834 8042EBB0 */ lb $v0, %lo(D_8010EBB0)($v0) -/* 7E46B8 80283838 14400003 */ bnez $v0, .L80283848 -/* 7E46BC 8028383C 24020001 */ addiu $v0, $zero, 1 -/* 7E46C0 80283840 080A0E1A */ j .L80283868 -/* 7E46C4 80283844 AE0000AC */ sw $zero, 0xac($s0) -.L80283848: -/* 7E46C8 80283848 0C03AD8E */ jal partner_get_ride_script -/* 7E46CC 8028384C AE0200AC */ sw $v0, 0xac($s0) -/* 7E46D0 80283850 AE0200B0 */ sw $v0, 0xb0($s0) -/* 7E46D4 80283854 3C028011 */ lui $v0, %hi(gPlayerStatus) -/* 7E46D8 80283858 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus) -/* 7E46DC 8028385C C4400080 */ lwc1 $f0, 0x80($v0) -/* 7E46E0 80283860 4600008D */ trunc.w.s $f2, $f0 -/* 7E46E4 80283864 E60200B8 */ swc1 $f2, 0xb8($s0) -.L80283868: -/* 7E46E8 80283868 8FBF0014 */ lw $ra, 0x14($sp) -/* 7E46EC 8028386C 8FB00010 */ lw $s0, 0x10($sp) -/* 7E46F0 80283870 24020002 */ addiu $v0, $zero, 2 -/* 7E46F4 80283874 03E00008 */ jr $ra -/* 7E46F8 80283878 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s b/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s deleted file mode 100644 index 79ef737efa..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s +++ /dev/null @@ -1,14 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283B88 -/* 7E4A08 80283B88 3C0141A0 */ lui $at, 0x41a0 -/* 7E4A0C 80283B8C 44816000 */ mtc1 $at, $f12 -/* 7E4A10 80283B90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4A14 80283B94 AFBF0010 */ sw $ra, 0x10($sp) -/* 7E4A18 80283B98 0C03BCE5 */ jal func_800EF394 -/* 7E4A1C 80283B9C 00000000 */ nop -/* 7E4A20 80283BA0 8FBF0010 */ lw $ra, 0x10($sp) -/* 7E4A24 80283BA4 24020002 */ addiu $v0, $zero, 2 -/* 7E4A28 80283BA8 03E00008 */ jr $ra -/* 7E4A2C 80283BAC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s b/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s deleted file mode 100644 index ad0f9c2619..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283BB0 -/* 7E4A30 80283BB0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4A34 80283BB4 AFBF0010 */ sw $ra, 0x10($sp) -/* 7E4A38 80283BB8 0C03BCE9 */ jal func_800EF3A4 -/* 7E4A3C 80283BBC 00000000 */ nop -/* 7E4A40 80283BC0 8FBF0010 */ lw $ra, 0x10($sp) -/* 7E4A44 80283BC4 24020002 */ addiu $v0, $zero, 2 -/* 7E4A48 80283BC8 03E00008 */ jr $ra -/* 7E4A4C 80283BCC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s b/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s deleted file mode 100644 index 3703e72e46..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s +++ /dev/null @@ -1,30 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283BD0 -/* 7E4A50 80283BD0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 7E4A54 80283BD4 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4A58 80283BD8 0080802D */ daddu $s0, $a0, $zero -/* 7E4A5C 80283BDC AFB10014 */ sw $s1, 0x14($sp) -/* 7E4A60 80283BE0 3C118011 */ lui $s1, %hi(gPlayerStatus) -/* 7E4A64 80283BE4 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) -/* 7E4A68 80283BE8 AFBF0018 */ sw $ra, 0x18($sp) -/* 7E4A6C 80283BEC 10A00008 */ beqz $a1, .L80283C10 -/* 7E4A70 80283BF0 8E02000C */ lw $v0, 0xc($s0) -/* 7E4A74 80283BF4 0C0B1EAF */ jal get_variable -/* 7E4A78 80283BF8 8C450000 */ lw $a1, ($v0) -/* 7E4A7C 80283BFC AE020070 */ sw $v0, 0x70($s0) -/* 7E4A80 80283C00 8E250080 */ lw $a1, 0x80($s1) -/* 7E4A84 80283C04 8E26005C */ lw $a2, 0x5c($s1) -/* 7E4A88 80283C08 0C0389DE */ jal move_player -/* 7E4A8C 80283C0C 0040202D */ daddu $a0, $v0, $zero -.L80283C10: -/* 7E4A90 80283C10 8E030070 */ lw $v1, 0x70($s0) -/* 7E4A94 80283C14 2463FFFF */ addiu $v1, $v1, -1 -/* 7E4A98 80283C18 AE030070 */ sw $v1, 0x70($s0) -/* 7E4A9C 80283C1C 8FBF0018 */ lw $ra, 0x18($sp) -/* 7E4AA0 80283C20 8FB10014 */ lw $s1, 0x14($sp) -/* 7E4AA4 80283C24 8FB00010 */ lw $s0, 0x10($sp) -/* 7E4AA8 80283C28 000317C2 */ srl $v0, $v1, 0x1f -/* 7E4AAC 80283C2C 03E00008 */ jr $ra -/* 7E4AB0 80283C30 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/include/common.h b/include/common.h index 0e3f4293aa..8e785491ea 100644 --- a/include/common.h +++ b/include/common.h @@ -10,5 +10,6 @@ #include "enums.h" #include "si.h" #include "messages.h" +#include "ld_addrs.h" #endif diff --git a/include/common_structs.h b/include/common_structs.h index 86b8fcbf08..db4990fc2e 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -934,7 +934,7 @@ typedef struct GameStatus { /* 0x158 */ UNK_PTR backgroundPalette; /* 0x15C */ s16 unk_15C; /* 0x15E */ char unk_15E[0x2]; - /* 0x160 */ s16 savedPos[3]; + /* 0x160 */ Vec3s savedPos; /* 0x166 */ u8 saveSlot; /* 0x167 */ u8 loadType; /* (0 = from map, 1 = from main menu) */ /* 0x168 */ s32 saveCount; @@ -1129,7 +1129,8 @@ typedef struct DecorationTable { } DecorationTable; // size = 0x8E8 typedef struct Shop { - /* 0x000 */ char unk_00[20]; + /* 0x000 */ char unk_00[16]; + /* 0x010 */ UNK_PTR owner; /* 0x014 */ UNK_PTR staticItemPositions; /* 0x018 */ UNK_PTR staticInventory; /* 0x01C */ UNK_PTR staticPriceList; diff --git a/include/functions.h b/include/functions.h index ce4d9e1a7d..72b99e0f04 100644 --- a/include/functions.h +++ b/include/functions.h @@ -84,6 +84,7 @@ void func_800EBB40(Npc* partner); void enable_partner_walking(Npc* partner, s32 val); void enable_partner_flying(Npc* partner, s32 val); void update_player_move_history(Npc* partner); +s32 is_current_partner_flying(void); void func_800ED5D0(Npc* partner); s32 func_800EF394(f32); @@ -121,6 +122,7 @@ f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by); f32 dist3D(f32 ax, f32 ay, f32 az, f32 bx, f32 by, f32 bz); void add_vec2D_polar(f32* x, f32* y, f32 r, f32 theta); +s32 func_801499EC(s32 soundID, s32 arg1, f32 arg2, f32 arg3, f32 arg4); s32 play_sound_at_position(s32 soundID, s32 value2, f32 posX, f32 posY, f32 posZ); s32 set_music_track(s32 playerIndex, s32 songID, s32 variation, s32 fadeOutTime, s16 volume); diff --git a/src/code_102610_len_2330.c b/src/code_102610_len_2330.c index 79b804e965..75e136b1a3 100644 --- a/src/code_102610_len_2330.c +++ b/src/code_102610_len_2330.c @@ -21,9 +21,9 @@ INCLUDE_ASM(s32, "code_102610_len_2330", func_802E117C); void save_game_at_player_position(void) { GameStatus* gameStatus = GAME_STATUS; - gameStatus->savedPos[0] = gPlayerStatusPtr->position.x; - gameStatus->savedPos[1] = gPlayerStatusPtr->position.y; - gameStatus->savedPos[2] = gPlayerStatusPtr->position.z; + gameStatus->savedPos.x = gPlayerStatusPtr->position.x; + gameStatus->savedPos.y = gPlayerStatusPtr->position.y; + gameStatus->savedPos.z = gPlayerStatusPtr->position.z; fio_save_game(gameStatus->saveSlot); } diff --git a/src/code_317020.c b/src/code_317020.c index 4526348b99..0a99d4d0a4 100644 --- a/src/code_317020.c +++ b/src/code_317020.c @@ -2,7 +2,10 @@ INCLUDE_ASM(s32, "code_317020", func_802BD100); -INCLUDE_ASM(s32, "code_317020", func_802BD174); +void func_802BD174(Npc* npc) { + npc->collisionHeight = 24; + npc->collisionRadius = 20; +} INCLUDE_ASM(s32, "code_317020", func_802BD188); diff --git a/src/code_838b0_len_5900.c b/src/code_838b0_len_5900.c index e55f7cbc49..4198a83d81 100644 --- a/src/code_838b0_len_5900.c +++ b/src/code_838b0_len_5900.c @@ -17,7 +17,7 @@ s32 func_800EA524(void) { INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EA52C); -INCLUDE_ASM(s32, "code_838b0_len_5900", is_current_partner_flying); +INCLUDE_ASM(s32, "code_838b0_len_5900", is_current_partner_flying, void); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EA5B8); diff --git a/src/code_de740_len_23f0.c b/src/code_de740_len_23f0.c index d804b87a6d..be4225e7e3 100644 --- a/src/code_de740_len_23f0.c +++ b/src/code_de740_len_23f0.c @@ -34,7 +34,7 @@ INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149908); INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149974); -INCLUDE_ASM(s32, "code_de740_len_23f0", func_801499EC); +INCLUDE_ASM(s32, "code_de740_len_23f0", func_801499EC, s32 soundID, s32 arg1, f32 arg2, f32 arg3, f32 arg4); INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149A6C); diff --git a/src/world/area_dgb/dgb_00/BFA100.c b/src/world/area_dgb/dgb_00/BFA100.c index 1cb15313c9..d54066c5c2 100644 --- a/src/world/area_dgb/dgb_00/BFA100.c +++ b/src/world/area_dgb/dgb_00/BFA100.c @@ -1,3 +1,8 @@ #include "dgb_00.h" -INCLUDE_ASM(s32, "world/area_dgb/dgb_00/BFA100", func_80240060_BFA100); +ApiStatus func_80240060_BFA100(ScriptInstance* script, s32 isInitialCall) { + Npc* npc = get_npc_unsafe(get_enemy(6)->npcID); + + func_801499EC(0x32E, 0, npc->pos.x, npc->pos.y, npc->pos.z); + return ApiStatus_DONE2; +} diff --git a/src/world/area_dgb/dgb_01/BFD880.c b/src/world/area_dgb/dgb_01/BFD880.c index 4f4d64fdc5..0404168d14 100644 --- a/src/world/area_dgb/dgb_01/BFD880.c +++ b/src/world/area_dgb/dgb_01/BFD880.c @@ -1,3 +1,6 @@ #include "dgb_01.h" -INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD880", func_80240000_BFD880); +ApiStatus func_80240000_BFD880(void) { + dma_copy(&data_C20F40_ROM_START, &data_C20F40_ROM_END, &gBackgroundImage); + return ApiStatus_DONE2; +} diff --git a/src/world/area_dgb/dgb_01/BFD9A0.c b/src/world/area_dgb/dgb_01/BFD9A0.c index a87555d06d..eec46265bb 100644 --- a/src/world/area_dgb/dgb_01/BFD9A0.c +++ b/src/world/area_dgb/dgb_01/BFD9A0.c @@ -68,4 +68,4 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_80243000_C00880); INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_802430C0_C00940); -INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_802433BC_C00C3C); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_dgb/dgb_08/C3FDB0.c b/src/world/area_dgb/dgb_08/C3FDB0.c index b9eef566fa..fca917271e 100644 --- a/src/world/area_dgb/dgb_08/C3FDB0.c +++ b/src/world/area_dgb/dgb_08/C3FDB0.c @@ -82,7 +82,7 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_802435D8_C43388); INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_802438F0_C436A0); -INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_80243B6C_C4391C); +#include "world/common/UnkFunc1.inc.c" INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_80243B98_C43948); diff --git a/src/world/area_dgb/dgb_15/C4F510.c b/src/world/area_dgb/dgb_15/C4F510.c index 5a24da4b04..b9815b6a64 100644 --- a/src/world/area_dgb/dgb_15/C4F510.c +++ b/src/world/area_dgb/dgb_15/C4F510.c @@ -38,4 +38,4 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_802413A4_C508B4); INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_80241464_C50974); -INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_80241760_C50C70); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_dgb/dgb_18/C55F40.c b/src/world/area_dgb/dgb_18/C55F40.c index d31ab0bd06..90666b9955 100644 --- a/src/world/area_dgb/dgb_18/C55F40.c +++ b/src/world/area_dgb/dgb_18/C55F40.c @@ -24,6 +24,6 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240AD4_C56A14); INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240B94_C56AD4); -INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240E90_C56DD0); +#include "world/common/UnkFunc1.inc.c" INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240EBC_C56DFC); diff --git a/src/world/area_kkj/kkj_25/B06A50.c b/src/world/area_kkj/kkj_25/B06A50.c index 97c35f2795..21206915a5 100644 --- a/src/world/area_kkj/kkj_25/B06A50.c +++ b/src/world/area_kkj/kkj_25/B06A50.c @@ -1,3 +1,3 @@ #include "kkj_25.h" -INCLUDE_ASM(s32, "world/area_kkj/kkj_25/B06A50", func_80240050_B06A50); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_sbk/sbk_00/929270.c b/src/world/area_sbk/sbk_00/929270.c index 4789aeb107..57540c174e 100644 --- a/src/world/area_sbk/sbk_00/929270.c +++ b/src/world/area_sbk/sbk_00/929270.c @@ -1,2 +1,60 @@ #include "sbk_00.h" + #include "world/common/SpawnSunEffect.inc.c" + +Script M(Main); +s32 M(npcGroupList_80240768)[]; + +EntryList M(entryList) = { + { -475.0f, 0.0f, 0.0f, 90.0f }, + { 475.0f, 0.0f, 0.0f, 270.0f }, + { 0.0f, 0.0f, -475.0f, 180.0f }, + { 0.0f, 0.0f, 475.0f, 0.0f }, +}; + +MapConfig M(config) = { + .main = M(Main), + .entryList = M(entryList), + .entryCount = ENTRY_COUNT(M(entryList)), + .background = &gBackgroundImage, + .tattle = 0x190060, +}; + +Script M(ExitWalk_802400E0) = SCRIPT({ + group 27 + UseExitHeading(60, 1) + spawn ExitWalk + GotoMap("sbk_01", 0) + sleep 100 +}); + +Script M(ExitWalk_8024013C) = SCRIPT({ + group 27 + UseExitHeading(60, 3) + spawn ExitWalk + GotoMap("sbk_10", 2) + sleep 100 +}); + +Script M(Script_80240198) = SCRIPT({ + bind M(ExitWalk_802400E0) to 524288 3 + bind M(ExitWalk_8024013C) to 524288 6 +}); + +Script M(Main) = SCRIPT({ + SI_SAVE_VAR(425) = 10 + SetSpriteShading(-1) + if SI_SAVE_VAR(0) == 0xFFFFFFC1 { + DisablePulseStone(0) + } + SetCamPerspective(0, 3, 25, 16, 4096) + SetCamBGColor(0, 0, 0, 0) + SetCamEnabled(0, 1) + SetCamLeadPlayer(0, 0) + MakeNpcs(0, M(npcGroupList_80240768)) + await M(MakeEntities) + SpawnSunEffect() + SetMusicTrack(0, 23, 0, 8) + SI_VAR(0) = M(Script_80240198) + spawn EnterWalk +}); diff --git a/src/world/area_sbk/sbk_00/9292B0.c b/src/world/area_sbk/sbk_00/9292B0.c index d550a00288..fe21eb0d8f 100644 --- a/src/world/area_sbk/sbk_00/9292B0.c +++ b/src/world/area_sbk/sbk_00/9292B0.c @@ -1,2 +1,70 @@ #include "sbk_00.h" + #include "world/common/SetNpcB5_3.inc.c" + +s32 M(aISettings_80240300)[] = { + 0x3FE66666, 0x00000032, 0x0000000A, 0x437A0000, 0x00000000, 0x00000002, 0x40600000, 0x0000002D, + 0x00000006, 0x43960000, 0x00000000, 0x00000001, +}; + +Script M(NpcAI_80240330) = SCRIPT({ + SetNpcB5_3() + DoBasicAI(M(aISettings_80240300)) +}); + +s32 M(npcSettings_8024035C)[] = { + 0x00000000, 0x0048000F, 0x00000000, 0x00000000, M(NpcAI_80240330), 0x80077F70, 0x00000000, 0x8007809C, + 0x00000000, 0x00000000, 0x00090000, +}; + +s32 M(npcGroup_80240388)[] = { + 0x00000000, M(npcSettings_8024035C), 0xC2200000, 0x00000000, 0x43200000, 0x00000800, 0x00000000, 0x00000000, + 0x00000000, 0x0000005A, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0xFFFFFFD8, 0x00000000, 0x000000A0, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroup_80240578)[] = { + 0x00000001, M(npcSettings_8024035C), 0x43750000, 0x00000000, 0x42960000, 0x00000800, 0x00000000, 0x00000000, + 0x00000000, 0x0000010E, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0x000000F5, 0x00000000, 0x0000004B, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroupList_80240768)[] = { + 0x00000001, M(npcGroup_80240388), 0x0A000001, 0x00000001, M(npcGroup_80240578), 0x0A010001, 0x00000000, 0x00000000, + 0x00000000, +}; + +static s32 padding = 0; + +Script M(MakeEntities) = SCRIPT({ + MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(797)) + MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(798)) +}); diff --git a/src/world/area_sbk/sbk_00/929A00.bin.c b/src/world/area_sbk/sbk_00/929A00.bin.c new file mode 100644 index 0000000000..84bf640361 --- /dev/null +++ b/src/world/area_sbk/sbk_00/929A00.bin.c @@ -0,0 +1,8 @@ +#include "sbk_00.h" + +Script M(MakeEntities) = SCRIPT({ + MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(797)) + MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(798)) +}); diff --git a/src/world/area_sbk/sbk_00/sbk_00.h b/src/world/area_sbk/sbk_00/sbk_00.h index 75efd5a290..9d1f153ac5 100644 --- a/src/world/area_sbk/sbk_00/sbk_00.h +++ b/src/world/area_sbk/sbk_00/sbk_00.h @@ -2,3 +2,5 @@ #include "map.h" #define MAP_NAME sbk_00 + +Script M(MakeEntities); diff --git a/src/world/common/UnkFunc1.inc.c b/src/world/common/UnkFunc1.inc.c new file mode 100644 index 0000000000..8290cef1f7 --- /dev/null +++ b/src/world/common/UnkFunc1.inc.c @@ -0,0 +1,7 @@ +#include "common.h" + +static ApiStatus UnkFunc1(ScriptInstance* script, s32 isInitialCall) { + increment_status_menu_disabled(); + func_80137DA4(0, 255.0f); + return ApiStatus_DONE2; +} diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 2f02eeb2ae..27e0d65082 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -12,7 +12,22 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802802D0); INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028035C); -INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802803C8); +ApiStatus func_802803C8(ScriptInstance *script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + + script->varTable[2] = FALSE; + + if (playerStatus->actionState == 4 || playerStatus->actionState == 8) { + return ApiStatus_DONE2; + } + + if ((playerStatus->flags & 0x100)) { + return ApiStatus_DONE2; + } + + script->varTable[2] = TRUE; + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280410); @@ -36,4 +51,9 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", draw_shop_items); INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShop); -INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShopOwner); +ApiStatus MakeShopOwner(ScriptInstance *script, s32 isInitialCall) { + Shop* mapShop = GAME_STATUS->mapShop; + + mapShop->owner = get_variable(script, *script->ptrReadPos); + return ApiStatus_DONE2; +} diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index e0f3b56f63..25139f6c99 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -1,6 +1,13 @@ #include "common.h" -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80282880); +ApiStatus func_80282880(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + + playerStatus->position.x += (script->varTable[0] - playerStatus->position.x) / 2; + playerStatus->position.z += (script->varTable[2] - playerStatus->position.z) / 2; + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "world/script_api/7E3700", func_802828DC); @@ -33,19 +40,98 @@ INCLUDE_ASM(s32, "world/script_api/7E3700", GetGridIndexFromPos); INCLUDE_ASM(s32, "world/script_api/7E3700", SetPushBlockFallEffect); -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283810); +ApiStatus func_80283810(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; -INCLUDE_ASM(s32, "world/script_api/7E3700", TeleportPartnerToPlayer); + script->varTable[10] = 0; + if (partner_get_ride_script() != NULL) { + if (D_8010EBB0[0] == 0) { + script->varTable[10] = 0; + } else { + script->varTable[10] = 1; + script->varTable[11] = partner_get_ride_script(); + script->varTable[13] = playerStatus->targetYaw; + } + } + return ApiStatus_DONE2; +} + +ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + PlayerStatus* playerStatus2 = PLAYER_STATUS; + Npc *partner; + + if (PLAYER_DATA->currentPartner == PartnerId_NONE) { + return ApiStatus_DONE2; + } + + partner = get_npc_unsafe(NpcId_PARTNER); + partner->pos.x = playerStatus->position.x; + partner->pos.z = playerStatus->position.z; + + if (is_current_partner_flying()) { + partner->pos.y = playerStatus->position.y; + } + + set_npc_yaw(partner, playerStatus2->targetYaw); + clear_partner_move_history(partner); + return ApiStatus_DONE2; +} + +#ifdef NON_MATCHING +ApiStatus func_80283908(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + Camera* camera = CURRENT_CAM; + + playerStatus->position.x = GAME_STATUS->savedPos.x; + playerStatus->position.y = GAME_STATUS->savedPos.y; + playerStatus->position.z = GAME_STATUS->savedPos.z; + + if (PLAYER_DATA->currentPartner != PartnerId_NONE) { + Npc* partner = get_npc_unsafe(NpcId_PARTNER); + f32 angle = clamp_angle(playerStatus->spriteFacingAngle < 180.0f ? 90.0f : -90.0f); + + partner->pos.x = playerStatus->position.x; + partner->pos.y = playerStatus->position.y; + partner->pos.z = playerStatus->position.z; + + add_vec2D_polar(&partner->pos, &partner->pos.z, playerStatus->colliderDiameter + 5, angle); + enable_partner_ai(); + } + + camera->unk_08 = 1; + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283908); +#endif INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283A50); -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283B88); +ApiStatus func_80283B88(ScriptInstance* script, s32 isInitialCall) { + func_800EF394(20.0f); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283BB0); +ApiStatus func_80283BB0(ScriptInstance* script, s32 isInitialCall) { + func_800EF3A4(); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283BD0); +ApiStatus func_80283BD0(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + PlayerStatus* playerStatus = PLAYER_STATUS; + + if (isInitialCall) { + script->functionTemp[0].s = get_variable(script, *args++); + move_player(script->functionTemp[0].s, playerStatus->targetYaw, playerStatus->runSpeed); + } + + script->functionTemp[0].s--; + return script->functionTemp[0].s < 0; +} INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283C34); diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 0c5ffc9ac4..2a789dc408 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -38,10 +38,10 @@ def script_lib(): # symbol_addrs.txt with open(Path(path.dirname(__file__), "symbol_addrs.txt"), "r") as file: for line in file.readlines(): - s = line.split(";") - name = s[0] - addr = s[1] - _script_lib[int(addr, 16)] = name + s = line.split("=") + name = s[0].strip() + addr = int(s[1].strip()[0:10], 0) + _script_lib[addr] = name return _script_lib diff --git a/tools/splat.yaml b/tools/splat.yaml index 05f6c75512..6f807a6ab2 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -1743,9 +1743,9 @@ segments: files: - [0x929270, "c"] - [0x9292B0, "c"] - - [0x9292D0, "bin"] - - [0x929A00, "bin"] - - [0x929A80, "bin"] # rodata + - [0x9292D0, ".data", "world/area_sbk/sbk_00/929270"] + - [0x929A00, ".data", "world/area_sbk/sbk_00/9292B0"] + - [0x929A80, ".rodata", "world/area_sbk/sbk_00/929270"] - name: world/area_sbk/sbk_01/ type: code overlay: True diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 7d8ed28671..f8674c5488 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1890,6 +1890,10 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; +gWorldMapFlags = 0x802DBC70; // size:0xC +gWorldMapVars = 0x802DBCA8; // size:0x40 +gBattleMapVars = 0x802DBCE8; // size:0x40 +gBattleMapFlags = 0x802DBD34; // size:0xC spr_appendMDL_component = 0x802DC8F4; spr_transform_point = 0x802DCD00; spr_draw_component = 0x802DCEDC; From 1588ca006124b5e6af04aa31c04ec6f123ddfabc Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 15:23:28 -0500 Subject: [PATCH 02/14] format --- src/world/script_api/7E0E80.c | 4 ++-- src/world/script_api/7E3700.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 27e0d65082..53e3974083 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -12,7 +12,7 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802802D0); INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028035C); -ApiStatus func_802803C8(ScriptInstance *script, s32 isInitialCall) { +ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; script->varTable[2] = FALSE; @@ -51,7 +51,7 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", draw_shop_items); INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShop); -ApiStatus MakeShopOwner(ScriptInstance *script, s32 isInitialCall) { +ApiStatus MakeShopOwner(ScriptInstance* script, s32 isInitialCall) { Shop* mapShop = GAME_STATUS->mapShop; mapShop->owner = get_variable(script, *script->ptrReadPos); diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index 25139f6c99..1c19bb54ca 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -60,7 +60,7 @@ ApiStatus func_80283810(ScriptInstance* script, s32 isInitialCall) { ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; PlayerStatus* playerStatus2 = PLAYER_STATUS; - Npc *partner; + Npc* partner; if (PLAYER_DATA->currentPartner == PartnerId_NONE) { return ApiStatus_DONE2; From 24558d98d68155e4fe4b38b344fab611c966d221 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 15:50:39 -0500 Subject: [PATCH 03/14] sbk_01 --- src/world/area_sbk/sbk_00/929A00.bin.c | 8 ---- src/world/area_sbk/sbk_01/929A90.c | 66 ++++++++++++++++++++++++++ src/world/area_sbk/sbk_01/929AD0.c | 59 +++++++++++++++++++++++ tools/splat.yaml | 7 ++- 4 files changed, 128 insertions(+), 12 deletions(-) delete mode 100644 src/world/area_sbk/sbk_00/929A00.bin.c diff --git a/src/world/area_sbk/sbk_00/929A00.bin.c b/src/world/area_sbk/sbk_00/929A00.bin.c deleted file mode 100644 index 84bf640361..0000000000 --- a/src/world/area_sbk/sbk_00/929A00.bin.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "sbk_00.h" - -Script M(MakeEntities) = SCRIPT({ - MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) - AssignBlockFlag(SI_SAVE_FLAG(797)) - MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) - AssignBlockFlag(SI_SAVE_FLAG(798)) -}); diff --git a/src/world/area_sbk/sbk_01/929A90.c b/src/world/area_sbk/sbk_01/929A90.c index 19966e4fdd..ebc318b699 100644 --- a/src/world/area_sbk/sbk_01/929A90.c +++ b/src/world/area_sbk/sbk_01/929A90.c @@ -1,2 +1,68 @@ #include "sbk_01.h" + #include "world/common/SpawnSunEffect.inc.c" + +Script M(Main); +s32 M(npcGroupList_802407D8)[]; + +EntryList M(entryList) = { + { -475.0f, 0.0f, 0.0f, 90.0f }, + { 475.0f, 0.0f, 0.0f, 270.0f }, + { 0.0f, 0.0f, -475.0f, 180.0f }, + { 0.0f, 0.0f, 475.0f, 0.0f }, +}; + +MapConfig M(config) = { + .main = M(Main), + .entryList = M(entryList), + .entryCount = ENTRY_COUNT(M(entryList)), + .background = &gBackgroundImage, + .tattle = 0x190061, +}; + +Script M(ExitWalk_802400E0) = SCRIPT({ + group 27 + UseExitHeading(60, 0) + spawn ExitWalk + GotoMap("sbk_00", 1) + sleep 100 +}); + +Script M(ExitWalk_8024013C) = SCRIPT({ + group 27 + UseExitHeading(60, 1) + spawn ExitWalk + GotoMap("sbk_02", 0) + sleep 100 +}); + +Script M(ExitWalk_80240198) = SCRIPT({ + group 27 + UseExitHeading(60, 3) + spawn ExitWalk + GotoMap("sbk_11", 2) + sleep 100 +}); + +Script M(Script_802401F4) = SCRIPT({ + bind M(ExitWalk_802400E0) to 524288 7 + bind M(ExitWalk_8024013C) to 524288 3 + bind M(ExitWalk_80240198) to 524288 5 +}); + +Script M(Main) = SCRIPT({ + SI_SAVE_VAR(425) = 10 + SetSpriteShading(-1) + if SI_SAVE_VAR(0) == 0xFFFFFFC1 { + DisablePulseStone(0) + } + SetCamPerspective(0, 3, 25, 16, 4096) + SetCamBGColor(0, 0, 0, 0) + SetCamEnabled(0, 1) + SetCamLeadPlayer(0, 0) + MakeNpcs(0, M(npcGroupList_802407D8)) + SpawnSunEffect() + SetMusicTrack(0, 23, 0, 8) + SI_VAR(0) = M(Script_802401F4) + spawn EnterWalk +}); diff --git a/src/world/area_sbk/sbk_01/929AD0.c b/src/world/area_sbk/sbk_01/929AD0.c index da47b1f75f..7edd7b76f2 100644 --- a/src/world/area_sbk/sbk_01/929AD0.c +++ b/src/world/area_sbk/sbk_01/929AD0.c @@ -1,2 +1,61 @@ #include "sbk_01.h" + #include "world/common/SetNpcB5_3.inc.c" + +s32 M(aISettings_80240370)[] = { + 0x3FE66666, 0x00000032, 0x0000000A, 0x437A0000, 0x00000000, 0x00000002, 0x40600000, 0x0000002D, + 0x00000006, 0x43960000, 0x00000000, 0x00000001, +}; + +Script M(NpcAI_802403A0) = SCRIPT({ + SetNpcB5_3() + DoBasicAI(M(aISettings_80240370)) +}); + +s32 M(npcSettings_802403CC)[] = { + 0x00000000, 0x0048000F, 0x00000000, 0x00000000, M(NpcAI_802403A0), 0x80077F70, 0x00000000, 0x8007809C, + 0x00000000, 0x00000000, 0x00090000, +}; + +s32 M(npcGroup_802403F8)[] = { + 0x00000000, M(npcSettings_802403CC), 0x434D0000, 0x00000000, 0xC2700000, 0x00002C00, 0x00000000, 0x00000000, + 0x00000000, 0x0000005A, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0x000000CD, 0x00000000, 0xFFFFFFC4, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroup_802405E8)[] = { + 0x00000001, M(npcSettings_802403CC), 0xC3480000, 0x00000000, 0x43340000, 0x00002C00, 0x00000000, 0x00000000, + 0x00000000, 0x0000010E, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0xFFFFFF38, 0x00000000, 0x000000B4, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroupList_802407D8)[] = { + 0x00000001, M(npcGroup_802403F8), 0x0A030001, 0x00000001, M(npcGroup_802405E8), 0x0A010001, 0x00000000, 0x00000000, + 0x00000000, +}; diff --git a/tools/splat.yaml b/tools/splat.yaml index 9130248cde..79dbc8d832 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -2033,10 +2033,9 @@ segments: files: - [0x929A90, "c"] - [0x929AD0, "c"] - - [0x929AF0, "bin"] - - [0x929E00, "bin"] - - [0x92A290, "bin"] # rodata - - [0x92A2B0, "bin"] # rodata + - [0x929AF0, ".data", "world/area_sbk/sbk_01/929A90"] + - [0x929E00, ".data", "world/area_sbk/sbk_01/929AD0"] + - [0x92A290, ".rodata", "world/area_sbk/sbk_01/929A90"] - name: world/area_sbk/sbk_02/ type: code overlay: True From 72f4a180f2f5b4ffa76a464eb8a322813ff44ba7 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 23:33:15 -0500 Subject: [PATCH 04/14] SetNpcFlagBits --- .../code_f2470_len_27f0/SetNpcFlagBits.s | 44 ------------------- include/common_structs.h | 10 ++++- include/variables.h | 3 ++ src/code_f2470_len_27f0.c | 20 ++++++++- tools/symbol_addrs.txt | 1 + undefined_syms.txt | 3 ++ 6 files changed, 35 insertions(+), 46 deletions(-) delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s diff --git a/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s b/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s deleted file mode 100644 index ddf80a0c93..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s +++ /dev/null @@ -1,44 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetNpcFlagBits -/* F3A10 802CF060 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F3A14 802CF064 AFB10014 */ sw $s1, 0x14($sp) -/* F3A18 802CF068 0080882D */ daddu $s1, $a0, $zero -/* F3A1C 802CF06C AFBF001C */ sw $ra, 0x1c($sp) -/* F3A20 802CF070 AFB20018 */ sw $s2, 0x18($sp) -/* F3A24 802CF074 AFB00010 */ sw $s0, 0x10($sp) -/* F3A28 802CF078 8E30000C */ lw $s0, 0xc($s1) -/* F3A2C 802CF07C 8E050000 */ lw $a1, ($s0) -/* F3A30 802CF080 0C0B1EAF */ jal get_variable -/* F3A34 802CF084 26100004 */ addiu $s0, $s0, 4 -/* F3A38 802CF088 0220202D */ daddu $a0, $s1, $zero -/* F3A3C 802CF08C 8E050004 */ lw $a1, 4($s0) -/* F3A40 802CF090 8E100000 */ lw $s0, ($s0) -/* F3A44 802CF094 0C0B1EAF */ jal get_variable -/* F3A48 802CF098 0040902D */ daddu $s2, $v0, $zero -/* F3A4C 802CF09C 0220202D */ daddu $a0, $s1, $zero -/* F3A50 802CF0A0 0240282D */ daddu $a1, $s2, $zero -/* F3A54 802CF0A4 0C0B36B0 */ jal resolve_npc -/* F3A58 802CF0A8 0040882D */ daddu $s1, $v0, $zero -/* F3A5C 802CF0AC 0040202D */ daddu $a0, $v0, $zero -/* F3A60 802CF0B0 5080000A */ beql $a0, $zero, .L802CF0DC -/* F3A64 802CF0B4 24020002 */ addiu $v0, $zero, 2 -/* F3A68 802CF0B8 12200004 */ beqz $s1, .L802CF0CC -/* F3A6C 802CF0BC 00101827 */ nor $v1, $zero, $s0 -/* F3A70 802CF0C0 8C820000 */ lw $v0, ($a0) -/* F3A74 802CF0C4 080B3C35 */ j .L802CF0D4 -/* F3A78 802CF0C8 00501025 */ or $v0, $v0, $s0 -.L802CF0CC: -/* F3A7C 802CF0CC 8C820000 */ lw $v0, ($a0) -/* F3A80 802CF0D0 00431024 */ and $v0, $v0, $v1 -.L802CF0D4: -/* F3A84 802CF0D4 AC820000 */ sw $v0, ($a0) -/* F3A88 802CF0D8 24020002 */ addiu $v0, $zero, 2 -.L802CF0DC: -/* F3A8C 802CF0DC 8FBF001C */ lw $ra, 0x1c($sp) -/* F3A90 802CF0E0 8FB20018 */ lw $s2, 0x18($sp) -/* F3A94 802CF0E4 8FB10014 */ lw $s1, 0x14($sp) -/* F3A98 802CF0E8 8FB00010 */ lw $s0, 0x10($sp) -/* F3A9C 802CF0EC 03E00008 */ jr $ra -/* F3AA0 802CF0F0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/include/common_structs.h b/include/common_structs.h index db4990fc2e..eff0633cb3 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -942,7 +942,15 @@ typedef struct GameStatus { } GameStatus; // size = 0x178 typedef struct PartnerAnimations { - /* 0x00 */ char unk_00[36]; + /* 0x00 */ UNK_PTR standard; // should be "default" but that's a keyword + /* 0x04 */ UNK_PTR walk; + /* 0x08 */ UNK_PTR jump; + /* 0x0C */ UNK_PTR fall; + /* 0x10 */ UNK_PTR fly; + /* 0x14 */ UNK_PTR idle; + /* 0x18 */ UNK_PTR run; + /* 0x1C */ UNK_PTR talk; + /* 0x20 */ UNK_PTR hurt; } PartnerAnimations; // size = 0x24 typedef struct Shadow { diff --git a/include/variables.h b/include/variables.h index ef0f80e341..99f0f47f87 100644 --- a/include/variables.h +++ b/include/variables.h @@ -86,6 +86,9 @@ extern PrintContext* gCurrentPrintContext; extern s32 D_802DB264; extern PrintContext* D_802DB268; +// Animation related +extern PartnerAnimations gPartnerAnimations[12]; + // Triggers extern s16 gTriggerCount; extern TriggerList gTriggerList1; diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index 1bfc9e392e..e723a572a6 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -242,7 +242,25 @@ INCLUDE_ASM(s32, "code_f2470_len_27f0", NpcFacePlayer, ScriptInstance* script, s INCLUDE_ASM(s32, "code_f2470_len_27f0", NpcFaceNpc, ScriptInstance* script, s32 isInitialCall); -INCLUDE_ASM(s32, "code_f2470_len_27f0", SetNpcFlagBits, ScriptInstance* script, s32 isInitialCall); +ApiStatus SetNpcFlagBits(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcID = get_variable(script, *args++); + s32 flagBits = *args++; + s32 var1 = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcID); + + if (npc == NULL) { + return ApiStatus_DONE2; + } + + if (var1) { + npc->flags |= flagBits; + } else { + npc->flags &= ~flagBits; + } + + return ApiStatus_DONE2; +} ApiStatus GetNpcPos(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index f8674c5488..8f95a5a907 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -694,6 +694,7 @@ enable_partner_ai = 0x800EF328; clear_partner_move_history = 0x800EF45C; draw_submenu_title = 0x800F4648; draw_box = 0x800F52E0; +gPartnerAnimations = 0x800F8348; // size:0x1B0 gPlayerStatus = 0x8010EFC8; // size:0x288 gPlayerData = 0x8010F290; // size:0x340 update_entities = 0x8010F6D0; diff --git a/undefined_syms.txt b/undefined_syms.txt index 96ea163fdd..05a40653d2 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -44,6 +44,9 @@ D_800A0963 = 0x800A0963; D_800A0964 = 0x800A0964; D_800E92D8 = 0x800E92D8; + +gPartnerAnimations = 0x800F8348; + D_80147474 = 0x80147474; D_80109270 = 0x80109270; D_80108558 = 0x80108558; From b1ee019af289995eb5b5fae318aba170e7672b17 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 23:36:45 -0500 Subject: [PATCH 05/14] asm update --- .../enable_partner_flying.s | 4 +- .../enable_partner_walking.s | 4 +- .../code_838b0_len_5900/func_800EA6CC.s | 4 +- .../code_838b0_len_5900/func_800EBC74.s | 76 +++++++++---------- .../code_838b0_len_5900/func_800ED9F8.s | 44 +++++------ .../code_838b0_len_5900/func_800EE9B8.s | 12 +-- .../code_838b0_len_5900/func_800EECE8.s | 8 +- .../code_838b0_len_5900/func_800EF82C.s | 20 ++--- .../code_f2470_len_27f0/BringPartnerOut.s | 16 ++-- .../code_f2470_len_27f0/PutPartnerAway.s | 12 +-- .../code_f2470_len_27f0/set_npc_animation.s | 4 +- 11 files changed, 102 insertions(+), 102 deletions(-) diff --git a/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s b/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s index 25198e1280..a1f7bf8af5 100644 --- a/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s +++ b/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s @@ -94,9 +94,9 @@ glabel enable_partner_flying /* 86908 800ED458 000310C0 */ sll $v0, $v1, 3 /* 8690C 800ED45C 00431021 */ addu $v0, $v0, $v1 /* 86910 800ED460 00021080 */ sll $v0, $v0, 2 -/* 86914 800ED464 3C038010 */ lui $v1, 0x8010 +/* 86914 800ED464 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 86918 800ED468 00621821 */ addu $v1, $v1, $v0 -/* 8691C 800ED46C 8C63835C */ lw $v1, -0x7ca4($v1) +/* 8691C 800ED46C 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 86920 800ED470 24020010 */ addiu $v0, $zero, 0x10 /* 86924 800ED474 3C018010 */ lui $at, 0x8010 /* 86928 800ED478 AC22802C */ sw $v0, -0x7fd4($at) diff --git a/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s b/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s index bf808bad50..95a32f0923 100644 --- a/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s +++ b/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s @@ -83,9 +83,9 @@ glabel enable_partner_walking /* 84E78 800EB9C8 000310C0 */ sll $v0, $v1, 3 /* 84E7C 800EB9CC 00431021 */ addu $v0, $v0, $v1 /* 84E80 800EB9D0 00021080 */ sll $v0, $v0, 2 -/* 84E84 800EB9D4 3C038010 */ lui $v1, 0x8010 +/* 84E84 800EB9D4 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 84E88 800EB9D8 00621821 */ addu $v1, $v1, $v0 -/* 84E8C 800EB9DC 8C63835C */ lw $v1, -0x7ca4($v1) +/* 84E8C 800EB9DC 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 84E90 800EB9E0 24020010 */ addiu $v0, $zero, 0x10 /* 84E94 800EB9E4 3C018010 */ lui $at, 0x8010 /* 84E98 800EB9E8 AC22802C */ sw $v0, -0x7fd4($at) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s b/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s index 749afb5ebb..7360f53ed7 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s @@ -537,9 +537,9 @@ glabel func_800EA6CC /* 84374 800EAEC4 00431021 */ addu $v0, $v0, $v1 /* 84378 800EAEC8 00021080 */ sll $v0, $v0, 2 /* 8437C 800EAECC 8CA30000 */ lw $v1, ($a1) -/* 84380 800EAED0 3C018010 */ lui $at, 0x8010 +/* 84380 800EAED0 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 84384 800EAED4 00220821 */ addu $at, $at, $v0 -/* 84388 800EAED8 8C228358 */ lw $v0, -0x7ca8($at) +/* 84388 800EAED8 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 8438C 800EAEDC 3C018011 */ lui $at, 0x8011 /* 84390 800EAEE0 AC30CD30 */ sw $s0, -0x32d0($at) /* 84394 800EAEE4 0C038069 */ jal enable_player_input diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s b/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s index 74a3fe073e..ae470cf992 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s @@ -36,9 +36,9 @@ glabel func_800EBC74 /* 8519C 800EBCEC 000310C0 */ sll $v0, $v1, 3 /* 851A0 800EBCF0 00431021 */ addu $v0, $v0, $v1 /* 851A4 800EBCF4 00021080 */ sll $v0, $v0, 2 -/* 851A8 800EBCF8 3C038010 */ lui $v1, 0x8010 +/* 851A8 800EBCF8 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 851AC 800EBCFC 00621821 */ addu $v1, $v1, $v0 -/* 851B0 800EBD00 8C63835C */ lw $v1, -0x7ca4($v1) +/* 851B0 800EBD00 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 851B4 800EBD04 24020005 */ addiu $v0, $zero, 5 /* 851B8 800EBD08 3C018011 */ lui $at, 0x8011 /* 851BC 800EBD0C A422CFC8 */ sh $v0, -0x3038($at) @@ -105,8 +105,8 @@ glabel func_800EBC74 .L800EBDFC: /* 852AC 800EBDFC 3C038011 */ lui $v1, 0x8011 /* 852B0 800EBE00 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 852B4 800EBE04 3C048010 */ lui $a0, 0x8010 -/* 852B8 800EBE08 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 852B4 800EBE04 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 852B8 800EBE08 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 852BC 800EBE0C 000310C0 */ sll $v0, $v1, 3 /* 852C0 800EBE10 00431021 */ addu $v0, $v0, $v1 /* 852C4 800EBE14 00021080 */ sll $v0, $v0, 2 @@ -506,9 +506,9 @@ glabel func_800EBC74 /* 85898 800EC3E8 000218C0 */ sll $v1, $v0, 3 /* 8589C 800EC3EC 00621821 */ addu $v1, $v1, $v0 /* 858A0 800EC3F0 00031880 */ sll $v1, $v1, 2 -/* 858A4 800EC3F4 3C028010 */ lui $v0, 0x8010 +/* 858A4 800EC3F4 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* 858A8 800EC3F8 00431021 */ addu $v0, $v0, $v1 -/* 858AC 800EC3FC 8C428350 */ lw $v0, -0x7cb0($v0) +/* 858AC 800EC3FC 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* 858B0 800EC400 0803B10B */ j .L800EC42C /* 858B4 800EC404 AE220028 */ sw $v0, 0x28($s1) .L800EC408: @@ -517,9 +517,9 @@ glabel func_800EBC74 /* 858C0 800EC410 000218C0 */ sll $v1, $v0, 3 /* 858C4 800EC414 00621821 */ addu $v1, $v1, $v0 /* 858C8 800EC418 00031880 */ sll $v1, $v1, 2 -/* 858CC 800EC41C 3C028010 */ lui $v0, 0x8010 +/* 858CC 800EC41C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x20) /* 858D0 800EC420 00431021 */ addu $v0, $v0, $v1 -/* 858D4 800EC424 8C428368 */ lw $v0, -0x7c98($v0) +/* 858D4 800EC424 8C428368 */ lw $v0, %lo(gPartnerAnimations+0x20)($v0) /* 858D8 800EC428 AE220028 */ sw $v0, 0x28($s1) .L800EC42C: /* 858DC 800EC42C C6200038 */ lwc1 $f0, 0x38($s1) @@ -550,9 +550,9 @@ glabel func_800EBC74 /* 85940 800EC490 000218C0 */ sll $v1, $v0, 3 /* 85944 800EC494 00621821 */ addu $v1, $v1, $v0 /* 85948 800EC498 00031880 */ sll $v1, $v1, 2 -/* 8594C 800EC49C 3C028010 */ lui $v0, 0x8010 +/* 8594C 800EC49C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 85950 800EC4A0 00431021 */ addu $v0, $v0, $v1 -/* 85954 800EC4A4 8C428354 */ lw $v0, -0x7cac($v0) +/* 85954 800EC4A4 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 85958 800EC4A8 AE220028 */ sw $v0, 0x28($s1) .L800EC4AC: /* 8595C 800EC4AC C622003C */ lwc1 $f2, 0x3c($s1) @@ -571,9 +571,9 @@ glabel func_800EBC74 /* 85990 800EC4E0 00621821 */ addu $v1, $v1, $v0 /* 85994 800EC4E4 00031880 */ sll $v1, $v1, 2 /* 85998 800EC4E8 8E220000 */ lw $v0, ($s1) -/* 8599C 800EC4EC 3C018010 */ lui $at, 0x8010 +/* 8599C 800EC4EC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 859A0 800EC4F0 00230821 */ addu $at, $at, $v1 -/* 859A4 800EC4F4 8C238358 */ lw $v1, -0x7ca8($at) +/* 859A4 800EC4F4 8C238358 */ lw $v1, %lo(gPartnerAnimations+0x10)($at) /* 859A8 800EC4F8 E634001C */ swc1 $f20, 0x1c($s1) /* 859AC 800EC4FC 00441024 */ and $v0, $v0, $a0 /* 859B0 800EC500 AE220000 */ sw $v0, ($s1) @@ -642,9 +642,9 @@ glabel func_800EBC74 /* 85AA8 800EC5F8 000310C0 */ sll $v0, $v1, 3 /* 85AAC 800EC5FC 00431021 */ addu $v0, $v0, $v1 /* 85AB0 800EC600 00021080 */ sll $v0, $v0, 2 -/* 85AB4 800EC604 3C048010 */ lui $a0, 0x8010 +/* 85AB4 800EC604 3C048010 */ lui $a0, %hi(gPartnerAnimations+0x10) /* 85AB8 800EC608 00822021 */ addu $a0, $a0, $v0 -/* 85ABC 800EC60C 8C848358 */ lw $a0, -0x7ca8($a0) +/* 85ABC 800EC60C 8C848358 */ lw $a0, %lo(gPartnerAnimations+0x10)($a0) /* 85AC0 800EC610 8E220000 */ lw $v0, ($s1) /* 85AC4 800EC614 2403F7FF */ addiu $v1, $zero, -0x801 /* 85AC8 800EC618 E634001C */ swc1 $f20, 0x1c($s1) @@ -744,9 +744,9 @@ glabel func_800EBC74 /* 85C3C 800EC78C 000310C0 */ sll $v0, $v1, 3 /* 85C40 800EC790 00431021 */ addu $v0, $v0, $v1 /* 85C44 800EC794 00021080 */ sll $v0, $v0, 2 -/* 85C48 800EC798 3C018010 */ lui $at, 0x8010 +/* 85C48 800EC798 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85C4C 800EC79C 00220821 */ addu $at, $at, $v0 -/* 85C50 800EC7A0 8C22835C */ lw $v0, -0x7ca4($at) +/* 85C50 800EC7A0 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 85C54 800EC7A4 AE220028 */ sw $v0, 0x28($s1) /* 85C58 800EC7A8 826300B4 */ lb $v1, 0xb4($s3) /* 85C5C 800EC7AC 2402000C */ addiu $v0, $zero, 0xc @@ -813,8 +813,8 @@ glabel func_800EBC74 /* 85D44 800EC894 E6220018 */ swc1 $f2, 0x18($s1) /* 85D48 800EC898 3C038011 */ lui $v1, 0x8011 /* 85D4C 800EC89C 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 85D50 800EC8A0 3C048010 */ lui $a0, 0x8010 -/* 85D54 800EC8A4 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 85D50 800EC8A0 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 85D54 800EC8A4 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 85D58 800EC8A8 E634000C */ swc1 $f20, 0xc($s1) /* 85D5C 800EC8AC 000310C0 */ sll $v0, $v1, 3 /* 85D60 800EC8B0 00431021 */ addu $v0, $v0, $v1 @@ -860,9 +860,9 @@ glabel func_800EBC74 /* 85DF8 800EC948 000310C0 */ sll $v0, $v1, 3 /* 85DFC 800EC94C 00431021 */ addu $v0, $v0, $v1 /* 85E00 800EC950 00021080 */ sll $v0, $v0, 2 -/* 85E04 800EC954 3C018010 */ lui $at, 0x8010 +/* 85E04 800EC954 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85E08 800EC958 00220821 */ addu $at, $at, $v0 -/* 85E0C 800EC95C 8C22835C */ lw $v0, -0x7ca4($at) +/* 85E0C 800EC95C 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) .L800EC960: /* 85E10 800EC960 3C048011 */ lui $a0, 0x8011 /* 85E14 800EC964 2484CFCA */ addiu $a0, $a0, -0x3036 @@ -949,9 +949,9 @@ glabel func_800EBC74 /* 85F4C 800ECA9C 000310C0 */ sll $v0, $v1, 3 /* 85F50 800ECAA0 00431021 */ addu $v0, $v0, $v1 /* 85F54 800ECAA4 00021080 */ sll $v0, $v0, 2 -/* 85F58 800ECAA8 3C018010 */ lui $at, 0x8010 +/* 85F58 800ECAA8 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85F5C 800ECAAC 00220821 */ addu $at, $at, $v0 -/* 85F60 800ECAB0 8C22835C */ lw $v0, -0x7ca4($at) +/* 85F60 800ECAB0 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 85F64 800ECAB4 3C048011 */ lui $a0, 0x8011 /* 85F68 800ECAB8 2484CFCA */ addiu $a0, $a0, -0x3036 /* 85F6C 800ECABC AE220028 */ sw $v0, 0x28($s1) @@ -1164,8 +1164,8 @@ glabel func_800EBC74 .L800ECDC4: /* 86274 800ECDC4 24430004 */ addiu $v1, $v0, 4 .L800ECDC8: -/* 86278 800ECDC8 3C028010 */ lui $v0, 0x8010 -/* 8627C 800ECDCC 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 86278 800ECDC8 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 8627C 800ECDCC 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 86280 800ECDD0 00431021 */ addu $v0, $v0, $v1 /* 86284 800ECDD4 8C420000 */ lw $v0, ($v0) /* 86288 800ECDD8 AC820000 */ sw $v0, ($a0) @@ -1210,9 +1210,9 @@ glabel func_800EBC74 /* 86320 800ECE70 000218C0 */ sll $v1, $v0, 3 /* 86324 800ECE74 00621821 */ addu $v1, $v1, $v0 /* 86328 800ECE78 00031880 */ sll $v1, $v1, 2 -/* 8632C 800ECE7C 3C028010 */ lui $v0, 0x8010 +/* 8632C 800ECE7C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 86330 800ECE80 00431021 */ addu $v0, $v0, $v1 -/* 86334 800ECE84 8C428354 */ lw $v0, -0x7cac($v0) +/* 86334 800ECE84 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 86338 800ECE88 AE220028 */ sw $v0, 0x28($s1) .L800ECE8C: /* 8633C 800ECE8C C624001C */ lwc1 $f4, 0x1c($s1) @@ -1275,8 +1275,8 @@ glabel func_800EBC74 .L800ECF70: /* 86420 800ECF70 24430004 */ addiu $v1, $v0, 4 .L800ECF74: -/* 86424 800ECF74 3C028010 */ lui $v0, 0x8010 -/* 86428 800ECF78 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 86424 800ECF74 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 86428 800ECF78 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 8642C 800ECF7C 00431021 */ addu $v0, $v0, $v1 /* 86430 800ECF80 8C420000 */ lw $v0, ($v0) /* 86434 800ECF84 C7A0002C */ lwc1 $f0, 0x2c($sp) @@ -1326,9 +1326,9 @@ glabel func_800EBC74 /* 864D8 800ED028 000310C0 */ sll $v0, $v1, 3 /* 864DC 800ED02C 00431021 */ addu $v0, $v0, $v1 /* 864E0 800ED030 00021080 */ sll $v0, $v0, 2 -/* 864E4 800ED034 3C018010 */ lui $at, 0x8010 +/* 864E4 800ED034 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 864E8 800ED038 00220821 */ addu $at, $at, $v0 -/* 864EC 800ED03C 8C22835C */ lw $v0, -0x7ca4($at) +/* 864EC 800ED03C 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 864F0 800ED040 AE220028 */ sw $v0, 0x28($s1) /* 864F4 800ED044 C6AC006C */ lwc1 $f12, 0x6c($s5) /* 864F8 800ED048 46006300 */ add.s $f12, $f12, $f0 @@ -1378,9 +1378,9 @@ glabel func_800EBC74 /* 8659C 800ED0EC 000310C0 */ sll $v0, $v1, 3 /* 865A0 800ED0F0 00431021 */ addu $v0, $v0, $v1 /* 865A4 800ED0F4 00021080 */ sll $v0, $v0, 2 -/* 865A8 800ED0F8 3C038010 */ lui $v1, 0x8010 +/* 865A8 800ED0F8 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 865AC 800ED0FC 00621821 */ addu $v1, $v1, $v0 -/* 865B0 800ED100 8C63835C */ lw $v1, -0x7ca4($v1) +/* 865B0 800ED100 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 865B4 800ED104 24020032 */ addiu $v0, $zero, 0x32 /* 865B8 800ED108 3C018011 */ lui $at, 0x8011 /* 865BC 800ED10C A422CFC8 */ sh $v0, -0x3038($at) @@ -1404,9 +1404,9 @@ glabel func_800EBC74 /* 86600 800ED150 000218C0 */ sll $v1, $v0, 3 /* 86604 800ED154 00621821 */ addu $v1, $v1, $v0 /* 86608 800ED158 00031880 */ sll $v1, $v1, 2 -/* 8660C 800ED15C 3C028010 */ lui $v0, 0x8010 +/* 8660C 800ED15C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 86610 800ED160 00431021 */ addu $v0, $v0, $v1 -/* 86614 800ED164 8C428354 */ lw $v0, -0x7cac($v0) +/* 86614 800ED164 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 86618 800ED168 AE220028 */ sw $v0, 0x28($s1) .L800ED16C: /* 8661C 800ED16C C622003C */ lwc1 $f2, 0x3c($s1) @@ -1425,9 +1425,9 @@ glabel func_800EBC74 /* 86650 800ED1A0 00621821 */ addu $v1, $v1, $v0 /* 86654 800ED1A4 00031880 */ sll $v1, $v1, 2 /* 86658 800ED1A8 8E220000 */ lw $v0, ($s1) -/* 8665C 800ED1AC 3C018010 */ lui $at, 0x8010 +/* 8665C 800ED1AC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 86660 800ED1B0 00230821 */ addu $at, $at, $v1 -/* 86664 800ED1B4 8C23835C */ lw $v1, -0x7ca4($at) +/* 86664 800ED1B4 8C23835C */ lw $v1, %lo(gPartnerAnimations+0x14)($at) /* 86668 800ED1B8 E634001C */ swc1 $f20, 0x1c($s1) /* 8666C 800ED1BC 00441024 */ and $v0, $v0, $a0 /* 86670 800ED1C0 AE220000 */ sw $v0, ($s1) @@ -1485,9 +1485,9 @@ glabel func_800EBC74 /* 86738 800ED288 000310C0 */ sll $v0, $v1, 3 /* 8673C 800ED28C 00431021 */ addu $v0, $v0, $v1 /* 86740 800ED290 00021080 */ sll $v0, $v0, 2 -/* 86744 800ED294 3C048010 */ lui $a0, 0x8010 +/* 86744 800ED294 3C048010 */ lui $a0, %hi(gPartnerAnimations+0x14) /* 86748 800ED298 00822021 */ addu $a0, $a0, $v0 -/* 8674C 800ED29C 8C84835C */ lw $a0, -0x7ca4($a0) +/* 8674C 800ED29C 8C84835C */ lw $a0, %lo(gPartnerAnimations+0x14)($a0) /* 86750 800ED2A0 8E220000 */ lw $v0, ($s1) /* 86754 800ED2A4 2403F7FF */ addiu $v1, $zero, -0x801 /* 86758 800ED2A8 E634001C */ swc1 $f20, 0x1c($s1) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s b/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s index cae6784bcb..45a8472a69 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s @@ -120,9 +120,9 @@ glabel func_800ED9F8 /* 87064 800EDBB4 000218C0 */ sll $v1, $v0, 3 /* 87068 800EDBB8 00621821 */ addu $v1, $v1, $v0 /* 8706C 800EDBBC 00031880 */ sll $v1, $v1, 2 -/* 87070 800EDBC0 3C028010 */ lui $v0, 0x8010 +/* 87070 800EDBC0 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x14) /* 87074 800EDBC4 00431021 */ addu $v0, $v0, $v1 -/* 87078 800EDBC8 8C42835C */ lw $v0, -0x7ca4($v0) +/* 87078 800EDBC8 8C42835C */ lw $v0, %lo(gPartnerAnimations+0x14)($v0) /* 8707C 800EDBCC 0803B76E */ j .L800EDDB8 /* 87080 800EDBD0 AE220028 */ sw $v0, 0x28($s1) .L800EDBD4: @@ -134,9 +134,9 @@ glabel func_800ED9F8 /* 87098 800EDBE8 000310C0 */ sll $v0, $v1, 3 /* 8709C 800EDBEC 00431021 */ addu $v0, $v0, $v1 /* 870A0 800EDBF0 00021080 */ sll $v0, $v0, 2 -/* 870A4 800EDBF4 3C038010 */ lui $v1, 0x8010 +/* 870A4 800EDBF4 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 870A8 800EDBF8 00621821 */ addu $v1, $v1, $v0 -/* 870AC 800EDBFC 8C63835C */ lw $v1, -0x7ca4($v1) +/* 870AC 800EDBFC 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 870B0 800EDC00 24020005 */ addiu $v0, $zero, 5 /* 870B4 800EDC04 3C018011 */ lui $at, 0x8011 /* 870B8 800EDC08 A422CFC8 */ sh $v0, -0x3038($at) @@ -429,9 +429,9 @@ glabel func_800ED9F8 /* 874F0 800EE040 000310C0 */ sll $v0, $v1, 3 /* 874F4 800EE044 00431021 */ addu $v0, $v0, $v1 /* 874F8 800EE048 00021080 */ sll $v0, $v0, 2 -/* 874FC 800EE04C 3C038010 */ lui $v1, 0x8010 +/* 874FC 800EE04C 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x8) /* 87500 800EE050 00621821 */ addu $v1, $v1, $v0 -/* 87504 800EE054 8C638350 */ lw $v1, -0x7cb0($v1) +/* 87504 800EE054 8C638350 */ lw $v1, %lo(gPartnerAnimations+0x8)($v1) /* 87508 800EE058 24020002 */ addiu $v0, $zero, 2 /* 8750C 800EE05C 3C018011 */ lui $at, 0x8011 /* 87510 800EE060 A422CFC8 */ sh $v0, -0x3038($at) @@ -456,9 +456,9 @@ glabel func_800ED9F8 /* 8755C 800EE0AC 000218C0 */ sll $v1, $v0, 3 /* 87560 800EE0B0 00621821 */ addu $v1, $v1, $v0 /* 87564 800EE0B4 00031880 */ sll $v1, $v1, 2 -/* 87568 800EE0B8 3C028010 */ lui $v0, 0x8010 +/* 87568 800EE0B8 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 8756C 800EE0BC 00431021 */ addu $v0, $v0, $v1 -/* 87570 800EE0C0 8C428354 */ lw $v0, -0x7cac($v0) +/* 87570 800EE0C0 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 87574 800EE0C4 AE220028 */ sw $v0, 0x28($s1) .L800EE0C8: /* 87578 800EE0C8 8E250018 */ lw $a1, 0x18($s1) @@ -483,9 +483,9 @@ glabel func_800ED9F8 /* 875C4 800EE114 000310C0 */ sll $v0, $v1, 3 /* 875C8 800EE118 00431021 */ addu $v0, $v0, $v1 /* 875CC 800EE11C 00021080 */ sll $v0, $v0, 2 -/* 875D0 800EE120 3C018010 */ lui $at, 0x8010 +/* 875D0 800EE120 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 875D4 800EE124 00220821 */ addu $at, $at, $v0 -/* 875D8 800EE128 8C228358 */ lw $v0, -0x7ca8($at) +/* 875D8 800EE128 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 875DC 800EE12C E634001C */ swc1 $f20, 0x1c($s1) /* 875E0 800EE130 E620003C */ swc1 $f0, 0x3c($s1) /* 875E4 800EE134 AE220028 */ sw $v0, 0x28($s1) @@ -573,9 +573,9 @@ glabel func_800ED9F8 /* 8772C 800EE27C AE200014 */ sw $zero, 0x14($s1) /* 87730 800EE280 462010A0 */ cvt.s.d $f2, $f2 /* 87734 800EE284 E622003C */ swc1 $f2, 0x3c($s1) -/* 87738 800EE288 3C018010 */ lui $at, 0x8010 +/* 87738 800EE288 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 8773C 800EE28C 00220821 */ addu $at, $at, $v0 -/* 87740 800EE290 8C22835C */ lw $v0, -0x7ca4($at) +/* 87740 800EE290 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 87744 800EE294 E7A20024 */ swc1 $f2, 0x24($sp) /* 87748 800EE298 AE220028 */ sw $v0, 0x28($s1) /* 8774C 800EE29C 826300B4 */ lb $v1, 0xb4($s3) @@ -635,8 +635,8 @@ glabel func_800ED9F8 /* 8781C 800EE36C E6220018 */ swc1 $f2, 0x18($s1) /* 87820 800EE370 3C038011 */ lui $v1, 0x8011 /* 87824 800EE374 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 87828 800EE378 3C048010 */ lui $a0, 0x8010 -/* 8782C 800EE37C 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 87828 800EE378 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 8782C 800EE37C 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 87830 800EE380 E634000C */ swc1 $f20, 0xc($s1) /* 87834 800EE384 000310C0 */ sll $v0, $v1, 3 /* 87838 800EE388 00431021 */ addu $v0, $v0, $v1 @@ -682,9 +682,9 @@ glabel func_800ED9F8 /* 878D0 800EE420 000310C0 */ sll $v0, $v1, 3 /* 878D4 800EE424 00431021 */ addu $v0, $v0, $v1 /* 878D8 800EE428 00021080 */ sll $v0, $v0, 2 -/* 878DC 800EE42C 3C018010 */ lui $at, 0x8010 +/* 878DC 800EE42C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 878E0 800EE430 00220821 */ addu $at, $at, $v0 -/* 878E4 800EE434 8C22835C */ lw $v0, -0x7ca4($at) +/* 878E4 800EE434 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) .L800EE438: /* 878E8 800EE438 3C048011 */ lui $a0, 0x8011 /* 878EC 800EE43C 2484CFCA */ addiu $a0, $a0, -0x3036 @@ -836,8 +836,8 @@ glabel func_800ED9F8 .L800EE668: /* 87B18 800EE668 24430018 */ addiu $v1, $v0, 0x18 .L800EE66C: -/* 87B1C 800EE66C 3C028010 */ lui $v0, 0x8010 -/* 87B20 800EE670 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 87B1C 800EE66C 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 87B20 800EE670 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 87B24 800EE674 00431021 */ addu $v0, $v0, $v1 /* 87B28 800EE678 8C420000 */ lw $v0, ($v0) /* 87B2C 800EE67C AC820000 */ sw $v0, ($a0) @@ -1001,9 +1001,9 @@ glabel func_800ED9F8 /* 87D90 800EE8E0 000310C0 */ sll $v0, $v1, 3 /* 87D94 800EE8E4 00431021 */ addu $v0, $v0, $v1 /* 87D98 800EE8E8 00021080 */ sll $v0, $v0, 2 -/* 87D9C 800EE8EC 3C018010 */ lui $at, 0x8010 +/* 87D9C 800EE8EC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 87DA0 800EE8F0 00220821 */ addu $at, $at, $v0 -/* 87DA4 800EE8F4 8C22835C */ lw $v0, -0x7ca4($at) +/* 87DA4 800EE8F4 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 87DA8 800EE8F8 AE220028 */ sw $v0, 0x28($s1) /* 87DAC 800EE8FC C64C006C */ lwc1 $f12, 0x6c($s2) /* 87DB0 800EE900 46006300 */ add.s $f12, $f12, $f0 @@ -1028,9 +1028,9 @@ glabel func_800ED9F8 /* 87DFC 800EE94C 000218C0 */ sll $v1, $v0, 3 /* 87E00 800EE950 00621821 */ addu $v1, $v1, $v0 /* 87E04 800EE954 00031880 */ sll $v1, $v1, 2 -/* 87E08 800EE958 3C028010 */ lui $v0, 0x8010 +/* 87E08 800EE958 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x14) /* 87E0C 800EE95C 00431021 */ addu $v0, $v0, $v1 -/* 87E10 800EE960 8C42835C */ lw $v0, -0x7ca4($v0) +/* 87E10 800EE960 8C42835C */ lw $v0, %lo(gPartnerAnimations+0x14)($v0) /* 87E14 800EE964 AE220028 */ sw $v0, 0x28($s1) .L800EE968: /* 87E18 800EE968 8FBF0044 */ lw $ra, 0x44($sp) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s b/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s index 800bfad17c..1814b5fa3d 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s @@ -113,9 +113,9 @@ glabel func_800EE9B8 /* 88010 800EEB60 E6040018 */ swc1 $f4, 0x18($s0) /* 88014 800EEB64 4606A503 */ div.s $f20, $f20, $f6 /* 88018 800EEB68 E614001C */ swc1 $f20, 0x1c($s0) -/* 8801C 800EEB6C 3C018010 */ lui $at, 0x8010 +/* 8801C 800EEB6C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x8) /* 88020 800EEB70 00220821 */ addu $at, $at, $v0 -/* 88024 800EEB74 8C228350 */ lw $v0, -0x7cb0($at) +/* 88024 800EEB74 8C228350 */ lw $v0, %lo(gPartnerAnimations+0x8)($at) /* 88028 800EEB78 0200202D */ daddu $a0, $s0, $zero /* 8802C 800EEB7C 0C00EB49 */ jal enable_npc_blur /* 88030 800EEB80 AC820028 */ sw $v0, 0x28($a0) @@ -140,9 +140,9 @@ glabel func_800EE9B8 /* 88078 800EEBC8 000218C0 */ sll $v1, $v0, 3 /* 8807C 800EEBCC 00621821 */ addu $v1, $v1, $v0 /* 88080 800EEBD0 00031880 */ sll $v1, $v1, 2 -/* 88084 800EEBD4 3C028010 */ lui $v0, 0x8010 +/* 88084 800EEBD4 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88088 800EEBD8 00431021 */ addu $v0, $v0, $v1 -/* 8808C 800EEBDC 8C428354 */ lw $v0, -0x7cac($v0) +/* 8808C 800EEBDC 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88090 800EEBE0 AE020028 */ sw $v0, 0x28($s0) .L800EEBE4: /* 88094 800EEBE4 8E06000C */ lw $a2, 0xc($s0) @@ -181,9 +181,9 @@ glabel func_800EE9B8 /* 88110 800EEC60 000310C0 */ sll $v0, $v1, 3 /* 88114 800EEC64 00431021 */ addu $v0, $v0, $v1 /* 88118 800EEC68 00021080 */ sll $v0, $v0, 2 -/* 8811C 800EEC6C 3C018010 */ lui $at, 0x8010 +/* 8811C 800EEC6C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 88120 800EEC70 00220821 */ addu $at, $at, $v0 -/* 88124 800EEC74 8C228358 */ lw $v0, -0x7ca8($at) +/* 88124 800EEC74 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 88128 800EEC78 AC80001C */ sw $zero, 0x1c($a0) /* 8812C 800EEC7C E480003C */ swc1 $f0, 0x3c($a0) /* 88130 800EEC80 0C00EB6B */ jal disable_npc_blur diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s b/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s index b6909360a0..0f669fe2f2 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s @@ -263,9 +263,9 @@ glabel func_800EECE8 /* 88580 800EF0D0 00021080 */ sll $v0, $v0, 2 /* 88584 800EF0D4 46040003 */ div.s $f0, $f0, $f4 /* 88588 800EF0D8 E600001C */ swc1 $f0, 0x1c($s0) -/* 8858C 800EF0DC 3C038010 */ lui $v1, 0x8010 +/* 8858C 800EF0DC 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x8) /* 88590 800EF0E0 00621821 */ addu $v1, $v1, $v0 -/* 88594 800EF0E4 8C638350 */ lw $v1, -0x7cb0($v1) +/* 88594 800EF0E4 8C638350 */ lw $v1, %lo(gPartnerAnimations+0x8)($v1) /* 88598 800EF0E8 24020001 */ addiu $v0, $zero, 1 /* 8859C 800EF0EC 3C018011 */ lui $at, 0x8011 /* 885A0 800EF0F0 A422CFC8 */ sh $v0, -0x3038($at) @@ -307,9 +307,9 @@ glabel func_800EECE8 /* 88628 800EF178 000218C0 */ sll $v1, $v0, 3 /* 8862C 800EF17C 00621821 */ addu $v1, $v1, $v0 /* 88630 800EF180 00031880 */ sll $v1, $v1, 2 -/* 88634 800EF184 3C028010 */ lui $v0, 0x8010 +/* 88634 800EF184 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88638 800EF188 00431021 */ addu $v0, $v0, $v1 -/* 8863C 800EF18C 8C428354 */ lw $v0, -0x7cac($v0) +/* 8863C 800EF18C 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88640 800EF190 AE020028 */ sw $v0, 0x28($s0) .L800EF194: /* 88644 800EF194 8E050018 */ lw $a1, 0x18($s0) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s b/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s index 3a518c1b93..025c33a92e 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s @@ -84,8 +84,8 @@ glabel func_800EF82C .L800EF968: /* 88E18 800EF968 24430004 */ addiu $v1, $v0, 4 .L800EF96C: -/* 88E1C 800EF96C 3C028010 */ lui $v0, 0x8010 -/* 88E20 800EF970 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 88E1C 800EF96C 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 88E20 800EF970 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 88E24 800EF974 00431021 */ addu $v0, $v0, $v1 /* 88E28 800EF978 8C420000 */ lw $v0, ($v0) /* 88E2C 800EF97C AC820000 */ sw $v0, ($a0) @@ -125,9 +125,9 @@ glabel func_800EF82C /* 88EAC 800EF9FC 000218C0 */ sll $v1, $v0, 3 /* 88EB0 800EFA00 00621821 */ addu $v1, $v1, $v0 /* 88EB4 800EFA04 00031880 */ sll $v1, $v1, 2 -/* 88EB8 800EFA08 3C028010 */ lui $v0, 0x8010 +/* 88EB8 800EFA08 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88EBC 800EFA0C 00431021 */ addu $v0, $v0, $v1 -/* 88EC0 800EFA10 8C428354 */ lw $v0, -0x7cac($v0) +/* 88EC0 800EFA10 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88EC4 800EFA14 AE420028 */ sw $v0, 0x28($s2) .L800EFA18: /* 88EC8 800EFA18 C642001C */ lwc1 $f2, 0x1c($s2) @@ -196,8 +196,8 @@ glabel func_800EF82C .L800EFB14: /* 88FC4 800EFB14 24430004 */ addiu $v1, $v0, 4 .L800EFB18: -/* 88FC8 800EFB18 3C028010 */ lui $v0, 0x8010 -/* 88FCC 800EFB1C 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 88FC8 800EFB18 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 88FCC 800EFB1C 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 88FD0 800EFB20 00431021 */ addu $v0, $v0, $v1 /* 88FD4 800EFB24 8C420000 */ lw $v0, ($v0) /* 88FD8 800EFB28 C7A00024 */ lwc1 $f0, 0x24($sp) @@ -240,8 +240,8 @@ glabel func_800EF82C .L800EFBB8: /* 89068 800EFBB8 24630004 */ addiu $v1, $v1, 4 .L800EFBBC: -/* 8906C 800EFBBC 3C028010 */ lui $v0, 0x8010 -/* 89070 800EFBC0 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 8906C 800EFBBC 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 89070 800EFBC0 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 89074 800EFBC4 00431021 */ addu $v0, $v0, $v1 /* 89078 800EFBC8 8C420000 */ lw $v0, ($v0) /* 8907C 800EFBCC 0240202D */ daddu $a0, $s2, $zero @@ -310,9 +310,9 @@ glabel func_800EF82C /* 89164 800EFCB4 2484CFCE */ addiu $a0, $a0, -0x3032 /* 89168 800EFCB8 AE420000 */ sw $v0, ($s2) /* 8916C 800EFCBC 94820000 */ lhu $v0, ($a0) -/* 89170 800EFCC0 3C018010 */ lui $at, 0x8010 +/* 89170 800EFCC0 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 89174 800EFCC4 00230821 */ addu $at, $at, $v1 -/* 89178 800EFCC8 8C23835C */ lw $v1, -0x7ca4($at) +/* 89178 800EFCC8 8C23835C */ lw $v1, %lo(gPartnerAnimations+0x14)($at) /* 8917C 800EFCCC 24420001 */ addiu $v0, $v0, 1 /* 89180 800EFCD0 A4820000 */ sh $v0, ($a0) /* 89184 800EFCD4 AE430028 */ sw $v1, 0x28($s2) diff --git a/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s b/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s index 59c7f53ec5..60ca81e8dd 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s +++ b/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s @@ -45,9 +45,9 @@ glabel BringPartnerOut /* F4004 802CF654 000310C0 */ sll $v0, $v1, 3 /* F4008 802CF658 00431021 */ addu $v0, $v0, $v1 /* F400C 802CF65C 00021080 */ sll $v0, $v0, 2 -/* F4010 802CF660 3C018010 */ lui $at, 0x8010 +/* F4010 802CF660 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* F4014 802CF664 00220821 */ addu $at, $at, $v0 -/* F4018 802CF668 8C228358 */ lw $v0, -0x7ca8($at) +/* F4018 802CF668 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* F401C 802CF66C 0220202D */ daddu $a0, $s1, $zero /* F4020 802CF670 AFA00018 */ sw $zero, 0x18($sp) /* F4024 802CF674 AFA0001C */ sw $zero, 0x1c($sp) @@ -111,8 +111,8 @@ glabel BringPartnerOut /* F410C 802CF75C E6200010 */ swc1 $f0, 0x10($s1) /* F4110 802CF760 C6220010 */ lwc1 $f2, 0x10($s1) /* F4114 802CF764 C6240018 */ lwc1 $f4, 0x18($s1) -/* F4118 802CF768 3C108010 */ lui $s0, 0x8010 -/* F411C 802CF76C 26108348 */ addiu $s0, $s0, -0x7cb8 +/* F4118 802CF768 3C108010 */ lui $s0, %hi(gPartnerAnimations) +/* F411C 802CF76C 26108348 */ addiu $s0, $s0, %lo(gPartnerAnimations) /* F4120 802CF770 E620000C */ swc1 $f0, 0xc($s1) /* F4124 802CF774 46041083 */ div.s $f2, $f2, $f4 /* F4128 802CF778 4600118D */ trunc.w.s $f6, $f2 @@ -180,9 +180,9 @@ glabel BringPartnerOut /* F4218 802CF868 000218C0 */ sll $v1, $v0, 3 /* F421C 802CF86C 00621821 */ addu $v1, $v1, $v0 /* F4220 802CF870 00031880 */ sll $v1, $v1, 2 -/* F4224 802CF874 3C028010 */ lui $v0, 0x8010 +/* F4224 802CF874 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* F4228 802CF878 00431021 */ addu $v0, $v0, $v1 -/* F422C 802CF87C 8C428350 */ lw $v0, -0x7cb0($v0) +/* F422C 802CF87C 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* F4230 802CF880 AE220028 */ sw $v0, 0x28($s1) .L802CF884: /* F4234 802CF884 8E250018 */ lw $a1, 0x18($s1) @@ -225,9 +225,9 @@ glabel BringPartnerOut /* F42C0 802CF910 000310C0 */ sll $v0, $v1, 3 /* F42C4 802CF914 00431021 */ addu $v0, $v0, $v1 /* F42C8 802CF918 00021080 */ sll $v0, $v0, 2 -/* F42CC 802CF91C 3C018010 */ lui $at, 0x8010 +/* F42CC 802CF91C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* F42D0 802CF920 00220821 */ addu $at, $at, $v0 -/* F42D4 802CF924 8C22835C */ lw $v0, -0x7ca4($at) +/* F42D4 802CF924 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* F42D8 802CF928 460C1300 */ add.s $f12, $f2, $f12 /* F42DC 802CF92C E634001C */ swc1 $f20, 0x1c($s1) /* F42E0 802CF930 E624003C */ swc1 $f4, 0x3c($s1) diff --git a/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s b/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s index 30eddb4f3a..48b6a12c49 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s +++ b/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s @@ -108,9 +108,9 @@ glabel PutPartnerAway /* F44D0 802CFB20 00021080 */ sll $v0, $v0, 2 /* F44D4 802CFB24 46040003 */ div.s $f0, $f0, $f4 /* F44D8 802CFB28 E620001C */ swc1 $f0, 0x1c($s1) -/* F44DC 802CFB2C 3C038010 */ lui $v1, 0x8010 +/* F44DC 802CFB2C 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x4) /* F44E0 802CFB30 00621821 */ addu $v1, $v1, $v0 -/* F44E4 802CFB34 8C63834C */ lw $v1, -0x7cb4($v1) +/* F44E4 802CFB34 8C63834C */ lw $v1, %lo(gPartnerAnimations+0x4)($v1) /* F44E8 802CFB38 0000102D */ daddu $v0, $zero, $zero /* F44EC 802CFB3C 080B3F12 */ j .L802CFC48 /* F44F0 802CFB40 AE230028 */ sw $v1, 0x28($s1) @@ -131,9 +131,9 @@ glabel PutPartnerAway /* F4528 802CFB78 000218C0 */ sll $v1, $v0, 3 /* F452C 802CFB7C 00621821 */ addu $v1, $v1, $v0 /* F4530 802CFB80 00031880 */ sll $v1, $v1, 2 -/* F4534 802CFB84 3C028010 */ lui $v0, 0x8010 +/* F4534 802CFB84 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* F4538 802CFB88 00431021 */ addu $v0, $v0, $v1 -/* F453C 802CFB8C 8C428350 */ lw $v0, -0x7cb0($v0) +/* F453C 802CFB8C 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* F4540 802CFB90 AE220028 */ sw $v0, 0x28($s1) .L802CFB94: /* F4544 802CFB94 8E26000C */ lw $a2, 0xc($s1) @@ -170,9 +170,9 @@ glabel PutPartnerAway /* F45BC 802CFC0C 000310C0 */ sll $v0, $v1, 3 /* F45C0 802CFC10 00431021 */ addu $v0, $v0, $v1 /* F45C4 802CFC14 00021080 */ sll $v0, $v0, 2 -/* F45C8 802CFC18 3C018010 */ lui $at, 0x8010 +/* F45C8 802CFC18 3C018010 */ lui $at, %hi(gPartnerAnimations+0xC) /* F45CC 802CFC1C 00220821 */ addu $at, $at, $v0 -/* F45D0 802CFC20 8C228354 */ lw $v0, -0x7cac($at) +/* F45D0 802CFC20 8C228354 */ lw $v0, %lo(gPartnerAnimations+0xC)($at) /* F45D4 802CFC24 E634001C */ swc1 $f20, 0x1c($s1) /* F45D8 802CFC28 E620003C */ swc1 $f0, 0x3c($s1) /* F45DC 802CFC2C 0C00E228 */ jal free_npc_by_index diff --git a/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s b/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s index c10fd87c14..41013a8ad2 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s +++ b/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s @@ -18,9 +18,9 @@ glabel set_npc_animation /* F24F0 802CDB40 00431021 */ addu $v0, $v0, $v1 /* F24F4 802CDB44 00441021 */ addu $v0, $v0, $a0 /* F24F8 802CDB48 00021080 */ sll $v0, $v0, 2 -/* F24FC 802CDB4C 3C018010 */ lui $at, 0x8010 +/* F24FC 802CDB4C 3C018010 */ lui $at, %hi(gPartnerAnimations) /* F2500 802CDB50 00220821 */ addu $at, $at, $v0 -/* F2504 802CDB54 8C228348 */ lw $v0, -0x7cb8($at) +/* F2504 802CDB54 8C228348 */ lw $v0, %lo(gPartnerAnimations)($at) /* F2508 802CDB58 080B36E4 */ j .L802CDB90 /* F250C 802CDB5C AE220028 */ sw $v0, 0x28($s1) .L802CDB60: From 7614b51d701f40db1fa6eb272b54d94ace941565 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 01:12:12 -0500 Subject: [PATCH 06/14] ED510 stuff --- .../code_ED510/PlaySoundAtCollider.s | 47 ------- .../code_ED510/PlaySoundAtModel.s | 51 ------- asm/nonmatchings/code_ED510/RotateModel.s | 79 ----------- asm/nonmatchings/code_ED510/SetTexPanOffset.s | 55 -------- src/code_ED510.c | 127 ++++++++++++++++-- src/code_f2470_len_27f0.c | 2 +- 6 files changed, 118 insertions(+), 243 deletions(-) delete mode 100644 asm/nonmatchings/code_ED510/PlaySoundAtCollider.s delete mode 100644 asm/nonmatchings/code_ED510/PlaySoundAtModel.s delete mode 100644 asm/nonmatchings/code_ED510/RotateModel.s delete mode 100644 asm/nonmatchings/code_ED510/SetTexPanOffset.s diff --git a/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s b/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s deleted file mode 100644 index 9e2baac4ce..0000000000 --- a/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlaySoundAtCollider -/* EEFC4 802CA614 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* EEFC8 802CA618 AFB1002C */ sw $s1, 0x2c($sp) -/* EEFCC 802CA61C 0080882D */ daddu $s1, $a0, $zero -/* EEFD0 802CA620 AFBF0034 */ sw $ra, 0x34($sp) -/* EEFD4 802CA624 AFB20030 */ sw $s2, 0x30($sp) -/* EEFD8 802CA628 AFB00028 */ sw $s0, 0x28($sp) -/* EEFDC 802CA62C 8E30000C */ lw $s0, 0xc($s1) -/* EEFE0 802CA630 8E050000 */ lw $a1, ($s0) -/* EEFE4 802CA634 0C0B1EAF */ jal get_variable -/* EEFE8 802CA638 26100004 */ addiu $s0, $s0, 4 -/* EEFEC 802CA63C 8E050000 */ lw $a1, ($s0) -/* EEFF0 802CA640 26100004 */ addiu $s0, $s0, 4 -/* EEFF4 802CA644 0220202D */ daddu $a0, $s1, $zero -/* EEFF8 802CA648 0C0B1EAF */ jal get_variable -/* EEFFC 802CA64C 0040902D */ daddu $s2, $v0, $zero -/* EF000 802CA650 0220202D */ daddu $a0, $s1, $zero -/* EF004 802CA654 8E050000 */ lw $a1, ($s0) -/* EF008 802CA658 0C0B1EAF */ jal get_variable -/* EF00C 802CA65C 0040802D */ daddu $s0, $v0, $zero -/* EF010 802CA660 0240202D */ daddu $a0, $s2, $zero -/* EF014 802CA664 27A50018 */ addiu $a1, $sp, 0x18 -/* EF018 802CA668 27A6001C */ addiu $a2, $sp, 0x1c -/* EF01C 802CA66C 27A70020 */ addiu $a3, $sp, 0x20 -/* EF020 802CA670 0C016F84 */ jal get_collider_center -/* EF024 802CA674 0040882D */ daddu $s1, $v0, $zero -/* EF028 802CA678 0200202D */ daddu $a0, $s0, $zero -/* EF02C 802CA67C C7A00018 */ lwc1 $f0, 0x18($sp) -/* EF030 802CA680 C7A2001C */ lwc1 $f2, 0x1c($sp) -/* EF034 802CA684 44060000 */ mfc1 $a2, $f0 -/* EF038 802CA688 44071000 */ mfc1 $a3, $f2 -/* EF03C 802CA68C C7A00020 */ lwc1 $f0, 0x20($sp) -/* EF040 802CA690 0220282D */ daddu $a1, $s1, $zero -/* EF044 802CA694 0C052757 */ jal play_sound_at_position -/* EF048 802CA698 E7A00010 */ swc1 $f0, 0x10($sp) -/* EF04C 802CA69C 8FBF0034 */ lw $ra, 0x34($sp) -/* EF050 802CA6A0 8FB20030 */ lw $s2, 0x30($sp) -/* EF054 802CA6A4 8FB1002C */ lw $s1, 0x2c($sp) -/* EF058 802CA6A8 8FB00028 */ lw $s0, 0x28($sp) -/* EF05C 802CA6AC 24020002 */ addiu $v0, $zero, 2 -/* EF060 802CA6B0 03E00008 */ jr $ra -/* EF064 802CA6B4 27BD0038 */ addiu $sp, $sp, 0x38 -/* EF068 802CA6B8 00000000 */ nop -/* EF06C 802CA6BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ED510/PlaySoundAtModel.s b/asm/nonmatchings/code_ED510/PlaySoundAtModel.s deleted file mode 100644 index 62e72a9965..0000000000 --- a/asm/nonmatchings/code_ED510/PlaySoundAtModel.s +++ /dev/null @@ -1,51 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlaySoundAtModel -/* EEF08 802CA558 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* EEF0C 802CA55C AFB1003C */ sw $s1, 0x3c($sp) -/* EEF10 802CA560 0080882D */ daddu $s1, $a0, $zero -/* EEF14 802CA564 AFBF0044 */ sw $ra, 0x44($sp) -/* EEF18 802CA568 AFB20040 */ sw $s2, 0x40($sp) -/* EEF1C 802CA56C AFB00038 */ sw $s0, 0x38($sp) -/* EEF20 802CA570 8E30000C */ lw $s0, 0xc($s1) -/* EEF24 802CA574 8E050000 */ lw $a1, ($s0) -/* EEF28 802CA578 0C0B1EAF */ jal get_variable -/* EEF2C 802CA57C 26100004 */ addiu $s0, $s0, 4 -/* EEF30 802CA580 8E050000 */ lw $a1, ($s0) -/* EEF34 802CA584 26100004 */ addiu $s0, $s0, 4 -/* EEF38 802CA588 0220202D */ daddu $a0, $s1, $zero -/* EEF3C 802CA58C 0C0B1EAF */ jal get_variable -/* EEF40 802CA590 0040902D */ daddu $s2, $v0, $zero -/* EEF44 802CA594 0220202D */ daddu $a0, $s1, $zero -/* EEF48 802CA598 8E050000 */ lw $a1, ($s0) -/* EEF4C 802CA59C 0C0B1EAF */ jal get_variable -/* EEF50 802CA5A0 0040882D */ daddu $s1, $v0, $zero -/* EEF54 802CA5A4 3244FFFF */ andi $a0, $s2, 0xffff -/* EEF58 802CA5A8 27A50020 */ addiu $a1, $sp, 0x20 -/* EEF5C 802CA5AC 27A60024 */ addiu $a2, $sp, 0x24 -/* EEF60 802CA5B0 27A70028 */ addiu $a3, $sp, 0x28 -/* EEF64 802CA5B4 27A3002C */ addiu $v1, $sp, 0x2c -/* EEF68 802CA5B8 AFA30010 */ sw $v1, 0x10($sp) -/* EEF6C 802CA5BC 27A30030 */ addiu $v1, $sp, 0x30 -/* EEF70 802CA5C0 AFA30014 */ sw $v1, 0x14($sp) -/* EEF74 802CA5C4 27A30034 */ addiu $v1, $sp, 0x34 -/* EEF78 802CA5C8 0040802D */ daddu $s0, $v0, $zero -/* EEF7C 802CA5CC 0C046C3B */ jal get_model_center_and_size -/* EEF80 802CA5D0 AFA30018 */ sw $v1, 0x18($sp) -/* EEF84 802CA5D4 0220202D */ daddu $a0, $s1, $zero -/* EEF88 802CA5D8 C7A00020 */ lwc1 $f0, 0x20($sp) -/* EEF8C 802CA5DC C7A20024 */ lwc1 $f2, 0x24($sp) -/* EEF90 802CA5E0 44060000 */ mfc1 $a2, $f0 -/* EEF94 802CA5E4 44071000 */ mfc1 $a3, $f2 -/* EEF98 802CA5E8 C7A00028 */ lwc1 $f0, 0x28($sp) -/* EEF9C 802CA5EC 0200282D */ daddu $a1, $s0, $zero -/* EEFA0 802CA5F0 0C052757 */ jal play_sound_at_position -/* EEFA4 802CA5F4 E7A00010 */ swc1 $f0, 0x10($sp) -/* EEFA8 802CA5F8 8FBF0044 */ lw $ra, 0x44($sp) -/* EEFAC 802CA5FC 8FB20040 */ lw $s2, 0x40($sp) -/* EEFB0 802CA600 8FB1003C */ lw $s1, 0x3c($sp) -/* EEFB4 802CA604 8FB00038 */ lw $s0, 0x38($sp) -/* EEFB8 802CA608 24020002 */ addiu $v0, $zero, 2 -/* EEFBC 802CA60C 03E00008 */ jr $ra -/* EEFC0 802CA610 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/nonmatchings/code_ED510/RotateModel.s b/asm/nonmatchings/code_ED510/RotateModel.s deleted file mode 100644 index 7a18742363..0000000000 --- a/asm/nonmatchings/code_ED510/RotateModel.s +++ /dev/null @@ -1,79 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel RotateModel -/* ED614 802C8C64 27BDFF78 */ addiu $sp, $sp, -0x88 -/* ED618 802C8C68 AFB1005C */ sw $s1, 0x5c($sp) -/* ED61C 802C8C6C 0080882D */ daddu $s1, $a0, $zero -/* ED620 802C8C70 AFBF0064 */ sw $ra, 0x64($sp) -/* ED624 802C8C74 AFB20060 */ sw $s2, 0x60($sp) -/* ED628 802C8C78 AFB00058 */ sw $s0, 0x58($sp) -/* ED62C 802C8C7C F7BA0080 */ sdc1 $f26, 0x80($sp) -/* ED630 802C8C80 F7B80078 */ sdc1 $f24, 0x78($sp) -/* ED634 802C8C84 F7B60070 */ sdc1 $f22, 0x70($sp) -/* ED638 802C8C88 F7B40068 */ sdc1 $f20, 0x68($sp) -/* ED63C 802C8C8C 8E30000C */ lw $s0, 0xc($s1) -/* ED640 802C8C90 8E050000 */ lw $a1, ($s0) -/* ED644 802C8C94 0C0B1EAF */ jal get_variable -/* ED648 802C8C98 26100004 */ addiu $s0, $s0, 4 -/* ED64C 802C8C9C 0C046C04 */ jal get_model_list_index_from_tree_index -/* ED650 802C8CA0 0040202D */ daddu $a0, $v0, $zero -/* ED654 802C8CA4 8E050000 */ lw $a1, ($s0) -/* ED658 802C8CA8 26100004 */ addiu $s0, $s0, 4 -/* ED65C 802C8CAC 0220202D */ daddu $a0, $s1, $zero -/* ED660 802C8CB0 0C0B210B */ jal get_float_variable -/* ED664 802C8CB4 0040902D */ daddu $s2, $v0, $zero -/* ED668 802C8CB8 8E050000 */ lw $a1, ($s0) -/* ED66C 802C8CBC 26100004 */ addiu $s0, $s0, 4 -/* ED670 802C8CC0 0220202D */ daddu $a0, $s1, $zero -/* ED674 802C8CC4 0C0B210B */ jal get_float_variable -/* ED678 802C8CC8 46000686 */ mov.s $f26, $f0 -/* ED67C 802C8CCC 8E050000 */ lw $a1, ($s0) -/* ED680 802C8CD0 26100004 */ addiu $s0, $s0, 4 -/* ED684 802C8CD4 0220202D */ daddu $a0, $s1, $zero -/* ED688 802C8CD8 0C0B210B */ jal get_float_variable -/* ED68C 802C8CDC 46000606 */ mov.s $f24, $f0 -/* ED690 802C8CE0 0220202D */ daddu $a0, $s1, $zero -/* ED694 802C8CE4 8E050000 */ lw $a1, ($s0) -/* ED698 802C8CE8 0C0B210B */ jal get_float_variable -/* ED69C 802C8CEC 46000506 */ mov.s $f20, $f0 -/* ED6A0 802C8CF0 0240202D */ daddu $a0, $s2, $zero -/* ED6A4 802C8CF4 0C046B4C */ jal get_model_from_list_index -/* ED6A8 802C8CF8 46000586 */ mov.s $f22, $f0 -/* ED6AC 802C8CFC 0040802D */ daddu $s0, $v0, $zero -/* ED6B0 802C8D00 96020000 */ lhu $v0, ($s0) -/* ED6B4 802C8D04 30420400 */ andi $v0, $v0, 0x400 -/* ED6B8 802C8D08 1440000B */ bnez $v0, .L802C8D38 -/* ED6BC 802C8D0C 27A40018 */ addiu $a0, $sp, 0x18 -/* ED6C0 802C8D10 4405D000 */ mfc1 $a1, $f26 -/* ED6C4 802C8D14 4406C000 */ mfc1 $a2, $f24 -/* ED6C8 802C8D18 4407A000 */ mfc1 $a3, $f20 -/* ED6CC 802C8D1C 26040058 */ addiu $a0, $s0, 0x58 -/* ED6D0 802C8D20 0C019EC8 */ jal guRotateF -/* ED6D4 802C8D24 E7B60010 */ swc1 $f22, 0x10($sp) -/* ED6D8 802C8D28 96020000 */ lhu $v0, ($s0) -/* ED6DC 802C8D2C 34421400 */ ori $v0, $v0, 0x1400 -/* ED6E0 802C8D30 080B2357 */ j .L802C8D5C -/* ED6E4 802C8D34 A6020000 */ sh $v0, ($s0) -.L802C8D38: -/* ED6E8 802C8D38 4405D000 */ mfc1 $a1, $f26 -/* ED6EC 802C8D3C 4406C000 */ mfc1 $a2, $f24 -/* ED6F0 802C8D40 4407A000 */ mfc1 $a3, $f20 -/* ED6F4 802C8D44 0C019EC8 */ jal guRotateF -/* ED6F8 802C8D48 E7B60010 */ swc1 $f22, 0x10($sp) -/* ED6FC 802C8D4C 27A40018 */ addiu $a0, $sp, 0x18 -/* ED700 802C8D50 26050058 */ addiu $a1, $s0, 0x58 -/* ED704 802C8D54 0C019D80 */ jal guMtxCatF -/* ED708 802C8D58 00A0302D */ daddu $a2, $a1, $zero -.L802C8D5C: -/* ED70C 802C8D5C 8FBF0064 */ lw $ra, 0x64($sp) -/* ED710 802C8D60 8FB20060 */ lw $s2, 0x60($sp) -/* ED714 802C8D64 8FB1005C */ lw $s1, 0x5c($sp) -/* ED718 802C8D68 8FB00058 */ lw $s0, 0x58($sp) -/* ED71C 802C8D6C D7BA0080 */ ldc1 $f26, 0x80($sp) -/* ED720 802C8D70 D7B80078 */ ldc1 $f24, 0x78($sp) -/* ED724 802C8D74 D7B60070 */ ldc1 $f22, 0x70($sp) -/* ED728 802C8D78 D7B40068 */ ldc1 $f20, 0x68($sp) -/* ED72C 802C8D7C 24020002 */ addiu $v0, $zero, 2 -/* ED730 802C8D80 03E00008 */ jr $ra -/* ED734 802C8D84 27BD0088 */ addiu $sp, $sp, 0x88 diff --git a/asm/nonmatchings/code_ED510/SetTexPanOffset.s b/asm/nonmatchings/code_ED510/SetTexPanOffset.s deleted file mode 100644 index 415fda012c..0000000000 --- a/asm/nonmatchings/code_ED510/SetTexPanOffset.s +++ /dev/null @@ -1,55 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetTexPanOffset -/* EDD14 802C9364 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* EDD18 802C9368 AFB10014 */ sw $s1, 0x14($sp) -/* EDD1C 802C936C 0080882D */ daddu $s1, $a0, $zero -/* EDD20 802C9370 AFBF0020 */ sw $ra, 0x20($sp) -/* EDD24 802C9374 AFB3001C */ sw $s3, 0x1c($sp) -/* EDD28 802C9378 AFB20018 */ sw $s2, 0x18($sp) -/* EDD2C 802C937C AFB00010 */ sw $s0, 0x10($sp) -/* EDD30 802C9380 8E30000C */ lw $s0, 0xc($s1) -/* EDD34 802C9384 8E050000 */ lw $a1, ($s0) -/* EDD38 802C9388 0C0B1EAF */ jal get_variable -/* EDD3C 802C938C 26100004 */ addiu $s0, $s0, 4 -/* EDD40 802C9390 8E050000 */ lw $a1, ($s0) -/* EDD44 802C9394 26100004 */ addiu $s0, $s0, 4 -/* EDD48 802C9398 0220202D */ daddu $a0, $s1, $zero -/* EDD4C 802C939C 0C0B1EAF */ jal get_variable -/* EDD50 802C93A0 0040982D */ daddu $s3, $v0, $zero -/* EDD54 802C93A4 8E050000 */ lw $a1, ($s0) -/* EDD58 802C93A8 26100004 */ addiu $s0, $s0, 4 -/* EDD5C 802C93AC 0220202D */ daddu $a0, $s1, $zero -/* EDD60 802C93B0 0C0B1EAF */ jal get_variable -/* EDD64 802C93B4 0040902D */ daddu $s2, $v0, $zero -/* EDD68 802C93B8 0220202D */ daddu $a0, $s1, $zero -/* EDD6C 802C93BC 8E050000 */ lw $a1, ($s0) -/* EDD70 802C93C0 0C0B1EAF */ jal get_variable -/* EDD74 802C93C4 0040802D */ daddu $s0, $v0, $zero -/* EDD78 802C93C8 16400009 */ bnez $s2, .L802C93F0 -/* EDD7C 802C93CC 0040882D */ daddu $s1, $v0, $zero -/* EDD80 802C93D0 0260202D */ daddu $a0, $s3, $zero -/* EDD84 802C93D4 0C046F07 */ jal set_main_pan_u -/* EDD88 802C93D8 0200282D */ daddu $a1, $s0, $zero -/* EDD8C 802C93DC 0260202D */ daddu $a0, $s3, $zero -/* EDD90 802C93E0 0C046F0D */ jal set_main_pan_v -/* EDD94 802C93E4 0220282D */ daddu $a1, $s1, $zero -/* EDD98 802C93E8 080B2502 */ j .L802C9408 -/* EDD9C 802C93EC 00000000 */ nop -.L802C93F0: -/* EDDA0 802C93F0 0260202D */ daddu $a0, $s3, $zero -/* EDDA4 802C93F4 0C046F13 */ jal set_aux_pan_u -/* EDDA8 802C93F8 0200282D */ daddu $a1, $s0, $zero -/* EDDAC 802C93FC 0260202D */ daddu $a0, $s3, $zero -/* EDDB0 802C9400 0C046F19 */ jal set_aux_pan_v -/* EDDB4 802C9404 0220282D */ daddu $a1, $s1, $zero -.L802C9408: -/* EDDB8 802C9408 8FBF0020 */ lw $ra, 0x20($sp) -/* EDDBC 802C940C 8FB3001C */ lw $s3, 0x1c($sp) -/* EDDC0 802C9410 8FB20018 */ lw $s2, 0x18($sp) -/* EDDC4 802C9414 8FB10014 */ lw $s1, 0x14($sp) -/* EDDC8 802C9418 8FB00010 */ lw $s0, 0x10($sp) -/* EDDCC 802C941C 24020002 */ addiu $v0, $zero, 2 -/* EDDD0 802C9420 03E00008 */ jr $ra -/* EDDD4 802C9424 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/code_ED510.c b/src/code_ED510.c index b5e6188435..5e01933cf2 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -1,10 +1,81 @@ #include "common.h" +// Works to set model->flags & 0x400 to modelListIndex, but that seems wrong and misleading (fake match) +#ifdef NON_MATCHING +ApiStatus TranslateModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + + if ((model->flags & 0x400) == 0) { + guTranslateF(&model->transformMatrix, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guTranslateF(&mtx, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "code_ED510", TranslateModel, ScriptInstance* script, s32 isInitialCall); +#endif -INCLUDE_ASM(s32, "code_ED510", RotateModel, ScriptInstance* script, s32 isInitialCall); +ApiStatus RotateModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 a = get_float_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + if ((model->flags & 0x400) == 0) { + guRotateF(&model->transformMatrix, a, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guRotateF(&mtx, a, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} + +// Same as TranslateModel above +#ifdef NON_MATCHING +ApiStatus ScaleModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + + if ((model->flags & 0x400) == 0) { + guScaleF(&model->transformMatrix, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guScaleF(&mtx, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "code_ED510", ScaleModel, ScriptInstance* script, s32 isInitialCall); +#endif ApiStatus GetModelIndex(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; @@ -139,7 +210,23 @@ ApiStatus SetGroupEnabled(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ED510", SetTexPanOffset, ScriptInstance* script, s32 isInitialCall); +ApiStatus SetTexPanOffset(ScriptInstance* script, s32 isInitialCall) { + Bytecode* thisPos = script->ptrReadPos; + Bytecode var1 = get_variable(script, *thisPos++); + Bytecode var2 = get_variable(script, *thisPos++); + Bytecode var3 = get_variable(script, *thisPos++); + Bytecode var4 = get_variable(script, *thisPos++); + + if (var2 == 0) { + set_main_pan_u(var1, var3); + set_main_pan_v(var1, var4); + } else { + set_aux_pan_u(var1, var3); + set_aux_pan_v(var1, var4); + } + + return ApiStatus_DONE2; +} ApiStatus func_802C9428(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; @@ -167,13 +254,10 @@ ApiStatus SetModelFlags(ScriptInstance* script, s32 isInitialCall) { s32 treeIndex = get_variable(script, *args++); s32 listIndex = get_model_list_index_from_tree_index(treeIndex); s32 a1 = *args++; - s32 var2; - Model* model; + s32 var2 = get_variable(script, *args++); + Model* model = get_model_from_list_index(listIndex); - var2 = get_variable(script, *args); - model = get_model_from_list_index(listIndex); - - if (var2 != 0) { + if (var2) { model->flags |= a1; } else { model->flags &= ~a1; @@ -315,6 +399,29 @@ ApiStatus SetRenderMode(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ED510", PlaySoundAtModel, ScriptInstance* script, s32 isInitialCall); +ApiStatus PlaySoundAtModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 modelID = get_variable(script, *args++); + SoundId soundID = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + f32 x, y, z; + f32 n1, n2, n3; -INCLUDE_ASM(s32, "code_ED510", PlaySoundAtCollider, ScriptInstance* script, s32 isInitialCall); + get_model_center_and_size((u16)modelID, &x, &y, &z, &n1, &n2, &n3); + play_sound_at_position(soundID, var3, x, y, z); + + return ApiStatus_DONE2; +} + +ApiStatus PlaySoundAtCollider(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 colliderID = get_variable(script, *args++); + SoundId soundID = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + f32 x, y, z; + + get_collider_center(colliderID, &x, &y, &z); + play_sound_at_position(soundID, var3, x, y, z); + + return ApiStatus_DONE2; +} diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index e723a572a6..a28aa4ce57 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -10,7 +10,7 @@ Npc* resolve_npc(ScriptInstance* script, NpcId npcIdOrPtr) { } } -INCLUDE_ASM(s32, "code_f2470_len_27f0", set_npc_animation); +INCLUDE_ASM(void, "code_f2470_len_27f0", set_npc_animation, Npc* npc, u32 arg1); INCLUDE_ASM(s32, "code_f2470_len_27f0", CreateNpc); From 680cead360d84a2c9b93941500769e11a736ad7c Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 13:39:23 -0500 Subject: [PATCH 07/14] gAnimatedMeshesPtr --- .../AddAnimModelPosition.s | 4 +- .../ChangeModelAnimation.s | 4 +- .../GetAnimModelPosition.s | 4 +- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +- .../code_ef070_len_3400/PlayModelAnimation.s | 4 +- .../SetAnimModelPosition.s | 4 +- .../SetAnimModelRotation.s | 4 +- .../code_ef070_len_3400/SetAnimModelScale.s | 4 +- .../code_ef070_len_3400/draw_anim_models.s | 4 +- .../code_ef070_len_3400/func_802CA988.s | 105 ------------------ .../code_ef070_len_3400/func_802CCAC0.s | 4 +- .../code_ef070_len_3400/func_802CCCB0.s | 4 +- .../code_ef070_len_3400/func_802CCDAC.s | 4 +- .../code_ef070_len_3400/func_802CCEDC.s | 4 +- .../code_ef070_len_3400/func_802CD348.s | 4 +- .../code_ef070_len_3400/func_802CD3C0.s | 4 +- .../code_ef070_len_3400/func_802CD418.s | 4 +- .../code_ef070_len_3400/func_802CD4B4.s | 12 +- .../code_ef070_len_3400/func_802CD57C.s | 8 +- .../code_ef070_len_3400/func_802CD5C0.s | 4 +- .../code_ef070_len_3400/func_802CD6E0.s | 4 +- .../code_ef070_len_3400/func_802CD7D8.s | 4 +- .../code_ef070_len_3400/func_802CD8F8.s | 4 +- .../code_ef070_len_3400/func_802CD9F0.s | 4 +- include/variables.h | 1 + src/code_ED510.c | 4 +- src/code_ef070_len_3400.c | 17 ++- tools/symbol_addrs.txt | 1 + undefined_syms.txt | 1 + 29 files changed, 63 insertions(+), 170 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CA988.s diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index b3b3c73154..0ac33d097c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, 0x802e -/* F1B48 802CD198 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s index 0f3cc62d3c..506cfc35ec 100644 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s @@ -15,8 +15,8 @@ glabel ChangeModelAnimation /* F1944 802CCF94 8E050000 */ lw $a1, ($s0) /* F1948 802CCF98 0C0B1EAF */ jal get_variable /* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, 0x802e -/* F1954 802CCFA4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 /* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 /* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s index 8bce268b25..ca442837e9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s @@ -15,8 +15,8 @@ glabel GetAnimModelPosition /* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 /* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) /* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, 0x802e -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 /* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 /* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index 5b04945c29..8dfce044bb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, 0x802e -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s index 43da86fe35..689c4fce49 100644 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s @@ -15,8 +15,8 @@ glabel PlayModelAnimation /* F1844 802CCE94 8E050000 */ lw $a1, ($s0) /* F1848 802CCE98 0C0B1EAF */ jal get_variable /* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, 0x802e -/* F1854 802CCEA4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 /* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 /* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s index 555a2456d2..f4c9789ee1 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s @@ -28,8 +28,8 @@ glabel SetAnimModelPosition /* F19F0 802CD040 8E050000 */ lw $a1, ($s0) /* F19F4 802CD044 0C0B210B */ jal get_float_variable /* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, 0x802e -/* F1A00 802CD050 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 /* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 /* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s index 18827ada1e..515d4a83a5 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s @@ -28,8 +28,8 @@ glabel SetAnimModelRotation /* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) /* F1C00 802CD250 0C0B210B */ jal get_float_variable /* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, 0x802e -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 /* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 /* F1C18 802CD268 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s index b0d82161d0..d344d5709f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s @@ -28,8 +28,8 @@ glabel SetAnimModelScale /* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) /* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable /* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, 0x802e -/* F1CB8 802CD308 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 /* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 /* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index ffdc2de8a0..bfe5be11ce 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, 0x802e -/* F1530 802CCB80 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s b/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s deleted file mode 100644 index 359ea0efd3..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s +++ /dev/null @@ -1,105 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CA988 -/* EF338 802CA988 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* EF33C 802CA98C AFB20018 */ sw $s2, 0x18($sp) -/* EF340 802CA990 0080902D */ daddu $s2, $a0, $zero -/* EF344 802CA994 AFBF0028 */ sw $ra, 0x28($sp) -/* EF348 802CA998 AFB50024 */ sw $s5, 0x24($sp) -/* EF34C 802CA99C AFB40020 */ sw $s4, 0x20($sp) -/* EF350 802CA9A0 AFB3001C */ sw $s3, 0x1c($sp) -/* EF354 802CA9A4 AFB10014 */ sw $s1, 0x14($sp) -/* EF358 802CA9A8 AFB00010 */ sw $s0, 0x10($sp) -/* EF35C 802CA9AC 8E50000C */ lw $s0, 0xc($s2) -/* EF360 802CA9B0 8E050000 */ lw $a1, ($s0) -/* EF364 802CA9B4 0C0B1EAF */ jal get_variable -/* EF368 802CA9B8 26100004 */ addiu $s0, $s0, 4 -/* EF36C 802CA9BC 8E140000 */ lw $s4, ($s0) -/* EF370 802CA9C0 26100004 */ addiu $s0, $s0, 4 -/* EF374 802CA9C4 8E150000 */ lw $s5, ($s0) -/* EF378 802CA9C8 26100004 */ addiu $s0, $s0, 4 -/* EF37C 802CA9CC 3C04800B */ lui $a0, %hi(gCameras) -/* EF380 802CA9D0 24841D80 */ addiu $a0, $a0, %lo(gCameras) -/* EF384 802CA9D4 00021880 */ sll $v1, $v0, 2 -/* EF388 802CA9D8 00621821 */ addu $v1, $v1, $v0 -/* EF38C 802CA9DC 00031880 */ sll $v1, $v1, 2 -/* EF390 802CA9E0 00621823 */ subu $v1, $v1, $v0 -/* EF394 802CA9E4 000310C0 */ sll $v0, $v1, 3 -/* EF398 802CA9E8 00621821 */ addu $v1, $v1, $v0 -/* EF39C 802CA9EC 000318C0 */ sll $v1, $v1, 3 -/* EF3A0 802CA9F0 00648821 */ addu $s1, $v1, $a0 -/* EF3A4 802CA9F4 C62C0094 */ lwc1 $f12, 0x94($s1) -/* EF3A8 802CA9F8 8E130000 */ lw $s3, ($s0) -/* EF3AC 802CA9FC 8E100004 */ lw $s0, 4($s0) -/* EF3B0 802CAA00 24020002 */ addiu $v0, $zero, 2 -/* EF3B4 802CAA04 A6220004 */ sh $v0, 4($s1) -/* EF3B8 802CAA08 0C00A6B1 */ jal round -/* EF3BC 802CAA0C A6200006 */ sh $zero, 6($s1) -/* EF3C0 802CAA10 C6220048 */ lwc1 $f2, 0x48($s1) -/* EF3C4 802CAA14 C620003C */ lwc1 $f0, 0x3c($s1) -/* EF3C8 802CAA18 46001081 */ sub.s $f2, $f2, $f0 -/* EF3CC 802CAA1C 46021082 */ mul.s $f2, $f2, $f2 -/* EF3D0 802CAA20 00000000 */ nop -/* EF3D4 802CAA24 C624004C */ lwc1 $f4, 0x4c($s1) -/* EF3D8 802CAA28 C6200040 */ lwc1 $f0, 0x40($s1) -/* EF3DC 802CAA2C 46002101 */ sub.s $f4, $f4, $f0 -/* EF3E0 802CAA30 46042102 */ mul.s $f4, $f4, $f4 -/* EF3E4 802CAA34 00000000 */ nop -/* EF3E8 802CAA38 C6260050 */ lwc1 $f6, 0x50($s1) -/* EF3EC 802CAA3C C6200044 */ lwc1 $f0, 0x44($s1) -/* EF3F0 802CAA40 46003181 */ sub.s $f6, $f6, $f0 -/* EF3F4 802CAA44 46063182 */ mul.s $f6, $f6, $f6 -/* EF3F8 802CAA48 00000000 */ nop -/* EF3FC 802CAA4C C6200090 */ lwc1 $f0, 0x90($s1) -/* EF400 802CAA50 46041080 */ add.s $f2, $f2, $f4 -/* EF404 802CAA54 00021023 */ negu $v0, $v0 -/* EF408 802CAA58 A622001C */ sh $v0, 0x1c($s1) -/* EF40C 802CAA5C 46000007 */ neg.s $f0, $f0 -/* EF410 802CAA60 46061300 */ add.s $f12, $f2, $f6 -/* EF414 802CAA64 4600020D */ trunc.w.s $f8, $f0 -/* EF418 802CAA68 44024000 */ mfc1 $v0, $f8 -/* EF41C 802CAA6C 46006004 */ sqrt.s $f0, $f12 -/* EF420 802CAA70 46000032 */ c.eq.s $f0, $f0 -/* EF424 802CAA74 00000000 */ nop -/* EF428 802CAA78 45010003 */ bc1t .L802CAA88 -/* EF42C 802CAA7C A622001E */ sh $v0, 0x1e($s1) -/* EF430 802CAA80 0C0187BC */ jal sqrtf -/* EF434 802CAA84 00000000 */ nop -.L802CAA88: -/* EF438 802CAA88 0C00A6B1 */ jal round -/* EF43C 802CAA8C 46000306 */ mov.s $f12, $f0 -/* EF440 802CAA90 0240202D */ daddu $a0, $s2, $zero -/* EF444 802CAA94 8626001C */ lh $a2, 0x1c($s1) -/* EF448 802CAA98 C6200048 */ lwc1 $f0, 0x48($s1) -/* EF44C 802CAA9C C622004C */ lwc1 $f2, 0x4c($s1) -/* EF450 802CAAA0 C6240050 */ lwc1 $f4, 0x50($s1) -/* EF454 802CAAA4 0280282D */ daddu $a1, $s4, $zero -/* EF458 802CAAA8 A6220020 */ sh $v0, 0x20($s1) -/* EF45C 802CAAAC A6200022 */ sh $zero, 0x22($s1) -/* EF460 802CAAB0 E6200054 */ swc1 $f0, 0x54($s1) -/* EF464 802CAAB4 E6220058 */ swc1 $f2, 0x58($s1) -/* EF468 802CAAB8 0C0B2026 */ jal set_variable -/* EF46C 802CAABC E624005C */ swc1 $f4, 0x5c($s1) -/* EF470 802CAAC0 0240202D */ daddu $a0, $s2, $zero -/* EF474 802CAAC4 8626001E */ lh $a2, 0x1e($s1) -/* EF478 802CAAC8 0C0B2026 */ jal set_variable -/* EF47C 802CAACC 02A0282D */ daddu $a1, $s5, $zero -/* EF480 802CAAD0 0240202D */ daddu $a0, $s2, $zero -/* EF484 802CAAD4 86260020 */ lh $a2, 0x20($s1) -/* EF488 802CAAD8 0C0B2026 */ jal set_variable -/* EF48C 802CAADC 0260282D */ daddu $a1, $s3, $zero -/* EF490 802CAAE0 0240202D */ daddu $a0, $s2, $zero -/* EF494 802CAAE4 86260022 */ lh $a2, 0x22($s1) -/* EF498 802CAAE8 0C0B2026 */ jal set_variable -/* EF49C 802CAAEC 0200282D */ daddu $a1, $s0, $zero -/* EF4A0 802CAAF0 8FBF0028 */ lw $ra, 0x28($sp) -/* EF4A4 802CAAF4 8FB50024 */ lw $s5, 0x24($sp) -/* EF4A8 802CAAF8 8FB40020 */ lw $s4, 0x20($sp) -/* EF4AC 802CAAFC 8FB3001C */ lw $s3, 0x1c($sp) -/* EF4B0 802CAB00 8FB20018 */ lw $s2, 0x18($sp) -/* EF4B4 802CAB04 8FB10014 */ lw $s1, 0x14($sp) -/* EF4B8 802CAB08 8FB00010 */ lw $s0, 0x10($sp) -/* EF4BC 802CAB0C 24020002 */ addiu $v0, $zero, 2 -/* EF4C0 802CAB10 03E00008 */ jr $ra -/* EF4C4 802CAB14 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s index d1db5a17bb..415a1da8fb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s @@ -7,8 +7,8 @@ glabel func_802CCAC0 /* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero /* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) .L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, 0x802e -/* F1484 802CCAD4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 /* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 /* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s index f00a0d1c95..843e352f97 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s @@ -15,7 +15,7 @@ glabel func_802CCCB0 /* F1684 802CCCD4 3C02802E */ lui $v0, 0x802e /* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, -0x5250 .L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, 0x802e -/* F1690 802CCCE0 AC22AE30 */ sw $v0, -0x51d0($at) +/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1694 802CCCE4 03E00008 */ jr $ra /* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index a9adf9aae4..190f75001e 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, 0x802e -/* F179C 802CCDEC 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s index 97776038fc..3ad5040621 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s @@ -21,8 +21,8 @@ glabel func_802CCEDC /* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) /* F18D0 802CCF20 0C0B1EAF */ jal get_variable /* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, 0x802e -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 /* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 /* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index d1933ca720..5de604dcfb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, 0x802e -/* F1D30 802CD380 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s index b7ccfc4097..99c9f226a4 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s @@ -8,8 +8,8 @@ glabel func_802CD3C0 /* F1D7C 802CD3CC 8C82000C */ lw $v0, 0xc($a0) /* F1D80 802CD3D0 0C0B1EAF */ jal get_variable /* F1D84 802CD3D4 8C450000 */ lw $a1, ($v0) -/* F1D88 802CD3D8 3C03802E */ lui $v1, 0x802e -/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1D88 802CD3D8 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1D90 802CD3E0 00021080 */ sll $v0, $v0, 2 /* F1D94 802CD3E4 00431021 */ addu $v0, $v0, $v1 /* F1D98 802CD3E8 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 98299832db..6b7ec0c39a 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, 0x802e -/* F1E08 802CD458 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index c06a97357c..17fac9a61d 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -20,16 +20,16 @@ glabel func_802CD4B4 /* F1E9C 802CD4EC 3C02802E */ lui $v0, 0x802e /* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, -0x5250 .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, 0x802e -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, -0x51d0($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, 0x802e -/* F1EC4 802CD514 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, 0x802e -/* F1EE0 802CD530 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s index cdfdf8596f..f7a235528e 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s @@ -9,14 +9,14 @@ glabel func_802CD57C /* F1F3C 802CD58C 00000000 */ nop /* F1F40 802CD590 3C02802E */ lui $v0, 0x802e /* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, -0x5210 -/* F1F48 802CD598 3C01802E */ lui $at, 0x802e -/* F1F4C 802CD59C AC22AE30 */ sw $v0, -0x51d0($at) +/* F1F48 802CD598 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1F50 802CD5A0 03E00008 */ jr $ra /* F1F54 802CD5A4 00000000 */ nop .L802CD5A8: /* F1F58 802CD5A8 3C02802E */ lui $v0, 0x802e /* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, -0x5250 -/* F1F60 802CD5B0 3C01802E */ lui $at, 0x802e -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, -0x51d0($at) +/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1F68 802CD5B8 03E00008 */ jr $ra /* F1F6C 802CD5BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 72d6462d46..85b1d66239 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, 0x802e -/* F1FC8 802CD618 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index f4abed9e66..6f0d7dca0f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, 0x802e -/* F20E8 802CD738 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 740e3a17aa..631537bc1c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, 0x802e -/* F21E0 802CD830 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index d0293261a4..575f1f4f91 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, 0x802e -/* F2300 802CD950 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index 29f3168982..a1dd7b41ef 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, 0x802e -/* F23F8 802CDA48 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/variables.h b/include/variables.h index 99f0f47f87..e18c758128 100644 --- a/include/variables.h +++ b/include/variables.h @@ -88,6 +88,7 @@ extern PrintContext* D_802DB268; // Animation related extern PartnerAnimations gPartnerAnimations[12]; +extern AnimatedModel** gAnimatedMeshesPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ED510.c b/src/code_ED510.c index 5e01933cf2..2d5371141c 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -325,9 +325,7 @@ INCLUDE_ASM(s32, "code_ED510", ResetFromLava, ScriptInstance* script, s32 isInit INCLUDE_ASM(s32, "code_ED510", func_802C9FD4); ApiStatus GetColliderCenter(ScriptInstance* script, s32 initialCall) { - f32 x; - f32 y; - f32 z; + f32 x, y, z; get_collider_center(get_variable(script, *script->ptrReadPos), &x, &y, &z); diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index c145c181f3..9f892bd319 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -57,15 +57,13 @@ ApiStatus func_802CA90C(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CA988, ScriptInstance* script, s32 isInitialCall); -/* ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { - Bytecode* ptrReadPos = script->ptrReadPos; - Bytecode id = get_variable(script, *ptrReadPos++); - Bytecode outVar1 = *ptrReadPos++; - Bytecode outVar2 = *ptrReadPos++; - Bytecode outVar3 = *ptrReadPos++; - Bytecode outVar4 = *ptrReadPos++; + Bytecode* args = script->ptrReadPos; + Bytecode id = get_variable(script, *args++); + Bytecode outVar1 = *args++; + Bytecode outVar2 = *args++; + Bytecode outVar3 = *args++; + Bytecode outVar4 = *args++; f32 temp1, temp2, temp3; CAM(id)->mode = 2; @@ -77,7 +75,7 @@ ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { temp2 = CAM(id)->lookAt_obj.y - CAM(id)->lookAt_eye[1]; temp3 = CAM(id)->lookAt_obj.z - CAM(id)->lookAt_eye[2]; - CAM(id)->unk_20 = round(sqrtf((temp1 * temp1) + (temp2 * temp2) + (temp3 * temp3))); + CAM(id)->unk_20 = round(sqrtf(SQ(temp1) + SQ(temp2) + SQ(temp3))); CAM(id)->unk_22 = 0; CAM(id)->unk_54 = CAM(id)->lookAt_obj.x; CAM(id)->unk_58 = CAM(id)->lookAt_obj.y; @@ -89,7 +87,6 @@ ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { set_variable(script, outVar4, CAM(id)->unk_22); return ApiStatus_DONE2; } -*/ ApiStatus SetCamViewport(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 8f95a5a907..d8d888cc08 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1891,6 +1891,7 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; +gAnimatedMeshesPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index 05a40653d2..eb8954ce0c 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -229,6 +229,7 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; +gAnimatedMeshesPtr = 0x802DAE30; gEffectTable = 0x8007F214; From 9b26bd68ad1c79badce3acaf47fff2016c52fd2f Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 14:02:08 -0500 Subject: [PATCH 08/14] more syms --- .../AddAnimModelPosition.s | 4 +-- .../ChangeModelAnimation.s | 4 +-- .../GetAnimModelPosition.s | 4 +-- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +-- .../code_ef070_len_3400/PlayModelAnimation.s | 4 +-- .../SetAnimModelPosition.s | 4 +-- .../SetAnimModelRotation.s | 4 +-- .../code_ef070_len_3400/SetAnimModelScale.s | 4 +-- .../code_ef070_len_3400/draw_anim_models.s | 4 +-- .../code_ef070_len_3400/func_802CCAC0.s | 4 +-- .../code_ef070_len_3400/func_802CCCB0.s | 12 ++++----- .../code_ef070_len_3400/func_802CCDAC.s | 4 +-- .../code_ef070_len_3400/func_802CCEDC.s | 4 +-- .../code_ef070_len_3400/func_802CD348.s | 4 +-- .../code_ef070_len_3400/func_802CD3C0.s | 26 ------------------- .../code_ef070_len_3400/func_802CD418.s | 4 +-- .../code_ef070_len_3400/func_802CD4B4.s | 20 +++++++------- .../code_ef070_len_3400/func_802CD57C.s | 16 ++++++------ .../code_ef070_len_3400/func_802CD5C0.s | 4 +-- .../code_ef070_len_3400/func_802CD6E0.s | 4 +-- .../code_ef070_len_3400/func_802CD7D8.s | 4 +-- .../code_ef070_len_3400/func_802CD8F8.s | 4 +-- .../code_ef070_len_3400/func_802CD9F0.s | 4 +-- include/variables.h | 4 ++- src/code_ef070_len_3400.c | 8 +++++- tools/symbol_addrs.txt | 4 ++- undefined_syms.txt | 5 +++- 27 files changed, 79 insertions(+), 92 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index 0ac33d097c..e15b9635a8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s index 506cfc35ec..95501cdc38 100644 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s @@ -15,8 +15,8 @@ glabel ChangeModelAnimation /* F1944 802CCF94 8E050000 */ lw $a1, ($s0) /* F1948 802CCF98 0C0B1EAF */ jal get_variable /* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 /* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 /* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s index ca442837e9..0e0531b8cb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s @@ -15,8 +15,8 @@ glabel GetAnimModelPosition /* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 /* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) /* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 /* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 /* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index 8dfce044bb..e90ceb5086 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s index 689c4fce49..97ef37dc7d 100644 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s @@ -15,8 +15,8 @@ glabel PlayModelAnimation /* F1844 802CCE94 8E050000 */ lw $a1, ($s0) /* F1848 802CCE98 0C0B1EAF */ jal get_variable /* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 /* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 /* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s index f4c9789ee1..97a00c7918 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s @@ -28,8 +28,8 @@ glabel SetAnimModelPosition /* F19F0 802CD040 8E050000 */ lw $a1, ($s0) /* F19F4 802CD044 0C0B210B */ jal get_float_variable /* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 /* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 /* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s index 515d4a83a5..30fe94eae5 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s @@ -28,8 +28,8 @@ glabel SetAnimModelRotation /* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) /* F1C00 802CD250 0C0B210B */ jal get_float_variable /* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 /* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 /* F1C18 802CD268 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s index d344d5709f..4284ac469a 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s @@ -28,8 +28,8 @@ glabel SetAnimModelScale /* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) /* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable /* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 /* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 /* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index bfe5be11ce..6fbf7df9e1 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s index 415a1da8fb..01562b94be 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s @@ -7,8 +7,8 @@ glabel func_802CCAC0 /* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero /* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) .L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 /* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 /* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s index 843e352f97..fc4a3981d0 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s @@ -7,15 +7,15 @@ glabel func_802CCCB0 /* F1668 802CCCB8 80420070 */ lb $v0, 0x70($v0) /* F166C 802CCCBC 14400005 */ bnez $v0, .L802CCCD4 /* F1670 802CCCC0 00000000 */ nop -/* F1674 802CCCC4 3C02802E */ lui $v0, 0x802e -/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, -0x5210 +/* F1674 802CCCC4 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) /* F167C 802CCCCC 080B3337 */ j .L802CCCDC /* F1680 802CCCD0 00000000 */ nop .L802CCCD4: -/* F1684 802CCCD4 3C02802E */ lui $v0, 0x802e -/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, -0x5250 +/* F1684 802CCCD4 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) .L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1694 802CCCE4 03E00008 */ jr $ra /* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index 190f75001e..92ccddbbba 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s index 3ad5040621..cd06f9f31f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s @@ -21,8 +21,8 @@ glabel func_802CCEDC /* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) /* F18D0 802CCF20 0C0B1EAF */ jal get_variable /* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 /* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 /* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index 5de604dcfb..ebb2f3d1cc 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s deleted file mode 100644 index 99c9f226a4..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD3C0 -/* F1D70 802CD3C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* F1D74 802CD3C4 AFBF0014 */ sw $ra, 0x14($sp) -/* F1D78 802CD3C8 AFB00010 */ sw $s0, 0x10($sp) -/* F1D7C 802CD3CC 8C82000C */ lw $v0, 0xc($a0) -/* F1D80 802CD3D0 0C0B1EAF */ jal get_variable -/* F1D84 802CD3D4 8C450000 */ lw $a1, ($v0) -/* F1D88 802CD3D8 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) -/* F1D90 802CD3E0 00021080 */ sll $v0, $v0, 2 -/* F1D94 802CD3E4 00431021 */ addu $v0, $v0, $v1 -/* F1D98 802CD3E8 8C500000 */ lw $s0, ($v0) -/* F1D9C 802CD3EC 0C047FF8 */ jal func_8011FFE0 -/* F1DA0 802CD3F0 8E040000 */ lw $a0, ($s0) -/* F1DA4 802CD3F4 0C04790E */ jal func_8011E438 -/* F1DA8 802CD3F8 0040202D */ daddu $a0, $v0, $zero -/* F1DAC 802CD3FC 2403FFFF */ addiu $v1, $zero, -1 -/* F1DB0 802CD400 AE030000 */ sw $v1, ($s0) -/* F1DB4 802CD404 8FBF0014 */ lw $ra, 0x14($sp) -/* F1DB8 802CD408 8FB00010 */ lw $s0, 0x10($sp) -/* F1DBC 802CD40C 24020002 */ addiu $v0, $zero, 2 -/* F1DC0 802CD410 03E00008 */ jr $ra -/* F1DC4 802CD414 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 6b7ec0c39a..56eaf7f3f8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index 17fac9a61d..ff00bc5b1b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -12,24 +12,24 @@ glabel func_802CD4B4 /* F1E80 802CD4D0 80420070 */ lb $v0, 0x70($v0) /* F1E84 802CD4D4 14400005 */ bnez $v0, .L802CD4EC /* F1E88 802CD4D8 00000000 */ nop -/* F1E8C 802CD4DC 3C02802E */ lui $v0, 0x802e -/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, -0x5210 +/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) /* F1E94 802CD4E4 080B353D */ j .L802CD4F4 /* F1E98 802CD4E8 00000000 */ nop .L802CD4EC: -/* F1E9C 802CD4EC 3C02802E */ lui $v0, 0x802e -/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, -0x5250 +/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s index f7a235528e..ef7a07845b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s @@ -7,16 +7,16 @@ glabel func_802CD57C /* F1F34 802CD584 80420070 */ lb $v0, 0x70($v0) /* F1F38 802CD588 14400007 */ bnez $v0, .L802CD5A8 /* F1F3C 802CD58C 00000000 */ nop -/* F1F40 802CD590 3C02802E */ lui $v0, 0x802e -/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, -0x5210 -/* F1F48 802CD598 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1F40 802CD590 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) +/* F1F48 802CD598 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1F50 802CD5A0 03E00008 */ jr $ra /* F1F54 802CD5A4 00000000 */ nop .L802CD5A8: -/* F1F58 802CD5A8 3C02802E */ lui $v0, 0x802e -/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, -0x5250 -/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1F58 802CD5A8 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) +/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1F68 802CD5B8 03E00008 */ jr $ra /* F1F6C 802CD5BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 85b1d66239..e30d159494 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index 6f0d7dca0f..fe83bbbae9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 631537bc1c..03323eca79 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 575f1f4f91..358262361b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index a1dd7b41ef..bafc068c6b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/variables.h b/include/variables.h index e18c758128..cdd6635377 100644 --- a/include/variables.h +++ b/include/variables.h @@ -88,7 +88,9 @@ extern PrintContext* D_802DB268; // Animation related extern PartnerAnimations gPartnerAnimations[12]; -extern AnimatedModel** gAnimatedMeshesPtr; +extern AnimatedModel* gBattleMeshAnimations[16]; +extern AnimatedModel* gWorldMeshAnimations[16]; +extern AnimatedModel** gMeshAnimationsPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index 9f892bd319..d9de3affac 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -493,7 +493,13 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelScale); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD3C0); +ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { + AnimatedModel* model = gMeshAnimationsPtr[get_variable(script, *script->ptrReadPos)]; + + func_8011E438(func_8011FFE0(model->animModelID)); + model->animModelID = -1; + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index d8d888cc08..342a89fc97 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1891,7 +1891,9 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; -gAnimatedMeshesPtr = 0x802DAE30; +gBattleMeshAnimations = 0x802DADB0; // size:0x40 +gWorldMeshAnimations = 0x802DADF0; // size:0x40 +gMeshAnimationsPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index eb8954ce0c..fc123c5c23 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -229,7 +229,10 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; -gAnimatedMeshesPtr = 0x802DAE30; + +gBattleMeshAnimations = 0x802DADB0; +gWorldMeshAnimations = 0x802DADF0; +gMeshAnimationsPtr = 0x802DAE30; gEffectTable = 0x8007F214; From b7726af819009eb50a3da81627496c90fa3e1a4d Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 15:24:39 -0500 Subject: [PATCH 09/14] EF070 stuff --- .../ChangeModelAnimation.s | 35 ----- .../GetAnimModelPosition.s | 43 ------ .../code_ef070_len_3400/PlayModelAnimation.s | 32 ----- .../SetAnimModelPosition.s | 47 ------- .../SetAnimModelRotation.s | 47 ------- .../code_ef070_len_3400/SetAnimModelScale.s | 47 ------- .../code_ef070_len_3400/func_802CCAC0.s | 28 ---- .../code_ef070_len_3400/func_802CCCB0.s | 21 --- .../code_ef070_len_3400/func_802CCEDC.s | 40 ------ .../code_ef070_len_3400/func_802CD57C.s | 22 --- src/code_ef070_len_3400.c | 131 ++++++++++++++++-- 11 files changed, 121 insertions(+), 372 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s deleted file mode 100644 index 95501cdc38..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ /dev/null @@ -1,35 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel ChangeModelAnimation -/* F191C 802CCF6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1920 802CCF70 AFB10014 */ sw $s1, 0x14($sp) -/* F1924 802CCF74 0080882D */ daddu $s1, $a0, $zero -/* F1928 802CCF78 AFBF0018 */ sw $ra, 0x18($sp) -/* F192C 802CCF7C AFB00010 */ sw $s0, 0x10($sp) -/* F1930 802CCF80 8E30000C */ lw $s0, 0xc($s1) -/* F1934 802CCF84 8E050000 */ lw $a1, ($s0) -/* F1938 802CCF88 0C0B1EAF */ jal get_variable -/* F193C 802CCF8C 26100004 */ addiu $s0, $s0, 4 -/* F1940 802CCF90 0220202D */ daddu $a0, $s1, $zero -/* F1944 802CCF94 8E050000 */ lw $a1, ($s0) -/* F1948 802CCF98 0C0B1EAF */ jal get_variable -/* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 -/* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 -/* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) -/* F1964 802CCFB4 8E030068 */ lw $v1, 0x68($s0) -/* F1968 802CCFB8 10620004 */ beq $v1, $v0, .L802CCFCC -/* F196C 802CCFBC 0040282D */ daddu $a1, $v0, $zero -/* F1970 802CCFC0 8E040000 */ lw $a0, ($s0) -/* F1974 802CCFC4 0C048052 */ jal play_model_animation -/* F1978 802CCFC8 AE050068 */ sw $a1, 0x68($s0) -.L802CCFCC: -/* F197C 802CCFCC 24020002 */ addiu $v0, $zero, 2 -/* F1980 802CCFD0 8FBF0018 */ lw $ra, 0x18($sp) -/* F1984 802CCFD4 8FB10014 */ lw $s1, 0x14($sp) -/* F1988 802CCFD8 8FB00010 */ lw $s0, 0x10($sp) -/* F198C 802CCFDC 03E00008 */ jr $ra -/* F1990 802CCFE0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s deleted file mode 100644 index 0e0531b8cb..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ /dev/null @@ -1,43 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel GetAnimModelPosition -/* F1A40 802CD090 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* F1A44 802CD094 AFB20018 */ sw $s2, 0x18($sp) -/* F1A48 802CD098 0080902D */ daddu $s2, $a0, $zero -/* F1A4C 802CD09C AFBF0020 */ sw $ra, 0x20($sp) -/* F1A50 802CD0A0 AFB3001C */ sw $s3, 0x1c($sp) -/* F1A54 802CD0A4 AFB10014 */ sw $s1, 0x14($sp) -/* F1A58 802CD0A8 AFB00010 */ sw $s0, 0x10($sp) -/* F1A5C 802CD0AC 8E50000C */ lw $s0, 0xc($s2) -/* F1A60 802CD0B0 8E050000 */ lw $a1, ($s0) -/* F1A64 802CD0B4 0C0B1EAF */ jal get_variable -/* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 -/* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) -/* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 -/* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 -/* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) -/* F1A88 802CD0D8 8E130000 */ lw $s3, ($s0) -/* F1A8C 802CD0DC 8E260004 */ lw $a2, 4($s1) -/* F1A90 802CD0E0 8E100004 */ lw $s0, 4($s0) -/* F1A94 802CD0E4 0C0B2190 */ jal set_float_variable -/* F1A98 802CD0E8 0240202D */ daddu $a0, $s2, $zero -/* F1A9C 802CD0EC 0240202D */ daddu $a0, $s2, $zero -/* F1AA0 802CD0F0 8E260008 */ lw $a2, 8($s1) -/* F1AA4 802CD0F4 0C0B2190 */ jal set_float_variable -/* F1AA8 802CD0F8 0260282D */ daddu $a1, $s3, $zero -/* F1AAC 802CD0FC 0240202D */ daddu $a0, $s2, $zero -/* F1AB0 802CD100 8E26000C */ lw $a2, 0xc($s1) -/* F1AB4 802CD104 0C0B2190 */ jal set_float_variable -/* F1AB8 802CD108 0200282D */ daddu $a1, $s0, $zero -/* F1ABC 802CD10C 8FBF0020 */ lw $ra, 0x20($sp) -/* F1AC0 802CD110 8FB3001C */ lw $s3, 0x1c($sp) -/* F1AC4 802CD114 8FB20018 */ lw $s2, 0x18($sp) -/* F1AC8 802CD118 8FB10014 */ lw $s1, 0x14($sp) -/* F1ACC 802CD11C 8FB00010 */ lw $s0, 0x10($sp) -/* F1AD0 802CD120 24020002 */ addiu $v0, $zero, 2 -/* F1AD4 802CD124 03E00008 */ jr $ra -/* F1AD8 802CD128 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s deleted file mode 100644 index 97ef37dc7d..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ /dev/null @@ -1,32 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlayModelAnimation -/* F181C 802CCE6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1820 802CCE70 AFB10014 */ sw $s1, 0x14($sp) -/* F1824 802CCE74 0080882D */ daddu $s1, $a0, $zero -/* F1828 802CCE78 AFBF0018 */ sw $ra, 0x18($sp) -/* F182C 802CCE7C AFB00010 */ sw $s0, 0x10($sp) -/* F1830 802CCE80 8E30000C */ lw $s0, 0xc($s1) -/* F1834 802CCE84 8E050000 */ lw $a1, ($s0) -/* F1838 802CCE88 0C0B1EAF */ jal get_variable -/* F183C 802CCE8C 26100004 */ addiu $s0, $s0, 4 -/* F1840 802CCE90 0220202D */ daddu $a0, $s1, $zero -/* F1844 802CCE94 8E050000 */ lw $a1, ($s0) -/* F1848 802CCE98 0C0B1EAF */ jal get_variable -/* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 -/* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 -/* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) -/* F1864 802CCEB4 8C640000 */ lw $a0, ($v1) -/* F1868 802CCEB8 0040282D */ daddu $a1, $v0, $zero -/* F186C 802CCEBC 0C048052 */ jal play_model_animation -/* F1870 802CCEC0 AC650068 */ sw $a1, 0x68($v1) -/* F1874 802CCEC4 8FBF0018 */ lw $ra, 0x18($sp) -/* F1878 802CCEC8 8FB10014 */ lw $s1, 0x14($sp) -/* F187C 802CCECC 8FB00010 */ lw $s0, 0x10($sp) -/* F1880 802CCED0 24020002 */ addiu $v0, $zero, 2 -/* F1884 802CCED4 03E00008 */ jr $ra -/* F1888 802CCED8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s deleted file mode 100644 index 97a00c7918..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelPosition -/* F1994 802CCFE4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1998 802CCFE8 AFB20018 */ sw $s2, 0x18($sp) -/* F199C 802CCFEC 0080902D */ daddu $s2, $a0, $zero -/* F19A0 802CCFF0 AFBF001C */ sw $ra, 0x1c($sp) -/* F19A4 802CCFF4 AFB10014 */ sw $s1, 0x14($sp) -/* F19A8 802CCFF8 AFB00010 */ sw $s0, 0x10($sp) -/* F19AC 802CCFFC F7B60028 */ sdc1 $f22, 0x28($sp) -/* F19B0 802CD000 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F19B4 802CD004 8E50000C */ lw $s0, 0xc($s2) -/* F19B8 802CD008 8E050000 */ lw $a1, ($s0) -/* F19BC 802CD00C 0C0B1EAF */ jal get_variable -/* F19C0 802CD010 26100004 */ addiu $s0, $s0, 4 -/* F19C4 802CD014 8E050000 */ lw $a1, ($s0) -/* F19C8 802CD018 26100004 */ addiu $s0, $s0, 4 -/* F19CC 802CD01C 0240202D */ daddu $a0, $s2, $zero -/* F19D0 802CD020 0C0B210B */ jal get_float_variable -/* F19D4 802CD024 0040882D */ daddu $s1, $v0, $zero -/* F19D8 802CD028 8E050000 */ lw $a1, ($s0) -/* F19DC 802CD02C 26100004 */ addiu $s0, $s0, 4 -/* F19E0 802CD030 0240202D */ daddu $a0, $s2, $zero -/* F19E4 802CD034 0C0B210B */ jal get_float_variable -/* F19E8 802CD038 46000586 */ mov.s $f22, $f0 -/* F19EC 802CD03C 0240202D */ daddu $a0, $s2, $zero -/* F19F0 802CD040 8E050000 */ lw $a1, ($s0) -/* F19F4 802CD044 0C0B210B */ jal get_float_variable -/* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 -/* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 -/* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) -/* F1A10 802CD060 E4760004 */ swc1 $f22, 4($v1) -/* F1A14 802CD064 E4740008 */ swc1 $f20, 8($v1) -/* F1A18 802CD068 E460000C */ swc1 $f0, 0xc($v1) -/* F1A1C 802CD06C 8FBF001C */ lw $ra, 0x1c($sp) -/* F1A20 802CD070 8FB20018 */ lw $s2, 0x18($sp) -/* F1A24 802CD074 8FB10014 */ lw $s1, 0x14($sp) -/* F1A28 802CD078 8FB00010 */ lw $s0, 0x10($sp) -/* F1A2C 802CD07C D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1A30 802CD080 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1A34 802CD084 24020002 */ addiu $v0, $zero, 2 -/* F1A38 802CD088 03E00008 */ jr $ra -/* F1A3C 802CD08C 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s deleted file mode 100644 index 30fe94eae5..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelRotation -/* F1BA0 802CD1F0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1BA4 802CD1F4 AFB20018 */ sw $s2, 0x18($sp) -/* F1BA8 802CD1F8 0080902D */ daddu $s2, $a0, $zero -/* F1BAC 802CD1FC AFBF001C */ sw $ra, 0x1c($sp) -/* F1BB0 802CD200 AFB10014 */ sw $s1, 0x14($sp) -/* F1BB4 802CD204 AFB00010 */ sw $s0, 0x10($sp) -/* F1BB8 802CD208 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1BBC 802CD20C F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1BC0 802CD210 8E50000C */ lw $s0, 0xc($s2) -/* F1BC4 802CD214 8E050000 */ lw $a1, ($s0) -/* F1BC8 802CD218 0C0B1EAF */ jal get_variable -/* F1BCC 802CD21C 26100004 */ addiu $s0, $s0, 4 -/* F1BD0 802CD220 8E050000 */ lw $a1, ($s0) -/* F1BD4 802CD224 26100004 */ addiu $s0, $s0, 4 -/* F1BD8 802CD228 0240202D */ daddu $a0, $s2, $zero -/* F1BDC 802CD22C 0C0B210B */ jal get_float_variable -/* F1BE0 802CD230 0040882D */ daddu $s1, $v0, $zero -/* F1BE4 802CD234 8E050000 */ lw $a1, ($s0) -/* F1BE8 802CD238 26100004 */ addiu $s0, $s0, 4 -/* F1BEC 802CD23C 0240202D */ daddu $a0, $s2, $zero -/* F1BF0 802CD240 0C0B210B */ jal get_float_variable -/* F1BF4 802CD244 46000586 */ mov.s $f22, $f0 -/* F1BF8 802CD248 0240202D */ daddu $a0, $s2, $zero -/* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) -/* F1C00 802CD250 0C0B210B */ jal get_float_variable -/* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 -/* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 -/* F1C18 802CD268 8E230000 */ lw $v1, ($s1) -/* F1C1C 802CD26C E4760010 */ swc1 $f22, 0x10($v1) -/* F1C20 802CD270 E4740014 */ swc1 $f20, 0x14($v1) -/* F1C24 802CD274 E4600018 */ swc1 $f0, 0x18($v1) -/* F1C28 802CD278 8FBF001C */ lw $ra, 0x1c($sp) -/* F1C2C 802CD27C 8FB20018 */ lw $s2, 0x18($sp) -/* F1C30 802CD280 8FB10014 */ lw $s1, 0x14($sp) -/* F1C34 802CD284 8FB00010 */ lw $s0, 0x10($sp) -/* F1C38 802CD288 D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1C3C 802CD28C D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1C40 802CD290 24020002 */ addiu $v0, $zero, 2 -/* F1C44 802CD294 03E00008 */ jr $ra -/* F1C48 802CD298 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s deleted file mode 100644 index 4284ac469a..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelScale -/* F1C4C 802CD29C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1C50 802CD2A0 AFB20018 */ sw $s2, 0x18($sp) -/* F1C54 802CD2A4 0080902D */ daddu $s2, $a0, $zero -/* F1C58 802CD2A8 AFBF001C */ sw $ra, 0x1c($sp) -/* F1C5C 802CD2AC AFB10014 */ sw $s1, 0x14($sp) -/* F1C60 802CD2B0 AFB00010 */ sw $s0, 0x10($sp) -/* F1C64 802CD2B4 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1C68 802CD2B8 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1C6C 802CD2BC 8E50000C */ lw $s0, 0xc($s2) -/* F1C70 802CD2C0 8E050000 */ lw $a1, ($s0) -/* F1C74 802CD2C4 0C0B1EAF */ jal get_variable -/* F1C78 802CD2C8 26100004 */ addiu $s0, $s0, 4 -/* F1C7C 802CD2CC 8E050000 */ lw $a1, ($s0) -/* F1C80 802CD2D0 26100004 */ addiu $s0, $s0, 4 -/* F1C84 802CD2D4 0240202D */ daddu $a0, $s2, $zero -/* F1C88 802CD2D8 0C0B210B */ jal get_float_variable -/* F1C8C 802CD2DC 0040882D */ daddu $s1, $v0, $zero -/* F1C90 802CD2E0 8E050000 */ lw $a1, ($s0) -/* F1C94 802CD2E4 26100004 */ addiu $s0, $s0, 4 -/* F1C98 802CD2E8 0240202D */ daddu $a0, $s2, $zero -/* F1C9C 802CD2EC 0C0B210B */ jal get_float_variable -/* F1CA0 802CD2F0 46000586 */ mov.s $f22, $f0 -/* F1CA4 802CD2F4 0240202D */ daddu $a0, $s2, $zero -/* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) -/* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable -/* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 -/* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 -/* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) -/* F1CC8 802CD318 E476001C */ swc1 $f22, 0x1c($v1) -/* F1CCC 802CD31C E4740020 */ swc1 $f20, 0x20($v1) -/* F1CD0 802CD320 E4600024 */ swc1 $f0, 0x24($v1) -/* F1CD4 802CD324 8FBF001C */ lw $ra, 0x1c($sp) -/* F1CD8 802CD328 8FB20018 */ lw $s2, 0x18($sp) -/* F1CDC 802CD32C 8FB10014 */ lw $s1, 0x14($sp) -/* F1CE0 802CD330 8FB00010 */ lw $s0, 0x10($sp) -/* F1CE4 802CD334 D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1CE8 802CD338 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1CEC 802CD33C 24020002 */ addiu $v0, $zero, 2 -/* F1CF0 802CD340 03E00008 */ jr $ra -/* F1CF4 802CD344 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s deleted file mode 100644 index 01562b94be..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ /dev/null @@ -1,28 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCAC0 -/* F1470 802CCAC0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* F1474 802CCAC4 AFB00010 */ sw $s0, 0x10($sp) -/* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero -/* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) -.L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 -/* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 -/* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) -/* F1494 802CCAE4 8C440000 */ lw $a0, ($v0) -/* F1498 802CCAE8 04820004 */ bltzl $a0, .L802CCAFC -/* F149C 802CCAEC 26100001 */ addiu $s0, $s0, 1 -/* F14A0 802CCAF0 0C047A95 */ jal func_8011EA54 -/* F14A4 802CCAF4 24450028 */ addiu $a1, $v0, 0x28 -/* F14A8 802CCAF8 26100001 */ addiu $s0, $s0, 1 -.L802CCAFC: -/* F14AC 802CCAFC 2A020010 */ slti $v0, $s0, 0x10 -/* F14B0 802CCB00 1440FFF3 */ bnez $v0, .L802CCAD0 -/* F14B4 802CCB04 00000000 */ nop -/* F14B8 802CCB08 8FBF0014 */ lw $ra, 0x14($sp) -/* F14BC 802CCB0C 8FB00010 */ lw $s0, 0x10($sp) -/* F14C0 802CCB10 03E00008 */ jr $ra -/* F14C4 802CCB14 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s deleted file mode 100644 index fc4a3981d0..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ /dev/null @@ -1,21 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCCB0 -/* F1660 802CCCB0 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* F1664 802CCCB4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* F1668 802CCCB8 80420070 */ lb $v0, 0x70($v0) -/* F166C 802CCCBC 14400005 */ bnez $v0, .L802CCCD4 -/* F1670 802CCCC0 00000000 */ nop -/* F1674 802CCCC4 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) -/* F167C 802CCCCC 080B3337 */ j .L802CCCDC -/* F1680 802CCCD0 00000000 */ nop -.L802CCCD4: -/* F1684 802CCCD4 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) -.L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1694 802CCCE4 03E00008 */ jr $ra -/* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s deleted file mode 100644 index cd06f9f31f..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ /dev/null @@ -1,40 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCEDC -/* F188C 802CCEDC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1890 802CCEE0 AFB20018 */ sw $s2, 0x18($sp) -/* F1894 802CCEE4 0080902D */ daddu $s2, $a0, $zero -/* F1898 802CCEE8 AFBF001C */ sw $ra, 0x1c($sp) -/* F189C 802CCEEC AFB10014 */ sw $s1, 0x14($sp) -/* F18A0 802CCEF0 AFB00010 */ sw $s0, 0x10($sp) -/* F18A4 802CCEF4 8E50000C */ lw $s0, 0xc($s2) -/* F18A8 802CCEF8 8E050000 */ lw $a1, ($s0) -/* F18AC 802CCEFC 0C0B1EAF */ jal get_variable -/* F18B0 802CCF00 26100004 */ addiu $s0, $s0, 4 -/* F18B4 802CCF04 8E050000 */ lw $a1, ($s0) -/* F18B8 802CCF08 26100004 */ addiu $s0, $s0, 4 -/* F18BC 802CCF0C 0240202D */ daddu $a0, $s2, $zero -/* F18C0 802CCF10 0C0B1EAF */ jal get_variable -/* F18C4 802CCF14 0040882D */ daddu $s1, $v0, $zero -/* F18C8 802CCF18 0240202D */ daddu $a0, $s2, $zero -/* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) -/* F18D0 802CCF20 0C0B1EAF */ jal get_variable -/* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 -/* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 -/* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) -/* F18EC 802CCF3C 0200282D */ daddu $a1, $s0, $zero -/* F18F0 802CCF40 8C640000 */ lw $a0, ($v1) -/* F18F4 802CCF44 0040302D */ daddu $a2, $v0, $zero -/* F18F8 802CCF48 0C048066 */ jal func_80120198 -/* F18FC 802CCF4C AC650068 */ sw $a1, 0x68($v1) -/* F1900 802CCF50 8FBF001C */ lw $ra, 0x1c($sp) -/* F1904 802CCF54 8FB20018 */ lw $s2, 0x18($sp) -/* F1908 802CCF58 8FB10014 */ lw $s1, 0x14($sp) -/* F190C 802CCF5C 8FB00010 */ lw $s0, 0x10($sp) -/* F1910 802CCF60 24020002 */ addiu $v0, $zero, 2 -/* F1914 802CCF64 03E00008 */ jr $ra -/* F1918 802CCF68 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s deleted file mode 100644 index ef7a07845b..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ /dev/null @@ -1,22 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD57C -/* F1F2C 802CD57C 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* F1F30 802CD580 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* F1F34 802CD584 80420070 */ lb $v0, 0x70($v0) -/* F1F38 802CD588 14400007 */ bnez $v0, .L802CD5A8 -/* F1F3C 802CD58C 00000000 */ nop -/* F1F40 802CD590 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) -/* F1F48 802CD598 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1F50 802CD5A0 03E00008 */ jr $ra -/* F1F54 802CD5A4 00000000 */ nop -.L802CD5A8: -/* F1F58 802CD5A8 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) -/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1F68 802CD5B8 03E00008 */ jr $ra -/* F1F6C 802CD5BC 00000000 */ nop diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index d9de3affac..aaeef39ad4 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -465,31 +465,136 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", AdjustCam, ScriptInstance* script, s32 i INCLUDE_ASM(s32, "code_ef070_len_3400", ResetCam, ScriptInstance* script, s32 isInitialCall); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCAC0); +void func_802CCAC0(void) { + s32 i; + + //todo fix type + for (i = 0; i < 0x10; i++) { + AnimatedModel* anim = gMeshAnimationsPtr[i]; + + if (anim->animModelID >= 0) { + func_8011EA54(anim->animModelID, &anim->mtx); + } + } +} INCLUDE_ASM(s32, "code_ef070_len_3400", draw_anim_models); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCCB0); +ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { + if (!GAME_STATUS->isBattle) { + gMeshAnimationsPtr = &gWorldMeshAnimations; + } else { + gMeshAnimationsPtr = &gBattleMeshAnimations; + } + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", LoadModelAnimation); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCDAC); -INCLUDE_ASM(s32, "code_ef070_len_3400", PlayModelAnimation); +ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCEDC); + model->currentAnimData = var2; + play_model_animation(model->animModelID, var2); -INCLUDE_ASM(s32, "code_ef070_len_3400", ChangeModelAnimation); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelPosition); +ApiStatus func_802CCEDC(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", GetAnimModelPosition); + model->currentAnimData = var2; + func_80120198(model->animModelID, var2, var3); + + return ApiStatus_DONE2; +} + +ApiStatus ChangeModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + if (model->currentAnimData == var2) { + return ApiStatus_DONE2; + } + + model->currentAnimData = var2; + play_model_animation(model->animModelID, var2); + return ApiStatus_DONE2; +} + +ApiStatus SetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + model->pos.x = x; + model->pos.y = y; + model->pos.z = z; + + return ApiStatus_DONE2; +} + +ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 outX = *args++; + s32 outY = *args++; + s32 outZ = *args++; + AnimatedModel* model = gMeshAnimationsPtr[index]; + + set_float_variable(script, outX, model->pos.x); + set_float_variable(script, outY, model->pos.y); + set_float_variable(script, outZ, model->pos.z); + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", AddAnimModelPosition); -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelRotation); +ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelScale); + model->rot.x = x; + model->rot.y = y; + model->rot.z = z; + + return ApiStatus_DONE2; +} + +ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + model->scale.x = x; + model->scale.y = y; + model->scale.z = z; + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); @@ -505,7 +610,13 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD57C); +void func_802CD57C(void) { + if (!GAME_STATUS->isBattle) { + gMeshAnimationsPtr = &gWorldMeshAnimations; + } else { + gMeshAnimationsPtr = &gBattleMeshAnimations; + } +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD5C0); From cdd2d6bd153692b350913637fae99561ccf3008d Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 15:40:26 -0500 Subject: [PATCH 10/14] ASM update and types --- .../code_a5dd0_len_114e0/clear_model_data.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E224.s | 12 ++++---- .../code_a5dd0_len_114e0/func_8011E310.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E438.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E4B8.s | 8 ++--- .../code_a5dd0_len_114e0/func_8011E5E0.s | 8 ++--- .../code_a5dd0_len_114e0/func_8011E8BC.s | 4 +-- .../code_a5dd0_len_114e0/func_8011EA54.s | 4 +-- .../code_a5dd0_len_114e0/func_8011F304.s | 4 +-- .../code_a5dd0_len_114e0/func_8011F3E8.s | 4 +-- .../code_a5dd0_len_114e0/func_8011FFE0.s | 4 +-- .../code_a5dd0_len_114e0/func_80120000.s | 4 +-- .../code_a5dd0_len_114e0/func_801200EC.s | 4 +-- .../code_a5dd0_len_114e0/func_80120118.s | 4 +-- .../code_a5dd0_len_114e0/func_80120198.s | 4 +-- .../code_a5dd0_len_114e0/func_801203AC.s | 4 +-- .../code_a5dd0_len_114e0/func_80120474.s | 4 +-- .../code_a5dd0_len_114e0/init_model_data.s | 4 +-- .../play_model_animation.s | 4 +-- .../AddAnimModelPosition.s | 4 +-- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +-- .../code_ef070_len_3400/draw_anim_models.s | 4 +-- .../code_ef070_len_3400/func_802CCDAC.s | 4 +-- .../code_ef070_len_3400/func_802CD348.s | 4 +-- .../code_ef070_len_3400/func_802CD418.s | 4 +-- .../code_ef070_len_3400/func_802CD4B4.s | 20 ++++++------- .../code_ef070_len_3400/func_802CD5C0.s | 4 +-- .../code_ef070_len_3400/func_802CD6E0.s | 4 +-- .../code_ef070_len_3400/func_802CD7D8.s | 4 +-- .../code_ef070_len_3400/func_802CD8F8.s | 4 +-- .../code_ef070_len_3400/func_802CD9F0.s | 4 +-- include/common_structs.h | 4 +++ include/macros.h | 2 ++ include/variables.h | 9 ++++-- src/code_ef070_len_3400.c | 29 +++++++++---------- tools/symbol_addrs.txt | 7 +++-- undefined_syms.txt | 12 ++++---- 37 files changed, 115 insertions(+), 104 deletions(-) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s index 46232c5431..94323ff27c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s @@ -15,8 +15,8 @@ glabel clear_model_data /* AC46C 80115D6C 24421F70 */ addiu $v0, $v0, 0x1f70 /* AC470 80115D70 3C018015 */ lui $at, 0x8015 /* AC474 80115D74 AC2212E0 */ sw $v0, 0x12e0($at) -/* AC478 80115D78 3C028015 */ lui $v0, 0x8015 -/* AC47C 80115D7C 24421F90 */ addiu $v0, $v0, 0x1f90 +/* AC478 80115D78 3C028015 */ lui $v0, %hi(gWorldModelSpecialDls) +/* AC47C 80115D7C 24421F90 */ addiu $v0, $v0, %lo(gWorldModelSpecialDls) /* AC480 80115D80 3C018015 */ lui $at, %hi(gCurrentModelSpecialDlsPtr) /* AC484 80115D84 AC2212E8 */ sw $v0, %lo(gCurrentModelSpecialDlsPtr)($at) /* AC488 80115D88 3C028015 */ lui $v0, 0x8015 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s index 872c5ecf9d..32da325a2c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s @@ -9,8 +9,8 @@ glabel func_8011E224 /* B4934 8011E234 2404FFFF */ addiu $a0, $zero, -1 /* B4938 8011E238 3C028015 */ lui $v0, 0x8015 /* B493C 8011E23C 244239C0 */ addiu $v0, $v0, 0x39c0 -/* B4940 8011E240 3C018015 */ lui $at, 0x8015 -/* B4944 8011E244 AC223A40 */ sw $v0, 0x3a40($at) +/* B4940 8011E240 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4944 8011E244 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) /* B4948 8011E248 2403005F */ addiu $v1, $zero, 0x5f /* B494C 8011E24C 3C028015 */ lui $v0, 0x8015 /* B4950 8011E250 244236B8 */ addiu $v0, $v0, 0x36b8 @@ -33,11 +33,11 @@ glabel func_8011E224 .L8011E28C: /* B498C 8011E28C 3C028015 */ lui $v0, 0x8015 /* B4990 8011E290 24423A00 */ addiu $v0, $v0, 0x3a00 -/* B4994 8011E294 3C018015 */ lui $at, 0x8015 -/* B4998 8011E298 AC223A40 */ sw $v0, 0x3a40($at) +/* B4994 8011E294 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4998 8011E298 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) .L8011E29C: -/* B499C 8011E29C 3C028015 */ lui $v0, 0x8015 -/* B49A0 8011E2A0 8C423A40 */ lw $v0, 0x3a40($v0) +/* B499C 8011E29C 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B49A0 8011E2A0 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B49A4 8011E2A4 2403000F */ addiu $v1, $zero, 0xf /* B49A8 8011E2A8 2442003C */ addiu $v0, $v0, 0x3c .L8011E2AC: diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s index a9740098d5..5c4aee6771 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s @@ -15,8 +15,8 @@ glabel func_8011E310 /* B4A34 8011E334 3C028015 */ lui $v0, 0x8015 /* B4A38 8011E338 24423A00 */ addiu $v0, $v0, 0x3a00 .L8011E33C: -/* B4A3C 8011E33C 3C018015 */ lui $at, 0x8015 -/* B4A40 8011E340 AC223A40 */ sw $v0, 0x3a40($at) +/* B4A3C 8011E33C 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4A40 8011E340 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) /* B4A44 8011E344 2402000A */ addiu $v0, $zero, 0xa /* B4A48 8011E348 3C018015 */ lui $at, 0x8015 /* B4A4C 8011E34C AC223A48 */ sw $v0, 0x3a48($at) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s index af8b649804..38cb6446df 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s @@ -11,8 +11,8 @@ glabel func_8011E438 /* B4B50 8011E450 A2000014 */ sb $zero, 0x14($s0) /* B4B54 8011E454 0C0478E6 */ jal func_8011E398 /* B4B58 8011E458 00000000 */ nop -/* B4B5C 8011E45C 3C038015 */ lui $v1, 0x8015 -/* B4B60 8011E460 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4B5C 8011E45C 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4B60 8011E460 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4B64 8011E464 0000202D */ daddu $a0, $zero, $zero /* B4B68 8011E468 AE000010 */ sw $zero, 0x10($s0) .L8011E46C: diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s index 46028d9f65..65639b9f22 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8011E4B8 -/* B4BB8 8011E4B8 3C038015 */ lui $v1, 0x8015 -/* B4BBC 8011E4BC 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4BB8 8011E4B8 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4BBC 8011E4BC 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4BC0 8011E4C0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B4BC4 8011E4C4 AFB10014 */ sw $s1, 0x14($sp) /* B4BC8 8011E4C8 0080882D */ daddu $s1, $a0, $zero @@ -29,8 +29,8 @@ glabel func_8011E4B8 /* B4C08 8011E508 0C00AB39 */ jal heap_malloc /* B4C0C 8011E50C 240402E0 */ addiu $a0, $zero, 0x2e0 /* B4C10 8011E510 00102080 */ sll $a0, $s0, 2 -/* B4C14 8011E514 3C038015 */ lui $v1, 0x8015 -/* B4C18 8011E518 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4C14 8011E514 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4C18 8011E518 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4C1C 8011E51C 3C058015 */ lui $a1, 0x8015 /* B4C20 8011E520 24A512D4 */ addiu $a1, $a1, 0x12d4 /* B4C24 8011E524 00832021 */ addu $a0, $a0, $v1 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s index 219e8030cc..50bb059d0f 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8011E5E0 -/* B4CE0 8011E5E0 3C038015 */ lui $v1, 0x8015 -/* B4CE4 8011E5E4 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4CE0 8011E5E0 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4CE4 8011E5E4 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4CE8 8011E5E8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B4CEC 8011E5EC AFB10014 */ sw $s1, 0x14($sp) /* B4CF0 8011E5F0 0080882D */ daddu $s1, $a0, $zero @@ -31,8 +31,8 @@ glabel func_8011E5E0 /* B4D38 8011E638 0C00AB39 */ jal heap_malloc /* B4D3C 8011E63C 240402E0 */ addiu $a0, $zero, 0x2e0 /* B4D40 8011E640 00102080 */ sll $a0, $s0, 2 -/* B4D44 8011E644 3C038015 */ lui $v1, 0x8015 -/* B4D48 8011E648 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4D44 8011E644 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4D48 8011E648 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4D4C 8011E64C 3C058015 */ lui $a1, 0x8015 /* B4D50 8011E650 24A512D4 */ addiu $a1, $a1, 0x12d4 /* B4D54 8011E654 00832021 */ addu $a0, $a0, $v1 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s index d9f7c98be9..21acb862e5 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s @@ -17,8 +17,8 @@ glabel func_8011E8BC .L8011E8EC: /* B4FEC 8011E8EC 2402F7FF */ addiu $v0, $zero, -0x801 /* B4FF0 8011E8F0 00822024 */ and $a0, $a0, $v0 -/* B4FF4 8011E8F4 3C038015 */ lui $v1, 0x8015 -/* B4FF8 8011E8F8 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4FF4 8011E8F4 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4FF8 8011E8F8 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4FFC 8011E8FC 00041080 */ sll $v0, $a0, 2 /* B5000 8011E900 00431021 */ addu $v0, $v0, $v1 /* B5004 8011E904 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s index 26cbea428a..e606b6da6d 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s @@ -18,8 +18,8 @@ glabel func_8011EA54 .L8011EA88: /* B5188 8011EA88 2402F7FF */ addiu $v0, $zero, -0x801 /* B518C 8011EA8C 00822024 */ and $a0, $a0, $v0 -/* B5190 8011EA90 3C038015 */ lui $v1, 0x8015 -/* B5194 8011EA94 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5190 8011EA90 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5194 8011EA94 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5198 8011EA98 00041080 */ sll $v0, $a0, 2 /* B519C 8011EA9C 00431021 */ addu $v0, $v0, $v1 /* B51A0 8011EAA0 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s index 63fb282b0e..edb58da4a1 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s @@ -15,8 +15,8 @@ glabel func_8011F304 .L8011F32C: /* B5A2C 8011F32C 2402F7FF */ addiu $v0, $zero, -0x801 /* B5A30 8011F330 00822024 */ and $a0, $a0, $v0 -/* B5A34 8011F334 3C038015 */ lui $v1, 0x8015 -/* B5A38 8011F338 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5A34 8011F334 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5A38 8011F338 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5A3C 8011F33C 00041080 */ sll $v0, $a0, 2 /* B5A40 8011F340 00431021 */ addu $v0, $v0, $v1 /* B5A44 8011F344 8C470000 */ lw $a3, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s index e5fd74d3bf..c947596a52 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s @@ -15,8 +15,8 @@ glabel func_8011F3E8 .L8011F410: /* B5B10 8011F410 2402F7FF */ addiu $v0, $zero, -0x801 /* B5B14 8011F414 00822024 */ and $a0, $a0, $v0 -/* B5B18 8011F418 3C038015 */ lui $v1, 0x8015 -/* B5B1C 8011F41C 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5B18 8011F418 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5B1C 8011F41C 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5B20 8011F420 00041080 */ sll $v0, $a0, 2 /* B5B24 8011F424 00431021 */ addu $v0, $v0, $v1 /* B5B28 8011F428 8C490000 */ lw $t1, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s index 7f6d056168..1b9217c601 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s @@ -4,8 +4,8 @@ glabel func_8011FFE0 /* B66E0 8011FFE0 2402F7FF */ addiu $v0, $zero, -0x801 /* B66E4 8011FFE4 00822024 */ and $a0, $a0, $v0 -/* B66E8 8011FFE8 3C028015 */ lui $v0, 0x8015 -/* B66EC 8011FFEC 8C423A40 */ lw $v0, 0x3a40($v0) +/* B66E8 8011FFE8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B66EC 8011FFEC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B66F0 8011FFF0 00042080 */ sll $a0, $a0, 2 /* B66F4 8011FFF4 00822021 */ addu $a0, $a0, $v0 /* B66F8 8011FFF8 03E00008 */ jr $ra diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s index 6978358df2..675bb6219d 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s @@ -4,8 +4,8 @@ glabel func_80120000 /* B6700 80120000 2402F7FF */ addiu $v0, $zero, -0x801 /* B6704 80120004 00822024 */ and $a0, $a0, $v0 -/* B6708 80120008 3C028015 */ lui $v0, 0x8015 -/* B670C 8012000C 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6708 80120008 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B670C 8012000C 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6710 80120010 00042080 */ sll $a0, $a0, 2 /* B6714 80120014 00822021 */ addu $a0, $a0, $v0 /* B6718 80120018 8C820000 */ lw $v0, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s index 9ac3a3d20f..950fa70a50 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s @@ -4,8 +4,8 @@ glabel func_801200EC /* B67EC 801200EC 2402F7FF */ addiu $v0, $zero, -0x801 /* B67F0 801200F0 00822024 */ and $a0, $a0, $v0 -/* B67F4 801200F4 3C028015 */ lui $v0, 0x8015 -/* B67F8 801200F8 8C423A40 */ lw $v0, 0x3a40($v0) +/* B67F4 801200F4 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B67F8 801200F8 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B67FC 801200FC 00042080 */ sll $a0, $a0, 2 /* B6800 80120100 00822021 */ addu $a0, $a0, $v0 /* B6804 80120104 8C830000 */ lw $v1, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s index 36f5aa2b97..f2dcece28e 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s @@ -4,8 +4,8 @@ glabel func_80120118 /* B6818 80120118 2402F7FF */ addiu $v0, $zero, -0x801 /* B681C 8012011C 00822024 */ and $a0, $a0, $v0 -/* B6820 80120120 3C028015 */ lui $v0, 0x8015 -/* B6824 80120124 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6820 80120120 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6824 80120124 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6828 80120128 00042080 */ sll $a0, $a0, 2 /* B682C 8012012C 00822021 */ addu $a0, $a0, $v0 /* B6830 80120130 8C830000 */ lw $v1, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s index 980690f243..57a0520eee 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s @@ -6,8 +6,8 @@ glabel func_80120198 /* B689C 8012019C 2402F7FF */ addiu $v0, $zero, -0x801 /* B68A0 801201A0 AFB10014 */ sw $s1, 0x14($sp) /* B68A4 801201A4 00828824 */ and $s1, $a0, $v0 -/* B68A8 801201A8 3C038015 */ lui $v1, 0x8015 -/* B68AC 801201AC 8C633A40 */ lw $v1, 0x3a40($v1) +/* B68A8 801201A8 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B68AC 801201AC 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B68B0 801201B0 00111080 */ sll $v0, $s1, 2 /* B68B4 801201B4 AFBF001C */ sw $ra, 0x1c($sp) /* B68B8 801201B8 AFB20018 */ sw $s2, 0x18($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s index 800531754b..0d7e2b5115 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s @@ -5,8 +5,8 @@ glabel func_801203AC /* B6AAC 801203AC 27BDFE00 */ addiu $sp, $sp, -0x200 /* B6AB0 801203B0 2402F7FF */ addiu $v0, $zero, -0x801 /* B6AB4 801203B4 00822024 */ and $a0, $a0, $v0 -/* B6AB8 801203B8 3C028015 */ lui $v0, 0x8015 -/* B6ABC 801203BC 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6AB8 801203B8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6ABC 801203BC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6AC0 801203C0 00042080 */ sll $a0, $a0, 2 /* B6AC4 801203C4 AFBF01FC */ sw $ra, 0x1fc($sp) /* B6AC8 801203C8 AFB001F8 */ sw $s0, 0x1f8($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s index 442bc0e678..4e13e0a6ff 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s @@ -5,8 +5,8 @@ glabel func_80120474 /* B6B74 80120474 27BDFE00 */ addiu $sp, $sp, -0x200 /* B6B78 80120478 2402F7FF */ addiu $v0, $zero, -0x801 /* B6B7C 8012047C 00822024 */ and $a0, $a0, $v0 -/* B6B80 80120480 3C038015 */ lui $v1, 0x8015 -/* B6B84 80120484 8C633A40 */ lw $v1, 0x3a40($v1) +/* B6B80 80120480 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B6B84 80120484 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B6B88 80120488 00041080 */ sll $v0, $a0, 2 /* B6B8C 8012048C AFBF01FC */ sw $ra, 0x1fc($sp) /* B6B90 80120490 AFB001F8 */ sw $s0, 0x1f8($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s index 9e5f7ada64..2fa2d2d7d7 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s @@ -15,8 +15,8 @@ glabel init_model_data /* AC710 80116010 24421F70 */ addiu $v0, $v0, 0x1f70 /* AC714 80116014 3C018015 */ lui $at, 0x8015 /* AC718 80116018 AC2212E0 */ sw $v0, 0x12e0($at) -/* AC71C 8011601C 3C028015 */ lui $v0, 0x8015 -/* AC720 80116020 24421F90 */ addiu $v0, $v0, 0x1f90 +/* AC71C 8011601C 3C028015 */ lui $v0, %hi(gWorldModelSpecialDls) +/* AC720 80116020 24421F90 */ addiu $v0, $v0, %lo(gWorldModelSpecialDls) /* AC724 80116024 3C018015 */ lui $at, %hi(gCurrentModelSpecialDlsPtr) /* AC728 80116028 AC2212E8 */ sw $v0, %lo(gCurrentModelSpecialDlsPtr)($at) /* AC72C 8011602C 3C028015 */ lui $v0, 0x8015 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s b/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s index 37da73a5e1..a6e58b2ce2 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s @@ -4,8 +4,8 @@ glabel play_model_animation /* B6848 80120148 2402F7FF */ addiu $v0, $zero, -0x801 /* B684C 8012014C 00822024 */ and $a0, $a0, $v0 -/* B6850 80120150 3C028015 */ lui $v0, 0x8015 -/* B6854 80120154 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6850 80120150 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6854 80120154 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6858 80120158 00042080 */ sll $a0, $a0, 2 /* B685C 8012015C 00822021 */ addu $a0, $a0, $v0 /* B6860 80120160 8C840000 */ lw $a0, ($a0) diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index e15b9635a8..114cefa93f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index e90ceb5086..ac3a426a16 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index 6fbf7df9e1..66fa0e9529 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index 92ccddbbba..8aa048d12c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index ebb2f3d1cc..b8575a3b17 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 56eaf7f3f8..07b97bfebc 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index ff00bc5b1b..3afb237f93 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -12,24 +12,24 @@ glabel func_802CD4B4 /* F1E80 802CD4D0 80420070 */ lb $v0, 0x70($v0) /* F1E84 802CD4D4 14400005 */ bnez $v0, .L802CD4EC /* F1E88 802CD4D8 00000000 */ nop -/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) +/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimationList) +/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimationList) /* F1E94 802CD4E4 080B353D */ j .L802CD4F4 /* F1E98 802CD4E8 00000000 */ nop .L802CD4EC: -/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) +/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimationList) +/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimationList) .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gCurrentMeshAnimationListPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gCurrentMeshAnimationListPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index e30d159494..659a0dc841 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index fe83bbbae9..d5f620f9be 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 03323eca79..20f51a62a8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 358262361b..3e409569e9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index bafc068c6b..7799c63cce 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/common_structs.h b/include/common_structs.h index eff0633cb3..5822802726 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -716,6 +716,8 @@ typedef struct AnimatedMesh { /* 0x2D0 */ char unk_2D0[16]; } AnimatedMesh; // size = 0x2E0 +typedef AnimatedMesh* AnimatedMeshList[MAX_ANIMATED_MESHES]; + typedef struct PrintHandle { /* 0x000 */ char unk_00[16]; /* 0x010 */ s8* printbuf; /* Created by retype action */ @@ -1170,6 +1172,8 @@ typedef struct AnimatedModel { /* 0x6C */ char unk_6C[4]; } AnimatedModel; // size = 0x70 +typedef AnimatedModel* AnimatedModelList[MAX_ANIMATED_MODELS]; + typedef struct CollisionHeader { /* 0x00 */ s16 numColliders; /* 0x02 */ char unk_02[2]; diff --git a/include/macros.h b/include/macros.h index 9c633e9a76..20d9536c34 100644 --- a/include/macros.h +++ b/include/macros.h @@ -26,6 +26,8 @@ #define MAX_MAPVARS 16 #define MAX_MAPFLAGS 3 +#define MAX_ANIMATED_MODELS 16 +#define MAX_ANIMATED_MESHES 16 #define MAX_MODELS 256 #define MAX_SCRIPTS 128 #define MAX_NPCS 64 diff --git a/include/variables.h b/include/variables.h index cdd6635377..17fc8fb3d1 100644 --- a/include/variables.h +++ b/include/variables.h @@ -87,10 +87,13 @@ extern s32 D_802DB264; extern PrintContext* D_802DB268; // Animation related +extern AnimatedMeshList* gCurrentAnimMeshListPtr; + extern PartnerAnimations gPartnerAnimations[12]; -extern AnimatedModel* gBattleMeshAnimations[16]; -extern AnimatedModel* gWorldMeshAnimations[16]; -extern AnimatedModel** gMeshAnimationsPtr; + +extern AnimatedModelList gBattleMeshAnimationList; +extern AnimatedModelList gWorldMeshAnimationList; +extern AnimatedModelList* gCurrentMeshAnimationListPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index aaeef39ad4..f04ec53b35 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -468,9 +468,8 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", ResetCam, ScriptInstance* script, s32 is void func_802CCAC0(void) { s32 i; - //todo fix type - for (i = 0; i < 0x10; i++) { - AnimatedModel* anim = gMeshAnimationsPtr[i]; + for (i = 0; i < MAX_ANIMATED_MODELS; i++) { + AnimatedModel* anim = (*gCurrentMeshAnimationListPtr)[i]; if (anim->animModelID >= 0) { func_8011EA54(anim->animModelID, &anim->mtx); @@ -482,9 +481,9 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", draw_anim_models); ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { if (!GAME_STATUS->isBattle) { - gMeshAnimationsPtr = &gWorldMeshAnimations; + gCurrentMeshAnimationListPtr = &gWorldMeshAnimationList; } else { - gMeshAnimationsPtr = &gBattleMeshAnimations; + gCurrentMeshAnimationListPtr = &gBattleMeshAnimationList; } return ApiStatus_DONE2; @@ -498,7 +497,7 @@ ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->currentAnimData = var2; play_model_animation(model->animModelID, var2); @@ -511,7 +510,7 @@ ApiStatus func_802CCEDC(ScriptInstance* script, s32 isInitialCall) { s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); s32 var3 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->currentAnimData = var2; func_80120198(model->animModelID, var2, var3); @@ -523,7 +522,7 @@ ApiStatus ChangeModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; if (model->currentAnimData == var2) { return ApiStatus_DONE2; @@ -540,7 +539,7 @@ ApiStatus SetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->pos.x = x; model->pos.y = y; @@ -555,7 +554,7 @@ ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { s32 outX = *args++; s32 outY = *args++; s32 outZ = *args++; - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; set_float_variable(script, outX, model->pos.x); set_float_variable(script, outY, model->pos.y); @@ -572,7 +571,7 @@ ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->rot.x = x; model->rot.y = y; @@ -587,7 +586,7 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->scale.x = x; model->scale.y = y; @@ -599,7 +598,7 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { - AnimatedModel* model = gMeshAnimationsPtr[get_variable(script, *script->ptrReadPos)]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[get_variable(script, *script->ptrReadPos)]; func_8011E438(func_8011FFE0(model->animModelID)); model->animModelID = -1; @@ -612,9 +611,9 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); void func_802CD57C(void) { if (!GAME_STATUS->isBattle) { - gMeshAnimationsPtr = &gWorldMeshAnimations; + gCurrentMeshAnimationListPtr = &gWorldMeshAnimationList; } else { - gMeshAnimationsPtr = &gBattleMeshAnimations; + gCurrentMeshAnimationListPtr = &gBattleMeshAnimationList; } } diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 342a89fc97..d41b15cb25 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -891,6 +891,7 @@ _set_music_track = 0x8014A7E0; set_music_track = 0x8014A918; transition_music_volume_to = 0x8014AC84; gSongArray = 0x8014F720; +gCurrentAnimMeshListPtr = 0x80153A40; D_80156954 = 0x80156954; gMusicUnkVolume = 0x80159AE0; gMusicTargetVolume = 0x80159AE2; @@ -1891,9 +1892,9 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; -gBattleMeshAnimations = 0x802DADB0; // size:0x40 -gWorldMeshAnimations = 0x802DADF0; // size:0x40 -gMeshAnimationsPtr = 0x802DAE30; +gBattleMeshAnimationList = 0x802DADB0; // size:0x40 +gWorldMeshAnimationList = 0x802DADF0; // size:0x40 +gCurrentMeshAnimationListPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index fc123c5c23..8ab053d88f 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -194,9 +194,11 @@ gWorldModelList = 0x80151770; gBattleModelList = 0x80151B70; gCurrentModelListPtr = 0x801512CC; -gWorldModelSpecialDls = 0x8015F90; -gBattleModelSpecialDls = 0x80152010; +gCurrentAnimMeshListPtr = 0x80153A40; + gCurrentModelSpecialDlsPtr = 0x801512E8; +gWorldModelSpecialDls = 0x80151F90; +gBattleModelSpecialDls = 0x80152010; gWorldEntityList = 0x80151380; gBattleEntityList = 0x801513F8; @@ -230,9 +232,9 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; -gBattleMeshAnimations = 0x802DADB0; -gWorldMeshAnimations = 0x802DADF0; -gMeshAnimationsPtr = 0x802DAE30; +gBattleMeshAnimationList = 0x802DADB0; +gWorldMeshAnimationList = 0x802DADF0; +gCurrentMeshAnimationListPtr = 0x802DAE30; gEffectTable = 0x8007F214; From f55cace9a35fe30556257111f964687c614a9afc Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 16:05:39 -0500 Subject: [PATCH 11/14] more EF070 --- .../code_105700_len_2130/func_802E46BC.s | 4 +- .../code_a5dd0_len_114e0/delete_entity.s | 14 +-- .../delete_entity_and_unload_data.s | 16 ++-- .../code_a5dd0_len_114e0/func_8011FFE0.s | 12 --- .../AddAnimModelPosition.s | 53 ----------- .../code_ef070_len_3400/LoadModelAnimation.s | 52 ----------- .../code_ef070_len_3400/func_802CCDAC.s | 52 ----------- .../code_ef070_len_3400/func_802CD348.s | 34 ------- .../code_ef070_len_3400/func_802CD418.s | 45 ---------- .../code_ef070_len_3400/func_802CD5C0.s | 2 +- .../code_ef070_len_3400/func_802CD6E0.s | 2 +- .../code_ef070_len_3400/func_802CD7D8.s | 2 +- .../code_ef070_len_3400/func_802CD8F8.s | 2 +- .../code_ef070_len_3400/func_802CD9F0.s | 8 +- include/functions.h | 1 + src/code_a5dd0_len_114e0.c | 4 +- src/code_ef070_len_3400.c | 90 +++++++++++++++++-- tools/symbol_addrs.txt | 1 + 18 files changed, 114 insertions(+), 280 deletions(-) delete mode 100644 asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD348.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD418.s diff --git a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s index 6abe7d351b..fcf27d10f7 100644 --- a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s +++ b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s @@ -10,7 +10,7 @@ glabel func_802E46BC /* 105F50 802E46D0 86040014 */ lh $a0, 0x14($s0) /* 105F54 802E46D4 3C02802E */ lui $v0, 0x802e /* 105F58 802E46D8 2442455C */ addiu $v0, $v0, 0x455c -/* 105F5C 802E46DC 0C047FF8 */ jal func_8011FFE0 +/* 105F5C 802E46DC 0C047FF8 */ jal get_anim_mesh /* 105F60 802E46E0 AE02003C */ sw $v0, 0x3c($s0) /* 105F64 802E46E4 24030011 */ addiu $v1, $zero, 0x11 /* 105F68 802E46E8 A0430004 */ sb $v1, 4($v0) @@ -22,4 +22,4 @@ glabel func_802E46BC /* 105F80 802E4700 8FB00010 */ lw $s0, 0x10($sp) /* 105F84 802E4704 03E00008 */ jr $ra /* 105F88 802E4708 27BD0018 */ addiu $sp, $sp, 0x18 -/* 105F8C 802E470C 00000000 */ nop +/* 105F8C 802E470C 00000000 */ nop diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s index 2d1c527840..ab36887ff1 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s @@ -11,29 +11,29 @@ glabel delete_entity /* A6DE8 801106E8 0040882D */ daddu $s1, $v0, $zero /* A6DEC 801106EC 8E240040 */ lw $a0, 0x40($s1) /* A6DF0 801106F0 10800003 */ beqz $a0, .L80110700 -/* A6DF4 801106F4 00000000 */ nop +/* A6DF4 801106F4 00000000 */ nop /* A6DF8 801106F8 0C00AB4B */ jal heap_free -/* A6DFC 801106FC 00000000 */ nop +/* A6DFC 801106FC 00000000 */ nop .L80110700: /* A6E00 80110700 8E220000 */ lw $v0, ($s1) /* A6E04 80110704 30420008 */ andi $v0, $v0, 8 /* A6E08 80110708 14400005 */ bnez $v0, .L80110720 -/* A6E0C 8011070C 00000000 */ nop +/* A6E0C 8011070C 00000000 */ nop /* A6E10 80110710 0C048B7F */ jal func_80122DFC /* A6E14 80110714 86240014 */ lh $a0, 0x14($s1) /* A6E18 80110718 080441CC */ j .L80110730 -/* A6E1C 8011071C 00000000 */ nop +/* A6E1C 8011071C 00000000 */ nop .L80110720: -/* A6E20 80110720 0C047FF8 */ jal func_8011FFE0 +/* A6E20 80110720 0C047FF8 */ jal get_anim_mesh /* A6E24 80110724 86240014 */ lh $a0, 0x14($s1) /* A6E28 80110728 0C04790E */ jal func_8011E438 /* A6E2C 8011072C 0040202D */ daddu $a0, $v0, $zero .L80110730: /* A6E30 80110730 86240016 */ lh $a0, 0x16($s1) /* A6E34 80110734 04800007 */ bltz $a0, .L80110754 -/* A6E38 80110738 00000000 */ nop +/* A6E38 80110738 00000000 */ nop /* A6E3C 8011073C 0C044181 */ jal get_shadow_by_index -/* A6E40 80110740 00000000 */ nop +/* A6E40 80110740 00000000 */ nop /* A6E44 80110744 8C430000 */ lw $v1, ($v0) /* A6E48 80110748 3C041000 */ lui $a0, 0x1000 /* A6E4C 8011074C 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s index c0d34fef62..779fe58e5c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s @@ -11,32 +11,32 @@ glabel delete_entity_and_unload_data /* A6EA8 801107A8 0040882D */ daddu $s1, $v0, $zero /* A6EAC 801107AC 8E240040 */ lw $a0, 0x40($s1) /* A6EB0 801107B0 10800003 */ beqz $a0, .L801107C0 -/* A6EB4 801107B4 00000000 */ nop +/* A6EB4 801107B4 00000000 */ nop /* A6EB8 801107B8 0C00AB4B */ jal heap_free -/* A6EBC 801107BC 00000000 */ nop +/* A6EBC 801107BC 00000000 */ nop .L801107C0: /* A6EC0 801107C0 8E220000 */ lw $v0, ($s1) /* A6EC4 801107C4 30420008 */ andi $v0, $v0, 8 /* A6EC8 801107C8 14400005 */ bnez $v0, .L801107E0 -/* A6ECC 801107CC 00000000 */ nop +/* A6ECC 801107CC 00000000 */ nop /* A6ED0 801107D0 0C048B7F */ jal func_80122DFC /* A6ED4 801107D4 86240014 */ lh $a0, 0x14($s1) /* A6ED8 801107D8 080441FC */ j .L801107F0 -/* A6EDC 801107DC 00000000 */ nop +/* A6EDC 801107DC 00000000 */ nop .L801107E0: -/* A6EE0 801107E0 0C047FF8 */ jal func_8011FFE0 +/* A6EE0 801107E0 0C047FF8 */ jal get_anim_mesh /* A6EE4 801107E4 86240014 */ lh $a0, 0x14($s1) /* A6EE8 801107E8 0C04790E */ jal func_8011E438 /* A6EEC 801107EC 0040202D */ daddu $a0, $v0, $zero .L801107F0: /* A6EF0 801107F0 8E240038 */ lw $a0, 0x38($s1) /* A6EF4 801107F4 0C0445F7 */ jal func_801117DC -/* A6EF8 801107F8 00000000 */ nop +/* A6EF8 801107F8 00000000 */ nop /* A6EFC 801107FC 86240016 */ lh $a0, 0x16($s1) /* A6F00 80110800 04800007 */ bltz $a0, .L80110820 -/* A6F04 80110804 00000000 */ nop +/* A6F04 80110804 00000000 */ nop /* A6F08 80110808 0C044181 */ jal get_shadow_by_index -/* A6F0C 8011080C 00000000 */ nop +/* A6F0C 8011080C 00000000 */ nop /* A6F10 80110810 8C430000 */ lw $v1, ($v0) /* A6F14 80110814 3C041000 */ lui $a0, 0x1000 /* A6F18 80110818 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s deleted file mode 100644 index 1b9217c601..0000000000 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8011FFE0 -/* B66E0 8011FFE0 2402F7FF */ addiu $v0, $zero, -0x801 -/* B66E4 8011FFE4 00822024 */ and $a0, $a0, $v0 -/* B66E8 8011FFE8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) -/* B66EC 8011FFEC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) -/* B66F0 8011FFF0 00042080 */ sll $a0, $a0, 2 -/* B66F4 8011FFF4 00822021 */ addu $a0, $a0, $v0 -/* B66F8 8011FFF8 03E00008 */ jr $ra -/* B66FC 8011FFFC 8C820000 */ lw $v0, ($a0) diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s deleted file mode 100644 index 114cefa93f..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ /dev/null @@ -1,53 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel AddAnimModelPosition -/* F1ADC 802CD12C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1AE0 802CD130 AFB20018 */ sw $s2, 0x18($sp) -/* F1AE4 802CD134 0080902D */ daddu $s2, $a0, $zero -/* F1AE8 802CD138 AFBF001C */ sw $ra, 0x1c($sp) -/* F1AEC 802CD13C AFB10014 */ sw $s1, 0x14($sp) -/* F1AF0 802CD140 AFB00010 */ sw $s0, 0x10($sp) -/* F1AF4 802CD144 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1AF8 802CD148 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1AFC 802CD14C 8E50000C */ lw $s0, 0xc($s2) -/* F1B00 802CD150 8E050000 */ lw $a1, ($s0) -/* F1B04 802CD154 0C0B1EAF */ jal get_variable -/* F1B08 802CD158 26100004 */ addiu $s0, $s0, 4 -/* F1B0C 802CD15C 8E050000 */ lw $a1, ($s0) -/* F1B10 802CD160 26100004 */ addiu $s0, $s0, 4 -/* F1B14 802CD164 0240202D */ daddu $a0, $s2, $zero -/* F1B18 802CD168 0C0B210B */ jal get_float_variable -/* F1B1C 802CD16C 0040882D */ daddu $s1, $v0, $zero -/* F1B20 802CD170 8E050000 */ lw $a1, ($s0) -/* F1B24 802CD174 26100004 */ addiu $s0, $s0, 4 -/* F1B28 802CD178 0240202D */ daddu $a0, $s2, $zero -/* F1B2C 802CD17C 0C0B210B */ jal get_float_variable -/* F1B30 802CD180 46000586 */ mov.s $f22, $f0 -/* F1B34 802CD184 0240202D */ daddu $a0, $s2, $zero -/* F1B38 802CD188 8E050000 */ lw $a1, ($s0) -/* F1B3C 802CD18C 0C0B210B */ jal get_float_variable -/* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 -/* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 -/* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) -/* F1B58 802CD1A8 C4660004 */ lwc1 $f6, 4($v1) -/* F1B5C 802CD1AC 46163180 */ add.s $f6, $f6, $f22 -/* F1B60 802CD1B0 C4640008 */ lwc1 $f4, 8($v1) -/* F1B64 802CD1B4 46142100 */ add.s $f4, $f4, $f20 -/* F1B68 802CD1B8 C462000C */ lwc1 $f2, 0xc($v1) -/* F1B6C 802CD1BC 46001080 */ add.s $f2, $f2, $f0 -/* F1B70 802CD1C0 E4660004 */ swc1 $f6, 4($v1) -/* F1B74 802CD1C4 E4640008 */ swc1 $f4, 8($v1) -/* F1B78 802CD1C8 E462000C */ swc1 $f2, 0xc($v1) -/* F1B7C 802CD1CC 8FBF001C */ lw $ra, 0x1c($sp) -/* F1B80 802CD1D0 8FB20018 */ lw $s2, 0x18($sp) -/* F1B84 802CD1D4 8FB10014 */ lw $s1, 0x14($sp) -/* F1B88 802CD1D8 8FB00010 */ lw $s0, 0x10($sp) -/* F1B8C 802CD1DC D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1B90 802CD1E0 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1B94 802CD1E4 24020002 */ addiu $v0, $zero, 2 -/* F1B98 802CD1E8 03E00008 */ jr $ra -/* F1B9C 802CD1EC 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s deleted file mode 100644 index ac3a426a16..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ /dev/null @@ -1,52 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel LoadModelAnimation -/* F169C 802CCCEC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F16A0 802CCCF0 AFB10014 */ sw $s1, 0x14($sp) -/* F16A4 802CCCF4 0080882D */ daddu $s1, $a0, $zero -/* F16A8 802CCCF8 AFBF001C */ sw $ra, 0x1c($sp) -/* F16AC 802CCCFC AFB20018 */ sw $s2, 0x18($sp) -/* F16B0 802CCD00 AFB00010 */ sw $s0, 0x10($sp) -/* F16B4 802CCD04 8E30000C */ lw $s0, 0xc($s1) -/* F16B8 802CCD08 8E050000 */ lw $a1, ($s0) -/* F16BC 802CCD0C 0C0B1EAF */ jal get_variable -/* F16C0 802CCD10 26100004 */ addiu $s0, $s0, 4 -/* F16C4 802CCD14 0220202D */ daddu $a0, $s1, $zero -/* F16C8 802CCD18 8E050000 */ lw $a1, ($s0) -/* F16CC 802CCD1C 0C0B1EAF */ jal get_variable -/* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero -/* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 -/* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 -/* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) -/* F16EC 802CCD3C 0C04792E */ jal func_8011E4B8 -/* F16F0 802CCD40 0000202D */ daddu $a0, $zero, $zero -/* F16F4 802CCD44 0040882D */ daddu $s1, $v0, $zero -/* F16F8 802CCD48 0220202D */ daddu $a0, $s1, $zero -/* F16FC 802CCD4C 0C0480EB */ jal func_801203AC -/* F1700 802CCD50 0240282D */ daddu $a1, $s2, $zero -/* F1704 802CCD54 3C013F80 */ lui $at, 0x3f80 -/* F1708 802CCD58 44810000 */ mtc1 $at, $f0 -/* F170C 802CCD5C 26040028 */ addiu $a0, $s0, 0x28 -/* F1710 802CCD60 AE110000 */ sw $s1, ($s0) -/* F1714 802CCD64 AE000004 */ sw $zero, 4($s0) -/* F1718 802CCD68 AE000008 */ sw $zero, 8($s0) -/* F171C 802CCD6C AE00000C */ sw $zero, 0xc($s0) -/* F1720 802CCD70 AE000010 */ sw $zero, 0x10($s0) -/* F1724 802CCD74 AE000014 */ sw $zero, 0x14($s0) -/* F1728 802CCD78 AE000018 */ sw $zero, 0x18($s0) -/* F172C 802CCD7C E600001C */ swc1 $f0, 0x1c($s0) -/* F1730 802CCD80 E6000020 */ swc1 $f0, 0x20($s0) -/* F1734 802CCD84 E6000024 */ swc1 $f0, 0x24($s0) -/* F1738 802CCD88 0C019D10 */ jal guMtxIdent -/* F173C 802CCD8C AE000068 */ sw $zero, 0x68($s0) -/* F1740 802CCD90 8FBF001C */ lw $ra, 0x1c($sp) -/* F1744 802CCD94 8FB20018 */ lw $s2, 0x18($sp) -/* F1748 802CCD98 8FB10014 */ lw $s1, 0x14($sp) -/* F174C 802CCD9C 8FB00010 */ lw $s0, 0x10($sp) -/* F1750 802CCDA0 24020002 */ addiu $v0, $zero, 2 -/* F1754 802CCDA4 03E00008 */ jr $ra -/* F1758 802CCDA8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s deleted file mode 100644 index 8aa048d12c..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ /dev/null @@ -1,52 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCDAC -/* F175C 802CCDAC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1760 802CCDB0 AFB10014 */ sw $s1, 0x14($sp) -/* F1764 802CCDB4 0080882D */ daddu $s1, $a0, $zero -/* F1768 802CCDB8 AFBF001C */ sw $ra, 0x1c($sp) -/* F176C 802CCDBC AFB20018 */ sw $s2, 0x18($sp) -/* F1770 802CCDC0 AFB00010 */ sw $s0, 0x10($sp) -/* F1774 802CCDC4 8E30000C */ lw $s0, 0xc($s1) -/* F1778 802CCDC8 8E050000 */ lw $a1, ($s0) -/* F177C 802CCDCC 0C0B1EAF */ jal get_variable -/* F1780 802CCDD0 26100004 */ addiu $s0, $s0, 4 -/* F1784 802CCDD4 0220202D */ daddu $a0, $s1, $zero -/* F1788 802CCDD8 8E050000 */ lw $a1, ($s0) -/* F178C 802CCDDC 0C0B1EAF */ jal get_variable -/* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero -/* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 -/* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 -/* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) -/* F17AC 802CCDFC 0C04792E */ jal func_8011E4B8 -/* F17B0 802CCE00 0000202D */ daddu $a0, $zero, $zero -/* F17B4 802CCE04 0040882D */ daddu $s1, $v0, $zero -/* F17B8 802CCE08 0220202D */ daddu $a0, $s1, $zero -/* F17BC 802CCE0C 0C04811D */ jal func_80120474 -/* F17C0 802CCE10 0240282D */ daddu $a1, $s2, $zero -/* F17C4 802CCE14 3C013F80 */ lui $at, 0x3f80 -/* F17C8 802CCE18 44810000 */ mtc1 $at, $f0 -/* F17CC 802CCE1C 26040028 */ addiu $a0, $s0, 0x28 -/* F17D0 802CCE20 AE110000 */ sw $s1, ($s0) -/* F17D4 802CCE24 AE000004 */ sw $zero, 4($s0) -/* F17D8 802CCE28 AE000008 */ sw $zero, 8($s0) -/* F17DC 802CCE2C AE00000C */ sw $zero, 0xc($s0) -/* F17E0 802CCE30 AE000010 */ sw $zero, 0x10($s0) -/* F17E4 802CCE34 AE000014 */ sw $zero, 0x14($s0) -/* F17E8 802CCE38 AE000018 */ sw $zero, 0x18($s0) -/* F17EC 802CCE3C E600001C */ swc1 $f0, 0x1c($s0) -/* F17F0 802CCE40 E6000020 */ swc1 $f0, 0x20($s0) -/* F17F4 802CCE44 E6000024 */ swc1 $f0, 0x24($s0) -/* F17F8 802CCE48 0C019D10 */ jal guMtxIdent -/* F17FC 802CCE4C AE000068 */ sw $zero, 0x68($s0) -/* F1800 802CCE50 8FBF001C */ lw $ra, 0x1c($sp) -/* F1804 802CCE54 8FB20018 */ lw $s2, 0x18($sp) -/* F1808 802CCE58 8FB10014 */ lw $s1, 0x14($sp) -/* F180C 802CCE5C 8FB00010 */ lw $s0, 0x10($sp) -/* F1810 802CCE60 24020002 */ addiu $v0, $zero, 2 -/* F1814 802CCE64 03E00008 */ jr $ra -/* F1818 802CCE68 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s deleted file mode 100644 index b8575a3b17..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ /dev/null @@ -1,34 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD348 -/* F1CF8 802CD348 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1CFC 802CD34C AFB10014 */ sw $s1, 0x14($sp) -/* F1D00 802CD350 0080882D */ daddu $s1, $a0, $zero -/* F1D04 802CD354 AFBF0018 */ sw $ra, 0x18($sp) -/* F1D08 802CD358 AFB00010 */ sw $s0, 0x10($sp) -/* F1D0C 802CD35C 8E30000C */ lw $s0, 0xc($s1) -/* F1D10 802CD360 8E050000 */ lw $a1, ($s0) -/* F1D14 802CD364 0C0B1EAF */ jal get_variable -/* F1D18 802CD368 26100004 */ addiu $s0, $s0, 4 -/* F1D1C 802CD36C 0220202D */ daddu $a0, $s1, $zero -/* F1D20 802CD370 8E050000 */ lw $a1, ($s0) -/* F1D24 802CD374 0C0B210B */ jal get_float_variable -/* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 -/* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 -/* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) -/* F1D40 802CD390 8C440000 */ lw $a0, ($v0) -/* F1D44 802CD394 4600008D */ trunc.w.s $f2, $f0 -/* F1D48 802CD398 44101000 */ mfc1 $s0, $f2 -/* F1D4C 802CD39C 0C047FF8 */ jal func_8011FFE0 -/* F1D50 802CD3A0 00000000 */ nop -/* F1D54 802CD3A4 A0500004 */ sb $s0, 4($v0) -/* F1D58 802CD3A8 8FBF0018 */ lw $ra, 0x18($sp) -/* F1D5C 802CD3AC 8FB10014 */ lw $s1, 0x14($sp) -/* F1D60 802CD3B0 8FB00010 */ lw $s0, 0x10($sp) -/* F1D64 802CD3B4 24020002 */ addiu $v0, $zero, 2 -/* F1D68 802CD3B8 03E00008 */ jr $ra -/* F1D6C 802CD3BC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s deleted file mode 100644 index 07b97bfebc..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD418 -/* F1DC8 802CD418 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1DCC 802CD41C AFB10014 */ sw $s1, 0x14($sp) -/* F1DD0 802CD420 0080882D */ daddu $s1, $a0, $zero -/* F1DD4 802CD424 AFBF001C */ sw $ra, 0x1c($sp) -/* F1DD8 802CD428 AFB20018 */ sw $s2, 0x18($sp) -/* F1DDC 802CD42C AFB00010 */ sw $s0, 0x10($sp) -/* F1DE0 802CD430 8E30000C */ lw $s0, 0xc($s1) -/* F1DE4 802CD434 8E050000 */ lw $a1, ($s0) -/* F1DE8 802CD438 0C0B1EAF */ jal get_variable -/* F1DEC 802CD43C 26100004 */ addiu $s0, $s0, 4 -/* F1DF0 802CD440 0220202D */ daddu $a0, $s1, $zero -/* F1DF4 802CD444 8E050004 */ lw $a1, 4($s0) -/* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) -/* F1DFC 802CD44C 0C0B1EAF */ jal get_variable -/* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) -/* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 -/* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 -/* F1E14 802CD464 8E230000 */ lw $v1, ($s1) -/* F1E18 802CD468 8C640000 */ lw $a0, ($v1) -/* F1E1C 802CD46C 0C047FF8 */ jal func_8011FFE0 -/* F1E20 802CD470 0040802D */ daddu $s0, $v0, $zero -/* F1E24 802CD474 12000004 */ beqz $s0, .L802CD488 -/* F1E28 802CD478 0040202D */ daddu $a0, $v0, $zero -/* F1E2C 802CD47C 8C820000 */ lw $v0, ($a0) -/* F1E30 802CD480 080B3525 */ j .L802CD494 -/* F1E34 802CD484 00521025 */ or $v0, $v0, $s2 -.L802CD488: -/* F1E38 802CD488 8C820000 */ lw $v0, ($a0) -/* F1E3C 802CD48C 00121827 */ nor $v1, $zero, $s2 -/* F1E40 802CD490 00431024 */ and $v0, $v0, $v1 -.L802CD494: -/* F1E44 802CD494 AC820000 */ sw $v0, ($a0) -/* F1E48 802CD498 8FBF001C */ lw $ra, 0x1c($sp) -/* F1E4C 802CD49C 8FB20018 */ lw $s2, 0x18($sp) -/* F1E50 802CD4A0 8FB10014 */ lw $s1, 0x14($sp) -/* F1E54 802CD4A4 8FB00010 */ lw $s0, 0x10($sp) -/* F1E58 802CD4A8 24020002 */ addiu $v0, $zero, 2 -/* F1E5C 802CD4AC 03E00008 */ jr $ra -/* F1E60 802CD4B0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 659a0dc841..9439fcef3b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -30,7 +30,7 @@ glabel func_802CD5C0 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) /* F1FD8 802CD628 8E100004 */ lw $s0, 4($s0) /* F1FDC 802CD62C 8E640000 */ lw $a0, ($s3) -/* F1FE0 802CD630 0C047FF8 */ jal func_8011FFE0 +/* F1FE0 802CD630 0C047FF8 */ jal get_anim_mesh /* F1FE4 802CD634 0040882D */ daddu $s1, $v0, $zero /* F1FE8 802CD638 0040202D */ daddu $a0, $v0, $zero /* F1FEC 802CD63C 0C047FE6 */ jal func_8011FF98 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index d5f620f9be..dabe2b3bf9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -30,7 +30,7 @@ glabel func_802CD6E0 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) /* F20F8 802CD748 8E150004 */ lw $s5, 4($s0) /* F20FC 802CD74C 8C640000 */ lw $a0, ($v1) -/* F2100 802CD750 0C047FF8 */ jal func_8011FFE0 +/* F2100 802CD750 0C047FF8 */ jal get_anim_mesh /* F2104 802CD754 0040882D */ daddu $s1, $v0, $zero /* F2108 802CD758 0040202D */ daddu $a0, $v0, $zero /* F210C 802CD75C 0C047FE6 */ jal func_8011FF98 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 20f51a62a8..f03ca9a136 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -30,7 +30,7 @@ glabel func_802CD7D8 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) /* F21F0 802CD840 8E100004 */ lw $s0, 4($s0) /* F21F4 802CD844 8E640000 */ lw $a0, ($s3) -/* F21F8 802CD848 0C047FF8 */ jal func_8011FFE0 +/* F21F8 802CD848 0C047FF8 */ jal get_anim_mesh /* F21FC 802CD84C 0040882D */ daddu $s1, $v0, $zero /* F2200 802CD850 0040202D */ daddu $a0, $v0, $zero /* F2204 802CD854 0C047FDD */ jal func_8011FF74 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 3e409569e9..1ffc08f192 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -30,7 +30,7 @@ glabel func_802CD8F8 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) /* F2310 802CD960 8E150004 */ lw $s5, 4($s0) /* F2314 802CD964 8C640000 */ lw $a0, ($v1) -/* F2318 802CD968 0C047FF8 */ jal func_8011FFE0 +/* F2318 802CD968 0C047FF8 */ jal get_anim_mesh /* F231C 802CD96C 0040882D */ daddu $s1, $v0, $zero /* F2320 802CD970 0040202D */ daddu $a0, $v0, $zero /* F2324 802CD974 0C047FDD */ jal func_8011FF74 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index 7799c63cce..5d2f82702b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -29,7 +29,7 @@ glabel func_802CD9F0 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) /* F2408 802CDA58 8C640000 */ lw $a0, ($v1) -/* F240C 802CDA5C 0C047FF8 */ jal func_8011FFE0 +/* F240C 802CDA5C 0C047FF8 */ jal get_anim_mesh /* F2410 802CDA60 0040802D */ daddu $s0, $v0, $zero /* F2414 802CDA64 0040202D */ daddu $a0, $v0, $zero /* F2418 802CDA68 0C047FE6 */ jal func_8011FF98 @@ -53,6 +53,6 @@ glabel func_802CD9F0 /* F2458 802CDAA8 24020002 */ addiu $v0, $zero, 2 /* F245C 802CDAAC 03E00008 */ jr $ra /* F2460 802CDAB0 27BD0028 */ addiu $sp, $sp, 0x28 -/* F2464 802CDAB4 00000000 */ nop -/* F2468 802CDAB8 00000000 */ nop -/* F246C 802CDABC 00000000 */ nop +/* F2464 802CDAB4 00000000 */ nop +/* F2468 802CDAB8 00000000 */ nop +/* F246C 802CDABC 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 72b99e0f04..1a190d84ca 100644 --- a/include/functions.h +++ b/include/functions.h @@ -93,6 +93,7 @@ ScriptInstance* start_script(Bytecode* initialLine, s32 priority, s32 initialSta ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, u8 initialState, u8 groupFlags); void func_8011B7C0(u16, s32, s32); +AnimatedMesh* get_anim_mesh(s32 arg0); void func_80137D88(s32, f32); void func_80137DA4(s32, f32); s32 func_80137E10(s32, u8, u8, u8); diff --git a/src/code_a5dd0_len_114e0.c b/src/code_a5dd0_len_114e0.c index 26d7166ec7..8f0eced19a 100644 --- a/src/code_a5dd0_len_114e0.c +++ b/src/code_a5dd0_len_114e0.c @@ -387,7 +387,9 @@ INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FF98); INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FFB4); -INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FFE0); +AnimatedMesh* get_anim_mesh(s32 animModelID) { + return (*gCurrentAnimMeshListPtr)[animModelID & ~0x800]; +} INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_80120000); diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index f04ec53b35..f21ea4917f 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -489,9 +489,53 @@ ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", LoadModelAnimation); +ApiStatus LoadModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var1 = get_variable(script, *args++); + AnimatedModel* animModel = (*gCurrentMeshAnimationListPtr)[index]; + s32 animModelID = func_8011E4B8(0); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCDAC); + func_801203AC(animModelID, var1); + animModel->animModelID = animModelID; + animModel->pos.x = 0; + animModel->pos.y = 0; + animModel->pos.z = 0; + animModel->rot.x = 0; + animModel->rot.y = 0; + animModel->rot.z = 0; + animModel->scale.x = 1.0f; + animModel->scale.y = 1.0f; + animModel->scale.z = 1.0f; + animModel->currentAnimData = NULL; + guMtxIdent(&animModel->mtx); + + return ApiStatus_DONE2; +} + +ApiStatus func_802CCDAC(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var1 = get_variable(script, *args++); + AnimatedModel* animModel = (*gCurrentMeshAnimationListPtr)[index]; + s32 animModelID = func_8011E4B8(0); + + func_80120474(animModelID, var1); + animModel->animModelID = animModelID; + animModel->pos.x = 0; + animModel->pos.y = 0; + animModel->pos.z = 0; + animModel->rot.x = 0; + animModel->rot.y = 0; + animModel->rot.z = 0; + animModel->scale.x = 1.0f; + animModel->scale.y = 1.0f; + animModel->scale.z = 1.0f; + animModel->currentAnimData = NULL; + guMtxIdent(&animModel->mtx); + + return ApiStatus_DONE2; +} ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -563,7 +607,20 @@ ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", AddAnimModelPosition); +ApiStatus AddAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; + + model->pos.x += x; + model->pos.y += y; + model->pos.z += z; + + return ApiStatus_DONE2; +} ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -595,17 +652,38 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); +ApiStatus func_802CD348(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 renderMode = get_float_variable(script, *args++); + + get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID)->renderMode = renderMode; + return ApiStatus_DONE2; +} ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[get_variable(script, *script->ptrReadPos)]; - func_8011E438(func_8011FFE0(model->animModelID)); + func_8011E438(get_anim_mesh(model->animModelID)); model->animModelID = -1; return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); +ApiStatus func_802CD418(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 a1 = *args++; + s32 var2 = get_variable(script, *args++); + AnimatedMesh* animMesh = get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID); + + if (var2) { + animMesh->flags |= a1; + } else { + animMesh->flags &= ~a1; + } + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index d41b15cb25..2ebd814720 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -768,6 +768,7 @@ set_aux_pan_v = 0x8011BC64; set_background_color_blend = 0x8011BE5C; get_background_color_blend = 0x8011BE80; queue_render_task = 0x8011D910; +get_anim_mesh = 8011FFE0; play_model_animation = 0x80120148; clear_virtual_models = 0x80120BB0; init_virtual_models = 0x80120C58; From 0628fac4a2755efa2017a22ffd10610eff08f44f Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 16:11:02 -0500 Subject: [PATCH 12/14] fix offset --- tools/symbol_addrs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 2ebd814720..be53038f32 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -768,7 +768,7 @@ set_aux_pan_v = 0x8011BC64; set_background_color_blend = 0x8011BE5C; get_background_color_blend = 0x8011BE80; queue_render_task = 0x8011D910; -get_anim_mesh = 8011FFE0; +get_anim_mesh = 0x8011FFE0; play_model_animation = 0x80120148; clear_virtual_models = 0x80120BB0; init_virtual_models = 0x80120C58; From a4bdc90eac1d4de27f106b40d3f6004c63d306f3 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 17:38:16 -0500 Subject: [PATCH 13/14] PR comments --- include/common.h | 1 - include/common_structs.h | 2 +- src/code_ED510.c | 8 ++++---- src/code_ef070_len_3400.c | 4 ++-- src/code_f2470_len_27f0.c | 4 ++-- src/world/area_dgb/dgb_01/BFD880.c | 1 + src/world/script_api/7E0E80.c | 3 ++- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/include/common.h b/include/common.h index 8e785491ea..0e3f4293aa 100644 --- a/include/common.h +++ b/include/common.h @@ -10,6 +10,5 @@ #include "enums.h" #include "si.h" #include "messages.h" -#include "ld_addrs.h" #endif diff --git a/include/common_structs.h b/include/common_structs.h index 5822802726..afedf91338 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -944,7 +944,7 @@ typedef struct GameStatus { } GameStatus; // size = 0x178 typedef struct PartnerAnimations { - /* 0x00 */ UNK_PTR standard; // should be "default" but that's a keyword + /* 0x00 */ UNK_PTR still; /* 0x04 */ UNK_PTR walk; /* 0x08 */ UNK_PTR jump; /* 0x0C */ UNK_PTR fall; diff --git a/src/code_ED510.c b/src/code_ED510.c index 2d5371141c..0a11b5af52 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -135,10 +135,10 @@ ApiStatus SetTexPanner(ScriptInstance* script, s32 isInitialCall) { ApiStatus SetModelFlag10(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; Bytecode treeIndex = get_variable(script, *thisPos++); - Bytecode var2 = get_variable(script, *thisPos++); + Bytecode enable = get_variable(script, *thisPos++); Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(treeIndex)); - if (var2 != 0) { + if (enable) { model->flags |= 0x10; } else { model->flags &= ~0x10; @@ -254,10 +254,10 @@ ApiStatus SetModelFlags(ScriptInstance* script, s32 isInitialCall) { s32 treeIndex = get_variable(script, *args++); s32 listIndex = get_model_list_index_from_tree_index(treeIndex); s32 a1 = *args++; - s32 var2 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); Model* model = get_model_from_list_index(listIndex); - if (var2) { + if (enable) { model->flags |= a1; } else { model->flags &= ~a1; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index f21ea4917f..541b4ce8c6 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -673,10 +673,10 @@ ApiStatus func_802CD418(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 a1 = *args++; - s32 var2 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); AnimatedMesh* animMesh = get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID); - if (var2) { + if (enable) { animMesh->flags |= a1; } else { animMesh->flags &= ~a1; diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index a28aa4ce57..2dedc37e82 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -246,14 +246,14 @@ ApiStatus SetNpcFlagBits(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; NpcId npcID = get_variable(script, *args++); s32 flagBits = *args++; - s32 var1 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); Npc* npc = resolve_npc(script, npcID); if (npc == NULL) { return ApiStatus_DONE2; } - if (var1) { + if (enable) { npc->flags |= flagBits; } else { npc->flags &= ~flagBits; diff --git a/src/world/area_dgb/dgb_01/BFD880.c b/src/world/area_dgb/dgb_01/BFD880.c index 0404168d14..db728f8bcf 100644 --- a/src/world/area_dgb/dgb_01/BFD880.c +++ b/src/world/area_dgb/dgb_01/BFD880.c @@ -1,4 +1,5 @@ #include "dgb_01.h" +#include "ld_addrs.h" ApiStatus func_80240000_BFD880(void) { dma_copy(&data_C20F40_ROM_START, &data_C20F40_ROM_END, &gBackgroundImage); diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 53e3974083..9844e20b5f 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -17,7 +17,8 @@ ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) { script->varTable[2] = FALSE; - if (playerStatus->actionState == 4 || playerStatus->actionState == 8) { + if (playerStatus->actionState == ActionState_BOUNCE || + playerStatus->actionState == ActionState_FALLING) { return ApiStatus_DONE2; } From 2bf94376911059bb1a87978f9518cc4fcff26437 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 18:26:29 -0500 Subject: [PATCH 14/14] PR comments --- include/functions.h | 1 + src/code_838b0_len_5900.c | 2 +- src/world/script_api/7E3700.c | 18 +++++++++--------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/functions.h b/include/functions.h index 1a190d84ca..ec6c3e77fc 100644 --- a/include/functions.h +++ b/include/functions.h @@ -81,6 +81,7 @@ PlayerData* get_player_data(void); // Partner void func_800EBA3C(Npc* partner); void func_800EBB40(Npc* partner); +void enable_partner_ai(void); void enable_partner_walking(Npc* partner, s32 val); void enable_partner_flying(Npc* partner, s32 val); void update_player_move_history(Npc* partner); diff --git a/src/code_838b0_len_5900.c b/src/code_838b0_len_5900.c index 4198a83d81..77ffeafbab 100644 --- a/src/code_838b0_len_5900.c +++ b/src/code_838b0_len_5900.c @@ -85,7 +85,7 @@ INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF300); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF314); -INCLUDE_ASM(s32, "code_838b0_len_5900", enable_partner_ai); +INCLUDE_ASM(void, "code_838b0_len_5900", enable_partner_ai, void); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF394, f32 arg0); diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index 1c19bb54ca..dc0334f9e7 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -79,29 +79,29 @@ ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } +// currentPartner is being loaded as unsigned instead of signed #ifdef NON_MATCHING ApiStatus func_80283908(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; + PlayerStatus* playerStatus2 = PLAYER_STATUS; Camera* camera = CURRENT_CAM; + s8 currentPartner = PLAYER_DATA->currentPartner; playerStatus->position.x = GAME_STATUS->savedPos.x; playerStatus->position.y = GAME_STATUS->savedPos.y; playerStatus->position.z = GAME_STATUS->savedPos.z; - if (PLAYER_DATA->currentPartner != PartnerId_NONE) { + if (currentPartner != PartnerId_NONE) { Npc* partner = get_npc_unsafe(NpcId_PARTNER); - f32 angle = clamp_angle(playerStatus->spriteFacingAngle < 180.0f ? 90.0f : -90.0f); - - partner->pos.x = playerStatus->position.x; - partner->pos.y = playerStatus->position.y; - partner->pos.z = playerStatus->position.z; - - add_vec2D_polar(&partner->pos, &partner->pos.z, playerStatus->colliderDiameter + 5, angle); + f32 angle = clamp_angle((playerStatus2->spriteFacingAngle < 180.0f) ? (90.0f) : (-90.0f)); + partner->pos.x = playerStatus2->position.x; + partner->pos.y = playerStatus2->position.y; + partner->pos.z = playerStatus2->position.z; + add_vec2D_polar(&partner->pos.x, &partner->pos.z, playerStatus2->colliderDiameter + 5, angle); enable_partner_ai(); } camera->unk_08 = 1; - return ApiStatus_DONE2; } #else