annotate Game/GameMenu.cpp @ 2574:dd36326a9994

More texture refactoring GetLeather -> DrawTextureCustomHeight
author a.parshin
date Mon, 07 Mar 2016 03:48:40 +0200
parents d87bfbd3bb3b
children a76d408c5132
rev   line source
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
1 #include "Engine/Engine.h"
2572
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
2 #include "Engine/AssetsManager.h"
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
3 #include "Game/Game.h"
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
4 #include "Engine/Timer.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
5 #include "Engine/LOD.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
6 #include "Engine/Party.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
7 #include "Engine/SaveLoad.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
8 #include "Engine/Registry.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
9 #include "Engine/texts.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
10 #include "Engine/Graphics/IRender.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
11 #include "Engine/Graphics/Viewport.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
12
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
13 #include "IO/Keyboard.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
14 #include "IO/Mouse.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
15
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
16 #include "GUI/UI/UIGame.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
17 #include "GUI/UI/UISaveLoad.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
18 #include "GUI/UI/UIModal.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
19
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
20 #include "Media/Audio/AudioPlayer.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
21 #include "Media/Audio/AIL.h"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
22
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
23
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
24
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
25 extern void DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
26
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
27
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
28 void Game_StartNewGameWhilePlaying(bool force_start)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
29 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
30 if (dword_6BE138 == 124 || force_start)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
31 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
32 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
33 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
34 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
35 //pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
36 uGameState = GAME_STATE_NEWGAME_OUT_GAMEMENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
37 current_screen_type = SCREEN_GAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
38 viewparams->bRedrawGameUI = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
39 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
40 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
41 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
42 ShowStatusBarString(pGlobalTXT_LocalizationStrings[201], 2);// "Are you sure? Click again to start a New Game"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
43 pAudioPlayer->PlaySound(SOUND_quest, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
44 dword_6BE138 = 124;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
45 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
46 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
47
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
48 void Game_QuitGameWhilePlaying(bool force_quit)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
49 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
50 if (dword_6BE138 == 132 || force_quit)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
51 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
52 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
53 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
54 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
55 //pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
56 current_screen_type = SCREEN_GAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
57 viewparams->bRedrawGameUI = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
58 pAudioPlayer->PlaySound(SOUND_WoodDoorClosing, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
59 uGameState = GAME_STATE_GAME_QUITTING_TO_MAIN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
60 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
61 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
62 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
63 ShowStatusBarString(pGlobalTXT_LocalizationStrings[82], 2);// "Are you sure? Click again to quit"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
64 pAudioPlayer->PlaySound(SOUND_quest, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
65 dword_6BE138 = 132;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
66 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
67 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
68
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
69 void Game_OpenLoadGameDialog()
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
70 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
71 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
72 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
73
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
74 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
75 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
76 pGUIWindow_CurrentMenu = nullptr;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
77
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
78 //LoadUI_Load(1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
79 current_screen_type = SCREEN_LOADGAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
80 pGUIWindow_CurrentMenu = new GUIWindow_Load(true);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
81 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
82
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
83
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
84
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
85
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
86 void GameMenu_EventLoop()
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
87 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
88 while (pMessageQueue_50CBD0->uNumMessages)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
89 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
90 UIMessageType msg;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
91 int param, param2;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
92 pMessageQueue_50CBD0->PopMessage(&msg, &param, &param2);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
93
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
94 switch (msg)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
95 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
96 case UIMSG_StartNewGame: Game_StartNewGameWhilePlaying(param); continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
97 case UIMSG_Quit: Game_QuitGameWhilePlaying(param); continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
98 case UIMSG_Game_OpenLoadGameDialog: Game_OpenLoadGameDialog(); continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
99
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
100 case UIMSG_ArrowUp:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
101 --pSaveListPosition;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
102 if (pSaveListPosition < 0)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
103 pSaveListPosition = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
104 new OnButtonClick2(215, 199, 17, 17, (int)pBtnArrowUp, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
105 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
106
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
107 case UIMSG_DownArrow:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
108 ++pSaveListPosition;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
109 if (pSaveListPosition >= param)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
110 pSaveListPosition = param - 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
111 new OnButtonClick2(215, 323, 17, 17, (int)pBtnDownArrow, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
112 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
113
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
114 case UIMSG_Cancel:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
115 new OnCancel(350, 302, 106, 42, (int)pBtnCancel, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
116 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
117
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
118 case UIMSG_SaveLoadBtn:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
119 new OnSaveLoad(241, 302, 106, 42, (int)pBtnLoadSlot, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
120 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
121 case UIMSG_SelectLoadSlot:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
122 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
123 if (pGUIWindow_CurrentMenu->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
124 pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
125
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
126 int v10 = pSaveListPosition + param;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
127 if (current_screen_type != SCREEN_SAVEGAME || uLoadGameUI_SelectedSlot != v10)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
128 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
129 if (dword_6BE138 == pSaveListPosition + param)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
130 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
131 pMessageQueue_50CBD0->AddGUIMessage(UIMSG_SaveLoadBtn, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
132 pMessageQueue_50CBD0->AddGUIMessage(UIMSG_LoadGame, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
133 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
134 uLoadGameUI_SelectedSlot = v10;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
135 dword_6BE138 = v10;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
136 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
137 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
138 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
139 pKeyActionMap->EnterText(0, 19, pGUIWindow_CurrentMenu);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
140 if (strcmp(pSavegameHeader[uLoadGameUI_SelectedSlot].pName, pGlobalTXT_LocalizationStrings[72]))// "Empty"
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
141 strcpy(pKeyActionMap->pPressedKeysBuffer, pSavegameHeader[uLoadGameUI_SelectedSlot].pName);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
142 pKeyActionMap->uNumKeysPressed = strlen(pKeyActionMap->pPressedKeysBuffer);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
143 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
144 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
145 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
146 case UIMSG_LoadGame:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
147 if (pSavegameUsedSlots[uLoadGameUI_SelectedSlot])
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
148 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
149 LoadGame(uLoadGameUI_SelectedSlot);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
150 uGameState = GAME_STATE_LOADING_GAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
151 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
152 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
153 case UIMSG_SaveGame:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
154 if (pGUIWindow_CurrentMenu->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
155 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
156 pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
157 strcpy((char *)&pSavegameHeader[uLoadGameUI_SelectedSlot], pKeyActionMap->pPressedKeysBuffer);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
158 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
159 DoSavegame(uLoadGameUI_SelectedSlot);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
160 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
161 case UIMSG_Game_OpenSaveGameDialog:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
162 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
163 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
164
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
165 current_screen_type = SCREEN_SAVEGAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
166 pGUIWindow_CurrentMenu = new GUIWindow_Save(); //SaveUI_Load(current_screen_type = SCREEN_SAVEGAME);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
167 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
168 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
169 case UIMSG_Game_OpenOptionsDialog://Open
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
170 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
171 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
172
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
173 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
174 pGUIWindow_CurrentMenu = new GUIWindow_GameOptions();//GameMenuUI_Options_Load();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
175
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
176 viewparams->field_48 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
177 current_screen_type = SCREEN_OPTIONS;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
178
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
179 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
180 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
181
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
182 case UIMSG_OpenKeyMappingOptions://Open
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
183 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
184 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
185
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
186 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
187 pGUIWindow_CurrentMenu = new GUIWindow_GameKeyBindings();//GameMenuUI_OptionsKeymapping_Load();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
188
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
189 viewparams->field_48 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
190 current_screen_type = SCREEN_KEYBOARD_OPTIONS;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
191
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
192 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
193 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
194
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
195 case UIMSG_ChangeKeyButton:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
196 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
197 if (uGameMenuUI_CurentlySelectedKeyIdx != -1)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
198 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
199 pAudioPlayer->PlaySound(SOUND_error, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
200 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
201 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
202 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
203 uGameMenuUI_CurentlySelectedKeyIdx = param;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
204 if (KeyboardPageNum != 1)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
205 uGameMenuUI_CurentlySelectedKeyIdx += 14;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
206 pKeyActionMap->EnterText(0, 1, pGUIWindow_CurrentMenu);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
207 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
208 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
209 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
210
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
211 case UIMSG_ResetKeyMapping:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
212 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
213 int v197 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
214 pKeyActionMap->SetDefaultMapping();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
215 for (uint i = 0; i < 28; i++)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
216 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
217 if (pKeyActionMap->GetActionVKey((enum InputAction)i) != pPrevVirtualCidesMapping[i])
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
218 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
219 if (v197)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
220 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
221 GUI_ReplaceHotkey(LOBYTE(pPrevVirtualCidesMapping[i]), pKeyActionMap->GetActionVKey((enum InputAction)i), 1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
222 v197 = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
223 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
224 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
225 GUI_ReplaceHotkey(LOBYTE(pPrevVirtualCidesMapping[i]), pKeyActionMap->GetActionVKey((enum InputAction)i), 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
226 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
227 pPrevVirtualCidesMapping[i] = pKeyActionMap->GetActionVKey((enum InputAction)i);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
228 GameMenuUI_InvaligKeyBindingsFlags[i] = false;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
229 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
230 pAudioPlayer->PlaySound(SOUND_chimes, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
231 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
232 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
233
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
234 case UIMSG_SelectKeyPage1:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
235 KeyboardPageNum = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
236 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
237 case UIMSG_SelectKeyPage2:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
238 KeyboardPageNum = 2;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
239 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
240
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
241 case UIMSG_OpenVideoOptions:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
242 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
243 DoThatMessageThing();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
244
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
245 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
246 pGUIWindow_CurrentMenu = new GUIWindow_GameVideoOptions();//GameMenuUI_OptionsVideo_Load();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
247 viewparams->field_48 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
248 current_screen_type = SCREEN_VIDEO_OPTIONS;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
249
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
250 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
251 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
252
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
253 case UIMSG_1A9:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
254 __debugbreak();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
255 if (param == 4)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
256 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
257 //--uGammaPos;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
258 if ((uGammaPos-- - 1) < 0)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
259 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
260 uGammaPos = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
261 pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
262 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
263 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
264 double v19 = (double)(signed int)uGammaPos * 0.1 + 0.6;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
265 //pEngine->pGammaController->Initialize(v19);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
266 new OnButtonClick2(21, 161, 0, 0, (int)pBtn_SliderLeft, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
267 pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
268 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
269 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
270 if (param == 5)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
271 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
272 ++uGammaPos;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
273 if ((signed int)uGammaPos <= 9)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
274 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
275 double v21 = (double)(signed int)uGammaPos * 0.1 + 0.6;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
276 //pEngine->pGammaController->Initialize(v21);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
277 new OnButtonClick2(213, 161, 0, 0, (int)pBtn_SliderRight, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
278 pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
279 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
280 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
281 uGammaPos = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
282 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
283 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
284 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
285 POINT a2;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
286 uGammaPos = (pMouse->GetCursorPos(&a2)->x - 42) / 17;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
287 double v22 = (double)(signed int)uGammaPos * 0.1 + 0.6;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
288 //pEngine->pGammaController->Initialize(v22);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
289 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
290 pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
291 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
292 case UIMSG_ToggleBloodsplats:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
293 pEngine->ToggleFlags2(0x20u);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
294 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
295 case UIMSG_ToggleColoredLights:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
296 pRenderer->ToggleColoredLights();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
297 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
298 case UIMSG_ToggleTint:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
299 pRenderer->ToggleTint();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
300 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
301 case UIMSG_ChangeMusicVolume:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
302 extern bool use_music_folder;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
303 if (param == 4)//-
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
304 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
305 --uMusicVolimeMultiplier;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
306 if ((char)uMusicVolimeMultiplier < 1)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
307 uMusicVolimeMultiplier = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
308 new OnButtonClick2(243, 216, 0, 0, (int)pBtn_SliderLeft, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
309 if (uMusicVolimeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
310 pAudioPlayer->PlaySound(SOUND_hurp, -1, 0, -1, 0, 0, pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
311
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
312 if (use_music_folder)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
313 alSourcef(mSourceID, AL_GAIN, pSoundVolumeLevels[uMusicVolimeMultiplier]);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
314 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
315 pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
316
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
317 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
318 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
319 if (param == 5)//+
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
320 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
321 ++uMusicVolimeMultiplier;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
322 if ((char)uMusicVolimeMultiplier > 9)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
323 uMusicVolimeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
324 new OnButtonClick2(435, 216, 0, 0, (int)pBtn_SliderRight, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
325 if (uMusicVolimeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
326 pAudioPlayer->PlaySound(SOUND_hurp, -1, 0, -1, 0, 0, pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
327 if (use_music_folder)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
328 alSourcef(mSourceID, AL_GAIN, pSoundVolumeLevels[uMusicVolimeMultiplier]);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
329 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
330 pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
331 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
332 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
333
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
334 POINT v202;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
335 uMusicVolimeMultiplier = (pMouse->GetCursorPos(&v202)->x - 263) / 17;//for mouse
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
336 if ((char)uMusicVolimeMultiplier > 9)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
337 uMusicVolimeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
338 if (uMusicVolimeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
339 pAudioPlayer->PlaySound(SOUND_hurp, -1, 0, -1, 0, 0, pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
340 if (use_music_folder)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
341 alSourcef(mSourceID, AL_GAIN, pSoundVolumeLevels[uMusicVolimeMultiplier]);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
342 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
343 pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
344 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
345 case UIMSG_ChangeSoundVolume:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
346 if (param == 4)//reduce sound level button left
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
347 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
348 if (uSoundVolumeMultiplier > 0)
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
349 --uSoundVolumeMultiplier;
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
350
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
351 new OnButtonClick2(243, 162, 0, 0, (int)pBtn_SliderLeft, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
352 pAudioPlayer->SetMasterVolume(pSoundVolumeLevels[uSoundVolumeMultiplier] * 128.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
353 pAudioPlayer->PlaySound(SOUND_church, -1, 0, -1, 0, 0, 0, 0);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
354 //int v = AIL_redbook_volume(pAudioPlayer->hAILRedbook);
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
355 //v = v+1;
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
356 //if (v)
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
357 // __debugbreak();
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
358 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
359 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
360 if (param == 5)//Increase sound level button right
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
361 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
362 ++uSoundVolumeMultiplier;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
363 if ((char)uSoundVolumeMultiplier > 8)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
364 uSoundVolumeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
365 //v168 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
366 //v154 = (int)pBtn_SliderRight;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
367 new OnButtonClick2(435, 162, 0, 0, (int)pBtn_SliderRight, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
368 pAudioPlayer->SetMasterVolume(pSoundVolumeLevels[uSoundVolumeMultiplier] * 128.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
369 pAudioPlayer->PlaySound(SOUND_church, -1, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
370 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
371 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
372
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
373 POINT v207;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
374 uSoundVolumeMultiplier = (pMouse->GetCursorPos(&v207)->x - 263) / 17;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
375 if ((char)uSoundVolumeMultiplier > 8)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
376 uSoundVolumeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
377 pAudioPlayer->SetMasterVolume(pSoundVolumeLevels[uSoundVolumeMultiplier] * 128.0f);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
378 pAudioPlayer->PlaySound(SOUND_church, -1, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
379 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
380 case UIMSG_ToggleFlipOnExit:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
381 bFlipOnExit = bFlipOnExit == 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
382 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
383 case UIMSG_ToggleAlwaysRun:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
384 bAlwaysRun = bAlwaysRun == 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
385 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
386 case UIMSG_ToggleWalkSound:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
387 bWalkSound = bWalkSound == 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
388 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
389 case UIMSG_ToggleShowDamage:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
390 bShowDamage = bShowDamage == 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
391 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
392 case UIMSG_ChangeVoiceVolume:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
393 if (param == 4)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
394 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
395 --uVoicesVolumeMultiplier;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
396 if ((char)uVoicesVolumeMultiplier < 1)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
397 uVoicesVolumeMultiplier = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
398 new OnButtonClick2(243, 270, 0, 0, (int)pBtn_SliderLeft, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
399 if (!uVoicesVolumeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
400 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
401 pAudioPlayer->PlaySound(SOUND_hf445a, -1, 0, -1, 0, 0, pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
402 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
403 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
404 if (param == 5)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
405 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
406 ++uVoicesVolumeMultiplier;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
407 if ((char)uVoicesVolumeMultiplier > 8)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
408 uVoicesVolumeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
409 new OnButtonClick2(435, 270, 0, 0, (int)pBtn_SliderRight, (char *)1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
410 if (!uVoicesVolumeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
411 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
412 pAudioPlayer->PlaySound(SOUND_hf445a, -1, 0, -1, 0, 0, pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
413 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
414 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
415
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
416 POINT v205;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
417 uVoicesVolumeMultiplier = (pMouse->GetCursorPos(&v205)->x - 263) / 17;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
418 if ((char)uVoicesVolumeMultiplier > 8)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
419 uVoicesVolumeMultiplier = 9;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
420 if (!uVoicesVolumeMultiplier)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
421 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
422 pAudioPlayer->PlaySound(SOUND_hf445a, -1, 0, -1, 0, 0, pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0f, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
423 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
424 case UIMSG_SetTurnSpeed:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
425 if (param)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
426 pParty->sRotationY = param * pParty->sRotationY / param;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
427 uTurnSpeed = param;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
428 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
429
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
430 case UIMSG_SetGraphicsMode:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
431 //if ( !bUseLoResSprites )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
432 //{
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
433 // byte_6BE388_graphicsmode = uMessageParam;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
434 // MM7Initialization();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
435 // continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
436 //}
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
437 //if ( uMessageParam )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
438 //{
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
439 // if ( uMessageParam == 1 )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
440 // {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
441 // byte_6BE388_graphicsmode = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
442 // }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
443 // else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
444 // {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
445 // if ( uMessageParam != 2 )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
446 // continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
447 // byte_6BE388_graphicsmode = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
448 // }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
449 // MM7Initialization();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
450 // continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
451 //}
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
452 pModalWindow = new GUIWindow_Modal(pNPCTopics[453].pText, UIMSG_0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
453 __debugbreak(); // Nomad: graphicsmode as it was now removed
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
454 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
455
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
456 case UIMSG_GameMenu_ReturnToGame:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
457 //pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
458 pEventTimer->Resume();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
459 current_screen_type = SCREEN_GAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
460 viewparams->bRedrawGameUI = true;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
461 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
462
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
463
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
464
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
465
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
466 case UIMSG_Escape:
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
467 if (pModalWindow)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
468 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
469 pModalWindow->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
470 pModalWindow = nullptr;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
471 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
472 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
473 pRenderer->ClearZBuffer(0, 479);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
474 viewparams->bRedrawGameUI = true;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
475 viewparams->field_48 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
476
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
477 if (current_screen_type == SCREEN_MENU)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
478 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
479 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
480 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
481 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
482 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
483
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
484 current_screen_type = SCREEN_GAME;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
485 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
486 else if (current_screen_type == SCREEN_SAVEGAME || current_screen_type == SCREEN_LOADGAME)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
487 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
488 pIcons_LOD->RemoveTexturesPackFromTextureList();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
489 //crt_deconstruct_ptr_6A0118();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
490
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
491 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
492 current_screen_type = SCREEN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
493 pGUIWindow_CurrentMenu = new GUIWindow_GameMenu();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
494 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
495 else if (current_screen_type == SCREEN_OPTIONS)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
496 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
497 options_menu_skin.Relaease();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
498 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
499 WriteWindowsRegistryInt("soundflag", (char)uSoundVolumeMultiplier);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
500 WriteWindowsRegistryInt("musicflag", (char)uMusicVolimeMultiplier);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
501 WriteWindowsRegistryInt("CharVoices", (char)uVoicesVolumeMultiplier);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
502 WriteWindowsRegistryInt("WalkSound", bWalkSound);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
503 WriteWindowsRegistryInt("ShowDamage", bShowDamage);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
504 //WriteWindowsRegistryInt("graphicsmode", (unsigned __int8)byte_6BE388_graphicsmode);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
505 WriteWindowsRegistryInt("valAlwaysRun", bAlwaysRun);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
506 WriteWindowsRegistryInt("FlipOnExit", bFlipOnExit);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
507 if (!uTurnSpeed)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
508 WriteWindowsRegistryInt("TurnDelta", 3);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
509 else if (uTurnSpeed == 64)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
510 WriteWindowsRegistryInt("TurnDelta", 2);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
511 else if (uTurnSpeed == 128)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
512 WriteWindowsRegistryInt("TurnDelta", 1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
513
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
514 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
515 current_screen_type = SCREEN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
516 pGUIWindow_CurrentMenu = new GUIWindow_GameMenu();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
517 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
518 else if (current_screen_type == SCREEN_VIDEO_OPTIONS)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
519 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
520 //if ( pRenderer->pRenderD3D )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
521 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
522 WriteWindowsRegistryInt("Colored Lights", pRenderer->bUseColoredLights);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
523 WriteWindowsRegistryInt("Tinting", pRenderer->bTinting);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
524 WriteWindowsRegistryInt("Bloodsplats", (LOBYTE(pEngine->uFlags2) >> 5) & 1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
525 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
526
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
527 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
528 current_screen_type = SCREEN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
529 pGUIWindow_CurrentMenu = new GUIWindow_GameMenu();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
530 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
531 else if (current_screen_type == SCREEN_KEYBOARD_OPTIONS)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
532 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
533 KeyToggleType pKeyToggleType; // [sp+0h] [bp-5FCh]@287
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
534 int v197 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
535 bool pKeyBindingFlag = false;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
536
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
537 for (uint i = 0; i < 28; ++i)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
538 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
539 if (GameMenuUI_InvaligKeyBindingsFlags[i])
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
540 pKeyBindingFlag = true;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
541 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
542 if (!pKeyBindingFlag)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
543 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
544 for (uint i = 0; i < 5; i++)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
545 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
546 if (game_ui_options_controls[i])
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
547 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
548 game_ui_options_controls[i]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
549 game_ui_options_controls[i] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
550 }
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
551 }
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2572
diff changeset
552
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
553 pIcons_LOD->SyncLoadedFilesCount();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
554 for (uint i = 0; i < 28; ++i)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
555 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
556 if (pKeyActionMap->GetActionVKey((enum InputAction)i) != pPrevVirtualCidesMapping[i])
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
557 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
558 if (v197)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
559 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
560 GUI_ReplaceHotkey(pKeyActionMap->GetActionVKey((enum InputAction)i), LOBYTE(pPrevVirtualCidesMapping[i]), 1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
561 v197 = 0;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
562 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
563 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
564 GUI_ReplaceHotkey(pKeyActionMap->GetActionVKey((enum InputAction)i), LOBYTE(pPrevVirtualCidesMapping[i]), 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
565 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
566 if (i > 3 && i != 25 && i != 26)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
567 pKeyToggleType = TOGGLE_OneTimePress;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
568 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
569 pKeyToggleType = TOGGLE_Continuously;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
570 pKeyActionMap->SetKeyMapping(i, pPrevVirtualCidesMapping[i], pKeyToggleType);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
571 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
572 pKeyActionMap->StoreMappings();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
573 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
574 else
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
575 pAudioPlayer->PlaySound(SOUND_error, 0, 0, -1, 0, 0, 0, 0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
576
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
577 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
578 current_screen_type = SCREEN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
579 pGUIWindow_CurrentMenu = new GUIWindow_GameMenu();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
580 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
581 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
582 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
583 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
584 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
585
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
586 void GameMenu_Loop()
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
587 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
588 pEventTimer->Pause();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
589 pAudioPlayer->StopChannels(-1, -1);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
590 current_screen_type = SCREEN_MENU;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
591
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
592 ++pIcons_LOD->uTexturePacksCount;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
593 if (!pIcons_LOD->uNumPrevLoadedFiles)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
594 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
595
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
596 pGUIWindow_CurrentMenu = new GUIWindow_GameMenu();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
597
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
598 viewparams->field_48 = 1;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
599
2572
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
600 if (gamma_preview_image)
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
601 {
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
602 gamma_preview_image->Release();
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
603 gamma_preview_image = nullptr;
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
604 }
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
605 pRenderer->SaveScreenshot("gamma.pcx", 155, 117);
2572
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
606 gamma_preview_image = assets->GetImage_PCXFromFile(L"gamma.pcx");
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
607
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
608 while (uGameState == GAME_STATE_PLAYING
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
609 && (
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
610 current_screen_type == SCREEN_MENU
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
611 || current_screen_type == SCREEN_SAVEGAME
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
612 || current_screen_type == SCREEN_LOADGAME
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
613 || current_screen_type == SCREEN_OPTIONS
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
614 || current_screen_type == SCREEN_VIDEO_OPTIONS
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
615 || current_screen_type == SCREEN_KEYBOARD_OPTIONS
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
616 )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
617 )
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
618 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
619 MSG msg;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
620 while (PeekMessageW(&msg, 0, 0, 0, PM_REMOVE))
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
621 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
622 if (msg.message == WM_QUIT)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
623 Engine_DeinitializeAndTerminate(0);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
624 TranslateMessage(&msg);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
625 DispatchMessageW(&msg);
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
626 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
627 if (dword_6BE364_game_settings_1 & GAME_SETTINGS_APP_INACTIVE)
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
628 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
629 WaitMessage();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
630 continue;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
631 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
632
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
633 pRenderer->BeginScene();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
634 {
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
635 GameMenu_EventLoop();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
636 GUI_UpdateWindows();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
637 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
638 pRenderer->EndScene();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
639 pRenderer->Present();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
640 }
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
641
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
642 pGUIWindow_CurrentMenu->Release();
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
643 pGUIWindow_CurrentMenu = nullptr;
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
644
2572
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
645 if (gamma_preview_image)
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
646 {
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
647 gamma_preview_image->Release();
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
648 gamma_preview_image = nullptr;
d87bfbd3bb3b Step towards unification of Texture and RGBTexture (class Image)
a.parshin
parents: 2554
diff changeset
649 }
2554
f2a8ed07e921 Game Main Menu separated from Game logic
a.parshin
parents:
diff changeset
650 }