X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fshared%2Fwadreader.pas;h=69d04394ceaeacd10c077c149852d82dd8a210a7;hb=bc39ceef968c6dabc91c4f4fb94411f52117e9f3;hp=8207f602fcac68605e3d9d58194b117ddb4cc65c;hpb=6d6df4e3427cd01e03e172984c9d0d391ff38032;p=d2df-sdl.git diff --git a/src/shared/wadreader.pas b/src/shared/wadreader.pas index 8207f60..69d0439 100644 --- a/src/shared/wadreader.pas +++ b/src/shared/wadreader.pas @@ -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 @@ -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;