index b83102bf611814015126b787f8cc968608541120..db73d456e9b4d5335cf715b022cd2f306fc10e66 100644 (file)
--- a/src/shared/wadreader.pas
+++ b/src/shared/wadreader.pas
-(* Copyright (C) DooM 2D:Forever Developers
+(* Copyright (C) Doom 2D: Forever Developers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
interface
uses
- mempool, sfs, xstreams, Classes;
+ Classes,
+ {$IFDEF USE_MEMPOOL}mempool,{$ENDIF}
+ sfs, xstreams, utils;
type
- SArray = array of ShortString;
-
- TWADFile = class(TPoolObject)
+ TWADFile = class{$IFDEF USE_MEMPOOL}(TPoolObject){$ENDIF}
private
fFileName: AnsiString; // empty: not opened
fIter: TSFSFileList;
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;
+ function GetMapResources (): SSArray;
// returns `nil` if file wasn't found
function openFileStream (name: AnsiString): TStream;
function g_ExtractFileName (resourceStr: AnsiString): AnsiString; // without path
function g_ExtractFilePathName (resourceStr: AnsiString): AnsiString;
-// return fixed AnsiString or empty AnsiString
-function findDiskWad (fname: AnsiString): AnsiString;
-
var
wadoptDebug: Boolean = false;
implementation
uses
- SysUtils, e_log, utils, MAPDEF, xdynrec;
-
-
-function findDiskWad (fname: AnsiString): AnsiString;
-begin
- result := '';
- if not findFileCI(fname) then
- begin
- //e_WriteLog(Format('findDiskWad: error looking for [%s]', [fname]), MSG_NOTIFY);
- if StrEquCI1251(ExtractFileExt(fname), '.wad') then
- begin
- fname := ChangeFileExt(fname, '.pk3');
- //e_WriteLog(Format(' looking for [%s]', [fname]), MSG_NOTIFY);
- if not findFileCI(fname) then
- begin
- fname := ChangeFileExt(fname, '.zip');
- //e_WriteLog(Format(' looking for [%s]', [fname]), MSG_NOTIFY);
- if not findFileCI(fname) then exit;
- end;
- end
- else
- begin
- exit;
- end;
- end;
- //e_WriteLog(Format('findDiskWad: FOUND [%s]', [fname]), MSG_NOTIFY);
- result := fname;
-end;
+ SysUtils, e_log, MAPDEF, xdynrec;
function normSlashes (s: AnsiString): AnsiString;
result := GetResourceEx(name, true, pData, Len, logError);
end;
-function TWADFile.GetMapResources (): SArray;
+function TWADFile.GetMapResources (): SSArray;
var
f, c: Integer;
fi: TSFSFileInfo;