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; extern int digi_volume;
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
extern int digi_sample_rate; extern int digi_sample_rate;
#elif defined(DXX_BUILD_DESCENT_II)
extern int Dont_start_sound_objects;
#endif #endif
extern int SoundQ_channel; extern int SoundQ_channel;
extern int Dont_start_sound_objects;
void digi_select_system(int); void digi_select_system(int);
#ifdef _WIN32 #ifdef _WIN32

View file

@ -293,8 +293,10 @@ static void digi_unpause_looping_sound()
digi_play_sample_looping_sub(); digi_play_sample_looping_sub();
} }
#if defined(DXX_BUILD_DESCENT_II)
//hack to not start object when loading level //hack to not start object when loading level
int Dont_start_sound_objects = 0; int Dont_start_sound_objects = 0;
#endif
static void digi_start_sound_object(sound_object &s) 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 ) if ( s.volume <= 0 )
return; return;
#if defined(DXX_BUILD_DESCENT_II)
if ( Dont_start_sound_objects ) if ( Dont_start_sound_objects )
return; return;
#endif
// only use up to half the sound channels for "permanent" sounts // 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))) 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.max_distance = max_distance;
so.volume = 0; so.volume = 0;
so.pan = 0; so.pan = 0;
#if defined(DXX_BUILD_DESCENT_II)
if (Dont_start_sound_objects) { //started at level start if (Dont_start_sound_objects) { //started at level start
so.flags |= SOF_PERMANENT; so.flags |= SOF_PERMANENT;
so.channel = -1; so.channel = -1;
} }
else else
#endif
{ {
digi_get_sound_loc(viewer->orient, viewer->pos, viewer->segnum, digi_get_sound_loc(viewer->orient, viewer->pos, viewer->segnum,
pos, segnum, so.max_volume, pos, segnum, so.max_volume,