fix #H2694 - egg hatching feedback

A bug report from ten and half years ago...
If a carried egg hatches, the message is
|<foo> drops from your pack.
and if tame, is followed by
|Its cries sound like {mommy,daddy}.
The latter was issued even when <foo> has no speech capability.

Replace "its cries sound like" with "its <vocalize>ing sounds like"
for suitable value of <vocalize>.

This adds two new monster sounds, MS_BELLOW and MS_CHIRP, also two
new sound effect codes, se_chirp and se_croc_bellow.

We had MS_SILENT for crocodile.  On wikipedia, crocodile is described
as the most vocal reptile.  Adult males make a load bellowing noise
and hatchlings make a chirping noise.

This changes crocodile, titanothere, and baluchitherium from MS_SILENT
to MS_BELLOW and baby crocodile from MS_SILENT to MS_CHIRP.  Chirp
might be appropriate for lizards and lizard-like amphibians but I've
left those as MS_SILENT.

[Noticed but not changed:  lizards and lizard-like amphibians aren't
flagged as oviparous.  Shouldn't they be?]
This commit is contained in:
PatR
2023-02-25 07:02:19 -08:00
parent 52c2ce0caf
commit 4fd7d51cb2
6 changed files with 174 additions and 104 deletions

View File

@@ -2601,6 +2601,7 @@ extern void yelp(struct monst *);
extern void whimper(struct monst *);
extern void beg(struct monst *);
extern const char *maybe_gasp(struct monst *);
extern const char *cry_sound(struct monst *);
extern int dotalk(void);
extern int tiphat(void);
#ifdef USER_SOUNDS

View File

@@ -12,49 +12,51 @@ enum ms_sounds {
MS_BARK = 1, /* if full moon, may howl */
MS_MEW = 2, /* mews or hisses */
MS_ROAR = 3, /* roars */
MS_GROWL = 4, /* growls */
MS_SQEEK = 5, /* squeaks, as a rodent */
MS_SQAWK = 6, /* squawks, as a bird */
MS_HISS = 7, /* hisses */
MS_BUZZ = 8, /* buzzes (killer bee) */
MS_GRUNT = 9, /* grunts (or speaks own language) */
MS_NEIGH = 10, /* neighs, as an equine */
MS_MOO = 11, /* minotaurs, rothes */
MS_WAIL = 12, /* wails, as a tortured soul */
MS_GURGLE = 13, /* gurgles, as liquid or through saliva */
MS_BURBLE = 14, /* burbles (jabberwock) */
MS_TRUMPET = 15, /* trumpets (elephant) */
MS_ANIMAL = 15, /* up to here are animal noises */
/* FIXME? the grunt "speaks own language" case
shouldn't be classified as animal */
MS_SHRIEK = 16, /* wakes up others */
MS_BONES = 17, /* rattles bones (skeleton) */
MS_LAUGH = 18, /* grins, smiles, giggles, and laughs */
MS_MUMBLE = 19, /* says something or other */
MS_IMITATE = 20, /* imitates others (leocrotta) */
MS_WERE = 21, /* lycanthrope in human form */
MS_ORC = 22, /* intelligent brutes */
/* from here onward, speech can be comprehended */
MS_HUMANOID = 23, /* generic traveling companion */
MS_ARREST = 24, /* "Stop in the name of the law!" (Kops) */
MS_SOLDIER = 25, /* army and watchmen expressions */
MS_GUARD = 26, /* "Please drop that gold and follow me." */
MS_DJINNI = 27, /* "Thank you for freeing me!" */
MS_NURSE = 28, /* "Take off your shirt, please." */
MS_SEDUCE = 29, /* "Hello, sailor." (Nymphs) */
MS_VAMPIRE = 30, /* vampiric seduction, Vlad's exclamations */
MS_BRIBE = 31, /* asks for money, or berates you */
MS_CUSS = 32, /* berates (demons) or intimidates (Wiz) */
MS_RIDER = 33, /* astral level special monsters */
MS_LEADER = 34, /* your class leader */
MS_NEMESIS = 35, /* your nemesis */
MS_GUARDIAN = 36, /* your leader's guards */
MS_SELL = 37, /* demand payment, complain about shoplifters */
MS_ORACLE = 38, /* do a consultation */
MS_PRIEST = 39, /* ask for contribution; do cleansing */
MS_SPELL = 40, /* spellcaster not matching any of the above */
MS_BOAST = 41, /* giants */
MS_GROAN = 42 /* zombies groan */
MS_BELLOW = 4, /* adult male crocodiles; hatchlings 'chirp' */
MS_GROWL = 5, /* growls */
MS_SQEEK = 6, /* squeaks, as a rodent */
MS_SQAWK = 7, /* squawks, as a bird */
MS_CHIRP = 8, /* baby crocodile */
MS_HISS = 9, /* hisses */
MS_BUZZ = 10, /* buzzes (killer bee) */
MS_GRUNT = 11, /* grunts (or speaks own language) */
MS_NEIGH = 12, /* neighs, as an equine */
MS_MOO = 13, /* minotaurs, rothes */
MS_WAIL = 14, /* wails, as a tortured soul */
MS_GURGLE = 15, /* gurgles, as liquid or through saliva */
MS_BURBLE = 16, /* burbles (jabberwock) */
MS_TRUMPET = 17, /* trumpets (elephant) */
MS_ANIMAL = 17, /* up to here are animal noises */
/* FIXME? the grunt "speaks own language" case above
shouldn't be classified as animal */
MS_SHRIEK = 18, /* wakes up others */
MS_BONES = 19, /* rattles bones (skeleton) */
MS_LAUGH = 20, /* grins, smiles, giggles, and laughs */
MS_MUMBLE = 21, /* says something or other */
MS_IMITATE = 22, /* imitates others (leocrotta) */
MS_WERE = 23, /* lycanthrope in human form */
MS_ORC = 24, /* intelligent brutes */
/* from here onward, speech can be comprehended */
MS_HUMANOID = 25, /* generic traveling companion */
MS_ARREST = 26, /* "Stop in the name of the law!" (Kops) */
MS_SOLDIER = 27, /* army and watchmen expressions */
MS_GUARD = 28, /* "Please drop that gold and follow me." */
MS_DJINNI = 29, /* "Thank you for freeing me!" */
MS_NURSE = 30, /* "Take off your shirt, please." */
MS_SEDUCE = 31, /* "Hello, sailor." (Nymphs) */
MS_VAMPIRE = 32, /* vampiric seduction, Vlad's exclamations */
MS_BRIBE = 33, /* asks for money, or berates you */
MS_CUSS = 34, /* berates (demons) or intimidates (Wiz) */
MS_RIDER = 35, /* astral level special monsters */
MS_LEADER = 36, /* your class leader */
MS_NEMESIS = 37, /* your nemesis */
MS_GUARDIAN = 38, /* your leader's guards */
MS_SELL = 39, /* demand payment, complain about shoplifters */
MS_ORACLE = 40, /* do a consultation */
MS_PRIEST = 41, /* ask for contribution; do cleansing */
MS_SPELL = 42, /* spellcaster not matching any of the above */
MS_BOAST = 43, /* giants */
MS_GROAN = 44, /* zombies groan */
};
#define MR_FIRE 0x01 /* resists fire */

View File

@@ -739,14 +739,14 @@
MON("titanothere", S_QUADRUPED, LVL(12, 12, 6, 0, 0), (G_GENO | 2),
A(ATTK(AT_CLAW, AD_PHYS, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
NO_ATTK),
SIZ(2650, 650, MS_SILENT, MZ_LARGE), 0, 0,
SIZ(2650, 650, MS_BELLOW, MZ_LARGE), 0, 0,
M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, 13, CLR_GRAY,
TITANOTHERE),
MON("baluchitherium", S_QUADRUPED, LVL(14, 12, 5, 0, 0), (G_GENO | 2),
A(ATTK(AT_CLAW, AD_PHYS, 5, 4), ATTK(AT_CLAW, AD_PHYS, 5, 4), NO_ATTK,
NO_ATTK, NO_ATTK, NO_ATTK),
SIZ(3800, 800, MS_SILENT, MZ_LARGE), 0, 0,
SIZ(3800, 800, MS_BELLOW, MZ_LARGE), 0, 0,
M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
M2_HOSTILE | M2_STRONG, M3_INFRAVISIBLE, 15, CLR_GRAY,
BALUCHITHERIUM),
@@ -2789,7 +2789,7 @@
MON("baby crocodile", S_LIZARD, LVL(3, 6, 7, 0, 0), G_GENO,
A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
NO_ATTK),
SIZ(200, 200, MS_SILENT, MZ_MEDIUM), 0, 0,
SIZ(200, 200, MS_CHIRP, MZ_MEDIUM), 0, 0,
M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
M2_HOSTILE, 0, 4, CLR_BROWN, BABY_CROCODILE),
MON("lizard", S_LIZARD, LVL(5, 6, 6, 10, 0), (G_GENO | 5),
@@ -2808,7 +2808,7 @@
MON("crocodile", S_LIZARD, LVL(6, 9, 5, 0, 0), (G_GENO | 1),
A(ATTK(AT_BITE, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 1, 12),
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
SIZ(WT_HUMAN, 400, MS_SILENT, MZ_LARGE), 0, 0,
SIZ(WT_HUMAN, 400, MS_BELLOW, MZ_LARGE), 0, 0,
M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS
| M1_OVIPAROUS | M1_CARNIVORE,
M2_STRONG | M2_HOSTILE, 0, 7, CLR_BROWN, CROCODILE),

View File

@@ -309,33 +309,35 @@ enum sound_effect_entries {
se_buzz = 166,
se_squeek = 167,
se_squawk = 168,
se_squeal = 169,
se_screech = 170,
se_equine_neigh = 171,
se_equine_whinny = 172,
se_equine_whicker = 173,
se_bovine_moo = 174,
se_bovine_bellow = 175,
se_wail = 176,
se_groan = 177,
se_grunt = 178,
se_gurgle = 179,
se_elephant_trumpet = 180,
se_snake_rattle = 181,
se_yelp = 182,
se_jabberwock_burble = 183,
se_shriek = 184,
se_bone_rattle = 185,
se_orc_grunt = 186,
se_avian_screak = 187,
se_paranoid_confirmation = 188,
se_bars_whang = 189,
se_bars_whap = 190,
se_bars_flapp = 191,
se_bars_clink = 192,
se_bars_clonk = 193,
se_boomerang_klonk = 194,
se_bang_weapon_side = 195,
se_chirp = 169,
se_squeal = 170,
se_screech = 171,
se_equine_neigh = 172,
se_equine_whinny = 173,
se_equine_whicker = 174,
se_bovine_moo = 175,
se_bovine_bellow = 176,
se_croc_bellow = 177,
se_wail = 178,
se_groan = 179,
se_grunt = 180,
se_gurgle = 181,
se_elephant_trumpet = 182,
se_snake_rattle = 183,
se_yelp = 184,
se_jabberwock_burble = 185,
se_shriek = 186,
se_bone_rattle = 187,
se_orc_grunt = 188,
se_avian_screak = 189,
se_paranoid_confirmation = 190,
se_bars_whang = 191,
se_bars_whap = 192,
se_bars_flapp = 193,
se_bars_clink = 194,
se_bars_clonk = 195,
se_boomerang_klonk = 196,
se_bang_weapon_side = 197,
number_of_se_entries
};