X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=fs.c;fp=fs.c;h=34ed652524c4e788fb4850cc0e50ff989579c076;hb=16e9a106940bacd4f6f185d96ab6ee63c62bcfdf;hp=4c5d503170683fe921129a896f391f0ec6b9cfe3;hpb=1482926c39b83cd18851386229732ead26aef30a;p=xonotic%2Fdarkplaces.git diff --git a/fs.c b/fs.c index 4c5d5031..34ed6525 100644 --- a/fs.c +++ b/fs.c @@ -1790,51 +1790,6 @@ static void COM_InsertFlags(const char *buf) { sys.argc = i; } -/* -================ -FS_Init_SelfPack -================ -*/ -void FS_Init_SelfPack (void) -{ - char *buf; - - PK3_OpenLibrary (); - fs_mempool = Mem_AllocPool("file management", 0, NULL); - - // Load darkplaces.opt from the FS. - if (!COM_CheckParm("-noopt")) - { - buf = (char *) FS_SysLoadFile("darkplaces.opt", tempmempool, true, NULL); - if(buf) - { - COM_InsertFlags(buf); - Mem_Free(buf); - } - } - -#ifndef USE_RWOPS - // Provide the SelfPack. - if (!COM_CheckParm("-noselfpack") && sys.selffd >= 0) - { - fs_selfpack = FS_LoadPackPK3FromFD(sys.argv[0], sys.selffd, true); - if(fs_selfpack) - { - FS_AddSelfPack(); - if (!COM_CheckParm("-noopt")) - { - buf = (char *) FS_LoadFile("darkplaces.opt", tempmempool, true, NULL); - if(buf) - { - COM_InsertFlags(buf); - Mem_Free(buf); - } - } - } - } -#endif -} - static int FS_ChooseUserDir(userdirmode_t userdirmode, char *userdir, size_t userdirsize) { #if defined(__IPHONEOS__) @@ -2006,12 +1961,21 @@ static int FS_ChooseUserDir(userdirmode_t userdirmode, char *userdir, size_t use #endif } -/* -================ -FS_Init -================ -*/ -void FS_Init (void) +void FS_Init_Commands(void) +{ + Cvar_RegisterVariable (&scr_screenshot_name); + Cvar_RegisterVariable (&fs_empty_files_in_pack_mark_deletions); + Cvar_RegisterVariable (&cvar_fs_gamedir); + + Cmd_AddCommand(CMD_SHARED, "gamedir", FS_GameDir_f, "changes active gamedir list (can take multiple arguments), not including base directory (example usage: gamedir ctf)"); + Cmd_AddCommand(CMD_SHARED, "fs_rescan", FS_Rescan_f, "rescans filesystem for new pack archives and any other changes"); + Cmd_AddCommand(CMD_SHARED, "path", FS_Path_f, "print searchpath (game directories and archives)"); + Cmd_AddCommand(CMD_SHARED, "dir", FS_Dir_f, "list files in searchpath matching an * filename pattern, one per line"); + Cmd_AddCommand(CMD_SHARED, "ls", FS_Ls_f, "list files in searchpath matching an * filename pattern, multiple per line"); + Cmd_AddCommand(CMD_SHARED, "which", FS_Which_f, "accepts a file name as argument and reports where the file is taken from"); +} + +static void FS_Init_Dir (void) { const char *p; int i; @@ -2174,18 +2138,69 @@ void FS_Init (void) fs_mutex = Thread_CreateMutex(); } -void FS_Init_Commands(void) +/* +================ +FS_Init_SelfPack +================ +*/ +void FS_Init_SelfPack (void) { - Cvar_RegisterVariable (&scr_screenshot_name); - Cvar_RegisterVariable (&fs_empty_files_in_pack_mark_deletions); - Cvar_RegisterVariable (&cvar_fs_gamedir); + char *buf; - Cmd_AddCommand(CMD_SHARED, "gamedir", FS_GameDir_f, "changes active gamedir list (can take multiple arguments), not including base directory (example usage: gamedir ctf)"); - Cmd_AddCommand(CMD_SHARED, "fs_rescan", FS_Rescan_f, "rescans filesystem for new pack archives and any other changes"); - Cmd_AddCommand(CMD_SHARED, "path", FS_Path_f, "print searchpath (game directories and archives)"); - Cmd_AddCommand(CMD_SHARED, "dir", FS_Dir_f, "list files in searchpath matching an * filename pattern, one per line"); - Cmd_AddCommand(CMD_SHARED, "ls", FS_Ls_f, "list files in searchpath matching an * filename pattern, multiple per line"); - Cmd_AddCommand(CMD_SHARED, "which", FS_Which_f, "accepts a file name as argument and reports where the file is taken from"); + // Load darkplaces.opt from the FS. + if (!COM_CheckParm("-noopt")) + { + buf = (char *) FS_SysLoadFile("darkplaces.opt", tempmempool, true, NULL); + if(buf) + { + COM_InsertFlags(buf); + Mem_Free(buf); + } + } + +#ifndef USE_RWOPS + // Provide the SelfPack. + if (!COM_CheckParm("-noselfpack") && sys.selffd >= 0) + { + fs_selfpack = FS_LoadPackPK3FromFD(sys.argv[0], sys.selffd, true); + if(fs_selfpack) + { + FS_AddSelfPack(); + if (!COM_CheckParm("-noopt")) + { + buf = (char *) FS_LoadFile("darkplaces.opt", tempmempool, true, NULL); + if(buf) + { + COM_InsertFlags(buf); + Mem_Free(buf); + } + } + } + } +#endif +} + +/* +================ +FS_Init +================ +*/ + +void FS_Init(void) +{ + fs_mempool = Mem_AllocPool("file management", 0, NULL); + + FS_Init_Commands(); + + PK3_OpenLibrary (); + + // initialize the self-pack (must be before COM_InitGameType as it may add command line options) + FS_Init_SelfPack(); + + // detect gamemode from commandline options or executable name + COM_InitGameType(); + + FS_Init_Dir(); } /*