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

Function mainmenu_loop

Source/mainmenu.cpp:87–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85}
86
87void mainmenu_loop()
88{
89 BOOL done;
90 int menu;
91
92 done = FALSE;
93 mainmenu_refresh_music();
94
95 do {
96 menu = 0;
97 if (!UiMainMenuDialog(gszProductName, &menu, effects_play_sound, 30))
98 app_fatal("Unable to display mainmenu");
99
100 switch (menu) {
101 case MAINMENU_SINGLE_PLAYER:
102 if (!mainmenu_single_player())
103 done = TRUE;
104 break;
105 case MAINMENU_MULTIPLAYER:
106 if (!mainmenu_multi_player())
107 done = TRUE;
108 break;
109 case MAINMENU_REPLAY_INTRO:
110 case MAINMENU_ATTRACT_MODE:
111#ifdef SPAWN
112 done = FALSE;
113#else
114 if (gbActive)
115 mainmenu_play_intro();
116#endif
117 break;
118 case MAINMENU_SHOW_CREDITS:
119 UiCreditsDialog(16);
120 break;
121 case MAINMENU_EXIT_DIABLO:
122 done = TRUE;
123 break;
124 }
125 } while (done == FALSE);
126
127 music_stop();
128}
129
130BOOL mainmenu_single_player()
131{

Callers 1

DiabloMainFunction · 0.85

Calls 8

mainmenu_refresh_musicFunction · 0.85
UiMainMenuDialogFunction · 0.85
app_fatalFunction · 0.85
mainmenu_single_playerFunction · 0.85
mainmenu_multi_playerFunction · 0.85
mainmenu_play_introFunction · 0.85
UiCreditsDialogFunction · 0.85
music_stopFunction · 0.85

Tested by

no test coverage detected