candy bars are bright blue in text mode
towels weigh more than blindfolds
knight quest home level contains some saddled warhorses
+allow creating unhidden traps in special levels
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
=== trap
+Create a trap.
+
Example:
des.trap({ type = "hole", x = 1, y = 1 });
des.trap({ type = "hole", coord = {2, 2} });
+ des.trap({ type = "web", coord = {2, 2}, spider_on_web = false, seen = true });
des.trap("hole", 3, 4);
des.trap("level teleport", {5, 8});
des.trap("rust")
#define MKTRAP_NOFLAGS 0x0
#define MKTRAP_MAZEFLAG 0x1 /* trap placed on coords as if in maze */
#define MKTRAP_NOSPIDERONWEB 0x2 /* web will not generate a spider */
+#define MKTRAP_SEEN 0x4 /* trap is seen */
#define MON_POLE_DIST 5 /* How far monsters can use pole-weapons */
#define PET_MISSILE_RANGE2 36 /* Square of distance within which pets shoot */
packed_coord coord;
xchar x, y, type;
boolean spider_on_web;
+ boolean seen;
} spltrap;
typedef struct {
if (kind == WEB && !(mktrapflags & MKTRAP_NOSPIDERONWEB))
(void) makemon(&mons[PM_GIANT_SPIDER], m.x, m.y, NO_MM_FLAGS);
+ if ((mktrapflags & MKTRAP_SEEN))
+ t->tseen = TRUE;
/* The hero isn't the only person who's entered the dungeon in
search of treasure. On the very shallowest levels, there's a
if (!t->spider_on_web)
mktrap_flags |= MKTRAP_NOSPIDERONWEB;
+ if (t->seen)
+ mktrap_flags |= MKTRAP_SEEN;
tm.x = x;
tm.y = y;
get_table_xy_or_coord(L, &x, &y);
tmptrap.type = get_table_traptype_opt(L, "type", -1);
tmptrap.spider_on_web = get_table_boolean_opt(L, "spider_on_web", 1);
+ tmptrap.seen = get_table_boolean_opt(L, "seen", FALSE);
}
if (tmptrap.type == NO_TRAP)