mirror of https://github.com/OpenTTD/OpenTTD
(svn r14723) -Codechange: shuffling some stuff around to reduce indirect #include dependencies.
parent
d501a20065
commit
9476a49763
|
@ -14,6 +14,7 @@
|
||||||
#include "command_func.h"
|
#include "command_func.h"
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
#include "network/network_func.h"
|
#include "network/network_func.h"
|
||||||
|
#include "network/network_base.h"
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
#include "cheat_func.h"
|
#include "cheat_func.h"
|
||||||
#include "ai/ai.h"
|
#include "ai/ai.h"
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
#include "network/network_func.h"
|
#include "network/network_func.h"
|
||||||
|
#include "network/network_base.h"
|
||||||
#include "command_func.h"
|
#include "command_func.h"
|
||||||
#include "settings_func.h"
|
#include "settings_func.h"
|
||||||
#include "fios.h"
|
#include "fios.h"
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
#include "network/network_func.h"
|
#include "network/network_func.h"
|
||||||
#include "network/network_gui.h"
|
#include "network/network_gui.h"
|
||||||
|
#include "network/network_base.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
|
@ -113,9 +113,8 @@ public:
|
||||||
|
|
||||||
inline NetworkClientInfo *GetInfo() const
|
inline NetworkClientInfo *GetInfo() const
|
||||||
{
|
{
|
||||||
extern NetworkClientInfo _network_client_info[MAX_CLIENT_INFO];
|
|
||||||
extern NetworkClientSocket _clients[MAX_CLIENTS];
|
extern NetworkClientSocket _clients[MAX_CLIENTS];
|
||||||
return &_network_client_info[this - _clients];
|
return GetNetworkClientInfo(this - _clients);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -107,7 +107,7 @@ extern void StateGameLoop();
|
||||||
*/
|
*/
|
||||||
NetworkClientInfo *NetworkFindClientInfoFromIndex(ClientIndex index)
|
NetworkClientInfo *NetworkFindClientInfoFromIndex(ClientIndex index)
|
||||||
{
|
{
|
||||||
return &_network_client_info[index];
|
return IsValidNetworkClientInfoIndex(index) ? GetNetworkClientInfo(index) : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/** @file network_base.h Base core network types and some helper functions to access them. */
|
||||||
|
|
||||||
|
#ifndef NETWORK_BASE_H
|
||||||
|
#define NETWORK_BASE_H
|
||||||
|
|
||||||
|
#ifdef ENABLE_NETWORK
|
||||||
|
|
||||||
|
#include "network_type.h"
|
||||||
|
|
||||||
|
struct NetworkClientInfo {
|
||||||
|
ClientID client_id; ///< Client identifier (same as ClientState->client_id)
|
||||||
|
char client_name[NETWORK_CLIENT_NAME_LENGTH]; ///< Name of the client
|
||||||
|
byte client_lang; ///< The language of the client
|
||||||
|
CompanyID client_playas; ///< As which company is this client playing (CompanyID)
|
||||||
|
uint32 client_ip; ///< IP-address of the client (so he can be banned)
|
||||||
|
Date join_date; ///< Gamedate the client has joined
|
||||||
|
char unique_id[NETWORK_UNIQUE_ID_LENGTH]; ///< Every play sends an unique id so we can indentify him
|
||||||
|
|
||||||
|
inline bool IsValid() const { return client_id != INVALID_CLIENT_ID; }
|
||||||
|
};
|
||||||
|
|
||||||
|
static NetworkClientInfo *GetNetworkClientInfo(int ci)
|
||||||
|
{
|
||||||
|
extern NetworkClientInfo _network_client_info[MAX_CLIENT_INFO];
|
||||||
|
return &_network_client_info[ci];
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool IsValidNetworkClientInfoIndex(ClientIndex index)
|
||||||
|
{
|
||||||
|
return (uint)index < MAX_CLIENT_INFO && GetNetworkClientInfo(index)->IsValid();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FOR_ALL_CLIENT_INFOS_FROM(d, start) for (ci = GetNetworkClientInfo(start); ci != GetNetworkClientInfo(MAX_CLIENT_INFO); ci++) if (ci->IsValid())
|
||||||
|
#define FOR_ALL_CLIENT_INFOS(d) FOR_ALL_CLIENT_INFOS_FROM(d, 0)
|
||||||
|
|
||||||
|
#endif /* ENABLE_NETWORK */
|
||||||
|
#endif /* NETWORK_BASE_H */
|
|
@ -301,8 +301,8 @@ struct NetworkChatWindow : public QueryStringBaseWindow {
|
||||||
/* First, try clients */
|
/* First, try clients */
|
||||||
if (*item < MAX_CLIENT_INFO) {
|
if (*item < MAX_CLIENT_INFO) {
|
||||||
/* Skip inactive clients */
|
/* Skip inactive clients */
|
||||||
while (_network_client_info[*item].client_id == INVALID_CLIENT_ID && *item < MAX_CLIENT_INFO) (*item)++;
|
while (GetNetworkClientInfo(*item)->client_id == INVALID_CLIENT_ID && *item < MAX_CLIENT_INFO) (*item)++;
|
||||||
if (*item < MAX_CLIENT_INFO) return _network_client_info[*item].client_name;
|
if (*item < MAX_CLIENT_INFO) return GetNetworkClientInfo(*item)->client_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Then, try townnames */
|
/* Then, try townnames */
|
||||||
|
|
|
@ -64,7 +64,5 @@ void CDECL NetworkAddChatMessage(uint16 color, uint8 duration, const char *messa
|
||||||
void NetworkUndrawChatMessage();
|
void NetworkUndrawChatMessage();
|
||||||
void NetworkChatMessageDailyLoop();
|
void NetworkChatMessageDailyLoop();
|
||||||
|
|
||||||
#define FOR_ALL_CLIENT_INFOS(ci) for (ci = _network_client_info; ci != endof(_network_client_info); ci++) if (ci->client_id != INVALID_CLIENT_ID)
|
|
||||||
|
|
||||||
#endif /* ENABLE_NETWORK */
|
#endif /* ENABLE_NETWORK */
|
||||||
#endif /* NETWORK_FUNC_H */
|
#endif /* NETWORK_FUNC_H */
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
#include "network_func.h"
|
#include "network_func.h"
|
||||||
|
#include "network_base.h"
|
||||||
#include "core/os_abstraction.h"
|
#include "core/os_abstraction.h"
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/config.h"
|
#include "core/config.h"
|
||||||
|
@ -91,8 +92,6 @@ enum NetworkLanguage {
|
||||||
NETLANG_COUNT
|
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_server; // The frame_counter of the server, if in network-mode
|
||||||
extern uint32 _frame_counter_max; // To where we may go with our clients
|
extern uint32 _frame_counter_max; // To where we may go with our clients
|
||||||
|
|
||||||
|
|
|
@ -53,15 +53,7 @@ struct NetworkCompanyState {
|
||||||
uint16 months_empty; ///< How many months the company is empty
|
uint16 months_empty; ///< How many months the company is empty
|
||||||
};
|
};
|
||||||
|
|
||||||
struct NetworkClientInfo {
|
struct NetworkClientInfo;
|
||||||
ClientID client_id; ///< Client identifier (same as ClientState->client_id)
|
|
||||||
char client_name[NETWORK_CLIENT_NAME_LENGTH]; ///< Name of the client
|
|
||||||
byte client_lang; ///< The language of the client
|
|
||||||
CompanyID client_playas; ///< As which company is this client playing (CompanyID)
|
|
||||||
uint32 client_ip; ///< IP-address of the client (so he can be banned)
|
|
||||||
Date join_date; ///< Gamedate the client has joined
|
|
||||||
char unique_id[NETWORK_UNIQUE_ID_LENGTH]; ///< Every play sends an unique id so we can indentify him
|
|
||||||
};
|
|
||||||
|
|
||||||
enum NetworkPasswordType {
|
enum NetworkPasswordType {
|
||||||
NETWORK_GAME_PASSWORD,
|
NETWORK_GAME_PASSWORD,
|
||||||
|
|
Loading…
Reference in New Issue