summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Stevenson <everamzah@users.noreply.github.com>2016-09-09 11:47:13 -0400
committerZeno- <kde.psych@gmail.com>2016-09-10 01:47:13 +1000
commit403dada85a1e75859573a26ed54a72caa693da91 (patch)
treed14ba0313850dcf61446e8fa4c9a34ffc47ec73d
parentc0cd7aa351fc59a6f699c6f945673f02f02e8c32 (diff)
downloadminetest-403dada85a1e75859573a26ed54a72caa693da91.tar.gz
minetest-403dada85a1e75859573a26ed54a72caa693da91.tar.bz2
minetest-403dada85a1e75859573a26ed54a72caa693da91.zip
Return nil on empty get_area() (#4508)
-rw-r--r--doc/lua_api.txt1
-rw-r--r--src/script/lua_api/l_areastore.cpp3
2 files changed, 4 insertions, 0 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index da9ebb9f1..c4bc06695 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -2886,6 +2886,7 @@ chosen for you.
#### Methods
* `get_area(id, include_borders, include_data)`: returns the area with the id `id`.
(optional) Boolean values `include_borders` and `include_data` control what's copied.
+ Returns nil if specified area id does not exist.
* `get_areas_for_pos(pos, include_borders, include_data)`: returns all areas that contain
the position `pos`. (optional) Boolean values `include_borders` and `include_data` control
what's copied.
diff --git a/src/script/lua_api/l_areastore.cpp b/src/script/lua_api/l_areastore.cpp
index 20e7875c7..0912e2ab0 100644
--- a/src/script/lua_api/l_areastore.cpp
+++ b/src/script/lua_api/l_areastore.cpp
@@ -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;