X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_main.pas;h=7a9785b6964cd331222219282a1f9b4310d4605f;hb=76b68febf6f7d7a3f0a45e47b57606ac8f40a083;hp=050ee1fbea50d4e9dbc978a1f805cc21adbfd137;hpb=cf154570c3e691c4b95c021376c810020d689167;p=d2df-sdl.git diff --git a/src/game/g_main.pas b/src/game/g_main.pas index 050ee1f..7a9785b 100644 --- a/src/game/g_main.pas +++ b/src/game/g_main.pas @@ -44,6 +44,7 @@ var CacheDirs: SSArray; ConfigDirs: SSArray; ScreenshotDirs: SSArray; + StatsDirs: SSArray; MapDownloadDirs: SSArray; WadDownloadDirs: SSArray; @@ -139,7 +140,11 @@ procedure InitPath; function IsSep (ch: Char): Boolean; begin - result := (ch = '/') or (ch = '\') + {$IFDEF WINDOWS} + result := (ch = '/') or (ch = '\'); + {$ELSE} + result := (ch = '/'); + {$ENDIF} end; function OptimizePath (dir: AnsiString): AnsiString; @@ -341,6 +346,7 @@ begin 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')); @@ -388,6 +394,7 @@ begin 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]); @@ -407,6 +414,10 @@ begin {$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; @@ -432,6 +443,8 @@ begin e_InitWritelnDriver(); e_WriteLog('Doom 2D: Forever version ' + GAME_VERSION + ' proto ' + IntToStr(NET_PROTOCOL_VER), TMsgType.Notify); e_WriteLog('Build date: ' + GAME_BUILDDATE + ' ' + GAME_BUILDTIME, TMsgType.Notify); + e_WriteLog('Build hash: ' + g_GetBuildHash(), TMsgType.Notify); + e_WriteLog('Build by: ' + g_GetBuilderName(), TMsgType.Notify); e_LogWritefln('Force bin dir: %s', [forceBinDir], TMsgType.Notify); e_LogWritefln('BINARY PATH: [%s]', [binPath], TMsgType.Notify); @@ -447,6 +460,7 @@ begin PrintDirs('CacheDirs', CacheDirs); PrintDirs('ConfigDirs', ConfigDirs); PrintDirs('ScreenshotDirs', ScreenshotDirs); + PrintDirs('StatsDirs', StatsDirs); PrintDirs('MapDownloadDirs', MapDownloadDirs); PrintDirs('WadDownloadDirs', WadDownloadDirs); @@ -484,20 +498,15 @@ begin e_InitInput; sys_Init; + g_Options_SetDefault; + g_Options_SetDefaultVideo; s := CONFIG_FILENAME; if e_FindResource(ConfigDirs, s) = true then - begin - g_Options_Read(s) - end - else - begin - g_Options_SetDefault; - g_Options_SetDefaultVideo - end; - if sys_SetDisplayMode(gScreenWidth, gScreenHeight, gBPP, gFullScreen) = False then + g_Options_Read(s); + g_Console_SysInit; + if sys_SetDisplayMode(gRC_Width, gRC_Height, gBPP, gRC_FullScreen, gRC_Maximized) = False then raise Exception.Create('Failed to set videomode on startup.'); - g_Console_SysInit; e_WriteLog(gLanguage, TMsgType.Notify); g_Language_Set(gLanguage); @@ -566,6 +575,7 @@ begin if assigned(oglDeinitCB) then oglDeinitCB; {$ENDIF} + g_Console_WriteGameConfig; sys_Final; end;