diff options
author | rubidium <rubidium@openttd.org> | 2009-11-17 14:06:28 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-11-17 14:06:28 +0000 |
commit | 36a20894aa5a5311fff74d1167d83a584c56ab62 (patch) | |
tree | c322a85e0c7ad97ce6f51460fd3e603be8f33cac /src | |
parent | adadabed04ddfaea1d601f8e501d092b9fab891f (diff) | |
download | openttd-36a20894aa5a5311fff74d1167d83a584c56ab62.tar.xz |
(svn r18141) -Fix (r18051): one couldn't (easily) continue a game in single player that was 'not enough players'/'waiting on join'-paused
Diffstat (limited to 'src')
-rw-r--r-- | src/openttd.h | 3 | ||||
-rw-r--r-- | src/saveload/afterload.cpp | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/openttd.h b/src/openttd.h index 7dc3f5579..35de45032 100644 --- a/src/openttd.h +++ b/src/openttd.h @@ -57,6 +57,9 @@ enum PauseMode { PM_PAUSED_JOIN = 1 << 2, ///< A game paused for 'pause_on_join' PM_PAUSED_ERROR = 1 << 3, ///< A game paused because a (critical) error PM_PAUSED_ACTIVE_CLIENTS = 1 << 4, ///< A game paused for 'min_active_clients' + + /* Pause mode bits when paused for network reasons */ + PMB_PAUSED_NETWORK = PM_PAUSED_ACTIVE_CLIENTS | PM_PAUSED_JOIN, }; DECLARE_ENUM_AS_BIT_SET(PauseMode); typedef SimpleTinyEnumT<PauseMode, byte> PauseModeByte; diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 5b3e3f358..9b35c498b 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -411,6 +411,15 @@ bool AfterLoadGame() /* Restore the signals */ ResetSignalHandlers(); return false; + } else if (!_networking || _network_server) { + /* If we are in single player, i.e. not networking, and loading the + * savegame or we are loading the savegame as network server we do + * not want to be bothered by being paused because of the automatic + * reason of a network server, e.g. joining clients or too few + * active clients. Note that resetting these values for a network + * client are very bad because then the client is going to execute + * the game loop when the server is not, i.e. it desyncs. */ + _pause_mode &= ~PMB_PAUSED_NETWORK; } /* in very old versions, size of train stations was stored differently */ |