diff --git a/code/datums/audio/_audio.dm b/code/datums/audio/_audio.dm index c513d68679..96a9021eeb 100644 --- a/code/datums/audio/_audio.dm +++ b/code/datums/audio/_audio.dm @@ -1,3 +1,5 @@ +/* +// FLIPPER REMOVAL - see modular_flipper/code/datums/audio/ /decl/music_track var/artist var/title @@ -23,3 +25,4 @@ // No VV editing anything about music tracks /decl/music_track/VV_static() return ..() + vars +*/ diff --git a/code/datums/audio/_tracks.dm b/code/datums/audio/_tracks.dm index 55fe5d0ba3..d1d1f319cf 100644 --- a/code/datums/audio/_tracks.dm +++ b/code/datums/audio/_tracks.dm @@ -1,3 +1,5 @@ +/* +// FLIPPER REMOVAL - see modular_flipper/code/datums/audio/ /datum/track var/title var/track @@ -293,3 +295,4 @@ title = "Russkiy rep Diskoteka" song = 'sound/music/russianrapdisco.ogg' license = /decl/license/grandfathered +*/ diff --git a/code/datums/audio/jukebox.dm b/code/datums/audio/jukebox.dm index 336b093a0d..5c47891fb5 100644 --- a/code/datums/audio/jukebox.dm +++ b/code/datums/audio/jukebox.dm @@ -1,5 +1,5 @@ - - +/* +// FLIPPER REMOVAL - see modular_flipper/code/datums/audio/ GLOBAL_LIST_INIT(music_tracks, list( "Beyond" = /decl/music_track/ambispace, "Clouds of Fire" = /decl/music_track/clouds_of_fire, @@ -51,4 +51,5 @@ GLOBAL_LIST_INIT(jukebox_secret_tracks, list( var/track_list = LAZYLEN(tracks) ? tracks : GLOB.jukebox_secret_tracks for(var/track_name in track_list) var/track_path = track_list[track_name] - . += new/datum/track(track_name, track_path) \ No newline at end of file + . += new/datum/track(track_name, track_path) +*/ diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 2b75d72245..3ac033f207 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -240,11 +240,13 @@ var/area/main_area = get_area(src) if(freq) - var/sound/new_song = sound(current_track.GetTrack(), channel = 1, repeat = 1, volume = 25) + //var/sound/new_song = sound(current_track.GetTrack(), channel = 1, repeat = 1, volume = 25) // FLIPPER EDIT - config/jukebox_tracks/ + var/sound/new_song = sound(current_track.path, channel = 1, repeat = 1, volume = 25) new_song.frequency = freq main_area.forced_ambience = list(new_song) else - main_area.forced_ambience = list(current_track.GetTrack()) + //main_area.forced_ambience = list(current_track.GetTrack()) // FLIPPER EDIT - config/jukebox_tracks/ + main_area.forced_ambience = list(current_track.path) for(var/mob/living/M in mobs_in_area(main_area)) if(M.mind) diff --git a/code/modules/clothing/ears/headphones.dm b/code/modules/clothing/ears/headphones.dm index 92c03d7fe6..d5a6c5b277 100644 --- a/code/modules/clothing/ears/headphones.dm +++ b/code/modules/clothing/ears/headphones.dm @@ -10,6 +10,7 @@ var/sound_channel var/current_track var/music_volume = 50 + var/list/datum/track/tracks //FLIPPER ADDITION - config/jukebox_tracks/ /obj/item/clothing/head/headphones/Initialize() . = ..() @@ -60,10 +61,19 @@ /obj/item/clothing/head/headphones/proc/play_music(mob/user) if(!user || !user.client) return + /* + // FLIPPER EDIT - config/jukebox_tracks/ if(current_track) var/decl/music_track/track = GET_DECL(GLOB.music_tracks[current_track]) user << sound(null, channel = sound_channel) user << sound(track.song, repeat = 1, wait = 0, volume = music_volume, channel = sound_channel) + */ + + if(current_track) + var/datum/track/track = tracks[current_track] + user << sound(null, channel = sound_channel) + user << sound(track.path, repeat = 1, wait = 0, volume = music_volume, channel = sound_channel) + // FLIPPER EDIT END /obj/item/clothing/head/headphones/proc/stop_music(mob/user) if(!user || !user.client) @@ -77,11 +87,21 @@ dat += "Switch [headphones_on ? "off" : "on"]" dat += "Volume: [music_volume] -+" dat += "Tracks:" + /* + // FLIPPER EDIT - config/jukebox_tracks/ for(var/track in GLOB.music_tracks) if(track == current_track) dat += "[track]" else dat += "[track]" + */ + + for(var/track in tracks) + if(track == current_track) + dat += "[track]" + else + dat += "[track]" + // FLIPPER EDIT END var/datum/browser/popup = new(user, "headphones", name, 290, 410) popup.set_content(jointext(dat,"
")) @@ -102,4 +122,4 @@ if(headphones_on) play_music(usr) interact(usr) - updateUsrDialog() \ No newline at end of file + updateUsrDialog() diff --git a/code/unit_tests/music_test.dm b/code/unit_tests/music_test.dm index b558cbe9e4..f79d04684f 100644 --- a/code/unit_tests/music_test.dm +++ b/code/unit_tests/music_test.dm @@ -1,3 +1,5 @@ +/* +// FLIPPER EDIT - config/jukebox_tracks/ /datum/unit_test/music_track_validate name = "MUSIC TRACK: Validate Music Tracks" @@ -50,4 +52,5 @@ else pass("All jukeboxes had valid tracks.") - return 1 \ No newline at end of file + return 1 +*/ diff --git a/config/.gitignore b/config/.gitignore index 02fb86d770..fef3536469 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -2,6 +2,11 @@ /* !/*/ -#FLIPPER EDIT - title music shit +#FLIPPER EDIT - music shit /title_music/sounds/* !/title_music/sounds/exclude + +/jukebox_music/sounds/* +!/jukebox_music/sounds/exclude +/jukebox_music/secret_sounds/* +!/jukebox_music/secret_sounds/exclude diff --git a/config/jukebox_music/README.txt b/config/jukebox_music/README.txt new file mode 100644 index 0000000000..ea14eb9345 --- /dev/null +++ b/config/jukebox_music/README.txt @@ -0,0 +1,4 @@ +Throw any music you want into either /sounds/ or /secret_sounds/. If it's in /sounds/, it'll be able to be listened to with headphones and an unhacked jukebox. +Anything in /secret_sounds/ can only be heard of a hacked jukebox. + +IMPORTANT: Make sure filenames DO NOT have any '.' outside of a file extension, otherwise the song title will be fucked up. \ No newline at end of file diff --git a/modular_flipper/code/datums/audio/_audio.dm b/config/jukebox_music/secret_sounds/exclude similarity index 100% rename from modular_flipper/code/datums/audio/_audio.dm rename to config/jukebox_music/secret_sounds/exclude diff --git a/config/jukebox_music/sounds/exclude b/config/jukebox_music/sounds/exclude new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modular_flipper/code/datums/audio/_tracks.dm b/modular_flipper/code/datums/audio/_tracks.dm new file mode 100644 index 0000000000..2d855e3755 --- /dev/null +++ b/modular_flipper/code/datums/audio/_tracks.dm @@ -0,0 +1,7 @@ +/datum/track + var/title + var/path + +/datum/track/New(_title, _path) + title = _title + path = _path diff --git a/modular_flipper/code/datums/audio/jukebox.dm b/modular_flipper/code/datums/audio/jukebox.dm new file mode 100644 index 0000000000..62e0cf9cf9 --- /dev/null +++ b/modular_flipper/code/datums/audio/jukebox.dm @@ -0,0 +1,51 @@ +/proc/setup_music_tracks(var/list/tracks) + . = list() + var/list/possible_tracks = flist("config/jukebox_music/sounds/") + + var/list/byond_sound_formats = list( + "mid" = TRUE, + "midi" = TRUE, + "mod" = TRUE, + "it" = TRUE, + "s3m" = TRUE, + "xm" = TRUE, + "oxm" = TRUE, + "wav" = TRUE, + "ogg" = TRUE, + "raw" = TRUE, + "wma" = TRUE, + "aiff" = TRUE, + ) + + for(var/songs in possible_tracks) + var/list/split_name = splittext(songs,".") + if(split_name.len >= 2) + var/ext = lowertext(split_name[split_name.len]) //pick the real extension, no 'honk.ogg.exe' nonsense here + if(byond_sound_formats[ext]) + . += new/datum/track(split_name[1], "config/jukebox_music/sounds/[songs]") //if a song is named some shit like "Awesome.FuckingSong.ogg", the title is only gonna be "Awesome" + +/proc/setup_secret_music_tracks(var/list/tracks) + . = list() + var/list/possible_tracks = flist("config/jukebox_music/secret_sounds/") + + var/list/byond_sound_formats = list( + "mid" = TRUE, + "midi" = TRUE, + "mod" = TRUE, + "it" = TRUE, + "s3m" = TRUE, + "xm" = TRUE, + "oxm" = TRUE, + "wav" = TRUE, + "ogg" = TRUE, + "raw" = TRUE, + "wma" = TRUE, + "aiff" = TRUE, + ) + + for(var/songs in possible_tracks) + var/list/split_name = splittext(songs,".") + if(split_name.len >= 2) + var/ext = lowertext(split_name[split_name.len]) //pick the real extension, no 'honk.ogg.exe' nonsense here + if(byond_sound_formats[ext]) + . += new/datum/track(split_name[1], "config/jukebox_music/secret_sounds/[songs]") //if a song is named some shit like "Awesome.FuckingSong.ogg", the title is only gonna be "Awesome" diff --git a/polaris.dme b/polaris.dme index 989f744773..f0e9a85401 100644 --- a/polaris.dme +++ b/polaris.dme @@ -3324,7 +3324,8 @@ #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" #include "maps\~map_system\maps.dm" -#include "modular_flipper\code\datums\audio\_audio.dm" +#include "modular_flipper\code\datums\audio\_tracks.dm" +#include "modular_flipper\code\datums\audio\jukebox.dm" #include "modular_flipper\code\modules\combat_indicator\combat_indicator.dm" #include "modular_flipper\code\modules\mob\mob.dm" #include "modular_flipper\code\modules\mob\living\emote_popup.dm"