DEADSOFTWARE

some code to squash monsters and players by mplats (somewhat buggy: sometimes monster...
[d2df-sdl.git] / src / shared / MAPDEF.pas
index 6400264bb438dd69ca6907eb7dbf52f362a66ff4..ad160252dcc5877460d99f413785999aa8df791f 100644 (file)
@@ -40,6 +40,8 @@ type
 
   public
     constructor Create (ax, ay: LongInt);
+
+    function isZero (): Boolean; inline;
   end;
 
   Char16     = packed array[0..15] of Char;
@@ -90,6 +92,10 @@ type
     function Alpha (): Byte; inline;
     function Flags (): Byte; inline;
 
+    function moveSpeed (): TDFPoint; inline;
+    function moveStart (): TDFPoint; inline;
+    function moveEnd (): TDFPoint; inline;
+
     // texture
     function Resource (): AnsiString; inline;
     function Anim (): Boolean; inline;
@@ -116,6 +122,7 @@ type
 
     {$INCLUDE mapdef_help.inc}
     function trigMonsterId (): Integer; inline;
+    function trigPanelId (): Integer; inline; // panel index in list
 
   private
     // user fields
@@ -145,6 +152,7 @@ uses
 
 // ////////////////////////////////////////////////////////////////////////// //
 constructor TDFPoint.Create (ax, ay: LongInt); begin X := ax; Y := ay; end;
+function TDFPoint.isZero (): Boolean; inline; begin result := (X = 0) and (Y = 0); end;
 
 
 // ////////////////////////////////////////////////////////////////////////// //
@@ -180,6 +188,12 @@ begin
 end;
 
 
+// ////////////////////////////////////////////////////////////////////////// //
+function TDynRecordHelper.moveSpeed (): TDFPoint; inline; begin result := getPointField('move_speed'); end;
+function TDynRecordHelper.moveStart (): TDFPoint; inline; begin result := getPointField('move_start'); end;
+function TDynRecordHelper.moveEnd (): TDFPoint; inline; begin result := getPointField('move_end'); end;
+
+
 // ////////////////////////////////////////////////////////////////////////// //
 function TDynRecordHelper.getFieldWithType (const aname: AnsiString; atype: TDynField.TType): TDynField; inline;
 begin
@@ -266,6 +280,16 @@ begin
 end;
 
 
+// panel index in list
+function TDynRecordHelper.trigPanelId (): Integer; inline;
+var
+  fld: TDynField;
+begin
+  fld := getFieldWithType('panelid', TDynField.TType.TInt);
+  result := fld.recrefIndex;
+end;
+
+
 // ////////////////////////////////////////////////////////////////////////// //
 function TDynRecordHelper.mapName (): AnsiString; inline; begin result := utf2win(getFieldWithType('name', TDynField.TType.TChar).sval); end;
 function TDynRecordHelper.mapAuthor (): AnsiString; inline; begin result := utf2win(getFieldWithType('author', TDynField.TType.TChar).sval); end;