(svn r2381) - Fix: [ 1210610 ] Endgame window on easy difficulty results in infinite loop. Oops. Seperated the window classes of endgame and highscreen.
--- a/player_gui.c Mon May 30 10:18:18 2005 +0000
+++ b/player_gui.c Mon May 30 13:06:15 2005 +0000
@@ -802,7 +802,7 @@
} break;
case WE_CLICK: /* Close the window (and show the highscore window) */
DeleteWindow(w);
- break;
+ break;
case WE_DESTROY: /* Show the highscore window when this one is closed */
if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause
ShowHighscoreTable(w->window_number, WP(w, highscore_d).rank);
@@ -859,7 +859,7 @@
static const WindowDesc _highscore_desc = {
0, 0, 641, 481,
- WC_HIGHSCORE_ENDSCREEN,0,
+ WC_HIGHSCORE,0,
0,
_highscore_widgets,
HighScoreWndProc
@@ -867,7 +867,7 @@
static const WindowDesc _endgame_desc = {
0, 0, 641, 481,
- WC_HIGHSCORE_ENDSCREEN,0,
+ WC_ENDSCREEN,0,
0,
_highscore_widgets,
EndGameWndProc
@@ -886,7 +886,7 @@
/* Close all always on-top windows to get a clean screen */
if (_game_mode != GM_MENU) HideVitalWindows();
- DeleteWindowById(WC_HIGHSCORE_ENDSCREEN, 0);
+ DeleteWindowByClass(WC_HIGHSCORE);
w = AllocateWindowDesc(&_highscore_desc);
if (w != NULL) {
@@ -909,7 +909,7 @@
if (!_networking) DoCommandP(0, 1, 0, NULL, CMD_PAUSE);
HideVitalWindows();
- DeleteWindowById(WC_HIGHSCORE_ENDSCREEN, 0);
+ DeleteWindowByClass(WC_ENDSCREEN);
w = AllocateWindowDesc(&_endgame_desc);
if (w != NULL) {
--- a/ttd.h Mon May 30 10:18:18 2005 +0000
+++ b/ttd.h Mon May 30 13:06:15 2005 +0000
@@ -436,8 +436,9 @@
WC_NETWORK_STATUS_WINDOW = 0x4A,
WC_CUSTOM_CURRENCY = 0x4B,
WC_REPLACE_VEHICLE = 0x4C,
- WC_HIGHSCORE_ENDSCREEN = 0x4D,
- WC_SIGN_LIST = 0x4E,
+ WC_HIGHSCORE = 0x4D,
+ WC_ENDSCREEN = 0x4E,
+ WC_SIGN_LIST = 0x4F,
};