#pragma once #include #include #define MAIN_MENU_ID 0x11000011 #define INFORMATION_MENU_ID 0x22000022 #define LOBBY_MENU_ID 0x33000033 #define GAME_MENU_ID 0x44000044 #define QUEST_MENU_ID 0x55000055 #define QUEST_FILTER_MENU_ID 0x66000066 #define PROXY_DESTINATIONS_MENU_ID 0x77000077 #define MAIN_MENU_GO_TO_LOBBY 0x11AAAA11 #define MAIN_MENU_INFORMATION 0x11BBBB11 #define MAIN_MENU_DOWNLOAD_QUESTS 0x11CCCC11 #define MAIN_MENU_PROXY_DESTINATIONS 0x11DDDD11 #define MAIN_MENU_DISCONNECT 0x11EEEE11 #define INFORMATION_MENU_GO_BACK 0x22FFFF22 #define PROXY_DESTINATIONS_MENU_GO_BACK 0x77FFFF77 struct MenuItem { enum Flag { INVISIBLE_ON_DC = 0x01, INVISIBLE_ON_PC = 0x02, INVISIBLE_ON_GC = 0x04, INVISIBLE_ON_BB = 0x08, DC_ONLY = INVISIBLE_ON_PC | INVISIBLE_ON_GC | INVISIBLE_ON_BB, PC_ONLY = INVISIBLE_ON_DC | INVISIBLE_ON_GC | INVISIBLE_ON_BB, GC_ONLY = INVISIBLE_ON_DC | INVISIBLE_ON_PC | INVISIBLE_ON_BB, BB_ONLY = INVISIBLE_ON_DC | INVISIBLE_ON_PC | INVISIBLE_ON_GC, REQUIRES_MESSAGE_BOXES = 0x10, }; uint32_t item_id; std::u16string name; std::u16string description; uint32_t flags; MenuItem(uint32_t item_id, const std::u16string& name, const std::u16string& description, uint32_t flags); };