diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-12 12:08:13 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-12 12:27:53 +0100 |
commit | 7f502e207784d2c33ab38079dadfa298ab9fafc6 (patch) | |
tree | 64455ef722ff0a7179bd7c8b7b0bcfefd9a76a33 /crawl-ref/source/l_travel.cc | |
parent | d728a1cd0de075594762733936732d3d7f91f410 (diff) | |
download | crawl-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.cc | 54 |
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); +} |