]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_areastore.cpp
Clang-format: fix some header files and remove them from whitelist
[dragonfireclient.git] / src / script / lua_api / l_areastore.cpp
index 261baf6c942d3a5fa75882006c19ed91bf2237f5..09a5c78f98a544da184f071d3458b7684bd707f9 100644 (file)
@@ -111,6 +111,9 @@ int LuaAreaStore::l_get_area(lua_State *L)
        const Area *res;
 
        res = ast->getArea(id);
+       if (!res)
+               return 0;
+
        push_area(L, res, include_borders, include_data);
 
        return 1;
@@ -164,7 +167,7 @@ int LuaAreaStore::l_get_areas_in_area(lua_State *L)
        return 1;
 }
 
-// insert_area(edge1, edge2, data)
+// insert_area(edge1, edge2, data, id)
 int LuaAreaStore::l_insert_area(lua_State *L)
 {
        NO_MAP_LOCK_REQUIRED;
@@ -179,6 +182,9 @@ int LuaAreaStore::l_insert_area(lua_State *L)
 
        a.data = std::string(data, d_len);
 
+       if (lua_isnumber(L, 5))
+               a.id = lua_tonumber(L, 5);
+
        if (!ast->insertArea(&a))
                return 0;
 
@@ -257,7 +263,7 @@ int LuaAreaStore::l_to_file(lua_State *L)
        AreaStore *ast = o->as;
 
        const char *filename = luaL_checkstring(L, 2);
-       CHECK_SECURE_PATH_OPTIONAL(L, filename);
+       CHECK_SECURE_PATH(L, filename, true);
 
        std::ostringstream os(std::ios_base::binary);
        ast->serialize(os);
@@ -288,7 +294,7 @@ int LuaAreaStore::l_from_file(lua_State *L)
        LuaAreaStore *o = checkobject(L, 1);
 
        const char *filename = luaL_checkstring(L, 2);
-       CHECK_SECURE_PATH_OPTIONAL(L, filename);
+       CHECK_SECURE_PATH(L, filename, false);
 
        std::ifstream is(filename, std::ios::binary);
        return deserialization_helper(L, o->as, is);