]> granicus.if.org Git - nethack/commitdiff
using a whistle underwater
authorcohrs <cohrs>
Thu, 22 Jan 2004 23:25:15 +0000 (23:25 +0000)
committercohrs <cohrs>
Thu, 22 Jan 2004 23:25:15 +0000 (23:25 +0000)
A long time ago, a message to the list suggested that whistles should not
work underwater.  I did some google research and this does appear to be
true for most whistles.  However, magic whistles are magical, so I left
them alone (also, I did find one high-tech whistle in my research that
claimed to work underwater).  Since being underwater affects pitch,
adjusted the magic whistle message slightly for that case.

doc/fixes35.0
src/apply.c

index 22592a597cdda6c1cc8e542fe679cb70f8a60a20..dfb15131fc1549ae5af61d217fc74ab2039dd40f 100644 (file)
@@ -54,6 +54,7 @@ grammar fixes for applying stethoscope to corpses and statues
 player polymorphed as a ceiling hider cannot reach the floor, but
        automatically unhide on #sit
 trappers do not hide on the ceiling
+non-magical whistles do not work underwater
 
 
 Platform- and/or Interface-Specific Fixes
index 2104d75c4524bebba8f7cd17856812c42597704a..8143a8a260412131c11ca2fdd1c63c9704fbdaf6 100644 (file)
@@ -389,8 +389,12 @@ STATIC_OVL void
 use_whistle(obj)
 struct obj *obj;
 {
-       You(whistle_str, obj->cursed ? "shrill" : "high");
-       wake_nearby();
+       if(Underwater) {
+           You("blow bubbles through %s.", yname(obj));
+       } else {
+           You(whistle_str, obj->cursed ? "shrill" : "high");
+           wake_nearby();
+       }
 }
 
 STATIC_OVL void
@@ -399,12 +403,15 @@ struct obj *obj;
 {
        register struct monst *mtmp, *nextmon;
 
+       /* it's magic!  it works underwater too (at a higher pitch) */
        if(obj->cursed && !rn2(2)) {
-               You("produce a high-pitched humming noise.");
+               You("produce a %shigh-pitched humming noise.",
+                   Underwater ? "very " : "");
                wake_nearby();
        } else {
                int pet_cnt = 0;
-               You(whistle_str, Hallucination ? "normal" : "strange");
+               You(whistle_str, Hallucination ? "normal" :
+                   Underwater ? "strange, high-pitched" : "strange");
                for(mtmp = fmon; mtmp; mtmp = nextmon) {
                    nextmon = mtmp->nmon; /* trap might kill mon */
                    if (DEADMONSTER(mtmp)) continue;