DEADSOFTWARE

gl: allow holmes (works partially)
[d2df-sdl.git] / src / game / renders / opengl / r_render.pas
index 4c1f097115acbf4a563cff0920db1970a0fc6225..18b14209101baf408fb40ff20c023eb0a0145220 100644 (file)
@@ -87,6 +87,9 @@ implementation
     {$IFDEF ENABLE_SYSTEM}
       g_system,
     {$ENDIF}
+    {$IFDEF ENABLE_HOLMES}
+      g_holmes,
+    {$ENDIF}
     SysUtils, Classes, Math,
     g_basic,
     e_log, utils, wadreader, mapdef,
@@ -127,24 +130,24 @@ implementation
     r_LoadScreen_Load;
     r_Common_Load;
     r_Common_SetLoading('HUD Textures', 5 + (WP_LAST + 1) + 11);
-    hud :=  r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/HUD');
-    hudbg :=  r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/HUDBG');
-    hudhp[false] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/MED2');
-    hudhp[true] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/BMED');
-    hudap := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/ARMORHUD');
+    hud :=  r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/HUD', [TGLHints.txNoRepeat]);
+    hudbg :=  r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/HUDBG', []);
+    hudhp[false] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/MED2', [TGLHints.txNoRepeat]);
+    hudhp[true] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/BMED', [TGLHints.txNoRepeat]);
+    hudap := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/ARMORHUD', [TGLHints.txNoRepeat]);
     for i := 0 to WP_LAST do
-      hudwp[i] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/' + WeapName[i]);
-    hudkey[0] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYR');
-    hudkey[1] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYG');
-    hudkey[2] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYB');
-    hudair := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/AIRBAR');
-    hudjet := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/JETBAR');
-    hudrflag := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_BASE');
-    hudrflags := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_STOLEN');
-    hudrflagd := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_DROP');
-    hudbflag := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_BASE');
-    hudbflags := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_STOLEN');
-    hudbflagd := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_DROP');
+      hudwp[i] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/' + WeapName[i], [TGLHints.txNoRepeat]);
+    hudkey[0] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYR', [TGLHints.txNoRepeat]);
+    hudkey[1] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYG', [TGLHints.txNoRepeat]);
+    hudkey[2] := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/KEYB', [TGLHints.txNoRepeat]);
+    hudair := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/AIRBAR', [TGLHints.txNoRepeat]);
+    hudjet := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/JETBAR', [TGLHints.txNoRepeat]);
+    hudrflag := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_BASE', [TGLHints.txNoRepeat]);
+    hudrflags := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_STOLEN', [TGLHints.txNoRepeat]);
+    hudrflagd := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_R_DROP', [TGLHints.txNoRepeat]);
+    hudbflag := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_BASE', [TGLHints.txNoRepeat]);
+    hudbflags := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_STOLEN', [TGLHints.txNoRepeat]);
+    hudbflagd := r_Common_LoadTextureFromFile(GameWAD + ':TEXTURES/FLAGHUD_B_DROP', [TGLHints.txNoRepeat]);
     r_Console_Load;
     r_Map_Load;
     {$IFDEF ENABLE_MENU}
@@ -391,6 +394,13 @@ implementation
     r_Common_GetCameraPos(p, true, xx, yy);
     if p <> nil then
     begin
+      {$IFDEF ENABLE_HOLMES}
+        if p = gPlayer1 then
+        begin
+          g_Holmes_plrViewPos(x, y);
+          g_Holmes_plrViewSize(w, h);
+        end;
+      {$ENDIF}
       r_Map_Draw(x, y, w, h, xx, yy, p);
       r_Render_DrawStatsView(x, y, w, h, p);
       if p.Spectator and p.NoRespawn then
@@ -1107,7 +1117,10 @@ implementation
       if gShowMap then
         r_Render_DrawMiniMap(0, 0, 160);
 
-      // TODO draw holmes inspector
+      {$IFDEF ENABLE_HOLMES}
+        if g_holmes_enabled then
+          g_Holmes_Draw;
+      {$ENDIF}
 
       if MessageText <> '' then
         r_Common_DrawFormatText(MessageText, (gScreenWidth - 196) div 2, gScreenHeight div 2, 255, menufont, TBasePoint.BP_CENTER);
@@ -1215,7 +1228,9 @@ implementation
 
     // TODO draw profilers
 
-    // TODO draw holmes interface
+    {$IFDEF ENABLE_HOLMES}
+      g_Holmes_DrawUI;
+    {$ENDIF}
 
     // TODO draw touch screen controls