From b71a05cd97b633cce79be6aec776e0c722bbaca6 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 18 Oct 2020 20:04:18 -0400 Subject: [PATCH] world_goombaria --- .../code_324F10/func_802BD100_324F10.s | 9 ---- .../code_324F10/func_802BD114_324F10.s | 19 -------- .../code_324F10/func_802BD14C_324F10.s | 29 ------------ .../code_324F10/func_802BD1AC_324F10.s | 6 --- asm/nonmatchings/code_324F10/func_802BD1B4.s | 20 --------- include/functions.h | 5 ++- src/code_324F10.c | 11 ----- src/code_838b0_len_5900.c | 8 ++-- src/world_goombaria.c | 44 +++++++++++++++++++ src/world_twink.c | 2 +- tools/splat.yaml | 2 +- 11 files changed, 54 insertions(+), 101 deletions(-) delete mode 100644 asm/nonmatchings/code_324F10/func_802BD100_324F10.s delete mode 100644 asm/nonmatchings/code_324F10/func_802BD114_324F10.s delete mode 100644 asm/nonmatchings/code_324F10/func_802BD14C_324F10.s delete mode 100644 asm/nonmatchings/code_324F10/func_802BD1AC_324F10.s delete mode 100644 asm/nonmatchings/code_324F10/func_802BD1B4.s delete mode 100644 src/code_324F10.c create mode 100644 src/world_goombaria.c diff --git a/asm/nonmatchings/code_324F10/func_802BD100_324F10.s b/asm/nonmatchings/code_324F10/func_802BD100_324F10.s deleted file mode 100644 index 5c9845f850..0000000000 --- a/asm/nonmatchings/code_324F10/func_802BD100_324F10.s +++ /dev/null @@ -1,9 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD100_324F10 -/* 324F10 802BD100 24020018 */ addiu $v0, $zero, 0x18 -/* 324F14 802BD104 A48200A8 */ sh $v0, 0xa8($a0) -/* 324F18 802BD108 24020014 */ addiu $v0, $zero, 0x14 -/* 324F1C 802BD10C 03E00008 */ jr $ra -/* 324F20 802BD110 A48200A6 */ sh $v0, 0xa6($a0) diff --git a/asm/nonmatchings/code_324F10/func_802BD114_324F10.s b/asm/nonmatchings/code_324F10/func_802BD114_324F10.s deleted file mode 100644 index c88c4d71f7..0000000000 --- a/asm/nonmatchings/code_324F10/func_802BD114_324F10.s +++ /dev/null @@ -1,19 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD114_324F10 -/* 324F24 802BD114 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 324F28 802BD118 AFBF0014 */ sw $ra, 0x14($sp) -/* 324F2C 802BD11C AFB00010 */ sw $s0, 0x10($sp) -/* 324F30 802BD120 10A00003 */ beqz $a1, .L802BD130 -/* 324F34 802BD124 8C90014C */ lw $s0, 0x14c($a0) -/* 324F38 802BD128 0C03BB31 */ jal func_800EECC4 -/* 324F3C 802BD12C 0200202D */ daddu $a0, $s0, $zero -.L802BD130: -/* 324F40 802BD130 0C03BB3A */ jal func_800EECE8 -/* 324F44 802BD134 0200202D */ daddu $a0, $s0, $zero -/* 324F48 802BD138 8FBF0014 */ lw $ra, 0x14($sp) -/* 324F4C 802BD13C 8FB00010 */ lw $s0, 0x10($sp) -/* 324F50 802BD140 0002102B */ sltu $v0, $zero, $v0 -/* 324F54 802BD144 03E00008 */ jr $ra -/* 324F58 802BD148 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_324F10/func_802BD14C_324F10.s b/asm/nonmatchings/code_324F10/func_802BD14C_324F10.s deleted file mode 100644 index 810cda6b13..0000000000 --- a/asm/nonmatchings/code_324F10/func_802BD14C_324F10.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD14C_324F10 -/* 324F5C 802BD14C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 324F60 802BD150 AFB10014 */ sw $s1, 0x14($sp) -/* 324F64 802BD154 3C118011 */ lui $s1, %hi(gPlayerData) -/* 324F68 802BD158 2631F290 */ addiu $s1, $s1, %lo(gPlayerData) -/* 324F6C 802BD15C AFBF0018 */ sw $ra, 0x18($sp) -/* 324F70 802BD160 AFB00010 */ sw $s0, 0x10($sp) -/* 324F74 802BD164 8C90014C */ lw $s0, 0x14c($a0) -/* 324F78 802BD168 10A00003 */ beqz $a1, .L802BD178 -/* 324F7C 802BD16C 0200202D */ daddu $a0, $s0, $zero -/* 324F80 802BD170 0C03AE2A */ jal enable_partner_walking -/* 324F84 802BD174 24050001 */ addiu $a1, $zero, 1 -.L802BD178: -/* 324F88 802BD178 0C03AE8F */ jal func_800EBA3C -/* 324F8C 802BD17C 0200202D */ daddu $a0, $s0, $zero -/* 324F90 802BD180 0C03AED0 */ jal func_800EBB40 -/* 324F94 802BD184 0200202D */ daddu $a0, $s0, $zero -/* 324F98 802BD188 8E22031C */ lw $v0, 0x31c($s1) -/* 324F9C 802BD18C 24420001 */ addiu $v0, $v0, 1 -/* 324FA0 802BD190 AE22031C */ sw $v0, 0x31c($s1) -/* 324FA4 802BD194 8FBF0018 */ lw $ra, 0x18($sp) -/* 324FA8 802BD198 8FB10014 */ lw $s1, 0x14($sp) -/* 324FAC 802BD19C 8FB00010 */ lw $s0, 0x10($sp) -/* 324FB0 802BD1A0 0000102D */ daddu $v0, $zero, $zero -/* 324FB4 802BD1A4 03E00008 */ jr $ra -/* 324FB8 802BD1A8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_324F10/func_802BD1AC_324F10.s b/asm/nonmatchings/code_324F10/func_802BD1AC_324F10.s deleted file mode 100644 index dbdb8d2016..0000000000 --- a/asm/nonmatchings/code_324F10/func_802BD1AC_324F10.s +++ /dev/null @@ -1,6 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD1AC_324F10 -/* 324FBC 802BD1AC 03E00008 */ jr $ra -/* 324FC0 802BD1B0 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_324F10/func_802BD1B4.s b/asm/nonmatchings/code_324F10/func_802BD1B4.s deleted file mode 100644 index 3ceb9239aa..0000000000 --- a/asm/nonmatchings/code_324F10/func_802BD1B4.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD1B4 -/* 324FC4 802BD1B4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 324FC8 802BD1B8 AFBF0014 */ sw $ra, 0x14($sp) -/* 324FCC 802BD1BC AFB00010 */ sw $s0, 0x10($sp) -/* 324FD0 802BD1C0 10A00003 */ beqz $a1, .L802BD1D0 -/* 324FD4 802BD1C4 8C90014C */ lw $s0, 0x14c($a0) -/* 324FD8 802BD1C8 0C03BA65 */ jal func_800EE994 -/* 324FDC 802BD1CC 0200202D */ daddu $a0, $s0, $zero -.L802BD1D0: -/* 324FE0 802BD1D0 0C03BA6E */ jal func_800EE9B8 -/* 324FE4 802BD1D4 0200202D */ daddu $a0, $s0, $zero -/* 324FE8 802BD1D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 324FEC 802BD1DC 8FB00010 */ lw $s0, 0x10($sp) -/* 324FF0 802BD1E0 0002102B */ sltu $v0, $zero, $v0 -/* 324FF4 802BD1E4 03E00008 */ jr $ra -/* 324FF8 802BD1E8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 324FFC 802BD1EC 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 7775116e67..98cb02325b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -62,7 +62,10 @@ s32 func_800555E4(s32); s32 osGetId(); // Partner -void enable_partner_flying(Npc* partner, s32 isFlying); +void func_800EBA3C(Npc* partner); +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); void func_800ED5D0(Npc* partner); diff --git a/src/code_324F10.c b/src/code_324F10.c deleted file mode 100644 index 7c57c13432..0000000000 --- a/src/code_324F10.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "common.h" - -INCLUDE_ASM(s32, "code_324F10", func_802BD100_324F10); - -INCLUDE_ASM(s32, "code_324F10", func_802BD114_324F10); - -INCLUDE_ASM(s32, "code_324F10", func_802BD14C_324F10); - -INCLUDE_ASM(s32, "code_324F10", func_802BD1AC_324F10); - -INCLUDE_ASM(s32, "code_324F10", func_802BD1B4); diff --git a/src/code_838b0_len_5900.c b/src/code_838b0_len_5900.c index b47e59c015..81ce3b95d3 100644 --- a/src/code_838b0_len_5900.c +++ b/src/code_838b0_len_5900.c @@ -57,15 +57,15 @@ INCLUDE_ASM(s32, "code_838b0_len_5900", partner_suspend_ability_script); INCLUDE_ASM(s32, "code_838b0_len_5900", partner_resume_ability_script); -INCLUDE_ASM(s32, "code_838b0_len_5900", enable_partner_walking); +INCLUDE_ASM(void, "code_838b0_len_5900", enable_partner_walking, Npc* partner, s32 val); -INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EBA3C); +INCLUDE_ASM(void, "code_838b0_len_5900", func_800EBA3C, Npc* partner); -INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EBB40); +INCLUDE_ASM(void, "code_838b0_len_5900", func_800EBB40, Npc* partner); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EBC74); -INCLUDE_ASM(void, "code_838b0_len_5900", enable_partner_flying, Npc* partner, s32 isFlying); +INCLUDE_ASM(void, "code_838b0_len_5900", enable_partner_flying, Npc* partner, s32 val); INCLUDE_ASM(void, "code_838b0_len_5900", update_player_move_history, Npc* partner); diff --git a/src/world_goombaria.c b/src/world_goombaria.c new file mode 100644 index 0000000000..3c8b67fa21 --- /dev/null +++ b/src/world_goombaria.c @@ -0,0 +1,44 @@ +#include "common.h" + +void func_802BD100_324F10(Npc* npc) { + npc->collisionHeight = 24; + npc->collisionRadius = 20; +} + +ApiStatus func_802BD114_324F10(ScriptInstance* script, s32 isInitialCall) { + s32 ownerID = script->ownerID; + + if (isInitialCall) { + func_800EECC4(ownerID); + } + return func_800EECE8(ownerID) != 0; +} + + +ApiStatus func_802BD14C_324F10(ScriptInstance* script, s32 isInitialCall) { + PlayerData* playerData = &gPlayerData; + s32 ownerID = script->ownerID; + + if (isInitialCall) { + enable_partner_walking(ownerID, TRUE); + } + + func_800EBA3C(ownerID); + func_800EBB40(ownerID); + playerData->unk_2F4[PartnerId_GOOMBARIA]++; + + return ApiStatus_BLOCK; +} + +ApiStatus func_802BD1AC_324F10(ScriptInstance* script, s32 isInitialCall) { + return ApiStatus_DONE2; +} + +ApiStatus func_802BD1B4(ScriptInstance* script, s32 isInitialCall) { + s32 ownerID = script->ownerID; + + if (isInitialCall) { + func_800EE994(ownerID); + } + return func_800EE9B8(ownerID) != 0; +} diff --git a/src/world_twink.c b/src/world_twink.c index a4bd2a24cb..4efc2ae4b0 100644 --- a/src/world_twink.c +++ b/src/world_twink.c @@ -25,7 +25,7 @@ ApiStatus func_802BD148_325070(ScriptInstance* script, s32 isInitialCall) { update_player_move_history(ownerID); func_800ED5D0(ownerID); - playerData->unk_2F4[11]++; + playerData->unk_2F4[PartnerId_TWINK]++; return ApiStatus_BLOCK; } diff --git a/tools/splat.yaml b/tools/splat.yaml index 9b4300cc15..de42d6f17d 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -407,7 +407,7 @@ segments: start: 0x324f10 vram: 0x802BD100 files: - - [0x324f10, "c"] + - [0x324f10, "c", "world_goombaria"] - [0x325000, "bin"] - name: code type: code