Separate level flags for premapped and sokoban
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
des.map([[
|
||||
--------------------------
|
||||
|........................|
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
------------------------
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
--------------------
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
--------
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
----------- -----------
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
---- -----------
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
--## Bottom (first) level of Sokoban ###
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "hardfloor", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "hardfloor", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
------ -----
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
--
|
||||
des.level_init({ style = "solidfill", fg = " " });
|
||||
|
||||
des.level_flags("mazelevel", "noteleport", "hardfloor", "premapped", "solidify");
|
||||
des.level_flags("mazelevel", "noteleport", "hardfloor", "premapped", "sokoban", "solidify");
|
||||
|
||||
des.map([[
|
||||
-------- ------
|
||||
|
||||
@@ -1265,6 +1265,7 @@ if a temple was entered while blind, #overview could show a line of just "."
|
||||
were known
|
||||
rolling boulders ignored walls and trees
|
||||
shopkeepers consider the monster type when charging for tins, eggs and corpses
|
||||
separate level flags premapped and sokoban
|
||||
|
||||
|
||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||
|
||||
@@ -624,6 +624,7 @@ Set flags for this level.
|
||||
| icedpools | Ice generated with the level will be treated as frozen pools instead of frozen moats.
|
||||
| corrmaze |
|
||||
| premapped | Map, including traps and boulders, is revealed on entrance.
|
||||
| sokoban | Level has special Sokoban rules
|
||||
| solidify | Areas outside the specified level map are made undiggable and unphaseable.
|
||||
| inaccessibles | If inaccessible areas are generated, generate ways for them to connect to the "accessible" area.
|
||||
| noflip | Prevent flipping the level.
|
||||
|
||||
@@ -365,7 +365,7 @@ extern void find_trap(struct trap *);
|
||||
extern void warnreveal(void);
|
||||
extern int dosearch0(int);
|
||||
extern int dosearch(void);
|
||||
extern void sokoban_detect(void);
|
||||
extern void premap_detect(void);
|
||||
#ifdef DUMPLOG
|
||||
extern void dump_map(void);
|
||||
#endif
|
||||
|
||||
@@ -1973,9 +1973,9 @@ warnreveal(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* Pre-map the sokoban levels */
|
||||
/* Pre-map (the sokoban) levels */
|
||||
void
|
||||
sokoban_detect(void)
|
||||
premap_detect(void)
|
||||
{
|
||||
register coordxy x, y;
|
||||
register struct trap *ttmp;
|
||||
@@ -1997,9 +1997,6 @@ sokoban_detect(void)
|
||||
for (ttmp = gf.ftrap; ttmp; ttmp = ttmp->ntrap) {
|
||||
ttmp->tseen = 1;
|
||||
map_trap(ttmp, 1);
|
||||
/* set sokoban_rules when there is at least one pit or hole */
|
||||
if (ttmp->ttyp == PIT || ttmp->ttyp == HOLE)
|
||||
Sokoban = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
src/sp_lev.c
10
src/sp_lev.c
@@ -3714,6 +3714,8 @@ lspo_level_flags(lua_State *L)
|
||||
gc.coder->premapped = 1;
|
||||
else if (!strcmpi(s, "solidify"))
|
||||
gc.coder->solidify = 1;
|
||||
else if (!strcmpi(s, "sokoban"))
|
||||
Sokoban = 1; /* gl.level.flags.sokoban_rules */
|
||||
else if (!strcmpi(s, "inaccessibles"))
|
||||
gc.coder->check_inaccessibles = 1;
|
||||
else if (!strcmpi(s, "noflipx"))
|
||||
@@ -6612,12 +6614,12 @@ lspo_finalize_level(lua_State *L UNUSED)
|
||||
if (L && gc.coder->solidify)
|
||||
solidify_map();
|
||||
|
||||
/* This must be done before sokoban_detect(),
|
||||
/* This must be done before premap_detect(),
|
||||
* otherwise branch stairs won't be premapped. */
|
||||
fixup_special();
|
||||
|
||||
if (L && gc.coder->premapped)
|
||||
sokoban_detect();
|
||||
premap_detect();
|
||||
|
||||
level_finalize_topology();
|
||||
|
||||
@@ -7075,12 +7077,12 @@ load_special(const char *name)
|
||||
if (gc.coder->solidify)
|
||||
solidify_map();
|
||||
|
||||
/* This must be done before sokoban_detect(),
|
||||
/* This must be done before premap_detect(),
|
||||
* otherwise branch stairs won't be premapped. */
|
||||
fixup_special();
|
||||
|
||||
if (gc.coder->premapped)
|
||||
sokoban_detect();
|
||||
premap_detect();
|
||||
|
||||
result = TRUE;
|
||||
give_up:
|
||||
|
||||
Reference in New Issue
Block a user