annotate Game/GameMenu.cpp @ 2575:a76d408c5132 tip

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