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) {