attribute check timer (trunk only)

Move the counter for the next attribute check to the context
structure.

This increments patchlevel so previous save and bones
files are unuseable after applying.
This commit is contained in:
nethack.allison
2004-05-25 02:16:22 +00:00
parent 13abd42d6a
commit e54760e29d
6 changed files with 8 additions and 17 deletions

View File

@@ -75,6 +75,7 @@ struct context_info {
unsigned startingpet_mid;
int warnlevel;
int djinni_count, ghost_count; /* potion effect tuning */
long next_attrib_check; /* next attribute check */
long stethoscope_move;
short stethoscope_movement;
boolean travel; /* find way automatically to u.tx,u.ty */

View File

@@ -95,7 +95,6 @@ E void NDECL(set_moreluck);
E void NDECL(restore_attrib);
E void FDECL(exercise, (int,BOOLEAN_P));
E void NDECL(exerchk);
E void NDECL(reset_attribute_clock);
E void FDECL(init_attr, (int));
E void NDECL(redist_attr);
E void FDECL(adjabil, (int,int));

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)patchlevel.h 3.4 2004/01/10 */
/* SCCS Id: @(#)patchlevel.h 3.4 2004/05/24 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -13,7 +13,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 9
#define EDITLEVEL 10
#define COPYRIGHT_BANNER_A \
"NetHack, Copyright 1985-2004"

View File

@@ -489,6 +489,7 @@ newgame()
context.ident = 1;
context.stethoscope_move = -1L;
context.warnlevel = 1;
context.next_attrib_check = 600L; /* arbitrary first setting */
for (i = 0; i < NUMMONS; i++)
mvitals[i].mvflags = mons[i].geno & G_NOCORPSE;

View File

@@ -95,7 +95,6 @@ const struct innate {
orc_abil[] = { { 1, &(HPoison_resistance), "", "" },
{ 0, 0, 0, 0 } };
static long next_check = 600L; /* arbitrary first setting */
STATIC_DCL void NDECL(exerper);
STATIC_DCL void FDECL(postadjabil, (long *));
@@ -449,11 +448,11 @@ exerchk()
exerper();
#ifdef DEBUG
if(moves >= next_check)
if(moves >= context.next_attrib_check)
pline("exerchk: ready to test. multi = %d.", multi);
#endif
/* Are we ready for a test? */
if(moves >= next_check && !multi) {
if(moves >= context.next_attrib_check && !multi) {
#ifdef DEBUG
pline("exerchk: testing.");
#endif
@@ -515,21 +514,13 @@ exerchk()
}
}
}
next_check += rn1(200,800);
context.next_attrib_check += rn1(200,800);
#ifdef DEBUG
pline("exerchk: next check at %ld.", next_check);
pline("exerchk: next check at %ld.", context.next_attrib_check);
#endif
}
}
/* next_check will otherwise have its initial 600L after a game restore */
void
reset_attribute_clock()
{
if (moves > 600L) next_check = moves + rn1(50,800);
}
void
init_attr(np)
register int np;

View File

@@ -678,7 +678,6 @@ register int fd;
inven_inuse(FALSE);
load_qtlist(); /* re-load the quest text info */
reset_attribute_clock();
/* Set up the vision internals, after levl[] data is loaded */
/* but before docrt(). */
vision_reset();