]> granicus.if.org Git - nethack/commitdiff
warning bit
authornethack.rankin <nethack.rankin>
Mon, 25 Mar 2002 08:05:27 +0000 (08:05 +0000)
committernethack.rankin <nethack.rankin>
Mon, 25 Mar 2002 08:05:27 +0000 (08:05 +0000)
     Avoid gcc's inaccurate warning about mattk possibly being
used before being set in do_breathe().

include/monattk.h
src/mondata.c
src/polyself.c

index 996a765e5c0f477f801d3faf738f250a007cae4f..02ee881ab25d8115243a3f9d3baa61dde9c3d6e7 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)monattk.h  3.4     1995/01/28      */
+/*     SCCS Id: @(#)monattk.h  3.4     2002/03/24      */
 /* NetHack may be freely redistributed.  See license for details. */
 /* Copyright 1988, M. Stephenson */
 
@@ -8,6 +8,7 @@
 /*     Add new attack types below - ordering affects experience (exper.c).
  *     Attacks > AT_BUTT are worth extra experience.
  */
+#define AT_ANY         (-1)    /* fake attack; dmgtype_fromattack wildcard */
 #define AT_NONE                0       /* passive monster (ex. acid blob) */
 #define AT_CLAW                1       /* claw (punch, hit, etc.) */
 #define AT_BITE                2       /* bite */
@@ -32,6 +33,7 @@
  *     Note that 1-10 correspond to the types of attack used in buzz().
  *     Please don't disturb the order unless you rewrite the buzz() code.
  */
+#define AD_ANY         (-1)    /* fake damage; attacktype_fordmg wildcard */
 #define AD_PHYS                0       /* ordinary physical */
 #define AD_MAGM                1       /* magic missiles */
 #define AD_FIRE                2       /* fire damage */
index 026184f5ceb7f76b01ca68cdbe2d638af5f58418..a51722c992ab37e7a6b9fe0691982f5205d3960c 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)mondata.c  3.4     2001/12/05      */
+/*     SCCS Id: @(#)mondata.c  3.4     2002/03/24      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -6,10 +6,6 @@
 #include "eshk.h"
 #include "epri.h"
 
-/* fake attack and damage types */
-#define AT_ANY (-1)
-#define AD_ANY (-1)
-
 /*     These routines provide basic data for any type of monster. */
 
 #ifdef OVLB
index 019c846c6ee4d87fbcba874920118aac217aee99..abcd7e9f3909785f7be12b7ea9ec5eed00823586 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)polyself.c 3.4     2002/01/15      */
+/*     SCCS Id: @(#)polyself.c 3.4     2002/03/24      */
 /*     Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -705,6 +705,8 @@ rehumanize()
 int
 dobreathe()
 {
+       struct attack *mattk;
+
        if (Strangled) {
            You_cant("breathe.  Sorry.");
            return(0);
@@ -717,17 +719,13 @@ dobreathe()
        flags.botl = 1;
 
        if (!getdir((char *)0)) return(0);
-       else {
-           register struct attack *mattk;
-           register int i;
 
-           for(i = 0; i < NATTK; i++) {
-               mattk = &(youmonst.data->mattk[i]);
-               if(mattk->aatyp == AT_BREA) break;
-           }
+       mattk = attacktype_fordmg(youmonst.data, AT_BREA, AD_ANY);
+       if (!mattk)
+           impossible("bad breath attack?");   /* mouthwash needed... */
+       else
            buzz((int) (20 + mattk->adtyp-1), (int)mattk->damn,
                u.ux, u.uy, u.dx, u.dy);
-       }
        return(1);
 }