Mercurial > mm7
view GUIWindow.h @ 613:5bf285f56fa8
Слияние
author | Ritor1 |
---|---|
date | Thu, 07 Mar 2013 22:45:43 +0600 |
parents | fcbb3c281217 |
children | bd9f43d4fc3d |
line wrap: on
line source
#pragma once #include "GUIButton.h" /* 251 */ enum MENU_STATE : __int32 { MENU_MAIN = 0x0, MENU_NEWGAME = 0x1, MENU_CREDITS = 0x2, MENU_SAVELOAD = 0x3, MENU_FINISHED = 0x4, MENU_5 = 0x5, MENU_CREATEPARTY = 0x6, MENU_NAMEPANELESC = 0x7, MENU_CREDITSPROC = 0x8, MENU_LOADINGPROC = 0x9, MENU_10 = 0xA, MENU_CREDITSCLOSE = 0xB, }; enum DIALOGUE_TYPE { DIALOGUE_9 = 9, DIALOGUE_13 = 0xD, DIALOGUE_18 = 0x12, DIALOGUE_19 = 19, DIALOGUE_20 = 20, DIALOGUE_21 = 21, DIALOGUE_22 = 22, DIALOGUE_23 = 23, DIALOGUE_24 = 0x18, DIALOGUE_76 = 76, DIALOGUE_PROFESSION_DETAILS = 77, DIALOGUE_ARENA_WELCOME = 0x59, DIALOGUE_ARENA_FIGHT_NOT_OVER_YET = 0x5A, DIALOGUE_ARENA_REWARD = 0x5B, DIALOGUE_ARENA_ALREADY_WON = 0x5C, }; /* 298 */ enum WindowType: unsigned __int32 { WINDOW_null = 0, WINDOW_MainMenu = 0x1, WINDOW_3 = 0x3, WINDOW_CharacterRecord = 0x4, WINDOW_Options = 0x6, WINDOW_Book = 0x9, WINDOW_Dialogue = 0xA, WINDOW_QuickReference = 0xC, WINDOW_Rest = 0x10, WINDOW_ChangeLocation = 0x11, WINDOW_SpellBook = 0x12, WINDOW_GreetingNPC = 0x13, WINDOW_Chest = 0x14, WINDOW_17 = 0x17, WINDOW_MainMenu_Load = 0x18, WINDOW_HouseInterior = 0x19, WINDOW_Transition = 0x1A, WINDOW_1B = 0x1B, WINDOW_Scroll = 0x1E, WINDOW_1F = 0x1F, WINDOW_FinalWindow = 0x46, WINDOW_50 = 0x50, WINDOW_59 = 0x59, WINDOW_5A = 0x5A, WINDOW_5B = 0x5B, WINDOW_VoiceSwitcherButton = 0x5C, WINDOW_5D = 0x5D, WINDOW_5E = 0x5E, WINDOW_5F = 0x5F, WINDOW_60 = 0x60, WINDOW_61 = 0x61, WINDOW_RestWindow = 0x62, WINDOW_63 = 0x63, WINDOW_CharacterWindow_Stats = 0x64, WINDOW_CharacterWindow_Skills = 0x65, WINDOW_CharacterWindow_Awards = 0x66, WINDOW_CharacterWindow_Inventory = 0x67, WINDOW_KeyMappingOptions = 0x69, WINDOW_VideoOptions = 0x6A, WINDOW_Lloyd = 0xB1, WINDOW_TownPortal = 0xC3, WINDOW_QuestBook = 0xC8, WINDOW_AutonotesBook = 0xC9, WINDOW_MapsBook = 0xCA, WINDOW_CalendarBook = 0xCB, WINDOW_HistoryBook = 0xE0, }; /* 155 */ #pragma pack(push, 1) struct GUIWindow { inline GUIWindow() { pControlsHead = pControlsTail = nullptr; eWindowType = WINDOW_null; } GUIButton *CreateButton(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, int a6, int a7, unsigned int uControlID, unsigned int uControlParam, unsigned __int8 uHotkey, const char *pName, Texture *pTextures, ...); void DrawFlashingInputCursor(signed int a3, int a4, struct GUIFont *a2); int DrawTextInRect(GUIFont *a2, unsigned int uX, unsigned int uY, unsigned int uColor, const char *Str1, int Source, int a8); char DrawText(GUIFont *a2, signed int uX, int uY, unsigned int uFontColor, const char *Str, int a7, int a8, unsigned int uFontShadowColor); char *DrawTitleText(GUIFont *a2, unsigned int uHorizontalMargin, unsigned int uVerticalMargin, unsigned __int16 uDefaultColor, const char *pInString, unsigned int uLineSpacing); void DrawCurrentTime(__int64 a2); void HouseDialogManager(); void OpenSpellBook(); void InitializeBookView(); void DrawMessageBox(int arg0); GUIButton *GetControl(unsigned int uID); void Release(); void _41D08F(int a2, int a3, int a4, int a5); char DrawQuickCharRecord(); char _41D73D_draw_buff_tooltip(); static GUIWindow *Create(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, enum WindowType eType, int a4, int a5); unsigned int uFrameX; unsigned int uFrameY; unsigned int uFrameWidth; unsigned int uFrameHeight; unsigned int uFrameZ; unsigned int uFrameW; WindowType eWindowType; union{ void *ptr_1C; unsigned int par1C; }; unsigned int uNumControls; int field_24; int pNumPresenceButton; int pCurrentPosActiveItem; int field_30; int field_34; int pStartingPosActiveItem; int numVisibleWindows; int field_40; int field_44; char *Hint; GUIButton *pControlsHead; GUIButton *pControlsTail; }; #pragma pack(pop) enum UIMessageType { UIMSG_00 = 0x0, UIMSG_ChangeGameState = 0x5, UIMSG_A = 0xA, UIMSG_C = 0xC, UIMSG_E = 0xE, UIMSG_F = 0xF, UIMSG_11 = 0x11, UIMSG_Attack = 23, UIMSG_19 = 0x19, UIMSG_1B = 0x1B, UIMSG_1C = 0x1C, UIMSG_PlayArcomage = 0x1D, UIMSG_33 = 0x33, UIMSG_MainMenu_ShowPartyCreationWnd = 0x36, UIMSG_MainMenu_ShowLoadWindow = 0x37, UIMSG_ShowCredits = 0x38, UIMSG_ExitToWindows = 0x39, UIMSG_3A = 0x3A, UIMSG_PlayerCreationChangeName = 0x3C, UIMSG_PlayerCreationClickPlus = 0x3E, UIMSG_PlayerCreationClickMinus = 0x3F, UIMSG_PlayerCreationSelectActiveSkill = 0x40, UIMSG_PlayerCreationSelectClass = 0x41, UIMSG_PlayerCreationClickOK = 0x42, UIMSG_PlayerCreationClickReset = 0x43, UIMSG_45 = 0x45, UIMSG_46 = 0x46, UIMSG_AutonotesBook = 0x47, UIMSG_PlayerCreationRemoveUpSkill = 0x4A, UIMSG_PlayerCreationRemoveDownSkill = 0x4B, UIMSG_4E = 0x4E, UIMSG_SPellbook_ShowHightlightedSpellInfo = 0x4F, UIMSG_51 = 0x51, UIMSG_LoadGame = 0x52, UIMSG_SaveGame = 0x53, UIMSG_54 = 0x54, UIMSG_55 = 0x55, UIMSG_SelectSpell = 0x56, UIMSG_57 = 0x57, UIMSG_58 = 0x58, UIMSG_5A = 0x5A, UIMSG_5B = 0x5B, UIMSG_ShowStatus_DateTime = 0x5C, UIMSG_ShowStatus_ManaHP = 0x5D, UIMSG_ShowStatus_Player = 0x5E, UIMSG_Wait5Minutes = 0x5F, UIMSG_Wait1Hour = 0x60, UIMSG_61 = 0x61, UIMSG_ShowStatus_Food = 0x64, UIMSG_ShowStatus_Funds = 0x65, UIMSG_68 = 0x68, UIMSG_69 = 0x69, UIMSG_QuickReference = 0x6A, UIMSG_GameMenuButton = 0x6B, UIMSG_AlreadyResting = 0x6D, UIMSG_SelectCharacter = 0x6E, UIMSG_ChangeSoundVolume = 0x6F, UIMSG_ChangeMusicVolume = 0x70, UIMSG_Escape = 0x71, UIMSG_72 = 0x72, UIMSG_73 = 0x73, UIMSG_74 = 0x74, UIMSG_75 = 0x75, UIMSG_PlayerCreation_SelectAttribute = 0x76, UIMSG_InventoryLeftClick = 0x78, UIMSG_SkillUp = 0x79, UIMSG_7A = 0x7A, UIMSG_GameMenu_ReturnToGame = 0x7B, UIMSG_StartNewGame = 0x7C, UIMSG_Game_OpenLoadGameDialog = 0x7D, UIMSG_Game_OpenSaveGameDialog = 0x7E, UIMSG_Game_OpenOptionsDialog = 0x7F, UIMSG_80 = 0x80, UIMSG_SetGraphicsMode = 0x83, UIMSG_Quit = 0x84, UIMSG_85 = 0x85, UIMSG_StartHireling1Dialogue = 0x86, UIMSG_StartHireling2Dialogue = 0x87, UIMSG_SelectDialogueOption = 0x88, UIMSG_8C = 0x8C, UIMSG_8D = 0x8D, UIMSG_CastSpellFromBook = 0x8E, UIMSG_8F = 0x8F, UIMSG_PlayerCreation_VoicePrev = 0x90, UIMSG_PlayerCreation_VoiceNext = 0x91, UIMSG_92 = 0x92, UIMSG_StartNPCDialogue = 0xA1, UIMSG_ArrowUp = 0xA2, UIMSG_DownArrow = 0xA3, UIMSG_LoadSlot = 0xA4, UIMSG_SelectLoadSlot = 0xA5, UIMSG_Cancel = 0xA6, UIMSG_ExitRest = 0xA7, UIMSG_A8 = 0xA8, UIMSG_A9 = 0xA9, UIMSG_AA = 0xAA, UIMSG_PlayerCreation_FacePrev = 0xAB, UIMSG_PlayerCreation_FaceNext = 0xAC, UIMSG_AD = 0xAD, UIMSG_AE = 0xAE, UIMSG_ClickNPCTopic = 0xAF, UIMSG_CycleCharacters = 0xB0, UIMSG_B1 = 0xB1, UIMSG_B2 = 0xB2, UIMSG_B3 = 0xB3, UIMSG_B4 = 0xB4, UIMSG_B5 = 0xB5, UIMSG_B6 = 0xB6, UIMSG_B7 = 0xB7, UIMSG_SetTurnSpeed = 0xB8, UIMSG_ToggleWalkSound = 0xB9, UIMSG_ChangeVoiceVolume = 0xBA, UIMSG_ToggleShowDamage = 0xBB, UIMSG_ScrollNPCPanel = 0xBC, UIMSG_BD = 0xBD, UIMSG_BE = 0xBE, UIMSG_BF = 0xBF, UIMSG_C0 = 0xC0, UIMSG_C1 = 0xC1, UIMSG_C2 = 0xC2, UIMSG_C3 = 0xC3, UIMSG_C4 = 0xC4, UIMSG_ShowFinalWindow = 0xC5, UIMSG_C6 = 0xC6, UIMSG_C7 = 0xC7, UIMSG_OpenQuestBook = 0xC8, UIMSG_OpenAutonotes = 0xC9, UIMSG_OpenMapBook = 0xCA, UIMSG_OpenCalendar = 0xCB, UIMSG_CC = 0xCC, UIMSG_CD = 0xCD, UIMSG_CE = 0xCE, UIMSG_CF = 0xCF, UIMSG_D0 = 0xD0, UIMSG_D1 = 0xD1, UIMSG_D2 = 0xD2, UIMSG_D3 = 0xD3, UIMSG_D4 = 0xD4, UIMSG_D5 = 0xD5, UIMSG_D6 = 0xD6, UIMSG_DD = 0xDD, UIMSG_OpenHistoryBook = 0xE0, UIMSG_ToggleAlwaysRun = 0xE1, UIMSG_ToggleFlipOnExit = 0xE2, UIMSG_16F = 0x16F, UIMSG_170 = 0x170, UIMSG_Game_Action = 0x194, UIMSG_ClickLearnSkillDialog = 0x195, UIMSG_OpenRestUI = 0x199, UIMSG_19A = 0x19A, UIMSG_TransitionUI_Confirm = 0x19B, UIMSG_19C = 0x19C, UIMSG_OpenKeyMappingOptions = 0x19F, UIMSG_SelectKeyPage1 = 0x1A0, UIMSG_SelectKeyPage2 = 0x1A1, UIMSG_ResetKeyMapping = 0x1A2, UIMSG_ChangeKeyButton = 0x1A3, UIMSG_OpenVideoOptions = 0x1A5, UIMSG_ToggleBloodsplats = 0x1A6, UIMSG_ToggleColoredLights = 0x1A7, UIMSG_ToggleTint = 0x1A8, UIMSG_1A9 = 0x1A9, }; enum CURRENT_SCREEN { SCREEN_GAME = 0x0, SCREEN_MENU = 0x1, SCREEN_OPTIONS = 0x2, SCREEN_BOOKS = 0x3, SCREEN_NPC_DIALOGUE = 0x4, SCREEN_REST = 0x5, SCREEN_CHARACTERS = 0x7, SCREEN_SPELL_BOOK = 0x8, SCREEN_CREATORS = 0x9, SCREEN_CHEST = 0xA, SCREEN_SAVEGAME = 0xB, SCREEN_LOADGAME = 0xC, SCREEN_HOUSE = 0xD, SCREEN_E = 0xE, SCREEN_F = 0xF, SCREEN_VIDEO = 0x10, SCREEN_CHANGE_LOCATION = 0x11, SCREEN_INPUT_BLV = 0x12, SCREEN_BRANCHLESS_NPC_DIALOG = 0x13, SCREEN_PARTY_CREATION = 0x15, SCREEN_PRESS_ESCAPE_MESSAGE = 0x16, SCREEN_CASTING = 0x17, SCREEN_19 = 0x19, SCREEN_KEYBOARD_OPTIONS = 0x1A, SCREEN_1B = 0x1B, SCREEN_VIDEO_OPTIONS = 0x1C, SCREEN_63 = 0x63, SCREEN_64 = 0x64, SCREEN_67 = 0x67, SCREEN_QUICK_REFERENCE = 0x68, }; /* 249 */ #pragma pack(push, 1) struct GUIMessage { enum UIMessageType eType; int param; int field_8; }; #pragma pack(pop) #define AddMessage(msg, param, a4) AddMessageImpl((msg), (param), (a4), __FILE__, __LINE__) /* 250 */ #pragma pack(push, 1) struct GUIMessageQueue { inline GUIMessageQueue(): uNumMessages(0) {} void PopMessage(UIMessageType *pMsg, int *pParam, int *a4); void AddMessageImpl(UIMessageType msg, int param, unsigned int a4, const char *file = nullptr, int line = 0); unsigned int uNumMessages; GUIMessage pMessages[40]; const char *files[40]; int lines[40]; }; #pragma pack(pop) extern struct GUIMessageQueue *pMessageQueue_50CBD0; // idb void OnSelectDialogueOption(DIALOGUE_TYPE newDialogueType); extern int pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[]; // idb extern struct GUIWindow *pWindow_MainMenu; extern struct GUIWindow pWindowList[20]; void QuickRefDraw();