mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r20925) -Codechange: make the client send commands have a slightly more sensible name
This commit is contained in:
parent
0ca7e4e82e
commit
515edee17c
@ -279,7 +279,7 @@ static void NetworkClientError(NetworkRecvStatus res, NetworkClientSocket *cs)
|
|||||||
/* This means we fucked up and the server closed the connection */
|
/* This means we fucked up and the server closed the connection */
|
||||||
if (res != NETWORK_RECV_STATUS_SERVER_ERROR && res != NETWORK_RECV_STATUS_SERVER_FULL &&
|
if (res != NETWORK_RECV_STATUS_SERVER_ERROR && res != NETWORK_RECV_STATUS_SERVER_FULL &&
|
||||||
res != NETWORK_RECV_STATUS_SERVER_BANNED) {
|
res != NETWORK_RECV_STATUS_SERVER_BANNED) {
|
||||||
SEND_COMMAND(PACKET_CLIENT_ERROR)(errorno);
|
MyClient::SendError(errorno);
|
||||||
}
|
}
|
||||||
|
|
||||||
_switch_mode = SM_MENU;
|
_switch_mode = SM_MENU;
|
||||||
@ -633,7 +633,7 @@ static void NetworkClose()
|
|||||||
|
|
||||||
FOR_ALL_CLIENT_SOCKETS(cs) {
|
FOR_ALL_CLIENT_SOCKETS(cs) {
|
||||||
if (!_network_server) {
|
if (!_network_server) {
|
||||||
SEND_COMMAND(PACKET_CLIENT_QUIT)();
|
MyClient::SendQuit();
|
||||||
cs->Send_Packets();
|
cs->Send_Packets();
|
||||||
}
|
}
|
||||||
NetworkCloseClient(cs, NETWORK_RECV_STATUS_CONN_LOST);
|
NetworkCloseClient(cs, NETWORK_RECV_STATUS_CONN_LOST);
|
||||||
@ -687,7 +687,7 @@ public:
|
|||||||
{
|
{
|
||||||
_networking = true;
|
_networking = true;
|
||||||
NetworkAllocClient(s);
|
NetworkAllocClient(s);
|
||||||
SEND_COMMAND(PACKET_CLIENT_COMPANY_INFO)();
|
MyClient::SendCompanyInformationQuery();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1003,7 +1003,7 @@ static bool NetworkDoClientLoop()
|
|||||||
* frame as he is.. so we can start playing! */
|
* frame as he is.. so we can start playing! */
|
||||||
if (_network_first_time) {
|
if (_network_first_time) {
|
||||||
_network_first_time = false;
|
_network_first_time = false;
|
||||||
SEND_COMMAND(PACKET_CLIENT_ACK)();
|
MyClient::SendAck();
|
||||||
}
|
}
|
||||||
|
|
||||||
_sync_frame = 0;
|
_sync_frame = 0;
|
||||||
|
@ -264,7 +264,7 @@ static void SendChat(const char *buf, DestType type, int dest)
|
|||||||
{
|
{
|
||||||
if (StrEmpty(buf)) return;
|
if (StrEmpty(buf)) return;
|
||||||
if (!_network_server) {
|
if (!_network_server) {
|
||||||
SEND_COMMAND(PACKET_CLIENT_CHAT)((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, 0);
|
MyClient::SendChat((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, 0);
|
||||||
} else {
|
} else {
|
||||||
NetworkServerSendChat((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, CLIENT_ID_SERVER);
|
NetworkServerSendChat((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, CLIENT_ID_SERVER);
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,19 @@
|
|||||||
*/
|
*/
|
||||||
ClientNetworkGameSocketHandler::ClientNetworkGameSocketHandler(SOCKET s) : NetworkGameSocketHandler(s)
|
ClientNetworkGameSocketHandler::ClientNetworkGameSocketHandler(SOCKET s) : NetworkGameSocketHandler(s)
|
||||||
{
|
{
|
||||||
|
assert(ClientNetworkGameSocketHandler::my_client == NULL);
|
||||||
|
ClientNetworkGameSocketHandler::my_client = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* So we don't make too much typos ;) */
|
/** Clear whatever we assigned. */
|
||||||
#define MY_CLIENT NetworkClientSocket::Get(0)
|
ClientNetworkGameSocketHandler::~ClientNetworkGameSocketHandler()
|
||||||
|
{
|
||||||
|
assert(ClientNetworkGameSocketHandler::my_client == this);
|
||||||
|
ClientNetworkGameSocketHandler::my_client = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Our client's connection. */
|
||||||
|
ClientNetworkGameSocketHandler * ClientNetworkGameSocketHandler::my_client = NULL;
|
||||||
|
|
||||||
static uint32 last_ack_frame;
|
static uint32 last_ack_frame;
|
||||||
|
|
||||||
@ -120,7 +129,7 @@ void HashCurrentCompanyPassword(const char *password)
|
|||||||
* DEF_CLIENT_SEND_COMMAND has no parameters
|
* DEF_CLIENT_SEND_COMMAND has no parameters
|
||||||
************/
|
************/
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_COMPANY_INFO)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendCompanyInformationQuery()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_COMPANY_INFO
|
* Packet: CLIENT_COMPANY_INFO
|
||||||
@ -133,11 +142,11 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_COMPANY_INFO)
|
|||||||
SetWindowDirty(WC_NETWORK_STATUS_WINDOW, 0);
|
SetWindowDirty(WC_NETWORK_STATUS_WINDOW, 0);
|
||||||
|
|
||||||
p = new Packet(PACKET_CLIENT_COMPANY_INFO);
|
p = new Packet(PACKET_CLIENT_COMPANY_INFO);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_JOIN)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendJoin()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_JOIN
|
* Packet: CLIENT_JOIN
|
||||||
@ -158,11 +167,11 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_JOIN)
|
|||||||
p->Send_string(_settings_client.network.client_name); // Client name
|
p->Send_string(_settings_client.network.client_name); // Client name
|
||||||
p->Send_uint8 (_network_join_as); // PlayAs
|
p->Send_uint8 (_network_join_as); // PlayAs
|
||||||
p->Send_uint8 (NETLANG_ANY); // Language
|
p->Send_uint8 (NETLANG_ANY); // Language
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendNewGRFsOk()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_NEWGRFS_CHECKED
|
* Packet: CLIENT_NEWGRFS_CHECKED
|
||||||
@ -171,11 +180,11 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Packet *p = new Packet(PACKET_CLIENT_NEWGRFS_CHECKED);
|
Packet *p = new Packet(PACKET_CLIENT_NEWGRFS_CHECKED);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendGamePassword(const char *password)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_GAME_PASSWORD
|
* Packet: CLIENT_GAME_PASSWORD
|
||||||
@ -186,11 +195,11 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password)
|
|||||||
*/
|
*/
|
||||||
Packet *p = new Packet(PACKET_CLIENT_GAME_PASSWORD);
|
Packet *p = new Packet(PACKET_CLIENT_GAME_PASSWORD);
|
||||||
p->Send_string(password);
|
p->Send_string(password);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *password)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendCompanyPassword(const char *password)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_COMPANY_PASSWORD
|
* Packet: CLIENT_COMPANY_PASSWORD
|
||||||
@ -201,11 +210,11 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *passwo
|
|||||||
*/
|
*/
|
||||||
Packet *p = new Packet(PACKET_CLIENT_COMPANY_PASSWORD);
|
Packet *p = new Packet(PACKET_CLIENT_COMPANY_PASSWORD);
|
||||||
p->Send_string(GenerateCompanyPasswordHash(password));
|
p->Send_string(GenerateCompanyPasswordHash(password));
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_GETMAP)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendGetMap()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_GETMAP
|
* Packet: CLIENT_GETMAP
|
||||||
@ -222,11 +231,11 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_GETMAP)
|
|||||||
* will have the lower bits set to 0. As such they would become
|
* will have the lower bits set to 0. As such they would become
|
||||||
* incompatible, which we would like to prevent by this. */
|
* incompatible, which we would like to prevent by this. */
|
||||||
if (HasBit(_openttd_newgrf_version, 19)) p->Send_uint32(_openttd_newgrf_version);
|
if (HasBit(_openttd_newgrf_version, 19)) p->Send_uint32(_openttd_newgrf_version);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_MAP_OK)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendMapOk()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_MAP_OK
|
* Packet: CLIENT_MAP_OK
|
||||||
@ -236,11 +245,11 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_MAP_OK)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Packet *p = new Packet(PACKET_CLIENT_MAP_OK);
|
Packet *p = new Packet(PACKET_CLIENT_MAP_OK);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_ACK)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendAck()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_ACK
|
* Packet: CLIENT_ACK
|
||||||
@ -252,12 +261,12 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_ACK)
|
|||||||
Packet *p = new Packet(PACKET_CLIENT_ACK);
|
Packet *p = new Packet(PACKET_CLIENT_ACK);
|
||||||
|
|
||||||
p->Send_uint32(_frame_counter);
|
p->Send_uint32(_frame_counter);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a command packet to the server */
|
/* Send a command packet to the server */
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMMAND)(const CommandPacket *cp)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendCommand(const CommandPacket *cp)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_COMMAND
|
* Packet: CLIENT_COMMAND
|
||||||
@ -273,14 +282,14 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMMAND)(const CommandPacket *cp)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Packet *p = new Packet(PACKET_CLIENT_COMMAND);
|
Packet *p = new Packet(PACKET_CLIENT_COMMAND);
|
||||||
MY_CLIENT->Send_Command(p, cp);
|
my_client->Send_Command(p, cp);
|
||||||
|
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a chat-packet over the network */
|
/* Send a chat-packet over the network */
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_CHAT)(NetworkAction action, DestType type, int dest, const char *msg, int64 data)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendChat(NetworkAction action, DestType type, int dest, const char *msg, int64 data)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_CHAT
|
* Packet: CLIENT_CHAT
|
||||||
@ -301,12 +310,12 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_CHAT)(NetworkAction action, DestType
|
|||||||
p->Send_string(msg);
|
p->Send_string(msg);
|
||||||
p->Send_uint64(data);
|
p->Send_uint64(data);
|
||||||
|
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send an error-packet over the network */
|
/* Send an error-packet over the network */
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_ERROR)(NetworkErrorCode errorno)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendError(NetworkErrorCode errorno)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_ERROR
|
* Packet: CLIENT_ERROR
|
||||||
@ -317,11 +326,11 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_ERROR)(NetworkErrorCode errorno)
|
|||||||
Packet *p = new Packet(PACKET_CLIENT_ERROR);
|
Packet *p = new Packet(PACKET_CLIENT_ERROR);
|
||||||
|
|
||||||
p->Send_uint8(errorno);
|
p->Send_uint8(errorno);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_PASSWORD)(const char *password)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendSetPassword(const char *password)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: PACKET_CLIENT_SET_PASSWORD
|
* Packet: PACKET_CLIENT_SET_PASSWORD
|
||||||
@ -332,11 +341,11 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_PASSWORD)(const char *password)
|
|||||||
Packet *p = new Packet(PACKET_CLIENT_SET_PASSWORD);
|
Packet *p = new Packet(PACKET_CLIENT_SET_PASSWORD);
|
||||||
|
|
||||||
p->Send_string(GenerateCompanyPasswordHash(password));
|
p->Send_string(GenerateCompanyPasswordHash(password));
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_NAME)(const char *name)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendSetName(const char *name)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: PACKET_CLIENT_SET_NAME
|
* Packet: PACKET_CLIENT_SET_NAME
|
||||||
@ -347,12 +356,12 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_NAME)(const char *name)
|
|||||||
Packet *p = new Packet(PACKET_CLIENT_SET_NAME);
|
Packet *p = new Packet(PACKET_CLIENT_SET_NAME);
|
||||||
|
|
||||||
p->Send_string(name);
|
p->Send_string(name);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send an quit-packet over the network */
|
/* Send an quit-packet over the network */
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_QUIT)()
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendQuit()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Packet: CLIENT_QUIT
|
* Packet: CLIENT_QUIT
|
||||||
@ -361,25 +370,25 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_QUIT)()
|
|||||||
*/
|
*/
|
||||||
Packet *p = new Packet(PACKET_CLIENT_QUIT);
|
Packet *p = new Packet(PACKET_CLIENT_QUIT);
|
||||||
|
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_RCON)(const char *pass, const char *command)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendRCon(const char *pass, const char *command)
|
||||||
{
|
{
|
||||||
Packet *p = new Packet(PACKET_CLIENT_RCON);
|
Packet *p = new Packet(PACKET_CLIENT_RCON);
|
||||||
p->Send_string(pass);
|
p->Send_string(pass);
|
||||||
p->Send_string(command);
|
p->Send_string(command);
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_MOVE)(CompanyID company, const char *pass)
|
NetworkRecvStatus ClientNetworkGameSocketHandler::SendMove(CompanyID company, const char *pass)
|
||||||
{
|
{
|
||||||
Packet *p = new Packet(PACKET_CLIENT_MOVE);
|
Packet *p = new Packet(PACKET_CLIENT_MOVE);
|
||||||
p->Send_uint8(company);
|
p->Send_uint8(company);
|
||||||
p->Send_string(GenerateCompanyPasswordHash(pass));
|
p->Send_string(GenerateCompanyPasswordHash(pass));
|
||||||
MY_CLIENT->Send_Packet(p);
|
my_client->Send_Packet(p);
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,7 +567,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_CHECK_NEWGRFS)
|
|||||||
|
|
||||||
if (ret == NETWORK_RECV_STATUS_OKAY) {
|
if (ret == NETWORK_RECV_STATUS_OKAY) {
|
||||||
/* Start receiving the map */
|
/* Start receiving the map */
|
||||||
return SEND_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)();
|
return SendNewGRFsOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NewGRF mismatch, bail out */
|
/* NewGRF mismatch, bail out */
|
||||||
@ -570,7 +579,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_NEED_GAME_PASSWORD)
|
|||||||
{
|
{
|
||||||
const char *password = _network_join_server_password;
|
const char *password = _network_join_server_password;
|
||||||
if (!StrEmpty(password)) {
|
if (!StrEmpty(password)) {
|
||||||
return SEND_COMMAND(PACKET_CLIENT_GAME_PASSWORD)(password);
|
return SendGamePassword(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
ShowNetworkNeedPassword(NETWORK_GAME_PASSWORD);
|
ShowNetworkNeedPassword(NETWORK_GAME_PASSWORD);
|
||||||
@ -586,7 +595,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_NEED_COMPANY_PASSWORD)
|
|||||||
|
|
||||||
const char *password = _network_join_company_password;
|
const char *password = _network_join_company_password;
|
||||||
if (!StrEmpty(password)) {
|
if (!StrEmpty(password)) {
|
||||||
return SEND_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)(password);
|
return SendCompanyPassword(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
ShowNetworkNeedPassword(NETWORK_COMPANY_PASSWORD);
|
ShowNetworkNeedPassword(NETWORK_COMPANY_PASSWORD);
|
||||||
@ -603,7 +612,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_WELCOME)
|
|||||||
p->Recv_string(_password_server_id, sizeof(_password_server_id));
|
p->Recv_string(_password_server_id, sizeof(_password_server_id));
|
||||||
|
|
||||||
/* Start receiving the map */
|
/* Start receiving the map */
|
||||||
return SEND_COMMAND(PACKET_CLIENT_GETMAP)();
|
return SendGetMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_WAIT)
|
DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_WAIT)
|
||||||
@ -685,7 +694,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_MAP)
|
|||||||
* only toolbar/statusbar and gamefield are visible */
|
* only toolbar/statusbar and gamefield are visible */
|
||||||
|
|
||||||
/* Say we received the map and loaded it correctly! */
|
/* Say we received the map and loaded it correctly! */
|
||||||
SEND_COMMAND(PACKET_CLIENT_MAP_OK)();
|
SendMapOk();
|
||||||
|
|
||||||
/* New company/spectator (invalid company) or company we want to join is not active
|
/* New company/spectator (invalid company) or company we want to join is not active
|
||||||
* Switch local company to spectator and await the server's judgement */
|
* Switch local company to spectator and await the server's judgement */
|
||||||
@ -730,7 +739,7 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_FRAME)
|
|||||||
if (!_network_first_time && last_ack_frame < _frame_counter) {
|
if (!_network_first_time && last_ack_frame < _frame_counter) {
|
||||||
last_ack_frame = _frame_counter + DAY_TICKS;
|
last_ack_frame = _frame_counter + DAY_TICKS;
|
||||||
DEBUG(net, 4, "Sent ACK at %d", _frame_counter);
|
DEBUG(net, 4, "Sent ACK at %d", _frame_counter);
|
||||||
SEND_COMMAND(PACKET_CLIENT_ACK)();
|
SendAck();
|
||||||
}
|
}
|
||||||
|
|
||||||
return NETWORK_RECV_STATUS_OKAY;
|
return NETWORK_RECV_STATUS_OKAY;
|
||||||
@ -944,12 +953,12 @@ void NetworkClient_Connected()
|
|||||||
_frame_counter_server = 0;
|
_frame_counter_server = 0;
|
||||||
last_ack_frame = 0;
|
last_ack_frame = 0;
|
||||||
/* Request the game-info */
|
/* Request the game-info */
|
||||||
SEND_COMMAND(PACKET_CLIENT_JOIN)();
|
MyClient::SendJoin();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkClientSendRcon(const char *password, const char *command)
|
void NetworkClientSendRcon(const char *password, const char *command)
|
||||||
{
|
{
|
||||||
SEND_COMMAND(PACKET_CLIENT_RCON)(password, command);
|
MyClient::SendRCon(password, command);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -960,7 +969,7 @@ void NetworkClientSendRcon(const char *password, const char *command)
|
|||||||
*/
|
*/
|
||||||
void NetworkClientRequestMove(CompanyID company_id, const char *pass)
|
void NetworkClientRequestMove(CompanyID company_id, const char *pass)
|
||||||
{
|
{
|
||||||
SEND_COMMAND(PACKET_CLIENT_MOVE)(company_id, pass);
|
MyClient::SendMove(company_id, pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkClientsToSpectators(CompanyID cid)
|
void NetworkClientsToSpectators(CompanyID cid)
|
||||||
@ -985,7 +994,7 @@ void NetworkUpdateClientName()
|
|||||||
/* Don't change the name if it is the same as the old name */
|
/* Don't change the name if it is the same as the old name */
|
||||||
if (strcmp(ci->client_name, _settings_client.network.client_name) != 0) {
|
if (strcmp(ci->client_name, _settings_client.network.client_name) != 0) {
|
||||||
if (!_network_server) {
|
if (!_network_server) {
|
||||||
SEND_COMMAND(PACKET_CLIENT_SET_NAME)(_settings_client.network.client_name);
|
MyClient::SendSetName(_settings_client.network.client_name);
|
||||||
} else {
|
} else {
|
||||||
if (NetworkFindName(_settings_client.network.client_name)) {
|
if (NetworkFindName(_settings_client.network.client_name)) {
|
||||||
NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, _settings_client.network.client_name);
|
NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, _settings_client.network.client_name);
|
||||||
@ -998,12 +1007,12 @@ void NetworkUpdateClientName()
|
|||||||
|
|
||||||
void NetworkClientSendChat(NetworkAction action, DestType type, int dest, const char *msg, int64 data)
|
void NetworkClientSendChat(NetworkAction action, DestType type, int dest, const char *msg, int64 data)
|
||||||
{
|
{
|
||||||
SEND_COMMAND(PACKET_CLIENT_CHAT)(action, type, dest, msg, data);
|
MyClient::SendChat(action, type, dest, msg, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void NetworkClientSetPassword(const char *password)
|
static void NetworkClientSetPassword(const char *password)
|
||||||
{
|
{
|
||||||
SEND_COMMAND(PACKET_CLIENT_SET_PASSWORD)(password);
|
MyClient::SendSetPassword(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
/** Class for handling the client side of the game connection. */
|
/** Class for handling the client side of the game connection. */
|
||||||
class ClientNetworkGameSocketHandler : public NetworkGameSocketHandler {
|
class ClientNetworkGameSocketHandler : public NetworkGameSocketHandler {
|
||||||
protected:
|
protected:
|
||||||
|
static ClientNetworkGameSocketHandler *my_client;
|
||||||
|
|
||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_FULL);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_FULL);
|
||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_BANNED);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_BANNED);
|
||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_ERROR);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_ERROR);
|
||||||
@ -43,23 +45,33 @@ protected:
|
|||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_MOVE);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_MOVE);
|
||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_COMPANY_UPDATE);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_COMPANY_UPDATE);
|
||||||
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_CONFIG_UPDATE);
|
DECLARE_GAME_RECEIVE_COMMAND(PACKET_SERVER_CONFIG_UPDATE);
|
||||||
|
|
||||||
|
static NetworkRecvStatus SendNewGRFsOk();
|
||||||
|
static NetworkRecvStatus SendGetMap();
|
||||||
|
static NetworkRecvStatus SendMapOk();
|
||||||
public:
|
public:
|
||||||
ClientNetworkGameSocketHandler(SOCKET s);
|
ClientNetworkGameSocketHandler(SOCKET s);
|
||||||
|
~ClientNetworkGameSocketHandler();
|
||||||
|
|
||||||
|
static NetworkRecvStatus SendCompanyInformationQuery();
|
||||||
|
|
||||||
|
static NetworkRecvStatus SendJoin();
|
||||||
|
static NetworkRecvStatus SendCommand(const CommandPacket *cp);
|
||||||
|
static NetworkRecvStatus SendError(NetworkErrorCode errorno);
|
||||||
|
static NetworkRecvStatus SendQuit();
|
||||||
|
static NetworkRecvStatus SendAck();
|
||||||
|
|
||||||
|
static NetworkRecvStatus SendGamePassword(const char *password);
|
||||||
|
static NetworkRecvStatus SendCompanyPassword(const char *password);
|
||||||
|
|
||||||
|
static NetworkRecvStatus SendChat(NetworkAction action, DestType type, int dest, const char *msg, int64 data);
|
||||||
|
static NetworkRecvStatus SendSetPassword(const char *password);
|
||||||
|
static NetworkRecvStatus SendSetName(const char *name);
|
||||||
|
static NetworkRecvStatus SendRCon(const char *password, const char *command);
|
||||||
|
static NetworkRecvStatus SendMove(CompanyID company, const char *password);
|
||||||
};
|
};
|
||||||
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_GAME_INFO);
|
typedef ClientNetworkGameSocketHandler MyClient;
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_COMPANY_INFO);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMMAND)(const CommandPacket *cp);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_ERROR)(NetworkErrorCode errorno);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_QUIT)();
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_CHAT)(NetworkAction action, DestType desttype, int dest, const char *msg, int64 data);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *password);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_PASSWORD)(const char *password);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_NAME)(const char *name);
|
|
||||||
DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_ACK);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_RCON)(const char *pass, const char *command);
|
|
||||||
DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_MOVE)(CompanyID company, const char *pass);
|
|
||||||
|
|
||||||
void NetworkClient_Connected();
|
void NetworkClient_Connected();
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ void NetworkSend_Command(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, Comma
|
|||||||
c.frame = 0; // The client can't tell which frame, so just make it 0
|
c.frame = 0; // The client can't tell which frame, so just make it 0
|
||||||
|
|
||||||
/* Clients send their command to the server and forget all about the packet */
|
/* Clients send their command to the server and forget all about the packet */
|
||||||
SEND_COMMAND(PACKET_CLIENT_COMMAND)(&c);
|
MyClient::SendCommand(&c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2240,8 +2240,8 @@ struct NetworkJoinStatusWindow : Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (this->password_type) {
|
switch (this->password_type) {
|
||||||
case NETWORK_GAME_PASSWORD: SEND_COMMAND(PACKET_CLIENT_GAME_PASSWORD) (str); break;
|
case NETWORK_GAME_PASSWORD: MyClient::SendGamePassword (str); break;
|
||||||
case NETWORK_COMPANY_PASSWORD: SEND_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)(str); break;
|
case NETWORK_COMPANY_PASSWORD: MyClient::SendCompanyPassword(str); break;
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -175,9 +175,6 @@ StringID GetNetworkErrorMsg(NetworkErrorCode err);
|
|||||||
bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]);
|
bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]);
|
||||||
|
|
||||||
/* Macros to make life a bit more easier */
|
/* Macros to make life a bit more easier */
|
||||||
#define DEF_CLIENT_RECEIVE_COMMAND(type) NetworkRecvStatus NetworkPacketReceive_ ## type ## _command(Packet *p)
|
|
||||||
#define DEF_CLIENT_SEND_COMMAND(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command()
|
|
||||||
#define DEF_CLIENT_SEND_COMMAND_PARAM(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command
|
|
||||||
#define DEF_SERVER_RECEIVE_COMMAND(type) NetworkRecvStatus NetworkPacketReceive_ ## type ## _command(NetworkClientSocket *cs, Packet *p)
|
#define DEF_SERVER_RECEIVE_COMMAND(type) NetworkRecvStatus NetworkPacketReceive_ ## type ## _command(NetworkClientSocket *cs, Packet *p)
|
||||||
#define DEF_SERVER_SEND_COMMAND(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command(NetworkClientSocket *cs)
|
#define DEF_SERVER_SEND_COMMAND(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command(NetworkClientSocket *cs)
|
||||||
#define DEF_SERVER_SEND_COMMAND_PARAM(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command
|
#define DEF_SERVER_SEND_COMMAND_PARAM(type) NetworkRecvStatus NetworkPacketSend_ ## type ## _command
|
||||||
|
Loading…
Reference in New Issue
Block a user