DEADSOFTWARE

no more global `gItems[]` array; created DynTree for items (not used yet); also,...
[d2df-sdl.git] / src / game / g_basic.pas
index 6a29d61ddb1505532e099efd91f378bd0480f7c9..8430c9f98eecc88eba2aceba3096c4078e3f1704 100644 (file)
@@ -1,4 +1,19 @@
-{$MODE DELPHI}
+(* Copyright (C)  DooM 2D:Forever Developers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *)
+{$INCLUDE ../shared/a_modes.inc}
 unit g_basic;
 
 interface
@@ -33,7 +48,6 @@ function g_CollideAround(X1, Y1: Integer; Width1, Height1: Word;
                          X2, Y2: Integer; Width2, Height2: Word): Boolean;
 function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean;
 function g_CollideMonster(X, Y: Integer; Width, Height: Word): Boolean;
-function g_CollideItem(X, Y: Integer; Width, Height: Word): Boolean;
 function g_PatchLength(X1, Y1, X2, Y2: Integer): Word;
 function g_TraceVector(X1, Y1, X2, Y2: Integer): Boolean;
 function g_GetAcidHit(X, Y: Integer; Width, Height: Word): Byte;
@@ -87,6 +101,10 @@ begin
 end;
 
 function g_CollideLevel(X, Y: Integer; Width, Height: Word): Boolean;
+begin
+  result := g_Map_CollidePanel(X, Y, Width, Height, (PANEL_WALL or PANEL_CLOSEDOOR or PANEL_OPENDOOR), false);
+end;
+(*
 var
   a: Integer;
 begin
@@ -106,6 +124,7 @@ begin
       Exit;
     end;
 end;
+*)
 
 function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean;
 var
@@ -141,24 +160,6 @@ begin
       end;
 end;
 
-function g_CollideItem(X, Y: Integer; Width, Height: Word): Boolean;
-var
-  a: Integer;
-begin
-  Result := False;
-
-  if gItems = nil then
-    Exit;
-
-  for a := 0 to High(gItems) do
-    if gItems[a].Live then
-      if g_Obj_Collide(X, Y, Width, Height, @gItems[a].Obj) then
-        begin
-          Result := True;
-          Exit;
-        end;
-end;
-
 function g_TraceVector(X1, Y1, X2, Y2: Integer): Boolean;
 var
   i: Integer;
@@ -498,7 +499,7 @@ begin
   b := abs(vy);
 
   if a = 0 then
-    c := 0
+    c := 90
   else
     c := RadToDeg(ArcTan(b/a));