Keep displaying difficulty menu for as long as the *voice* plays.

Previously, the check was for the hard-coded sound number. This made it
impossible to change difficulty selection sounds via EVENT_SOUND.

git-svn-id: https://svn.eduke32.com/eduke32@4449 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2014-04-19 22:42:20 +00:00
parent fb05cf5b7e
commit 184653fc25
4 changed files with 13 additions and 11 deletions

View file

@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <sys/stat.h>
extern char inputloc;
int16_t g_skillSoundID=-1;
int32_t g_skillSoundVoice = -1;
int32_t probey=0; // the row number on which the menu cursor is positioned
static int32_t lastsavehead=0,last_menu_pos=0,last_menu,sh,onbar,buttonstat;
static int32_t last_main,last_main_ingame,last_episode,last_options,last_load = 0;
@ -2446,23 +2446,25 @@ cheat_for_port_credits2:
x = M_Probe(margin,ybase,19,g_numSkills);
if (x >= 0)
{
int32_t skillsound = 0;
switch (x)
{
case 0:
g_skillSoundID = JIBBED_ACTOR6;
skillsound = JIBBED_ACTOR6;
break;
case 1:
g_skillSoundID = BONUS_SPEECH1;
skillsound = BONUS_SPEECH1;
break;
case 2:
g_skillSoundID = DUKE_GETWEAPON2;
skillsound = DUKE_GETWEAPON2;
break;
case 3:
g_skillSoundID = JIBBED_ACTOR5;
skillsound = JIBBED_ACTOR5;
break;
}
S_PlaySound(g_skillSoundID);
g_skillSoundVoice = S_PlaySound(skillsound);
ud.m_player_skill = x+1;
if (x == 3) ud.m_respawn_monsters = 1;

View file

@ -136,7 +136,6 @@ enum MenuIndex_t {
};
extern char inputloc;
extern int16_t g_skillSoundID;
extern int32_t g_lastSaveSlot;
extern int32_t g_quitDeadline;
extern int32_t probey;

View file

@ -27,6 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "gamedef.h"
#include "premap.h"
#include "sounds.h"
#include "fx_man.h"
#include "gameexec.h"
#include "anim.h"
#include "menus.h"
@ -1368,13 +1369,13 @@ void G_NewGame(int32_t vn, int32_t ln, int32_t sk)
G_HandleAsync();
if (g_skillSoundID >= 0 && ud.config.FXDevice >= 0 && ud.config.SoundToggle)
if (g_skillSoundVoice >= 0 && ud.config.FXDevice >= 0 && ud.config.SoundToggle)
{
while (S_CheckSoundPlaying(-1, g_skillSoundID))
while (FX_SoundActive(g_skillSoundVoice))
G_HandleAsync();
}
g_skillSoundID = -1;
g_skillSoundVoice = -1;
ready2send = 0;

View file

@ -74,7 +74,7 @@ typedef struct
extern volatile char g_soundlocks[MAXSOUNDS];
extern sound_t g_sounds[MAXSOUNDS];
extern int16_t g_skillSoundID;
extern int32_t g_skillSoundVoice;
extern int32_t g_numEnvSoundsPlaying,g_maxSoundPos;
int32_t A_CheckSoundPlaying(int32_t i,int32_t num);