]> granicus.if.org Git - nethack/commitdiff
Trap sanity checking
authorPasi Kallinen <paxed@alt.org>
Fri, 4 Mar 2022 14:54:26 +0000 (16:54 +0200)
committerPasi Kallinen <paxed@alt.org>
Fri, 4 Mar 2022 14:54:43 +0000 (16:54 +0200)
include/extern.h
src/cmd.c
src/trap.c

index 9c60cb2d75c1f48f23ab3d282e7cd86902acc44d..f1b638c7e7b9dd0eabcb1ba2a83241c1ace803ea 100644 (file)
@@ -2736,6 +2736,7 @@ extern void sokoban_guilt(void);
 extern const char * trapname(int, boolean);
 extern void ignite_items(struct obj *);
 extern void trap_ice_effects(xchar x, xchar y, boolean ice_is_melting);
+extern void trap_sanity_check(void);
 
 /* ### u_init.c ### */
 
index 09c85b5f225d5f2b5f53724d4a8a378c98c9ad40..77380d533e4f1f0602e419ea939f5b7fd9fd6eb8 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -3419,6 +3419,7 @@ sanity_check(void)
     mon_sanity_check();
     light_sources_sanity_check();
     bc_sanity_check();
+    trap_sanity_check();
 }
 
 #ifdef DEBUG_MIGRATING_MONS
index 3f881a5e11040fcaed62aecb6c8f12642eee2cfd..4aa7125d1488dd713b370d8a90377fe684fe05da 100644 (file)
@@ -6125,4 +6125,20 @@ trap_ice_effects(xchar x, xchar y, boolean ice_is_melting)
         }
     }
 }
+
+/* sanity check traps */
+void
+trap_sanity_check(void)
+{
+    struct trap *ttmp = g.ftrap;
+
+    while (ttmp) {
+        if (!isok(ttmp->tx, ttmp->ty))
+            impossible("trap sanity: location");
+        if (ttmp->ttyp < 0 || ttmp->ttyp >= TRAPNUM)
+            impossible("trap sanity: type");
+        ttmp = ttmp->ntrap;
+    }
+}
+
 /*trap.c*/