diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index ffd3acfb82ca..38d0138139ff 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -211,3 +211,5 @@ var/global/list/bitflags = list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define ALCOHOL_TOLERANCE_EPILEPSY (1<<0) #define WATER_CHOKE_EPILEPSY (1<<1) + +#define STANDARD_PDA_RINGTONE (1<<0) diff --git a/code/__DEFINES/pda.dm b/code/__DEFINES/pda.dm new file mode 100644 index 000000000000..40c0a022d9ac --- /dev/null +++ b/code/__DEFINES/pda.dm @@ -0,0 +1,3 @@ +#define MAX_CUSTOM_RINGTONE_LENGTH 150 + +#define CUSTOM_RINGTONE_NAME "My Ringtone" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index bfb64cd83e61..a6aa0a86735e 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -287,6 +287,10 @@ for(var/pool in L) LAZYADD(virus_types_by_pool[pool], e) + global.ringtones_by_names = list() + for(var/datum/ringtone/Ring as anything in subtypesof(/datum/ringtone)) + global.ringtones_by_names["[initial(Ring.name)]"] = new Ring + /proc/init_joblist() // Moved here because we need to load map config to edit jobs, called from SSjobs //List of job. I can't believe this was calculated multiple times per tick! for(var/T in (subtypesof(/datum/job) - list(/datum/job/ai,/datum/job/cyborg))) diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index dc7ae8b47f1d..1921233f1d05 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -619,6 +619,10 @@ SUBSYSTEM_DEF(job) pda.owner_fingerprints += C.fingerprint_hash //save fingerprints in pda from ID card MA.owner_PDA = pda //add PDA in /datum/money_account + var/chosen_ringtone = H.client?.prefs.chosen_ringtone + if(chosen_ringtone) + pda.set_ringtone(chosen_ringtone, H.client?.prefs.custom_melody) + return TRUE /datum/controller/subsystem/job/proc/LoadJobs(jobsfile) diff --git a/code/datums/music_player.dm b/code/datums/music_player.dm index 6cd888a21627..1e3ed0bd3c07 100644 --- a/code/datums/music_player.dm +++ b/code/datums/music_player.dm @@ -276,7 +276,6 @@ var/global/datum/notes_storage/note_cache_storage = new var/sound/S = global.note_cache_storage.instrument_sound_notes["[sound_path]/[current_note]"] if(!S) S = global.note_cache_storage.instrument_sound_notes["[sound_path]/[current_note]"] = sound("[sound_path]/[current_note].ogg") - playsound(instrument, S, VOL_EFFECTS_INSTRUMENT, volume, FALSE, null, null, falloff = 5) var/pause_time = COUNT_PAUSE(song_tempo) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 7ba3be1a7124..ce34416ce86c 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -81,6 +81,8 @@ item_action_types = list(/datum/action/item_action/hands_free/toggle_pda_light) + var/datum/music_player/chiptune_player + /datum/action/item_action/hands_free/toggle_pda_light name = "Toggle light" @@ -97,6 +99,10 @@ if(default_pen) pen = new default_pen(src) + chiptune_player = new(src, "sound/musical_instruments/pda") + + set_ringtone(pick(ringtones_by_names)) + /obj/item/device/pda/Destroy() var/datum/money_account/MA = get_account(owner_account) if(MA) @@ -110,8 +116,14 @@ else QDEL_NULL(id) QDEL_NULL(pen) + + QDEL_NULL(chiptune_player) + return ..() +/obj/item/device/pda/unable_to_play(mob/living/user) + return FALSE + /obj/item/device/pda/examine(mob/user) ..() if(src in user) @@ -796,6 +808,7 @@ if(mode in safe_pages) mode = 0 //for safety ui_interact(user) //NanoUI requires this proc + stop_ringtone() return /obj/item/device/pda/Topic(href, href_list) @@ -944,6 +957,8 @@ toff = !toff if("Toggle Ringer")//If viewing texts then erase them, if not then toggle silent status message_silent = !message_silent + if(message_silent) + stop_ringtone() if("Clear")//Clears messages if(href_list["option"] == "All") tnote.Cut() @@ -961,20 +976,27 @@ mode=2 if("Ringtone") - var/t = sanitize(input(U, "Please enter new ringtone", name, input_default(ttone)) as text, 20) - if (t && Adjacent(U)) - if(src.hidden_uplink && hidden_uplink.check_trigger(U, lowertext(t), lowertext(lock_code))) - to_chat(U, "The PDA softly beeps.") - ui.close() - else - ttone = t - else - ui.close() - return 0 - if("Message") + stop_ringtone() + var/list/chose_ringtone = global.ringtones_by_names + CUSTOM_RINGTONE_NAME + var/Tone = input(U, "Выберите рингтон", name) as null|anything in chose_ringtone + if(Tone && Adjacent(U)) + var/t + if(Tone == CUSTOM_RINGTONE_NAME) + t = sanitize(input(U, "Введите новый рингтон") as message|null, MAX_CUSTOM_RINGTONE_LENGTH, extra = FALSE, ascii_only = TRUE) + if (!t || !Adjacent(U)) + return + if(src.hidden_uplink && hidden_uplink.check_trigger(U, lowertext(t), lowertext(lock_code))) + to_chat(U, "The PDA softly beeps.") + ui.close() + else + + set_ringtone(Tone, t) + play_ringtone(ignore_presence = TRUE) + if("Message") var/obj/item/device/pda/P = locate(href_list["target"]) create_message(U, P, !href_list["notap"]) + stop_ringtone() if(mode == 2) if(href_list["target"] in conversations) // Need to make sure the message went through, if not welp. active_conversation = href_list["target"] @@ -1564,7 +1586,7 @@ nanomanager.update_user_uis(U, src) // Update the sending user's PDA UI so that they can see the new message if (!P.message_silent) - playsound(P, 'sound/machines/twobeep.ogg', VOL_EFFECTS_MASTER) + P.play_ringtone() P.audible_message("[bicon(P)] *[P.ttone]*", hearing_distance = 3) //Search for holder of the PDA. @@ -1947,4 +1969,37 @@ return FALSE return TRUE +/obj/item/device/pda/proc/play_ringtone(ignore_presence = FALSE) + if(!ignore_presence) + var/mob/user = usr + if(nanomanager.get_open_ui(user, src, "main")) + return + + if(chiptune_player.playing) + return + + chiptune_player.playing = TRUE + INVOKE_ASYNC(chiptune_player, TYPE_PROC_REF(/datum/music_player, playsong), null) + +/obj/item/device/pda/proc/stop_ringtone() + chiptune_player.playing = FALSE + +/obj/item/device/pda/proc/set_ringtone(ringtone, melody = null) + if(!ringtone) + return + stop_ringtone() + + if(ringtone == CUSTOM_RINGTONE_NAME) + if(!melody) + return + + chiptune_player.repeat = 1 + chiptune_player.parse_song_text(melody) + else + var/datum/ringtone/Ring = global.ringtones_by_names[ringtone] + if(!Ring) + return + chiptune_player.repeat = Ring.replays + chiptune_player.parse_song_text(Ring.melody) + #undef TRANSCATION_COOLDOWN diff --git a/code/game/objects/items/devices/PDA/Ringtones.dm b/code/game/objects/items/devices/PDA/Ringtones.dm new file mode 100644 index 000000000000..4fe1409a0040 --- /dev/null +++ b/code/game/objects/items/devices/PDA/Ringtones.dm @@ -0,0 +1,46 @@ +var/global/list/datum/ringtone/ringtones_by_names + +/datum/ringtone + var/name = "Ringtone" + var/melody = "E7,E7,E7" //Не забудьте заменить отступы на новую строку на \n при вставке своих мелодий! + var/replays = 1 + +/datum/ringtone/thinktronic + name = "Thinktronic" + melody = "BPM: 188\nE6/2,D6/1.8,F#5,G#5,C#6/2,B5/1.8,D5,E5\nB5/2,A5/1.8,C#5/0.9,E5/0.8,A5/0.7,,,,,," + replays = 1 + +/datum/ringtone/thinktronic2 + name = "Thinktronic 2" + melody = "BPM: 167\nC6,G5/2,G/2,A5,G, ,B5,C6," + replays = 0 + +/datum/ringtone/flipflap + name = "Flip-Flap" + melody = "BPM: 188\nC5,Eb5,F5,G5/2,C6,C/1.8,G,F,E,C5,E,F,G/2,Ab5\nA/1.8,G,F,E" + replays = 0 + +/datum/ringtone/ring1 + name = "Ring 1" + melody = "BPM: 251\nB5/3,G5/3,B/3,G/3,B/3,G/3,B/3,G/3,B/3,G/3" + replays = 1 + +/datum/ringtone/ring2 + name = "Ring 2" + melody = "BPM: 251\nA5/3,G5/3,A/3,G/3,A/3,G/3,A/3,G/3,A/3,G/3" + replays = 1 + +/datum/ringtone/ring3 + name = "Ring 3" + melody = "BPM: 251\nD5/3,C5/3,D/3,C/3,D/3,C/3,D/3,C/3,D/3,C/3" + replays = 1 + +/datum/ringtone/ring4 + name = "Ring 4" + melody = "BPM: 251\nE5/3,G5/3,E/3,G/3,E/3,G/3,E/3,G/3,E/3,G/3" + replays = 1 + +/datum/ringtone/ring5 + name = "Ring 5" + melody = "BPM: 251\nF5/3,B#5/3,F/3,B/3,F/3,B/3,F/3,B/3,F/3,B/3" + replays = 1 diff --git a/code/game/sound.dm b/code/game/sound.dm index 6d398e5739f7..39b127d2e516 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -101,7 +101,7 @@ voluminosity = if FALSE, removes the difference between left and right ear. S.volume -= max(distance - world.view, 0) * 2 //multiplicative falloff to add on top of natural audio falloff. - if (S.volume <= 0) // no volume means no sound, early check to save on atmos calls + if (S.volume <= 0) // no volume means no sound, early check to save on atmos calls return //sound volume falloff with pressure diff --git a/code/modules/client/character_menu/general.dm b/code/modules/client/character_menu/general.dm index bdd3bb353e98..8d6af5e6deec 100644 --- a/code/modules/client/character_menu/general.dm +++ b/code/modules/client/character_menu/general.dm @@ -135,7 +135,8 @@ . += "Undershirt: [undershirt_t[undershirt]]
" . += "Socks: [socks_t[socks]]
" . += "Backpack Type: [backbaglist[backbag]]
" - . += "Using skirt uniform: [use_skirt ? "Yes" : "No"]" + . += "Using skirt uniform: [use_skirt ? "Yes" : "No"]
" + . += "PDA Ringtone: [chosen_ringtone]" . += "" . += "" @@ -256,6 +257,8 @@ backbag = rand(1, backbaglist.len) if("use_skirt") use_skirt = pick(TRUE, FALSE) + if("ringtone") + chosen_ringtone = pick(global.ringtones_by_names) if("all") randomize_appearance_for() //no params needed if("input") @@ -456,6 +459,19 @@ if(new_backbag) backbag = backbaglist.Find(new_backbag) + if("ringtone") + var/list/pref_ringtones = global.ringtones_by_names + CUSTOM_RINGTONE_NAME + var/Tone = input(user, "Выберите рингтон:", "Character Preference", chosen_ringtone) as null|anything in pref_ringtones + if(!Tone) + return + if(Tone == CUSTOM_RINGTONE_NAME) + var/t = sanitize(input(user, "Введите новый рингтон") as message|null, MAX_CUSTOM_RINGTONE_LENGTH, extra = FALSE, ascii_only = TRUE) + if (!t) + return + custom_melody = t + + chosen_ringtone = Tone + if("use_skirt") use_skirt = !use_skirt diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0386693b93c7..c026adaf4d87 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -178,6 +178,9 @@ var/global/list/preferences_datums = list() var/gear_tab = "General" var/list/custom_items = list() + var/chosen_ringtone = "Flip-Flap" + var/custom_melody = "E7,E7,E7" + /datum/preferences/New(client/C) parent = C UI_style = global.available_ui_styles[1] diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cc97581a705d..8e11fe09656f 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -579,6 +579,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["socks"] >> socks S["backbag"] >> backbag S["use_skirt"] >> use_skirt + S["pda_ringtone"] >> chosen_ringtone + S["pda_custom_melody"] >> custom_melody //Load prefs S["alternate_option"] >> alternate_option @@ -661,6 +663,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car undershirt = sanitize_integer(undershirt, 1, undershirt_t.len, initial(undershirt)) socks = sanitize_integer(socks, 1, socks_t.len, initial(socks)) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) + var/list/pref_ringtones = global.ringtones_by_names + CUSTOM_RINGTONE_NAME + chosen_ringtone = sanitize_inlist(chosen_ringtone, pref_ringtones, initial(chosen_ringtone)) + custom_melody = sanitize(custom_melody, MAX_CUSTOM_RINGTONE_LENGTH, extra = FALSE, ascii_only = TRUE) alternate_option = sanitize_integer(alternate_option, 0, 2, initial(alternate_option)) neuter_gender_voice = sanitize_gender_voice(neuter_gender_voice) @@ -773,6 +778,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["socks"] << socks S["backbag"] << backbag S["use_skirt"] << use_skirt + S["pda_ringtone"] << chosen_ringtone + S["pda_custom_melody"] << custom_melody //Write prefs S["alternate_option"] << alternate_option S["job_preferences"] << job_preferences diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl index ce9b663ff75e..7609558f683b 100644 --- a/nano/templates/pda.tmpl +++ b/nano/templates/pda.tmpl @@ -223,7 +223,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
{{:helper.link(data.message_silent==1 ? 'Ringer: Off' : 'Ringer: On', data.message_silent==1 ? 'volume-off' : 'volume-on', {'choice' : "Toggle Ringer"}, null, 'fixedLeftWide')}} {{:helper.link(data.toff==1 ? 'Messenger: Off' : 'Messenger: On',data.toff==1 ? 'close':'check', {'choice' : "Toggle Messenger"}, null, 'fixedLeftWide')}} - {{:helper.link('Set Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'fixedLeftWide')}} + {{:helper.link('Change Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'fixedLeftWide')}} {{:helper.link('Delete all Conversations', 'trash', {'choice' : "Clear", 'option' : "All"}, null, 'fixedLeftWider')}}
diff --git a/scripts/playsound-checker.py b/scripts/playsound-checker.py deleted file mode 100644 index 04049d4257fa..000000000000 --- a/scripts/playsound-checker.py +++ /dev/null @@ -1,71 +0,0 @@ -import argparse, re, sys -from os import sep, path, walk - -known_volume_channels = [ - "VOL_MUSIC", - "VOL_AMBIENT", - "VOL_EFFECTS_MASTER", - "VOL_EFFECTS_VOICE_ANNOUNCEMENT", - "VOL_EFFECTS_MISC", - "VOL_EFFECTS_INSTRUMENT", - "VOL_NOTIFICATIONS", - "VOL_ADMIN", - "VOL_JUKEBOX" - ] - -skip_file_path = "./code/game/sound.dm" - -def get_bad_playsounds_in_line(line): - bad_playsounds = [] - result = re.search('(?:playsound|playsound_local)\(([^,]+),(.pick\(.*?\)|[^,]+),([^,\)]+)', line) - if(result is None): - return bad_playsounds - arg3 = result.group(3).strip() - if(arg3 not in known_volume_channels): - bad_playsounds.append(result.group(0)) - return bad_playsounds - -def get_bad_args_lines_in_file(file): - bad_lines = {} - for line_number, line in enumerate(file, 1): - bad_playsounds = get_bad_playsounds_in_line(line) - if len(bad_playsounds): - bad_lines[line_number] = bad_playsounds - return bad_lines - -def print_bad_playsounds(bad_playsounds_by_path): - for path, bad_playsounds_by_line in bad_playsounds_by_path.items(): - print('Path: {0}'.format(path)) - for line, bad_playsounds in bad_playsounds_by_line.items(): - print('\tLine: {0}'.format(line)) - for bad_arg in bad_playsounds: - print('\t\t{0}'.format(bad_arg)) - -def main(): - opt = argparse.ArgumentParser() - opt.add_argument('dir', help='The directory to recursively scan for *.dm and *.dmm files with invalid volume_channel argument in playsound and playsound_local procs') - args = opt.parse_args() - - if(not path.isdir(args.dir)): - print('Not a directory') - sys.exit(1) - - bad_playsounds_by_path = { } - # This section parses all *.dm and *.dmm files in the given directory, recursively. - for root, subdirs, files in walk(args.dir): - for filename in files: - if filename.endswith('.dm') or filename.endswith('.dmm'): - file_path = path.join(root, filename) - if file_path == skip_file_path: - continue - with open(file_path, 'rb') as file: - bad_arg_by_line = get_bad_args_lines_in_file(file) - if len(bad_arg_by_line) > 0: - bad_playsounds_by_path[file_path] = bad_arg_by_line - - print_bad_playsounds(bad_playsounds_by_path) - if len(bad_playsounds_by_path) > 0: - sys.exit(1) - -if __name__ == "__main__": - main() diff --git a/sound/musical_instruments/pda/A#5.ogg b/sound/musical_instruments/pda/A#5.ogg new file mode 100644 index 000000000000..1a7a510cecc5 Binary files /dev/null and b/sound/musical_instruments/pda/A#5.ogg differ diff --git a/sound/musical_instruments/pda/A#6.ogg b/sound/musical_instruments/pda/A#6.ogg new file mode 100644 index 000000000000..e20b207584b4 Binary files /dev/null and b/sound/musical_instruments/pda/A#6.ogg differ diff --git a/sound/musical_instruments/pda/A#7.ogg b/sound/musical_instruments/pda/A#7.ogg new file mode 100644 index 000000000000..90c6007eabc6 Binary files /dev/null and b/sound/musical_instruments/pda/A#7.ogg differ diff --git a/sound/musical_instruments/pda/Ab5.ogg b/sound/musical_instruments/pda/Ab5.ogg new file mode 100644 index 000000000000..f569273f76b3 Binary files /dev/null and b/sound/musical_instruments/pda/Ab5.ogg differ diff --git a/sound/musical_instruments/pda/Ab6.ogg b/sound/musical_instruments/pda/Ab6.ogg new file mode 100644 index 000000000000..639310dcc48a Binary files /dev/null and b/sound/musical_instruments/pda/Ab6.ogg differ diff --git a/sound/musical_instruments/pda/Ab7.ogg b/sound/musical_instruments/pda/Ab7.ogg new file mode 100644 index 000000000000..3cf8f20e11d6 Binary files /dev/null and b/sound/musical_instruments/pda/Ab7.ogg differ diff --git a/sound/musical_instruments/pda/An5.ogg b/sound/musical_instruments/pda/An5.ogg new file mode 100644 index 000000000000..3f4ec70df01d Binary files /dev/null and b/sound/musical_instruments/pda/An5.ogg differ diff --git a/sound/musical_instruments/pda/An6.ogg b/sound/musical_instruments/pda/An6.ogg new file mode 100644 index 000000000000..7fd8ddcd7885 Binary files /dev/null and b/sound/musical_instruments/pda/An6.ogg differ diff --git a/sound/musical_instruments/pda/An7.ogg b/sound/musical_instruments/pda/An7.ogg new file mode 100644 index 000000000000..b3b9c6b61804 Binary files /dev/null and b/sound/musical_instruments/pda/An7.ogg differ diff --git a/sound/musical_instruments/pda/B#5.ogg b/sound/musical_instruments/pda/B#5.ogg new file mode 100644 index 000000000000..79825de3d1d0 Binary files /dev/null and b/sound/musical_instruments/pda/B#5.ogg differ diff --git a/sound/musical_instruments/pda/B#6.ogg b/sound/musical_instruments/pda/B#6.ogg new file mode 100644 index 000000000000..1bf855cb1e70 Binary files /dev/null and b/sound/musical_instruments/pda/B#6.ogg differ diff --git a/sound/musical_instruments/pda/Bb5.ogg b/sound/musical_instruments/pda/Bb5.ogg new file mode 100644 index 000000000000..30a3a832e242 Binary files /dev/null and b/sound/musical_instruments/pda/Bb5.ogg differ diff --git a/sound/musical_instruments/pda/Bb6.ogg b/sound/musical_instruments/pda/Bb6.ogg new file mode 100644 index 000000000000..72962c423204 Binary files /dev/null and b/sound/musical_instruments/pda/Bb6.ogg differ diff --git a/sound/musical_instruments/pda/Bb7.ogg b/sound/musical_instruments/pda/Bb7.ogg new file mode 100644 index 000000000000..147db49f64b3 Binary files /dev/null and b/sound/musical_instruments/pda/Bb7.ogg differ diff --git a/sound/musical_instruments/pda/Bn5.ogg b/sound/musical_instruments/pda/Bn5.ogg new file mode 100644 index 000000000000..6c5b59923a86 Binary files /dev/null and b/sound/musical_instruments/pda/Bn5.ogg differ diff --git a/sound/musical_instruments/pda/Bn6.ogg b/sound/musical_instruments/pda/Bn6.ogg new file mode 100644 index 000000000000..fa9f2e3f101c Binary files /dev/null and b/sound/musical_instruments/pda/Bn6.ogg differ diff --git a/sound/musical_instruments/pda/Bn7.ogg b/sound/musical_instruments/pda/Bn7.ogg new file mode 100644 index 000000000000..1466fd8ac032 Binary files /dev/null and b/sound/musical_instruments/pda/Bn7.ogg differ diff --git a/sound/musical_instruments/pda/C#5.ogg b/sound/musical_instruments/pda/C#5.ogg new file mode 100644 index 000000000000..47b1a8377549 Binary files /dev/null and b/sound/musical_instruments/pda/C#5.ogg differ diff --git a/sound/musical_instruments/pda/C#6.ogg b/sound/musical_instruments/pda/C#6.ogg new file mode 100644 index 000000000000..8f722ac7d9da Binary files /dev/null and b/sound/musical_instruments/pda/C#6.ogg differ diff --git a/sound/musical_instruments/pda/C#7.ogg b/sound/musical_instruments/pda/C#7.ogg new file mode 100644 index 000000000000..f948083e40e0 Binary files /dev/null and b/sound/musical_instruments/pda/C#7.ogg differ diff --git a/sound/musical_instruments/pda/Cb6.ogg b/sound/musical_instruments/pda/Cb6.ogg new file mode 100644 index 000000000000..4ad99234c5c1 Binary files /dev/null and b/sound/musical_instruments/pda/Cb6.ogg differ diff --git a/sound/musical_instruments/pda/Cb7.ogg b/sound/musical_instruments/pda/Cb7.ogg new file mode 100644 index 000000000000..a2a91ff7a28c Binary files /dev/null and b/sound/musical_instruments/pda/Cb7.ogg differ diff --git a/sound/musical_instruments/pda/Cn5.ogg b/sound/musical_instruments/pda/Cn5.ogg new file mode 100644 index 000000000000..007ea6761baf Binary files /dev/null and b/sound/musical_instruments/pda/Cn5.ogg differ diff --git a/sound/musical_instruments/pda/Cn6.ogg b/sound/musical_instruments/pda/Cn6.ogg new file mode 100644 index 000000000000..af08c5cda813 Binary files /dev/null and b/sound/musical_instruments/pda/Cn6.ogg differ diff --git a/sound/musical_instruments/pda/Cn7.ogg b/sound/musical_instruments/pda/Cn7.ogg new file mode 100644 index 000000000000..d4dee1ef99c4 Binary files /dev/null and b/sound/musical_instruments/pda/Cn7.ogg differ diff --git a/sound/musical_instruments/pda/D#5.ogg b/sound/musical_instruments/pda/D#5.ogg new file mode 100644 index 000000000000..de5f8a695ac3 Binary files /dev/null and b/sound/musical_instruments/pda/D#5.ogg differ diff --git a/sound/musical_instruments/pda/D#6.ogg b/sound/musical_instruments/pda/D#6.ogg new file mode 100644 index 000000000000..240cdb69e9aa Binary files /dev/null and b/sound/musical_instruments/pda/D#6.ogg differ diff --git a/sound/musical_instruments/pda/D#7.ogg b/sound/musical_instruments/pda/D#7.ogg new file mode 100644 index 000000000000..56a0296fad49 Binary files /dev/null and b/sound/musical_instruments/pda/D#7.ogg differ diff --git a/sound/musical_instruments/pda/Db5.ogg b/sound/musical_instruments/pda/Db5.ogg new file mode 100644 index 000000000000..cca0b8a335b3 Binary files /dev/null and b/sound/musical_instruments/pda/Db5.ogg differ diff --git a/sound/musical_instruments/pda/Db6.ogg b/sound/musical_instruments/pda/Db6.ogg new file mode 100644 index 000000000000..9afb09ee30d2 Binary files /dev/null and b/sound/musical_instruments/pda/Db6.ogg differ diff --git a/sound/musical_instruments/pda/Db7.ogg b/sound/musical_instruments/pda/Db7.ogg new file mode 100644 index 000000000000..df2ab9e1ea81 Binary files /dev/null and b/sound/musical_instruments/pda/Db7.ogg differ diff --git a/sound/musical_instruments/pda/Dn5.ogg b/sound/musical_instruments/pda/Dn5.ogg new file mode 100644 index 000000000000..e575b752013e Binary files /dev/null and b/sound/musical_instruments/pda/Dn5.ogg differ diff --git a/sound/musical_instruments/pda/Dn6.ogg b/sound/musical_instruments/pda/Dn6.ogg new file mode 100644 index 000000000000..39dd91284dee Binary files /dev/null and b/sound/musical_instruments/pda/Dn6.ogg differ diff --git a/sound/musical_instruments/pda/Dn7.ogg b/sound/musical_instruments/pda/Dn7.ogg new file mode 100644 index 000000000000..2c88dbbaa694 Binary files /dev/null and b/sound/musical_instruments/pda/Dn7.ogg differ diff --git a/sound/musical_instruments/pda/E#5.ogg b/sound/musical_instruments/pda/E#5.ogg new file mode 100644 index 000000000000..c9e4bef2764b Binary files /dev/null and b/sound/musical_instruments/pda/E#5.ogg differ diff --git a/sound/musical_instruments/pda/E#6.ogg b/sound/musical_instruments/pda/E#6.ogg new file mode 100644 index 000000000000..bbc811cb4e32 Binary files /dev/null and b/sound/musical_instruments/pda/E#6.ogg differ diff --git a/sound/musical_instruments/pda/E#7.ogg b/sound/musical_instruments/pda/E#7.ogg new file mode 100644 index 000000000000..84456954914c Binary files /dev/null and b/sound/musical_instruments/pda/E#7.ogg differ diff --git a/sound/musical_instruments/pda/Eb5.ogg b/sound/musical_instruments/pda/Eb5.ogg new file mode 100644 index 000000000000..690def47163b Binary files /dev/null and b/sound/musical_instruments/pda/Eb5.ogg differ diff --git a/sound/musical_instruments/pda/Eb6.ogg b/sound/musical_instruments/pda/Eb6.ogg new file mode 100644 index 000000000000..0acb788bd28e Binary files /dev/null and b/sound/musical_instruments/pda/Eb6.ogg differ diff --git a/sound/musical_instruments/pda/Eb7.ogg b/sound/musical_instruments/pda/Eb7.ogg new file mode 100644 index 000000000000..0dbbcf179ead Binary files /dev/null and b/sound/musical_instruments/pda/Eb7.ogg differ diff --git a/sound/musical_instruments/pda/En5.ogg b/sound/musical_instruments/pda/En5.ogg new file mode 100644 index 000000000000..9a86c3853a9c Binary files /dev/null and b/sound/musical_instruments/pda/En5.ogg differ diff --git a/sound/musical_instruments/pda/En6.ogg b/sound/musical_instruments/pda/En6.ogg new file mode 100644 index 000000000000..f791b9c7fb5c Binary files /dev/null and b/sound/musical_instruments/pda/En6.ogg differ diff --git a/sound/musical_instruments/pda/En7.ogg b/sound/musical_instruments/pda/En7.ogg new file mode 100644 index 000000000000..65313cee1098 Binary files /dev/null and b/sound/musical_instruments/pda/En7.ogg differ diff --git a/sound/musical_instruments/pda/F#5.ogg b/sound/musical_instruments/pda/F#5.ogg new file mode 100644 index 000000000000..93ae74b785bd Binary files /dev/null and b/sound/musical_instruments/pda/F#5.ogg differ diff --git a/sound/musical_instruments/pda/F#6.ogg b/sound/musical_instruments/pda/F#6.ogg new file mode 100644 index 000000000000..c085c717866f Binary files /dev/null and b/sound/musical_instruments/pda/F#6.ogg differ diff --git a/sound/musical_instruments/pda/F#7.ogg b/sound/musical_instruments/pda/F#7.ogg new file mode 100644 index 000000000000..1f13bf7def95 Binary files /dev/null and b/sound/musical_instruments/pda/F#7.ogg differ diff --git a/sound/musical_instruments/pda/Fb5.ogg b/sound/musical_instruments/pda/Fb5.ogg new file mode 100644 index 000000000000..f42c778bde5b Binary files /dev/null and b/sound/musical_instruments/pda/Fb5.ogg differ diff --git a/sound/musical_instruments/pda/Fb6.ogg b/sound/musical_instruments/pda/Fb6.ogg new file mode 100644 index 000000000000..4146fe614d80 Binary files /dev/null and b/sound/musical_instruments/pda/Fb6.ogg differ diff --git a/sound/musical_instruments/pda/Fb7.ogg b/sound/musical_instruments/pda/Fb7.ogg new file mode 100644 index 000000000000..05192b312a15 Binary files /dev/null and b/sound/musical_instruments/pda/Fb7.ogg differ diff --git a/sound/musical_instruments/pda/Fn5.ogg b/sound/musical_instruments/pda/Fn5.ogg new file mode 100644 index 000000000000..34efa2399d4a Binary files /dev/null and b/sound/musical_instruments/pda/Fn5.ogg differ diff --git a/sound/musical_instruments/pda/Fn6.ogg b/sound/musical_instruments/pda/Fn6.ogg new file mode 100644 index 000000000000..ea2e76821153 Binary files /dev/null and b/sound/musical_instruments/pda/Fn6.ogg differ diff --git a/sound/musical_instruments/pda/Fn7.ogg b/sound/musical_instruments/pda/Fn7.ogg new file mode 100644 index 000000000000..f5c5be0370bb Binary files /dev/null and b/sound/musical_instruments/pda/Fn7.ogg differ diff --git a/sound/musical_instruments/pda/G#5.ogg b/sound/musical_instruments/pda/G#5.ogg new file mode 100644 index 000000000000..6446f15105d1 Binary files /dev/null and b/sound/musical_instruments/pda/G#5.ogg differ diff --git a/sound/musical_instruments/pda/G#6.ogg b/sound/musical_instruments/pda/G#6.ogg new file mode 100644 index 000000000000..d1d8ea0d8c86 Binary files /dev/null and b/sound/musical_instruments/pda/G#6.ogg differ diff --git a/sound/musical_instruments/pda/G#7.ogg b/sound/musical_instruments/pda/G#7.ogg new file mode 100644 index 000000000000..f6285d2ca582 Binary files /dev/null and b/sound/musical_instruments/pda/G#7.ogg differ diff --git a/sound/musical_instruments/pda/Gb5.ogg b/sound/musical_instruments/pda/Gb5.ogg new file mode 100644 index 000000000000..12e54e1bd19b Binary files /dev/null and b/sound/musical_instruments/pda/Gb5.ogg differ diff --git a/sound/musical_instruments/pda/Gb6.ogg b/sound/musical_instruments/pda/Gb6.ogg new file mode 100644 index 000000000000..188d4f1b902a Binary files /dev/null and b/sound/musical_instruments/pda/Gb6.ogg differ diff --git a/sound/musical_instruments/pda/Gb7.ogg b/sound/musical_instruments/pda/Gb7.ogg new file mode 100644 index 000000000000..c1ac3af53a2c Binary files /dev/null and b/sound/musical_instruments/pda/Gb7.ogg differ diff --git a/sound/musical_instruments/pda/Gn5.ogg b/sound/musical_instruments/pda/Gn5.ogg new file mode 100644 index 000000000000..1481a6e95f68 Binary files /dev/null and b/sound/musical_instruments/pda/Gn5.ogg differ diff --git a/sound/musical_instruments/pda/Gn6.ogg b/sound/musical_instruments/pda/Gn6.ogg new file mode 100644 index 000000000000..00e12186f30d Binary files /dev/null and b/sound/musical_instruments/pda/Gn6.ogg differ diff --git a/sound/musical_instruments/pda/Gn7.ogg b/sound/musical_instruments/pda/Gn7.ogg new file mode 100644 index 000000000000..b5aef86ed221 Binary files /dev/null and b/sound/musical_instruments/pda/Gn7.ogg differ diff --git a/taucetistation.dme b/taucetistation.dme index b62184f0b1f2..c7373fbb8592 100644 --- a/taucetistation.dme +++ b/taucetistation.dme @@ -71,6 +71,7 @@ #include "code\__DEFINES\misc.dm" #include "code\__DEFINES\mob.dm" #include "code\__DEFINES\objectives.dm" +#include "code\__DEFINES\pda.dm" #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\qdel.dm" #include "code\__DEFINES\qualities.dm" @@ -1050,6 +1051,7 @@ #include "code\game\objects\items\devices\PDA\chatroom.dm" #include "code\game\objects\items\devices\PDA\PDA.dm" #include "code\game\objects\items\devices\PDA\radio.dm" +#include "code\game\objects\items\devices\PDA\Ringtones.dm" #include "code\game\objects\items\devices\radio\beacon.dm" #include "code\game\objects\items\devices\radio\electropack.dm" #include "code\game\objects\items\devices\radio\encryptionkey.dm" diff --git a/test/run-test.sh b/test/run-test.sh index 68c067a1464b..5ec2c71d4f63 100644 --- a/test/run-test.sh +++ b/test/run-test.sh @@ -243,7 +243,6 @@ function run_code_tests { run_test "indentation check" "awk -f scripts/indentation.awk **/*.dm" run_test "check tags" "python2 scripts/tag-matcher.py ." run_test "check color hex" "python2 scripts/color-hex-checker.py ." - run_test "check playsound volume_channel argument" "python2 scripts/playsound-checker.py ." } function run_map_tests {