Lua: Allow setting debug_flags
This commit is contained in:
@@ -205,6 +205,7 @@ struct instance_flags {
|
|||||||
boolean vision_inited; /* true if vision is ready */
|
boolean vision_inited; /* true if vision is ready */
|
||||||
boolean sanity_check; /* run sanity checks */
|
boolean sanity_check; /* run sanity checks */
|
||||||
boolean debug_mongen; /* debug: prevent monster generation */
|
boolean debug_mongen; /* debug: prevent monster generation */
|
||||||
|
boolean debug_hunger; /* debug: prevent hunger */
|
||||||
boolean mon_polycontrol; /* debug: control monster polymorphs */
|
boolean mon_polycontrol; /* debug: control monster polymorphs */
|
||||||
boolean in_dumplog; /* doing the dumplog right now? */
|
boolean in_dumplog; /* doing the dumplog right now? */
|
||||||
boolean in_parse; /* is a command being parsed? */
|
boolean in_parse; /* is a command being parsed? */
|
||||||
|
|||||||
@@ -2842,7 +2842,7 @@ gethungry(void)
|
|||||||
{
|
{
|
||||||
int accessorytime;
|
int accessorytime;
|
||||||
|
|
||||||
if (u.uinvulnerable)
|
if (u.uinvulnerable || iflags.debug_hunger)
|
||||||
return; /* you don't feel hungrier */
|
return; /* you don't feel hungrier */
|
||||||
|
|
||||||
/* being polymorphed into a creature which doesn't eat prevents
|
/* being polymorphed into a creature which doesn't eat prevents
|
||||||
|
|||||||
32
src/nhlua.c
32
src/nhlua.c
@@ -21,7 +21,7 @@ static int nhl_dnum_name(lua_State *);
|
|||||||
static int nhl_stairways(lua_State *);
|
static int nhl_stairways(lua_State *);
|
||||||
static int nhl_pushkey(lua_State *);
|
static int nhl_pushkey(lua_State *);
|
||||||
static int nhl_doturn(lua_State *);
|
static int nhl_doturn(lua_State *);
|
||||||
static int nhl_monster_generation(lua_State *);
|
static int nhl_debug_flags(lua_State *);
|
||||||
static int nhl_test(lua_State *);
|
static int nhl_test(lua_State *);
|
||||||
static int nhl_getmap(lua_State *);
|
static int nhl_getmap(lua_State *);
|
||||||
static void nhl_add_table_entry_bool(lua_State *, const char *, boolean);
|
static void nhl_add_table_entry_bool(lua_State *, const char *, boolean);
|
||||||
@@ -973,17 +973,22 @@ nhl_doturn(lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable or enable monster generation. debugging use only. */
|
/* set debugging flags. debugging use only, of course. */
|
||||||
/* disabling also kills all monsters on current level. */
|
/* nh.debug_flags({ mongen = false, hunger = false }); */
|
||||||
/* local prevvalue = nh.monster_generation(false); */
|
|
||||||
static int
|
static int
|
||||||
nhl_monster_generation(lua_State *L)
|
nhl_debug_flags(lua_State *L)
|
||||||
{
|
{
|
||||||
int argc = lua_gettop(L);
|
int argc = lua_gettop(L);
|
||||||
boolean val = !iflags.debug_mongen; /* value in lua is negated */
|
int val;
|
||||||
|
|
||||||
if (argc == 1) {
|
int i;
|
||||||
iflags.debug_mongen = !lua_toboolean(L, 1);
|
|
||||||
|
lcheck_param_table(L);
|
||||||
|
|
||||||
|
/* disable monster generation */
|
||||||
|
val = get_table_boolean_opt(L, "mongen", -1);
|
||||||
|
if (val != -1) {
|
||||||
|
iflags.debug_mongen = !(boolean)val; /* value in lua is negated */
|
||||||
if (iflags.debug_mongen) {
|
if (iflags.debug_mongen) {
|
||||||
register struct monst *mtmp, *mtmp2;
|
register struct monst *mtmp, *mtmp2;
|
||||||
|
|
||||||
@@ -996,8 +1001,13 @@ nhl_monster_generation(lua_State *L)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lua_pushboolean(L, val);
|
/* prevent hunger */
|
||||||
return 1;
|
val = get_table_boolean_opt(L, "hunger", -1);
|
||||||
|
if (val != -1) {
|
||||||
|
iflags.debug_hunger = !(boolean)val; /* value in lua is negated */
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1034,7 +1044,7 @@ static const struct luaL_Reg nhl_functions[] = {
|
|||||||
{"stairways", nhl_stairways},
|
{"stairways", nhl_stairways},
|
||||||
{"pushkey", nhl_pushkey},
|
{"pushkey", nhl_pushkey},
|
||||||
{"doturn", nhl_doturn},
|
{"doturn", nhl_doturn},
|
||||||
{"monster_generation", nhl_monster_generation},
|
{"debug_flags", nhl_debug_flags},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ local POS = { x = 10, y = 05 };
|
|||||||
local number_pad = 0;
|
local number_pad = 0;
|
||||||
|
|
||||||
function initlev()
|
function initlev()
|
||||||
nh.monster_generation(false);
|
nh.debug_flags({mongen = false, hunger = false });
|
||||||
des.level_flags("noflip");
|
des.level_flags("noflip");
|
||||||
des.reset_level();
|
des.reset_level();
|
||||||
des.level_init({ style = "solidfill", fg = ".", lit = true });
|
des.level_init({ style = "solidfill", fg = ".", lit = true });
|
||||||
|
|||||||
Reference in New Issue
Block a user