changeset 5507:59544a42d7e3 draft

(svn r7801) -Feature: add command line option to prevent saving of highscore and configuration on exit and a console command to manually initiate a configuration save (Aloysha).
author rubidium <rubidium@openttd.org>
date Wed, 03 Jan 2007 18:06:50 +0000
parents ca4a5a6d12d4
children d38fce16e0cb
files src/console_cmds.c src/openttd.c
diffstat 2 files changed, 23 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/console_cmds.c
+++ b/src/console_cmds.c
@@ -201,6 +201,19 @@
 	return false;
 }
 
+/* Explicitly save the configuration */
+DEF_CONSOLE_CMD(ConSaveConfig)
+{
+	if (argc == 0) {
+		IConsoleHelp("Saves the current config, typically to 'openttd.cfg'.");
+		return true;
+	}
+
+	SaveToConfig();
+	IConsolePrint(_icolour_def, "Saved config.");
+	return true;
+}
+
 static const FiosItem* GetFiosItem(const char* file)
 {
 	int i;
@@ -1475,6 +1488,7 @@
 	IConsoleCmdRegister("load",         ConLoad);
 	IConsoleCmdRegister("rm",           ConRemove);
 	IConsoleCmdRegister("save",         ConSave);
+	IConsoleCmdRegister("saveconfig",   ConSaveConfig);
 	IConsoleCmdRegister("ls",           ConListFiles);
 	IConsoleCmdRegister("cd",           ConChangeDirectory);
 	IConsoleCmdRegister("pwd",          ConPrintWorkingDirectory);
--- a/src/openttd.c
+++ b/src/openttd.c
@@ -165,6 +165,7 @@
 		"  -i                  = Force to use the DOS palette\n"
 		"                          (use this if you see a lot of pink)\n"
 		"  -c config_file      = Use 'config_file' instead of 'openttd.cfg'\n"
+		"  -x                  = Do not automatically save to config file on exit\n"
 		"\n",
 		lastof(buf)
 	);
@@ -333,6 +334,7 @@
 	uint generation_seed = GENERATE_NEW_SEED;
 	bool dedicated = false;
 	bool network   = false;
+	bool save_config = true;
 	char *network_conn = NULL;
 
 	musicdriver[0] = sounddriver[0] = videodriver[0] = 0;
@@ -347,7 +349,7 @@
 	//   a letter means: it accepts that param (e.g.: -h)
 	//   a ':' behind it means: it need a param (e.g.: -m<driver>)
 	//   a '::' behind it means: it can optional have a param (e.g.: -d<debug>)
-	optformat = "m:s:v:hDn::eit:d::r:g::G:c:"
+	optformat = "m:s:v:hDn::eit:d::r:g::G:c:x"
 #if !defined(__MORPHOS__) && !defined(__AMIGA__) && !defined(WIN32)
 		"f"
 #endif
@@ -390,6 +392,7 @@
 			break;
 		case 'G': generation_seed = atoi(mgo.opt); break;
 		case 'c': _config_file = strdup(mgo.opt); break;
+		case 'x': save_config = false; break;
 		case -2:
 		case 'h':
 			showhelp();
@@ -523,8 +526,11 @@
 	_music_driver->stop();
 	_sound_driver->stop();
 
-	SaveToConfig();
-	SaveToHighScore();
+	/* only save config if we have to */
+	if (save_config) {
+		SaveToConfig();
+		SaveToHighScore();
+	}
 
 	// uninitialize airport state machines
 	UnInitializeAirports();