DEADSOFTWARE

render: draw menu via render
[d2df-sdl.git] / src / game / opengl / r_game.pas
index f838360e4156efb0634ff3d112cb150dcab9a5c7..daa4ca7b97ef2be485b0709597780f774b13a888 100644 (file)
@@ -42,14 +42,19 @@ implementation
       g_holmes,
     {$ENDIF}
     {$IFDEF ENABLE_MENU}
-      g_gui, g_menu,
+      g_gui, g_menu, r_gui,
     {$ENDIF}
     {$IFDEF ENABLE_GFX}
       g_gfx, r_gfx,
     {$ENDIF}
+    {$IFDEF ENABLE_CORPSES}
+      g_corpses,
+    {$ENDIF}
+    {$IFDEF ENABLE_SYSTEM}
+      g_system,
+    {$ENDIF}
     SysUtils, Classes, Math,
     g_base, g_basic, r_graphics,
-    g_system,
     MAPDEF, xprofiler, utils, wadreader, CONFIG,
     e_input, e_sound,
     g_language, g_console, g_triggers, g_player, g_options, g_monsters, g_map, g_panel,
@@ -207,6 +212,8 @@ end;
 
   procedure r_Game_Free;
   begin
+    e_CharFont_Remove(gMenuFont);
+    e_CharFont_Remove(gMenuSmallFont);
     g_Texture_Delete('NOTEXTURE');
     g_Texture_Delete('TEXTURE_PLAYER_HUD');
     g_Texture_Delete('TEXTURE_PLAYER_HUDBG');
@@ -572,7 +579,9 @@ var
 begin
   e_TextureFontGetSize(gStdFont, ww2, hh2);
 
-  sys_HandleInput;
+  {$IFDEF ENABLE_SYSTEM}
+    sys_HandleInput;
+  {$ENDIF}
 
   if g_Console_Action(ACTION_SCORES) then
   begin
@@ -803,9 +812,7 @@ begin
   // HACK: take stats screenshot immediately after the first frame of the stats showing
   if gScreenshotStats and (not StatShotDone) and (Length(CustomStat.PlayerStat) > 1) then
   begin
-{$IFNDEF HEADLESS}
     g_TakeScreenShot('stats/' + StatFilename);
-{$ENDIF}
     StatShotDone := True;
   end;
 end;
@@ -1547,10 +1554,16 @@ begin
   drawPanelType('*step', PANEL_STEP, g_rlayer_step);
   drawOther('items', @r_Items_Draw);
   drawOther('weapons', @r_Weapon_Draw);
-  drawOther('shells', @r_Player_DrawShells);
+  {$IFDEF ENABLE_SHELLS}
+    drawOther('shells', @r_Player_DrawShells);
+  {$ENDIF}
   drawOther('drawall', @r_Player_DrawAll);
-  drawOther('gibs', @r_PlayerModel_DrawGibs);
-  drawOther('corpses', @r_Player_DrawCorpses);
+  {$IFDEF ENABLE_GIBS}
+    drawOther('gibs', @r_PlayerModel_DrawGibs);
+  {$ENDIF}
+  {$IFDEF ENABLE_CORPSES}
+    drawOther('corpses', @r_Player_DrawCorpses);
+  {$ENDIF}
   drawPanelType('*wall', PANEL_WALL, g_rlayer_wall);
   drawOther('monsters', @r_Monsters_Draw);
   drawOther('itemdrop', @r_Items_DrawDrop);
@@ -1626,7 +1639,12 @@ begin
 
   glPushMatrix();
 
-  camObj := p.getCameraObj();
+  {$IFDEF ENABLE_CORPSES}
+    camObj := g_Corpses_GetCameraObj(p);
+  {$ELSE}
+    camObj := p.Obj;
+  {$ENDIF}
+
   camObj.lerp(gLerpFactor, fX, fY);
   px := fX + PLAYER_RECT_CX;
   py := fY + PLAYER_RECT_CY+nlerp(p.SlopeOld, camObj.slopeUpLeft, gLerpFactor);
@@ -2148,13 +2166,11 @@ begin
       //e_DrawFillQuad(0, 0, gScreenWidth-1, gScreenHeight-1, 48, 48, 48, 180);
       e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
     end;
-    g_ActiveWindow.Draw();
+    r_GUI_Draw_Window(g_ActiveWindow);
   end;
 {$ENDIF}
 
-{$IFNDEF HEADLESS}
   r_Console_Draw();
-{$ENDIF}
 
   if g_debug_Sounds and gGameOn then
   begin