DEADSOFTWARE

gfx: cleaned up and fixed progress update code (it was broken; oops)
[d2df-sdl.git] / src / game / g_window.pas
index 82107dca143b952159ffcb3c89540a03803e5633..b0c06786a82ac434609231d0d69d835d60e04256 100644 (file)
@@ -2,8 +2,7 @@
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation, version 3 of the License ONLY.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -65,7 +64,7 @@ uses
 
 
 const
-  ProgressUpdateMSecs = 1;//100;
+  ProgressUpdateMSecs = 35; //1;//100;
 
 var
   h_Wnd: PSDL_Window = nil;
@@ -783,13 +782,14 @@ begin
 end;
 
 
+{$IFNDEF HEADLESS}
 var
   prevLoadingUpdateTime: UInt64 = 0;
+{$ENDIF}
 
 procedure ProcessLoading (forceUpdate: Boolean=false);
 var
   ev: TSDL_Event;
-  ID: LongWord;
   stt: UInt64;
 begin
   FillChar(ev, sizeof(ev), 0);
@@ -808,38 +808,27 @@ begin
     exit;
   end;
 
+{$IFNDEF HEADLESS}
   if not wMinimized then
   begin
-    if forceUpdate then
-    begin
-      prevLoadingUpdateTime := getTimeMilli();
-    end
-    else
+    if not forceUpdate then
     begin
       stt := getTimeMilli();
-      if (stt < prevLoadingUpdateTime) or (stt-prevLoadingUpdateTime >= ProgressUpdateMSecs) then
-      begin
-        prevLoadingUpdateTime := stt;
-        forceUpdate := true;
-      end;
+      forceUpdate := (stt < prevLoadingUpdateTime) or (stt-prevLoadingUpdateTime >= ProgressUpdateMSecs);
     end;
 
     if forceUpdate then
     begin
-      if g_Texture_Get('INTER', ID) then
-      begin
-        e_DrawSize(ID, 0, 0, 0, false, false, gScreenWidth, gScreenHeight);
-        e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
-      end
-      else
-      begin
-        e_Clear(GL_COLOR_BUFFER_BIT, 0, 0, 0);
-      end;
+      DrawMenuBackground('INTER');
+      e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
 
       DrawLoadingStat();
+      g_Console_Draw(True);
       SwapBuffers();
+      prevLoadingUpdateTime := getTimeMilli();
     end;
   end;
+{$ENDIF}
 
   e_SoundUpdate();
 
@@ -908,6 +897,8 @@ begin
     else if (NetMode = NET_CLIENT) then g_Net_Client_Update();
   end;
 
+  if NetMode = NET_SERVER then g_Net_Flush();
+
   g_Map_ProfilersEnd();
   g_Mons_ProfilersEnd();
 
@@ -974,7 +965,7 @@ begin
   {$IFDEF USE_GLES1}
     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1);
     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
-    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);    
+    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
   {$ELSE}
     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
@@ -1182,8 +1173,10 @@ begin
   // Êîìàíäíàÿ ñòðîêà
   if (ParamCount > 0) then g_Game_Process_Params();
 
+{$IFNDEF HEADLESS}
   // Çàïðîñ ÿçûêà
   if (not gGameOn) and gAskLanguage then g_Menu_AskLanguage();
+{$ENDIF}
 
   e_WriteLog('Entering the main loop', TMsgType.Notify);