DEADSOFTWARE

add build info
[d2df-editor.git] / src / editor / g_basic.pas
index 1433fecfff51dcb23fe4f70c2006d61858600aa9..17254de80aa4fd977ac59a00baa85c124066f8af 100644 (file)
@@ -1,12 +1,17 @@
 unit g_basic;
 
-{$MODE Delphi}
+{$INCLUDE ../shared/a_modes.inc}
 
 interface
 
 uses
   LCLIntf, LCLType, LMessages;
 
+const
+  EDITOR_VERSION = '0.667';
+  EDITOR_BUILDDATE = {$I %DATE%};
+  EDITOR_BUILDTIME = {$I %TIME%};
+
 Type
   String16   = String[16];
   Char16     = packed array[0..15] of Char;
@@ -19,6 +24,9 @@ Type
 
   TDirection = (D_LEFT, D_RIGHT);
 
+function g_GetBuilderName (): AnsiString;
+function g_GetBuildHash (full: Boolean = True): AnsiString;
+
 function  g_Collide(X1, Y1: Integer; Width1, Height1: Word;
                     X2, Y2: Integer; Width2, Height2: Word): Boolean;
 function  g_CollidePoint(X, Y, X2, Y2: Integer; Width, Height: Word): Boolean;
@@ -53,6 +61,33 @@ implementation
 uses
   Math, g_map, MAPDEF, SysUtils;
 
+{$PUSH}
+{$WARN 2054 OFF} // unknwon env var
+{$WARN 6018 OFF} // unreachable code
+function g_GetBuilderName (): AnsiString;
+begin
+  if {$I %D2DF_BUILD_USER%} <> '' then
+    result := {$I %D2DF_BUILD_USER%} // custom
+  else if {$I %USER%} <> '' then
+    result := {$I %USER%} // unix username
+  else if {$I %USERNAME%} <> '' then
+    result := {$I %USERNAME%} // windows username
+  else
+    result := 'unknown'
+end;
+
+function g_GetBuildHash (full: Boolean = True): AnsiString;
+begin
+  if {$I %D2DF_BUILD_HASH%} <> '' then
+    if full then
+      result := {$I %D2DF_BUILD_HASH%}
+    else
+      result := Copy({$I %D2DF_BUILD_HASH%}, 1, 7)
+  else
+    result := 'custom build'
+end;
+{$POP}
+
 procedure g_ChangeDir(var dir: TDirection);
 begin
   if dir = D_LEFT then