-/* NetHack 3.6 end.c $NHDT-Date: 1544003110 2018/12/05 09:45:10 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.156 $ */
+/* NetHack 3.6 end.c $NHDT-Date: 1544666123 2018/12/13 01:55:23 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.157 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
? "Program initialization has failed."
: "Suddenly, the dungeon collapses.");
#ifndef MICRO
-#if defined(NOTIFY_NETHACK_BUGS)
+#ifdef NOTIFY_NETHACK_BUGS
if (!wizard)
raw_printf("Report the following error to \"%s\" or at \"%s\".",
DEVTEAM_EMAIL, DEVTEAM_URL);
else if (program_state.something_worth_saving)
raw_print("\nError save file being written.\n");
-#else
+#else /* !NOTIFY_NETHACK_BUGS */
if (!wizard) {
const char *maybe_rebuild = !program_state.something_worth_saving
? "."
raw_printf("Report error to \"%s\"%s", WIZARD_NAME,
maybe_rebuild);
}
-#endif
+#endif /* ?NOTIFY_NETHACK_BUGS */
/* XXX can we move this above the prints? Then we'd be able to
* suppress "it may be possible to rebuild" based on dosave0()
* or say it's NOT possible to rebuild. */
raw_printf("%s", sysopt.recover);
}
}
-#endif
+#endif /* !MICRO */
{
char buf[BUFSZ];
if (iflags.debug_fuzzer) {
if (!(program_state.panicking || how == PANICKED)) {
savelife(how);
- killer.name[0] = 0;
+ /* periodically restore characteristics and lost exp levels */
+ if (!rn2(10)) {
+ struct obj *potion = mksobj(POT_RESTORE_ABILITY, TRUE, FALSE);
+
+ bless(potion);
+ (void) peffects(potion); /* always -1 for restore ability */
+ /* not useup(); we haven't put this potion into inventory */
+ obfree(potion, (struct obj *) 0);
+ }
+ killer.name[0] = '\0';
killer.format = 0;
return;
}