Print current level annotation when restoring
Sometimes I annotate a level with a note like "watch out, chameleon below", which is useful to remind myself of some danger or thing to remember when returning to the level -- but if saving and restoring on the level itself there's no reminder of that annotation. If you restore on a level with an annotation, print it as part of the "welcome back" message.
This commit is contained in:
+1
-1
@@ -749,7 +749,7 @@ extern schar lev_by_name(const char *);
|
|||||||
extern boolean known_branch_stairs(stairway *);
|
extern boolean known_branch_stairs(stairway *);
|
||||||
extern char *stairs_description(stairway *, char *, boolean);
|
extern char *stairs_description(stairway *, char *, boolean);
|
||||||
extern schar print_dungeon(boolean, schar *, xint16 *);
|
extern schar print_dungeon(boolean, schar *, xint16 *);
|
||||||
extern char *get_annotation(d_level *);
|
extern void print_level_annotation(void);
|
||||||
extern int donamelevel(void);
|
extern int donamelevel(void);
|
||||||
extern void free_exclusions(void);
|
extern void free_exclusions(void);
|
||||||
extern void save_exclusions(NHFILE *);
|
extern void save_exclusions(NHFILE *);
|
||||||
|
|||||||
@@ -832,6 +832,8 @@ welcome(boolean new_game) /* false => restoring an old game */
|
|||||||
/* if restoring in Gehennom, give same hot/smoky message as when
|
/* if restoring in Gehennom, give same hot/smoky message as when
|
||||||
first entering it */
|
first entering it */
|
||||||
hellish_smoke_mesg();
|
hellish_smoke_mesg();
|
||||||
|
/* remind player of the level annotation, like in goto_level() */
|
||||||
|
print_level_annotation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1419,7 +1419,6 @@ goto_level(
|
|||||||
new = FALSE; /* made a new level? */
|
new = FALSE; /* made a new level? */
|
||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
char whynot[BUFSZ];
|
char whynot[BUFSZ];
|
||||||
char *annotation;
|
|
||||||
int dist = depth(newlevel) - depth(&u.uz);
|
int dist = depth(newlevel) - depth(&u.uz);
|
||||||
boolean do_fall_dmg = FALSE;
|
boolean do_fall_dmg = FALSE;
|
||||||
schar prev_temperature = gl.level.flags.temperature;
|
schar prev_temperature = gl.level.flags.temperature;
|
||||||
@@ -1881,9 +1880,7 @@ goto_level(
|
|||||||
save_currentstate();
|
save_currentstate();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((annotation = get_annotation(&u.uz)) != 0)
|
print_level_annotation();
|
||||||
You("remember this level as %s.", annotation);
|
|
||||||
|
|
||||||
/* give room entrance message, if any */
|
/* give room entrance message, if any */
|
||||||
check_special_room(FALSE);
|
check_special_room(FALSE);
|
||||||
/* deliver objects traveling with player */
|
/* deliver objects traveling with player */
|
||||||
|
|||||||
+12
-1
@@ -56,6 +56,7 @@ static void tport_menu(winid, char *, struct lchoice *, d_level *, boolean);
|
|||||||
static const char *br_string(int);
|
static const char *br_string(int);
|
||||||
static char chr_u_on_lvl(d_level *);
|
static char chr_u_on_lvl(d_level *);
|
||||||
static void print_branch(winid, int, int, int, boolean, struct lchoice *);
|
static void print_branch(winid, int, int, int, boolean, struct lchoice *);
|
||||||
|
static char *get_annotation(d_level *);
|
||||||
static void query_annotation(d_level *);
|
static void query_annotation(d_level *);
|
||||||
static mapseen *load_mapseen(NHFILE *);
|
static mapseen *load_mapseen(NHFILE *);
|
||||||
static void save_mapseen(NHFILE *, mapseen *);
|
static void save_mapseen(NHFILE *, mapseen *);
|
||||||
@@ -2603,7 +2604,7 @@ recbranch_mapseen(d_level *source, d_level *dest)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
static char *
|
||||||
get_annotation(d_level *lev)
|
get_annotation(d_level *lev)
|
||||||
{
|
{
|
||||||
mapseen *mptr;
|
mapseen *mptr;
|
||||||
@@ -2613,6 +2614,16 @@ get_annotation(d_level *lev)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* print the annotation for the current level, if it exists */
|
||||||
|
void
|
||||||
|
print_level_annotation(void)
|
||||||
|
{
|
||||||
|
const char *annotation;
|
||||||
|
|
||||||
|
if ((annotation = get_annotation(&u.uz)) != 0)
|
||||||
|
You("remember this level as %s.", annotation);
|
||||||
|
}
|
||||||
|
|
||||||
/* ask user to annotate level lev.
|
/* ask user to annotate level lev.
|
||||||
if lev is NULL, uses current level. */
|
if lev is NULL, uses current level. */
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user