From: Pasi Kallinen <paxed@alt.org> Date: Wed, 22 Apr 2015 05:45:03 +0000 (+0300) Subject: Unify file removed -trickery X-Git-Tag: NetHack-3.6.0_RC01~472 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=34d5a4c1f94a3ea1ebbbb5daf2006e50198e337d;p=nethack Unify file removed -trickery --- diff --git a/include/extern.h b/include/extern.h index fe22f97e4..406ae8c13 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1981,6 +1981,7 @@ E void NDECL(rumor_check); E int NDECL(dosave); E int NDECL(dosave0); +E boolean FDECL(tricked_fileremoved, (int, char *)); #ifdef INSURANCE E void NDECL(savestateinlock); #endif diff --git a/src/do.c b/src/do.c index ae941c065..03edbb6f1 100644 --- a/src/do.c +++ b/src/do.c @@ -1225,11 +1225,7 @@ boolean at_stairs, falling, portal; } else { /* returning to previously visited level; reload it */ fd = open_levelfile(new_ledger, whynot); - if (fd < 0) { - pline1(whynot); - pline("Probably someone removed it."); - Strcpy(killer.name, whynot); - done(TRICKED); + if (tricked_fileremoved(fd, whynot)) { /* we'll reach here if running in wizard mode */ error("Cannot continue this game."); } diff --git a/src/save.c b/src/save.c index ed0047698..fb695d1ed 100644 --- a/src/save.c +++ b/src/save.c @@ -360,6 +360,21 @@ register int fd, mode; bflush(fd); } +boolean +tricked_fileremoved(fd, whynot) +int fd; +char *whynot; +{ + if (fd < 0) { + pline1(whynot); + pline("Probably someone removed it."); + Strcpy(killer.name, whynot); + done(TRICKED); + return TRUE; + } + return FALSE; +} + #ifdef INSURANCE void savestateinlock() @@ -387,13 +402,7 @@ savestateinlock() * readable by an external utility */ fd = open_levelfile(0, whynot); - if (fd < 0) { - pline1(whynot); - pline("Probably someone removed it."); - Strcpy(killer.name, whynot); - done(TRICKED); - return; - } + if (tricked_fileremoved(fd, whynot)) return; (void) read(fd, (genericptr_t) &hpid, sizeof(hpid)); if (hackpid != hpid) {