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"
|
.PS "sound index"
|
||||||
.PL MESG
|
.PL MESG
|
||||||
message window mapping (the only one supported in 3.7);
|
message window mapping (the only one supported in 3.7);
|
||||||
|
.PL msgtype
|
||||||
|
optional; message type to use, see \(lqConfiguring Message Types\(rq
|
||||||
.PL pattern
|
.PL pattern
|
||||||
the pattern to match;
|
the pattern to match;
|
||||||
.PL "sound file"
|
.PL "sound file"
|
||||||
@@ -5065,6 +5067,15 @@ optional; the index corresponding to a sound file.
|
|||||||
.lp ""
|
.lp ""
|
||||||
The pattern should be a POSIX extended regular expression.
|
The pattern should be a POSIX extended regular expression.
|
||||||
.pg
|
.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
|
.hn 2
|
||||||
Configuring Status Hilites
|
Configuring Status Hilites
|
||||||
.pg
|
.pg
|
||||||
|
|||||||
@@ -5589,6 +5589,7 @@ Each SOUND entry is broken down into the following parts:
|
|||||||
%.sd
|
%.sd
|
||||||
%.si
|
%.si
|
||||||
{\tt MESG } --- message window mapping (the only one supported in 3.7);\\
|
{\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 pattern } --- the pattern to match;\\
|
||||||
{\tt sound file } --- the sound file to play;\\
|
{\tt sound file } --- the sound file to play;\\
|
||||||
{\tt volume } --- the volume to be set while playing the sound file;\\
|
{\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 ""
|
%.lp ""
|
||||||
The pattern should be a POSIX extended regular expression.
|
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
|
%.lp
|
||||||
%.hn 2
|
%.hn 2
|
||||||
\subsection*{Configuring Status Hilites}
|
\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
|
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
|
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
|
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
|
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 text[256];
|
||||||
char filename[256];
|
char filename[256];
|
||||||
char filespec[256];
|
char filespec[256];
|
||||||
|
char msgtyp[11];
|
||||||
int volume, idx = -1;
|
int volume, idx = -1;
|
||||||
|
|
||||||
if (sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d %d", text,
|
msgtyp[0] = '\0';
|
||||||
filename, &volume, &idx) == 4
|
if (sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d %d",
|
||||||
|| sscanf(mapping, "MESG \"%255[^\"]\"%*[\t ]\"%255[^\"]\" %d", text,
|
text, filename, &volume, &idx) == 4
|
||||||
filename, &volume) == 3) {
|
|| 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;
|
audio_mapping *new_map;
|
||||||
|
|
||||||
if (!sounddir)
|
if (!sounddir)
|
||||||
@@ -1455,6 +1461,12 @@ add_sound_mapping(const char* mapping)
|
|||||||
raw_print(re_error_desc);
|
raw_print(re_error_desc);
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
if (*msgtyp) {
|
||||||
|
char tmpbuf[BUFSZ];
|
||||||
|
|
||||||
|
Sprintf(tmpbuf, "%.10s \"%.230s\"", msgtyp, text);
|
||||||
|
(void) msgtype_parse_add(tmpbuf);
|
||||||
|
}
|
||||||
soundmap = new_map;
|
soundmap = new_map;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user