DEADSOFTWARE

no more global `gItems[]` array; created DynTree for items (not used yet); also,...
[d2df-sdl.git] / src / game / g_map.pas
index 2f1e856f7ae6a5be6a91ee40023915197504fef2..cd2aff9951cc4908138407a965ef2acb17d5b77d 100644 (file)
@@ -189,7 +189,6 @@ const
   FLAG_SIGNATURE = $47414C46; // 'FLAG'
 
 
-
 function panelTypeToTag (panelType: Word): Integer;
 begin
   case panelType of
@@ -234,10 +233,10 @@ type
 
 type
   TDynAABBTreeMap = class(TDynAABBTree)
-    function getFleshAABB (var aabb: AABB2D; flesh: TTreeFlesh): Boolean; override;
+    function getFleshAABB (var aabb: AABB2D; flesh: TTreeFlesh; tag: Integer): Boolean; override;
   end;
 
-function TDynAABBTreeMap.getFleshAABB (var aabb: AABB2D; flesh: TTreeFlesh): Boolean;
+function TDynAABBTreeMap.getFleshAABB (var aabb: AABB2D; flesh: TTreeFlesh; tag: Integer): Boolean;
 var
   pan: TPanel;
 begin
@@ -2181,7 +2180,7 @@ function g_Map_CollidePanel(X, Y: Integer; Width, Height: Word; PanelType: Word;
 var
   tagmask: Integer = 0;
 begin
-  if WordBool(PanelType and PANEL_WALL) then tagmask := tagmask or GridTagWall or GridTagDoor;
+  if WordBool(PanelType and (PANEL_WALL or PANEL_CLOSEDOOR or PANEL_OPENDOOR)) then tagmask := tagmask or (GridTagWall or GridTagDoor);
   if WordBool(PanelType and PANEL_WATER) then tagmask := tagmask or GridTagWater;
   if WordBool(PanelType and PANEL_ACID1) then tagmask := tagmask or GridTagAcid1;
   if WordBool(PanelType and PANEL_ACID2) then tagmask := tagmask or GridTagAcid2;