From eb41485a0a0010d1d169fb0de2d4f674171f2d69 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 26 Oct 2020 19:10:32 -0400 Subject: [PATCH] New C file split, many functions decompiled --- .../PlayEffect.s | 0 .../ShowEmote.s | 0 .../ShowSleepBubble.s | 0 .../func_802D7690.s | 0 .../func_802D7BA4.s | 0 .../func_802D7CF8.s | 0 .../func_802D7E08.s | 0 .../func_802D8248.s | 0 .../code_fa4c0_len_3bf0/DropItemEntity.s | 68 ------ .../code_fa4c0_len_3bf0/DropItemEntityB.s | 71 ------ .../code_fa4c0_len_3bf0/FadeInMusic.s | 63 ----- .../code_fa4c0_len_3bf0/MakeItemEntity.s | 68 ------ .../code_fa4c0_len_3bf0/PlaySoundAtF.s | 49 ---- .../code_fa4c0_len_3bf0/RemoveBadge.s | 40 ---- .../code_fa4c0_len_3bf0/SetItemFlags.s | 40 ---- .../code_fa4c0_len_3bf0/ShowGotItem.s | 56 ----- .../code_fa4c0_len_3bf0/func_802D5F28.s | 35 --- .../code_fa4c0_len_3bf0/func_802D5FA4.s | 17 -- .../code_fa4c0_len_3bf0/func_802D5FD8.s | 12 - .../code_fa4c0_len_3bf0/func_802D5FF8.s | 26 --- .../code_fa4c0_len_3bf0/func_802D6050.s | 12 - .../code_fa4c0_len_3bf0/func_802D6070.s | 12 - .../code_fa4c0_len_3bf0/func_802D6090.s | 26 --- .../code_fa4c0_len_3bf0/func_802D721C.s | 27 --- .../code_fa4c0_len_3bf0/func_802D7520.s | 50 ---- .../code_fa4c0_len_3bf0/func_802D75D8.s | 50 ---- include/common_structs.h | 2 +- include/functions.h | 3 + src/code_FBE10.c | 78 +++++++ src/code_b72b0_len_15ed0.c | 5 +- src/code_fa4c0_len_3bf0.c | 218 ++++++++++++------ tools/splat.yaml | 1 + 32 files changed, 228 insertions(+), 801 deletions(-) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/PlayEffect.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/ShowEmote.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/ShowSleepBubble.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/func_802D7690.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/func_802D7BA4.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/func_802D7CF8.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/func_802D7E08.s (100%) rename asm/nonmatchings/{code_fa4c0_len_3bf0 => code_FBE10}/func_802D8248.s (100%) delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntity.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntityB.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/FadeInMusic.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/MakeItemEntity.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/PlaySoundAtF.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/RemoveBadge.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/SetItemFlags.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/ShowGotItem.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5F28.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FA4.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FD8.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FF8.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6050.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6070.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6090.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D721C.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7520.s delete mode 100644 asm/nonmatchings/code_fa4c0_len_3bf0/func_802D75D8.s create mode 100644 src/code_FBE10.c diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/PlayEffect.s b/asm/nonmatchings/code_FBE10/PlayEffect.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/PlayEffect.s rename to asm/nonmatchings/code_FBE10/PlayEffect.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/ShowEmote.s b/asm/nonmatchings/code_FBE10/ShowEmote.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/ShowEmote.s rename to asm/nonmatchings/code_FBE10/ShowEmote.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/ShowSleepBubble.s b/asm/nonmatchings/code_FBE10/ShowSleepBubble.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/ShowSleepBubble.s rename to asm/nonmatchings/code_FBE10/ShowSleepBubble.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7690.s b/asm/nonmatchings/code_FBE10/func_802D7690.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7690.s rename to asm/nonmatchings/code_FBE10/func_802D7690.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7BA4.s b/asm/nonmatchings/code_FBE10/func_802D7BA4.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7BA4.s rename to asm/nonmatchings/code_FBE10/func_802D7BA4.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7CF8.s b/asm/nonmatchings/code_FBE10/func_802D7CF8.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7CF8.s rename to asm/nonmatchings/code_FBE10/func_802D7CF8.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7E08.s b/asm/nonmatchings/code_FBE10/func_802D7E08.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7E08.s rename to asm/nonmatchings/code_FBE10/func_802D7E08.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D8248.s b/asm/nonmatchings/code_FBE10/func_802D8248.s similarity index 100% rename from asm/nonmatchings/code_fa4c0_len_3bf0/func_802D8248.s rename to asm/nonmatchings/code_FBE10/func_802D8248.s diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntity.s b/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntity.s deleted file mode 100644 index a2146fa4b1..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntity.s +++ /dev/null @@ -1,68 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel DropItemEntity -/* FB770 802D6DC0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* FB774 802D6DC4 AFB1001C */ sw $s1, 0x1c($sp) -/* FB778 802D6DC8 0080882D */ daddu $s1, $a0, $zero -/* FB77C 802D6DCC AFBF0030 */ sw $ra, 0x30($sp) -/* FB780 802D6DD0 AFB5002C */ sw $s5, 0x2c($sp) -/* FB784 802D6DD4 AFB40028 */ sw $s4, 0x28($sp) -/* FB788 802D6DD8 AFB30024 */ sw $s3, 0x24($sp) -/* FB78C 802D6DDC AFB20020 */ sw $s2, 0x20($sp) -/* FB790 802D6DE0 AFB00018 */ sw $s0, 0x18($sp) -/* FB794 802D6DE4 8E30000C */ lw $s0, 0xc($s1) -/* FB798 802D6DE8 8E050000 */ lw $a1, ($s0) -/* FB79C 802D6DEC 0C0B1EAF */ jal get_variable -/* FB7A0 802D6DF0 26100004 */ addiu $s0, $s0, 4 -/* FB7A4 802D6DF4 8E050000 */ lw $a1, ($s0) -/* FB7A8 802D6DF8 26100004 */ addiu $s0, $s0, 4 -/* FB7AC 802D6DFC 0220202D */ daddu $a0, $s1, $zero -/* FB7B0 802D6E00 0C0B1EAF */ jal get_variable -/* FB7B4 802D6E04 0040A82D */ daddu $s5, $v0, $zero -/* FB7B8 802D6E08 8E050000 */ lw $a1, ($s0) -/* FB7BC 802D6E0C 26100004 */ addiu $s0, $s0, 4 -/* FB7C0 802D6E10 0220202D */ daddu $a0, $s1, $zero -/* FB7C4 802D6E14 0C0B1EAF */ jal get_variable -/* FB7C8 802D6E18 0040A02D */ daddu $s4, $v0, $zero -/* FB7CC 802D6E1C 8E050000 */ lw $a1, ($s0) -/* FB7D0 802D6E20 26100004 */ addiu $s0, $s0, 4 -/* FB7D4 802D6E24 0220202D */ daddu $a0, $s1, $zero -/* FB7D8 802D6E28 0C0B1EAF */ jal get_variable -/* FB7DC 802D6E2C 0040982D */ daddu $s3, $v0, $zero -/* FB7E0 802D6E30 8E050000 */ lw $a1, ($s0) -/* FB7E4 802D6E34 26100004 */ addiu $s0, $s0, 4 -/* FB7E8 802D6E38 0220202D */ daddu $a0, $s1, $zero -/* FB7EC 802D6E3C 0C0B1EAF */ jal get_variable -/* FB7F0 802D6E40 0040902D */ daddu $s2, $v0, $zero -/* FB7F4 802D6E44 0220202D */ daddu $a0, $s1, $zero -/* FB7F8 802D6E48 8E050000 */ lw $a1, ($s0) -/* FB7FC 802D6E4C 0C0B1EAF */ jal get_variable -/* FB800 802D6E50 0040802D */ daddu $s0, $v0, $zero -/* FB804 802D6E54 44940000 */ mtc1 $s4, $f0 -/* FB808 802D6E58 00000000 */ nop -/* FB80C 802D6E5C 46800020 */ cvt.s.w $f0, $f0 -/* FB810 802D6E60 44050000 */ mfc1 $a1, $f0 -/* FB814 802D6E64 44930000 */ mtc1 $s3, $f0 -/* FB818 802D6E68 00000000 */ nop -/* FB81C 802D6E6C 46800020 */ cvt.s.w $f0, $f0 -/* FB820 802D6E70 44060000 */ mfc1 $a2, $f0 -/* FB824 802D6E74 44920000 */ mtc1 $s2, $f0 -/* FB828 802D6E78 00000000 */ nop -/* FB82C 802D6E7C 46800020 */ cvt.s.w $f0, $f0 -/* FB830 802D6E80 44070000 */ mfc1 $a3, $f0 -/* FB834 802D6E84 02A0202D */ daddu $a0, $s5, $zero -/* FB838 802D6E88 AFB00010 */ sw $s0, 0x10($sp) -/* FB83C 802D6E8C 0C04C6A5 */ jal make_item_entity_nodelay -/* FB840 802D6E90 AFA20014 */ sw $v0, 0x14($sp) -/* FB844 802D6E94 AE220084 */ sw $v0, 0x84($s1) -/* FB848 802D6E98 8FBF0030 */ lw $ra, 0x30($sp) -/* FB84C 802D6E9C 8FB5002C */ lw $s5, 0x2c($sp) -/* FB850 802D6EA0 8FB40028 */ lw $s4, 0x28($sp) -/* FB854 802D6EA4 8FB30024 */ lw $s3, 0x24($sp) -/* FB858 802D6EA8 8FB20020 */ lw $s2, 0x20($sp) -/* FB85C 802D6EAC 8FB1001C */ lw $s1, 0x1c($sp) -/* FB860 802D6EB0 8FB00018 */ lw $s0, 0x18($sp) -/* FB864 802D6EB4 24020002 */ addiu $v0, $zero, 2 -/* FB868 802D6EB8 03E00008 */ jr $ra -/* FB86C 802D6EBC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntityB.s b/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntityB.s deleted file mode 100644 index 7afbaf0c99..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/DropItemEntityB.s +++ /dev/null @@ -1,71 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel DropItemEntityB -/* FB870 802D6EC0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* FB874 802D6EC4 AFB1001C */ sw $s1, 0x1c($sp) -/* FB878 802D6EC8 0080882D */ daddu $s1, $a0, $zero -/* FB87C 802D6ECC AFBF0030 */ sw $ra, 0x30($sp) -/* FB880 802D6ED0 AFB5002C */ sw $s5, 0x2c($sp) -/* FB884 802D6ED4 AFB40028 */ sw $s4, 0x28($sp) -/* FB888 802D6ED8 AFB30024 */ sw $s3, 0x24($sp) -/* FB88C 802D6EDC AFB20020 */ sw $s2, 0x20($sp) -/* FB890 802D6EE0 AFB00018 */ sw $s0, 0x18($sp) -/* FB894 802D6EE4 8E30000C */ lw $s0, 0xc($s1) -/* FB898 802D6EE8 8E050000 */ lw $a1, ($s0) -/* FB89C 802D6EEC 0C0B1EAF */ jal get_variable -/* FB8A0 802D6EF0 26100004 */ addiu $s0, $s0, 4 -/* FB8A4 802D6EF4 8E050000 */ lw $a1, ($s0) -/* FB8A8 802D6EF8 26100004 */ addiu $s0, $s0, 4 -/* FB8AC 802D6EFC 0220202D */ daddu $a0, $s1, $zero -/* FB8B0 802D6F00 0C0B1EAF */ jal get_variable -/* FB8B4 802D6F04 0040A82D */ daddu $s5, $v0, $zero -/* FB8B8 802D6F08 8E050000 */ lw $a1, ($s0) -/* FB8BC 802D6F0C 26100004 */ addiu $s0, $s0, 4 -/* FB8C0 802D6F10 0220202D */ daddu $a0, $s1, $zero -/* FB8C4 802D6F14 0C0B1EAF */ jal get_variable -/* FB8C8 802D6F18 0040A02D */ daddu $s4, $v0, $zero -/* FB8CC 802D6F1C 8E050000 */ lw $a1, ($s0) -/* FB8D0 802D6F20 26100004 */ addiu $s0, $s0, 4 -/* FB8D4 802D6F24 0220202D */ daddu $a0, $s1, $zero -/* FB8D8 802D6F28 0C0B1EAF */ jal get_variable -/* FB8DC 802D6F2C 0040982D */ daddu $s3, $v0, $zero -/* FB8E0 802D6F30 8E050000 */ lw $a1, ($s0) -/* FB8E4 802D6F34 26100004 */ addiu $s0, $s0, 4 -/* FB8E8 802D6F38 0220202D */ daddu $a0, $s1, $zero -/* FB8EC 802D6F3C 0C0B1EAF */ jal get_variable -/* FB8F0 802D6F40 0040902D */ daddu $s2, $v0, $zero -/* FB8F4 802D6F44 0220202D */ daddu $a0, $s1, $zero -/* FB8F8 802D6F48 8E050000 */ lw $a1, ($s0) -/* FB8FC 802D6F4C 0C0B1F6A */ jal get_variable_index -/* FB900 802D6F50 0040802D */ daddu $s0, $v0, $zero -/* FB904 802D6F54 44940000 */ mtc1 $s4, $f0 -/* FB908 802D6F58 00000000 */ nop -/* FB90C 802D6F5C 46800020 */ cvt.s.w $f0, $f0 -/* FB910 802D6F60 44050000 */ mfc1 $a1, $f0 -/* FB914 802D6F64 44930000 */ mtc1 $s3, $f0 -/* FB918 802D6F68 00000000 */ nop -/* FB91C 802D6F6C 46800020 */ cvt.s.w $f0, $f0 -/* FB920 802D6F70 44060000 */ mfc1 $a2, $f0 -/* FB924 802D6F74 44920000 */ mtc1 $s2, $f0 -/* FB928 802D6F78 00000000 */ nop -/* FB92C 802D6F7C 46800020 */ cvt.s.w $f0, $f0 -/* FB930 802D6F80 44070000 */ mfc1 $a3, $f0 -/* FB934 802D6F84 02A0202D */ daddu $a0, $s5, $zero -/* FB938 802D6F88 AFB00010 */ sw $s0, 0x10($sp) -/* FB93C 802D6F8C 0C04C6A5 */ jal make_item_entity_nodelay -/* FB940 802D6F90 AFA20014 */ sw $v0, 0x14($sp) -/* FB944 802D6F94 0040202D */ daddu $a0, $v0, $zero -/* FB948 802D6F98 24054000 */ addiu $a1, $zero, 0x4000 -/* FB94C 802D6F9C 0C04D052 */ jal set_item_entity_flags -/* FB950 802D6FA0 AE240084 */ sw $a0, 0x84($s1) -/* FB954 802D6FA4 8FBF0030 */ lw $ra, 0x30($sp) -/* FB958 802D6FA8 8FB5002C */ lw $s5, 0x2c($sp) -/* FB95C 802D6FAC 8FB40028 */ lw $s4, 0x28($sp) -/* FB960 802D6FB0 8FB30024 */ lw $s3, 0x24($sp) -/* FB964 802D6FB4 8FB20020 */ lw $s2, 0x20($sp) -/* FB968 802D6FB8 8FB1001C */ lw $s1, 0x1c($sp) -/* FB96C 802D6FBC 8FB00018 */ lw $s0, 0x18($sp) -/* FB970 802D6FC0 24020002 */ addiu $v0, $zero, 2 -/* FB974 802D6FC4 03E00008 */ jr $ra -/* FB978 802D6FC8 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/FadeInMusic.s b/asm/nonmatchings/code_fa4c0_len_3bf0/FadeInMusic.s deleted file mode 100644 index 962abd952c..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/FadeInMusic.s +++ /dev/null @@ -1,63 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel FadeInMusic -/* FA7A4 802D5DF4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* FA7A8 802D5DF8 AFB1001C */ sw $s1, 0x1c($sp) -/* FA7AC 802D5DFC 0080882D */ daddu $s1, $a0, $zero -/* FA7B0 802D5E00 AFBF0030 */ sw $ra, 0x30($sp) -/* FA7B4 802D5E04 AFB5002C */ sw $s5, 0x2c($sp) -/* FA7B8 802D5E08 AFB40028 */ sw $s4, 0x28($sp) -/* FA7BC 802D5E0C AFB30024 */ sw $s3, 0x24($sp) -/* FA7C0 802D5E10 AFB20020 */ sw $s2, 0x20($sp) -/* FA7C4 802D5E14 AFB00018 */ sw $s0, 0x18($sp) -/* FA7C8 802D5E18 8E30000C */ lw $s0, 0xc($s1) -/* FA7CC 802D5E1C 8E050000 */ lw $a1, ($s0) -/* FA7D0 802D5E20 0C0B1EAF */ jal get_variable -/* FA7D4 802D5E24 26100004 */ addiu $s0, $s0, 4 -/* FA7D8 802D5E28 8E050000 */ lw $a1, ($s0) -/* FA7DC 802D5E2C 26100004 */ addiu $s0, $s0, 4 -/* FA7E0 802D5E30 0220202D */ daddu $a0, $s1, $zero -/* FA7E4 802D5E34 0C0B1EAF */ jal get_variable -/* FA7E8 802D5E38 0040A82D */ daddu $s5, $v0, $zero -/* FA7EC 802D5E3C 8E050000 */ lw $a1, ($s0) -/* FA7F0 802D5E40 26100004 */ addiu $s0, $s0, 4 -/* FA7F4 802D5E44 0220202D */ daddu $a0, $s1, $zero -/* FA7F8 802D5E48 0C0B1EAF */ jal get_variable -/* FA7FC 802D5E4C 0040982D */ daddu $s3, $v0, $zero -/* FA800 802D5E50 8E050000 */ lw $a1, ($s0) -/* FA804 802D5E54 26100004 */ addiu $s0, $s0, 4 -/* FA808 802D5E58 0220202D */ daddu $a0, $s1, $zero -/* FA80C 802D5E5C 0C0B1EAF */ jal get_variable -/* FA810 802D5E60 0040A02D */ daddu $s4, $v0, $zero -/* FA814 802D5E64 8E050000 */ lw $a1, ($s0) -/* FA818 802D5E68 26100004 */ addiu $s0, $s0, 4 -/* FA81C 802D5E6C 0220202D */ daddu $a0, $s1, $zero -/* FA820 802D5E70 0C0B1EAF */ jal get_variable -/* FA824 802D5E74 0040902D */ daddu $s2, $v0, $zero -/* FA828 802D5E78 0220202D */ daddu $a0, $s1, $zero -/* FA82C 802D5E7C 8E050000 */ lw $a1, ($s0) -/* FA830 802D5E80 0C0B1EAF */ jal get_variable -/* FA834 802D5E84 0040802D */ daddu $s0, $v0, $zero -/* FA838 802D5E88 02A0202D */ daddu $a0, $s5, $zero -/* FA83C 802D5E8C 0260282D */ daddu $a1, $s3, $zero -/* FA840 802D5E90 00108400 */ sll $s0, $s0, 0x10 -/* FA844 802D5E94 00108403 */ sra $s0, $s0, 0x10 -/* FA848 802D5E98 00021400 */ sll $v0, $v0, 0x10 -/* FA84C 802D5E9C 00021403 */ sra $v0, $v0, 0x10 -/* FA850 802D5EA0 0280302D */ daddu $a2, $s4, $zero -/* FA854 802D5EA4 0240382D */ daddu $a3, $s2, $zero -/* FA858 802D5EA8 AFB00010 */ sw $s0, 0x10($sp) -/* FA85C 802D5EAC 0C052A59 */ jal func_8014A964 -/* FA860 802D5EB0 AFA20014 */ sw $v0, 0x14($sp) -/* FA864 802D5EB4 0002102B */ sltu $v0, $zero, $v0 -/* FA868 802D5EB8 8FBF0030 */ lw $ra, 0x30($sp) -/* FA86C 802D5EBC 8FB5002C */ lw $s5, 0x2c($sp) -/* FA870 802D5EC0 8FB40028 */ lw $s4, 0x28($sp) -/* FA874 802D5EC4 8FB30024 */ lw $s3, 0x24($sp) -/* FA878 802D5EC8 8FB20020 */ lw $s2, 0x20($sp) -/* FA87C 802D5ECC 8FB1001C */ lw $s1, 0x1c($sp) -/* FA880 802D5ED0 8FB00018 */ lw $s0, 0x18($sp) -/* FA884 802D5ED4 00021040 */ sll $v0, $v0, 1 -/* FA888 802D5ED8 03E00008 */ jr $ra -/* FA88C 802D5EDC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/MakeItemEntity.s b/asm/nonmatchings/code_fa4c0_len_3bf0/MakeItemEntity.s deleted file mode 100644 index 94cf0e61c6..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/MakeItemEntity.s +++ /dev/null @@ -1,68 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel MakeItemEntity -/* FB670 802D6CC0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* FB674 802D6CC4 AFB1001C */ sw $s1, 0x1c($sp) -/* FB678 802D6CC8 0080882D */ daddu $s1, $a0, $zero -/* FB67C 802D6CCC AFBF0030 */ sw $ra, 0x30($sp) -/* FB680 802D6CD0 AFB5002C */ sw $s5, 0x2c($sp) -/* FB684 802D6CD4 AFB40028 */ sw $s4, 0x28($sp) -/* FB688 802D6CD8 AFB30024 */ sw $s3, 0x24($sp) -/* FB68C 802D6CDC AFB20020 */ sw $s2, 0x20($sp) -/* FB690 802D6CE0 AFB00018 */ sw $s0, 0x18($sp) -/* FB694 802D6CE4 8E30000C */ lw $s0, 0xc($s1) -/* FB698 802D6CE8 8E050000 */ lw $a1, ($s0) -/* FB69C 802D6CEC 0C0B1EAF */ jal get_variable -/* FB6A0 802D6CF0 26100004 */ addiu $s0, $s0, 4 -/* FB6A4 802D6CF4 8E050000 */ lw $a1, ($s0) -/* FB6A8 802D6CF8 26100004 */ addiu $s0, $s0, 4 -/* FB6AC 802D6CFC 0220202D */ daddu $a0, $s1, $zero -/* FB6B0 802D6D00 0C0B1EAF */ jal get_variable -/* FB6B4 802D6D04 0040A82D */ daddu $s5, $v0, $zero -/* FB6B8 802D6D08 8E050000 */ lw $a1, ($s0) -/* FB6BC 802D6D0C 26100004 */ addiu $s0, $s0, 4 -/* FB6C0 802D6D10 0220202D */ daddu $a0, $s1, $zero -/* FB6C4 802D6D14 0C0B1EAF */ jal get_variable -/* FB6C8 802D6D18 0040A02D */ daddu $s4, $v0, $zero -/* FB6CC 802D6D1C 8E050000 */ lw $a1, ($s0) -/* FB6D0 802D6D20 26100004 */ addiu $s0, $s0, 4 -/* FB6D4 802D6D24 0220202D */ daddu $a0, $s1, $zero -/* FB6D8 802D6D28 0C0B1EAF */ jal get_variable -/* FB6DC 802D6D2C 0040982D */ daddu $s3, $v0, $zero -/* FB6E0 802D6D30 8E050000 */ lw $a1, ($s0) -/* FB6E4 802D6D34 26100004 */ addiu $s0, $s0, 4 -/* FB6E8 802D6D38 0220202D */ daddu $a0, $s1, $zero -/* FB6EC 802D6D3C 0C0B1EAF */ jal get_variable -/* FB6F0 802D6D40 0040902D */ daddu $s2, $v0, $zero -/* FB6F4 802D6D44 0220202D */ daddu $a0, $s1, $zero -/* FB6F8 802D6D48 8E050000 */ lw $a1, ($s0) -/* FB6FC 802D6D4C 0C0B1F6A */ jal get_variable_index -/* FB700 802D6D50 0040802D */ daddu $s0, $v0, $zero -/* FB704 802D6D54 44940000 */ mtc1 $s4, $f0 -/* FB708 802D6D58 00000000 */ nop -/* FB70C 802D6D5C 46800020 */ cvt.s.w $f0, $f0 -/* FB710 802D6D60 44050000 */ mfc1 $a1, $f0 -/* FB714 802D6D64 44930000 */ mtc1 $s3, $f0 -/* FB718 802D6D68 00000000 */ nop -/* FB71C 802D6D6C 46800020 */ cvt.s.w $f0, $f0 -/* FB720 802D6D70 44060000 */ mfc1 $a2, $f0 -/* FB724 802D6D74 44920000 */ mtc1 $s2, $f0 -/* FB728 802D6D78 00000000 */ nop -/* FB72C 802D6D7C 46800020 */ cvt.s.w $f0, $f0 -/* FB730 802D6D80 44070000 */ mfc1 $a3, $f0 -/* FB734 802D6D84 02A0202D */ daddu $a0, $s5, $zero -/* FB738 802D6D88 AFB00010 */ sw $s0, 0x10($sp) -/* FB73C 802D6D8C 0C04C6A5 */ jal make_item_entity_nodelay -/* FB740 802D6D90 AFA20014 */ sw $v0, 0x14($sp) -/* FB744 802D6D94 AE220084 */ sw $v0, 0x84($s1) -/* FB748 802D6D98 8FBF0030 */ lw $ra, 0x30($sp) -/* FB74C 802D6D9C 8FB5002C */ lw $s5, 0x2c($sp) -/* FB750 802D6DA0 8FB40028 */ lw $s4, 0x28($sp) -/* FB754 802D6DA4 8FB30024 */ lw $s3, 0x24($sp) -/* FB758 802D6DA8 8FB20020 */ lw $s2, 0x20($sp) -/* FB75C 802D6DAC 8FB1001C */ lw $s1, 0x1c($sp) -/* FB760 802D6DB0 8FB00018 */ lw $s0, 0x18($sp) -/* FB764 802D6DB4 24020002 */ addiu $v0, $zero, 2 -/* FB768 802D6DB8 03E00008 */ jr $ra -/* FB76C 802D6DBC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/PlaySoundAtF.s b/asm/nonmatchings/code_fa4c0_len_3bf0/PlaySoundAtF.s deleted file mode 100644 index cd3d089086..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/PlaySoundAtF.s +++ /dev/null @@ -1,49 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlaySoundAtF -/* FAD1C 802D636C 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* FAD20 802D6370 AFB1001C */ sw $s1, 0x1c($sp) -/* FAD24 802D6374 0080882D */ daddu $s1, $a0, $zero -/* FAD28 802D6378 AFBF0028 */ sw $ra, 0x28($sp) -/* FAD2C 802D637C AFB30024 */ sw $s3, 0x24($sp) -/* FAD30 802D6380 AFB20020 */ sw $s2, 0x20($sp) -/* FAD34 802D6384 AFB00018 */ sw $s0, 0x18($sp) -/* FAD38 802D6388 F7B60038 */ sdc1 $f22, 0x38($sp) -/* FAD3C 802D638C F7B40030 */ sdc1 $f20, 0x30($sp) -/* FAD40 802D6390 8E30000C */ lw $s0, 0xc($s1) -/* FAD44 802D6394 8E130000 */ lw $s3, ($s0) -/* FAD48 802D6398 26100004 */ addiu $s0, $s0, 4 -/* FAD4C 802D639C 8E050000 */ lw $a1, ($s0) -/* FAD50 802D63A0 0C0B1EAF */ jal get_variable -/* FAD54 802D63A4 26100004 */ addiu $s0, $s0, 4 -/* FAD58 802D63A8 8E050000 */ lw $a1, ($s0) -/* FAD5C 802D63AC 26100004 */ addiu $s0, $s0, 4 -/* FAD60 802D63B0 0220202D */ daddu $a0, $s1, $zero -/* FAD64 802D63B4 0C0B210B */ jal get_float_variable -/* FAD68 802D63B8 0040902D */ daddu $s2, $v0, $zero -/* FAD6C 802D63BC 8E050000 */ lw $a1, ($s0) -/* FAD70 802D63C0 26100004 */ addiu $s0, $s0, 4 -/* FAD74 802D63C4 0220202D */ daddu $a0, $s1, $zero -/* FAD78 802D63C8 0C0B210B */ jal get_float_variable -/* FAD7C 802D63CC 46000586 */ mov.s $f22, $f0 -/* FAD80 802D63D0 0220202D */ daddu $a0, $s1, $zero -/* FAD84 802D63D4 8E050000 */ lw $a1, ($s0) -/* FAD88 802D63D8 0C0B210B */ jal get_float_variable -/* FAD8C 802D63DC 46000506 */ mov.s $f20, $f0 -/* FAD90 802D63E0 0260202D */ daddu $a0, $s3, $zero -/* FAD94 802D63E4 4406B000 */ mfc1 $a2, $f22 -/* FAD98 802D63E8 4407A000 */ mfc1 $a3, $f20 -/* FAD9C 802D63EC 3245FFFF */ andi $a1, $s2, 0xffff -/* FADA0 802D63F0 0C052757 */ jal play_sound_at_position -/* FADA4 802D63F4 E7A00010 */ swc1 $f0, 0x10($sp) -/* FADA8 802D63F8 8FBF0028 */ lw $ra, 0x28($sp) -/* FADAC 802D63FC 8FB30024 */ lw $s3, 0x24($sp) -/* FADB0 802D6400 8FB20020 */ lw $s2, 0x20($sp) -/* FADB4 802D6404 8FB1001C */ lw $s1, 0x1c($sp) -/* FADB8 802D6408 8FB00018 */ lw $s0, 0x18($sp) -/* FADBC 802D640C D7B60038 */ ldc1 $f22, 0x38($sp) -/* FADC0 802D6410 D7B40030 */ ldc1 $f20, 0x30($sp) -/* FADC4 802D6414 24020002 */ addiu $v0, $zero, 2 -/* FADC8 802D6418 03E00008 */ jr $ra -/* FADCC 802D641C 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/RemoveBadge.s b/asm/nonmatchings/code_fa4c0_len_3bf0/RemoveBadge.s deleted file mode 100644 index 3148f922fe..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/RemoveBadge.s +++ /dev/null @@ -1,40 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel RemoveBadge -/* FBA00 802D7050 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* FBA04 802D7054 AFBF0014 */ sw $ra, 0x14($sp) -/* FBA08 802D7058 AFB00010 */ sw $s0, 0x10($sp) -/* FBA0C 802D705C 8C82000C */ lw $v0, 0xc($a0) -/* FBA10 802D7060 0C0B1EAF */ jal get_variable -/* FBA14 802D7064 8C450000 */ lw $a1, ($v0) -/* FBA18 802D7068 0040282D */ daddu $a1, $v0, $zero -/* FBA1C 802D706C 0000202D */ daddu $a0, $zero, $zero -/* FBA20 802D7070 3C108011 */ lui $s0, %hi(gPlayerData) -/* FBA24 802D7074 2610F290 */ addiu $s0, $s0, %lo(gPlayerData) -/* FBA28 802D7078 0200182D */ daddu $v1, $s0, $zero -.L802D707C: -/* FBA2C 802D707C 846200B4 */ lh $v0, 0xb4($v1) -/* FBA30 802D7080 50450001 */ beql $v0, $a1, .L802D7088 -/* FBA34 802D7084 A46000B4 */ sh $zero, 0xb4($v1) -.L802D7088: -/* FBA38 802D7088 24840001 */ addiu $a0, $a0, 1 -/* FBA3C 802D708C 28820080 */ slti $v0, $a0, 0x80 -/* FBA40 802D7090 1440FFFA */ bnez $v0, .L802D707C -/* FBA44 802D7094 24630002 */ addiu $v1, $v1, 2 -/* FBA48 802D7098 0000202D */ daddu $a0, $zero, $zero -/* FBA4C 802D709C 0200182D */ daddu $v1, $s0, $zero -.L802D70A0: -/* FBA50 802D70A0 84620208 */ lh $v0, 0x208($v1) -/* FBA54 802D70A4 50450001 */ beql $v0, $a1, .L802D70AC -/* FBA58 802D70A8 A4600208 */ sh $zero, 0x208($v1) -.L802D70AC: -/* FBA5C 802D70AC 24840001 */ addiu $a0, $a0, 1 -/* FBA60 802D70B0 28820040 */ slti $v0, $a0, 0x40 -/* FBA64 802D70B4 1440FFFA */ bnez $v0, .L802D70A0 -/* FBA68 802D70B8 24630002 */ addiu $v1, $v1, 2 -/* FBA6C 802D70BC 8FBF0014 */ lw $ra, 0x14($sp) -/* FBA70 802D70C0 8FB00010 */ lw $s0, 0x10($sp) -/* FBA74 802D70C4 24020002 */ addiu $v0, $zero, 2 -/* FBA78 802D70C8 03E00008 */ jr $ra -/* FBA7C 802D70CC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/SetItemFlags.s b/asm/nonmatchings/code_fa4c0_len_3bf0/SetItemFlags.s deleted file mode 100644 index b124b24bfa..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/SetItemFlags.s +++ /dev/null @@ -1,40 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetItemFlags -/* FBB44 802D7194 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FBB48 802D7198 AFB10014 */ sw $s1, 0x14($sp) -/* FBB4C 802D719C 0080882D */ daddu $s1, $a0, $zero -/* FBB50 802D71A0 AFBF001C */ sw $ra, 0x1c($sp) -/* FBB54 802D71A4 AFB20018 */ sw $s2, 0x18($sp) -/* FBB58 802D71A8 AFB00010 */ sw $s0, 0x10($sp) -/* FBB5C 802D71AC 8E30000C */ lw $s0, 0xc($s1) -/* FBB60 802D71B0 8E050000 */ lw $a1, ($s0) -/* FBB64 802D71B4 0C0B1EAF */ jal get_variable -/* FBB68 802D71B8 26100004 */ addiu $s0, $s0, 4 -/* FBB6C 802D71BC 0220202D */ daddu $a0, $s1, $zero -/* FBB70 802D71C0 8E050004 */ lw $a1, 4($s0) -/* FBB74 802D71C4 8E120000 */ lw $s2, ($s0) -/* FBB78 802D71C8 0C0B1EAF */ jal get_variable -/* FBB7C 802D71CC 0040882D */ daddu $s1, $v0, $zero -/* FBB80 802D71D0 0220202D */ daddu $a0, $s1, $zero -/* FBB84 802D71D4 0C04C3D6 */ jal get_item_entity -/* FBB88 802D71D8 0040802D */ daddu $s0, $v0, $zero -/* FBB8C 802D71DC 12000004 */ beqz $s0, .L802D71F0 -/* FBB90 802D71E0 0040202D */ daddu $a0, $v0, $zero -/* FBB94 802D71E4 8C820000 */ lw $v0, ($a0) -/* FBB98 802D71E8 080B5C7F */ j .L802D71FC -/* FBB9C 802D71EC 00521025 */ or $v0, $v0, $s2 -.L802D71F0: -/* FBBA0 802D71F0 8C820000 */ lw $v0, ($a0) -/* FBBA4 802D71F4 00121827 */ nor $v1, $zero, $s2 -/* FBBA8 802D71F8 00431024 */ and $v0, $v0, $v1 -.L802D71FC: -/* FBBAC 802D71FC AC820000 */ sw $v0, ($a0) -/* FBBB0 802D7200 8FBF001C */ lw $ra, 0x1c($sp) -/* FBBB4 802D7204 8FB20018 */ lw $s2, 0x18($sp) -/* FBBB8 802D7208 8FB10014 */ lw $s1, 0x14($sp) -/* FBBBC 802D720C 8FB00010 */ lw $s0, 0x10($sp) -/* FBBC0 802D7210 24020002 */ addiu $v0, $zero, 2 -/* FBBC4 802D7214 03E00008 */ jr $ra -/* FBBC8 802D7218 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/ShowGotItem.s b/asm/nonmatchings/code_fa4c0_len_3bf0/ShowGotItem.s deleted file mode 100644 index 4250a9d893..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/ShowGotItem.s +++ /dev/null @@ -1,56 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel ShowGotItem -/* FBD54 802D73A4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FBD58 802D73A8 AFB20018 */ sw $s2, 0x18($sp) -/* FBD5C 802D73AC 0080902D */ daddu $s2, $a0, $zero -/* FBD60 802D73B0 AFBF001C */ sw $ra, 0x1c($sp) -/* FBD64 802D73B4 AFB10014 */ sw $s1, 0x14($sp) -/* FBD68 802D73B8 AFB00010 */ sw $s0, 0x10($sp) -/* FBD6C 802D73BC 8E51000C */ lw $s1, 0xc($s2) -/* FBD70 802D73C0 54A00001 */ bnel $a1, $zero, .L802D73C8 -/* FBD74 802D73C4 AE400070 */ sw $zero, 0x70($s2) -.L802D73C8: -/* FBD78 802D73C8 8E430070 */ lw $v1, 0x70($s2) -/* FBD7C 802D73CC 10600005 */ beqz $v1, .L802D73E4 -/* FBD80 802D73D0 24020001 */ addiu $v0, $zero, 1 -/* FBD84 802D73D4 10620014 */ beq $v1, $v0, .L802D7428 -/* FBD88 802D73D8 00000000 */ nop -/* FBD8C 802D73DC 080B5D11 */ j .L802D7444 -/* FBD90 802D73E0 0000102D */ daddu $v0, $zero, $zero -.L802D73E4: -/* FBD94 802D73E4 8E250000 */ lw $a1, ($s1) -/* FBD98 802D73E8 26310004 */ addiu $s1, $s1, 4 -/* FBD9C 802D73EC 0C0B1EAF */ jal get_variable -/* FBDA0 802D73F0 0240202D */ daddu $a0, $s2, $zero -/* FBDA4 802D73F4 8E250000 */ lw $a1, ($s1) -/* FBDA8 802D73F8 26310004 */ addiu $s1, $s1, 4 -/* FBDAC 802D73FC 0240202D */ daddu $a0, $s2, $zero -/* FBDB0 802D7400 0C0B1EAF */ jal get_variable -/* FBDB4 802D7404 0040802D */ daddu $s0, $v0, $zero -/* FBDB8 802D7408 0200202D */ daddu $a0, $s0, $zero -/* FBDBC 802D740C 8E260000 */ lw $a2, ($s1) -/* FBDC0 802D7410 0C04C6C0 */ jal init_got_item -/* FBDC4 802D7414 0040282D */ daddu $a1, $v0, $zero -/* FBDC8 802D7418 AE420074 */ sw $v0, 0x74($s2) -/* FBDCC 802D741C 24020001 */ addiu $v0, $zero, 1 -/* FBDD0 802D7420 080B5D10 */ j .L802D7440 -/* FBDD4 802D7424 AE420070 */ sw $v0, 0x70($s2) -.L802D7428: -/* FBDD8 802D7428 8E440074 */ lw $a0, 0x74($s2) -/* FBDDC 802D742C 0C04C3D6 */ jal get_item_entity -/* FBDE0 802D7430 00000000 */ nop -/* FBDE4 802D7434 0040182D */ daddu $v1, $v0, $zero -/* FBDE8 802D7438 10600002 */ beqz $v1, .L802D7444 -/* FBDEC 802D743C 24020002 */ addiu $v0, $zero, 2 -.L802D7440: -/* FBDF0 802D7440 0000102D */ daddu $v0, $zero, $zero -.L802D7444: -/* FBDF4 802D7444 8FBF001C */ lw $ra, 0x1c($sp) -/* FBDF8 802D7448 8FB20018 */ lw $s2, 0x18($sp) -/* FBDFC 802D744C 8FB10014 */ lw $s1, 0x14($sp) -/* FBE00 802D7450 8FB00010 */ lw $s0, 0x10($sp) -/* FBE04 802D7454 03E00008 */ jr $ra -/* FBE08 802D7458 27BD0020 */ addiu $sp, $sp, 0x20 -/* FBE0C 802D745C 00000000 */ nop diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5F28.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5F28.s deleted file mode 100644 index 46a6c29b96..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5F28.s +++ /dev/null @@ -1,35 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D5F28 -/* FA8D8 802D5F28 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FA8DC 802D5F2C AFB10014 */ sw $s1, 0x14($sp) -/* FA8E0 802D5F30 0080882D */ daddu $s1, $a0, $zero -/* FA8E4 802D5F34 AFBF001C */ sw $ra, 0x1c($sp) -/* FA8E8 802D5F38 AFB20018 */ sw $s2, 0x18($sp) -/* FA8EC 802D5F3C AFB00010 */ sw $s0, 0x10($sp) -/* FA8F0 802D5F40 8E30000C */ lw $s0, 0xc($s1) -/* FA8F4 802D5F44 8E050000 */ lw $a1, ($s0) -/* FA8F8 802D5F48 0C0B1EAF */ jal get_variable -/* FA8FC 802D5F4C 26100004 */ addiu $s0, $s0, 4 -/* FA900 802D5F50 8E050000 */ lw $a1, ($s0) -/* FA904 802D5F54 26100004 */ addiu $s0, $s0, 4 -/* FA908 802D5F58 0220202D */ daddu $a0, $s1, $zero -/* FA90C 802D5F5C 0C0B1EAF */ jal get_variable -/* FA910 802D5F60 0040902D */ daddu $s2, $v0, $zero -/* FA914 802D5F64 0220202D */ daddu $a0, $s1, $zero -/* FA918 802D5F68 8E050000 */ lw $a1, ($s0) -/* FA91C 802D5F6C 0C0B1EAF */ jal get_variable -/* FA920 802D5F70 0040802D */ daddu $s0, $v0, $zero -/* FA924 802D5F74 0240202D */ daddu $a0, $s2, $zero -/* FA928 802D5F78 0200282D */ daddu $a1, $s0, $zero -/* FA92C 802D5F7C 00021400 */ sll $v0, $v0, 0x10 -/* FA930 802D5F80 0C052A95 */ jal func_8014AA54 -/* FA934 802D5F84 00023403 */ sra $a2, $v0, 0x10 -/* FA938 802D5F88 8FBF001C */ lw $ra, 0x1c($sp) -/* FA93C 802D5F8C 8FB20018 */ lw $s2, 0x18($sp) -/* FA940 802D5F90 8FB10014 */ lw $s1, 0x14($sp) -/* FA944 802D5F94 8FB00010 */ lw $s0, 0x10($sp) -/* FA948 802D5F98 24020002 */ addiu $v0, $zero, 2 -/* FA94C 802D5F9C 03E00008 */ jr $ra -/* FA950 802D5FA0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FA4.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FA4.s deleted file mode 100644 index 8ae28c2e64..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FA4.s +++ /dev/null @@ -1,17 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D5FA4 -/* FA954 802D5FA4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* FA958 802D5FA8 AFBF0010 */ sw $ra, 0x10($sp) -/* FA95C 802D5FAC 8C82000C */ lw $v0, 0xc($a0) -/* FA960 802D5FB0 0C0B1EAF */ jal get_variable -/* FA964 802D5FB4 8C450000 */ lw $a1, ($v0) -/* FA968 802D5FB8 0000202D */ daddu $a0, $zero, $zero -/* FA96C 802D5FBC 00021400 */ sll $v0, $v0, 0x10 -/* FA970 802D5FC0 0C052AC3 */ jal func_8014AB0C -/* FA974 802D5FC4 00022C03 */ sra $a1, $v0, 0x10 -/* FA978 802D5FC8 8FBF0010 */ lw $ra, 0x10($sp) -/* FA97C 802D5FCC 24020002 */ addiu $v0, $zero, 2 -/* FA980 802D5FD0 03E00008 */ jr $ra -/* FA984 802D5FD4 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FD8.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FD8.s deleted file mode 100644 index b67d14c34e..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FD8.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D5FD8 -/* FA988 802D5FD8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* FA98C 802D5FDC AFBF0010 */ sw $ra, 0x10($sp) -/* FA990 802D5FE0 0C052B69 */ jal func_8014ADA4 -/* FA994 802D5FE4 00000000 */ nop -/* FA998 802D5FE8 8FBF0010 */ lw $ra, 0x10($sp) -/* FA99C 802D5FEC 24020002 */ addiu $v0, $zero, 2 -/* FA9A0 802D5FF0 03E00008 */ jr $ra -/* FA9A4 802D5FF4 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FF8.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FF8.s deleted file mode 100644 index f0f9869b8f..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D5FF8.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D5FF8 -/* FA9A8 802D5FF8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FA9AC 802D5FFC AFB10014 */ sw $s1, 0x14($sp) -/* FA9B0 802D6000 0080882D */ daddu $s1, $a0, $zero -/* FA9B4 802D6004 AFBF0018 */ sw $ra, 0x18($sp) -/* FA9B8 802D6008 AFB00010 */ sw $s0, 0x10($sp) -/* FA9BC 802D600C 8E30000C */ lw $s0, 0xc($s1) -/* FA9C0 802D6010 8E050000 */ lw $a1, ($s0) -/* FA9C4 802D6014 0C0B1EAF */ jal get_variable -/* FA9C8 802D6018 26100004 */ addiu $s0, $s0, 4 -/* FA9CC 802D601C 0220202D */ daddu $a0, $s1, $zero -/* FA9D0 802D6020 8E050000 */ lw $a1, ($s0) -/* FA9D4 802D6024 0C0B1EAF */ jal get_variable -/* FA9D8 802D6028 0040802D */ daddu $s0, $v0, $zero -/* FA9DC 802D602C 0200202D */ daddu $a0, $s0, $zero -/* FA9E0 802D6030 0C052B7E */ jal func_8014ADF8 -/* FA9E4 802D6034 0040282D */ daddu $a1, $v0, $zero -/* FA9E8 802D6038 8FBF0018 */ lw $ra, 0x18($sp) -/* FA9EC 802D603C 8FB10014 */ lw $s1, 0x14($sp) -/* FA9F0 802D6040 8FB00010 */ lw $s0, 0x10($sp) -/* FA9F4 802D6044 24020002 */ addiu $v0, $zero, 2 -/* FA9F8 802D6048 03E00008 */ jr $ra -/* FA9FC 802D604C 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6050.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6050.s deleted file mode 100644 index 491d3b7e1c..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6050.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D6050 -/* FAA00 802D6050 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* FAA04 802D6054 AFBF0010 */ sw $ra, 0x10($sp) -/* FAA08 802D6058 0C052B9B */ jal func_8014AE6C -/* FAA0C 802D605C 00000000 */ nop -/* FAA10 802D6060 8FBF0010 */ lw $ra, 0x10($sp) -/* FAA14 802D6064 24020002 */ addiu $v0, $zero, 2 -/* FAA18 802D6068 03E00008 */ jr $ra -/* FAA1C 802D606C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6070.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6070.s deleted file mode 100644 index 9790dd0463..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6070.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D6070 -/* FAA20 802D6070 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* FAA24 802D6074 AFBF0010 */ sw $ra, 0x10($sp) -/* FAA28 802D6078 0C052BBE */ jal func_8014AEF8 -/* FAA2C 802D607C 00000000 */ nop -/* FAA30 802D6080 8FBF0010 */ lw $ra, 0x10($sp) -/* FAA34 802D6084 24020002 */ addiu $v0, $zero, 2 -/* FAA38 802D6088 03E00008 */ jr $ra -/* FAA3C 802D608C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6090.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6090.s deleted file mode 100644 index 6308bc6003..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D6090.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D6090 -/* FAA40 802D6090 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FAA44 802D6094 AFB10014 */ sw $s1, 0x14($sp) -/* FAA48 802D6098 0080882D */ daddu $s1, $a0, $zero -/* FAA4C 802D609C AFBF0018 */ sw $ra, 0x18($sp) -/* FAA50 802D60A0 AFB00010 */ sw $s0, 0x10($sp) -/* FAA54 802D60A4 8E30000C */ lw $s0, 0xc($s1) -/* FAA58 802D60A8 8E050000 */ lw $a1, ($s0) -/* FAA5C 802D60AC 0C0B1EAF */ jal get_variable -/* FAA60 802D60B0 26100004 */ addiu $s0, $s0, 4 -/* FAA64 802D60B4 0220202D */ daddu $a0, $s1, $zero -/* FAA68 802D60B8 8E050000 */ lw $a1, ($s0) -/* FAA6C 802D60BC 0C0B1EAF */ jal get_variable -/* FAA70 802D60C0 0040802D */ daddu $s0, $v0, $zero -/* FAA74 802D60C4 0200202D */ daddu $a0, $s0, $zero -/* FAA78 802D60C8 0C052BE3 */ jal func_8014AF8C -/* FAA7C 802D60CC 0040282D */ daddu $a1, $v0, $zero -/* FAA80 802D60D0 8FBF0018 */ lw $ra, 0x18($sp) -/* FAA84 802D60D4 8FB10014 */ lw $s1, 0x14($sp) -/* FAA88 802D60D8 8FB00010 */ lw $s0, 0x10($sp) -/* FAA8C 802D60DC 24020002 */ addiu $v0, $zero, 2 -/* FAA90 802D60E0 03E00008 */ jr $ra -/* FAA94 802D60E4 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D721C.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D721C.s deleted file mode 100644 index e39a3e7111..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D721C.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D721C -/* FBBCC 802D721C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* FBBD0 802D7220 AFB10014 */ sw $s1, 0x14($sp) -/* FBBD4 802D7224 0080882D */ daddu $s1, $a0, $zero -/* FBBD8 802D7228 AFBF0018 */ sw $ra, 0x18($sp) -/* FBBDC 802D722C AFB00010 */ sw $s0, 0x10($sp) -/* FBBE0 802D7230 8E30000C */ lw $s0, 0xc($s1) -/* FBBE4 802D7234 8E050000 */ lw $a1, ($s0) -/* FBBE8 802D7238 0C0B1EAF */ jal get_variable -/* FBBEC 802D723C 26100004 */ addiu $s0, $s0, 4 -/* FBBF0 802D7240 0220202D */ daddu $a0, $s1, $zero -/* FBBF4 802D7244 8E050000 */ lw $a1, ($s0) -/* FBBF8 802D7248 0C0B1EAF */ jal get_variable -/* FBBFC 802D724C 0040802D */ daddu $s0, $v0, $zero -/* FBC00 802D7250 0200202D */ daddu $a0, $s0, $zero -/* FBC04 802D7254 0C04C3D6 */ jal get_item_entity -/* FBC08 802D7258 0040802D */ daddu $s0, $v0, $zero -/* FBC0C 802D725C A050002F */ sb $s0, 0x2f($v0) -/* FBC10 802D7260 8FBF0018 */ lw $ra, 0x18($sp) -/* FBC14 802D7264 8FB10014 */ lw $s1, 0x14($sp) -/* FBC18 802D7268 8FB00010 */ lw $s0, 0x10($sp) -/* FBC1C 802D726C 24020002 */ addiu $v0, $zero, 2 -/* FBC20 802D7270 03E00008 */ jr $ra -/* FBC24 802D7274 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7520.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7520.s deleted file mode 100644 index 5e0d3b536d..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D7520.s +++ /dev/null @@ -1,50 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D7520 -/* FBED0 802D7520 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* FBED4 802D7524 AFB1001C */ sw $s1, 0x1c($sp) -/* FBED8 802D7528 0080882D */ daddu $s1, $a0, $zero -/* FBEDC 802D752C AFBF0020 */ sw $ra, 0x20($sp) -/* FBEE0 802D7530 AFB00018 */ sw $s0, 0x18($sp) -/* FBEE4 802D7534 F7B80038 */ sdc1 $f24, 0x38($sp) -/* FBEE8 802D7538 F7B60030 */ sdc1 $f22, 0x30($sp) -/* FBEEC 802D753C F7B40028 */ sdc1 $f20, 0x28($sp) -/* FBEF0 802D7540 8E30000C */ lw $s0, 0xc($s1) -/* FBEF4 802D7544 8E050000 */ lw $a1, ($s0) -/* FBEF8 802D7548 0C0B210B */ jal get_float_variable -/* FBEFC 802D754C 26100004 */ addiu $s0, $s0, 4 -/* FBF00 802D7550 8E050000 */ lw $a1, ($s0) -/* FBF04 802D7554 26100004 */ addiu $s0, $s0, 4 -/* FBF08 802D7558 0220202D */ daddu $a0, $s1, $zero -/* FBF0C 802D755C 0C0B210B */ jal get_float_variable -/* FBF10 802D7560 46000606 */ mov.s $f24, $f0 -/* FBF14 802D7564 8E050000 */ lw $a1, ($s0) -/* FBF18 802D7568 26100004 */ addiu $s0, $s0, 4 -/* FBF1C 802D756C 0220202D */ daddu $a0, $s1, $zero -/* FBF20 802D7570 0C0B210B */ jal get_float_variable -/* FBF24 802D7574 46000586 */ mov.s $f22, $f0 -/* FBF28 802D7578 0220202D */ daddu $a0, $s1, $zero -/* FBF2C 802D757C 8E050000 */ lw $a1, ($s0) -/* FBF30 802D7580 0C0B1EAF */ jal get_variable -/* FBF34 802D7584 46000506 */ mov.s $f20, $f0 -/* FBF38 802D7588 0040382D */ daddu $a3, $v0, $zero -/* FBF3C 802D758C 4600C306 */ mov.s $f12, $f24 -/* FBF40 802D7590 4406A000 */ mfc1 $a2, $f20 -/* FBF44 802D7594 0C0B5D18 */ jal func_802D7460 -/* FBF48 802D7598 4600B386 */ mov.s $f14, $f22 -/* FBF4C 802D759C 24042055 */ addiu $a0, $zero, 0x2055 -/* FBF50 802D75A0 4406C000 */ mfc1 $a2, $f24 -/* FBF54 802D75A4 4407B000 */ mfc1 $a3, $f22 -/* FBF58 802D75A8 0000282D */ daddu $a1, $zero, $zero -/* FBF5C 802D75AC 0C052757 */ jal play_sound_at_position -/* FBF60 802D75B0 E7B40010 */ swc1 $f20, 0x10($sp) -/* FBF64 802D75B4 8FBF0020 */ lw $ra, 0x20($sp) -/* FBF68 802D75B8 8FB1001C */ lw $s1, 0x1c($sp) -/* FBF6C 802D75BC 8FB00018 */ lw $s0, 0x18($sp) -/* FBF70 802D75C0 D7B80038 */ ldc1 $f24, 0x38($sp) -/* FBF74 802D75C4 D7B60030 */ ldc1 $f22, 0x30($sp) -/* FBF78 802D75C8 D7B40028 */ ldc1 $f20, 0x28($sp) -/* FBF7C 802D75CC 24020002 */ addiu $v0, $zero, 2 -/* FBF80 802D75D0 03E00008 */ jr $ra -/* FBF84 802D75D4 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D75D8.s b/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D75D8.s deleted file mode 100644 index 7d566eda92..0000000000 --- a/asm/nonmatchings/code_fa4c0_len_3bf0/func_802D75D8.s +++ /dev/null @@ -1,50 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D75D8 -/* FBF88 802D75D8 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* FBF8C 802D75DC AFB1001C */ sw $s1, 0x1c($sp) -/* FBF90 802D75E0 0080882D */ daddu $s1, $a0, $zero -/* FBF94 802D75E4 AFBF0020 */ sw $ra, 0x20($sp) -/* FBF98 802D75E8 AFB00018 */ sw $s0, 0x18($sp) -/* FBF9C 802D75EC F7B80038 */ sdc1 $f24, 0x38($sp) -/* FBFA0 802D75F0 F7B60030 */ sdc1 $f22, 0x30($sp) -/* FBFA4 802D75F4 F7B40028 */ sdc1 $f20, 0x28($sp) -/* FBFA8 802D75F8 8E30000C */ lw $s0, 0xc($s1) -/* FBFAC 802D75FC 8E050000 */ lw $a1, ($s0) -/* FBFB0 802D7600 0C0B210B */ jal get_float_variable -/* FBFB4 802D7604 26100004 */ addiu $s0, $s0, 4 -/* FBFB8 802D7608 8E050000 */ lw $a1, ($s0) -/* FBFBC 802D760C 26100004 */ addiu $s0, $s0, 4 -/* FBFC0 802D7610 0220202D */ daddu $a0, $s1, $zero -/* FBFC4 802D7614 0C0B210B */ jal get_float_variable -/* FBFC8 802D7618 46000606 */ mov.s $f24, $f0 -/* FBFCC 802D761C 8E050000 */ lw $a1, ($s0) -/* FBFD0 802D7620 26100004 */ addiu $s0, $s0, 4 -/* FBFD4 802D7624 0220202D */ daddu $a0, $s1, $zero -/* FBFD8 802D7628 0C0B210B */ jal get_float_variable -/* FBFDC 802D762C 46000586 */ mov.s $f22, $f0 -/* FBFE0 802D7630 0220202D */ daddu $a0, $s1, $zero -/* FBFE4 802D7634 8E050000 */ lw $a1, ($s0) -/* FBFE8 802D7638 0C0B1EAF */ jal get_variable -/* FBFEC 802D763C 46000506 */ mov.s $f20, $f0 -/* FBFF0 802D7640 0040382D */ daddu $a3, $v0, $zero -/* FBFF4 802D7644 4600C306 */ mov.s $f12, $f24 -/* FBFF8 802D7648 4406A000 */ mfc1 $a2, $f20 -/* FBFFC 802D764C 0C0B5D30 */ jal func_802D74C0 -/* FC000 802D7650 4600B386 */ mov.s $f14, $f22 -/* FC004 802D7654 24040378 */ addiu $a0, $zero, 0x378 -/* FC008 802D7658 4406C000 */ mfc1 $a2, $f24 -/* FC00C 802D765C 4407B000 */ mfc1 $a3, $f22 -/* FC010 802D7660 0000282D */ daddu $a1, $zero, $zero -/* FC014 802D7664 0C052757 */ jal play_sound_at_position -/* FC018 802D7668 E7B40010 */ swc1 $f20, 0x10($sp) -/* FC01C 802D766C 8FBF0020 */ lw $ra, 0x20($sp) -/* FC020 802D7670 8FB1001C */ lw $s1, 0x1c($sp) -/* FC024 802D7674 8FB00018 */ lw $s0, 0x18($sp) -/* FC028 802D7678 D7B80038 */ ldc1 $f24, 0x38($sp) -/* FC02C 802D767C D7B60030 */ ldc1 $f22, 0x30($sp) -/* FC030 802D7680 D7B40028 */ ldc1 $f20, 0x28($sp) -/* FC034 802D7684 24020002 */ addiu $v0, $zero, 2 -/* FC038 802D7688 03E00008 */ jr $ra -/* FC03C 802D768C 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/include/common_structs.h b/include/common_structs.h index 844512d262..007d2052f5 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -779,7 +779,7 @@ typedef struct ItemEntity { /* 0x28 */ u32* savedReadPos; /* 0x2C */ char unk_2C[2]; /* 0x2E */ u8 unkCounter; - /* 0x2F */ char unk_2F; + /* 0x2F */ s8 unk_2F; /* 0x30 */ f32 scale; /* 0x34 */ char unk_34[40]; } ItemEntity; // size = 0x5C diff --git a/include/functions.h b/include/functions.h index c7e10897e3..f82f6ddd45 100644 --- a/include/functions.h +++ b/include/functions.h @@ -92,6 +92,9 @@ f32 update_lerp(Easing easing, f32 start, f32 end, s32 elapsed, s32 duration); void make_item_entity_delayed(s32 itemID, f32 x, f32 y, f32 z, s32 unk1, s32 unk2, s32 unk3); void set_item_entity_position(s32 itemEntityIndex, f32 x, f32 y, f32 z); +ItemEntity* get_item_entity(s32 itemEntityIndex); +s32 make_item_entity_nodelay(s32 itemID, f32 x, f32 y, f32 z, ItemSpawnMode itemSpawnMode, s32 pickupVar); + void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height); diff --git a/src/code_FBE10.c b/src/code_FBE10.c new file mode 100644 index 0000000000..559197088e --- /dev/null +++ b/src/code_FBE10.c @@ -0,0 +1,78 @@ +#include "common.h" + +void func_802D7460(f32 x, f32 y, f32 z, s32 arg3); +INCLUDE_ASM(void, "code_fa4c0_len_3bf0", func_802D7460, f32 x, f32 y, f32 z, s32 arg3); + +void func_802D74C0(f32 x, f32 y, f32 z, s32 arg3); +INCLUDE_ASM(void, "code_fa4c0_len_3bf0", func_802D74C0, f32 x, f32 y, f32 z, s32 arg3); + +ApiStatus func_802D7520(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + + func_802D7460(x, y, z, get_variable(script, *args++)); + play_sound_at_position(0x2055, 0, x, y, z); + return ApiStatus_DONE2; +} + +ApiStatus func_802D75D8(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + + func_802D74C0(x, y, z, get_variable(script, *args++)); + play_sound_at_position(0x378, 0, x, y, z); + return ApiStatus_DONE2; +} + +INCLUDE_ASM(s32, "code_FBE10", func_802D7690); + +INCLUDE_ASM(s32, "code_FBE10", ShowEmote, ScriptInstance* script, s32 isInitialCall); + +ApiStatus RemoveEffect(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + + remove_effect(get_variable(script, *args++)); + return ApiStatus_DONE2; +} + +ApiStatus func_802D7B10(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32* ptrValue = get_variable(script, *args++); + + *ptrValue |= 0x10; + return ApiStatus_DONE2; +} + +ApiStatus func_802D7B44(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32* ptrValue = get_variable(script, *args++); + s32* ptrTemp = ptrValue[3]; + + ptrTemp[5] = 10; + return ApiStatus_DONE2; +} + +ApiStatus func_802D7B74(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32* ptrValue = get_variable(script, *args++); + s32* ptrTemp = ptrValue[3]; + + ptrTemp[12] = 5; + return ApiStatus_DONE2; +} + +INCLUDE_ASM(s32, "code_FBE10", func_802D7BA4); + +INCLUDE_ASM(s32, "code_FBE10", func_802D7CF8); + +INCLUDE_ASM(s32, "code_FBE10", func_802D7E08); + +INCLUDE_ASM(s32, "code_FBE10", ShowSleepBubble); + +INCLUDE_ASM(s32, "code_FBE10", func_802D8248); + +INCLUDE_ASM(s32, "code_FBE10", PlayEffect); diff --git a/src/code_b72b0_len_15ed0.c b/src/code_b72b0_len_15ed0.c index c024268e53..035599feaf 100644 --- a/src/code_b72b0_len_15ed0.c +++ b/src/code_b72b0_len_15ed0.c @@ -187,7 +187,7 @@ INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80130ACC); INCLUDE_ASM(s32, "code_b72b0_len_15ed0", draw_coin_sparkles); -INCLUDE_ASM(s32, "code_b72b0_len_15ed0", get_item_entity); +INCLUDE_ASM(ItemEntity*, "code_b72b0_len_15ed0", get_item_entity, s32 itemEntityIndex); INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80130F70); @@ -201,7 +201,8 @@ INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80131128); INCLUDE_ASM(s32, "code_b72b0_len_15ed0", make_item_entity); -INCLUDE_ASM(s32, "code_b72b0_len_15ed0", make_item_entity_nodelay); +INCLUDE_ASM(s32, "code_b72b0_len_15ed0", make_item_entity_nodelay, s32 itemID, f32 x, f32 y, f32 z, + ItemSpawnMode itemSpawnMode, s32 pickupVar); INCLUDE_ASM(void, "code_b72b0_len_15ed0", make_item_entity_delayed, s32 itemID, f32 x, f32 y, f32 z, s32 unk1, s32 unk2, diff --git a/src/code_fa4c0_len_3bf0.c b/src/code_fa4c0_len_3bf0.c index a3f68de5e9..f01862a7a4 100644 --- a/src/code_fa4c0_len_3bf0.c +++ b/src/code_fa4c0_len_3bf0.c @@ -22,23 +22,60 @@ ApiStatus SetMusicTrack(ScriptInstance* script, s32 isInitialCall) { return (set_music_track(musicPlayer, songID, variation, 0x1F4, volume) != 0) * 2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", FadeInMusic, ScriptInstance* script, s32 isInitialCall); +ApiStatus FadeInMusic(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var0 = get_variable(script, *args++); + s32 var1 = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + s16 var4 = get_variable(script, *args++); + s16 var5 = get_variable(script, *args++); + + return (func_8014A964(var0, var1, var2, var3, var4, var5) != 0) * 2; +} INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D5EE0); -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D5F28); +ApiStatus func_802D5F28(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D5FA4); + func_8014AA54(get_variable(script, *args++), get_variable(script, *args++), (s16)get_variable(script, *args++)); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D5FD8); +ApiStatus func_802D5FA4(ScriptInstance* script, s32 isInitialCall) { + func_8014AB0C(0, (s16)get_variable(script, *script->ptrReadPos)); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D5FF8); +ApiStatus func_802D5FD8(ScriptInstance* script, s32 isInitialCall) { + func_8014ADA4(); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D6050); +ApiStatus func_802D5FF8(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D6070); + func_8014ADF8(get_variable(script, *args++), get_variable(script, *args++)); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D6090); +ApiStatus func_802D6050(ScriptInstance* script, s32 isInitialCall) { + func_8014AE6C(); + return ApiStatus_DONE2; +} + +ApiStatus func_802D6070(ScriptInstance* script, s32 isInitialCall) { + func_8014AEF8(); + return ApiStatus_DONE2; +} + +ApiStatus func_802D6090(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + + func_8014AF8C(get_variable(script, *args++), get_variable(script, *args++)); + return ApiStatus_DONE2; +} //INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", ClearAmbientSounds); ApiStatus ClearAmbientSounds(ScriptInstance* script, s32 isInitialCall) { @@ -112,7 +149,17 @@ ApiStatus func_802D6340(ScriptInstance* script, s32 initialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", PlaySoundAtF, ScriptInstance* script, s32 isInitialCall); +ApiStatus PlaySoundAtF(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Bytecode soundID = *args++; + u16 value2 = 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++); + + play_sound_at_position(soundID, value2, x, y, z); + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D6420); @@ -289,13 +336,32 @@ ApiStatus RemoveFortressKeys(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", MakeItemEntity, ScriptInstance* script, s32 isInitialCall); +ApiStatus MakeItemEntity(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 itemID = get_variable(script, *args++); + s32 x = get_variable(script, *args++); + s32 y = get_variable(script, *args++); + s32 z = get_variable(script, *args++); + s32 itemSpawnMode = get_variable(script, *args++); + s32 pickupVar = get_variable_index(script, *args++); -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", DropItemEntity, ScriptInstance* script, s32 isInitialCall); + script->varTable[0] = make_item_entity_nodelay(itemID, x, y, z, itemSpawnMode, pickupVar); + return ApiStatus_DONE2; +} + +ApiStatus DropItemEntity(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 itemID = get_variable(script, *args++); + s32 x = get_variable(script, *args++); + s32 y = get_variable(script, *args++); + s32 z = get_variable(script, *args++); + s32 itemSpawnMode = get_variable(script, *args++); + s32 pickupVar = get_variable(script, *args++); + + script->varTable[0] = make_item_entity_nodelay(itemID, x, y, z, itemSpawnMode, pickupVar); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", DropItemEntityB, ScriptInstance* script, s32 isInitialCall); -/* -// Close to working ApiStatus DropItemEntityB(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 itemID = get_variable(script, *args++); @@ -303,13 +369,12 @@ ApiStatus DropItemEntityB(ScriptInstance* script, s32 isInitialCall) { s32 y = get_variable(script, *args++); s32 z = get_variable(script, *args++); s32 itemSpawnMode = get_variable(script, *args++); - s32 pickupFlag = get_variable(script, *args++); + s32 pickupVar = get_variable_index(script, *args++); - script->varTable[0] = make_item_entity_nodelay(itemID, x, y, z); - set_item_entity_flags(script, 0x4000); + script->varTable[0] = make_item_entity_nodelay(itemID, x, y, z, itemSpawnMode, pickupVar); + set_item_entity_flags(script->varTable[0], 0x4000); return ApiStatus_DONE2; } -*/ ApiStatus RemoveItemEntity(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -328,7 +393,25 @@ ApiStatus AddBadge(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", RemoveBadge, ScriptInstance* script, s32 isInitialCall); +ApiStatus RemoveBadge(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + PlayerData* playerData = PLAYER_DATA; + s32 badge = get_variable(script, *args++); + s32 i; + + for (i = 0; i < ARRAY_COUNT(playerData->badges); i++) { + if (playerData->badges[i] == badge) { + playerData->badges[i] = 0; + } + } + + for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) { + if (playerData->equippedBadges[i] == badge) { + playerData->equippedBadges[i] = 0; + } + } + return ApiStatus_DONE2; +} ApiStatus SetItemPos(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -348,9 +431,30 @@ ApiStatus SetItemPos(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", SetItemFlags, ScriptInstance* script, s32 isInitialCall); +ApiStatus SetItemFlags(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 itemEntityIndex = get_variable(script, *args++); + s32 flagBits = *args++; + s32 var2 = get_variable(script, *args++); + ItemEntity* itemEntity = get_item_entity(itemEntityIndex); -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D721C); + if (var2 != 0) { + itemEntity->flags |= flagBits; + } else { + itemEntity->flags &= ~flagBits; + } + return ApiStatus_DONE2; +} +; +ApiStatus func_802D721C(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 itemEntityIndex = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + ItemEntity* itemEntity = get_item_entity(itemEntityIndex); + + itemEntity->unk_2F = var2; + return ApiStatus_DONE2; +} ApiStatus AddCoin(ScriptInstance* script, s32 isInitialCall) { script->varTable[0] = add_coins(get_variable(script, *script->ptrReadPos)); @@ -378,61 +482,23 @@ ApiStatus GetItemPower(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", ShowGotItem, ScriptInstance* script, s32 isInitialCall); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7460); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D74C0); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7520); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D75D8); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7690); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", ShowEmote, ScriptInstance* script, s32 isInitialCall); - -ApiStatus RemoveEffect(ScriptInstance* script, s32 isInitialCall) { +ApiStatus ShowGotItem(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; + ItemEntity* e; - remove_effect(get_variable(script, *args++)); - return ApiStatus_DONE2; + if (isInitialCall) { + script->functionTemp[0].s = 0; + } + + switch (script->functionTemp[0].s) { + case 0: + script->functionTemp[1].s = init_got_item(get_variable(script, *args++), get_variable(script, *args++), *args++); + script->functionTemp[0].s = 1; + break; + case 1: + if (get_item_entity(script->functionTemp[1].s) == NULL) { + return ApiStatus_DONE2; + } + } + return ApiStatus_BLOCK; } - -ApiStatus func_802D7B10(ScriptInstance* script, s32 isInitialCall) { - Bytecode* args = script->ptrReadPos; - s32* ptrValue = get_variable(script, *args++); - - *ptrValue |= 0x10; - return ApiStatus_DONE2; -} - -ApiStatus func_802D7B44(ScriptInstance* script, s32 isInitialCall) { - Bytecode* args = script->ptrReadPos; - s32* ptrValue = get_variable(script, *args++); - s32* ptrTemp = ptrValue[3]; - - ptrTemp[5] = 10; - return ApiStatus_DONE2; -} - -ApiStatus func_802D7B74(ScriptInstance* script, s32 isInitialCall) { - Bytecode* args = script->ptrReadPos; - s32* ptrValue = get_variable(script, *args++); - s32* ptrTemp = ptrValue[3]; - - ptrTemp[12] = 5; - return ApiStatus_DONE2; -} - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7BA4); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7CF8); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D7E08); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", ShowSleepBubble); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", func_802D8248); - -INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", PlayEffect); diff --git a/tools/splat.yaml b/tools/splat.yaml index aa6a048f39..1352b2dab6 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -248,6 +248,7 @@ segments: - [0xf5750, "c", "code_F5750"] - [0xf8f60, "c", "code_f8f60_len_1560"] - [0xfa4c0, "c", "code_fa4c0_len_3bf0"] + - [0xFBE10, "c"] - [0xfe0b0, "c", "code_fe0b0_len_5a0"] - [0xFE650, ".data", "code_e79b0_len_1920"] - [0xFE660, "bin"]