Fix lua reset_level

The lua des.reset_level() call did not reset the special level
coder, so some values were kept and couldn't be changed.
Adjust the movement tests for this change.
This commit is contained in:
Pasi Kallinen
2026-01-28 10:06:55 +02:00
parent 060c3de8eb
commit b34b7e08a4
2 changed files with 10 additions and 3 deletions

View File

@@ -5985,8 +5985,13 @@ lspo_reset_level(lua_State *L)
boolean wtower = In_W_tower(u.ux, u.uy, &u.uz); boolean wtower = In_W_tower(u.ux, u.uy, &u.uz);
iflags.lua_testing = TRUE; iflags.lua_testing = TRUE;
if (L) if (L) {
if (gc.coder) {
Free(gc.coder);
gc.coder = NULL;
}
create_des_coder(); create_des_coder();
}
makemap_prepost(TRUE, wtower); makemap_prepost(TRUE, wtower);
gi.in_mklev = TRUE; gi.in_mklev = TRUE;
oinit(); /* assign level dependent obj probabilities */ oinit(); /* assign level dependent obj probabilities */

View File

@@ -3,14 +3,14 @@
nh.parse_config("OPTIONS=number_pad:0"); nh.parse_config("OPTIONS=number_pad:0");
nh.parse_config("OPTIONS=runmode:teleport"); nh.parse_config("OPTIONS=runmode:teleport");
nh.parse_config("OPTIONS=!timed_delay");
local POS = { x = 10, y = 05 }; local POS = { x = 10, y = 05 };
local number_pad = 0; local number_pad = 0;
function initlev() function initlev()
nh.debug_flags({mongen = false, hunger = false, overwrite_stairs = true });
des.level_flags("noflip");
des.reset_level(); des.reset_level();
des.level_flags("noflip");
des.level_init({ style = "solidfill", fg = ".", lit = true }); des.level_init({ style = "solidfill", fg = ".", lit = true });
des.teleport_region({ region = {POS.x,POS.y,POS.x,POS.y}, region_islev = true, dir="both" }); des.teleport_region({ region = {POS.x,POS.y,POS.x,POS.y}, region_islev = true, dir="both" });
des.finalize_level(); des.finalize_level();
@@ -140,6 +140,7 @@ local basicmoves = {
}; };
nh.debug_flags({mongen = false, hunger = false, overwrite_stairs = true, disable_pline = true });
for k, v in pairs(basicmoves) do for k, v in pairs(basicmoves) do
initlev(); initlev();
@@ -179,3 +180,4 @@ for k, v in pairs(basicmoves) do
end end
initlev(); initlev();
nh.debug_flags({ disable_pline = false });