mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r6786) -Codechange: To join a new company CMD_PLAYER_CTRL is executed with so far a
local spectator (awaiting assignment from server). Since a spectator cannot execute any commands, a local player is impersonated. Move this impersonation to the server side where CMD_PLAYER_CTRL is handled specially anyways.
This commit is contained in:
parent
085a6b497f
commit
7cac86186e
@ -521,9 +521,8 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_MAP)
|
||||
} else {
|
||||
/* We have arrived and ready to start playing; send a command to make a new player;
|
||||
* the server will give us a client-id and let us in */
|
||||
_local_player = 0;
|
||||
NetworkSend_Command(0, 0, 0, CMD_PLAYER_CTRL, NULL);
|
||||
_local_player = PLAYER_SPECTATOR;
|
||||
NetworkSend_Command(0, 0, 0, CMD_PLAYER_CTRL, NULL);
|
||||
}
|
||||
} else {
|
||||
// take control over an existing company
|
||||
|
@ -844,6 +844,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND)
|
||||
}
|
||||
|
||||
// XXX - UGLY! p2 is mis-used to get the client-id in CmdPlayerCtrl
|
||||
cp->player = 0;
|
||||
cp->p2 = cs - _clients;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user