DEADSOFTWARE

network/panel code cleanup
[d2df-sdl.git] / src / shared / wadreader.pas
index 3830af240f6f924519c5704f81f1dc9683ab0dc5..69d04394ceaeacd10c077c149852d82dd8a210a7 100644 (file)
@@ -28,7 +28,7 @@ uses
 type
   SArray = array of ShortString;
 
-  TWADFile = class(TObject)
+  TWADFile = class
   private
     fFileName: AnsiString; // empty: not opened
     fIter: TSFSFileList;
@@ -36,19 +36,19 @@ type
     function getIsOpen (): Boolean;
     function isMapResource (idx: Integer): Boolean;
 
-    function GetResourceEx (name: AnsiString; wantMap: Boolean; var pData: Pointer; var Len: Integer): Boolean;
+    function GetResourceEx (name: AnsiString; wantMap: Boolean; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
 
    public
-    constructor Create();
-    destructor Destroy(); override;
+    constructor Create ();
+    destructor Destroy (); override;
 
-    procedure FreeWAD();
+    procedure FreeWAD ();
 
     function ReadFile (FileName: AnsiString): Boolean;
     function ReadMemory (Data: Pointer; Len: LongWord): Boolean;
 
-    function GetResource (name: AnsiString; var pData: Pointer; var Len: Integer): Boolean;
-    function GetMapResource (name: AnsiString; var pData: Pointer; var Len: Integer): Boolean;
+    function GetResource (name: AnsiString; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
+    function GetMapResource (name: AnsiString; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
     function GetMapResources (): SArray;
 
     // returns `nil` if file wasn't found
@@ -76,7 +76,7 @@ var
 implementation
 
 uses
-  SysUtils, e_log, utils, MAPSTRUCT;
+  SysUtils, e_log, utils, MAPDEF;
 
 
 function findDiskWad (fname: AnsiString): AnsiString;
@@ -297,7 +297,7 @@ begin
 end;
 
 
-function TWADFile.GetResourceEx (name: AnsiString; wantMap: Boolean; var pData: Pointer; var Len: Integer): Boolean;
+function TWADFile.GetResourceEx (name: AnsiString; wantMap: Boolean; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
 var
   f, lastSlash: Integer;
   fi: TSFSFileInfo;
@@ -355,7 +355,7 @@ begin
       if fs = nil then
       begin
         if wantMap then continue;
-        e_WriteLog(Format('DFWAD: can''t open file [%s] in [%s]', [name, fFileName]), MSG_WARNING);
+        if logError then e_WriteLog(Format('DFWAD: can''t open file [%s] in [%s]', [name, fFileName]), MSG_WARNING);
         break;
       end;
       // if we want only maps, check if this is map
@@ -431,17 +431,17 @@ begin
       exit;
     end;
   end;
-  e_WriteLog(Format('DFWAD: file [%s] not found in [%s]', [name, fFileName]), MSG_WARNING);
+  if logError then e_WriteLog(Format('DFWAD: file [%s] not found in [%s]', [name, fFileName]), MSG_WARNING);
 end;
 
-function TWADFile.GetResource (name: AnsiString; var pData: Pointer; var Len: Integer): Boolean;
+function TWADFile.GetResource (name: AnsiString; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
 begin
-  result := GetResourceEx(name, false, pData, Len);
+  result := GetResourceEx(name, false, pData, Len, logError);
 end;
 
-function TWADFile.GetMapResource (name: AnsiString; var pData: Pointer; var Len: Integer): Boolean;
+function TWADFile.GetMapResource (name: AnsiString; var pData: Pointer; var Len: Integer; logError: Boolean=true): Boolean;
 begin
-  result := GetResourceEx(name, true, pData, Len);
+  result := GetResourceEx(name, true, pData, Len, logError);
 end;
 
 function TWADFile.GetMapResources (): SArray;