Added a simple random function for the Jukebox; Removed one small printf I once added for debugging
This commit is contained in:
parent
45d8b82ab6
commit
c7038983d5
|
@ -1,5 +1,9 @@
|
|||
D1X-Rebirth Changelog
|
||||
|
||||
20110120
|
||||
--------
|
||||
arch/sdl/jukebox.c, main/digi.h, main/menu.c, main/songs.c: Added a simple random function for the Jukebox; Removed one small printf I once added for debugging
|
||||
|
||||
20110119
|
||||
--------
|
||||
include/3d.h, main/game.h, main/gamerend.c, main/gauges.c, main/multi.c, main/multi.h, main/net_udp.c: Introducing new BOUNTY Multiplayer game mode by Matt "1360" Vandermeulen <matt1360@gmail.com>; Fit show_HUD_names code to be more similar to D2X - names display still client-decided tho
|
||||
|
|
|
@ -187,7 +187,7 @@ void jukebox_load()
|
|||
return;
|
||||
}
|
||||
|
||||
for (i = 0; JukeboxSongs.list[i]; i++) {printf("%s\n",JukeboxSongs.list[i]);}
|
||||
for (i = 0; JukeboxSongs.list[i]; i++) {}
|
||||
JukeboxSongs.num_songs = i;
|
||||
|
||||
if (new_path)
|
||||
|
@ -216,7 +216,10 @@ void jukebox_hook_next()
|
|||
{
|
||||
if (!JukeboxSongs.list || GameCfg.CMLevelMusicTrack[0] == -1) return;
|
||||
|
||||
GameCfg.CMLevelMusicTrack[0]++;
|
||||
if (GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_RAND)
|
||||
GameCfg.CMLevelMusicTrack[0] = d_rand() % GameCfg.CMLevelMusicTrack[1]; // simply a random selection - no check if this song has already been played. But that's how I roll!
|
||||
else
|
||||
GameCfg.CMLevelMusicTrack[0]++;
|
||||
if (GameCfg.CMLevelMusicTrack[0] + 1 > GameCfg.CMLevelMusicTrack[1])
|
||||
GameCfg.CMLevelMusicTrack[0] = 0;
|
||||
|
||||
|
@ -242,7 +245,7 @@ int jukebox_play()
|
|||
memset(full_filename, '\0', strlen(GameCfg.CMLevelMusicPath)+strlen(music_filename)+1);
|
||||
snprintf(full_filename, strlen(GameCfg.CMLevelMusicPath)+strlen(music_filename)+1, "%s%s", GameCfg.CMLevelMusicPath, music_filename);
|
||||
|
||||
if (!mix_play_file(full_filename, ((GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_CONT)?0:1), ((GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_CONT)?jukebox_hook_next:NULL)))
|
||||
if (!mix_play_file(full_filename, ((GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_LEVEL)?1:0), ((GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_LEVEL)?NULL:jukebox_hook_next)))
|
||||
{
|
||||
d_free(full_filename);
|
||||
return 0; // whoops, got an error
|
||||
|
|
|
@ -111,6 +111,7 @@ extern void digi_start_sound_queued( short soundnum, fix volume );
|
|||
// play-order definitions for custom music
|
||||
#define MUSIC_CM_PLAYORDER_CONT 0
|
||||
#define MUSIC_CM_PLAYORDER_LEVEL 1
|
||||
#define MUSIC_CM_PLAYORDER_RAND 2
|
||||
|
||||
#define SOUND_MAX_VOLUME F1_0 / 2
|
||||
|
||||
|
|
12
main/menu.c
12
main/menu.c
|
@ -1580,7 +1580,7 @@ int select_file_recursive(char *title, const char *orig_path, char **ext_list, i
|
|||
|
||||
#endif
|
||||
|
||||
int opt_sm_digivol = -1, opt_sm_musicvol = -1, opt_sm_revstereo = -1, opt_sm_mtype0 = -1, opt_sm_mtype1 = -1, opt_sm_mtype2 = -1, opt_sm_mtype3 = -1, opt_sm_redbook_playorder = -1, opt_sm_mtype3_lmpath = -1, opt_sm_mtype3_lmplayorder1 = -1, opt_sm_mtype3_lmplayorder2 = -1, opt_sm_cm_mtype3_file1_b = -1, opt_sm_cm_mtype3_file1 = -1, opt_sm_cm_mtype3_file2_b = -1, opt_sm_cm_mtype3_file2 = -1, opt_sm_cm_mtype3_file3_b = -1, opt_sm_cm_mtype3_file3 = -1, opt_sm_cm_mtype3_file4_b = -1, opt_sm_cm_mtype3_file4 = -1, opt_sm_cm_mtype3_file5_b = -1, opt_sm_cm_mtype3_file5 = -1;
|
||||
int opt_sm_digivol = -1, opt_sm_musicvol = -1, opt_sm_revstereo = -1, opt_sm_mtype0 = -1, opt_sm_mtype1 = -1, opt_sm_mtype2 = -1, opt_sm_mtype3 = -1, opt_sm_redbook_playorder = -1, opt_sm_mtype3_lmpath = -1, opt_sm_mtype3_lmplayorder1 = -1, opt_sm_mtype3_lmplayorder2 = -1, opt_sm_mtype3_lmplayorder3 = -1, opt_sm_cm_mtype3_file1_b = -1, opt_sm_cm_mtype3_file1 = -1, opt_sm_cm_mtype3_file2_b = -1, opt_sm_cm_mtype3_file2 = -1, opt_sm_cm_mtype3_file3_b = -1, opt_sm_cm_mtype3_file3 = -1, opt_sm_cm_mtype3_file4_b = -1, opt_sm_cm_mtype3_file4 = -1, opt_sm_cm_mtype3_file5_b = -1, opt_sm_cm_mtype3_file5 = -1;
|
||||
|
||||
void set_extmusic_volume(int volume);
|
||||
|
||||
|
@ -1658,6 +1658,11 @@ int sound_menuset(newmenu *menu, d_event *event, void *userdata)
|
|||
GameCfg.CMLevelMusicPlayOrder = MUSIC_CM_PLAYORDER_LEVEL;
|
||||
replay = (Game_wind != NULL);
|
||||
}
|
||||
else if (citem == opt_sm_mtype3_lmplayorder3)
|
||||
{
|
||||
GameCfg.CMLevelMusicPlayOrder = MUSIC_CM_PLAYORDER_RAND;
|
||||
replay = (Game_wind != NULL);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
@ -1733,7 +1738,7 @@ int sound_menuset(newmenu *menu, d_event *event, void *userdata)
|
|||
}
|
||||
|
||||
#ifdef USE_SDLMIXER
|
||||
#define SOUND_MENU_NITEMS 32
|
||||
#define SOUND_MENU_NITEMS 33
|
||||
#else
|
||||
#ifdef _WIN32
|
||||
#define SOUND_MENU_NITEMS 11
|
||||
|
@ -1814,6 +1819,9 @@ void do_sound_menu()
|
|||
opt_sm_mtype3_lmplayorder2 = nitems;
|
||||
m[nitems].type = NM_TYPE_RADIO; m[nitems].text = "one track per level"; m[nitems].value = (GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_LEVEL); m[nitems].group = 1; nitems++;
|
||||
|
||||
opt_sm_mtype3_lmplayorder3 = nitems;
|
||||
m[nitems].type = NM_TYPE_RADIO; m[nitems].text = "random"; m[nitems].value = (GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_RAND); m[nitems].group = 1; nitems++;
|
||||
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
|
||||
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "non-level music:";
|
||||
|
|
|
@ -446,7 +446,9 @@ int songs_play_level_song( int levelnum, int offset )
|
|||
#ifdef USE_SDLMIXER
|
||||
case MUSIC_TYPE_CUSTOM:
|
||||
{
|
||||
if (!offset)
|
||||
if (GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_RAND)
|
||||
GameCfg.CMLevelMusicTrack[0] = d_rand() % GameCfg.CMLevelMusicTrack[1]; // simply a random selection - no check if this song has already been played. But that's how I roll!
|
||||
else if (!offset)
|
||||
{
|
||||
if (GameCfg.CMLevelMusicPlayOrder == MUSIC_CM_PLAYORDER_CONT)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue