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