From 015113db6034e452ed292a92179d14447c4af7cc Mon Sep 17 00:00:00 2001
From: jsalmon3 <>
Date: Sat, 16 Oct 2004 17:28:15 +0000
Subject: [PATCH] Added CclSavePreferences

---
 doc/scripts/config.html  | 16 ++++++++++++++++
 doc/scripts/index.html   |  2 ++
 src/stratagus/script.cpp | 15 +++++++++++++++
 3 files changed, 33 insertions(+)

diff --git a/doc/scripts/config.html b/doc/scripts/config.html
index ed3e75bfb..e8c984adb 100644
--- a/doc/scripts/config.html
+++ b/doc/scripts/config.html
@@ -62,6 +62,7 @@
 <a href="#RevealMap">RevealMap</a>
 <a href="#RightButtonAttacks">RightButtonAttacks</a>
 <a href="#RightButtonMoves">RightButtonMoves</a>
+<a href="#SavePreferences">SavePreferences</a>
 <a href="#SetAllPlayersBuildingLimit">SetAllPlayersBuildingLimit</a>
 <a href="#SetAllPlayersUnitLimit">SetAllPlayersUnitLimit</a>
 <a href="#SetAllPlayersTotalUnitLimit">SetAllPlayersTotalUnitLimit</a>
@@ -549,6 +550,21 @@ If you prefer fighters are moving by right clicking empty space.
     RightButtonMoves()
 </pre>
 
+<a name="SavePreferences"></a>
+<h3>SavePreferences</h3>
+
+Save the user preferences
+
+<dl>
+  <dt><i>RETURNS</i></dt>
+  <dd>Nothing</dd>
+</dl>
+
+<h4>Example</h4>
+<pre>
+    SavePreferences()
+</pre>
+
 <a name="SetAllPlayersBuildingLimit"></a>
 <h3>SetAllPlayersBuildingLimit(limit)</h3>
 
diff --git a/doc/scripts/index.html b/doc/scripts/index.html
index ba4ddd11b..0f7813a5a 100644
--- a/doc/scripts/index.html
+++ b/doc/scripts/index.html
@@ -336,6 +336,8 @@
 <dd></dd>
 <dt><a href="savegame.html#SaveGame">SaveGame</a></dt>
 <dd></dd>
+<dt><a href="config.html#SavePreferences">SavePreferences</a></dt>
+<dd></dd>
 <dt><a href="mapsetup.html#SelectTileset">SelectTileset</a></dt>
 <dd></dd>
 <dt><a href="game.html#Selection">Selection</a></dt>
diff --git a/src/stratagus/script.cpp b/src/stratagus/script.cpp
index 66b54ef93..5fe118927 100644
--- a/src/stratagus/script.cpp
+++ b/src/stratagus/script.cpp
@@ -220,6 +220,20 @@ int LuaLoadFile(const char* file)
 	return status;
 }
 
+/**
+**	Save preferences
+**
+**  @param l  Lua state.
+*/
+static int CclSavePreferences(lua_State* l)
+{
+	if (lua_gettop(l) != 0) {
+		LuaError(l, "incorrect argument");
+	}
+	SavePreferences();
+	return 0;
+}
+
 /**
 **  FIXME: docu
 **
@@ -1092,6 +1106,7 @@ void InitCcl(void)
 	lua_register(Lua, "DefineDefaultResourceAmounts", CclDefineDefaultResourceAmounts);
 	lua_register(Lua, "NoRandomPlacementMultiplayer", CclNoRandomPlacementMultiplayer);
 
+	lua_register(Lua, "SavePreferences", CclSavePreferences);
 	lua_register(Lua, "Load", CclLoad);
 	lua_register(Lua, "SaveGame", CclSaveGame);