]> granicus.if.org Git - nethack/commitdiff
tin variety followup (trunk only)
authornethack.allison <nethack.allison>
Tue, 28 Oct 2003 04:14:01 +0000 (04:14 +0000)
committernethack.allison <nethack.allison>
Tue, 28 Oct 2003 04:14:01 +0000 (04:14 +0000)
include/hack.h
include/obj.h
src/eat.c
src/mkobj.c
src/objnam.c

index 784568a80a380f7beb183383aef4d2a84ee37d3f..5d7f91d4785df61c34402a6660f8171a324a5f37 100644 (file)
@@ -257,6 +257,7 @@ NEARDATA extern coord bhitpos;      /* place where throw or zap hits or stops */
 #define HOMEMADE_TIN 5
 #define FRENCH_FRIED_TIN 11
 #define SPINACH_TIN (-1)
+#define RANDOM_TIN (-2)
 
 /* Flags to control menus */
 #define MENUTYPELEN sizeof("traditional ")
index bc4e6367561cc0a4b58581303e2617a839223e78..477fa8b1cad1289ff7a8fd3205a45d21a5e92069 100644 (file)
@@ -30,7 +30,7 @@ struct obj {
 
        schar spe;              /* quality of weapon, armor or ring (+ or -)
                                   number of charges for wand ( >= -1 )
-                                  marks your eggs, spinach tins
+                                  marks your eggs, tin variety and spinach tins
                                   royal coffers for a court ( == 2)
                                   tells which fruit a fruit is
                                   special for uball and amulet
index 7bfa30d7d5b27bdd3194cdc1835e859ea425dbe5..3588b6b1a6ad21dcab5aa9f563845f608b0f670d 100644 (file)
--- a/src/eat.c
+++ b/src/eat.c
@@ -1008,13 +1008,13 @@ int forcetype;
                return;
        } else if (forcetype >= 0 && forcetype < TTSZ-1) {
                r = forcetype;
-       } else {
+       } else {        /* RANDOM_TIN */
                r = rn2(TTSZ-1);                /* take your pick */
                if (r == ROTTEN_TIN && (obj->corpsenm == PM_LIZARD ||
                                        obj->corpsenm == PM_LICHEN))
                        r = HOMEMADE_TIN;       /* lizards don't rot */
        }
-       obj->spe = -(r+1);
+       obj->spe = -(r+1);      /* offset by 1 to allow index 0 */
 }
 
 STATIC_OVL int
@@ -1027,7 +1027,7 @@ struct obj *obj;
                r = ROTTEN_TIN;                 /* always rotten if cursed */
        } else if (obj->spe < 0) {
                r = -(obj->spe);
-               --r;
+               --r;            /* get rid of the offset */
        } else 
                r = rn2(TTSZ-1);
 
index b245828299185d67796a11bdfd13384848a77816..f34c8e3da4dd31b6ce3fc5677234abe06572b5c0 100644 (file)
@@ -431,7 +431,7 @@ boolean artif;
                    if (mons[mndx].cnutrit &&
                            !(mvitals[mndx].mvflags & G_NOCORPSE)) {
                        otmp->corpsenm = mndx;
-                       set_tin_variety(otmp, 0);
+                       set_tin_variety(otmp, RANDOM_TIN);
                        break;
                    }
                }
index 3f5cf20a0c2c31657926eac7bf0b43326f87b77b..36d964b5c10d22aff0877a3290c564f55390aabe 100644 (file)
@@ -1802,7 +1802,7 @@ boolean from_user;
 #endif
                ispoisoned = isgreased = eroded = eroded2 = erodeproof =
                halfeaten = islit = unlabeled = ishistoric = isdiluted = 0;
-       tvariety = -1;
+       tvariety = RANDOM_TIN;
        mntmp = NON_PM;
 #define UNDEFINED 0
 #define EMPTY 1