DEADSOFTWARE

render: separate animation drawing from game code
[d2df-sdl.git] / src / game / opengl / r_map.pas
index eb50ad9bfa35e6791e0783b2e8c8653477f6b236..525bf35e9dc09d0b1f88406659b09038589e6637 100644 (file)
@@ -30,9 +30,10 @@ implementation
   uses
     {$INCLUDE ../nogl/noGLuses.inc}
     SysUtils, Classes, Math,
-    e_graphics,
-    g_basic, g_game, g_options,
-    g_panel, g_map
+    r_graphics, r_animations,
+    g_base, g_basic, g_game, g_options,
+    g_panel, g_map,
+    r_panel
   ;
 
 procedure dplClear ();
@@ -52,7 +53,8 @@ procedure r_Map_DrawPanels (PanelType: Word; hasAmbient: Boolean; constref ambCo
       // alas, no visible set
       for idx := 0 to High(panels) do
       begin
-        if not (drawDoors xor panels[idx].Door) then panels[idx].Draw(hasAmbient, ambColor);
+        if not (drawDoors xor panels[idx].Door) then
+          r_Panel_Draw(panels[idx], hasAmbient, ambColor);
       end;
     end;
   end;
@@ -89,7 +91,7 @@ var
   it: TPanelGrid.Iter;
 begin
   it := mapGrid.forEachInAABB(lightX-radius, lightY-radius, radius*2, radius*2, (GridTagWall or GridTagDoor));
-  for mwit in it do mwit^.DrawShadowVolume(lightX, lightY, radius);
+  for mwit in it do r_Panel_DrawShadowVolume(mwit^, lightX, lightY, radius);
   it.release();
 end;
 
@@ -127,7 +129,7 @@ begin
             dx := 1;
           end;
 
-        Animation.Draw(Obj.X+dx, Obj.Y+1, Mirror);
+        r_Animation_Draw(Animation, Obj.X + dx, Obj.Y + 1, Mirror);
 
         if g_debug_Frames then
         begin