Add if-D2 to Dont_start_sound_objects

Dont_start_sound_objects is defined for D1, but never set.  Restrict it
to D2 and let D1 skip the test.
This commit is contained in:
Kp 2015-11-26 02:56:55 +00:00
parent 40588aaa0a
commit fee144261f
2 changed files with 8 additions and 1 deletions

View file

@ -126,9 +126,10 @@ extern void digi_start_sound_queued( short soundnum, fix volume );
extern int digi_volume;
#if defined(DXX_BUILD_DESCENT_I)
extern int digi_sample_rate;
#elif defined(DXX_BUILD_DESCENT_II)
extern int Dont_start_sound_objects;
#endif
extern int SoundQ_channel;
extern int Dont_start_sound_objects;
void digi_select_system(int);
#ifdef _WIN32

View file

@ -293,8 +293,10 @@ static void digi_unpause_looping_sound()
digi_play_sample_looping_sub();
}
#if defined(DXX_BUILD_DESCENT_II)
//hack to not start object when loading level
int Dont_start_sound_objects = 0;
#endif
static void digi_start_sound_object(sound_object &s)
{
@ -304,8 +306,10 @@ static void digi_start_sound_object(sound_object &s)
if ( s.volume <= 0 )
return;
#if defined(DXX_BUILD_DESCENT_II)
if ( Dont_start_sound_objects )
return;
#endif
// only use up to half the sound channels for "permanent" sounts
if ((s.flags & SOF_PERMANENT) && (N_active_sound_objects >= max(1, digi_max_channels / 4)))
@ -334,11 +338,13 @@ static void digi_link_sound_common(cobjptr_t viewer, sound_object &so, const vms
so.max_distance = max_distance;
so.volume = 0;
so.pan = 0;
#if defined(DXX_BUILD_DESCENT_II)
if (Dont_start_sound_objects) { //started at level start
so.flags |= SOF_PERMANENT;
so.channel = -1;
}
else
#endif
{
digi_get_sound_loc(viewer->orient, viewer->pos, viewer->segnum,
pos, segnum, so.max_volume,