Merge branch 'master' into NetHack-3.7

This commit is contained in:
nhmall
2019-07-07 22:01:44 -04:00
4 changed files with 60 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.86 $ $NHDT-Date: 1562462061 2019/07/07 01:14:21 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.87 $ $NHDT-Date: 1562532730 2019/07/07 20:52:10 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -212,6 +212,13 @@ if you reach the edge of a level (relatively uncommon) and try to move off,
'attributes' disclosure at end of game includes number of experience points
that were needed to reach the next experience level (new for normal
play and explore mode; previously only shown for wizard mode)
report Friday-13th/phase-of-moon/time-of-day for ^X and final disclosure when
their values matter to game play (date and moon are from the start of
current session and are not dynamically updated as real time elapses;
night is a fixed range of hours using the computer's conception of
local time which could differ from player's if there are time zone or
system clock issues or simply seasonal variation based on latitude;
not new but needs to be documented somewhere other than spoilers...)
status highlighting using percentage rules now supported for experience level
and experience points; for both, percent is based on Exp progress from
the start of the current Xp level to the start of the next Xp level;

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 flag.h $NHDT-Date: 1559664948 2019/06/04 16:15:48 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.151 $ */
/* NetHack 3.6 flag.h $NHDT-Date: 1562532730 2019/07/07 20:52:10 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.152 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2006. */
/* NetHack may be freely redistributed. See license for details. */
@@ -227,6 +227,8 @@ struct instance_flags {
boolean defer_plname; /* X11 hack: askname() might not set g.plname */
boolean herecmd_menu; /* use menu when mouseclick on yourself */
boolean invis_goldsym; /* gold symbol is ' '? */
int at_midnight; /* only valid during end of game disclosure */
int at_night; /* also only valid during end of game disclosure */
int failing_untrap; /* move_into_trap() -> spoteffects() -> dotrap() */
int in_lava_effects; /* hack for Boots_off() */
int last_msg; /* indicator of last message player saw */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 cmd.c $NHDT-Date: 1561917056 2019/06/30 17:50:56 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.338 $ */
/* NetHack 3.6 cmd.c $NHDT-Date: 1562532731 2019/07/07 20:52:11 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.339 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1976,6 +1976,50 @@ int final;
/* same phrasing for current and final: "entered" is unconditional */
enlght_line(You_, "entered ", buf, "");
}
/* for gameover, these have been obtained in really_done() so that they
won't vary if user leaves a disclosure prompt or --More-- unanswered
long enough for the dynamic value to change between then and now */
if (final ? iflags.at_midnight : midnight()) {
enl_msg("It ", "is ", "was ", "the midnight hour", "");
} else if (final ? iflags.at_night : night()) {
enl_msg("It ", "is ", "was ", "nighttime", "");
}
/* other environmental factors */
if (flags.moonphase == FULL_MOON || flags.moonphase == NEW_MOON) {
/* [This had "tonight" but has been changed to "in effect".
There is a similar issue to Friday the 13th--it's the value
at the start of the current session but that session might
have dragged on for an arbitrary amount of time. We want to
report the values that currently affect play--or affected
play when game ended--rather than actual outside situation.] */
Sprintf(buf, "a %s moon in effect%s",
(flags.moonphase == FULL_MOON) ? "full"
: (flags.moonphase == NEW_MOON) ? "new"
/* showing these would probably just lead to confusion
since they have no effect on game play... */
: (flags.moonphase < FULL_MOON) ? "first quarter"
: "last quarter",
/* we don't have access to 'how' here--aside from survived
vs died--so settle for general platitude */
final ? " when your adventure ended" : "");
enl_msg("There ", "is ", "was ", buf, "");
}
if (flags.friday13) {
/* let player know that friday13 penalty is/was in effect;
we don't say "it is/was Friday the 13th" because that was at
the start of the session and it might be past midnight (or
days later if the game has been paused without save/restore),
so phrase this similar to the start up message */
Sprintf(buf, " Bad things %s on Friday the 13th.",
!final ? "can happen"
: (final == ENL_GAMEOVERALIVE) ? "could have happened"
/* there's no may to tell whether -1 Luck made a
difference but hero has died... */
: "happened");
enlght_out(buf);
}
if (!Upolyd) {
int ulvl = (int) u.ulevel;
/* [flags.showexp currently does not matter; should it?] */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 end.c $NHDT-Date: 1561414303 2019/06/24 22:11:43 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.178 $ */
/* NetHack 3.6 end.c $NHDT-Date: 1562532734 2019/07/07 20:52:14 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.179 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1216,6 +1216,9 @@ int how;
time or even day if player is slow responding to --More-- */
urealtime.finish_time = endtime = getnow();
urealtime.realtime += (long) (endtime - urealtime.start_timing);
/* collect these for end of game disclosure (not used during play) */
iflags.at_night = night();
iflags.at_midnight = midnight();
dump_open_log(endtime);
/* Sometimes you die on the first move. Life's not fair.