From 52fb6b7d7cec0734fb341939adce5199eeca7db6 Mon Sep 17 00:00:00 2001 From: rubidium Date: Tue, 23 Dec 2008 11:43:32 +0000 Subject: (svn r14724) -Codechange: move some NetworkClientSocket related function/definitions closer together. --- src/network/core/tcp.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/network/core') diff --git a/src/network/core/tcp.h b/src/network/core/tcp.h index f720e0de0..aa5bb7c4a 100644 --- a/src/network/core/tcp.h +++ b/src/network/core/tcp.h @@ -111,6 +111,7 @@ public: Packet *Recv_Packet(NetworkRecvStatus *status); + inline bool IsValid() const { return this->IsConnected(); } inline NetworkClientInfo *GetInfo() const { extern NetworkClientSocket _clients[MAX_CLIENTS]; @@ -118,6 +119,19 @@ public: } }; +// Here we keep track of the clients +// (and the client uses [0] for his own communication) +extern NetworkClientSocket _clients[MAX_CLIENTS]; +#define GetNetworkClientSocket(i) (&_clients[i]) + +static inline bool IsValidNetworkClientSocketIndex(ClientIndex index) +{ + return (uint)index < MAX_CLIENTS && GetNetworkClientSocket(index)->IsValid(); +} + +#define FOR_ALL_CLIENT_SOCKETS_FROM(d, start) for (d = GetNetworkClientSocket(start); d != GetNetworkClientSocket(MAX_CLIENTS); d++) if (d->IsValid()) +#define FOR_ALL_CLIENT_SOCKETS(d) FOR_ALL_CLIENT_SOCKETS_FROM(d, 0) + #endif /* ENABLE_NETWORK */ #endif /* NETWORK_CORE_TCP_H */ -- cgit v1.2.3-70-g09d2