]> granicus.if.org Git - nethack/commitdiff
simplify touchstone object choosing
authorcohrs <cohrs>
Tue, 26 Feb 2002 07:36:30 +0000 (07:36 +0000)
committercohrs <cohrs>
Tue, 26 Feb 2002 07:36:30 +0000 (07:36 +0000)
- remove special case code from getobj for touchstone
- remove other hacks from getobj that resulted from earlier hack, solves
  the "rub on the gold stone" problem completely
- pass correct letter list to getobj from use_stone, like other callers

src/apply.c
src/invent.c

index dfb742e597c98844d86dd43010b52d3be7088a76..9347a340e972c1cf4d243d41fa890ce164138b20 100644 (file)
@@ -1808,14 +1808,15 @@ use_stone(otmp)
 struct obj *otmp;
 {
        struct obj *obj;
-       char allowall[2];
+       char allowall[3];
        const char *color = 0;
        static const char *ambiguous = "You make scratch marks on the stone.";
        const char *scritch = "\"scritch, scritch\"";
        unsigned material;
 
-       allowall[0] = ALL_CLASSES;
-       allowall[1] = '\0';
+       allowall[0] = GOLD_CLASS;
+       allowall[1] = ALL_CLASSES;
+       allowall[2] = '\0';
        if (!(obj = getobj(allowall, "rub on the stone")))
            return;
 
index 1f66537e790d8331cdb3e54cf5071e2fe5037939..a80a2cc74f81b319d203dd62f4fec994b8154d4f 100644 (file)
@@ -733,7 +733,6 @@ register const char *let,*word;
        boolean usegold = FALSE;        /* can't use gold because its illegal */
        boolean allowall = FALSE;
        boolean allownone = FALSE;
-       boolean touchstone = FALSE;
        xchar foox = 0;
        long cnt;
        boolean prezero = FALSE;
@@ -746,15 +745,6 @@ register const char *let,*word;
 #else
        if(*let == GOLD_CLASS) let++, usegold = TRUE;
 #endif
-       /* Ugly check for touchstone */
-       if (!strncmp(word, "rub on", 6)) {
-           touchstone = TRUE;          /* avoid silly "stone gold" */
-#ifndef GOLDOBJ
-           if(u.ugold) allowgold = usegold = TRUE;
-#else
-           usegold = TRUE;
-#endif
-       }
 
        /* Equivalent of an "ugly check" for gold */
        if (usegold && !strcmp(word, "eat") && !metallivorous(youmonst.data))
@@ -939,10 +929,7 @@ register const char *let,*word;
                }
                if(ilet == def_oc_syms[GOLD_CLASS]) {
                        if (!usegold) {
-                           if (touchstone)
-                               You("cannot rub gold on the stone.");
-                           else
-                               You("cannot %s gold.", word);
+                           You("cannot %s gold.", word);
                            return(struct obj *)0;
 #ifndef GOLDOBJ
                        } else if (!allowgold) {