summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-12-22 21:38:03 +0000
committerrubidium <rubidium@openttd.org>2008-12-22 21:38:03 +0000
commit94e7f41a9d54a6c1015778f2a84815c28f8b8461 (patch)
treee370db6a1822a7b0bfa9e55ce0a5bafcb588daf2 /src/network
parentf49cc67f83ca08f9b319f85ec1b5db7f1fbb1b20 (diff)
downloadopenttd-94e7f41a9d54a6c1015778f2a84815c28f8b8461.tar.xz
(svn r14718) -Change: remove some direct network core variable accesses from non-network locations.
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network.cpp28
-rw-r--r--src/network/network_func.h2
-rw-r--r--src/network/network_internal.h2
3 files changed, 27 insertions, 5 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp
index 85da1bb82..2983446fc 100644
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -100,7 +100,21 @@ static ClientID _network_client_id = CLIENT_ID_FIRST;
/* Some externs / forwards */
extern void StateGameLoop();
-// Function that looks up the CI for a given client-identifier
+/**
+ * Return the CI given it's raw index
+ * @param index the index to search for
+ * @return return a pointer to the corresponding NetworkClientInfo struct
+ */
+NetworkClientInfo *NetworkFindClientInfoFromIndex(ClientIndex index)
+{
+ return &_network_client_info[index];
+}
+
+/**
+ * Return the CI given it's client-identifier
+ * @param client_id the ClientID to search for
+ * @return return a pointer to the corresponding NetworkClientInfo struct or NULL when not found
+ */
NetworkClientInfo *NetworkFindClientInfoFromClientID(ClientID client_id)
{
NetworkClientInfo *ci;
@@ -112,9 +126,11 @@ NetworkClientInfo *NetworkFindClientInfoFromClientID(ClientID client_id)
return NULL;
}
-/** Return the CI for a given IP
+/**
+ * Return the CI for a given IP
* @param ip IP of the client we are looking for. This must be in string-format
- * @return return a pointer to the corresponding NetworkClientInfo struct or NULL on failure */
+ * @return return a pointer to the corresponding NetworkClientInfo struct or NULL when not found
+ */
NetworkClientInfo *NetworkFindClientInfoFromIP(const char *ip)
{
NetworkClientInfo *ci;
@@ -127,7 +143,11 @@ NetworkClientInfo *NetworkFindClientInfoFromIP(const char *ip)
return NULL;
}
-// Function that looks up the CS for a given client-identifier
+/**
+ * Return the client state given it's client-identifier
+ * @param client_id the ClientID to search for
+ * @return return a pointer to the corresponding NetworkTCPSocketHandler struct or NULL when not found
+ */
NetworkTCPSocketHandler *NetworkFindClientStateFromClientID(ClientID client_id)
{
NetworkTCPSocketHandler *cs;
diff --git a/src/network/network_func.h b/src/network/network_func.h
index f5bcff496..ebc5c9da2 100644
--- a/src/network/network_func.h
+++ b/src/network/network_func.h
@@ -11,7 +11,6 @@
#include "../console_type.h"
extern NetworkServerGameInfo _network_game_info;
-extern NetworkClientInfo _network_client_info[MAX_CLIENT_INFO];
extern NetworkCompanyState *_network_company_states;
extern ClientID _network_own_client_id;
@@ -51,6 +50,7 @@ void NetworkServerChangeOwner(Owner current_owner, Owner new_owner);
void NetworkServerShowStatusToConsole();
bool NetworkServerStart();
+NetworkClientInfo *NetworkFindClientInfoFromIndex(ClientIndex index);
NetworkClientInfo *NetworkFindClientInfoFromClientID(ClientID client_id);
NetworkClientInfo *NetworkFindClientInfoFromIP(const char *ip);
const char* GetClientIP(const NetworkClientInfo *ci);
diff --git a/src/network/network_internal.h b/src/network/network_internal.h
index 10107d852..4e970f58d 100644
--- a/src/network/network_internal.h
+++ b/src/network/network_internal.h
@@ -91,6 +91,8 @@ enum NetworkLanguage {
NETLANG_COUNT
};
+extern NetworkClientInfo _network_client_info[MAX_CLIENT_INFO];
+
extern uint32 _frame_counter_server; // The frame_counter of the server, if in network-mode
extern uint32 _frame_counter_max; // To where we may go with our clients