From 62a0165014312ef7b1d9afc503dc74db8286ab52 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 30 Nov 2024 21:20:11 -0500 Subject: [PATCH] Finish other_menus1.s --- asm/other_menus1.s | 160 ---------------------------------------- ld_script.txt | 1 - src/data/other_menus1.h | 12 +-- src/other_menus1.c | 44 +++++++++++ 4 files changed, 50 insertions(+), 167 deletions(-) delete mode 100644 asm/other_menus1.s diff --git a/asm/other_menus1.s b/asm/other_menus1.s deleted file mode 100644 index 137b08e48..000000000 --- a/asm/other_menus1.s +++ /dev/null @@ -1,160 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8037900 -sub_8037900: - push {r4,lr} - sub sp, 0x10 - ldr r4, _08037928 - ldr r0, [r4] - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - movs r1, 0 - bl sub_8035CC0 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0xA - bls _0803791E - b _08037A14 -_0803791E: - lsls r0, 2 - ldr r1, _0803792C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037928: .4byte sUnknown_203B35C -_0803792C: .4byte _08037930 - .align 2, 0 -_08037930: - .4byte _0803795C - .4byte _0803795C - .4byte _0803797C - .4byte _0803797C - .4byte _0803799C - .4byte _0803799C - .4byte _080379BC - .4byte _080379BC - .4byte _08037A14 - .4byte _080379F0 - .4byte _080379F0 -_0803795C: - ldr r0, _08037970 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037974 - ldr r2, _08037978 - b _080379CE - .align 2, 0 -_08037970: .4byte sUnknown_203B35C -_08037974: .4byte sUnknown_80E6554 -_08037978: .4byte sUnknown_80E656C -_0803797C: - ldr r0, _08037990 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037994 - ldr r2, _08037998 - b _080379CE - .align 2, 0 -_08037990: .4byte sUnknown_203B35C -_08037994: .4byte sUnknown_80E6554 -_08037998: .4byte sUnknown_80E65D8 -_0803799C: - ldr r0, _080379B0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379B4 - ldr r2, _080379B8 - b _080379CE - .align 2, 0 -_080379B0: .4byte sUnknown_203B35C -_080379B4: .4byte sUnknown_80E6554 -_080379B8: .4byte sUnknown_80E661C -_080379BC: - ldr r0, _080379E4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379E8 - ldr r2, _080379EC -_080379CE: - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _08037A14 - .align 2, 0 -_080379E4: .4byte sUnknown_203B35C -_080379E8: .4byte sUnknown_80E6554 -_080379EC: .4byte sUnknown_80E665C -_080379F0: - ldr r0, _08037A38 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037A3C - ldr r2, _08037A40 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08037A14: - ldr r4, _08037A38 - ldr r0, [r4] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - bl sub_80373C4 - ldr r0, [r4] - adds r0, 0x1C - bl sub_80130A8 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037A38: .4byte sUnknown_203B35C -_08037A3C: .4byte sUnknown_80E6554 -_08037A40: .4byte sUnknown_80E667C - thumb_func_end sub_8037900 - - thumb_func_start nullsub_202 -nullsub_202: - bx lr - thumb_func_end nullsub_202 - - - .align 2, 0 \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 802b0bb46..b34e93867 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -180,7 +180,6 @@ SECTIONS { src/main_menu2.o(.text); src/trade_items_menu.o(.text); src/other_menus1.o(.text); - asm/other_menus1.o(.text); asm/other_menus2.o(.text); src/other_menus2.o(.text); src/adventure_log_menu.o(.text); diff --git a/src/data/other_menus1.h b/src/data/other_menus1.h index 9bfdee4bc..2a2421f6a 100644 --- a/src/data/other_menus1.h +++ b/src/data/other_menus1.h @@ -6,7 +6,7 @@ static const UnkTextStruct2 sUnknown_80E653C = { 0, 0, NULL }; -const UnkTextStruct2 sUnknown_80E6554 = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const UnkTextStruct2 sUnknown_80E6554 = { 0, 0, 0, 0, 3, 3, 8, @@ -15,35 +15,35 @@ const UnkTextStruct2 sUnknown_80E6554 = { // TODO: MAKE STATIC WHEN other_menus1 NULL }; -const MenuItem sUnknown_80E656C[] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const MenuItem sUnknown_80E656C[] = { {_("{CENTER_ALIGN}{COLOR RED}Caution!{RESET} "), 5}, {_("{CENTER_ALIGN}Item transmitting!"), 5}, {_("{CENTER_ALIGN}Don't turn the power off!"), 5}, {NULL, 3}, }; -const MenuItem sUnknown_80E65D8[] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const MenuItem sUnknown_80E65D8[] = { {_("{CENTER_ALIGN}{COLOR RED}Caution!{RESET} "), 5}, {_("{CENTER_ALIGN}Thank-You Mail in transmission!"), 5}, {_("{CENTER_ALIGN}Don't turn the power off!"), 5}, {NULL, 3}, }; -const MenuItem sUnknown_80E661C[] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const MenuItem sUnknown_80E661C[] = { {_("{CENTER_ALIGN}{COLOR RED}Caution!{RESET} "), 5}, {_("{CENTER_ALIGN}A-OK Mail in transmission!"), 5}, {_("{CENTER_ALIGN}Don't turn the power off!"), 5}, {NULL, 3}, }; -const MenuItem sUnknown_80E665C[] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const MenuItem sUnknown_80E665C[] = { {_("{CENTER_ALIGN}{COLOR RED}Caution!{RESET} "), 5}, {_("{CENTER_ALIGN}Thank-You Mail in transmission!"), 5}, {_("{CENTER_ALIGN}Don't turn the power off!"), 5}, {NULL, 3}, }; -const MenuItem sUnknown_80E667C[] = { // TODO: MAKE STATIC WHEN other_menus1.s IS DED +static const MenuItem sUnknown_80E667C[] = { {_("{CENTER_ALIGN}{COLOR RED}Caution!{RESET} "), 5}, {_("{CENTER_ALIGN}Wonder Mail in transmission!"), 5}, {_("{CENTER_ALIGN}Don't turn the power off!"), 5}, diff --git a/src/other_menus1.c b/src/other_menus1.c index e35f85e6f..f50f6c5f2 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -455,4 +455,48 @@ static void sub_8037810(void) sUnknown_203B35C->unk2BC.speciesNum = 0; sUnknown_203B35C->unk344.speciesNum = 0; +} + +void sub_8037900(void) +{ + sub_8035CC0(sUnknown_203B35C->unk15C, 0); + + switch (sUnknown_203B35C->unk0) { + case 0: + case 1: { + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E656C, FALSE, 6, FALSE); + break; + } + case 2: + case 3: { + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E65D8, FALSE, 6, FALSE); + break; + } + case 4: + case 5: { + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E661C, FALSE, 6, FALSE); + break; + } + case 6: + case 7: { + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E665C, FALSE, 6, FALSE); + break; + } + case 8: { + break; + } + case 9: + case 10: { + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E667C, FALSE, 6, FALSE); + break; + } + } + + sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); + sub_80373C4(); + sub_80130A8(sUnknown_203B35C->unk1C); +} + +UNUSED static void nullsub_202(void) +{ } \ No newline at end of file