Mercurial > mm7
annotate GUIWindow.h @ 691:c93f29773f84
Bsp render seems to work
author | Nomad |
---|---|
date | Sat, 16 Mar 2013 14:33:23 +0200 |
parents | c0bfb386b15f |
children | 735dab8d3c9a |
rev | line source |
---|---|
0 | 1 #pragma once |
2 #include "GUIButton.h" | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 /* 251 */ | |
9 enum MENU_STATE : __int32 | |
10 { | |
11 MENU_MAIN = 0x0, | |
12 MENU_NEWGAME = 0x1, | |
13 MENU_CREDITS = 0x2, | |
14 MENU_SAVELOAD = 0x3, | |
15 MENU_FINISHED = 0x4, | |
16 MENU_5 = 0x5, | |
17 MENU_CREATEPARTY = 0x6, | |
165 | 18 MENU_NAMEPANELESC = 0x7, |
19 MENU_CREDITSPROC = 0x8, | |
20 MENU_LOADINGPROC = 0x9, | |
0 | 21 MENU_10 = 0xA, |
165 | 22 MENU_CREDITSCLOSE = 0xB, |
0 | 23 }; |
24 | |
25 | |
167 | 26 enum DIALOGUE_TYPE |
27 { | |
248 | 28 DIALOGUE_9 = 9, |
179 | 29 DIALOGUE_13 = 0xD, |
30 DIALOGUE_18 = 0x12, | |
248 | 31 DIALOGUE_19 = 19, |
32 DIALOGUE_20 = 20, | |
33 DIALOGUE_21 = 21, | |
34 DIALOGUE_22 = 22, | |
35 DIALOGUE_23 = 23, | |
179 | 36 DIALOGUE_24 = 0x18, |
248 | 37 DIALOGUE_76 = 76, |
38 DIALOGUE_PROFESSION_DETAILS = 77, | |
179 | 39 DIALOGUE_ARENA_WELCOME = 0x59, |
40 DIALOGUE_ARENA_FIGHT_NOT_OVER_YET = 0x5A, | |
41 DIALOGUE_ARENA_REWARD = 0x5B, | |
42 DIALOGUE_ARENA_ALREADY_WON = 0x5C, | |
167 | 43 }; |
0 | 44 |
45 | |
46 | |
47 | |
48 | |
49 /* 298 */ | |
50 enum WindowType: unsigned __int32 | |
51 { | |
52 WINDOW_null = 0, | |
53 WINDOW_MainMenu = 0x1, | |
17 | 54 WINDOW_3 = 0x3, |
0 | 55 WINDOW_CharacterRecord = 0x4, |
56 WINDOW_Options = 0x6, | |
57 WINDOW_Book = 0x9, | |
165 | 58 WINDOW_Dialogue = 0xA, |
158 | 59 WINDOW_QuickReference = 0xC, |
60 WINDOW_Rest = 0x10, | |
61 WINDOW_ChangeLocation = 0x11, | |
62 WINDOW_SpellBook = 0x12, | |
63 WINDOW_GreetingNPC = 0x13, | |
0 | 64 WINDOW_Chest = 0x14, |
17 | 65 WINDOW_17 = 0x17, |
0 | 66 WINDOW_MainMenu_Load = 0x18, |
67 WINDOW_HouseInterior = 0x19, | |
158 | 68 WINDOW_Transition = 0x1A, |
69 WINDOW_1B = 0x1B, | |
70 WINDOW_Scroll = 0x1E, | |
71 WINDOW_1F = 0x1F, | |
0 | 72 WINDOW_FinalWindow = 0x46, |
17 | 73 WINDOW_50 = 0x50, |
74 WINDOW_59 = 0x59, | |
0 | 75 WINDOW_5A = 0x5A, |
17 | 76 WINDOW_5B = 0x5B, |
187 | 77 WINDOW_VoiceSwitcherButton = 0x5C, |
17 | 78 WINDOW_5D = 0x5D, |
0 | 79 WINDOW_5E = 0x5E, |
4 | 80 WINDOW_5F = 0x5F, |
81 WINDOW_60 = 0x60, | |
17 | 82 WINDOW_61 = 0x61, |
83 WINDOW_RestWindow = 0x62, | |
84 WINDOW_63 = 0x63, | |
85 WINDOW_CharacterWindow_Stats = 0x64, | |
86 WINDOW_CharacterWindow_Skills = 0x65, | |
87 WINDOW_CharacterWindow_Awards = 0x66, | |
88 WINDOW_CharacterWindow_Inventory = 0x67, | |
0 | 89 WINDOW_KeyMappingOptions = 0x69, |
17 | 90 WINDOW_VideoOptions = 0x6A, |
91 WINDOW_Lloyd = 0xB1, | |
92 WINDOW_TownPortal = 0xC3, | |
93 WINDOW_QuestBook = 0xC8, | |
94 WINDOW_AutonotesBook = 0xC9, | |
95 WINDOW_MapsBook = 0xCA, | |
96 WINDOW_CalendarBook = 0xCB, | |
92 | 97 WINDOW_HistoryBook = 0xE0, |
0 | 98 }; |
99 | |
100 /* 155 */ | |
101 #pragma pack(push, 1) | |
102 struct GUIWindow | |
103 { | |
200 | 104 inline GUIWindow() |
105 { | |
106 pControlsHead = pControlsTail = nullptr; | |
107 eWindowType = WINDOW_null; | |
108 } | |
109 | |
189 | 110 GUIButton *CreateButton(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, int a6, int a7, |
111 unsigned int uControlID, unsigned int uControlParam, unsigned __int8 uHotkey, const char *pName, Texture *pTextures, ...); | |
0 | 112 void DrawFlashingInputCursor(signed int a3, int a4, struct GUIFont *a2); |
113 int DrawTextInRect(GUIFont *a2, unsigned int uX, unsigned int uY, unsigned int uColor, const char *Str1, int Source, int a8); | |
114 char DrawText(GUIFont *a2, signed int uX, int uY, unsigned int uFontColor, const char *Str, int a7, int a8, unsigned int uFontShadowColor); | |
688 | 115 char *DrawTitleText(GUIFont *a2, signed int uHorizontalMargin, unsigned int uVerticalMargin, unsigned __int16 uDefaultColor, const char *pInString, unsigned int uLineSpacing); |
471
c43f156a95c9
ArmorShopDialog crash fixed. All shops show its items
Gloval
parents:
467
diff
changeset
|
116 void DrawCurrentTime(__int64 a2); |
405 | 117 void HouseDialogManager(); |
198 | 118 void OpenSpellBook(); |
0 | 119 void InitializeBookView(); |
120 void DrawMessageBox(int arg0); | |
121 GUIButton *GetControl(unsigned int uID); | |
122 void Release(); | |
123 void _41D08F(int a2, int a3, int a4, int a5); | |
688 | 124 void DrawQuickCharRecord(); |
0 | 125 char _41D73D_draw_buff_tooltip(); |
126 | |
127 static GUIWindow *Create(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, enum WindowType eType, int a4, int a5); | |
128 | |
129 unsigned int uFrameX; | |
130 unsigned int uFrameY; | |
131 unsigned int uFrameWidth; | |
132 unsigned int uFrameHeight; | |
133 unsigned int uFrameZ; | |
134 unsigned int uFrameW; | |
135 WindowType eWindowType; | |
496 | 136 union{ |
0 | 137 void *ptr_1C; |
496 | 138 unsigned int par1C; |
139 }; | |
0 | 140 unsigned int uNumControls; |
141 int field_24; | |
142 int pNumPresenceButton; | |
143 int pCurrentPosActiveItem; | |
144 int field_30; | |
145 int field_34; | |
146 int pStartingPosActiveItem; | |
496 | 147 int numVisibleWindows; |
0 | 148 int field_40; |
149 int field_44; | |
150 char *Hint; | |
151 GUIButton *pControlsHead; | |
152 GUIButton *pControlsTail; | |
153 }; | |
154 #pragma pack(pop) | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
495 | 161 |
0 | 162 enum UIMessageType |
163 { | |
164 UIMSG_00 = 0x0, | |
165 UIMSG_ChangeGameState = 0x5, | |
151 | 166 UIMSG_A = 0xA, |
167 UIMSG_C = 0xC, | |
168 UIMSG_E = 0xE, | |
169 UIMSG_F = 0xF, | |
3 | 170 UIMSG_11 = 0x11, |
271 | 171 UIMSG_Attack = 23, |
151 | 172 UIMSG_19 = 0x19, |
173 UIMSG_1B = 0x1B, | |
174 UIMSG_1C = 0x1C, | |
0 | 175 UIMSG_PlayArcomage = 0x1D, |
151 | 176 UIMSG_33 = 0x33, |
0 | 177 UIMSG_MainMenu_ShowPartyCreationWnd = 0x36, |
178 UIMSG_MainMenu_ShowLoadWindow = 0x37, | |
179 UIMSG_ShowCredits = 0x38, | |
180 UIMSG_ExitToWindows = 0x39, | |
3 | 181 UIMSG_3A = 0x3A, |
182 UIMSG_PlayerCreationChangeName = 0x3C, | |
0 | 183 UIMSG_PlayerCreationClickPlus = 0x3E, |
184 UIMSG_PlayerCreationClickMinus = 0x3F, | |
185 UIMSG_PlayerCreationSelectActiveSkill = 0x40, | |
186 UIMSG_PlayerCreationSelectClass = 0x41, | |
187 UIMSG_PlayerCreationClickOK = 0x42, | |
188 UIMSG_PlayerCreationClickReset = 0x43, | |
151 | 189 UIMSG_45 = 0x45, |
190 UIMSG_46 = 0x46, | |
191 UIMSG_AutonotesBook = 0x47, | |
0 | 192 UIMSG_PlayerCreationRemoveUpSkill = 0x4A, |
193 UIMSG_PlayerCreationRemoveDownSkill = 0x4B, | |
151 | 194 UIMSG_4E = 0x4E, |
370 | 195 UIMSG_SPellbook_ShowHightlightedSpellInfo = 0x4F, |
151 | 196 UIMSG_51 = 0x51, |
0 | 197 UIMSG_LoadGame = 0x52, |
198 UIMSG_SaveGame = 0x53, | |
151 | 199 UIMSG_54 = 0x54, |
200 UIMSG_55 = 0x55, | |
437 | 201 UIMSG_SelectSpell = 0x56, |
151 | 202 UIMSG_57 = 0x57, |
203 UIMSG_58 = 0x58, | |
204 UIMSG_5A = 0x5A, | |
205 UIMSG_5B = 0x5B, | |
0 | 206 UIMSG_ShowStatus_DateTime = 0x5C, |
207 UIMSG_ShowStatus_ManaHP = 0x5D, | |
208 UIMSG_ShowStatus_Player = 0x5E, | |
151 | 209 UIMSG_Wait5Minutes = 0x5F, |
210 UIMSG_Wait1Hour = 0x60, | |
211 UIMSG_61 = 0x61, | |
0 | 212 UIMSG_ShowStatus_Food = 0x64, |
213 UIMSG_ShowStatus_Funds = 0x65, | |
151 | 214 UIMSG_68 = 0x68, |
215 UIMSG_69 = 0x69, | |
11 | 216 UIMSG_QuickReference = 0x6A, |
358 | 217 UIMSG_GameMenuButton = 0x6B, |
151 | 218 UIMSG_AlreadyResting = 0x6D, |
0 | 219 UIMSG_SelectCharacter = 0x6E, |
220 UIMSG_ChangeSoundVolume = 0x6F, | |
221 UIMSG_ChangeMusicVolume = 0x70, | |
3 | 222 UIMSG_Escape = 0x71, |
151 | 223 UIMSG_72 = 0x72, |
224 UIMSG_73 = 0x73, | |
225 UIMSG_74 = 0x74, | |
226 UIMSG_75 = 0x75, | |
187 | 227 UIMSG_PlayerCreation_SelectAttribute = 0x76, |
151 | 228 UIMSG_InventoryLeftClick = 0x78, |
0 | 229 UIMSG_SkillUp = 0x79, |
151 | 230 UIMSG_7A = 0x7A, |
369 | 231 UIMSG_GameMenu_ReturnToGame = 0x7B, |
0 | 232 UIMSG_StartNewGame = 0x7C, |
233 UIMSG_Game_OpenLoadGameDialog = 0x7D, | |
151 | 234 UIMSG_Game_OpenSaveGameDialog = 0x7E, |
0 | 235 UIMSG_Game_OpenOptionsDialog = 0x7F, |
151 | 236 UIMSG_80 = 0x80, |
0 | 237 UIMSG_SetGraphicsMode = 0x83, |
238 UIMSG_Quit = 0x84, | |
151 | 239 UIMSG_85 = 0x85, |
199 | 240 UIMSG_StartHireling1Dialogue = 0x86, |
241 UIMSG_StartHireling2Dialogue = 0x87, | |
651 | 242 UIMSG_SelectNPCDialogueOption = 0x88, |
151 | 243 UIMSG_8C = 0x8C, |
244 UIMSG_8D = 0x8D, | |
370 | 245 UIMSG_CastSpellFromBook = 0x8E, |
151 | 246 UIMSG_8F = 0x8F, |
187 | 247 UIMSG_PlayerCreation_VoicePrev = 0x90, |
248 UIMSG_PlayerCreation_VoiceNext = 0x91, | |
151 | 249 UIMSG_92 = 0x92, |
0 | 250 UIMSG_StartNPCDialogue = 0xA1, |
2 | 251 UIMSG_ArrowUp = 0xA2, |
252 UIMSG_DownArrow = 0xA3, | |
253 UIMSG_LoadSlot = 0xA4, | |
3 | 254 UIMSG_SelectLoadSlot = 0xA5, |
2 | 255 UIMSG_Cancel = 0xA6, |
151 | 256 UIMSG_ExitRest = 0xA7, |
0 | 257 UIMSG_A8 = 0xA8, |
258 UIMSG_A9 = 0xA9, | |
259 UIMSG_AA = 0xAA, | |
187 | 260 UIMSG_PlayerCreation_FacePrev = 0xAB, |
261 UIMSG_PlayerCreation_FaceNext = 0xAC, | |
0 | 262 UIMSG_AD = 0xAD, |
263 UIMSG_AE = 0xAE, | |
467 | 264 UIMSG_ClickNPCTopic = 0xAF, |
0 | 265 UIMSG_CycleCharacters = 0xB0, |
266 UIMSG_B1 = 0xB1, | |
267 UIMSG_B2 = 0xB2, | |
268 UIMSG_B3 = 0xB3, | |
269 UIMSG_B4 = 0xB4, | |
270 UIMSG_B5 = 0xB5, | |
271 UIMSG_B6 = 0xB6, | |
272 UIMSG_B7 = 0xB7, | |
273 UIMSG_SetTurnSpeed = 0xB8, | |
274 UIMSG_ToggleWalkSound = 0xB9, | |
275 UIMSG_ChangeVoiceVolume = 0xBA, | |
276 UIMSG_ToggleShowDamage = 0xBB, | |
111 | 277 UIMSG_ScrollNPCPanel = 0xBC, |
0 | 278 UIMSG_BD = 0xBD, |
279 UIMSG_BE = 0xBE, | |
280 UIMSG_BF = 0xBF, | |
281 UIMSG_C0 = 0xC0, | |
282 UIMSG_C1 = 0xC1, | |
283 UIMSG_C2 = 0xC2, | |
284 UIMSG_C3 = 0xC3, | |
285 UIMSG_C4 = 0xC4, | |
286 UIMSG_ShowFinalWindow = 0xC5, | |
287 UIMSG_C6 = 0xC6, | |
288 UIMSG_C7 = 0xC7, | |
289 UIMSG_OpenQuestBook = 0xC8, | |
290 UIMSG_OpenAutonotes = 0xC9, | |
291 UIMSG_OpenMapBook = 0xCA, | |
292 UIMSG_OpenCalendar = 0xCB, | |
293 UIMSG_CC = 0xCC, | |
294 UIMSG_CD = 0xCD, | |
295 UIMSG_CE = 0xCE, | |
296 UIMSG_CF = 0xCF, | |
297 UIMSG_D0 = 0xD0, | |
298 UIMSG_D1 = 0xD1, | |
299 UIMSG_D2 = 0xD2, | |
300 UIMSG_D3 = 0xD3, | |
301 UIMSG_D4 = 0xD4, | |
302 UIMSG_D5 = 0xD5, | |
303 UIMSG_D6 = 0xD6, | |
151 | 304 UIMSG_DD = 0xDD, |
0 | 305 UIMSG_OpenHistoryBook = 0xE0, |
306 UIMSG_ToggleAlwaysRun = 0xE1, | |
307 UIMSG_ToggleFlipOnExit = 0xE2, | |
151 | 308 UIMSG_16F = 0x16F, |
309 UIMSG_170 = 0x170, | |
201 | 310 UIMSG_Game_Action = 0x194, |
651 | 311 UIMSG_SelectShopDialogueOption = 0x195, |
0 | 312 UIMSG_OpenRestUI = 0x199, |
151 | 313 UIMSG_19A = 0x19A, |
434 | 314 UIMSG_TransitionUI_Confirm = 0x19B, |
151 | 315 UIMSG_19C = 0x19C, |
0 | 316 UIMSG_OpenKeyMappingOptions = 0x19F, |
362 | 317 UIMSG_SelectKeyPage1 = 0x1A0, |
318 UIMSG_SelectKeyPage2 = 0x1A1, | |
0 | 319 UIMSG_ResetKeyMapping = 0x1A2, |
362 | 320 UIMSG_ChangeKeyButton = 0x1A3, |
0 | 321 UIMSG_OpenVideoOptions = 0x1A5, |
322 UIMSG_ToggleBloodsplats = 0x1A6, | |
323 UIMSG_ToggleColoredLights = 0x1A7, | |
324 UIMSG_ToggleTint = 0x1A8, | |
151 | 325 UIMSG_1A9 = 0x1A9, |
0 | 326 }; |
629 | 327 |
151 | 328 enum CURRENT_SCREEN |
329 { | |
330 SCREEN_GAME = 0x0, | |
331 SCREEN_MENU = 0x1, | |
332 SCREEN_OPTIONS = 0x2, | |
333 SCREEN_BOOKS = 0x3, | |
334 SCREEN_NPC_DIALOGUE = 0x4, | |
335 SCREEN_REST = 0x5, | |
336 SCREEN_CHARACTERS = 0x7, | |
337 SCREEN_SPELL_BOOK = 0x8, | |
338 SCREEN_CREATORS = 0x9, | |
339 SCREEN_CHEST = 0xA, | |
340 SCREEN_SAVEGAME = 0xB, | |
341 SCREEN_LOADGAME = 0xC, | |
342 SCREEN_HOUSE = 0xD, | |
343 SCREEN_E = 0xE, | |
344 SCREEN_F = 0xF, | |
345 SCREEN_VIDEO = 0x10, | |
346 SCREEN_CHANGE_LOCATION = 0x11, | |
347 SCREEN_INPUT_BLV = 0x12, | |
348 SCREEN_BRANCHLESS_NPC_DIALOG = 0x13, | |
349 SCREEN_PARTY_CREATION = 0x15, | |
350 SCREEN_PRESS_ESCAPE_MESSAGE = 0x16, | |
351 SCREEN_CASTING = 0x17, | |
352 SCREEN_19 = 0x19, | |
353 SCREEN_KEYBOARD_OPTIONS = 0x1A, | |
354 SCREEN_1B = 0x1B, | |
355 SCREEN_VIDEO_OPTIONS = 0x1C, | |
356 SCREEN_63 = 0x63, | |
357 SCREEN_64 = 0x64, | |
358 SCREEN_67 = 0x67, | |
359 SCREEN_QUICK_REFERENCE = 0x68, | |
360 }; | |
0 | 361 |
362 | |
363 | |
364 | |
365 /* 249 */ | |
366 #pragma pack(push, 1) | |
367 struct GUIMessage | |
368 { | |
369 enum UIMessageType eType; | |
370 int param; | |
371 int field_8; | |
372 }; | |
373 #pragma pack(pop) | |
374 | |
375 | |
376 | |
377 | |
437 | 378 #define AddMessage(msg, param, a4) AddMessageImpl((msg), (param), (a4), __FILE__, __LINE__) |
0 | 379 /* 250 */ |
380 #pragma pack(push, 1) | |
381 struct GUIMessageQueue | |
382 { | |
383 inline GUIMessageQueue(): | |
384 uNumMessages(0) | |
385 {} | |
386 | |
387 void PopMessage(UIMessageType *pMsg, int *pParam, int *a4); | |
437 | 388 void AddMessageImpl(UIMessageType msg, int param, unsigned int a4, const char *file = nullptr, int line = 0); |
0 | 389 |
390 unsigned int uNumMessages; | |
391 GUIMessage pMessages[40]; | |
437 | 392 |
393 const char *files[40]; | |
394 int lines[40]; | |
0 | 395 }; |
396 #pragma pack(pop) | |
397 | |
398 extern struct GUIMessageQueue *pMessageQueue_50CBD0; // idb | |
399 | |
400 | |
401 | |
402 | |
248 | 403 |
651 | 404 void OnSelectNPCDialogueOption(DIALOGUE_TYPE newDialogueType); |
248 | 405 |
406 | |
407 | |
0 | 408 extern int pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[]; // idb |
409 extern struct GUIWindow *pWindow_MainMenu; | |
566 | 410 extern struct GUIWindow pWindowList[20]; |
411 | |
412 | |
413 | |
414 | |
415 | |
416 | |
417 void QuickRefDraw(); |