diff --git a/source/duke3d/src/events_defs.h b/source/duke3d/src/events_defs.h index 4d2ec193e..73724c592 100644 --- a/source/duke3d/src/events_defs.h +++ b/source/duke3d/src/events_defs.h @@ -130,6 +130,7 @@ enum GameEvent_t { EVENT_SCREEN, EVENT_DISPLAYROOMSEND, EVENT_DISPLAYEND, + EVENT_OPENMENUSOUND, #ifdef LUNATIC EVENT_ANIMATEALLSPRITES, #endif diff --git a/source/duke3d/src/gamedef.cpp b/source/duke3d/src/gamedef.cpp index 58299a4f0..5cbf8a1e9 100644 --- a/source/duke3d/src/gamedef.cpp +++ b/source/duke3d/src/gamedef.cpp @@ -726,6 +726,7 @@ const char *EventNames[MAXEVENTS] = "EVENT_SCREEN", "EVENT_DISPLAYROOMSEND", "EVENT_DISPLAYEND", + "EVENT_OPENMENUSOUND", #ifdef LUNATIC "EVENT_ANIMATEALLSPRITES", #endif diff --git a/source/duke3d/src/sounds.cpp b/source/duke3d/src/sounds.cpp index d533a7c98..28f30a91d 100644 --- a/source/duke3d/src/sounds.cpp +++ b/source/duke3d/src/sounds.cpp @@ -181,7 +181,9 @@ void S_MenuSound(void) PISTOL_RICOCHET, PISTOL_BODYHIT, PISTOL_FIRE, SHOTGUN_FIRE, BOS1_WALK, RPG_EXPLODE, PIPEBOMB_BOUNCE, PIPEBOMB_EXPLODE, NITEVISION_ONOFF, RPG_SHOOT, SELECT_WEAPON, }; - S_PlaySound(menusnds[SoundNum++ % ARRAY_SIZE(menusnds)]); + int32_t s = VM_OnEventWithReturn(EVENT_OPENMENUSOUND, -1, myconnectindex, menusnds[SoundNum++ % ARRAY_SIZE(menusnds)]); + if (s != -1) + S_PlaySound(s); } int32_t S_PlayMusic(const char *fn)