From e4cb8ed4570f53fc26367371e8d680882f0e70e6 Mon Sep 17 00:00:00 2001 From: truelight Date: Tue, 22 Nov 2005 15:55:38 +0000 Subject: (svn r3226) -Fix: GPMI implementation had minor glitches -Fix: the AI speed control is done by the AI-core, individual AIs don't have to do it (so, AIs were delayed twice ;) -Add: Support for AI-network-clients (an AI, connecting to a remote server) -Fix: minor AI-core problems --- players.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'players.c') diff --git a/players.c b/players.c index ecb54aeee..b53ea1c27 100644 --- a/players.c +++ b/players.c @@ -806,10 +806,20 @@ int32 CmdPlayerCtrl(int x, int y, uint32 flags, uint32 p1, uint32 p2) #endif /* ENABLE_NETWORK */ if (p != NULL) { - if (_local_player == OWNER_SPECTATOR) { + if (_local_player == OWNER_SPECTATOR && (!_ai.network_client || _ai.network_playas == OWNER_SPECTATOR)) { /* Check if we do not want to be a spectator in network */ - if (!_networking || (_network_server && !_network_dedicated) || _network_playas != OWNER_SPECTATOR) { - _local_player = p->index; + if (!_networking || (_network_server && !_network_dedicated) || _network_playas != OWNER_SPECTATOR || _ai.network_client) { + if (_ai.network_client) { + /* As ai-network-client, we have our own rulez (disable GUI and stuff) */ + _ai.network_playas = p->index; + _local_player = OWNER_SPECTATOR; + if (_ai.network_playas != OWNER_SPECTATOR) { + /* If we didn't join the game as a spectator, activate the AI */ + AI_StartNewAI(_ai.network_playas); + } + } else { + _local_player = p->index; + } MarkWholeScreenDirty(); } } else if (p->index == _local_player) { -- cgit v1.2.3-54-g00ecf