mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r11573) -Codechange: pause games that miss GRFs by default and throw some warnings and disclaimers when you want to unpause it.
This commit is contained in:
parent
be48614ef8
commit
1c30d0b966
@ -3116,6 +3116,8 @@ STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Matchin
|
||||
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Compatible GRF(s) loaded for missing files
|
||||
STR_NEWGRF_DISABLED_WARNING :{WHITE}Missing GRF file(s) have been disabled
|
||||
STR_NEWGRF_NOT_FOUND_WARNING :{WHITE}Missing GRF file(s) to be able to load game
|
||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Missing GRF file(s)
|
||||
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Unpausing can crash OpenTTD. Do not file bug reports for subsequent crashes.{}Do you really want to unpause?
|
||||
|
||||
STR_CURRENCY_WINDOW :{WHITE}Custom currency
|
||||
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Exchange rate: {ORANGE}{CURRENCY} = £ {COMMA}
|
||||
|
@ -294,6 +294,17 @@ CommandCost CmdChangePresidentName(TileIndex tile, uint32 flags, uint32 p1, uint
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
/**
|
||||
* In case of an unsafe unpause, we want the
|
||||
* user to confirm that it might crash.
|
||||
* @param w unused
|
||||
* @param confirmed whether the user confirms his/her action
|
||||
*/
|
||||
static void AskUnsafeUnpauseCallback(Window *w, bool confirmed)
|
||||
{
|
||||
DoCommandP(0, confirmed ? 0 : 1, 0, NULL, CMD_PAUSE);
|
||||
}
|
||||
|
||||
/** Pause/Unpause the game (server-only).
|
||||
* Increase or decrease the pause counter. If the counter is zero,
|
||||
* the game is unpaused. A counter is used instead of a boolean value
|
||||
@ -307,7 +318,24 @@ CommandCost CmdPause(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (flags & DC_EXEC) {
|
||||
_pause_game += (p1 == 1) ? 1 : -1;
|
||||
if (_pause_game == (byte)-1) _pause_game = 0;
|
||||
|
||||
switch (_pause_game) {
|
||||
case (byte)-4:
|
||||
case (byte)-1:
|
||||
_pause_game = 0;
|
||||
break;
|
||||
case (byte)-3:
|
||||
ShowQuery(
|
||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE,
|
||||
STR_NEWGRF_UNPAUSE_WARNING,
|
||||
NULL,
|
||||
AskUnsafeUnpauseCallback
|
||||
);
|
||||
break;
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
InvalidateWindow(WC_STATUS_BAR, 0);
|
||||
InvalidateWindow(WC_MAIN_TOOLBAR, 0);
|
||||
}
|
||||
|
@ -1357,7 +1357,7 @@ bool AfterLoadGame()
|
||||
|
||||
switch (gcf_res) {
|
||||
case GLC_COMPATIBLE: _switch_mode_errorstr = STR_NEWGRF_COMPATIBLE_LOAD_WARNING; break;
|
||||
case GLC_NOT_FOUND: _switch_mode_errorstr = STR_NEWGRF_DISABLED_WARNING; break;
|
||||
case GLC_NOT_FOUND: _switch_mode_errorstr = STR_NEWGRF_DISABLED_WARNING; _pause_game = (byte)-1; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user