]> granicus.if.org Git - nethack/commitdiff
B08017 - piece of cheese juice
authornethack.rankin <nethack.rankin>
Mon, 19 Aug 2002 07:33:13 +0000 (07:33 +0000)
committernethack.rankin <nethack.rankin>
Mon, 19 Aug 2002 07:33:13 +0000 (07:33 +0000)
     Implement <Someone>'s request that fruit name "foo of bar" yield
juice messages referring to "bar juice" instead of "foo of bar juice".

doc/fixes34.1
include/extern.h
src/objnam.c
src/potion.c

index 468a13703d2aebc9eec8351540e2bea5ed8203ac..ad948b72ac89d3829a06f2eec3c14097757c39cf 100644 (file)
@@ -209,6 +209,7 @@ enlightenment: don't misreport polymorphed lycanthrope as "in beast form"
 remove TIMED_DELAY from the features checked for version compatibility
 rolling boulder hitting monster stuck in pit should stop even when mon survives
 don't see chest trap gas colors while Blind
+adjust fruit name in potion juice messages if it has the form "foo of bar"
 
 
 Platform- and/or Interface-Specific Fixes
index e34e7edb6d74ea74b6a4183cd71919c7fa3d408b..6ee6e5ce148e0445f3f5ed55c42270b15ac95ee5 100644 (file)
@@ -1320,6 +1320,7 @@ E char *FDECL(obj_typename, (int));
 E char *FDECL(simple_typename, (int));
 E boolean FDECL(obj_is_pname, (struct obj *));
 E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
+E char *NDECL(fruitjuice);
 E char *FDECL(xname, (struct obj *));
 E char *FDECL(mshot_xname, (struct obj *));
 E boolean FDECL(the_unique_obj, (struct obj *obj));
index 58b3e30af77c1f876ffa2297702f3c6be21199a4..cd459437b73a7a2df30f7f172261794ec81a5e18 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)objnam.c   3.4     2002/08/06      */
+/*     SCCS Id: @(#)objnam.c   3.4     2002/08/18      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -209,6 +209,23 @@ char *FDECL((*func), (OBJ_P));
        return str;
 }
 
+/* convert player specified fruit name into corresponding fruit juice name
+   ("slice of pizza" -> "pizza juice" rather than "slice of pizza juice") */
+char *
+fruitjuice()
+{
+    char *buf = nextobuf();
+    const char *juice = strstri(pl_fruit, " of ");
+
+    if (juice)
+       juice += 4;             /* skip past " of " */
+    else
+       juice = pl_fruit;       /* use it as is */
+
+    Sprintf(buf, "%s juice", juice);
+    return buf;
+}
+
 #endif /* OVLB */
 #ifdef OVL1
 
index fdfac8b42ae622b6b65981d67b580be6f5e7605d..a17bdb06cdf2cffd095f1a9bb84f2043278abd56 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)potion.c   3.4     2002/07/11      */
+/*     SCCS Id: @(#)potion.c   3.4     2002/08/18      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -543,10 +543,11 @@ peffects(otmp)
                if (otmp->cursed)
                    pline("Yecch!  This tastes %s.",
                          Hallucination ? "overripe" : "rotten");
-               else pline(Hallucination ?
-               "This tastes like 10%% real %s%s juice all-natural beverage." :
-                               "This tastes like %s%s juice.",
-                         otmp->odiluted ? "reconstituted " : "", pl_fruit);
+               else
+                   pline(Hallucination ?
+                     "This tastes like 10%% real %s%s all-natural beverage." :
+                               "This tastes like %s%s.",
+                        otmp->odiluted ? "reconstituted " : "", fruitjuice());
                if (otmp->otyp == POT_FRUIT_JUICE) {
                    u.uhunger += (otmp->odiluted ? 5 : 10) * (2 + bcsign(otmp));
                    newuhs(FALSE);
@@ -636,8 +637,8 @@ peffects(otmp)
        case POT_SICKNESS:
                pline("Yecch!  This stuff tastes like poison.");
                if (otmp->blessed) {
-                   pline("(But in fact it was mildly stale %s juice.)",
-                         pl_fruit);
+                   pline("(But in fact it was mildly stale %s.)",
+                         fruitjuice());
                    if (!Role_if(PM_HEALER)) {
                        if (otmp->corpsenm)
                            losehp(1,
@@ -649,8 +650,8 @@ peffects(otmp)
                } else {
                    if(Poison_resistance)
                        pline(
-                   "(But in fact it was biologically contaminated %s juice.)",
-                             pl_fruit);
+                         "(But in fact it was biologically contaminated %s.)",
+                             fruitjuice());
                    if (Role_if(PM_HEALER))
                        pline("Fortunately, you have been immunized.");
                    else {