diff --git a/PAPER_MARIO.u.yaml b/PAPER_MARIO.u.yaml index 60958a902d..4a2dc8eead 100644 --- a/PAPER_MARIO.u.yaml +++ b/PAPER_MARIO.u.yaml @@ -2632,7 +2632,7 @@ labels: - [0x800E97E4, "func_800E97E4"] - [0x800E983C, "func_800E983C"] - [0x800E984C, "func_800E984C"] - - [0x800E9894, "func_800E9894"] + - [0x800E9894, "status_menu_enable_ignore_changes"] - [0x800E98C4, "func_800E98C4"] - [0x800E98EC, "func_800E98EC"] - [0x800E9900, "func_800E9900"] diff --git a/papermario/asm/nonmatchings/code_10400_len_d30/func_80035704.s b/papermario/asm/nonmatchings/code_10400_len_d30/func_80035704.s index 66d3c49d49..34d2254b5b 100644 --- a/papermario/asm/nonmatchings/code_10400_len_d30/func_80035704.s +++ b/papermario/asm/nonmatchings/code_10400_len_d30/func_80035704.s @@ -200,7 +200,7 @@ glabel func_80035704 /* 010DDC 800359DC 00000000 */ nop /* 010DE0 800359E0 0C00EC6C */ jal func_8003B1B0 /* 010DE4 800359E4 00000000 */ nop -/* 010DE8 800359E8 0C03A631 */ jal func_800E98C4 +/* 010DE8 800359E8 0C03A631 */ jal status_menu_disable_ignore_changes /* 010DEC 800359EC 00000000 */ nop /* 010DF0 800359F0 0C009C22 */ jal func_80027088 /* 010DF4 800359F4 24040001 */ addiu $a0, $zero, 1 diff --git a/papermario/asm/nonmatchings/code_7e0e80/func_80280954.s b/papermario/asm/nonmatchings/code_7e0e80/func_80280954.s index 8e915297d1..9de2f3f4b6 100644 --- a/papermario/asm/nonmatchings/code_7e0e80/func_80280954.s +++ b/papermario/asm/nonmatchings/code_7e0e80/func_80280954.s @@ -89,7 +89,7 @@ glabel func_80280954 /* 7E18F0 80280A70 AC930324 */ sw $s3, 0x324($a0) /* 7E18F4 80280A74 0C03D3F1 */ jal func_800F4FC4 /* 7E18F8 80280A78 AC800328 */ sw $zero, 0x328($a0) -/* 7E18FC 80280A7C 0C03A625 */ jal func_800E9894 +/* 7E18FC 80280A7C 0C03A625 */ jal status_menu_enable_ignore_changes /* 7E1900 80280A80 00000000 */ nop /* 7E1904 80280A84 0C03A63B */ jal func_800E98EC /* 7E1908 80280A88 00000000 */ nop diff --git a/papermario/asm/nonmatchings/code_7e0e80/func_80280B44.s b/papermario/asm/nonmatchings/code_7e0e80/func_80280B44.s index bc44121e14..d613042b7a 100644 --- a/papermario/asm/nonmatchings/code_7e0e80/func_80280B44.s +++ b/papermario/asm/nonmatchings/code_7e0e80/func_80280B44.s @@ -10,7 +10,7 @@ glabel func_80280B44 /* 7E19D0 80280B50 00000000 */ nop /* 7E19D4 80280B54 0C03A640 */ jal func_800E9900 /* 7E19D8 80280B58 00000000 */ nop -/* 7E19DC 80280B5C 0C03A631 */ jal func_800E98C4 +/* 7E19DC 80280B5C 0C03A631 */ jal status_menu_disable_ignore_changes /* 7E19E0 80280B60 00000000 */ nop /* 7E19E4 80280B64 0C03A5EE */ jal func_800E97B8 /* 7E19E8 80280B68 00000000 */ nop diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E96C8.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E96C8.s deleted file mode 100644 index 05433e5543..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E96C8.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E96C8 -/* 082B78 800E96C8 3C028011 */ lui $v0, 0x8011 -/* 082B7C 800E96CC 8442CD10 */ lh $v0, -0x32f0($v0) -/* 082B80 800E96D0 3C038011 */ lui $v1, 0x8011 -/* 082B84 800E96D4 2463EF58 */ addiu $v1, $v1, -0x10a8 -/* 082B88 800E96D8 10400005 */ beqz $v0, .L800E96F0 -/* 082B8C 800E96DC 00000000 */ nop -/* 082B90 800E96E0 8062006C */ lb $v0, 0x6c($v1) -/* 082B94 800E96E4 14400002 */ bnez $v0, .L800E96F0 -/* 082B98 800E96E8 24020001 */ addiu $v0, $zero, 1 -/* 082B9C 800E96EC A062006C */ sb $v0, 0x6c($v1) -.L800E96F0: -/* 082BA0 800E96F0 03E00008 */ jr $ra -/* 082BA4 800E96F4 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E973C.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E973C.s deleted file mode 100644 index 55a02b454b..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E973C.s +++ /dev/null @@ -1,16 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E973C -/* 082BEC 800E973C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 082BF0 800E9740 AFBF0010 */ sw $ra, 0x10($sp) -/* 082BF4 800E9744 0C03A02D */ jal update_status_menu -/* 082BF8 800E9748 00000000 */ nop -/* 082BFC 800E974C 0C03A4F7 */ jal update_coin_counter -/* 082C00 800E9750 00000000 */ nop -/* 082C04 800E9754 8FBF0010 */ lw $ra, 0x10($sp) -/* 082C08 800E9758 03E00008 */ jr $ra -/* 082C0C 800E975C 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E97B8.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E97B8.s deleted file mode 100644 index 3ce73aca0e..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E97B8.s +++ /dev/null @@ -1,19 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E97B8 -/* 082C68 800E97B8 3C048011 */ lui $a0, 0x8011 -/* 082C6C 800E97BC 2484EF58 */ addiu $a0, $a0, -0x10a8 -/* 082C70 800E97C0 8082003A */ lb $v0, 0x3a($a0) -/* 082C74 800E97C4 24030001 */ addiu $v1, $zero, 1 -/* 082C78 800E97C8 10430004 */ beq $v0, $v1, .L800E97DC -/* 082C7C 800E97CC 00000000 */ nop -/* 082C80 800E97D0 A083003A */ sb $v1, 0x3a($a0) -/* 082C84 800E97D4 A4800038 */ sh $zero, 0x38($a0) -/* 082C88 800E97D8 A083003B */ sb $v1, 0x3b($a0) -.L800E97DC: -/* 082C8C 800E97DC 03E00008 */ jr $ra -/* 082C90 800E97E0 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9810.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9810.s deleted file mode 100644 index 4ab9900c2b..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9810.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E9810 -/* 082CC0 800E9810 3C028011 */ lui $v0, 0x8011 -/* 082CC4 800E9814 2442EF58 */ addiu $v0, $v0, -0x10a8 -/* 082CC8 800E9818 240300D2 */ addiu $v1, $zero, 0xd2 -/* 082CCC 800E981C A4430038 */ sh $v1, 0x38($v0) -/* 082CD0 800E9820 24030001 */ addiu $v1, $zero, 1 -/* 082CD4 800E9824 A4400036 */ sh $zero, 0x36($v0) -/* 082CD8 800E9828 A0400044 */ sb $zero, 0x44($v0) -/* 082CDC 800E982C A040003A */ sb $zero, 0x3a($v0) -/* 082CE0 800E9830 A043003B */ sb $v1, 0x3b($v0) -/* 082CE4 800E9834 03E00008 */ jr $ra -/* 082CE8 800E9838 A040003C */ sb $zero, 0x3c($v0) - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E983C.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E983C.s deleted file mode 100644 index 14b35920d5..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E983C.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E983C -/* 082CEC 800E983C 3C018011 */ lui $at, 0x8011 -/* 082CF0 800E9840 A020EF9D */ sb $zero, -0x1063($at) -/* 082CF4 800E9844 03E00008 */ jr $ra -/* 082CF8 800E9848 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E984C.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E984C.s deleted file mode 100644 index dcdb100e45..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E984C.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E984C -/* 082CFC 800E984C 24020001 */ addiu $v0, $zero, 1 -/* 082D00 800E9850 3C018011 */ lui $at, 0x8011 -/* 082D04 800E9854 A022EF9D */ sb $v0, -0x1063($at) -/* 082D08 800E9858 03E00008 */ jr $ra -/* 082D0C 800E985C 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9894.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9894.s deleted file mode 100644 index b1011313af..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E9894.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E9894 -/* 082D44 800E9894 24020001 */ addiu $v0, $zero, 1 -/* 082D48 800E9898 3C018011 */ lui $at, 0x8011 -/* 082D4C 800E989C A022EF9C */ sb $v0, -0x1064($at) -/* 082D50 800E98A0 03E00008 */ jr $ra -/* 082D54 800E98A4 00000000 */ nop - -/* 082D58 800E98A8 3C028011 */ lui $v0, 0x8011 -/* 082D5C 800E98AC 2442EF58 */ addiu $v0, $v0, -0x10a8 -/* 082D60 800E98B0 24030001 */ addiu $v1, $zero, 1 -/* 082D64 800E98B4 A0430044 */ sb $v1, 0x44($v0) -/* 082D68 800E98B8 24030012 */ addiu $v1, $zero, 0x12 -/* 082D6C 800E98BC 03E00008 */ jr $ra -/* 082D70 800E98C0 A4430036 */ sh $v1, 0x36($v0) - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98C4.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98C4.s deleted file mode 100644 index c1a0ba413c..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98C4.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E98C4 -/* 082D74 800E98C4 3C018011 */ lui $at, 0x8011 -/* 082D78 800E98C8 A020EF9C */ sb $zero, -0x1064($at) -/* 082D7C 800E98CC 03E00008 */ jr $ra -/* 082D80 800E98D0 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98EC.s b/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98EC.s deleted file mode 100644 index ef75d70cd8..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/func_800E98EC.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel func_800E98EC -/* 082D9C 800E98EC 24020001 */ addiu $v0, $zero, 1 -/* 082DA0 800E98F0 3C018011 */ lui $at, 0x8011 -/* 082DA4 800E98F4 A022EF9E */ sb $v0, -0x1062($at) -/* 082DA8 800E98F8 03E00008 */ jr $ra -/* 082DAC 800E98FC 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_80850_len_3060/hide_coin_counter.s b/papermario/asm/nonmatchings/code_80850_len_3060/hide_coin_counter.s deleted file mode 100644 index 8737fac3a6..0000000000 --- a/papermario/asm/nonmatchings/code_80850_len_3060/hide_coin_counter.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.include "include/macro.inc" - -glabel hide_coin_counter -/* 082B48 800E9698 3C028011 */ lui $v0, 0x8011 -/* 082B4C 800E969C 8442CD10 */ lh $v0, -0x32f0($v0) -/* 082B50 800E96A0 3C038011 */ lui $v1, 0x8011 -/* 082B54 800E96A4 2463EF58 */ addiu $v1, $v1, -0x10a8 -/* 082B58 800E96A8 10400005 */ beqz $v0, .L800E96C0 -/* 082B5C 800E96AC 00000000 */ nop -/* 082B60 800E96B0 8062006C */ lb $v0, 0x6c($v1) -/* 082B64 800E96B4 14400002 */ bnez $v0, .L800E96C0 -/* 082B68 800E96B8 2402003C */ addiu $v0, $zero, 0x3c -/* 082B6C 800E96BC A062006C */ sb $v0, 0x6c($v1) -.L800E96C0: -/* 082B70 800E96C0 03E00008 */ jr $ra -/* 082B74 800E96C4 00000000 */ nop - diff --git a/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F1538.s b/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F1538.s index c36aa7c789..2f49c8979c 100644 --- a/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F1538.s +++ b/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F1538.s @@ -99,7 +99,7 @@ glabel func_800F1538 /* 08AB40 800F1690 8042D69A */ lb $v0, -0x2966($v0) /* 08AB44 800F1694 14400003 */ bnez $v0, .L800F16A4 /* 08AB48 800F1698 00000000 */ nop -/* 08AB4C 800F169C 0C03A631 */ jal func_800E98C4 +/* 08AB4C 800F169C 0C03A631 */ jal status_menu_disable_ignore_changes /* 08AB50 800F16A0 00000000 */ nop .L800F16A4: /* 08AB54 800F16A4 0C03A5EE */ jal func_800E97B8 diff --git a/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F4E40.s b/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F4E40.s index a467836bd2..99161310e9 100644 --- a/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F4E40.s +++ b/papermario/asm/nonmatchings/code_8a860_len_3f30/func_800F4E40.s @@ -11,7 +11,7 @@ glabel func_800F4E40 /* 08E300 800F4E50 0080802D */ daddu $s0, $a0, $zero /* 08E304 800F4E54 3C018011 */ lui $at, 0x8011 /* 08E308 800F4E58 A022D69A */ sb $v0, -0x2966($at) -/* 08E30C 800F4E5C 0C03A625 */ jal func_800E9894 +/* 08E30C 800F4E5C 0C03A625 */ jal status_menu_enable_ignore_changes /* 08E310 800F4E60 00000000 */ nop /* 08E314 800F4E64 0C03A5E3 */ jal open_status_menu_short /* 08E318 800F4E68 00000000 */ nop diff --git a/papermario/asm/nonmatchings/code_f270_len_1190/func_80034C3C.s b/papermario/asm/nonmatchings/code_f270_len_1190/func_80034C3C.s index 3e2889cf87..05d9475e6c 100644 --- a/papermario/asm/nonmatchings/code_f270_len_1190/func_80034C3C.s +++ b/papermario/asm/nonmatchings/code_f270_len_1190/func_80034C3C.s @@ -171,7 +171,7 @@ glabel func_80034C3C /* 0102AC 80034EAC 00000000 */ nop /* 0102B0 80034EB0 0C051FB1 */ jal func_80147EC4 /* 0102B4 80034EB4 0000202D */ daddu $a0, $zero, $zero -/* 0102B8 80034EB8 0C03A631 */ jal func_800E98C4 +/* 0102B8 80034EB8 0C03A631 */ jal status_menu_disable_ignore_changes /* 0102BC 80034EBC 00000000 */ nop /* 0102C0 80034EC0 0C009C22 */ jal func_80027088 /* 0102C4 80034EC4 24040001 */ addiu $a0, $zero, 1 diff --git a/papermario/asm/nonmatchings/code_f8f60_len_1560/ShowStatusMenu.s b/papermario/asm/nonmatchings/code_f8f60_len_1560/ShowStatusMenu.s index ed9df242f7..722f287d1f 100644 --- a/papermario/asm/nonmatchings/code_f8f60_len_1560/ShowStatusMenu.s +++ b/papermario/asm/nonmatchings/code_f8f60_len_1560/ShowStatusMenu.s @@ -11,7 +11,7 @@ glabel ShowStatusMenu /* 0FA39C 802D59EC 8C450000 */ lw $a1, ($v0) /* 0FA3A0 802D59F0 10400007 */ beqz $v0, .L802D5A10 /* 0FA3A4 802D59F4 00000000 */ nop -/* 0FA3A8 802D59F8 0C03A625 */ jal func_800E9894 +/* 0FA3A8 802D59F8 0C03A625 */ jal status_menu_enable_ignore_changes /* 0FA3AC 802D59FC 00000000 */ nop /* 0FA3B0 802D5A00 0C03A5EE */ jal func_800E97B8 /* 0FA3B4 802D5A04 00000000 */ nop @@ -19,7 +19,7 @@ glabel ShowStatusMenu /* 0FA3BC 802D5A0C 00000000 */ nop .L802D5A10: -/* 0FA3C0 802D5A10 0C03A631 */ jal func_800E98C4 +/* 0FA3C0 802D5A10 0C03A631 */ jal status_menu_disable_ignore_changes /* 0FA3C4 802D5A14 00000000 */ nop .L802D5A18: /* 0FA3C8 802D5A18 8FBF0010 */ lw $ra, 0x10($sp) diff --git a/papermario/src/code_80850_len_3060.c b/papermario/src/code_80850_len_3060.c index 238cb62eac..3af76425a8 100644 --- a/papermario/src/code_80850_len_3060.c +++ b/papermario/src/code_80850_len_3060.c @@ -224,9 +224,21 @@ INCLUDE_ASM(code_80850_len_3060, update_coin_counter); INCLUDE_ASM(code_80850_len_3060, show_coin_counter); -INCLUDE_ASM(code_80850_len_3060, hide_coin_counter); +void hide_coin_counter(void) { + ui_status* uiStatus = &gUIStatus; -INCLUDE_ASM(code_80850_len_3060, func_800E96C8); + if ((D_8010CD10 != 0) && (uiStatus->unk_6C == 0)) { + uiStatus->unk_6C = 60; + } +} + +void func_800E96C8(void) { + ui_status* uiStatus = &gUIStatus; + + if ((D_8010CD10 != 0) && (uiStatus->unk_6C == 0)) { + uiStatus->unk_6C = 1; + } +} s32 ShowCoinCounter(ScriptContext* script) { if (get_variable(script, *script->ptrReadPos)) { @@ -237,8 +249,10 @@ s32 ShowCoinCounter(ScriptContext* script) { return 2; } - -INCLUDE_ASM(code_80850_len_3060, func_800E973C); +void func_800E973C(void) { + update_status_menu(); + update_coin_counter(); +} void open_status_menu_long(void) { ui_status* uiStatus = &gUIStatus; @@ -261,21 +275,63 @@ void open_status_menu_short(void) { } } -INCLUDE_ASM(code_80850_len_3060, func_800E97B8); +void func_800E97B8(void) { + ui_status* uiStatus = &gUIStatus; + + if (uiStatus->hidden != 1) { + uiStatus->hidden = 1; + uiStatus->showTimer = 0; + uiStatus->unk_3B = 1; + } +} INCLUDE_ASM(code_80850_len_3060, func_800E97E4); +/*void func_800E97E4(void) { + ui_status* uiStatus = &gUIStatus; -INCLUDE_ASM(code_80850_len_3060, func_800E9810); + uiStatus->showTimer = -100; + uiStatus->ignoreChanges = 0; + uiStatus->drawPosY = 0; + uiStatus->hidden = 1; + uiStatus->unk_3B = 0; + uiStatus->unk_3C = 0; +}*/ -INCLUDE_ASM(code_80850_len_3060, func_800E983C); +void func_800E9810(void) { + ui_status* uiStatus = &gUIStatus; -INCLUDE_ASM(code_80850_len_3060, func_800E984C); + uiStatus->showTimer = 210; + uiStatus->drawPosY = 0; + uiStatus->ignoreChanges = 0; + uiStatus->hidden = 0; + uiStatus->unk_3B = 1; + uiStatus->unk_3C = 0; +} + +void func_800E983C(void) { + gUIStatus.unk_45 = 0; +} + +void func_800E984C(void) { + gUIStatus.unk_45 = 1; +} INCLUDE_ASM(code_80850_len_3060, func_800E9860); -INCLUDE_ASM(code_80850_len_3060, func_800E9894); +void status_menu_enable_ignore_changes(void) { + gUIStatus.ignoreChanges = 1; +} -INCLUDE_ASM(code_80850_len_3060, func_800E98C4); +void func_800E98A8(void) { + ui_status* uiStatus = &gUIStatus; + + uiStatus->ignoreChanges = 1; + uiStatus->drawPosY = 18; +} + +void status_menu_disable_ignore_changes(void) { + gUIStatus.ignoreChanges = 0; +} s32 func_800E98D4(void) { ui_status* uiStatus = &gUIStatus; @@ -283,14 +339,14 @@ s32 func_800E98D4(void) { return uiStatus->unk_46 + uiStatus->ignoreChanges; } - -INCLUDE_ASM(code_80850_len_3060, func_800E98EC); +void func_800E98EC(void) { + gUIStatus.unk_46 = 1; +} void func_800E9900(void) { gUIStatus.unk_46 = 0; } - s32 is_status_menu_visible(void) { return !gUIStatus.hidden; }