]> granicus.if.org Git - nethack/commitdiff
tune notes hint
authornethack.rankin <nethack.rankin>
Mon, 10 Mar 2003 23:36:01 +0000 (23:36 +0000)
committernethack.rankin <nethack.rankin>
Mon, 10 Mar 2003 23:36:01 +0000 (23:36 +0000)
     Add <Someone>'s suggestion for the expected input value to the prompt for
playing a tune, and implement handling for alternate note "H" which seems
to be used as a variation of "B" by some Europeans.  The Amiga part is
untested but "can't be wrong"(tm).

doc/fixes34.2
src/music.c

index bd93be2590b662fd9168cf07042e1b2a36b245ce..d5547fc14c9758e476837498b9d49051eb8f306d 100644 (file)
@@ -9,6 +9,7 @@ two invisible monsters hitting one another should not be visible
 if only one monster in a monster-vs-monster fight is visible, show an I symbol
        for the other one whether it is an attacker or defender
 display "It" and not "The invisible <pet>" when an invisible pet eats food.
+include a hint about expected input when prompting for musical notes
 
 
 Platform- and/or Interface-Specific Fixes
index 632b34cd6e277985e6076dd9e1d72e5ae9d026e0..72ee70de291324eef2817d47629d3a2fb971df66 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)music.c    3.4     2001/12/03      */
+/*     SCCS Id: @(#)music.c    3.4     2003/03/10      */
 /*     Copyright (c) 1989 by Jean-Christophe Collet */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -477,9 +477,7 @@ do_play_instrument(instr)
 struct obj *instr;
 {
     char buf[BUFSZ], c = 'y';
-#ifndef        AMIGA
-       char *s;
-#endif
+    char *s;
     int x,y;
     boolean ok;
 
@@ -491,14 +489,22 @@ struct obj *instr;
        c = yn("Improvise?");
     }
     if (c == 'n') {
-       if (u.uevent.uheard_tune == 2 && yn("Play the passtune?") == 'y')
-               Strcpy(buf, tune);
-       else
-               getlin("What tune are you playing? [what 5 notes]", buf);
-#ifndef        AMIGA
-       /* The AMIGA supports two octaves of notes */
-       for (s=buf; *s; s++) *s = highc(*s);
+       if (u.uevent.uheard_tune == 2 && yn("Play the passtune?") == 'y') {
+           Strcpy(buf, tune);
+       } else {
+           getlin("What tune are you playing? [5 notes, A-G]", buf);
+           (void)mungspaces(buf);
+           /* convert to uppercase and change any "H" to the expected "B" */
+           for (s = buf; *s; s++) {
+#ifndef AMIGA
+               *s = highc(*s);
+#else
+               /* The AMIGA supports two octaves of notes */
+               if (*s == 'h') *s = 'b';
 #endif
+               if (*s == 'H') *s = 'B';
+           }
+       }
        You("extract a strange sound from %s!", the(xname(instr)));
 #ifdef UNIX386MUSIC
        /* if user is at the console, play through the console speaker */