diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-10-20 11:19:41 +0200 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-10-20 11:19:41 +0200 |
commit | e4018b3ebf7d7e14787a04420014acf581d69978 (patch) | |
tree | 743aeabfc897ac9eac50334aefdd55254173a2d9 /crawl-ref/source/l_debug.cc | |
parent | b00943ff50ceecafa35b13e6286f04b4e4e30070 (diff) | |
download | crawl-ref-e4018b3ebf7d7e14787a04420014acf581d69978.tar.gz crawl-ref-e4018b3ebf7d7e14787a04420014acf581d69978.zip |
Split debug lua bindings out to new library "debug".
Diffstat (limited to 'crawl-ref/source/l_debug.cc')
-rw-r--r-- | crawl-ref/source/l_debug.cc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/crawl-ref/source/l_debug.cc b/crawl-ref/source/l_debug.cc new file mode 100644 index 0000000000..4a52860822 --- /dev/null +++ b/crawl-ref/source/l_debug.cc @@ -0,0 +1,82 @@ +/* + * File: l_debug.cc + * Summary: Various debugging bindings. + */ + +#include "AppHdr.h" + +#include "dlua.h" +#include "l_libs.h" + +#include "chardump.h" +#include "dungeon.h" +#include "message.h" +#include "place.h" + +// WARNING: This is a very low-level call. +LUAFN(debug_goto_place) +{ + try + { + const level_id id = level_id::parse_level_id(luaL_checkstring(ls, 1)); + you.level_type = id.level_type; + if (id.level_type == LEVEL_DUNGEON) + { + you.where_are_you = static_cast<branch_type>(id.branch); + you.your_level = absdungeon_depth(id.branch, id.depth); + } + } + catch (const std::string &err) + { + luaL_error(ls, err.c_str()); + } + return (0); +} + +LUAFN(debug_flush_map_memory) +{ + dgn_flush_map_memory(); + init_level_connectivity(); + return (0); +} + +LUAFN(debug_generate_level) +{ + no_messages mx; + env.show.init(0); + env.map.init(map_cell()); +#ifdef USE_TILE + tile_init_default_flavour(); + tile_clear_flavour(); + TileNewLevel(true); +#endif + builder(you.your_level, you.level_type); + return (0); +} + +LUAFN(debug_dump_map) +{ + const int pos = lua_isuserdata(ls, 1) ? 2 : 1; + if (lua_isstring(ls, pos)) + dump_map(lua_tostring(ls, pos), true); + return (0); +} + +LUAFN(_debug_test_explore) +{ +#ifdef WIZARD + debug_test_explore(); +#endif + return (0); +} + +const struct luaL_reg debug_lib[] = +{ +{ "goto_place", debug_goto_place }, +{ "flush_map_memory", debug_flush_map_memory }, +{ "generate_level", debug_generate_level }, +{ "dump_map", debug_dump_map }, +{ "test_explore", _debug_test_explore }, + +{ NULL, NULL } +}; |