From 183eab2914501b06f603c4f75b3cc37831e1d074 Mon Sep 17 00:00:00 2001 From: zicodxx <> Date: Sun, 18 May 2008 13:20:06 +0000 Subject: [PATCH] Reworked keys for song changing a bit; Added Song control keys to help menu --- CHANGELOG.txt | 1 + main/game.c | 23 ++++++++++++++++++++--- main/songs.c | 17 +++++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0a367f91b..6a604ce5c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ D1X-Rebirth Changelog 20080518 -------- include/physfsx.h, main/config.c: set "Jukebox" as the default jukebox path, for Mac OS 9 look for d1x.ini outside the app bundle +main/game.c, main/songs.c: Reworked keys for song changing a bit; Added Song control keys to help menu 20080516 -------- diff --git a/main/game.c b/main/game.c index 7f632e47d..e782dba66 100644 --- a/main/game.c +++ b/main/game.c @@ -89,10 +89,10 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "timer.h" #include "vers_id.h" #include "fvi.h" -//MD2211 #include "jukebox.h" #include "console.h" #include "playsave.h" +#include "config.h" extern void change_res(); extern void newmenu_close(); @@ -1407,6 +1407,10 @@ void show_help() m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_PRTSCN; m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_1TO5; m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_6TO10; +#ifdef USE_SDLMIXER + m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Shift-F9/F10\t Play/Pause Jukebox"; + m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Shift-F11/F12\t Previous/Next Song"; +#endif m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = ""; m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "MULTIPLAYER:"; m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "ALT-F4\t SHOW RETICLE NAMES"; @@ -2186,10 +2190,23 @@ void HandleGameKey(int key) jukebox_stop(); break; case KEY_ALTED + KEY_SHIFTED + KEY_F11: - jukebox_prev(); + if (GameCfg.JukeboxOn) + jukebox_prev(); + else + songs_goto_prev_song(); break; case KEY_ALTED + KEY_SHIFTED + KEY_F12: - jukebox_next(); + if (GameCfg.JukeboxOn) + jukebox_next(); + else + songs_goto_next_song(); + break; +#else + case KEY_ALTED + KEY_SHIFTED + KEY_F11: + songs_goto_prev_song(); + break; + case KEY_ALTED + KEY_SHIFTED + KEY_F12: + songs_goto_next_song(); break; #endif diff --git a/main/songs.c b/main/songs.c index 025f30301..300d8732b 100644 --- a/main/songs.c +++ b/main/songs.c @@ -126,6 +126,8 @@ void songs_play_song( int songnum, int repeat ) digi_play_midi_song( Songs[songnum].filename, Songs[songnum].melodic_bank_file, Songs[songnum].drum_bank_file, repeat ); } +int current_song_level; + void songs_play_level_song( int levelnum ) { int songnum; @@ -137,6 +139,8 @@ void songs_play_level_song( int levelnum ) if (cGameSongsAvailable < 1) return; + current_song_level = levelnum; + if (levelnum < 0) songnum = (-levelnum) % cGameSongsAvailable; else @@ -145,3 +149,16 @@ void songs_play_level_song( int levelnum ) songnum += SONG_LEVEL_MUSIC; digi_play_midi_song( Songs[songnum].filename, Songs[songnum].melodic_bank_file, Songs[songnum].drum_bank_file, 1 ); } + +//goto the next level song +void songs_goto_next_song() +{ + songs_play_level_song(current_song_level+1); +} + +//goto the previous level song +void songs_goto_prev_song() +{ + if (current_song_level > 1) + songs_play_level_song(current_song_level-1); +}