diff --git a/src/game/g_main.pas b/src/game/g_main.pas
index c290df5e6b2176f743ae93748f919b73bd14add9..6e393b262f29152ce225cb4698b108970389a58f 100644 (file)
--- a/src/game/g_main.pas
+++ b/src/game/g_main.pas
CacheDirs: SSArray;
ConfigDirs: SSArray;
ScreenshotDirs: SSArray;
CacheDirs: SSArray;
ConfigDirs: SSArray;
ScreenshotDirs: SSArray;
+ StatsDirs: SSArray;
MapDownloadDirs: SSArray;
WadDownloadDirs: SSArray;
MapDownloadDirs: SSArray;
WadDownloadDirs: SSArray;
+ GameWADName: string = 'GAME';
+
implementation
uses
implementation
uses
AddDir(MapDownloadDirs, e_CatPath(rwdir, 'maps/downloads'));
AddDir(WadDownloadDirs, e_CatPath(rwdir, 'wads/downloads'));
AddDir(ScreenshotDirs, e_CatPath(rwdir, 'screenshots'));
AddDir(MapDownloadDirs, e_CatPath(rwdir, 'maps/downloads'));
AddDir(WadDownloadDirs, e_CatPath(rwdir, 'wads/downloads'));
AddDir(ScreenshotDirs, e_CatPath(rwdir, 'screenshots'));
+ AddDir(StatsDirs, e_CatPath(rwdir, 'stats'));
(* RO *)
AddDir(DataDirs, e_CatPath(rwdir, 'data'));
AddDir(ModelDirs, e_CatPath(rwdir, 'data/models'));
(* RO *)
AddDir(DataDirs, e_CatPath(rwdir, 'data'));
AddDir(ModelDirs, e_CatPath(rwdir, 'data/models'));
AddDir(MapDirs, e_CatPath(rodir, 'maps'));
AddDir(WadDirs, e_CatPath(rodir, 'wads'));
end;
AddDir(MapDirs, e_CatPath(rodir, 'maps'));
AddDir(WadDirs, e_CatPath(rodir, 'wads'));
end;
+ '--game-wad':
+ begin
+ Inc(i);
+ GameWADName := ParamStr(i);
+ end;
end;
Inc(i)
end;
end;
Inc(i)
end;
// prefer bin dir if it writable and contains game.wad
if forceBinDir = false then
begin
// prefer bin dir if it writable and contains game.wad
if forceBinDir = false then
begin
- if findDiskWad(binPath + 'data' + '/' + 'GAME') <> '' then
+ if findDiskWad(binPath + 'data' + '/' + GameWADName) <> '' then
if e_CanCreateFilesAt(binPath) then
forceBinDir := true
end;
if e_CanCreateFilesAt(binPath) then
forceBinDir := true
end;
AddDef(MapDownloadDirs, rwdirs, 'maps/downloads');
AddDef(WadDownloadDirs, rwdirs, 'wads/downloads');
AddDef(ScreenshotDirs, rwdirs, 'screenshots');
AddDef(MapDownloadDirs, rwdirs, 'maps/downloads');
AddDef(WadDownloadDirs, rwdirs, 'wads/downloads');
AddDef(ScreenshotDirs, rwdirs, 'screenshots');
+ AddDef(StatsDirs, rwdirs, 'stats');
for i := 0 to High(MapDirs) do
AddDir(AllMapDirs, MapDirs[i]);
for i := 0 to High(MapDirs) do
AddDir(AllMapDirs, MapDirs[i]);
{$ENDIF}
end
end;
{$ENDIF}
end
end;
+
+ // HACK: ensure the screenshots folder also has a stats subfolder in it
+ rwdir := e_GetWriteableDir(ScreenshotDirs, false);
+ if rwdir <> '' then CreateDir(rwdir + '/stats');
end;
procedure InitPrep;
end;
procedure InitPrep;
PrintDirs('CacheDirs', CacheDirs);
PrintDirs('ConfigDirs', ConfigDirs);
PrintDirs('ScreenshotDirs', ScreenshotDirs);
PrintDirs('CacheDirs', CacheDirs);
PrintDirs('ConfigDirs', ConfigDirs);
PrintDirs('ScreenshotDirs', ScreenshotDirs);
+ PrintDirs('StatsDirs', StatsDirs);
PrintDirs('MapDownloadDirs', MapDownloadDirs);
PrintDirs('WadDownloadDirs', WadDownloadDirs);
PrintDirs('MapDownloadDirs', MapDownloadDirs);
PrintDirs('WadDownloadDirs', WadDownloadDirs);
- GameWAD := e_FindWad(DataDirs, 'GAME');
+ GameWAD := e_FindWad(DataDirs, GameWADName);
if GameWad = '' then
begin
if GameWad = '' then
begin
- e_WriteLog('GAME.WAD not installed?', TMsgType.Fatal);
+ e_WriteLog('WAD ' + GameWADName + ' not found in data directories.', TMsgType.Fatal);
{$IF DEFINED(USE_SDL2) AND NOT DEFINED(HEADLESS)}
if forceBinDir = false then
{$IF DEFINED(USE_SDL2) AND NOT DEFINED(HEADLESS)}
if forceBinDir = false then
- SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, 'Doom 2D Forever', 'GAME.WAD not installed?', nil);
+ SDL_ShowSimpleMessageBox(
+ SDL_MESSAGEBOX_ERROR,
+ 'Doom 2D Forever',
+ PChar('WAD ' + GameWADName + ' not found in data directories.'),
+ nil
+ );
{$ENDIF}
e_DeinitLog;
Halt(1);
{$ENDIF}
e_DeinitLog;
Halt(1);