1
0
Fork 0

(svn r22063) -Change: make the "has network" check also check whether the client is actually fully connected

release/1.1
rubidium 2011-02-11 22:10:10 +00:00
parent 7de823b1bd
commit 1dc5ba2210
3 changed files with 13 additions and 1 deletions

View File

@ -19,6 +19,7 @@
#include "network/network_func.h" #include "network/network_func.h"
#include "network/network_base.h" #include "network/network_base.h"
#include "network/network_admin.h" #include "network/network_admin.h"
#include "network/network_client.h"
#include "command_func.h" #include "command_func.h"
#include "settings_func.h" #include "settings_func.h"
#include "fios.h" #include "fios.h"
@ -90,7 +91,7 @@ DEF_CONSOLE_HOOK(ConHookNeedNetwork)
{ {
if (!NetworkAvailable(echo)) return CHR_DISALLOW; if (!NetworkAvailable(echo)) return CHR_DISALLOW;
if (!_networking) { if (!_networking || (!_network_server && !MyClient::IsConnected())) {
if (echo) IConsoleError("Not connected. This command is only available in multiplayer."); if (echo) IConsoleError("Not connected. This command is only available in multiplayer.");
return CHR_DISALLOW; return CHR_DISALLOW;
} }

View File

@ -463,6 +463,15 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::SendMove(CompanyID company, co
return NETWORK_RECV_STATUS_OKAY; return NETWORK_RECV_STATUS_OKAY;
} }
/**
* Check whether the client is actually connected (and in the game).
* @return True when the client is connected.
*/
bool ClientNetworkGameSocketHandler::IsConnected()
{
return my_client != NULL && my_client->status == STATUS_ACTIVE;
}
/*********** /***********
* Receiving functions * Receiving functions

View File

@ -100,6 +100,8 @@ public:
static NetworkRecvStatus SendRCon(const char *password, const char *command); static NetworkRecvStatus SendRCon(const char *password, const char *command);
static NetworkRecvStatus SendMove(CompanyID company, const char *password); static NetworkRecvStatus SendMove(CompanyID company, const char *password);
static bool IsConnected();
static void Send(); static void Send();
static bool Receive(); static bool Receive();
static bool GameLoop(); static bool GameLoop();