DEADSOFTWARE

game: try to guess binary directory, and use it as game dir, so the game can be run...
[d2df-sdl.git] / src / shared / utils.pas
index a3a650070a1ff1ef05791ee85676edd231259dd1..0ac5caa00f15004d8f7901fa99eadf36f966712c 100644 (file)
@@ -71,6 +71,9 @@ function getFilenameExt (const fn: AnsiString): AnsiString;
 function setFilenameExt (const fn, ext: AnsiString): AnsiString;
 function forceFilenameExt (const fn, ext: AnsiString): AnsiString;
 
+// rewrites slashes to '/'
+function fixSlashes (s: AnsiString): AnsiString;
+
 // strips out name from `fn`, leaving trailing slash
 function getFilenamePath (const fn: AnsiString): AnsiString;
 
@@ -333,6 +336,17 @@ begin
 end;
 
 
+// ////////////////////////////////////////////////////////////////////////// //
+// rewrites slashes to '/'
+function fixSlashes (s: AnsiString): AnsiString;
+var
+  f: Integer;
+begin
+  result := s;
+  for f := 1 to length(result) do if (result[f] = '\') then result[f] := '/';
+end;
+
+
 // ////////////////////////////////////////////////////////////////////////// //
 constructor TSimpleList.TEnumerator.Create (const aitems: TItemArr; acount: Integer);
 begin
@@ -885,7 +899,7 @@ end;
 function isWadPath (const fn: AnsiString): Boolean;
 var
   pos: Integer;
-  s: AnsiString;
+  s, wext: AnsiString;
 begin
   result := false;
   pos := 1;
@@ -897,10 +911,13 @@ begin
       if (pos-4 > 1) and (fn[pos-4] = '.') and ((fn[pos+1] = '\') or (fn[pos+1] = '/')) then
       begin
         s := Copy(fn, pos-4, 4);
-        if StrEquCI1251(s, '.wad') or StrEquCI1251(s, '.pk3') or StrEquCI1251(s, '.zip') or StrEquCI1251(s, '.dfz') then
+        for wext in wadExtensions do
         begin
-          result := true;
-          exit;
+          if strEquCI1251(s, wext) then
+          begin
+            result := true;
+            exit;
+          end;
         end;
       end;
     end;