Skip to content

Commit

Permalink
CONFIGS: Execute default.cfg
Browse files Browse the repository at this point in the history
Resets defaults/binds as per client settings, then immediately
  executes default.cfg to allow mods to change.
id1/pak0.pak/default.cfg is deliberately ignored.
  • Loading branch information
meag committed Apr 18, 2020
1 parent 915e2cc commit 502c76d
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 5 deletions.
28 changes: 26 additions & 2 deletions config_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "config_manager.h"
#include "version.h"
#include "gl_model.h"
#include "vfs.h"

char *Key_KeynumToString (int keynum);

Expand Down Expand Up @@ -750,6 +751,23 @@ static void Config_PrintPreamble(FILE *f)

/************************************ MAIN FUCTIONS ************************************/

// Executes default.cfg as long as it isn't the one from pak0.pak
void Cfg_ExecuteDefaultConfig(void)
{
flocation_t loc;

if (FS_FLocateFile("default.cfg", FSLFRT_IFFOUND, &loc)) {
char pak0default[MAX_OSPATH];

strlcpy(pak0default, com_basedir, sizeof(pak0default));
strlcat(pak0default, "/id1/pak0.pak/default.cfg", sizeof(pak0default));

if (strcmp(pak0default, loc.rawname)) {
Cbuf_AddText("exec default.cfg\n");
}
}
}

static void ResetConfigs(qbool resetall, qbool read_legacy_configs)
{
vfsfile_t *v;
Expand All @@ -765,6 +783,7 @@ static void ResetConfigs(qbool resetall, qbool read_legacy_configs)
if (read_legacy_configs)
{
Cbuf_AddText ("cl_warncmd 0\n");
Cfg_ExecuteDefaultConfig();
if ((v = FS_OpenVFS("autoexec.cfg", "rb", FS_ANY))) {
Cbuf_AddText ("exec autoexec.cfg\n");
VFS_CLOSE(v);
Expand All @@ -778,10 +797,14 @@ void DumpConfig(char *name)
FILE *f;
char *outfile, *newlines = "\n";

if (cfg_use_home.integer) // homedir
if (cfg_use_home.integer) {
// homedir
outfile = va("%s/%s/%s", com_homedir, (strcmp(com_gamedirfile, "qw") == 0 || !cfg_use_gamedir.integer) ? "" : com_gamedirfile, name);
else // basedir
}
else {
// basedir
outfile = va("%s/%s/configs/%s", com_basedir, (strcmp(com_gamedirfile, "qw") == 0 || !cfg_use_gamedir.integer) ? "ezquake" : com_gamedirfile, name);
}

if (!(f = fopen (outfile, "w"))) {
FS_CreatePath(outfile);
Expand Down Expand Up @@ -1204,6 +1227,7 @@ void ConfigManager_Init(void)
Cmd_AddCommand("cfg_load", LoadConfig_f);
Cmd_AddCommand("cfg_reset", ResetConfigs_f);
Cmd_AddCommand("hud_export", DumpHUD_f);
Cmd_AddCommand("meagtest", Cfg_ExecuteDefaultConfig);
if (IsDeveloperMode()) {
Cmd_AddCommand("dev_dump_defaults", DumpVariablesDefaults_f);
}
Expand Down
5 changes: 2 additions & 3 deletions config_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
void ConfigManager_Init (void);
void Config_QuitSave(void);
void ResetBinds(void);
void Cfg_ExecuteDefaultConfig(void);

extern cvar_t cfg_save_unchanged, cfg_legacy_exec;

#define MAIN_GL_CONFIG_FILENAME "config.cfg"
#define MAIN_SW_CONFIG_FILENAME "configsw.cfg"
#define MAIN_CONFIG_FILENAME MAIN_GL_CONFIG_FILENAME
#define MAIN_CONFIG_FILENAME "config.cfg"

#endif
1 change: 1 addition & 0 deletions host.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,7 @@ void Host_Init (int argc, char **argv, int default_memsize)
Browser_Init2();
ConfigManager_Init();
ResetBinds();
Cfg_ExecuteDefaultConfig();

i = COM_FindParm("+cfg_load");

Expand Down

0 comments on commit 502c76d

Please sign in to comment.