diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2009-11-14 19:03:54 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2009-11-14 19:31:11 +1000 |
commit | 550af32eec0e42c1c8e3228221914934d20c3244 (patch) | |
tree | 92172d50f6bdf24a772d5d0374a5f0a257671309 /crawl-ref/source/l_dgn.cc | |
parent | a988600392e3046073b4dd8093f7772c19c128d1 (diff) | |
download | crawl-ref-550af32eec0e42c1c8e3228221914934d20c3244.tar.gz crawl-ref-550af32eec0e42c1c8e3228221914934d20c3244.zip |
Allow portal vaults to specify fill and border glyph.
Also move dungeon_feature_by_name into terrain.cc, as it does not make
sense it being in l_dgngrd.cc.
The Lua function "set_border_fill_type(feature)" will replace the
default DNGN_ROCK_WALL fill of a portal vault with the specified
feature. This could be abused, and should probably only be limited to
floor, water and sea, different types of walls, trees and lava; there
are no sanity checks for endless traps, statues, stairs, etc.
Finally, apply this to the island Trove, giving endless water effect.
Diffstat (limited to 'crawl-ref/source/l_dgn.cc')
-rw-r--r-- | crawl-ref/source/l_dgn.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crawl-ref/source/l_dgn.cc b/crawl-ref/source/l_dgn.cc index 86fee24781..39a12b9051 100644 --- a/crawl-ref/source/l_dgn.cc +++ b/crawl-ref/source/l_dgn.cc @@ -896,6 +896,21 @@ static int lua_dgn_set_lt_callback(lua_State *ls) return (0); } +static int lua_dgn_set_border_fill_type (lua_State *ls) +{ + MAP(ls, 1, map); + if (lua_gettop(ls) != 2) + luaL_error(ls, "set_border_fill_type requires a feature."); + + dungeon_feature_type fill_type = + dungeon_feature_by_name(luaL_checkstring(ls, 2)); + + if (fill_type != DNGN_UNSEEN) + map->border_fill_type = fill_type; + + return (0); +} + static int dgn_fixup_stairs(lua_State *ls) { const dungeon_feature_type up_feat = @@ -1612,6 +1627,7 @@ const struct luaL_reg dgn_dlib[] = { "change_floor_colour", dgn_change_floor_colour }, { "change_rock_colour", dgn_change_rock_colour }, { "set_lt_callback", lua_dgn_set_lt_callback }, +{ "set_border_fill_type", lua_dgn_set_border_fill_type }, { "fixup_stairs", dgn_fixup_stairs }, { "floor_halo", dgn_floor_halo }, { "random_walk", dgn_random_walk }, |