| 85 | } |
| 86 | |
| 87 | void 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 | |
| 130 | BOOL mainmenu_single_player() |
| 131 | { |
no test coverage detected