photograph experience gains often counted only prior to first move

More details in https://github.com/NetHack/NetHack/issues/1430

track photographed monsters using a distinct bit

also adds a pair of new context fields to track the total number of monsters seen up close,
and the total number of monsters photographed.

So, if somebody wants to add unique end-of-game disclosure statements for tourists that relate to
those, the groundwork should be there.

NOTE: This increments EDITLEVEL, so existing save and bones files will become outdated.

Fixes #1430
This commit is contained in:
nhmall
2025-07-26 11:03:20 -04:00
parent 36dcb92288
commit f145cc02f4
6 changed files with 22 additions and 7 deletions

View File

@@ -135,6 +135,11 @@ struct achievement_tracking {
boolean minetn_reached; /* avoid redundant checking for town entry */
};
struct lifelists {
long total_seen_upclose; /* count of critters seen up close */
long total_photographed; /* count of critters photographed (tourists) */
};
struct context_info {
unsigned ident; /* social security number for each monster */
unsigned no_of_wizards; /* 0, 1 or 2 (wizard and his shadow) */
@@ -175,6 +180,7 @@ struct context_info {
struct tribute_info tribute;
struct novel_tracking novel;
struct achievement_tracking achieveo;
struct lifelists lifelist;
char jingle[5 + 1];
};

View File

@@ -1812,7 +1812,7 @@ extern void dealloc_mextra(struct monst *);
extern boolean usmellmon(struct permonst *);
extern void mimic_hit_msg(struct monst *, short);
extern void adj_erinys(unsigned);
extern void see_monster_closeup(struct monst *) NONNULLARG1;
extern void see_monster_closeup(struct monst *, boolean) NONNULLARG1;
extern void see_nearby_monsters(void);
extern void shieldeff_mon(struct monst *) NONNULLARG1;
extern void flash_mon(struct monst *) NONNULLARG1;

View File

@@ -670,6 +670,7 @@ struct mvitals {
uchar died;
uchar mvflags;
Bitfield(seen_close, 1);
Bitfield(photographed, 1);
};

View File

@@ -17,7 +17,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 128
#define EDITLEVEL 129
/*
* Development status possibilities.