DEADSOFTWARE

animated textures loader simplified alot
[d2df-sdl.git] / src / shared / wadreader.pas
index 1c5fb19e123bded268c49037fb551d2efac87d9f..7aeef80aeb1d3e9069814a1c883fd64094fe3286 100644 (file)
@@ -50,10 +50,15 @@ function g_ExtractFilePathName (resourceStr: AnsiString): AnsiString;
 function findDiskWad (fname: AnsiString): AnsiString;
 
 
+var
+  wadoptDebug: Boolean = false;
+  wadoptFast: Boolean = false;
+
+
 implementation
 
 uses
-  SysUtils, Classes, BinEditor, e_log, g_options, utils, MAPSTRUCT;
+  SysUtils, Classes{, BinEditor}, e_log{, g_options}, utils, MAPSTRUCT;
 
 
 function findDiskWad (fname: AnsiString): AnsiString;
@@ -135,7 +140,11 @@ begin
     if (lastSlash < 0) and (resourceStr[f] = '\') or (resourceStr[f] = '/') then lastSlash := f;
     if resourceStr[f] = ':' then
     begin
-      if lastSlash > 0 then result := normSlashes(Copy(resourceStr, f, lastSlash-f));
+      if lastSlash > 0 then
+      begin
+        result := normSlashes(Copy(resourceStr, f, lastSlash-f));
+        while (length(result) > 0) and (result[1] = '/') do Delete(result, 1, 1);
+      end;
       exit;
     end;
   end;
@@ -170,9 +179,12 @@ begin
     if resourceStr[f] = ':' then
     begin
       result := normSlashes(Copy(resourceStr, f+1, length(resourceStr)));
+      while (length(result) > 0) and (result[1] = '/') do Delete(result, 1, 1);
       exit;
     end;
   end;
+  result := normSlashes(resourceStr);
+  while (length(result) > 0) and (result[1] = '/') do Delete(result, 1, 1);
 end;
 
 
@@ -304,19 +316,21 @@ begin
       if wantMap then
       begin
         goodMap := false;
-        e_WriteLog(Format('DFWAD: checking for good map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
+        //e_WriteLog(Format('DFWAD: checking for good map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
         try
           fs.readBuffer(sign, 3);
           goodMap := (sign = MAP_SIGNATURE);
+          {
           if goodMap then
             e_WriteLog(Format('  GOOD map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY)
           else
             e_WriteLog(Format('  BAD map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
+          }
         except
         end;
         if not goodMap then
         begin
-          e_WriteLog(Format('  not a map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
+          //e_WriteLog(Format('  not a map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
           fs.Free();
           continue;
         end;
@@ -349,7 +363,7 @@ begin
         end;
         if not goodMap then
         begin
-          e_WriteLog(Format('  not a map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
+          //e_WriteLog(Format('  not a map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
           FreeMem(pData);
           pData := nil;
           Len := 0;
@@ -359,7 +373,7 @@ begin
 {$ENDIF}
       result := true;
       {$IFDEF SFS_DWFAD_DEBUG}
-      if gSFSDebug then
+      if wadoptDebug then
         e_WriteLog(Format('DFWAD: file [%s] FOUND in [%s]; size is %d bytes', [name, fFileName, Len]), MSG_NOTIFY);
       {$ENDIF}
       exit;
@@ -391,7 +405,7 @@ begin
     fi := fIter.Files[f];
     if fi = nil then continue;
     if length(fi.name) = 0 then continue;
-    e_WriteLog(Format('DFWAD: checking for map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
+    //e_WriteLog(Format('DFWAD: checking for map in wad [%s], file [%s] (#%d)', [fFileName, fi.fname, f]), MSG_NOTIFY);
     if isMapResource(f) then
     begin
       s := removeExt(fi.name);
@@ -427,11 +441,11 @@ begin
     exit;
   end;
   {$IFDEF SFS_DWFAD_DEBUG}
-  if gSFSDebug then e_WriteLog(Format('TWADFile.ReadFile: FOUND [%s]', [rfn]), MSG_NOTIFY);
+  if wadoptDebug then e_WriteLog(Format('TWADFile.ReadFile: FOUND [%s]', [rfn]), MSG_NOTIFY);
   {$ENDIF}
   // cache this wad
   try
-    if gSFSFastMode then
+    if wadoptFast then
     begin
       if not SFSAddDataFile(rfn, true) then exit;
     end
@@ -446,7 +460,7 @@ begin
   if fIter = nil then Exit;
   fFileName := rfn;
   {$IFDEF SFS_DWFAD_DEBUG}
-  if gSFSDebug then e_WriteLog(Format('TWADFile.ReadFile: [%s] opened', [fFileName]), MSG_NOTIFY);
+  if wadoptDebug then e_WriteLog(Format('TWADFile.ReadFile: [%s] opened', [fFileName]), MSG_NOTIFY);
   {$ENDIF}
   Result := True;
 end;