DEADSOFTWARE

clearing input buffer after loading a map (fixes occasional button "sticking")
[d2df-sdl.git] / src / game / g_player.pas
index 92aec4017d01675a83b8b37ad0aa4a98772bf619..2d53dc5b6c7c3f0f4c9c3eec7f54b65dcaabbc51 100644 (file)
@@ -20,7 +20,7 @@ interface
 
 uses
   e_graphics, g_playermodel, g_basic, g_textures,
-  g_weapons, g_phys, g_sound, g_saveload, MAPSTRUCT,
+  g_weapons, g_phys, g_sound, g_saveload, MAPDEF,
   BinEditor, g_panel;
 
 const
@@ -524,7 +524,7 @@ implementation
 
 uses
   e_log, g_map, g_items, g_console, SysUtils, g_gfx, Math,
-  g_options, g_triggers, g_menu, MAPDEF, g_game, g_grid,
+  g_options, g_triggers, g_menu, g_game, g_grid,
   wadreader, g_main, g_monsters, CONFIG, g_language,
   g_net, g_netmsg, g_window, GL, g_holmes;
 
@@ -563,7 +563,7 @@ const
   ANGLE_LEFTUP    = 125;
   ANGLE_LEFTDOWN  = -145;
   PLAYER_HEADRECT: TRectWH = (X:24; Y:12; Width:20; Height:12);
-  WEAPONPOINT: Array [TDirection] of TPoint = ((X:16; Y:32), (X:47; Y:32));
+  WEAPONPOINT: Array [TDirection] of TDFPoint = ((X:16; Y:32), (X:47; Y:32));
   BOT_MAXJUMP = 84;
   BOT_LONGDIST   = 300;
   BOT_UNSAFEDIST = 128;
@@ -1711,7 +1711,7 @@ end;
 procedure g_Player_DrawCorpses();
 var
   i: Integer;
-  a: TPoint;
+  a: TDFPoint;
 begin
   if gGibs <> nil then
     for i := 0 to High(gGibs) do
@@ -1742,7 +1742,7 @@ end;
 procedure g_Player_DrawShells();
 var
   i: Integer;
-  a: TPoint;
+  a: TDFPoint;
 begin
   if gShells <> nil then
     for i := 0 to High(gShells) do
@@ -2271,10 +2271,10 @@ begin
         e_GetTextureSize(ID, @w, @h);
         if FDirection = D_LEFT then
           e_Draw(ID, FObj.X+FObj.Rect.X+(FObj.Rect.Width div 2)-(w div 2)+4,
-                     FObj.Y+FObj.Rect.Y+(FObj.Rect.Height div 2)-(h div 2)-7, 0, True, False)
+                     FObj.Y+FObj.Rect.Y+(FObj.Rect.Height div 2)-(h div 2)-7+FObj.slopeUpLeft, 0, True, False)
         else
           e_Draw(ID, FObj.X+FObj.Rect.X+(FObj.Rect.Width div 2)-(w div 2)-2,
-                     FObj.Y+FObj.Rect.Y+(FObj.Rect.Height div 2)-(h div 2)-7, 0, True, False);
+                     FObj.Y+FObj.Rect.Y+(FObj.Rect.Height div 2)-(h div 2)-7+FObj.slopeUpLeft, 0, True, False);
       end;
 
     if FMegaRulez[MR_INVIS] > gTime then
@@ -2287,15 +2287,15 @@ begin
         else
           dr := True;
         if dr then
-          FModel.Draw(FObj.X, FObj.Y, 200)
+          FModel.Draw(FObj.X, FObj.Y+FObj.slopeUpLeft, 200)
         else
-          FModel.Draw(FObj.X, FObj.Y);
+          FModel.Draw(FObj.X, FObj.Y+FObj.slopeUpLeft);
       end
       else
-        FModel.Draw(FObj.X, FObj.Y, 254);
+        FModel.Draw(FObj.X, FObj.Y+FObj.slopeUpLeft, 254);
     end
     else
-      FModel.Draw(FObj.X, FObj.Y);
+      FModel.Draw(FObj.X, FObj.Y+FObj.slopeUpLeft);
   end;
 
   if g_debug_Frames then
@@ -2318,36 +2318,11 @@ end;
 
 procedure TPlayer.DrawAim();
   procedure drawCast (sz: Integer; ax0, ay0, ax1, ay1: Integer);
-
-    {
-    procedure drawTileGrid ();
-    var
-      x, y: Integer;
-    begin
-      y := mapGrid.gridY0;
-      while (y < mapGrid.gridY0+mapGrid.gridHeight) do
-      begin
-        x := mapGrid.gridX0;
-        while (x < mapGrid.gridX0+mapGrid.gridWidth) do
-        begin
-          if (x+mapGrid.tileSize > viewPortX) and (y+mapGrid.tileSize > viewPortY) and
-             (x < viewPortX+viewPortW) and (y < viewPortY+viewPortH) then
-          begin
-            e_DrawQuad(x, y, x+mapGrid.tileSize-1, y+mapGrid.tileSize-1, 96, 96, 96, 96);
-          end;
-          Inc(x, mapGrid.tileSize);
-        end;
-        Inc(y, mapGrid.tileSize);
-      end;
-    end;
-    }
-
   var
     ex, ey: Integer;
   begin
     if isValidViewPort and (self = gPlayer1) then
     begin
-      g_Holmes_plrView(viewPortX, viewPortY, viewPortW, viewPortH);
       g_Holmes_plrLaser(ax0, ay0, ax1, ay1);
     end;
 
@@ -2360,8 +2335,6 @@ procedure TPlayer.DrawAim();
     begin
       e_DrawLine(sz, ax0, ay0, ex, ey, 0, 0, 255, 96);
     end;
-
-    //drawTileGrid();
   end;
 
 var