mirror of
https://github.com/OpenTTD/OpenTTD
synced 2026-01-20 10:52:41 +01:00
Codechange: Use EnumBitSet for PauseMode. (#13553)
This commit is contained in:
@@ -152,7 +152,7 @@ CommandCost CmdSetCompanyMaxLoan(DoCommandFlags flags, CompanyID company, Money
|
||||
static void AskUnsafeUnpauseCallback(Window *, bool confirmed)
|
||||
{
|
||||
if (confirmed) {
|
||||
Command<CMD_PAUSE>::Post(PM_PAUSED_ERROR, false);
|
||||
Command<CMD_PAUSE>::Post(PauseMode::Error, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,22 +169,22 @@ static void AskUnsafeUnpauseCallback(Window *, bool confirmed)
|
||||
CommandCost CmdPause(DoCommandFlags flags, PauseMode mode, bool pause)
|
||||
{
|
||||
switch (mode) {
|
||||
case PM_PAUSED_SAVELOAD:
|
||||
case PM_PAUSED_ERROR:
|
||||
case PM_PAUSED_NORMAL:
|
||||
case PM_PAUSED_GAME_SCRIPT:
|
||||
case PM_PAUSED_LINK_GRAPH:
|
||||
case PauseMode::SaveLoad:
|
||||
case PauseMode::Error:
|
||||
case PauseMode::Normal:
|
||||
case PauseMode::GameScript:
|
||||
case PauseMode::LinkGraph:
|
||||
break;
|
||||
|
||||
case PM_PAUSED_JOIN:
|
||||
case PM_PAUSED_ACTIVE_CLIENTS:
|
||||
case PauseMode::Join:
|
||||
case PauseMode::ActiveClients:
|
||||
if (!_networking) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
default: return CMD_ERROR;
|
||||
}
|
||||
if (flags.Test(DoCommandFlag::Execute)) {
|
||||
if (mode == PM_PAUSED_NORMAL && _pause_mode & PM_PAUSED_ERROR) {
|
||||
if (mode == PauseMode::Normal && _pause_mode.Test(PauseMode::Error)) {
|
||||
ShowQuery(
|
||||
GetEncodedString(STR_NEWGRF_UNPAUSE_WARNING_TITLE),
|
||||
GetEncodedString(STR_NEWGRF_UNPAUSE_WARNING),
|
||||
@@ -192,16 +192,16 @@ CommandCost CmdPause(DoCommandFlags flags, PauseMode mode, bool pause)
|
||||
AskUnsafeUnpauseCallback
|
||||
);
|
||||
} else {
|
||||
PauseMode prev_mode = _pause_mode;
|
||||
PauseModes prev_mode = _pause_mode;
|
||||
|
||||
if (pause) {
|
||||
_pause_mode |= mode;
|
||||
_pause_mode.Set(mode);
|
||||
} else {
|
||||
_pause_mode &= ~mode;
|
||||
_pause_mode.Reset(mode);
|
||||
|
||||
/* If the only remaining reason to be paused is that we saw a command during pause, unpause. */
|
||||
if (_pause_mode == PM_COMMAND_DURING_PAUSE) {
|
||||
_pause_mode = PM_UNPAUSED;
|
||||
if (_pause_mode == PauseMode::CommandDuringPause) {
|
||||
_pause_mode = {};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user