diff options
Diffstat (limited to 'src/company_cmd.cpp')
-rw-r--r-- | src/company_cmd.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 16c2610bf..8a36945a6 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -812,7 +812,8 @@ CommandCost CmdCompanyCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /* Has the network client a correct ClientIndex? */ if (!(flags & DC_EXEC)) return CommandCost(); - if (cid >= MAX_CLIENT_INFO) return CommandCost(); + NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(cid); + if (ci != NULL) return CommandCost(); /* Delete multiplayer progress bar */ DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0); @@ -822,7 +823,6 @@ CommandCost CmdCompanyCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /* A new company could not be created, revert to being a spectator */ if (c == NULL) { if (_network_server) { - NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(cid); ci->client_playas = COMPANY_SPECTATOR; NetworkUpdateClientInfo(ci->client_id); } else if (_local_company == COMPANY_SPECTATOR) { @@ -858,7 +858,6 @@ CommandCost CmdCompanyCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /* XXX - UGLY! p2 (pid) is mis-used to fetch the client-id, done at * server-side in network_server.c:838, function * DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND) */ - NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(cid); ci->client_playas = c->index; NetworkUpdateClientInfo(ci->client_id); |