diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 524ae6ff9..e4702c469 100755 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ D2X-Rebirth Changelog 20070727 -------- 2d/font.c, arch/ogl/ogl.c, include/gr.h, main/automap.c, main/config.c, main/credits.c, main/game.c, main/gamefont.c, main/gamefont.h, main/gamerend.c, main/gameseq.c, main/gauges.c, main/hud.c, main/inferno.c, main/kconfig.c, main/kmatrix.c, main/menu.c, main/menu.h, main/movie.c, main/network.c, main/newmenu.c, main/playsave.c, main/scores.c, main/state.c, main/titles.c: Cleanup in Config- and PLX-code; Saving Resolution in Config file so it will apply directly at game-init; Removed seperated resolution mode for menus, SCREEN_MENU now always uses Game_screen_mode; Last FindArg cleanups; Removed MenuHires(Available) and FontHires(Available) and replaced with HiresGFX(Available) to make a more common way to determinate if Hires data is used or not (interactive Demo); Improved support for Interactive Demo +main/gamecntl.c, main/menu.c, main/songs.c, main/songs.h: Control Redbook activity with GameArg.SndEnableRedbook only 20070723 -------- diff --git a/main/gamecntl.c b/main/gamecntl.c index e856a8a5e..86c338499 100755 --- a/main/gamecntl.c +++ b/main/gamecntl.c @@ -425,7 +425,6 @@ void format_time(char *str, int secs_int) sprintf(str, "%1d:%02d:%02d", h, m, s ); } -extern int Redbook_playing; void do_show_netgame_help(); //Process selected keys until game unpaused. returns key that left pause (p or esc) @@ -526,7 +525,7 @@ int do_game_pause() start_time(); - if (Redbook_playing) + if (GameArg.SndEnableRedbook) RBAResume(); digi_resume_all(); diff --git a/main/menu.c b/main/menu.c index 96a0141d2..e231e6a87 100755 --- a/main/menu.c +++ b/main/menu.c @@ -841,12 +841,8 @@ void do_options_menu() write_player_file(); } -extern int Redbook_playing; void set_redbook_volume(int volume); -WIN(extern int RBCDROM_State); -WIN(static BOOL windigi_driver_off=FALSE); - void sound_menuset(int nitems, newmenu_item * items, int *last_key, int citem ) { nitems=nitems; @@ -854,185 +850,47 @@ void sound_menuset(int nitems, newmenu_item * items, int *last_key, int citem ) if ( Config_digi_volume != items[0].value ) { Config_digi_volume = items[0].value; - - #ifdef WINDOWS - if (windigi_driver_off) { - digi_midi_wait(); - digi_init_digi(); - Sleep(500); - windigi_driver_off = FALSE; - } - #endif - - #ifndef MACINTOSH - digi_set_digi_volume( (Config_digi_volume*32768)/8 ); - #else - digi_set_digi_volume( (Config_digi_volume*256)/8 ); - #endif + digi_set_digi_volume( (Config_digi_volume*32768)/8 ); digi_play_sample_once( SOUND_DROP_BOMB, F1_0 ); } -#ifdef WINDOWS - if (!wmidi_support_volchange()) { - if (!items[1].value && Config_midi_volume) { - Config_midi_volume = 0; - digi_set_midi_volume(0); - digi_play_midi_song( NULL, NULL, NULL, 0 ); - } - else if (Config_midi_volume == 0 && items[1].value) { - digi_set_midi_volume(64); - Config_midi_volume = 4; + if (GameArg.SndEnableRedbook) + { + if (Config_redbook_volume != items[1].value ) { + Config_redbook_volume = items[1].value; + set_redbook_volume(Config_redbook_volume); } + } - else // LINK TO BELOW IF -#endif - if (Config_midi_volume != items[1].value ) { - Config_midi_volume = items[1].value; - #ifdef WINDOWS - if (!windigi_driver_off) { - Sleep(200); - digi_close_digi(); - Sleep(100); - windigi_driver_off = TRUE; - } - #endif - #ifndef MACINTOSH + else + { + if (Config_midi_volume != items[1].value ) { + Config_midi_volume = items[1].value; digi_set_midi_volume( (Config_midi_volume*128)/8 ); - #else - digi_set_midi_volume( (Config_midi_volume*256)/8 ); - #endif - } -#ifdef MACINTOSH - if (Config_master_volume != items[3].value ) { - Config_master_volume = items[3].value; - digi_set_master_volume( Config_master_volume ); - digi_play_sample_once( SOUND_DROP_BOMB, F1_0 ); - } -#endif - - // don't enable redbook for a non-apple demo version of the shareware demo - #if !defined(SHAREWARE) || ( defined(SHAREWARE) && defined(APPLE_DEMO) ) - - if (Config_redbook_volume != items[2].value ) { - Config_redbook_volume = items[2].value; - set_redbook_volume(Config_redbook_volume); - } - - if (items[4].value != (Redbook_playing!=0)) { - - if (items[4].value && !GameArg.SndEnableRedbook) { - nm_messagebox (TXT_SORRY,1,TXT_OK,"Redbook audio is disabled\nuse -redbook command to enable"); - items[4].value = 0; - items[4].redraw = 1; - } - else { - Redbook_enabled = items[4].value; - - mprintf((1, "Redbook_enabled = %d\n", Redbook_enabled)); - - if (Function_mode == FMODE_MENU) - songs_play_song(SONG_TITLE,1); - else if (Function_mode == FMODE_GAME) - songs_play_level_song( Current_level_num ); - else - Int3(); - - if (items[4].value && !Redbook_playing) { - #ifdef WINDOWS - if (RBCDROM_State == -1) - nm_messagebox (TXT_SORRY,1,TXT_OK,"Cannot start CD Music.\nAnother application is\nusing the CD player.\n"); - else // link to next code line! - #endif - nm_messagebox (TXT_SORRY,1,TXT_OK,"Cannot start CD Music. Insert\nyour Descent II CD and try again"); - items[4].value = 0; - items[4].redraw = 1; - } - - items[1].type = (Redbook_playing?NM_TYPE_TEXT:NM_TYPE_SLIDER); - items[1].redraw = 1; - items[2].type = (Redbook_playing?NM_TYPE_SLIDER:NM_TYPE_TEXT); - items[2].redraw = 1; - } } - #endif - citem++; //kill warning } void do_sound_menu() { - newmenu_item m[6]; + newmenu_item m[4]; int i = 0; - #ifdef WINDOWS - extern BOOL DIGIDriverInit; - if (!DIGIDriverInit) windigi_driver_off = TRUE; - else windigi_driver_off = FALSE; - #endif - do { m[ 0].type = NM_TYPE_SLIDER; m[ 0].text=TXT_FX_VOLUME; m[0].value=Config_digi_volume;m[0].min_value=0; m[0].max_value=8; - m[ 1].type = (Redbook_playing?NM_TYPE_TEXT:NM_TYPE_SLIDER); m[ 1].text="MIDI music volume"; m[1].value=Config_midi_volume;m[1].min_value=0; m[1].max_value=8; + m[ 1].type = NM_TYPE_SLIDER; m[ 1].text=(GameArg.SndEnableRedbook?"CD music volume":"MIDI music volume"); m[1].value=(GameArg.SndEnableRedbook?Config_redbook_volume:Config_midi_volume);m[1].min_value=0; m[1].max_value=8; + m[ 2].type = NM_TYPE_TEXT; m[ 2].text=""; + m[ 3].type = NM_TYPE_CHECK; m[ 3].text=TXT_REVERSE_STEREO; m[3].value=Config_channels_reversed; - #ifdef WINDOWS - if (!wmidi_support_volchange() && !Redbook_playing) { - m[1].type = NM_TYPE_CHECK; - m[1].text = "MIDI MUSIC"; - if (Config_midi_volume) m[1].value = 1; - } - #endif - - #ifdef SHAREWARE - m[ 2].type = NM_TYPE_TEXT; m[ 2].text=""; - m[ 3].type = NM_TYPE_TEXT; m[ 3].text=""; - m[ 4].type = NM_TYPE_TEXT; m[ 4].text=""; - #ifdef MACINTOSH - m[ 3].type = NM_TYPE_SLIDER; m[ 3].text="Sound Manager Volume"; m[3].value=Config_master_volume;m[3].min_value=0; m[3].max_value=8; - - #ifdef APPLE_DEMO - m[ 2].type = (Redbook_playing?NM_TYPE_SLIDER:NM_TYPE_TEXT); m[ 2].text="CD music volume"; m[2].value=Config_redbook_volume;m[2].min_value=0; m[2].max_value=8; - m[ 4].type = NM_TYPE_CHECK; m[ 4].text="CD Music (Redbook) enabled"; m[4].value=(Redbook_playing!=0); - #endif - - #endif - - #else // ifdef SHAREWARE - m[ 2].type = (Redbook_playing?NM_TYPE_SLIDER:NM_TYPE_TEXT); m[ 2].text="CD music volume"; m[2].value=Config_redbook_volume;m[2].min_value=0; m[2].max_value=8; - - #ifndef MACINTOSH - m[ 3].type = NM_TYPE_TEXT; m[ 3].text=""; - #else - m[ 3].type = NM_TYPE_SLIDER; m[ 3].text="Sound Manager Volume"; m[3].value=Config_master_volume;m[3].min_value=0; m[3].max_value=8; - #endif - - m[ 4].type = NM_TYPE_CHECK; m[ 4].text="CD Music (Redbook) enabled"; m[4].value=(Redbook_playing!=0); - #endif - - m[ 5].type = NM_TYPE_CHECK; m[ 5].text=TXT_REVERSE_STEREO; m[5].value=Config_channels_reversed; - i = newmenu_do1( NULL, "Sound Effects & Music", sizeof(m)/sizeof(*m), m, sound_menuset, i ); - Redbook_enabled = m[4].value; - Config_channels_reversed = m[5].value; + Config_channels_reversed = m[3].value; } while( i>-1 ); - -#ifdef WINDOWS - if (windigi_driver_off) { - digi_midi_wait(); - Sleep(500); - digi_init_digi(); - windigi_driver_off=FALSE; - } -#endif - } - -extern int Automap_always_hires; - #define ADD_CHECK(n,txt,v) do { m[n].type=NM_TYPE_CHECK; m[n].text=txt; m[n].value=v;} while (0) void do_toggles_menu() @@ -1059,8 +917,6 @@ void do_toggles_menu() ADD_CHECK(3, "Headlight on when picked up", Headlight_active_default ); ADD_CHECK(4, "Show guided missile in main display", Guided_in_big_window ); ADD_CHECK(5, "Escort robot hot keys",EscortHotKeys); - //ADD_CHECK(6, "Always use 640x480 or greater automap", Automap_always_hires); - //when adding more options, change N_TOGGLE_ITEMS above i = newmenu_do1( NULL, "Toggles", N_TOGGLE_ITEMS, m, NULL, i ); diff --git a/main/songs.c b/main/songs.c index d2d83b594..3315df02a 100755 --- a/main/songs.c +++ b/main/songs.c @@ -52,10 +52,8 @@ int Num_songs; extern void digi_stop_current_song(); -int Redbook_enabled = 1; - //0 if redbook is no playing, else the track number -int Redbook_playing = 0; +static int Redbook_playing = 0; #define NumLevelSongs (Num_songs - SONG_FIRST_LEVEL_SONG) @@ -191,7 +189,7 @@ int play_redbook_track(int tracknum,int keep_playing) { Redbook_playing = 0; - if (!RBAEnabled() && Redbook_enabled && GameArg.SndEnableRedbook) + if (!RBAEnabled() && GameArg.SndEnableRedbook) reinit_redbook(); if (force_rb_register) { @@ -199,7 +197,7 @@ int play_redbook_track(int tracknum,int keep_playing) force_rb_register = 0; } - if (Redbook_enabled && RBAEnabled()) { + if (RBAEnabled()) { int num_tracks = RBAGetNumberOfTracks(); if (tracknum <= num_tracks) if (RBAPlayTracks(tracknum,keep_playing?num_tracks:tracknum)) { @@ -238,7 +236,7 @@ int songs_haved2_cd() { int discid; - if (!Redbook_enabled) + if (!GameArg.SndEnableRedbook) return 0; discid = RBAGetDiscID(); @@ -342,7 +340,7 @@ void songs_play_level_song( int levelnum ) songnum = (levelnum>0)?(levelnum-1):(-levelnum); - if (!RBAEnabled() && Redbook_enabled && GameArg.SndEnableRedbook) + if (!RBAEnabled() && GameArg.SndEnableRedbook) reinit_redbook(); if (force_rb_register) { @@ -350,7 +348,7 @@ void songs_play_level_song( int levelnum ) force_rb_register = 0; } - if (Redbook_enabled && RBAEnabled() && (n_tracks = RBAGetNumberOfTracks()) > 1) { + if (GameArg.SndEnableRedbook && RBAEnabled() && (n_tracks = RBAGetNumberOfTracks()) > 1) { //try to play redbook diff --git a/main/songs.h b/main/songs.h index 860dfcfe6..e736d6a22 100755 --- a/main/songs.h +++ b/main/songs.h @@ -49,10 +49,6 @@ extern song_info Songs[]; extern int Num_songs; //how many MIDI songs #endif -//whether or not redbook audio should be played -extern int Redbook_enabled; -extern int Redbook_playing; // track that is currently playing - void songs_play_song( int songnum, int repeat ); void songs_play_level_song( int levelnum );