DEADSOFTWARE

Fix compilation errors when building Windows EXE for amd64 target
[d2df-sdl.git] / src / shared / utils.pas
index 946e4f5a07c7a31a5422fad1f2f479fb83ffce6a..c0ba824a9615188a05e25f4b0ac835f22bef2ffd 100644 (file)
@@ -36,6 +36,12 @@ const wadExtensions: array [0..6] of AnsiString = (
   '.dfzip'
 );
 
+{$IF DEFINED(FREEBSD) OR DEFINED(DARWIN)}
+const NilThreadId = nil;
+{$ELSE}
+const NilThreadId = 0;
+{$ENDIF}
+
 
 // ////////////////////////////////////////////////////////////////////////// //
 type
@@ -189,6 +195,7 @@ function readLongIntBE (st: TStream): LongInt;
 function readInt64BE (st: TStream): Int64;
 function readUInt64BE (st: TStream): UInt64;
 
+function nlerp (a, b: Integer; t: Single): Integer; inline;
 
 function nmin (a, b: Byte): Byte; inline; overload;
 function nmin (a, b: ShortInt): ShortInt; inline; overload;
@@ -200,7 +207,7 @@ function nmin (a, b: Int64): Int64; inline; overload;
 function nmin (a, b: UInt64): UInt64; inline; overload;
 function nmin (a, b: Single): Single; inline; overload;
 function nmin (a, b: Double): Double; inline; overload;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nmin (a, b: Extended): Extended; inline; overload;
 {$ENDIF}
 
@@ -214,7 +221,7 @@ function nmax (a, b: Int64): Int64; inline; overload;
 function nmax (a, b: UInt64): UInt64; inline; overload;
 function nmax (a, b: Single): Single; inline; overload;
 function nmax (a, b: Double): Double; inline; overload;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nmax (a, b: Extended): Extended; inline; overload;
 {$ENDIF}
 function nclamp (v, a, b: Byte): Byte; inline; overload;
@@ -227,7 +234,7 @@ function nclamp (v, a, b: Int64): Int64; inline; overload;
 function nclamp (v, a, b: UInt64): UInt64; inline; overload;
 function nclamp (v, a, b: Single): Single; inline; overload;
 function nclamp (v, a, b: Double): Double; inline; overload;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nclamp (v, a, b: Extended): Extended; inline; overload;
 {$ENDIF}
 
@@ -1528,6 +1535,8 @@ function readUInt64BE (st: TStream): UInt64; begin readIntegerBE(st, @result, 8)
 
 
 // ////////////////////////////////////////////////////////////////////////// //
+function nlerp (a, b: Integer; t: Single): Integer; inline; begin result := round((1.0 - t) * a + t * b); end;
+
 function nmin (a, b: Byte): Byte; inline; overload; begin if (a < b) then result := a else result := b; end;
 function nmin (a, b: ShortInt): ShortInt; inline; overload; begin if (a < b) then result := a else result := b; end;
 function nmin (a, b: Word): Word; inline; overload; begin if (a < b) then result := a else result := b; end;
@@ -1538,7 +1547,7 @@ function nmin (a, b: Int64): Int64; inline; overload; begin if (a < b) then resu
 function nmin (a, b: UInt64): UInt64; inline; overload; begin if (a < b) then result := a else result := b; end;
 function nmin (a, b: Single): Single; inline; overload; begin if (a < b) then result := a else result := b; end;
 function nmin (a, b: Double): Double; inline; overload; begin if (a < b) then result := a else result := b; end;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nmin (a, b: Extended): Extended; inline; overload; begin if (a < b) then result := a else result := b; end;
 {$ENDIF}
 
@@ -1552,7 +1561,7 @@ function nmax (a, b: Int64): Int64; inline; overload; begin if (a > b) then resu
 function nmax (a, b: UInt64): UInt64; inline; overload; begin if (a > b) then result := a else result := b; end;
 function nmax (a, b: Single): Single; inline; overload; begin if (a > b) then result := a else result := b; end;
 function nmax (a, b: Double): Double; inline; overload; begin if (a > b) then result := a else result := b; end;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nmax (a, b: Extended): Extended; inline; overload; begin if (a > b) then result := a else result := b; end;
 {$ENDIF}
 
@@ -1566,7 +1575,7 @@ function nclamp (v, a, b: Int64): Int64; inline; overload; begin if (v < a) then
 function nclamp (v, a, b: UInt64): UInt64; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end;
 function nclamp (v, a, b: Single): Single; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end;
 function nclamp (v, a, b: Double): Double; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end;
-{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)}
+{$IFDEF FPC_HAS_TYPE_EXTENDED}
 function nclamp (v, a, b: Extended): Extended; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end;
 {$ENDIF}