'struct former' -> 'struct ebones'

Some variants were already using a similar approach
using a struct called 'ebones', so adopt the same naming
so NetHack-3.7, hardfought, and some variants are using
the same name.

As before there are fields in the struct that are not
currently used by NetHack-3.7, but the intent is that
hardfought save and bones files can be loaded by
NetHack-3.7 without code modification, for debugging
bug reports.

This invalidates existing save and bones files.
This commit is contained in:
nhmall
2025-02-04 15:16:42 -05:00
parent b44a547153
commit c24786430f
13 changed files with 108 additions and 71 deletions

View File

@@ -248,6 +248,8 @@ extern void savebones(int, time_t, struct obj *);
extern int getbones(void);
extern boolean bones_include_name(const char *) NONNULLARG1;
extern void fix_ghostly_obj(struct obj *) NONNULLARG1;
extern void newebones(struct monst *) NONNULLARG1;
extern void free_ebones(struct monst *) NONNULLARG1;
/* ### botl.c ### */
@@ -1443,8 +1445,6 @@ extern void mkmonmoney(struct monst *, long) NONNULLARG1;
extern int bagotricks(struct obj *, boolean, int *);
extern boolean propagate(int, boolean, boolean);
extern void summon_furies(int);
extern void newformer(struct monst *) NONNULLARG1;
extern void free_former(struct monst *) NONNULLARG1;
/* ### mcastu.c ### */

View File

@@ -767,6 +767,7 @@ struct role_filter {
boolean roles[NUM_ROLES + 1];
short mask;
};
#define NUM_RACES (5)
enum saveformats {
invalid = 0,

View File

@@ -182,16 +182,20 @@ struct edog {
Bitfield(killed_by_u, 1); /* you attempted to kill him */
};
/* for saving the hero's rank in bones monster */
struct mon_former_rank {
int lev;
short mnum;
boolean female;
};
struct former_incarnation {
unsigned parentmid; /* make clobber-detection possible */
struct mon_former_rank rank; /* for bones' ghost rank in former life */
/***
** extension tracking a player's remnant monster (ghost, mummy etc.)
*/
struct ebones {
unsigned parentmid; /* make clobber-detection possible */
uchar role; /* index into roles[] */
uchar race; /* index into races[] */
align oldalign; /* character alignment */
uchar deathlevel; /* level when dying (m_lev may differ) */
schar luck; /* luck when dying */
short mnum; /* monster type */
Bitfield(female, 1); /* was female */
Bitfield(demigod, 1); /* had killed wiz or invoked */
Bitfield(crowned, 1); /* had been crowned */
};
/***
@@ -204,7 +208,7 @@ struct mextra {
struct eshk *eshk;
struct emin *emin;
struct edog *edog;
struct former_incarnation *former;
struct ebones *ebones;
int mcorpsenm; /* obj->corpsenm for mimic posing as statue or corpse,
* obj->spe (fruit index) for one posing as a slime mold,
* or an alignment mask for one posing as an altar */
@@ -216,7 +220,7 @@ struct mextra {
#define ESHK(mon) ((mon)->mextra->eshk)
#define EMIN(mon) ((mon)->mextra->emin)
#define EDOG(mon) ((mon)->mextra->edog)
#define FORMER(mon) ((mon)->mextra->former)
#define EBONES(mon) ((mon)->mextra->ebones)
#define MCORPSENM(mon) ((mon)->mextra->mcorpsenm)
#define has_mgivenname(mon) ((mon)->mextra && MGIVENNAME(mon))
@@ -225,7 +229,7 @@ struct mextra {
#define has_eshk(mon) ((mon)->mextra && ESHK(mon))
#define has_emin(mon) ((mon)->mextra && EMIN(mon))
#define has_edog(mon) ((mon)->mextra && EDOG(mon))
#define has_former(mon) ((mon)->mextra && FORMER(mon))
#define has_ebones(mon) ((mon)->mextra && EBONES(mon))
#define has_mcorpsenm(mon) ((mon)->mextra && MCORPSENM(mon) != NON_PM)
#endif /* MEXTRA_H */

View File

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