Changeset - r13520:b28b2da3bc7b
[Not reviewed]
master
0 3 0
rubidium - 15 years ago 2009-11-12 17:46:04
rubidium@openttd.org
(svn r18051) -Codechange: make the active clients pause use a separate bit in the pause mode
3 files changed with 11 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/misc_cmd.cpp
Show inline comments
 
@@ -350,6 +350,7 @@ CommandCost CmdPause(TileIndex tile, DoC
 

	
 
#ifdef ENABLE_NETWORK
 
		case PM_PAUSED_JOIN:
 
		case PM_PAUSED_ACTIVE_CLIENTS:
 
			if (!_networking) return CMD_ERROR;
 
			break;
 
#endif
src/network/network.cpp
Show inline comments
 
@@ -377,14 +377,14 @@ static void CheckMinActiveClients()
 
	if (!_network_dedicated || _settings_client.network.min_active_clients == 0 || (_pause_mode & PM_PAUSED_ERROR) != 0) return;
 

	
 
	if (NetworkCountActiveClients() < _settings_client.network.min_active_clients) {
 
		if ((_pause_mode & PM_PAUSED_NORMAL) != 0) return;
 
		if ((_pause_mode & PM_PAUSED_ACTIVE_CLIENTS) != 0) return;
 

	
 
		DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
 
		DoCommandP(0, PM_PAUSED_ACTIVE_CLIENTS, 1, CMD_PAUSE);
 
		NetworkServerSendChat(NETWORK_ACTION_SERVER_MESSAGE, DESTTYPE_BROADCAST, 0, "", CLIENT_ID_SERVER, NETWORK_SERVER_MESSAGE_GAME_PAUSED_PLAYERS);
 
	} else {
 
		if ((_pause_mode & PM_PAUSED_NORMAL) == 0) return;
 
		if ((_pause_mode & PM_PAUSED_ACTIVE_CLIENTS) == 0) return;
 

	
 
		DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE);
 
		DoCommandP(0, PM_PAUSED_ACTIVE_CLIENTS, 0, CMD_PAUSE);
 
		NetworkServerSendChat(NETWORK_ACTION_SERVER_MESSAGE, DESTTYPE_BROADCAST, 0, "", CLIENT_ID_SERVER, NETWORK_SERVER_MESSAGE_GAME_UNPAUSED_PLAYERS);
 
	}
 
}
src/openttd.h
Show inline comments
 
@@ -51,11 +51,12 @@ extern bool _exit_game;
 

	
 
/** Modes of pausing we've got */
 
enum PauseMode {
 
	PM_UNPAUSED        = 0,      ///< A normal unpaused game
 
	PM_PAUSED_NORMAL   = 1 << 0, ///< A game normally paused
 
	PM_PAUSED_SAVELOAD = 1 << 1, ///< A game paused for saving/loading
 
	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_UNPAUSED              = 0,      ///< A normal unpaused game
 
	PM_PAUSED_NORMAL         = 1 << 0, ///< A game normally paused
 
	PM_PAUSED_SAVELOAD       = 1 << 1, ///< A game paused for saving/loading
 
	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'
 
};
 
DECLARE_ENUM_AS_BIT_SET(PauseMode);
 
typedef SimpleTinyEnumT<PauseMode, byte> PauseModeByte;
0 comments (0 inline, 0 general)