diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 4e2382628b74a8faa5a2198439b96e5695ae8bc8..aa4c189bc549556117f56d5eb802c14e04aaee8d 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
g_triggers, g_monsters, e_sound, CONFIG,
g_language, g_net,
ENet, e_msg, g_netmsg, g_netmaster,
- sfs, wadreader;
+ sfs, wadreader, g_system;
var
gDelayedEvents[n].DENum := Num;
gDelayedEvents[n].DEStr := Str;
if DEType = DE_GLOBEVENT then
- gDelayedEvents[n].Time := (GetTimer() {div 1000}) + Time
+ gDelayedEvents[n].Time := (sys_GetTicks() {div 1000}) + Time
else
gDelayedEvents[n].Time := gTime + Time;
Result := n;
if NetUseMaster then
begin
- if gTime >= NetTimeToMaster then
+ if (gTime >= NetTimeToMaster) or g_Net_Slist_IsConnectionInProgress then
begin
- if (NetMHost = nil) or (NetMPeer = nil) then
- begin
- g_Net_Slist_Connect(false); // non-blocking connection to the master
- end;
-
+ if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master
g_Net_Slist_Update;
NetTimeToMaster := gTime + NetMasterRate;
end;
KeyPress(IK_F10);
end;
- Time := GetTimer() {div 1000};
+ Time := sys_GetTicks() {div 1000};
// Îáðàáîòêà îòëîæåííûõ ñîáûòèé:
if gDelayedEvents <> nil then
begin
e_TextureFontGetSize(gStdFont, ww2, hh2);
- g_ProcessMessages();
+ sys_HandleInput;
if g_Console_Action(ACTION_SCORES) then
begin
begin
if gExit = EXIT_QUIT then Exit;
- Time := GetTimer() {div 1000};
+ Time := sys_GetTicks() {div 1000};
FPSCounter := FPSCounter+1;
if Time - FPSTime >= 1000 then
begin
g_Game_DeleteTestMap();
gExit := EXIT_QUIT;
- PushExitEvent();
+ sys_RequestQuit;
end;
procedure g_FatalError(Text: String);
procedure g_Game_ChangeResolution(newWidth, newHeight: Word; nowFull, nowMax: Boolean);
begin
- g_Window_SetSize(newWidth, newHeight, nowFull);
+ sys_SetDisplayMode(newWidth, newHeight, gBPP, nowFull);
end;
procedure g_Game_AddPlayer(Team: Byte = TEAM_NONE);
NetState := NET_STATE_AUTH;
g_Game_SetLoadingText(_lc[I_LOAD_CONNECT], 0, False);
+
+ // create (or update) map/resource databases
+ g_Res_CreateDatabases(true);
+
// Ñòàðòóåì êëèåíò
if not g_Net_Connect(Addr, Port) then
begin
// Ìàñòåðñåðâåð
if NetUseMaster then
begin
- if (NetMHost = nil) or (NetMPeer = nil) then
- begin
- // let the connection be blocking here, why not?
- g_Net_Slist_Connect();
- end;
+ if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master
g_Net_Slist_Update;
end;
begin
NetUseMaster := StrToIntDef(P[1], Byte(NetUseMaster)) > 0;
if g_Game_IsServer and g_Game_IsNet then
+ begin
if NetUseMaster then
begin
- if NetMPeer = nil then g_Net_Slist_Connect();
+ if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master
g_Net_Slist_Update();
end
else
- if NetMPeer <> nil then
- g_Net_Slist_Disconnect();
+ begin
+ if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Disconnect();
+ end;
+ end;
end;
g_Console_Add(cmd + ' = ' + IntToStr(Byte(NetUseMaster)));