summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/l_travel.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-12 12:08:13 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-12 12:27:53 +0100
commit7f502e207784d2c33ab38079dadfa298ab9fafc6 (patch)
tree64455ef722ff0a7179bd7c8b7b0bcfefd9a76a33 /crawl-ref/source/l_travel.cc
parentd728a1cd0de075594762733936732d3d7f91f410 (diff)
downloadcrawl-ref-7f502e207784d2c33ab38079dadfa298ab9fafc6.tar.gz
crawl-ref-7f502e207784d2c33ab38079dadfa298ab9fafc6.zip
set_exclude/del_exclude lua bindings.
Diffstat (limited to 'crawl-ref/source/l_travel.cc')
-rw-r--r--crawl-ref/source/l_travel.cc54
1 files changed, 54 insertions, 0 deletions
diff --git a/crawl-ref/source/l_travel.cc b/crawl-ref/source/l_travel.cc
new file mode 100644
index 0000000000..8c32d65812
--- /dev/null
+++ b/crawl-ref/source/l_travel.cc
@@ -0,0 +1,54 @@
+/*
+ * File: l_travel.cc
+ * Summary: Travel and exclusions.
+ */
+
+#include "AppHdr.h"
+
+#include "l_libs.h"
+#include "l_defs.h"
+
+#include "cluautil.h"
+#include "coord.h"
+#include "exclude.h"
+#include "player.h"
+
+LUAFN(l_set_exclude)
+{
+ coord_def s;
+ s.x = luaL_checkint(ls, 1);
+ s.y = luaL_checkint(ls, 2);
+ const coord_def p = player2grid(s);
+ if (!in_bounds(p))
+ return (0);
+ int r = LOS_MAX_RADIUS;
+ if (lua_gettop(ls) > 2)
+ r = luaL_checkint(ls, 3);
+ set_exclude(p, r);
+ return (0);
+}
+
+LUAFN(l_del_exclude)
+{
+ coord_def s;
+ s.x = luaL_checkint(ls, 1);
+ s.y = luaL_checkint(ls, 2);
+ const coord_def p = player2grid(s);
+ if (!in_bounds(p))
+ return (0);
+ del_exclude(p);
+ return (0);
+}
+
+static const struct luaL_reg travel_lib[] =
+{
+ { "set_exclude", l_set_exclude },
+ { "del_exclude", l_del_exclude },
+
+ { NULL, NULL }
+};
+
+void cluaopen_travel(lua_State *ls)
+{
+ luaL_openlib(ls, "travel", travel_lib, 0);
+}