new context_info struct in compat checks (trunk only)

Add the context_info struct to the version compatibility checks.
This increments EDITLEVEL rendering prior save/bones files useless.
This commit is contained in:
nethack.allison
2004-02-02 01:30:31 +00:00
parent 1e8c99bcc0
commit 42f202f4c0
6 changed files with 24 additions and 12 deletions

View File

@@ -301,7 +301,8 @@ struct version_info {
unsigned long incarnation; /* actual version number */
unsigned long feature_set; /* bitmask of config settings */
unsigned long entity_count; /* # of monsters and objects */
unsigned long struct_sizes; /* size of key structs */
unsigned long struct_sizes1; /* size of key structs */
unsigned long struct_sizes2; /* size of more key structs */
};

View File

@@ -13,7 +13,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 8
#define EDITLEVEL 9
#define COPYRIGHT_BANNER_A \
"NetHack, Copyright 1985-2004"

View File

@@ -89,7 +89,8 @@ boolean complain;
(VERSION_FEATURES & ~IGNORED_FEATURES) ||
#endif
version_data->entity_count != VERSION_SANITY1 ||
version_data->struct_sizes != VERSION_SANITY2) {
version_data->struct_sizes1 != VERSION_SANITY2 ||
version_data->struct_sizes2 != VERSION_SANITY3) {
if (complain)
pline("Configuration incompatibility for file \"%s\".",
filename);
@@ -131,7 +132,7 @@ int fd;
{
const static struct version_info version_data = {
VERSION_NUMBER, VERSION_FEATURES,
VERSION_SANITY1, VERSION_SANITY2
VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3
};
bufoff(fd);

View File

@@ -544,7 +544,7 @@ output_dgn()
cb = 0, nb = 0;
static struct version_info version_data = {
VERSION_NUMBER, VERSION_FEATURES,
VERSION_SANITY1, VERSION_SANITY2
VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3
};
if(++n_dgns <= 0) {

View File

@@ -643,7 +643,7 @@ output_dgn()
cb = 0, nb = 0;
static struct version_info version_data = {
VERSION_NUMBER, VERSION_FEATURES,
VERSION_SANITY1, VERSION_SANITY2
VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3
};
if(++n_dgns <= 0) {

View File

@@ -16,6 +16,7 @@
#include "obj.h"
#include "monst.h"
#include "you.h"
#include "context.h"
#include "flag.h"
#include "dlb.h"
@@ -49,7 +50,7 @@
#endif
#if defined(UNIX) && !defined(LINT) && !defined(GCC_WARN)
static const char SCCS_Id[] = "@(#)makedefs.c\t3.4\t2002/02/03";
static const char SCCS_Id[] = "@(#)makedefs.c\t3.5\t2004/02/01";
#endif
/* names of files to be generated */
@@ -498,10 +499,17 @@ make_version()
/*
* Value used for compiler (word size/field alignment/padding) check.
*/
version.struct_sizes = (((unsigned long)sizeof (struct flag) << 24) |
version.struct_sizes1 = (((unsigned long)sizeof (struct context_info) << 24) |
((unsigned long)sizeof (struct obj) << 17) |
((unsigned long)sizeof (struct monst) << 10) |
((unsigned long)sizeof (struct you)));
version.struct_sizes2 = (((unsigned long)sizeof (struct flag) << 10) |
/* free bits in here */
#ifdef SYSFLAGS
((unsigned long)sizeof (struct sysflag)));
#else
((unsigned long)0L));
#endif
return;
}
@@ -553,7 +561,7 @@ do_date()
perror(filename);
exit(EXIT_FAILURE);
}
Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.4\t2002/02/03 */\n\n");
Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.5\t2004/02/01 */\n\n");
Fprintf(ofp,Dont_Edit_Code);
#ifdef KR1ED
@@ -584,7 +592,9 @@ do_date()
Fprintf(ofp,"#define VERSION_SANITY1 0x%08lx%s\n",
version.entity_count, ul_sfx);
Fprintf(ofp,"#define VERSION_SANITY2 0x%08lx%s\n",
version.struct_sizes, ul_sfx);
version.struct_sizes1, ul_sfx);
Fprintf(ofp,"#define VERSION_SANITY3 0x%08lx%s\n",
version.struct_sizes2, ul_sfx);
Fprintf(ofp,"\n");
Fprintf(ofp,"#define VERSION_STRING \"%s\"\n", version_string(buf));
Fprintf(ofp,"#define VERSION_ID \\\n \"%s\"\n",
@@ -1391,7 +1401,7 @@ do_permonst()
perror(filename);
exit(EXIT_FAILURE);
}
Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.4\t2002/02/03 */\n\n");
Fprintf(ofp,"/*\tSCCS Id: @(#)pm.h\t3.5\t2004/02/01 */\n\n");
Fprintf(ofp,Dont_Edit_Code);
Fprintf(ofp,"#ifndef PM_H\n#define PM_H\n");
@@ -1707,7 +1717,7 @@ do_objs()
perror(filename);
exit(EXIT_FAILURE);
}
Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.4\t2002/02/03 */\n\n");
Fprintf(ofp,"/*\tSCCS Id: @(#)onames.h\t3.5\t2004/02/01 */\n\n");
Fprintf(ofp,Dont_Edit_Code);
Fprintf(ofp,"#ifndef ONAMES_H\n#define ONAMES_H\n\n");