When setting user sounds, allow also setting a MSGTYPE
The SOUND lines now have an optional msgtype parameter: SOUND=MESG hide "^You miss the " "swing.wav" 75 Fixes #571
This commit is contained in:
@@ -5053,6 +5053,8 @@ Each SOUND entry is broken down into the following parts:
|
||||
.PS "sound index"
|
||||
.PL MESG
|
||||
message window mapping (the only one supported in 3.7);
|
||||
.PL msgtype
|
||||
optional; message type to use, see \(lqConfiguring Message Types\(rq
|
||||
.PL pattern
|
||||
the pattern to match;
|
||||
.PL "sound file"
|
||||
@@ -5065,6 +5067,15 @@ optional; the index corresponding to a sound file.
|
||||
.lp ""
|
||||
The pattern should be a POSIX extended regular expression.
|
||||
.pg
|
||||
For example:
|
||||
.sd
|
||||
.si
|
||||
SOUNDDIR=C:\\nethack\\sounds
|
||||
SOUND=MESG "This door is locked" "lock.wav" 100
|
||||
SOUND=MESG hide "^You miss the " "swing.wav" 75
|
||||
.ei
|
||||
.ed
|
||||
.pg
|
||||
.hn 2
|
||||
Configuring Status Hilites
|
||||
.pg
|
||||
|
||||
@@ -5589,6 +5589,7 @@ Each SOUND entry is broken down into the following parts:
|
||||
%.sd
|
||||
%.si
|
||||
{\tt MESG } --- message window mapping (the only one supported in 3.7);\\
|
||||
{\tt msgtype } --- optional; message type to use, see ``Configuring User Sounds''\\
|
||||
{\tt pattern } --- the pattern to match;\\
|
||||
{\tt sound file } --- the sound file to play;\\
|
||||
{\tt volume } --- the volume to be set while playing the sound file;\\
|
||||
@@ -5600,6 +5601,15 @@ Each SOUND entry is broken down into the following parts:
|
||||
%.lp ""
|
||||
The pattern should be a POSIX extended regular expression.
|
||||
|
||||
For example:
|
||||
|
||||
\begin{verbatim}
|
||||
SOUNDDIR=C:\\nethack\\sounds
|
||||
SOUND=MESG "This door is locked" "lock.wav" 100
|
||||
SOUND=MESG hide "^You miss the " "swing.wav" 75
|
||||
\end{verbatim}
|
||||
%.pg
|
||||
|
||||
%.lp
|
||||
%.hn 2
|
||||
\subsection*{Configuring Status Hilites}
|
||||
|
||||
@@ -1595,6 +1595,8 @@ context sensitive item usage menu from inventory, aka "item actions"
|
||||
pets are more likely to follow you closely if you are carrying something they
|
||||
really like to eat; behave as if you are carrying such whenever you
|
||||
are standing on stairs so that pets will try harder to come to you
|
||||
allow setting msgtype in SOUND line
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
------------------------------------------------
|
||||
|
||||
20
src/sounds.c
20
src/sounds.c
@@ -1422,12 +1422,18 @@ add_sound_mapping(const char* mapping)
|
||||
char text[256];
|
||||
char filename[256];
|
||||
char filespec[256];
|
||||
char msgtyp[11];
|
||||
int volume, idx = -1;
|
||||
|
||||
if (sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d %d", text,
|
||||
filename, &volume, &idx) == 4
|
||||
|| sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d", text,
|
||||
filename, &volume) == 3) {
|
||||
msgtyp[0] = '\0';
|
||||
if (sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d %d",
|
||||
text, filename, &volume, &idx) == 4
|
||||
|| sscanf(mapping, "MESG %10[^\"] \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d %d",
|
||||
msgtyp, text, filename, &volume, &idx) == 5
|
||||
|| sscanf(mapping, "MESG %10[^\"] \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d",
|
||||
msgtyp, text, filename, &volume) == 4
|
||||
|| sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d",
|
||||
text, filename, &volume) == 3) {
|
||||
audio_mapping *new_map;
|
||||
|
||||
if (!sounddir)
|
||||
@@ -1455,6 +1461,12 @@ add_sound_mapping(const char* mapping)
|
||||
raw_print(re_error_desc);
|
||||
return 0;
|
||||
} else {
|
||||
if (*msgtyp) {
|
||||
char tmpbuf[BUFSZ];
|
||||
|
||||
Sprintf(tmpbuf, "%.10s \"%.230s\"", msgtyp, text);
|
||||
(void) msgtype_parse_add(tmpbuf);
|
||||
}
|
||||
soundmap = new_map;
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user