summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/menu_unknown.c186
-rwxr-xr-xsrc/party_menu.c3
-rw-r--r--src/player_pc.c2
3 files changed, 189 insertions, 2 deletions
diff --git a/src/menu_unknown.c b/src/menu_unknown.c
new file mode 100644
index 000000000..21f42d264
--- /dev/null
+++ b/src/menu_unknown.c
@@ -0,0 +1,186 @@
+#include "global.h"
+#include "alloc.h"
+#include "international_string_util.h"
+#include "menu.h"
+#include "menu_unknown.h"
+#include "player_pc.h"
+#include "sound.h"
+#include "strings.h"
+#include "string_util.h"
+#include "window.h"
+#include "constants/songs.h"
+
+#define WINDOW_UNK_0 0
+#define WINDOW_UNK_1 1
+#define WINDOW_UNK_2 2
+
+extern struct ListMenuItem *gUnknown_0203CF4C;
+extern u8 gUnknown_0203CF48[3];
+
+void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+
+const struct WindowTemplate gUnknown_086253E8[] =
+{
+ [WINDOW_UNK_0] = {
+ //0x08010100,
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 8,
+ //0x00080F02,
+ .height = 2,
+ .paletteNum = 0xF,
+ .baseBlock = 0x8
+ },
+ [WINDOW_UNK_1] = {
+ //0x08 01 15 00,
+ .bg = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 1,
+ .width = 8,
+ //0x0018 0F 12,
+ .height = 18,
+ .paletteNum = 0xF,
+ .baseBlock = 0x18
+ },
+ [WINDOW_UNK_2] = {
+ //0x0B 01 01 00
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 11,
+ //0x0018 0F 08
+ .height = 8,
+ .paletteNum = 0xF,
+ .baseBlock = 0x18
+ }
+};
+
+const u8 gUnknown_08625400[] = {
+ 1, 2, 3
+};
+
+static const u8 sEmptyItemName[] = _("");
+
+bool8 sub_81D1C44(u8 count)
+{
+ u32 i;
+ struct ListMenuItem **v1;
+ v1 = &gUnknown_0203CF4C;
+ *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem));
+
+ if (gUnknown_0203CF4C == NULL)
+ return FALSE;
+
+ for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1))
+ {
+ gUnknown_0203CF48[i] |= 0xFF;
+ }
+
+ return TRUE;
+}
+
+u8 sub_81D1C84(u8 a0)
+{
+ struct WindowTemplate template;
+
+ u8 windowId = gUnknown_0203CF48[a0];
+ if (windowId == 0xFF)
+ {
+ if (a0 == WINDOW_UNK_2)
+ {
+ u32 v1;
+ u32 v2;
+ s32 v3;
+
+ template = gUnknown_086253E8[WINDOW_UNK_2];
+ v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4);
+ template.width = v3;
+ gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template);
+ }
+ else
+ {
+ gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]);
+ }
+ SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0);
+ }
+ return gUnknown_0203CF48[a0];
+}
+
+void sub_81D1D04(u8 a0)
+{
+ sub_8198070(gUnknown_0203CF48[a0], 0);
+ ClearWindowTilemap(gUnknown_0203CF48[a0]);
+ RemoveWindow(gUnknown_0203CF48[a0]);
+ gUnknown_0203CF48[a0] = 0xFF;
+}
+
+u8 sub_81D1D34(u8 a0)
+{
+ return gUnknown_0203CF48[a0];
+}
+
+void sub_81D1D44(u8 windowId, s32 itemId, u8 y)
+{
+ u8 buffer[30];
+ u16 length;
+
+ if (itemId == LIST_CANCEL)
+ return;
+
+ StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName);
+ sub_81DB52C(buffer);
+ length = StringLength(buffer);
+ if (length <= 5)
+ ConvertInternationalString(buffer, LANGUAGE_JAPANESE);
+ AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer);
+}
+
+u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page)
+{
+ u16 i;
+ for (i = 0; i < page->count; i++)
+ {
+ gUnknown_0203CF4C[i].name = sEmptyItemName;
+ gUnknown_0203CF4C[i].id = i;
+ }
+
+ gUnknown_0203CF4C[i].name = gText_Cancel2;
+ gUnknown_0203CF4C[i].id = LIST_CANCEL;
+
+ gMultiuseListMenuTemplate.items = gUnknown_0203CF4C;
+ gMultiuseListMenuTemplate.totalItems = page->count + 1;
+ gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1];
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 8;
+ gMultiuseListMenuTemplate.cursor_X = 0;
+ gMultiuseListMenuTemplate.maxShowed = 8;
+ gMultiuseListMenuTemplate.upText_Y = 9;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 1;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C;
+ gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44;
+ gMultiuseListMenuTemplate.fontId = 1;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+ gMultiuseListMenuTemplate.lettersSpacing = 0;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 0;
+ gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL;
+ return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos);
+}
+
+void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ if (onInit != TRUE)
+ PlaySE(SE_SELECT);
+}
+
+void sub_81D1E90(struct PlayerPCItemPageStruct *page)
+{
+ page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove);
+}
+
+void sub_81D1EC0(void)
+{
+ Free(gUnknown_0203CF4C);
+} \ No newline at end of file
diff --git a/src/party_menu.c b/src/party_menu.c
index 7e47e9ced..7e47cbf80 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -37,15 +37,16 @@
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
+#include "menu_unknown.h"
#include "metatile_behavior.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
+#include "player_pc.h"
#include "pokemon.h"
#include "pokemon_icon.h"
#include "pokemon_storage_system.h"
#include "pokemon_summary_screen.h"
-#include "pokenav.h"
#include "region_map.h"
#include "reshow_battle_screen.h"
#include "rom_8011DC0.h"
diff --git a/src/player_pc.c b/src/player_pc.c
index bec763b41..f167062cb 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -20,7 +20,6 @@
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
-#include "pokenav.h"
#include "player_pc.h"
#include "script.h"
#include "sound.h"
@@ -29,6 +28,7 @@
#include "strings.h"
#include "task.h"
#include "window.h"
+#include "menu_unknown.h"
// structures
struct Struct203BCC4