changeset 15067:ed83091c3644 draft

(svn r19693) -Codechange: split STATUS_INACTIVE to two states
author smatz <smatz@openttd.org>
date Thu, 22 Apr 2010 17:26:57 +0000
parents 6658375b72ef
children 67e618b529da
files src/network/core/tcp_game.h src/network/network_server.cpp
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/network/core/tcp_game.h
+++ b/src/network/core/tcp_game.h
@@ -77,6 +77,7 @@
 /** Status of a client */
 enum ClientStatus {
 	STATUS_INACTIVE,     ///< The client is not connected nor active
+	STATUS_NEWGRFS_CHECK, ///< The client is checking NewGRFs
 	STATUS_AUTH_GAME,    ///< The client is authorizing with game (server) password
 	STATUS_AUTH_COMPANY, ///< The client is authorizing with company password
 	STATUS_AUTHORIZED,   ///< The client is authorized
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -656,7 +656,7 @@
 
 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)
 {
-	if (cs->status != STATUS_INACTIVE) {
+	if (cs->status != STATUS_NEWGRFS_CHECK) {
 		/* Illegal call, return error and ignore the packet */
 		return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_EXPECTED);
 	}
@@ -739,7 +739,10 @@
 	/* Make sure companies to which people try to join are not autocleaned */
 	if (Company::IsValidID(playas)) _network_company_states[playas].months_empty = 0;
 
+	cs->status = STATUS_NEWGRFS_CHECK;
+
 	if (_grfconfig == NULL) {
+		/* Behave as if we received PACKET_CLIENT_NEWGRFS_CHECKED */
 		return RECEIVE_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)(cs, NULL);
 	}
 
@@ -1703,6 +1706,7 @@
 {
 	static const char * const stat_str[] = {
 		"inactive",
+		"checking NewGRFs",
 		"authorizing (server password)",
 		"authorizing (company password)",
 		"authorized",