diff --git a/src/game/g_net.pas b/src/game/g_net.pas
index 4deca1e4c2f65356a7a2ebfcb886a0480bfb9aef..eaf35fad6aadc41d2be339ff12a22c1a9c06a0c1 100644 (file)
--- a/src/game/g_net.pas
+++ b/src/game/g_net.pas
Peer: pENetPeer;
Player: Word;
RequestedFullUpdate: Boolean;
+ WaitForFirstSpawn: Boolean; // set to `true` in server, used to spawn a player on first full state request
RCONAuth: Boolean;
Voted: Boolean;
Transfer: TNetFileTransfer; // only one transfer may be active
uses
SysUtils,
e_input, g_nethandler, g_netmsg, g_netmaster, g_player, g_window, g_console,
- g_main, g_game, g_language, g_weapons, utils, ctypes,
+ g_main, g_game, g_language, g_weapons, utils, ctypes, g_system,
g_map;
const
NetClients[N].Used := True;
NetClients[N].ID := N;
NetClients[N].RequestedFullUpdate := False;
+ NetClients[N].WaitForFirstSpawn := False;
NetClients[N].RCONAuth := False;
NetClients[N].Voted := False;
NetClients[N].Player := 0;
TC^.Peer := nil;
TC^.Player := 0;
TC^.RequestedFullUpdate := False;
+ TC^.WaitForFirstSpawn := False;
TC^.NetOut[NET_UNRELIABLE].Free();
TC^.NetOut[NET_RELIABLE].Free();
end;
// предупредить что ждем слишком долго через N секунд
- TimeoutTime := GetTimer() + NET_CONNECT_TIMEOUT;
+ TimeoutTime := sys_GetTicks() + NET_CONNECT_TIMEOUT;
OuterLoop := True;
while OuterLoop do
end;
end;
- T := GetTimer();
+ T := sys_GetTicks();
if T > TimeoutTime then
begin
TimeoutTime := T + NET_CONNECT_TIMEOUT * 100; // одного предупреждения хватит