MCPcopy Create free account
hub / github.com/diasurgical/DevilutionX / mainmenu_loop

Function mainmenu_loop

Source/menu.cpp:144–192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142}
143
144void mainmenu_loop()
145{
146 bool done;
147
148 RefreshMusic();
149 done = false;
150
151 do {
152 _mainmenu_selections menu = MAINMENU_NONE;
153 if (demo::IsRunning())
154 menu = MAINMENU_SINGLE_PLAYER;
155 else if (!UiMainMenuDialog(gszProductName, &menu, 30))
156 app_fatal(_("Unable to display mainmenu"));
157
158 switch (menu) {
159 case MAINMENU_NONE:
160 break;
161 case MAINMENU_SINGLE_PLAYER:
162 if (!InitSinglePlayerMenu())
163 done = true;
164 break;
165 case MAINMENU_MULTIPLAYER:
166 if (!InitMultiPlayerMenu())
167 done = true;
168 break;
169 case MAINMENU_ATTRACT_MODE:
170 if (gbIsSpawn && !HaveDiabdat())
171 done = false;
172 else if (gbActive)
173 PlayIntro();
174 break;
175 case MAINMENU_SHOW_CREDITS:
176 UiCreditsDialog();
177 break;
178 case MAINMENU_SHOW_SUPPORT:
179 UiSupportDialog();
180 break;
181 case MAINMENU_EXIT_DIABLO:
182 mainmenu_wait_for_button_sound();
183 done = true;
184 break;
185 case MAINMENU_SETTINGS:
186 UiSettingsMenu();
187 break;
188 }
189 } while (!done);
190
191 music_stop();
192}
193
194} // namespace devilution

Callers 1

DiabloMainFunction · 0.85

Calls 13

RefreshMusicFunction · 0.85
UiMainMenuDialogFunction · 0.85
app_fatalFunction · 0.85
InitSinglePlayerMenuFunction · 0.85
InitMultiPlayerMenuFunction · 0.85
HaveDiabdatFunction · 0.85
PlayIntroFunction · 0.85
UiCreditsDialogFunction · 0.85
UiSupportDialogFunction · 0.85
UiSettingsMenuFunction · 0.85
IsRunningFunction · 0.50

Tested by

no test coverage detected