more #H8167 - late messages
Do late message suppression in a different fashion. Also, there are more messages than shk taking hero's possessions and guard taking hero's gold that need to be suppressed if regular message delivery is no longer possible: "do not pass Go", "you arise from the grave as a foo", "the corridor disappears", "you are encased in the rock". Those last two are from vault handling but take place in a convoluted manner: paygd -> mongone -> grddead -> clear_fcorr.
This commit is contained in:
18
src/end.c
18
src/end.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 end.c $NHDT-Date: 1545786454 2018/12/26 01:07:34 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.162 $ */
|
||||
/* NetHack 3.6 end.c $NHDT-Date: 1549921169 2019/02/11 21:39:29 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.163 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1149,6 +1149,10 @@ int how;
|
||||
program_state.gameover = 1;
|
||||
/* in case of a subsequent panic(), there's no point trying to save */
|
||||
program_state.something_worth_saving = 0;
|
||||
#ifdef HANGUPHANDLING
|
||||
if (program_state.done_hup)
|
||||
done_stopprint++;
|
||||
#endif
|
||||
/* render vision subsystem inoperative */
|
||||
iflags.vision_inited = 0;
|
||||
|
||||
@@ -1173,8 +1177,8 @@ int how;
|
||||
* On those rare occasions you get hosed immediately, go out
|
||||
* smiling... :-) -3.
|
||||
*/
|
||||
if (moves <= 1 && how < PANICKED) /* You die... --More-- */
|
||||
pline("Do not pass go. Do not collect 200 %s.", currency(200L));
|
||||
if (moves <= 1 && how < PANICKED && !done_stopprint)
|
||||
pline("Do not pass Go. Do not collect 200 %s.", currency(200L));
|
||||
|
||||
if (have_windows)
|
||||
wait_synch(); /* flush screen output */
|
||||
@@ -1220,9 +1224,11 @@ int how;
|
||||
fixup_death(how); /* actually, fixup multi_reason */
|
||||
|
||||
if (how != PANICKED) {
|
||||
boolean silently = done_stopprint ? TRUE : FALSE;
|
||||
|
||||
/* these affect score and/or bones, but avoid them during panic */
|
||||
taken = paybill((how == ESCAPED) ? -1 : (how != QUIT));
|
||||
paygd();
|
||||
taken = paybill((how == ESCAPED) ? -1 : (how != QUIT), silently);
|
||||
paygd(silently);
|
||||
clearpriests();
|
||||
} else
|
||||
taken = FALSE; /* lint; assert( !bones_ok ); */
|
||||
@@ -1329,7 +1335,7 @@ int how;
|
||||
}
|
||||
}
|
||||
|
||||
if (u.ugrave_arise >= LOW_PM) {
|
||||
if (u.ugrave_arise >= LOW_PM && !done_stopprint) {
|
||||
/* give this feedback even if bones aren't going to be created,
|
||||
so that its presence or absence doesn't tip off the player to
|
||||
new bones or their lack; it might be a lie if makemon fails */
|
||||
|
||||
Reference in New Issue
Block a user