]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_settings.h
Code modernization: subfolders (#6283)
[dragonfireclient.git] / src / script / lua_api / l_settings.h
index cb0c09a734a9eb3122dd81989a652c90c53aa2ed..500917f0a79c305321399ebe48d8d75228a5c991 100644 (file)
@@ -17,57 +17,62 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef L_SETTINGS_H_
-#define L_SETTINGS_H_
+#pragma once
 
 #include "lua_api/l_base.h"
 
 class Settings;
 
-class LuaSettings : public ModApiBase {
+class LuaSettings : public ModApiBase
+{
 private:
        static const char className[];
-       static const luaL_reg methods[];
+       static const luaL_Reg methods[];
 
        // garbage collector
-       static int gc_object(lua_StateL);
+       static int gc_object(lua_State *L);
 
        // get(self, key) -> value
-       static int l_get(lua_StateL);
+       static int l_get(lua_State *L);
 
        // get_bool(self, key) -> boolean
-       static int l_get_bool(lua_StateL);
+       static int l_get_bool(lua_State *L);
 
        // set(self, key, value)
-       static int l_set(lua_State* L);
+       static int l_set(lua_State *L);
+
+       // set_bool(self, key, value)
+       static int l_set_bool(lua_State *L);
 
        // remove(self, key) -> success
-       static int l_remove(lua_StateL);
+       static int l_remove(lua_State *L);
 
        // get_names(self) -> {key1, ...}
-       static int l_get_names(lua_StateL);
+       static int l_get_names(lua_State *L);
 
        // write(self) -> success
-       static int l_write(lua_StateL);
+       static int l_write(lua_State *L);
 
        // to_table(self) -> {[key1]=value1,...}
-       static int l_to_table(lua_StateL);
+       static int l_to_table(lua_State *L);
 
-       Settings* m_settings;
+       Settings *m_settings = nullptr;
        std::string m_filename;
+       bool m_is_own_settings = false;
+       bool m_write_allowed = true;
 
 public:
-       LuaSettings(const char* filename);
+       LuaSettings(Settings *settings, const std::string &filename);
+       LuaSettings(const std::string &filename, bool write_allowed);
        ~LuaSettings();
 
-       // LuaSettings(filename)
-       // Creates an LuaSettings and leaves it on top of stack
-       static int create_object(lua_State* L);
+       static void create(lua_State *L, Settings *settings, const std::string &filename);
 
-       static LuaSettings* checkobject(lua_State* L, int narg);
+       // LuaSettings(filename)
+       // Creates a LuaSettings and leaves it on top of the stack
+       static int create_object(lua_State *L);
 
-       static void Register(lua_State* L);
+       static LuaSettings *checkobject(lua_State *L, int narg);
 
+       static void Register(lua_State *L);
 };
-
-#endif