-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.278 $ $NHDT-Date: 1553217908 2019/03/22 01:25:08 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.279 $ $NHDT-Date: 1553296396 2019/03/22 23:13:16 $
This fixes36.2 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.1 in April 2018. Please note, however,
yielding "thump" result with no movement despite being a light item
status lines' dungeon location field in the elemental planes now shows Earth
or Air or Fire or Water instead of generic End Game
+avoid spurious status refresh when hero gains experience while 'showexp' and
+ 'showscore' options are off
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 exper.c $NHDT-Date: 1544917599 2018/12/15 23:46:39 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.31 $ */
+/* NetHack 3.6 exper.c $NHDT-Date: 1553296396 2019/03/22 23:13:16 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.32 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2007. */
/* NetHack may be freely redistributed. See license for details. */
more_experienced(exper, rexp)
register int exper, rexp;
{
- long newexp = u.uexp + exper;
- long rexpincr = 4 * exper + rexp;
- long newrexp = u.urexp + rexpincr;
+ long oldexp = u.uexp,
+ oldrexp = u.urexp,
+ newexp = oldexp + exper,
+ rexpincr = 4 * exper + rexp,
+ newrexp = oldrexp + rexpincr;
/* cap experience and score on wraparound */
if (newexp < 0 && exper > 0)
newexp = LONG_MAX;
if (newrexp < 0 && rexpincr > 0)
newrexp = LONG_MAX;
- u.uexp = newexp;
- u.urexp = newrexp;
- if (exper
+ if (newexp != oldexp) {
+ u.uexp = newexp;
+ if (flags.showexp)
+ context.botl = TRUE;
+ }
+ /* newrexp will always differ from oldrexp unless they're LONG_MAX */
+ if (newrexp != oldrexp) {
+ u.urexp = newrexp;
#ifdef SCORE_ON_BOTL
- || flags.showscore
+ if (flags.showscore)
+ context.botl = TRUE;
#endif
- )
- context.botl = 1;
+ }
if (u.urexp >= (Role_if(PM_WIZARD) ? 1000 : 2000))
flags.beginner = 0;
}
rehumanize();
}
- context.botl = 1;
+ context.botl = TRUE;
}
/*
adjabil(u.ulevel - 1, u.ulevel); /* give new intrinsics */
reset_rndmonst(NON_PM); /* new monster selection */
}
- context.botl = 1;
+ context.botl = TRUE;
}
/* compute a random amount of experience points suitable for the hero's