1
0
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:
Peter Nelson
2025-02-14 08:30:04 +00:00
committed by GitHub
parent 3518d7e0f1
commit 6cf7a899e9
27 changed files with 113 additions and 118 deletions

View File

@@ -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 = {};
}
}