Rev 178 | Rev 186 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 178 | Rev 185 | ||
|---|---|---|---|
| Line 164... | Line 164... | ||
| 164 | { |
164 | { |
| 165 | Debug_Log (L"===Unrecoverable engine error (engine disappeared unexpectedly with exit code %lld): opponent wins!===\n", exit_code); |
165 | Debug_Log (L"===Unrecoverable engine error (engine disappeared unexpectedly with exit code %lld): opponent wins!===\n", exit_code); |
| 166 | dont_nag = true; // remember NOT to nag the user if he experienced any bug |
166 | dont_nag = true; // remember NOT to nag the user if he experienced any bug |
| 167 | 167 | ||
| 168 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
168 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
| 169 |
|
169 | Audio_PlaySoundAtCenter (opposite_player->type == PLAYER_HUMAN ? SOUNDTYPE_VICTORY : SOUNDTYPE_DEFEAT); |
| 170 | 170 | ||
| 171 | // display a crash notification dialog box |
171 | // display a crash notification dialog box |
| 172 | if (MessageBox (hMainWnd, LOCALIZE (L"Error_EngineCrashed"), LOCALIZE (L"ImportantMessage"), MB_ICONWARNING | MB_YESNO) == IDYES) |
172 | if (MessageBox (hMainWnd, LOCALIZE (L"Error_EngineCrashed"), LOCALIZE (L"ImportantMessage"), MB_ICONWARNING | MB_YESNO) == IDYES) |
| 173 | { |
173 | { |
| 174 | sprintf_s ((char *) line_buffer, sizeof (line_buffer), "engine disappeared unexpectedly (exit code %lld)", exit_code); |
174 | sprintf_s ((char *) line_buffer, sizeof (line_buffer), "engine disappeared unexpectedly (exit code %lld)", exit_code); |
| Line 207... | Line 207... | ||
| 207 | else if (wcsstr (line_buffer, L"1/2-1/2") != NULL) |
207 | else if (wcsstr (line_buffer, L"1/2-1/2") != NULL) |
| 208 | { |
208 | { |
| 209 | Debug_Log (L"===Engine tells us that it's a draw: nobody wins!===\n"); |
209 | Debug_Log (L"===Engine tells us that it's a draw: nobody wins!===\n"); |
| 210 | 210 | ||
| 211 | // play defeat sound (a draw is always a sort of defeat...) at the center of the board |
211 | // play defeat sound (a draw is always a sort of defeat...) at the center of the board |
| 212 |
|
212 | Audio_PlaySoundAtCenter (SOUNDTYPE_DEFEAT); |
| 213 | 213 | ||
| 214 | // display the game over dialog box |
214 | // display the game over dialog box |
| 215 | the_board.game_state = STATE_DRAW_OTHER; |
215 | the_board.game_state = STATE_DRAW_OTHER; |
| 216 | DialogBox_EndGame (); |
216 | DialogBox_EndGame (); |
| 217 | 217 | ||
| Line 223... | Line 223... | ||
| 223 | else if (wcsncmp (line_buffer, L"resign", 6) == 0) |
223 | else if (wcsncmp (line_buffer, L"resign", 6) == 0) |
| 224 | { |
224 | { |
| 225 | Debug_Log (L"===Engine tells us that %s resigns: %s wins!===\n", (current_player->color == COLOR_BLACK ? "black" : "white"), (current_player->color == COLOR_BLACK ? "white" : "black")); |
225 | Debug_Log (L"===Engine tells us that %s resigns: %s wins!===\n", (current_player->color == COLOR_BLACK ? "black" : "white"), (current_player->color == COLOR_BLACK ? "white" : "black")); |
| 226 | 226 | ||
| 227 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
227 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
| 228 |
|
228 | Audio_PlaySoundAtCenter (opposite_player->type == PLAYER_HUMAN ? SOUNDTYPE_VICTORY : SOUNDTYPE_DEFEAT); |
| 229 | 229 | ||
| 230 | // display the game over dialog box |
230 | // display the game over dialog box |
| 231 | the_board.game_state = (current_player->color == COLOR_BLACK ? STATE_WHITEWIN_RESIGNORFORFEIT : STATE_BLACKWIN_RESIGNORFORFEIT); |
231 | the_board.game_state = (current_player->color == COLOR_BLACK ? STATE_WHITEWIN_RESIGNORFORFEIT : STATE_BLACKWIN_RESIGNORFORFEIT); |
| 232 | DialogBox_EndGame (); |
232 | DialogBox_EndGame (); |
| 233 | 233 | ||
| Line 247... | Line 247... | ||
| 247 | else |
247 | else |
| 248 | { |
248 | { |
| 249 | Debug_Log (L"===Engine tells us that black resigns: white wins!===\n"); |
249 | Debug_Log (L"===Engine tells us that black resigns: white wins!===\n"); |
| 250 | 250 | ||
| 251 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
251 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
| 252 |
|
252 | Audio_PlaySoundAtCenter (opposite_player->type == PLAYER_HUMAN ? SOUNDTYPE_VICTORY : SOUNDTYPE_DEFEAT); |
| 253 | 253 | ||
| 254 | // display the game over dialog box |
254 | // display the game over dialog box |
| 255 | the_board.game_state = STATE_WHITEWIN_RESIGNORFORFEIT; |
255 | the_board.game_state = STATE_WHITEWIN_RESIGNORFORFEIT; |
| 256 | DialogBox_EndGame (); |
256 | DialogBox_EndGame (); |
| 257 | 257 | ||
| Line 268... | Line 268... | ||
| 268 | else |
268 | else |
| 269 | { |
269 | { |
| 270 | Debug_Log (L"===Engine tells us that white resigns: black wins!===\n"); |
270 | Debug_Log (L"===Engine tells us that white resigns: black wins!===\n"); |
| 271 | 271 | ||
| 272 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
272 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
| 273 |
|
273 | Audio_PlaySoundAtCenter (opposite_player->type == PLAYER_HUMAN ? SOUNDTYPE_VICTORY : SOUNDTYPE_DEFEAT); |
| 274 | 274 | ||
| 275 | // display the game over dialog box |
275 | // display the game over dialog box |
| 276 | the_board.game_state = STATE_BLACKWIN_RESIGNORFORFEIT; |
276 | the_board.game_state = STATE_BLACKWIN_RESIGNORFORFEIT; |
| 277 | DialogBox_EndGame (); |
277 | DialogBox_EndGame (); |
| 278 | 278 | ||
| Line 292... | Line 292... | ||
| 292 | { |
292 | { |
| 293 | Debug_Log (L"===Unrecoverable engine error: opponent wins!===\n"); |
293 | Debug_Log (L"===Unrecoverable engine error: opponent wins!===\n"); |
| 294 | dont_nag = true; // remember NOT to nag the user if he experienced any bug |
294 | dont_nag = true; // remember NOT to nag the user if he experienced any bug |
| 295 | 295 | ||
| 296 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
296 | // if opponent player is human, play the victory sound, else, play defeat sound at the center of the board |
| 297 |
|
297 | Audio_PlaySoundAtCenter (opposite_player->type == PLAYER_HUMAN ? SOUNDTYPE_VICTORY : SOUNDTYPE_DEFEAT); |
| 298 | 298 | ||
| 299 | // display a crash notification dialog box |
299 | // display a crash notification dialog box |
| 300 | if (MessageBox (hMainWnd, LOCALIZE (L"Error_EngineCrashed"), LOCALIZE (L"ImportantMessage"), MB_ICONWARNING | MB_YESNO) == IDYES) |
300 | if (MessageBox (hMainWnd, LOCALIZE (L"Error_EngineCrashed"), LOCALIZE (L"ImportantMessage"), MB_ICONWARNING | MB_YESNO) == IDYES) |
| 301 | if (Debug_SendLogToAuthor ("engine refused our command", true)) |
301 | if (Debug_SendLogToAuthor ("engine refused our command", true)) |
| 302 | MessageBox (hMainWnd, LOCALIZE (L"MessageSent"), PROGRAM_NAME, MB_ICONINFORMATION | MB_OK); // send the game engine history to the author |
302 | MessageBox (hMainWnd, LOCALIZE (L"MessageSent"), PROGRAM_NAME, MB_ICONINFORMATION | MB_OK); // send the game engine history to the author |