My recent commit broke medusa-3 and medusa-4, so fix those.
Make des.stair and des.ladder also accept hash-coordinate:
des.stair("up", {8, 10});
place:set(66,05);
place:set(46,15);
+local medloc = place:rndcoord(1);
+
des.region(selection.area(00,00,74,19),"lit")
-- fixup_special hack: the first room defined on a Medusa level gets some
-- leaderboard statues, use arrival_room to force it to be a room even though
des.teleport_region({ region = {33,02,38,07}, dir="down" })
des.levregion({ region = {32,01,39,07}, type="stair-up" });
-des.stair("down", place:rndcoord(1))
+des.stair("down", medloc);
des.door("locked",08,08)
des.door("locked",64,05)
des.door("random",50,13)
des.trap("board")
des.trap()
--
-des.monster({ id = "Medusa", x=mx, y=my, asleep=1 })
+des.monster({ id = "Medusa", coord=medloc, asleep=1 })
des.monster("giant eel")
des.monster("giant eel")
des.monster("jellyfish")
des.trap()
end
--
-des.monster("Medusa", mx, my)
+des.monster("Medusa", place:rndcoord(1))
des.monster("kraken", 07,07)
--
-- the nesting dragon
des.ladder("down");
des.ladder("up", 6,10);
+ des.ladder("up", {6,10});
des.ladder({ x=11, y=05, dir="down" });
des.ladder({ coord={11, 05}, dir="down" });
des.stair({ dir = "down", x = 4, y = 7 });
des.stair({ dir = "down", coord = {5,12} });
des.stair("down", 4, 7);
+ des.stair("down", {4, 7});
=== teleport_region
struct trap *badtrap;
long scoord;
- lua_Integer ax = -1, ay = -1;
- int up;
+ int up = 0; /* default is down */
int ltype = lua_type(L, 1);
create_des_coder();
- if (argc == 1 && ltype == LUA_TSTRING) {
- up = stairdirs2i[luaL_checkoption(L, 1, "down", stairdirs)];
- } else if (argc == 3 && ltype == LUA_TSTRING) {
- up = stairdirs2i[luaL_checkoption(L, 1, "down", stairdirs)];
- ax = luaL_checkinteger(L, 2);
- ay = luaL_checkinteger(L, 3);
- } else {
+ if (argc == 1 && ltype == LUA_TTABLE) {
+ lua_Integer ax = -1, ay = -1;
lcheck_param_table(L);
get_table_xy_or_coord(L, &ax, &ay);
up = stairdirs2i[get_table_option(L, "dir", "down", stairdirs)];
+ x = ax;
+ y = ay;
+ } else {
+ int ix = -1, iy = -1;
+ if (argc > 0 && ltype == LUA_TSTRING) {
+ up = stairdirs2i[luaL_checkoption(L, 1, "down", stairdirs)];
+ lua_remove(L, 1);
+ }
+ nhl_get_xy_params(L, &ix, &iy);
+ x = ix;
+ y = iy;
}
- x = ax;
- y = ay;
-
if (x == -1 && y == -1) {
set_ok_location_func(good_stair_loc);
scoord = SP_COORD_PACK_RANDOM(0);
des.reset_level();
des.level_init();
+ des.stair();
des.stair("up");
des.stair("down", 4, 7);
+ des.stair("down", {7, 7});
des.stair({ dir = "down", x = 5, y = 7 });
des.stair({ dir = "down", coord = {6, 7} });
end
des.reset_level();
des.level_init();
+ des.ladder();
des.ladder("up");
des.ladder("down", 4, 7);
+ des.ladder("down", {7, 7});
des.ladder({ dir = "down", x = 5, y = 7 });
des.ladder({ dir = "down", coord = {6, 7} });
end