From 6fd53ccfa06855478a9bbdee8f859e00515fb191 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Mon, 24 Jan 2022 02:16:20 +0100 Subject: [PATCH] started working on generic menu structs --- include/menu.h | 17 +++- src/debug.c | 26 +++--- src/fileselect.c | 24 +++--- src/game.c | 8 +- src/object/fileScreenObjects.c | 14 ++-- src/subtask.c | 140 ++++++++++++++++----------------- 6 files changed, 119 insertions(+), 110 deletions(-) diff --git a/include/menu.h b/include/menu.h index 22902ca5..1c1ccc37 100644 --- a/include/menu.h +++ b/include/menu.h @@ -44,8 +44,11 @@ typedef struct { /*0x08*/ u16 transitionTimer; /*0x0a*/ u16 field_0xa; /*0x0c*/ u8* field_0xc; - /*0x10*/ // u8 focusCoords[2]; - union { +} Menu; + +typedef struct { + /*0x00*/ Menu base; + /*0x10*/ union { s32 i; u16 h[2]; u8 a[4]; @@ -75,9 +78,15 @@ typedef struct { /*0x2c*/ s8 unk2c; /*0x2d*/ u8 unk2d; /*0x2e*/ union SplitHWord unk2e; -} Menu; -static_assert(sizeof(Menu) == 0x30); +} GenericMenu; +static_assert(sizeof(GenericMenu) == 0x30); + +typedef struct { + Menu base; +} KinstoneMenu; extern Menu gMenu; +#define gGenericMenu (*(GenericMenu*)&gMenu) +#define gKinstoneMenu (*(KinstoneMenu*)&gMenu) #endif diff --git a/src/debug.c b/src/debug.c index f07417d6..eaa65981 100644 --- a/src/debug.c +++ b/src/debug.c @@ -34,8 +34,8 @@ void sub_0805FA04(void) { gScreen.bg3.updated = 1; MessageInitialize(); MemClear((void*)&gUnk_02032EC0, sizeof(UI)); - MemClear((void*)&gMenu, sizeof(Menu)); - gMenu.unk16 = gSaveHeader->language; + MemClear((void*)&gGenericMenu, sizeof(GenericMenu)); + gGenericMenu.unk16 = gSaveHeader->language; LoadGfxGroups(); SetColor(0, 0x1144); gMain.state = 1; @@ -48,14 +48,14 @@ void sub_0805FA98(void) { switch (gInput.newKeys) { case DPAD_UP: - gMenu.unk10.a[1] -= 1; + gGenericMenu.unk10.a[1] -= 1; break; case DPAD_DOWN: - gMenu.unk10.a[1] += 1; + gGenericMenu.unk10.a[1] += 1; break; case L_BUTTON: - gMenu.unk10.a[0] ^= 1; - if (gMenu.unk10.a[0] == 0) { + gGenericMenu.unk10.a[0] ^= 1; + if (gGenericMenu.unk10.a[0] == 0) { gScreen.bg0.control = BGCNT_SCREENBASE(31) | BGCNT_CHARBASE(3); gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(3) | BGCNT_PRIORITY(3); } else { @@ -64,8 +64,8 @@ void sub_0805FA98(void) { } break; case R_BUTTON: - gSaveHeader->language = gMenu.unk16; - MessageFromTarget(gMenu.unk14 * 0x100 + gMenu.unk15); + gSaveHeader->language = gGenericMenu.unk16; + MessageFromTarget(gGenericMenu.unk14 * 0x100 + gGenericMenu.unk15); break; case B_BUTTON: MessageInitialize(); @@ -82,19 +82,19 @@ void sub_0805FA98(void) { iVar1 = 0; break; } - switch (gMenu.unk10.a[1]) { + switch (gGenericMenu.unk10.a[1]) { case 0: - gMenu.unk14 = (gMenu.unk14 + iVar1 + 0x50) % 0x50; + gGenericMenu.unk14 = (gGenericMenu.unk14 + iVar1 + 0x50) % 0x50; break; case 1: - gMenu.unk15 += iVar1; + gGenericMenu.unk15 += iVar1; break; case 2: - gMenu.unk16 = (gMenu.unk16 + iVar1 + 7) % 7; + gGenericMenu.unk16 = (gGenericMenu.unk16 + iVar1 + 7) % 7; break; } } - gMenu.unk10.a[1] = (gMenu.unk10.a[1] + 3) % 3; + gGenericMenu.unk10.a[1] = (gGenericMenu.unk10.a[1] + 3) % 3; gScreen.bg3.updated = 1; } diff --git a/src/fileselect.c b/src/fileselect.c index 539c974b..724444f3 100644 --- a/src/fileselect.c +++ b/src/fileselect.c @@ -875,11 +875,11 @@ NONMATCH("asm/non_matching/fileScreen/sub_080610B8.inc", void sub_080610B8(void) END_NONMATCH void sub_08051358(void) { - gMenu.unk10.a[2] = gSaveHeader->language == 0 ? 4 : 3; + gGenericMenu.unk10.a[2] = gSaveHeader->language == 0 ? 4 : 3; - if (gMenu.unk10.a[0] != 0x0b || gMenu.unk10.a[1] != 0x5) { - gMenu.unk10.a[1] = 0x5; - gMenu.unk10.a[0] = 0xb; + if (gGenericMenu.unk10.a[0] != 0x0b || gGenericMenu.unk10.a[1] != 0x5) { + gGenericMenu.unk10.a[1] = 0x5; + gGenericMenu.unk10.a[0] = 0xb; SoundReq(SFX_TEXTBOX_NEXT); } } @@ -940,7 +940,7 @@ void sub_08051480(u32 c) { u32 idx; result = sub_080514BC(c); - idx = gMenu.unk10.a[3]; + idx = gGenericMenu.unk10.a[3]; if (result == RESULT_INVALID) { return; @@ -955,7 +955,7 @@ void sub_08051480(u32 c) { idx = FILENAME_LENGTH - 1; } - gMenu.unk10.a[3] = idx + 1; + gGenericMenu.unk10.a[3] = idx + 1; gSave.name[idx] = c; sub_08051574(SFX_6B); } @@ -976,7 +976,7 @@ u32 sub_080514BC(u32 a1) { return 1; } - idx = gMenu.unk10.a[3]; + idx = gGenericMenu.unk10.a[3]; if (idx == 0) return 0; @@ -1108,7 +1108,7 @@ NONMATCH("asm/non_matching/fileScreen/sub_08051738.inc", void sub_08051738(void) } else { uVar3++; } - (&gMenu.selectMtx)[i] = uVar3; + (&gGenericMenu.selectMtx)[i] = uVar3; } if (uVar3 == 0) { gMenu.transitionTimer = 0x3c; @@ -1118,9 +1118,9 @@ NONMATCH("asm/non_matching/fileScreen/sub_08051738.inc", void sub_08051738(void) sub_080A7114(1); } uVar3++; - gMenu.unk16 = uVar3; - gMenu.unk10.a[3] = 4; - gMenu.unk14 = uVar3; + gGenericMenu.unk16 = uVar3; + gGenericMenu.unk10.a[3] = 4; + gGenericMenu.unk14 = uVar3; } END_NONMATCH @@ -1128,7 +1128,7 @@ s32 sub_080517B4(s32 a1) { u32 i = gUnk_02019EE0.unk7; if (a1 != 0) { for (i = i + a1; i < 5; i += a1) { - if (gMenu.unk10.a[i] != 0 && gMenu.unk10.a[i] != 4) + if (gGenericMenu.unk10.a[i] != 0 && gGenericMenu.unk10.a[i] != 4) return i; } diff --git a/src/game.c b/src/game.c index ebbb34c9..afb0e3cf 100644 --- a/src/game.c +++ b/src/game.c @@ -652,7 +652,7 @@ static void GameOver_Init(void) { if (gFadeControl.active) return; sub_08052010(); - gMenu.unk10.a[0] = 80; + gGenericMenu.unk10.a[0] = 80; gMenu.transitionTimer = 60; gSave.stats.health = 24; gMain.field_0x5 = 60; @@ -667,8 +667,8 @@ static void GameOver_FadeIn(void) { return; if (gMain.field_0x5 == 0) { - if (gMenu.unk10.a[0] >= 38) { - gMenu.unk10.a[0]--; + if (gGenericMenu.unk10.a[0] >= 38) { + gGenericMenu.unk10.a[0]--; } else { gMenu.transitionTimer--; if (gMenu.transitionTimer == 0) { @@ -839,7 +839,7 @@ static void DrawGameOverText(void) { gOamCmd._4 = 0; gOamCmd._6 = 0; gOamCmd._8 = 0x8600; - gOamCmd.y = gMenu.unk10.a[0]; + gOamCmd.y = gGenericMenu.unk10.a[0]; for (i = 0; i < 8; ++i) { gOamCmd.x = sOffsets[i]; #ifdef EU diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index a59f8172..921b0b97 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -219,7 +219,7 @@ void sub_0808EABC(Entity* this) { } break; case 5: - switch (gMenu.unk10.a[this->type]) { + switch (gGenericMenu.unk10.a[this->type]) { case 0: var0 = 42; var1 = 40; @@ -228,7 +228,7 @@ void sub_0808EABC(Entity* this) { case 2: var0 = 20; var1 = 144; - var1 -= (gMenu.unk16 - gMenu.unk10.a[this->type]) * 32; + var1 -= (gGenericMenu.unk16 - gGenericMenu.unk10.a[this->type]) * 32; break; } break; @@ -371,9 +371,9 @@ void sub_0808ECBC(Entity* this) { void sub_0808ED64(Entity* this) { int y = 255; - if (gUnk_02032EC0.lastState == 1 && gMenu.unk10.a[1] != 5) { - this->x.HALF.HI = gMenu.unk10.a[0] * 16 + 28; - y = gMenu.unk10.a[1] * 16 + 58; + if (gUnk_02032EC0.lastState == 1 && gGenericMenu.unk10.a[1] != 5) { + this->x.HALF.HI = gGenericMenu.unk10.a[0] * 16 + 28; + y = gGenericMenu.unk10.a[1] * 16 + 58; } this->y.HALF.HI = y; } @@ -384,7 +384,7 @@ void sub_0808ED98(Entity* this) { this->field_0x68.HWORD = 27; y = -10; } else { - u32 var0 = gMenu.unk10.a[3]; + u32 var0 = gGenericMenu.unk10.a[3]; if (var0 > 5) { var0 = 5; } @@ -416,7 +416,7 @@ void sub_0808EE00(Entity* this) { } this->field_0x6a.HWORD = var2; - this->palette.b.b0 = gMenu.unk10.a[1] == 5 && var1 == gMenu.unk10.a[2] ? 11 : 9; + this->palette.b.b0 = gGenericMenu.unk10.a[1] == 5 && var1 == gGenericMenu.unk10.a[2] ? 11 : 9; gUnk_02019EE0.isTransitioning |= sub_0808EF6C(this); } diff --git a/src/subtask.c b/src/subtask.c index 57b28c52..6e32454a 100644 --- a/src/subtask.c +++ b/src/subtask.c @@ -155,7 +155,7 @@ void sub_080A3BD0(void) { s32 iVar2; gMenu.column_idx = 1; - gMenu.unk2a = 0; + gGenericMenu.unk2a = 0; sub_080A4D34(); LoadPaletteGroup(0xcb); LoadGfxGroup(0x75); @@ -189,18 +189,18 @@ void sub_080A3BD0(void) { NONMATCH("asm/non_matching/subtask/sub_080A3C6C.inc", void sub_080A3C6C(void)) { s32 tmp1, tmp2, tmp3, tmp4, tmp5; u8* ptr; - Menu* menu; + GenericMenu* menu; if (gFadeControl.active) { return; } - menu = &gMenu; - menu->column_idx = 2; + menu = &gGenericMenu; + menu->base.column_idx = 2; tmp2 = menu->unk28 * 0x10000; tmp1 = tmp2 - menu->unk10.i; if ((tmp1 < 0 ? -tmp1 : tmp1) <= 0x1ffdu) { menu->unk10.i = tmp2; } else { - menu->column_idx = 1; + menu->base.column_idx = 1; tmp2 = sub_08000E44(tmp1); tmp1 = tmp1 / 0x20000; if (tmp1 < 0) @@ -231,8 +231,8 @@ NONMATCH("asm/non_matching/subtask/sub_080A3C6C.inc", void sub_080A3C6C(void)) { break; case 1: if (gMenu.column_idx == 2) { - tmp3 = gMenu.unk10.i / 0x10000; - gMenu.unk2a = gSave.unk118[tmp3]; + tmp3 = gGenericMenu.unk10.i / 0x10000; + gGenericMenu.unk2a = gSave.unk118[tmp3]; sub_080A7114(3); } break; @@ -275,16 +275,16 @@ void sub_080A3E00(void) { } void sub_080A3E20(void) { - gMenu.unk18 = 0; - gMenu.unk2c += 2; - if (0x45 < gMenu.unk2c) { - gMenu.unk2c = 0x46; + gGenericMenu.unk18 = 0; + gGenericMenu.unk2c += 2; + if (0x45 < gGenericMenu.unk2c) { + gGenericMenu.unk2c = 0x46; gMenu.overlayType = 1; } } void sub_080A3E48(void) { - u32 temp = gUnk_080C9CBC[gMenu.unk2a].unk5; + u32 temp = gUnk_080C9CBC[gGenericMenu.unk2a].unk5; if (temp != gUnk_080C9CBC[gFuseInfo._3].unk5) { SoundReq(SFX_ITEM_SHIELD_BOUNCE); sub_080A7114(4); @@ -312,11 +312,11 @@ void sub_080A3EDC(void) { void sub_080A3F10(void) { gMenu.column_idx = 4; - gMenu.unk2c -= 3; - gMenu.unk18 += 0x100; - if (gMenu.unk2c < 0) { - gMenu.unk18 = 0; - gMenu.unk2c = 0; + gGenericMenu.unk2c -= 3; + gGenericMenu.unk18 += 0x100; + if (gGenericMenu.unk2c < 0) { + gGenericMenu.unk18 = 0; + gGenericMenu.unk2c = 0; sub_080A7114(1); SoundReq(SFX_MENU_ERROR); } @@ -350,8 +350,8 @@ void sub_080A3FCC(void) { void sub_080A3FF4(void) { gMenu.transitionTimer -= 1; if (gMenu.transitionTimer != 0) { - gMenu.unk18 += gMenu.unk1a.HWORD; - gMenu.unk1a.HWORD += 0x20; + gGenericMenu.unk18 += gGenericMenu.unk1a.HWORD; + gGenericMenu.unk1a.HWORD += 0x20; } else { gMenu.column_idx = 6; gMenu.overlayType = 3; @@ -391,7 +391,7 @@ void sub_080A4080(void) { gOamCmd._4 = 0; gOamCmd._6 = 0; - gOamCmd.y = 0x10 - (s8)gMenu.unk2e.HALF.HI; + gOamCmd.y = 0x10 - (s8)gGenericMenu.unk2e.HALF.HI; gOamCmd.x = 0x40; gOamCmd._8 = 0x400; #ifdef EU @@ -417,9 +417,9 @@ void sub_080A4080(void) { gOamCmd._8 = 0x4e0; iVar2 = sub_080A3B48() - 1; if (0 < iVar2) { - iVar3 = gMenu.unk10.i; + iVar3 = gGenericMenu.unk10.i; if (iVar3 < 0) { - iVar3 = gMenu.unk10.i + 0xffff; + iVar3 = gGenericMenu.unk10.i + 0xffff; } if (iVar3 >> 0x10 != iVar2) { gOamCmd.y = temp[1] + 0x77; @@ -441,11 +441,11 @@ NONMATCH("asm/non_matching/subtask/sub_080A414C.inc", void sub_080A414C(void)) { gOamCmd._4 = 0; gOamCmd._6 = 0; - uVar1 = gMenu.unk10.h[0] / 0xb21; + uVar1 = gGenericMenu.unk10.h[0] / 0xb21; for (i = -3, uVar1 = -uVar1 - 0x45; i < 4; uVar1 += 0x17, i++) { gOamCmd.y = ((gSineTable[uVar1 & 0xff] * 0x44) / 0x100) + 0x4f; gOamCmd.x = ((gSineTable[(uVar1 + 0x40) & 0xff] * 0x42) / 0x100) - 0x10; - iVar2 = gMenu.unk10.i / 0x10000 + i; + iVar2 = gGenericMenu.unk10.i / 0x10000 + i; if (iVar2 >= 0) { uVar3 = gSave.unk12B[iVar2]; if (i == 0) { @@ -471,14 +471,14 @@ void sub_080A422C(void) { s32 t, t2; u16 t3; - uVar2 = gMenu.unk18 / 256; + uVar2 = gGenericMenu.unk18 / 256; uVar2 %= 27; t3 = uVar2; sub_0805ECEC(0, gUnk_08128120[t3] << 4, 0x100, 0); gOamCmd._4 = 0x100; gOamCmd._6 = 0; gOamCmd.y = 0x4f; - t = gMenu.unk2a; + t = gGenericMenu.unk2a; t2 = 0x180; switch (gMenu.column_idx) { case 5: @@ -487,9 +487,9 @@ void sub_080A422C(void) { break; case 3: case 4: - gOamCmd.x = gMenu.unk2c + 0x32; + gOamCmd.x = gGenericMenu.unk2c + 0x32; sub_080A42E0(t, 0); - t2 = 0x8a - (gMenu.unk2c * 0x12 / 0x46); + t2 = 0x8a - (gGenericMenu.unk2c * 0x12 / 0x46); break; case 6: break; @@ -603,7 +603,7 @@ void sub_080A4468(void) { gUnk_03003DF0[0].unk[2] = 0; gUnk_03003DF0[0].unk2[3] = 0; sub_0801E6C8(gFuseInfo._3); - sub_0801E798(gMenu.unk2a); + sub_0801E798(gGenericMenu.unk2a); } u32 sub_080A4494(void) { @@ -708,7 +708,7 @@ void sub_080A4608(void) { gScreen.controls.windowOutsideControl = 0x1d; gScreen.bg1.updated = 1; for (iVar2 = 0; iVar2 < 0x10; iVar2++) { - gMenu.unk10.a[iVar2] = 0xee; + gGenericMenu.unk10.a[iVar2] = 0xee; } { int r0, r1, r2; @@ -722,7 +722,7 @@ void sub_080A4608(void) { if (r2 < r1) { r1 = 1; } - gMenu.unk1c = r1; + gGenericMenu.unk1c = r1; } SetFade(4, 8); } @@ -741,7 +741,7 @@ void sub_080A46DC(void) { void sub_080A46EC(void) { if (gFadeControl.active == 0) { - CreateObject(0xa2, gUnk_080FC3E4[gMenu.unk1c].unk7, 0); + CreateObject(0xa2, gUnk_080FC3E4[gGenericMenu.unk1c].unk7, 0); sub_080A7114(2); } } @@ -751,13 +751,13 @@ void sub_080A4720(void) { Sound sound; if (gMenu.field_0x0 != 0) { - gMenu.unk20 += 1; - switch (gMenu.unk20) { + gGenericMenu.unk20 += 1; + switch (gGenericMenu.unk20) { case 0x40: - gMenu.unk21 = WriteBit(&gUnk_02002B0E, gMenu.unk1c); + gGenericMenu.unk21 = WriteBit(&gUnk_02002B0E, gGenericMenu.unk1c); gMenu.column_idx = 1; default: - bVar1 = gMenu.unk20 >> 2; + bVar1 = gGenericMenu.unk20 >> 2; if (0x10 < bVar1) { bVar1 = 0x20 - bVar1; } @@ -771,7 +771,7 @@ void sub_080A4720(void) { sub_080A7114(3); sub_080A70AC((KeyButtonLayout*)&gUnk_0812813C); gMenu.column_idx = 0x15; - if (gMenu.unk21 == 0) { + if (gGenericMenu.unk21 == 0) { sound = SFX_109; } else { sound = SFX_MENU_ERROR; @@ -786,7 +786,7 @@ void sub_080A47D0(void) { s32 uVar1; s32 t; - uVar1 = gMenu.unk1f; + uVar1 = gGenericMenu.unk1f; switch (gInput.unk4) { case 2: case 8: @@ -799,14 +799,14 @@ void sub_080A47D0(void) { uVar1 -= 8; break; } - t = gMenu.unk1e; + t = gGenericMenu.unk1e; if (uVar1 < 0) { uVar1 = 0; } if (t < uVar1) { uVar1 = t; } - gMenu.unk1f = uVar1; + gGenericMenu.unk1f = uVar1; gScreen.bg1.yOffset = uVar1 - 0x70; } @@ -824,8 +824,8 @@ void sub_080A4864(void) { if (gFadeControl.active) return; - r5 = gMenu.unk1f; - r4 = gMenu.unk1c; + r5 = gGenericMenu.unk1f; + r4 = gGenericMenu.unk1c; r1 = gInput.unk4; switch (gInput.unk4) { case 2: @@ -860,21 +860,21 @@ void sub_080A4864(void) { if (r1 < r4) { r4 = r1; } - r0 = gMenu.unk1c; + r0 = gGenericMenu.unk1c; if (r0 != r4) { - gMenu.unk1c = r4; + gGenericMenu.unk1c = r4; SoundReq(SFX_TEXTBOX_CHOICE); sub_080A7114(2); r5 = 0; } - r0 = gMenu.unk1e; + r0 = gGenericMenu.unk1e; if (r5 < 0) { r5 = 0; } if (r0 < r5) { r5 = r0; } - gMenu.unk1f = r5; + gGenericMenu.unk1f = r5; gScreen.bg1.yOffset = r5 - 0x70; } @@ -925,9 +925,9 @@ void sub_080A4978(void) { DrawDirect(sub_080A4978_draw_constant, 0); r2 = (gSave.unk6 == 0) ? 0x82 : 0x88; if ((gMenu.column_idx & 2) != 0) { - if (r2 >= (gMenu.unk1c)) { + if (r2 >= (gGenericMenu.unk1c)) { gOamCmd.x = 0xe8; - r0 = (0x5000 / r2) * (gMenu.unk1c - 1); + r0 = (0x5000 / r2) * (gGenericMenu.unk1c - 1); if (r0 < 0) { r0 += 0xff; } @@ -947,14 +947,14 @@ void sub_080A4978(void) { } if (gMain.ticks.HWORD & 0x10) { if (gMenu.column_idx & 0x10) { - if (gMenu.unk1e) { + if (gGenericMenu.unk1e) { gOamCmd.y = 0x10; - if (gMenu.unk1f > 0) { + if (gGenericMenu.unk1f > 0) { gOamCmd.x = 6; gOamCmd.y = 0x9c; DrawDirect(sub_080A4978_draw_constant, 6); } - if (gMenu.unk1e > gMenu.unk1f) { + if (gGenericMenu.unk1e > gGenericMenu.unk1f) { gOamCmd.x = 0xea; gOamCmd.y = 0x9c; DrawDirect(sub_080A4978_draw_constant, 7); @@ -965,7 +965,7 @@ void sub_080A4978(void) { if (gSaveHeader->language) { if (gMenu.column_idx & 0x4) { gOamCmd.y = 0x10; - r4 = gMenu.unk1c; + r4 = gGenericMenu.unk1c; for (r6 = 2; r6 >= 0; r6--) { gOamCmd.x = 0x5d + (r6 * 7); gOamCmd._8 = ((r4 % 10) << 1) | 0x9e0; @@ -975,16 +975,16 @@ void sub_080A4978(void) { } } if (gMenu.column_idx & 1) { - if (sub_080A4948(gMenu.unk1c)) { + if (sub_080A4948(gGenericMenu.unk1c)) { gOamCmd.x = 0x2c; gOamCmd.y = 0x48; gOamCmd._8 = 0xd4 << 7; - DrawDirect(sub_080A4978_draw_constant - 4, gMenu.unk1c - 1); - if (gMenu.unk1d != gMenu.unk1c) { + DrawDirect(sub_080A4978_draw_constant - 4, gGenericMenu.unk1c - 1); + if (gGenericMenu.unk1d != gGenericMenu.unk1c) { const Figurine* fig; u8* gfx; - gMenu.unk1d = gMenu.unk1c; - fig = &gFigurines[gMenu.unk1c]; + gGenericMenu.unk1d = gGenericMenu.unk1c; + fig = &gFigurines[gGenericMenu.unk1c]; LoadPalettes(fig->pal, 0x16, 9); gfx = fig->gfx; if (fig->size < 0) { @@ -1000,9 +1000,9 @@ void sub_080A4978(void) { void sub_080A4B44(void) { u32 uVar1; - uVar1 = gMenu.unk1c; + uVar1 = gGenericMenu.unk1c; if ((gMenu.column_idx & 0x10) != 0) { - gMenu.unk1e = sub_080A4CBC(uVar1); + gGenericMenu.unk1e = sub_080A4CBC(uVar1); } if ((gMenu.column_idx & 4) != 0) { sub_080A4BA0(uVar1, 2); @@ -1022,8 +1022,8 @@ u32 sub_080A4CBC(u32 param_1) { const u16* psVar2; u32 uVar3; - if (gMenu.unk1a.HALF.LO != param_1) { - gMenu.unk1a.HALF.LO = param_1; + if (gGenericMenu.unk1a.HALF.LO != param_1) { + gGenericMenu.unk1a.HALF.LO = param_1; MemClear(&gBG1Buffer, 0x800); MemCopy(&gBG1Buffer, (void*)0x600e000, 0x800); iVar1 = sub_080A4948(param_1); @@ -1083,8 +1083,8 @@ void sub_080A4DB8(u32 param_1) { MemClear(&gBG1Buffer, 0x800); MemClear(&gBG2Buffer, 0x800); MemClear(gUnk_0200AF00.filler25 + 0xf, 0x300); - MemClear(&gMenu, sizeof(gMenu)); - gMenu.unk2e.HWORD = 0xffff; + MemClear(&gGenericMenu, sizeof(gGenericMenu)); + gGenericMenu.unk2e.HWORD = 0xffff; gMenu.field_0x3 = gUnk_02034490.unk2[param_1]; ptr = &gUnk_08128AD8[gUnk_08128A38[param_1].unk0]; gScreen.lcd.displayControl = ptr->unk2 | 0x1940; @@ -1389,7 +1389,7 @@ void sub_080A5238(void) { default: break; } - gMenu.unk10.a[uVar2] = uVar3; + gGenericMenu.unk10.a[uVar2] = uVar3; sub_080A5F48(uVar3, uVar2 * 8 + 0x360); } } @@ -1421,9 +1421,9 @@ void sub_080A529C(void) { break; } case 2: - if (gMenu.unk10.a[uVar3] != 0) { + if (gGenericMenu.unk10.a[uVar3] != 0) { u32 t = !!(gInput.newKeys ^ 1); - ForceEquipItem(gMenu.unk10.a[uVar3], t); + ForceEquipItem(gGenericMenu.unk10.a[uVar3], t); SoundReq(SFX_TEXTBOX_SELECT); } break; @@ -1448,7 +1448,7 @@ void sub_080A529C(void) { gMenu.field_0x3 = uVar3; SoundReq(SFX_TEXTBOX_CHOICE); } - uVar2 = gMenu.unk10.a[uVar3]; + uVar2 = gGenericMenu.unk10.a[uVar3]; switch (uVar3) { case 0xc: case 0xd: @@ -1488,11 +1488,11 @@ void sub_080A5384(void) { gOamCmd._8 = 0; for (uVar3 = 0; uVar3 < 0x11; uVar3++) { u32 item; - if (gMenu.unk10.a[uVar3] != 0) { + if (gGenericMenu.unk10.a[uVar3] != 0) { entry = &gItemMenuTable[uVar3]; gOamCmd.x = entry->x; gOamCmd.y = entry->y; - item = gMenu.unk10.a[uVar3]; + item = gGenericMenu.unk10.a[uVar3]; switch (item) { case 0x1c ... 0x1f: item = gSave.stats.bottles[item - 0x1c]; @@ -1571,7 +1571,7 @@ u32 sub_080A554C(u32 arg0) { if (arg0 != 0) { for (i = 0; i < 17; i++) { - if (arg0 == gMenu.unk10.a[i]) + if (arg0 == gGenericMenu.unk10.a[i]) return i; } }