diff --git a/dat/knox.des b/dat/knox.des index bf602c1ed..48cef7414 100644 --- a/dat/knox.des +++ b/dat/knox.des @@ -6,6 +6,8 @@ MAZE:"knox",' ' FLAGS: noteleport GEOMETRY:center,center +# Fort's entry is via a secret door rather than a drawbridge; +# the moat must be manually circumvented. MAP ---------------------------------------------------------------------------- | |........|...............................................................| @@ -37,11 +39,27 @@ TELEPORT_REGION:(06,16,09,17),(0,0,0,0),up TELEPORT_REGION:(06,16,09,17),(0,0,0,0),down # Throne room, with Croesus on the throne REGION:(37,08,46,11),lit,"throne" -MONSTER:('@',"Croesus"),(43,10),hostile +# 50% chance each to move throne and/or fort's entry secret door up one row +IF [50%] { + MONSTER:('@',"Croesus"),(43,10),hostile +} ELSE { + MONSTER:('@',"Croesus"),(43,09),hostile + TERRAIN:(43,09), '\' + TERRAIN:(43,10), '.' +} +IF [50%] { + TERRAIN:(47,09), 'S' + TERRAIN:(47,10), '|' +} # The Vault # Using unfilled morgue for # identification in mkmaze.c REGION:(21,08,35,11),lit,"morgue",unfilled +# Vault entrance also varies +IF [50%] { + TERRAIN:(36,09), '|' + TERRAIN:(36,10), 'S' +} # Corner towers REGION:(19,06,21,06),lit,"ordinary" REGION:(46,06,48,06),lit,"ordinary" diff --git a/doc/fixes36.1 b/doc/fixes36.1 index af6dc5210..d59419478 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -216,6 +216,8 @@ for menustyles traditional or combination, 'A' (or object ID) followed by i exploding chest trap would destroy uchain while still worn if uball carried if monster shapechange message " turns into !" was given, could be "it" (if sensed telepathically and is mindless) +automatic annotation for Ft.Ludios level got applied when a drawbridge became + mapped, but entry there is a secret door rather than a drawbridge post-3.6.0: fix "object lost" panic during pickup caused by sortloot revamp post-3.6.0: more sortloot revisions diff --git a/src/dungeon.c b/src/dungeon.c index 82610573a..0d2c93466 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -2465,6 +2465,9 @@ recalc_mapseen() /* An automatic annotation is added to the Castle and * to Fort Ludios once their structure's main entrance * has been seen (in person or via magic mapping). + * For the Fort, that entrance is just a secret door + * which will be converted into a regular one when + * located (or destroyed). * DOOR: possibly a lowered drawbridge's open portcullis; * DBWALL: a raised drawbridge's "closed door"; * DRAWBRIDGE_DOWN: the span provided by lowered bridge, @@ -2474,6 +2477,26 @@ recalc_mapseen() * the adjacent DBWALL has been seen. */ case DOOR: + if (Is_knox(&u.uz)) { + int ty, tx = x - 4; + + /* Throne is four columns left, either directly in + * line or one row higher or lower, and doesn't have + * to have been seen yet. + * ......|}}}. + * ..\...S}... + * ..\...S}... + * ......|}}}. + * For 3.6.0 and earlier, it was always in direct line: + * both throne and door on the lower of the two rows. + */ + for (ty = y - 1; ty <= y + 1; ++ty) + if (isok(tx, ty) && IS_THRONE(levl[tx][ty].typ)) { + mptr->flags.ludios = 1; + break; + } + break; + } if (is_drawbridge_wall(x, y) < 0) break; /* else FALLTHRU */ @@ -2481,8 +2504,6 @@ recalc_mapseen() case DRAWBRIDGE_DOWN: if (Is_stronghold(&u.uz)) mptr->flags.castle = 1, mptr->flags.castletune = 1; - else if (Is_knox(&u.uz)) - mptr->flags.ludios = 1; break; default: break;