From 667e08ee0ac6624ec18f32014fb7d15fcf8ae95d Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sat, 26 Apr 2025 10:16:57 -0700 Subject: [PATCH] [MIRROR] Kitchen Sink PR (#10745) Co-authored-by: Cameron Lennox --- code/__defines/atoms_movable.dm | 4 + code/__defines/misc.dm | 7 +- code/__defines/sound.dm | 6 +- code/_helpers/game.dm | 3 +- .../code/coalesce_ch.dm => code/coalesce.dm | 0 code/datums/looping_sounds/_looping_sound.dm | 2 +- .../datums/looping_sounds/machinery_sounds.dm | 6 +- code/datums/looping_sounds/mob_sounds.dm | 8 +- code/datums/looping_sounds/weather_sounds.dm | 2 +- code/game/atoms_movable.dm | 50 ++++++++++- code/game/atoms_movable_ch.dm | 55 ------------ code/game/machinery/computer/atmos_alert.dm | 10 +-- code/game/machinery/computer/station_alert.dm | 4 +- code/game/machinery/computer/timeclock_vr.dm | 10 +-- code/game/machinery/pointdefense.dm | 2 +- .../game/objects/items/devices/radio/radio.dm | 84 ++++++++++++++++-- .../objects/items/devices/radio/radio_ch.dm | 75 ---------------- .../objects/items/weapons/teleportation.dm | 2 +- code/game/objects/objs.dm | 4 - code/game/sound.dm | 38 ++++---- code/modules/admin/verbs/randomverbs.dm | 16 ++++ code/modules/ai/say_list.dm | 7 ++ .../client/preference_setup/vore/02_size.dm | 6 +- .../client/preference_setup/vore/07_traits.dm | 12 +-- code/modules/emotes/definitions/audible.dm | 17 ++++ .../emotes/definitions/audible_cough.dm | 2 - .../emotes/definitions/audible_pain.dm | 44 +++++++++ .../emotes/definitions/audible_scream.dm | 11 +++ .../emotes/definitions/audible_scream_vr.dm | 18 ++-- .../emotes/definitions/audible_sneeze.dm | 1 - code/modules/emotes/definitions/belly_rub.dm | 27 ++++++ code/modules/emotes/definitions/human.dm | 2 +- code/modules/emotes/emote_define.dm | 2 +- code/modules/mob/inventory.dm | 4 +- code/modules/mob/living/bot/bot.dm | 1 + code/modules/mob/living/carbon/brain/brain.dm | 3 + code/modules/mob/living/carbon/human/death.dm | 15 +--- code/modules/mob/living/carbon/human/emote.dm | 4 + .../living/carbon/human/human_attackhand.dm | 2 +- .../mob/living/carbon/human/human_movement.dm | 41 +-------- .../carbon/human/species/outsider/vox.dm | 8 -- .../carbon/human/species/shadekin/shadekin.dm | 7 +- .../living/carbon/human/species/species.dm | 14 +-- .../human/species/station/prometheans.dm | 2 - .../station/protean/protean_species.dm | 2 +- .../carbon/human/species/station/station.dm | 48 +++------- .../human/species/station/station_vr.dm | 4 +- code/modules/mob/living/death.dm | 6 -- code/modules/mob/living/living.dm | 66 +++----------- code/modules/mob/living/login.dm | 1 - .../modules/mob/living/silicon/pai/recruit.dm | 2 +- .../mob/living/silicon/robot/drone/drone.dm | 16 ---- .../living/silicon/robot/robot_movement.dm | 14 +-- .../animal/giant_spider/_giant_spider.dm | 6 +- .../simple_mob/subtypes/animal/pets/dog.dm | 3 - .../simple_mob/subtypes/animal/sif/racoon.dm | 4 +- .../living/simple_mob/subtypes/blob/blob.dm | 4 +- .../living/simple_mob/subtypes/blob/spore.dm | 3 +- .../simple_mob/subtypes/humanoid/humanoid.dm | 4 + .../simple_mob/subtypes/illusion/illusion.dm | 2 +- .../subtypes/mechanical/cyber_horror_ch.dm | 26 +++--- .../subtypes/occult/constructs/_construct.dm | 4 +- .../simple_mob/subtypes/occult/creature.dm | 3 + .../simple_mob/subtypes/occult/faithless.dm | 4 +- .../simple_mob/subtypes/occult/unknown.dm | 6 +- .../simple_mob/subtypes/plant/tomato.dm | 4 +- .../living/simple_mob/subtypes/plant/tree.dm | 4 +- .../living/simple_mob/subtypes/vore/fennec.dm | 3 + .../simple_mob/subtypes/vore/greatwolf.dm | 15 ++-- .../living/simple_mob/subtypes/vore/otie.dm | 2 - .../simple_mob/subtypes/vore/panther.dm | 4 - .../living/simple_mob/subtypes/vore/wolf.dm | 18 ++-- .../simple_mob/subtypes/vore/wolfgirl.dm | 7 +- code/modules/mob/living/voice/voice_vr.dm | 2 +- code/modules/mob/login.dm | 4 + code/modules/mob/logout.dm | 2 +- code/modules/mob/mob.dm | 20 +---- code/modules/mob/mob_movement.dm | 39 ++------ .../computers/modular_computer/core.dm | 2 +- .../energy/cell_loaded_vr/multi_cannon.dm | 2 +- .../projectiles/guns/energy/laser_yw.dm | 2 +- .../projectiles/projectile/bullets_ch.dm | 2 +- .../projectiles/projectile/energy_ch.dm | 8 +- .../tgui/modules/appearance_changer.dm | 2 - code/modules/vehicles/vehicle.dm | 8 +- code/modules/vore/eating/living_vr.dm | 8 +- code/modules/vore/eating/simple_animal_vr.dm | 1 - maps/redgate/fantasy_items.dm | 2 +- .../code/modules/admin/verbs/randomverbs.dm | 15 ---- .../modules/clothing/shoes/miscellaneous.dm | 4 +- .../modules/emotes/definitions/audiable.dm | 42 ++++----- .../carbon/human/species/station/station.dm | 4 - .../code/modules/mob/living/living.dm | 21 ----- .../simple_mob/subtypes/horror/Master.dm | 2 +- .../simple_mob/subtypes/mechanical/disbot.dm | 2 +- .../mechanical/drones/combat_drone.dm | 4 +- .../subtypes/mechanical/mecha/gygax.dm | 4 +- .../simple_mob/subtypes/vore/blackholemobs.dm | 6 +- .../clockwork/clockwork_guns_ch.dm | 10 +-- .../projectiles/guns/projectile/revolver.dm | 2 +- .../dispenser/chem_synthesizer_ch.dm | 2 +- modular_chomp/code/modules/salvage/salvage.dm | 10 +-- .../maps/relic_base/relicbase_things.dm | 8 +- modular_chomp/sound/misc/bloop.ogg | Bin 13071 -> 0 bytes modular_chomp/sound/weapons/laser4.ogg | Bin 19660 -> 0 bytes .../ambience/thor/birds_stinger1.ogg | Bin .../ambience/thor/birds_stinger2.ogg | Bin .../ambience/thor/birds_stinger3.ogg | Bin .../ambience/thor/jungle_night_loop1.ogg | Bin .../ambience/thor/jungle_night_loop2.ogg | Bin .../ambience/thor/jungle_night_loop3.ogg | Bin .../ambience/thor/jungle_night_loop4.ogg | Bin .../sound => sound}/effects/carrev.ogg | Bin .../effects/comp_alert_clear.ogg | Bin .../effects/comp_alert_major.ogg | Bin .../effects/comp_alert_minor.ogg | Bin .../effects/ear_ring/ear_deaf_in.ogg | Bin .../effects/ear_ring/ear_deaf_loop.ogg | Bin .../effects/ear_ring/ear_deaf_out.ogg | Bin .../effects/explosions/vehicleexplosion.ogg | Bin .../effects/insert_id_card.ogg | Bin .../effects/mech/hightechstep1.ogg | Bin .../effects/mech/hightechstep2.ogg | Bin .../effects/mech/powerloader_step.ogg | Bin .../effects/mech/powerloader_step2.ogg | Bin .../effects/monolith_ambience.ogg | Bin .../effects/monolith_ambience_quieter.ogg | Bin .../effects/monolith_death.ogg | Bin .../effects/remove_id_card.ogg | Bin .../sound => sound}/effects/tank_treads.ogg | Bin sound/effects/una_scream1.ogg | Bin 0 -> 83776 bytes sound/effects/una_scream2.ogg | Bin 0 -> 88510 bytes .../effects/vehicle/engine_loop.ogg | Bin .../effects/vehicle/engine_loop_finish.ogg | Bin .../effects/vehicle/engine_off.ogg | Bin .../effects/vehicle/ignition_car.ogg | Bin {modular_chomp/sound => sound}/items/open.ogg | Bin .../items/salvage/salvagedrop.ogg | Bin .../items/salvage/salvagepickup.ogg | Bin .../items/taperecorder_drop.ogg | Bin .../items/taperecorder_pickup.ogg | Bin .../machines/HPLC_binary_pump.ogg | Bin .../machines/console_power_on.ogg | Bin .../machines/door/garagedoorclose.ogg | Bin .../machines/door/garagedooropen.ogg | Bin .../machines/door/gateclose.ogg | Bin .../machines/door/gateopen.ogg | Bin .../shield_hum/shield_generator_hum1.ogg | Bin .../shield_hum/shield_generator_hum2.ogg | Bin .../shield_hum/shield_generator_hum3.ogg | Bin .../shield_hum/shield_generator_hum4.ogg | Bin .../shield_hum/shield_generator_whir.ogg | Bin {modular_chomp/sound => sound}/misc/cozy.ogg | Bin .../sound => sound}/misc/silence.ogg | Bin .../sound => sound}/mob/footstep_large.ogg | Bin .../sound => sound}/mob/footstep_large2.ogg | Bin .../sound => sound}/mob/heavy_boots.ogg | Bin .../mob/robots/Cyber_Horror.ogg | Bin .../mob/robots/Cyber_Horror_Cat.ogg | Bin .../mob/robots/Cyber_Horror_Changeling.ogg | Bin .../robots/Cyber_Horror_ChangelingLeap.ogg | Bin .../robots/Cyber_Horror_ChangelingMelee.ogg | Bin .../mob/robots/Cyber_Horror_Corgi.ogg | Bin .../mob/robots/Cyber_Horror_Grey.ogg | Bin .../mob/robots/Cyber_Horror_Plasma.ogg | Bin .../mob/robots/Cyber_Horror_Tajaran.ogg | Bin .../mob/robots/Cyber_Horror_Vox.ogg | Bin .../mob/robots/DroneFreeze.ogg | Bin .../mob/robots/DroneFreezeLong.ogg | Bin .../mob/robots/DroneLostTarget.ogg | Bin .../mob/robots/GygaxDanger.ogg | Bin .../mob/robots/GygaxIntruder4.ogg | Bin .../sound => sound}/mob/robots/MasterSee.ogg | Bin .../sound => sound}/mob/robots/infector.ogg | Bin .../talksounds/xeno/xenotalk.ogg | Bin .../talksounds/xeno/xenotalk2.ogg | Bin .../talksounds/xeno/xenotalk3.ogg | Bin .../sound => sound}/voice/android_scream.ogg | Bin .../voice/death/canine/wolf_death1.ogg | Bin .../voice/death/canine/wolf_death2.ogg | Bin .../voice/death/canine/wolf_death3.ogg | Bin .../voice/death/canine/wolf_death4.ogg | Bin .../voice/death/canine/wolf_death5.ogg | Bin .../voice/death/cervine/cervine_death.ogg | Bin .../voice/death/feline/feline_death.ogg | Bin .../death/generic/female/female_death_1.ogg | Bin .../death/generic/female/female_death_2.ogg | Bin .../death/generic/female/female_death_3.ogg | Bin .../death/generic/female/female_death_4.ogg | Bin .../death/generic/female/female_death_5.ogg | Bin .../death/generic/female/female_death_6.ogg | Bin .../voice/death/generic/male/male_death_1.ogg | Bin .../voice/death/generic/male/male_death_2.ogg | Bin .../voice/death/generic/male/male_death_3.ogg | Bin .../voice/death/generic/male/male_death_4.ogg | Bin .../voice/death/generic/male/male_death_5.ogg | Bin .../voice/death/generic/male/male_death_6.ogg | Bin .../voice/death/generic/male/male_death_7.ogg | Bin .../voice/death/lizard/lizard_death.ogg | Bin .../voice/death/spider/spider_death.ogg | Bin .../voice/death/xeno/xeno_death.ogg | Bin .../voice/death/xeno/xeno_death2.ogg | Bin .../sound => sound}/voice/emotes/caw.ogg | Bin .../sound => sound}/voice/emotes/gwah.ogg | Bin .../voice/emotes/squealemote.ogg | Bin .../voice/emotes/tailthumpemote.ogg | Bin .../sound => sound}/voice/emotes/wawa.ogg | Bin .../voice/emotes/xenogrowl.ogg | Bin .../sound => sound}/voice/emotes/xenohiss.ogg | Bin .../sound => sound}/voice/emotes/xenopurr.ogg | Bin .../sound => sound}/voice/emotes/yip1.ogg | Bin .../sound => sound}/voice/emotes/yip2.ogg | Bin .../sound => sound}/voice/emotes/yip3.ogg | Bin .../voice/gasp/canine/wolf_gasp.ogg | Bin .../voice/gasp/feline/feline_gasp.ogg | Bin .../gasp/generic/female/female_gasp1.ogg | Bin .../gasp/generic/female/female_gasp2.ogg | Bin .../voice/gasp/generic/male/male_gasp1.ogg | Bin .../voice/gasp/generic/male/male_gasp2.ogg | Bin .../voice/gasp/generic/male/male_gasp3.ogg | Bin .../voice/gasp/xeno/alien_hiss1.ogg | Bin .../sound => sound}/voice/mgeow.ogg | Bin .../voice/pain/canine/wolf_pain.ogg | Bin .../voice/pain/canine/wolf_pain2.ogg | Bin .../voice/pain/canine/wolf_pain3.ogg | Bin .../voice/pain/canine/wolf_pain4.ogg | Bin .../voice/pain/feline/feline_pain.ogg | Bin .../pain/generic/female/female_pain_1.ogg | Bin .../pain/generic/female/female_pain_2.ogg | Bin .../pain/generic/female/female_pain_3.ogg | Bin .../voice/pain/generic/male/male_pain_1.ogg | Bin .../voice/pain/generic/male/male_pain_2.ogg | Bin .../voice/pain/generic/male/male_pain_3.ogg | Bin .../voice/pain/generic/male/male_pain_4.ogg | Bin .../voice/pain/generic/male/male_pain_5.ogg | Bin .../voice/pain/generic/male/male_pain_6.ogg | Bin .../voice/pain/generic/male/male_pain_7.ogg | Bin .../voice/pain/generic/male/male_pain_8.ogg | Bin .../voice/pain/lizard/lizard_pain.ogg | Bin .../voice/pain/robotic/robot_pain1.ogg | Bin .../voice/pain/robotic/robot_pain2.ogg | Bin .../voice/pain/robotic/robot_pain3.ogg | Bin .../voice/pain/scientist/sci_pain1.ogg | Bin .../voice/pain/scientist/sci_pain4.ogg | Bin .../voice/pain/scientist/sci_pain5.ogg | Bin .../voice/pain/vulpine/fox_pain1.ogg | Bin .../voice/pain/vulpine/fox_pain2.ogg | Bin .../voice/pain/vulpine/fox_pain3.ogg | Bin .../voice/pain/vulpine/fox_pain4.ogg | Bin .../voice/pain/xeno/alien_roar1.ogg | Bin .../voice/pain/xeno/alien_roar10.ogg | Bin .../voice/pain/xeno/alien_roar11.ogg | Bin .../voice/pain/xeno/alien_roar12.ogg | Bin .../voice/pain/xeno/alien_roar2.ogg | Bin .../voice/pain/xeno/alien_roar3.ogg | Bin .../voice/pain/xeno/alien_roar4.ogg | Bin .../voice/pain/xeno/alien_roar5.ogg | Bin .../voice/pain/xeno/alien_roar6.ogg | Bin .../voice/pain/xeno/alien_roar7.ogg | Bin .../voice/pain/xeno/alien_roar8.ogg | Bin .../voice/pain/xeno/alien_roar9.ogg | Bin .../voice/scream/canine/wolf_scream.ogg | Bin .../voice/scream/canine/wolf_scream2.ogg | Bin .../voice/scream/canine/wolf_scream3.ogg | Bin .../voice/scream/canine/wolf_scream4.ogg | Bin .../voice/scream/canine/wolf_scream5.ogg | Bin .../voice/scream/canine/wolf_scream6.ogg | Bin .../voice/scream/cervine/cervine_scream.ogg | Bin .../voice/scream/feline/feline_scream.ogg | Bin .../scream/generic/female/female_scream_1.ogg | Bin .../scream/generic/female/female_scream_2.ogg | Bin .../scream/generic/female/female_scream_3.ogg | Bin .../scream/generic/female/female_scream_4.ogg | Bin .../scream/generic/female/female_scream_5.ogg | Bin .../scream/generic/male/male_scream_1.ogg | Bin .../scream/generic/male/male_scream_2.ogg | Bin .../scream/generic/male/male_scream_3.ogg | Bin .../scream/generic/male/male_scream_4.ogg | Bin .../scream/generic/male/male_scream_5.ogg | Bin .../scream/generic/male/male_scream_6.ogg | Bin .../voice/scream/robotic/robot_scream1.ogg | Bin .../voice/scream/robotic/robot_scream2.ogg | Bin .../voice/scream/robotic/robot_scream3.ogg | Bin .../voice/scream/scientist/scream01.ogg | Bin .../voice/scream/scientist/scream02.ogg | Bin .../voice/scream/scientist/scream06.ogg | Bin .../voice/scream/scientist/scream08.ogg | Bin .../voice/scream/scientist/scream25.ogg | Bin .../voice/scream/vulpine/fox_yip1.ogg | Bin .../voice/scream/vulpine/fox_yip2.ogg | Bin .../voice/scream/vulpine/fox_yip3.ogg | Bin .../sound => sound}/voice/scream_f1.ogg | Bin .../sound => sound}/voice/scream_f2.ogg | Bin .../sound => sound}/voice/scream_f3.ogg | Bin .../sound => sound}/voice/scream_jelly_f1.ogg | Bin .../sound => sound}/voice/scream_jelly_f2.ogg | Bin .../sound => sound}/voice/scream_jelly_m1.ogg | Bin .../sound => sound}/voice/scream_jelly_m2.ogg | Bin .../sound => sound}/voice/scream_m.ogg | Bin .../sound => sound}/voice/scream_m1.ogg | Bin .../sound => sound}/voice/scream_m2.ogg | Bin .../sound => sound}/voice/scream_monkey.ogg | Bin .../sound => sound}/voice/scream_moth.ogg | Bin .../sound => sound}/voice/scream_silicon.ogg | Bin .../sound => sound}/voice/silence.ogg | Bin .../sound => sound}/voice/wheeze.ogg | Bin sound/weapons/Laser4.ogg | Bin 113256 -> 19660 bytes .../sound => sound}/weapons/SmallLaser.ogg | Bin .../weapons/ballistics/smg_heavy.ogg | Bin .../weapons/clockwork/clockwork_cock.ogg | Bin .../weapons/clockwork/cwc_rifle_fabricate.ogg | Bin .../weapons/clockwork/cwc_rifle_fire.ogg | Bin .../weapons/clockwork/voltbeam_fire.ogg | Bin .../weapons/clockwork/voltbeamsearwall.ogg | Bin .../weapons/energy/laser_strong.ogg | Bin .../sound => sound}/weapons/marksmanalt.ogg | Bin .../sound => sound}/weapons/meleetear.ogg | Bin .../weapons/phase_new/phasecannon.ogg | Bin .../weapons/phase_new/phasecarbine.ogg | Bin .../weapons/phase_new/phasepistol.ogg | Bin .../weapons/phase_new/phaserifle.ogg | Bin .../sound => sound}/weapons/plasmaNEW.ogg | Bin tools/build/build.js | 2 +- vorestation.dme | 8 +- 324 files changed, 504 insertions(+), 669 deletions(-) rename modular_chomp/code/coalesce_ch.dm => code/coalesce.dm (100%) delete mode 100644 code/game/atoms_movable_ch.dm delete mode 100644 code/game/objects/items/devices/radio/radio_ch.dm create mode 100644 code/modules/emotes/definitions/audible_pain.dm create mode 100644 code/modules/emotes/definitions/belly_rub.dm delete mode 100644 modular_chomp/code/modules/admin/verbs/randomverbs.dm delete mode 100644 modular_chomp/sound/misc/bloop.ogg delete mode 100644 modular_chomp/sound/weapons/laser4.ogg rename {modular_chomp/sound => sound}/ambience/thor/birds_stinger1.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/birds_stinger2.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/birds_stinger3.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/jungle_night_loop1.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/jungle_night_loop2.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/jungle_night_loop3.ogg (100%) rename {modular_chomp/sound => sound}/ambience/thor/jungle_night_loop4.ogg (100%) rename {modular_chomp/sound => sound}/effects/carrev.ogg (100%) rename {modular_chomp/sound => sound}/effects/comp_alert_clear.ogg (100%) rename {modular_chomp/sound => sound}/effects/comp_alert_major.ogg (100%) rename {modular_chomp/sound => sound}/effects/comp_alert_minor.ogg (100%) rename {modular_chomp/sound => sound}/effects/ear_ring/ear_deaf_in.ogg (100%) rename {modular_chomp/sound => sound}/effects/ear_ring/ear_deaf_loop.ogg (100%) rename {modular_chomp/sound => sound}/effects/ear_ring/ear_deaf_out.ogg (100%) rename {modular_chomp/sound => sound}/effects/explosions/vehicleexplosion.ogg (100%) rename {modular_chomp/sound => sound}/effects/insert_id_card.ogg (100%) rename {modular_chomp/sound => sound}/effects/mech/hightechstep1.ogg (100%) rename {modular_chomp/sound => sound}/effects/mech/hightechstep2.ogg (100%) rename {modular_chomp/sound => sound}/effects/mech/powerloader_step.ogg (100%) rename {modular_chomp/sound => sound}/effects/mech/powerloader_step2.ogg (100%) rename {modular_chomp/sound => sound}/effects/monolith_ambience.ogg (100%) rename {modular_chomp/sound => sound}/effects/monolith_ambience_quieter.ogg (100%) rename {modular_chomp/sound => sound}/effects/monolith_death.ogg (100%) rename {modular_chomp/sound => sound}/effects/remove_id_card.ogg (100%) rename {modular_chomp/sound => sound}/effects/tank_treads.ogg (100%) create mode 100644 sound/effects/una_scream1.ogg create mode 100644 sound/effects/una_scream2.ogg rename {modular_chomp/sound => sound}/effects/vehicle/engine_loop.ogg (100%) rename {modular_chomp/sound => sound}/effects/vehicle/engine_loop_finish.ogg (100%) rename {modular_chomp/sound => sound}/effects/vehicle/engine_off.ogg (100%) rename {modular_chomp/sound => sound}/effects/vehicle/ignition_car.ogg (100%) rename {modular_chomp/sound => sound}/items/open.ogg (100%) rename {modular_chomp/sound => sound}/items/salvage/salvagedrop.ogg (100%) rename {modular_chomp/sound => sound}/items/salvage/salvagepickup.ogg (100%) rename {modular_chomp/sound => sound}/items/taperecorder_drop.ogg (100%) rename {modular_chomp/sound => sound}/items/taperecorder_pickup.ogg (100%) rename {modular_chomp/sound => sound}/machines/HPLC_binary_pump.ogg (100%) rename {modular_chomp/sound => sound}/machines/console_power_on.ogg (100%) rename {modular_chomp/sound => sound}/machines/door/garagedoorclose.ogg (100%) rename {modular_chomp/sound => sound}/machines/door/garagedooropen.ogg (100%) rename {modular_chomp/sound => sound}/machines/door/gateclose.ogg (100%) rename {modular_chomp/sound => sound}/machines/door/gateopen.ogg (100%) rename {modular_chomp/sound => sound}/machines/shield_hum/shield_generator_hum1.ogg (100%) rename {modular_chomp/sound => sound}/machines/shield_hum/shield_generator_hum2.ogg (100%) rename {modular_chomp/sound => sound}/machines/shield_hum/shield_generator_hum3.ogg (100%) rename {modular_chomp/sound => sound}/machines/shield_hum/shield_generator_hum4.ogg (100%) rename {modular_chomp/sound => sound}/machines/shield_hum/shield_generator_whir.ogg (100%) rename {modular_chomp/sound => sound}/misc/cozy.ogg (100%) rename {modular_chomp/sound => sound}/misc/silence.ogg (100%) rename {modular_chomp/sound => sound}/mob/footstep_large.ogg (100%) rename {modular_chomp/sound => sound}/mob/footstep_large2.ogg (100%) rename {modular_chomp/sound => sound}/mob/heavy_boots.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Cat.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Changeling.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_ChangelingLeap.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_ChangelingMelee.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Corgi.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Grey.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Plasma.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Tajaran.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/Cyber_Horror_Vox.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/DroneFreeze.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/DroneFreezeLong.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/DroneLostTarget.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/GygaxDanger.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/GygaxIntruder4.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/MasterSee.ogg (100%) rename {modular_chomp/sound => sound}/mob/robots/infector.ogg (100%) rename {modular_chomp/sound => sound}/talksounds/xeno/xenotalk.ogg (100%) rename {modular_chomp/sound => sound}/talksounds/xeno/xenotalk2.ogg (100%) rename {modular_chomp/sound => sound}/talksounds/xeno/xenotalk3.ogg (100%) rename {modular_chomp/sound => sound}/voice/android_scream.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/canine/wolf_death1.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/canine/wolf_death2.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/canine/wolf_death3.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/canine/wolf_death4.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/canine/wolf_death5.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/cervine/cervine_death.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/feline/feline_death.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_4.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_5.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/female/female_death_6.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_4.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_5.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_6.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/generic/male/male_death_7.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/lizard/lizard_death.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/spider/spider_death.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/xeno/xeno_death.ogg (100%) rename {modular_chomp/sound => sound}/voice/death/xeno/xeno_death2.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/caw.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/gwah.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/squealemote.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/tailthumpemote.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/wawa.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/xenogrowl.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/xenohiss.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/xenopurr.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/yip1.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/yip2.ogg (100%) rename {modular_chomp/sound => sound}/voice/emotes/yip3.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/canine/wolf_gasp.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/feline/feline_gasp.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/generic/female/female_gasp1.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/generic/female/female_gasp2.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/generic/male/male_gasp1.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/generic/male/male_gasp2.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/generic/male/male_gasp3.ogg (100%) rename {modular_chomp/sound => sound}/voice/gasp/xeno/alien_hiss1.ogg (100%) rename {modular_chomp/sound => sound}/voice/mgeow.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/canine/wolf_pain.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/canine/wolf_pain2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/canine/wolf_pain3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/canine/wolf_pain4.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/feline/feline_pain.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/female/female_pain_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/female/female_pain_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/female/female_pain_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_4.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_5.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_6.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_7.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/generic/male/male_pain_8.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/lizard/lizard_pain.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/robotic/robot_pain1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/robotic/robot_pain2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/robotic/robot_pain3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/scientist/sci_pain1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/scientist/sci_pain4.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/scientist/sci_pain5.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/vulpine/fox_pain1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/vulpine/fox_pain2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/vulpine/fox_pain3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/vulpine/fox_pain4.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar1.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar10.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar11.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar12.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar2.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar3.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar4.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar5.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar6.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar7.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar8.ogg (100%) rename {modular_chomp/sound => sound}/voice/pain/xeno/alien_roar9.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream4.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream5.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/canine/wolf_scream6.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/cervine/cervine_scream.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/feline/feline_scream.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/female/female_scream_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/female/female_scream_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/female/female_scream_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/female/female_scream_4.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/female/female_scream_5.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_4.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_5.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/generic/male/male_scream_6.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/robotic/robot_scream1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/robotic/robot_scream2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/robotic/robot_scream3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/scientist/scream01.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/scientist/scream02.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/scientist/scream06.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/scientist/scream08.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/scientist/scream25.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/vulpine/fox_yip1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/vulpine/fox_yip2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream/vulpine/fox_yip3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_f1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_f2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_f3.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_jelly_f1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_jelly_f2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_jelly_m1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_jelly_m2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_m.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_m1.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_m2.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_monkey.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_moth.ogg (100%) rename {modular_chomp/sound => sound}/voice/scream_silicon.ogg (100%) rename {modular_chomp/sound => sound}/voice/silence.ogg (100%) rename {modular_chomp/sound => sound}/voice/wheeze.ogg (100%) rename {modular_chomp/sound => sound}/weapons/SmallLaser.ogg (100%) rename {modular_chomp/sound => sound}/weapons/ballistics/smg_heavy.ogg (100%) rename {modular_chomp/sound => sound}/weapons/clockwork/clockwork_cock.ogg (100%) rename {modular_chomp/sound => sound}/weapons/clockwork/cwc_rifle_fabricate.ogg (100%) rename {modular_chomp/sound => sound}/weapons/clockwork/cwc_rifle_fire.ogg (100%) rename {modular_chomp/sound => sound}/weapons/clockwork/voltbeam_fire.ogg (100%) rename {modular_chomp/sound => sound}/weapons/clockwork/voltbeamsearwall.ogg (100%) rename {modular_chomp/sound => sound}/weapons/energy/laser_strong.ogg (100%) rename {modular_chomp/sound => sound}/weapons/marksmanalt.ogg (100%) rename {modular_chomp/sound => sound}/weapons/meleetear.ogg (100%) rename {modular_chomp/sound => sound}/weapons/phase_new/phasecannon.ogg (100%) rename {modular_chomp/sound => sound}/weapons/phase_new/phasecarbine.ogg (100%) rename {modular_chomp/sound => sound}/weapons/phase_new/phasepistol.ogg (100%) rename {modular_chomp/sound => sound}/weapons/phase_new/phaserifle.ogg (100%) rename {modular_chomp/sound => sound}/weapons/plasmaNEW.ogg (100%) diff --git a/code/__defines/atoms_movable.dm b/code/__defines/atoms_movable.dm index 6d8b3c4569..634d92c2a7 100644 --- a/code/__defines/atoms_movable.dm +++ b/code/__defines/atoms_movable.dm @@ -2,6 +2,10 @@ ** Holds defines for code\game\atoms_movable.dm to avoid magic numbers and potential unexpected overwrites down the line */ +#define NON_LISTENING_ATOM 0 +#define LISTENING_ATOM 1 +#define LISTENING_PLAYER 2 + #define DEFAULT_ICON_SCALE_X 1 #define DEFAULT_ICON_SCALE_Y 1 #define DEFAULT_ICON_ROTATION 0 diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 8613662ba2..96de6a6bde 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -80,8 +80,7 @@ #define WAIT_FINISH 4 #define DO_AUTOPILOT 5 -// Setting this much higher than 1024 could allow spammers to DOS the server easily. -#define MAX_MESSAGE_LEN 4096 //CHOMPStation Edit - This is what it means to go even further byond +#define MAX_MESSAGE_LEN 4096 #define MAX_PAPER_MESSAGE_LEN 6144 #define MAX_BOOK_MESSAGE_LEN 24576 #define MAX_RECORD_LENGTH 24576 @@ -446,9 +445,9 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\ #define VOLUME_CHANNEL_INSTRUMENTS "Instruments" #define VOLUME_CHANNEL_WEATHER "Weather" #define VOLUME_CHANNEL_SPECIES_SOUNDS "Species Sounds (Verbal Injury Feedback)" -#define VOLUME_CHANNEL_HUD_WARNINGS "SS13 HUD (Clientside-only sounds)" +#define VOLUME_CHANNEL_HUD_WARNINGS "SS13 HUD (Clientside-only sounds)" //NYI //CHOMPStation Note: Implemented on Chomp #define VOLUME_CHANNEL_DEATH_SOUNDS "Death Sounds" -#define VOLUME_CHANNEL_INJURY_SOUNDS "Mob Injury Sounds (Non-Verbal Feedback)" +#define VOLUME_CHANNEL_INJURY_SOUNDS "Mob Injury Sounds (Non-Verbal Feedback)" //NYI //CHOMPStation Note: Implemented on Chomp #define VOLUME_CHANNEL_MACHINERY "Machinery Noises" #define VOLUME_CHANNEL_MACHINERY_IDLE "Machinery Idle Noises" diff --git a/code/__defines/sound.dm b/code/__defines/sound.dm index da4ded6771..5179ee1846 100644 --- a/code/__defines/sound.dm +++ b/code/__defines/sound.dm @@ -244,7 +244,7 @@ // CHOMPEdit: New Planet Ambience #define AMBIENCE_THOR list(\ - 'modular_chomp/sound/ambience/thor/birds_stinger1.ogg',\ - 'modular_chomp/sound/ambience/thor/birds_stinger2.ogg',\ - 'modular_chomp/sound/ambience/thor/birds_stinger3.ogg'\ + 'sound/ambience/thor/birds_stinger1.ogg',\ + 'sound/ambience/thor/birds_stinger2.ogg',\ + 'sound/ambience/thor/birds_stinger3.ogg'\ ) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 28664420aa..8d969f45af 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -219,14 +219,13 @@ return hear -//CHOMPEdit - entire proc changed basically to use recursive listening /proc/get_mobs_in_radio_ranges(var/list/obj/item/radio/radios) . = list() // Returns a list of mobs who can hear any of the radios given in @radios for(var/obj/item/radio/R as anything in radios) if(get_turf(R)) - for(var/turf/T in R.can_broadcast_to()) //CHOMPEdit + for(var/turf/T in R.can_broadcast_to()) for (var/atom/movable/hearing in T) if (hearing.recursive_listeners) . |= hearing.recursive_listeners diff --git a/modular_chomp/code/coalesce_ch.dm b/code/coalesce.dm similarity index 100% rename from modular_chomp/code/coalesce_ch.dm rename to code/coalesce.dm diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 6da6ea8803..77b9d3ee32 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -34,9 +34,9 @@ var/extra_range var/opacity_check var/pref_check - var/volume_chan //CHOMPedit var/exclusive var/falloff // CHOMPEdit: Add Falloff + var/volume_chan var/timerid var/started diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 613d54fef6..8d691dcf92 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -142,10 +142,10 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/looping_sound/shield_generator - start_sound = 'modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg' - mid_sounds = list('modular_chomp/sound/machines/shield_hum/shield_generator_hum2.ogg', 'modular_chomp/sound/machines/shield_hum/shield_generator_hum3.ogg') + start_sound = 'sound/machines/shield_hum/shield_generator_whir.ogg' + mid_sounds = list('sound/machines/shield_hum/shield_generator_hum2.ogg', 'sound/machines/shield_hum/shield_generator_hum3.ogg') mid_length = 60 - end_sound = 'modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg' + end_sound = 'sound/machines/shield_hum/shield_generator_whir.ogg' volume = 40 volume_chan = VOLUME_CHANNEL_MACHINERY exclusive = TRUE diff --git a/code/datums/looping_sounds/mob_sounds.dm b/code/datums/looping_sounds/mob_sounds.dm index 9e27f7b9b1..efc104cf29 100644 --- a/code/datums/looping_sounds/mob_sounds.dm +++ b/code/datums/looping_sounds/mob_sounds.dm @@ -10,11 +10,11 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/looping_sound/mob/deafened - start_sound = 'modular_chomp/sound/effects/ear_ring/ear_deaf_in.ogg' + start_sound = 'sound/effects/ear_ring/ear_deaf_in.ogg' start_length = 4 SECONDS // 2 seconds shorter than the actual file ending, bc we want it to overlap - mid_sounds = list('modular_chomp/sound/misc/silence.ogg'=1) + mid_sounds = list('sound/misc/silence.ogg'=1) mid_length = 3 SECONDS - end_sound = 'modular_chomp/sound/effects/ear_ring/ear_deaf_out.ogg' + end_sound = 'sound/effects/ear_ring/ear_deaf_out.ogg' volume = 40 direct = TRUE // We send this sound directly to the mob, bc they only hear it when they're deaf. exclusive = TRUE // This should only occur once, because we can only be deafened once. @@ -23,7 +23,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/looping_sound/mob/cozyloop - mid_sounds = list('modular_chomp/sound/misc/cozy.ogg'=1) + mid_sounds = list('sound/misc/cozy.ogg'=1) mid_length = 21 SECONDS volume = 40 pref_check = /datum/preference/toggle/sleep_music diff --git a/code/datums/looping_sounds/weather_sounds.dm b/code/datums/looping_sounds/weather_sounds.dm index 57477b8a65..ec2049d77b 100644 --- a/code/datums/looping_sounds/weather_sounds.dm +++ b/code/datums/looping_sounds/weather_sounds.dm @@ -1,6 +1,6 @@ /datum/looping_sound/weather pref_check = /datum/preference/toggle/weather_sounds - volume_chan = VOLUME_CHANNEL_WEATHER // CHOMPEdit - Weather Volume Channel + volume_chan = VOLUME_CHANNEL_WEATHER // CHOMPEdit: Blanket replace all wind with this, for now, in lieue of a snowstorm-specific wind /datum/looping_sound/weather/outside_blizzard diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index bbc8f32253..f24ab333ed 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -31,6 +31,8 @@ var/image/cloaked_selfimage //The image we use for our client to let them see where we are var/belly_cycles = 0 // Counting current belly process cycles for autotransfer. var/autotransferable = TRUE // Toggle for autotransfer mechanics. + var/recursive_listeners + var/listening_recursive = NON_LISTENING_ATOM /atom/movable/Initialize(mapload) . = ..() @@ -57,6 +59,9 @@ AddComponent(/datum/component/overlay_lighting, starts_on = light_on) if(MOVABLE_LIGHT_DIRECTIONAL) AddComponent(/datum/component/overlay_lighting, is_directional = TRUE, starts_on = light_on) + if (listening_recursive) + set_listening(listening_recursive) + /atom/movable/Destroy() if(em_block) @@ -84,7 +89,8 @@ if(orbiting) stop_orbit() - QDEL_NULL(riding_datum) //VOREStation Add + QDEL_NULL(riding_datum) + set_listening(NON_LISTENING_ATOM) /atom/movable/vv_edit_var(var_name, var_value) if(var_name in GLOB.VVpixelmovement) //Pixel movement is not yet implemented, changing this will break everything irreversibly. @@ -674,3 +680,45 @@ /atom/movable/proc/exit_belly(obj/belly/B) return + +/atom/movable/proc/set_listening(var/set_to) + if (listening_recursive && !set_to) + LAZYREMOVE(recursive_listeners, src) + if (!LAZYLEN(recursive_listeners)) + for (var/atom/movable/location as anything in get_nested_locs(src)) + LAZYREMOVE(location.recursive_listeners, src) + if (!listening_recursive && set_to) + LAZYOR(recursive_listeners, src) + for (var/atom/movable/location as anything in get_nested_locs(src)) + LAZYOR(location.recursive_listeners, src) + listening_recursive = set_to + +///Returns a list of all locations (except the area) the movable is within. +/proc/get_nested_locs(atom/movable/atom_on_location, include_turf = FALSE) + . = list() + var/atom/location = atom_on_location.loc + var/turf/our_turf = get_turf(atom_on_location) + while(location && location != our_turf) + . += location + location = location.loc + if(our_turf && include_turf) //At this point, only the turf is left, provided it exists. + . += our_turf + +/atom/movable/Exited(atom/movable/gone, atom/new_loc) + . = ..() + + if (!LAZYLEN(gone.recursive_listeners)) + return + for (var/atom/movable/location as anything in get_nested_locs(src)|src) + LAZYREMOVE(location.recursive_listeners, gone.recursive_listeners) + +/atom/movable/Entered(atom/movable/arrived, atom/old_loc) + . = ..() + + if (!LAZYLEN(arrived.recursive_listeners)) + return + for (var/atom/movable/location as anything in get_nested_locs(src)|src) + LAZYOR(location.recursive_listeners, arrived.recursive_listeners) + +/atom/movable/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) + return diff --git a/code/game/atoms_movable_ch.dm b/code/game/atoms_movable_ch.dm deleted file mode 100644 index 9cca867bd5..0000000000 --- a/code/game/atoms_movable_ch.dm +++ /dev/null @@ -1,55 +0,0 @@ -//gonna be honest this is really just a ripoff of tg's recursive hearing -/atom/movable - var/recursive_listeners - var/listening_recursive = NON_LISTENING_ATOM - -/atom/movable/Initialize(mapload) - . = ..() - if (listening_recursive) - set_listening(listening_recursive) - -/atom/movable/Destroy() - . = ..() - set_listening(NON_LISTENING_ATOM) - -/atom/movable/proc/set_listening(var/set_to) - if (listening_recursive && !set_to) - LAZYREMOVE(recursive_listeners, src) - if (!LAZYLEN(recursive_listeners)) - for (var/atom/movable/location as anything in get_nested_locs(src)) - LAZYREMOVE(location.recursive_listeners, src) - if (!listening_recursive && set_to) - LAZYOR(recursive_listeners, src) - for (var/atom/movable/location as anything in get_nested_locs(src)) - LAZYOR(location.recursive_listeners, src) - listening_recursive = set_to - -///Returns a list of all locations (except the area) the movable is within. -/proc/get_nested_locs(atom/movable/atom_on_location, include_turf = FALSE) - . = list() - var/atom/location = atom_on_location.loc - var/turf/our_turf = get_turf(atom_on_location) - while(location && location != our_turf) - . += location - location = location.loc - if(our_turf && include_turf) //At this point, only the turf is left, provided it exists. - . += our_turf - -/atom/movable/Exited(atom/movable/gone, atom/new_loc) - . = ..() - - if (!LAZYLEN(gone.recursive_listeners)) - return - for (var/atom/movable/location as anything in get_nested_locs(src)|src) - LAZYREMOVE(location.recursive_listeners, gone.recursive_listeners) - -/atom/movable/Entered(atom/movable/arrived, atom/old_loc) - . = ..() - - if (!LAZYLEN(arrived.recursive_listeners)) - return - for (var/atom/movable/location as anything in get_nested_locs(src)|src) - LAZYOR(location.recursive_listeners, arrived.recursive_listeners) - -/atom/movable/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) - return diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 3bf17b2d32..8395de1966 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -50,19 +50,19 @@ var/global/list/minor_air_alarms = list() var/list/alarms = atmosphere_alarm.major_alarms() if(alarms.len) icon_screen = "alert:2" - playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications spawn(100) // Wait 10 seconds, then play it again - playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications else alarms = atmosphere_alarm.minor_alarms() if(alarms.len) icon_screen = "alert:1" - playsound(src, 'modular_chomp/sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications spawn(100) // Wait 10 seconds, then play it again - playsound(src, 'modular_chomp/sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications else icon_screen = initial(icon_screen) - playsound(src, 'modular_chomp/sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications ..() /obj/machinery/computer/atmos_alert/tgui_act(action, params) diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 6a6ad71a9d..36a853e487 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -50,9 +50,9 @@ var/list/alarms = alarm_monitor ? alarm_monitor.major_alarms() : list() if(alarms.len) icon_screen = "alert:2" - playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications else icon_screen = initial(icon_screen) - playsound(src, 'modular_chomp/sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications + playsound(src, 'sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications if(last_icon != icon_screen) update_icon() diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index 8c9a4aaea3..f73c068aec 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -55,7 +55,7 @@ if(!card && user.unEquip(I)) I.forceMove(src) card = I - playsound(src, 'modular_chomp/sound/effects/insert_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops + playsound(src, 'sound/effects/insert_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops SStgui.update_uis(src) update_icon() else if(card) @@ -121,13 +121,13 @@ if(card) ui.user.put_in_hands(card) card = null - playsound(src, 'modular_chomp/sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops + playsound(src, 'sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops else var/obj/item/I = ui.user.get_active_hand() if (istype(I, /obj/item/card/id) && ui.user.unEquip(I)) I.forceMove(src) card = I - playsound(src, 'modular_chomp/sound/effects/insert_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops + playsound(src, 'sound/effects/insert_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops update_icon() return TRUE if("switch-to-onduty-rank") @@ -136,7 +136,7 @@ makeOnDuty(params["switch-to-onduty-rank"], params["switch-to-onduty-assignment"], ui.user) ui.user.put_in_hands(card) card = null - playsound(src, 'modular_chomp/sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops + playsound(src, 'sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops update_icon() return TRUE if("switch-to-offduty") @@ -145,7 +145,7 @@ makeOffDuty(ui.user) ui.user.put_in_hands(card) card = null - playsound(src, 'modular_chomp/sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops + playsound(src, 'sound/effects/remove_id_card.ogg', 75, 0) // CHOMPEdit: Timeclock beepboop. TODO: Make clocks delay reading the card for ~3 seconds to line up with quiet boops update_icon() return TRUE diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm index 0c14f4728c..46f9748a80 100644 --- a/code/game/machinery/pointdefense.dm +++ b/code/game/machinery/pointdefense.dm @@ -77,7 +77,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) if(id_tag) var/list/connected_z_levels = GetConnectedZlevels(get_z(src)) for(var/i = 1 to LAZYLEN(GLOB.pointdefense_turrets)) - var/obj/machinery/pointdefense/PD = GLOB.pointdefense_turrets[i] + var/obj/machinery/pointdefense/PD = GLOB.pointdefense_turrets[i] //CHOMPEDIT - Whatever this is, needs to be sent upstream. I stumbled upon this deconflicting and it was uncommented. Bad. if(!(PD.id_tag == id_tag && (get_z(PD) in connected_z_levels))) continue var/list/turret = list() diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 6aaa3d897f..6cec4c1dc3 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -1,5 +1,5 @@ +#define CANBROADCAST_INNERBOX 0.7071067811865476 //This is sqrt(2)/2 // Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't -//VOREStation Edit Start - Updating this for Virgo var/global/list/default_internal_channels = list( num2text(PUB_FREQ) = list(), num2text(AI_FREQ) = list(access_synth), @@ -24,7 +24,6 @@ var/global/list/default_medbay_channels = list( num2text(MED_FREQ) = list(), num2text(MED_I_FREQ) = list() ) -//VOREStation Edit End /obj/item/radio icon = 'icons/obj/radio_vr.dmi' @@ -300,7 +299,7 @@ var/global/list/default_medbay_channels = list( GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) -/obj/item/radio/proc/autosay(var/message, var/from, var/channel, var/list/zlevels, var/states) //VOREStation Edit +/obj/item/radio/proc/autosay(var/message, var/from, var/channel, var/list/zlevels, var/states) if(!GLOB.autospeaker) return @@ -317,15 +316,13 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) if(!LAZYLEN(zlevels)) zlevels = list(0) - //VOREStation Edit Start if(!states) states = "states" - //VOREStation Edit End GLOB.autospeaker.SetName(from) Broadcast_Message(connection, GLOB.autospeaker, 0, "*garbled automated announcement*", src, message_to_multilingual(message, GLOB.all_languages[LANGUAGE_GALCOM]), from, "Automated Announcement", from, "synthesized voice", - DATA_FAKE, 0, zlevels, connection.frequency, states) //VOREStation Edit + DATA_FAKE, 0, zlevels, connection.frequency, states) // Interprets the message mode when talking into a radio, possibly returning a connection datum /obj/item/radio/proc/handle_message_mode(mob/living/M as mob, list/message_pieces, message_mode) @@ -771,3 +768,78 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) /obj/item/radio/phone/medbay/Initialize(mapload) . = ..() internal_channels = default_medbay_channels.Copy() + +/obj/item/radio/proc/can_broadcast_to() + var/list/output = list() + var/turf/T = get_turf(src) + var/dnumber = canhear_range*CANBROADCAST_INNERBOX + for(var/cand_x = max(0, T.x - canhear_range), cand_x <= T.x + canhear_range, cand_x++) + for(var/cand_y = max(0, T.y - canhear_range), cand_y <= T.y + canhear_range, cand_y++) + var/turf/cand_turf = locate(cand_x,cand_y,T.z) + if(!cand_turf) + continue + if((abs(T.x - cand_x) < dnumber) || (abs(T.y - cand_y) < dnumber)) + output += cand_turf + continue + if(sqrt((T.x - cand_x)**2 + (T.y - cand_y)**2) <= canhear_range) + output += cand_turf + continue + return output +/obj/item/radio/intercom + var/list/broadcast_tiles + +/obj/item/radio/intercom/proc/update_broadcast_tiles() + var/list/output = list() + var/turf/T = get_turf(src) + if(!T) + return + var/dnumber = canhear_range*CANBROADCAST_INNERBOX + for(var/cand_x = max(0, T.x - canhear_range), cand_x <= T.x + canhear_range, cand_x++) + for(var/cand_y = max(0, T.y - canhear_range), cand_y <= T.y + canhear_range, cand_y++) + var/turf/cand_turf = locate(cand_x,cand_y,T.z) + if(!cand_turf) + continue + if((abs(T.x - cand_x) < dnumber) || (abs(T.y - cand_y) < dnumber)) + output += cand_turf + continue + if(sqrt((T.x - cand_x)**2 + (T.y - cand_y)**2) <= canhear_range) + output += cand_turf + continue + broadcast_tiles = output + +/obj/item/radio/intercom/forceMove(atom/destination) + . = ..() + update_broadcast_tiles() + +/obj/item/radio/intercom/Initialize(mapload) + . = ..() + update_broadcast_tiles() + +/obj/item/radio/intercom/can_broadcast_to() + if(!broadcast_tiles) + update_broadcast_tiles() + return broadcast_tiles + +//*Subspace Radio*// +/obj/item/radio/subspace + adhoc_fallback = 1 + canhear_range = 8 + desc = "A heavy duty radio that can pick up all manor of shortwave and subspace frequencies. It's a bit bulkier than a normal radio thanks to the extra hardware." + description_info = "This radio can broadcast over any headset frequency that the user has access to. It has a shortwave fallback to directly broadcast to all radio equipment on the same Z-Level/Map in the event of a telecommunications failure. This device requires a functioning Telecommunications Network/Relay to send and receive signals meant for headsets. Additionally, the volume knob seems to be stuck on the max setting. You could hear this thing clear across a room... Not good for discretely listening in on secure channels or being stealthy!" + icon_state = "radio" + name = "subspace radio" + subspace_transmission = 1 + throwforce = 5 + throw_range = 7 + throw_speed = 1 + +//* Bluespace Radio *// +/obj/item/bluespaceradio/southerncross_prelinked + name = "bluespace radio (southerncross)" + handset = /obj/item/radio/bluespacehandset/linked/southerncross_prelinked + +/obj/item/radio/bluespacehandset/linked/southerncross_prelinked + bs_tx_preload_id = "Receiver A" //Transmit to a receiver + bs_rx_preload_id = "Broadcaster A" //Recveive from a transmitter + +#undef CANBROADCAST_INNERBOX diff --git a/code/game/objects/items/devices/radio/radio_ch.dm b/code/game/objects/items/devices/radio/radio_ch.dm deleted file mode 100644 index 7e0b70e795..0000000000 --- a/code/game/objects/items/devices/radio/radio_ch.dm +++ /dev/null @@ -1,75 +0,0 @@ -#define CANBROADCAST_INNERBOX 0.7071067811865476 //This is sqrt(2)/2 -/obj/item/radio/proc/can_broadcast_to() - var/list/output = list() - var/turf/T = get_turf(src) - var/dnumber = canhear_range*CANBROADCAST_INNERBOX - for(var/cand_x = max(0, T.x - canhear_range), cand_x <= T.x + canhear_range, cand_x++) - for(var/cand_y = max(0, T.y - canhear_range), cand_y <= T.y + canhear_range, cand_y++) - var/turf/cand_turf = locate(cand_x,cand_y,T.z) - if(!cand_turf) - continue - if((abs(T.x - cand_x) < dnumber) || (abs(T.y - cand_y) < dnumber)) - output += cand_turf - continue - if(sqrt((T.x - cand_x)**2 + (T.y - cand_y)**2) <= canhear_range) - output += cand_turf - continue - return output -/obj/item/radio/intercom - var/list/broadcast_tiles - -/obj/item/radio/intercom/proc/update_broadcast_tiles() - var/list/output = list() - var/turf/T = get_turf(src) - if(!T) - return - var/dnumber = canhear_range*CANBROADCAST_INNERBOX - for(var/cand_x = max(0, T.x - canhear_range), cand_x <= T.x + canhear_range, cand_x++) - for(var/cand_y = max(0, T.y - canhear_range), cand_y <= T.y + canhear_range, cand_y++) - var/turf/cand_turf = locate(cand_x,cand_y,T.z) - if(!cand_turf) - continue - if((abs(T.x - cand_x) < dnumber) || (abs(T.y - cand_y) < dnumber)) - output += cand_turf - continue - if(sqrt((T.x - cand_x)**2 + (T.y - cand_y)**2) <= canhear_range) - output += cand_turf - continue - broadcast_tiles = output - -/obj/item/radio/intercom/forceMove(atom/destination) - . = ..() - update_broadcast_tiles() - -/obj/item/radio/intercom/Initialize(mapload) - . = ..() - update_broadcast_tiles() - -/obj/item/radio/intercom/can_broadcast_to() - if(!broadcast_tiles) - update_broadcast_tiles() - return broadcast_tiles - -//*Subspace Radio*// -/obj/item/radio/subspace - adhoc_fallback = 1 - canhear_range = 8 - desc = "A heavy duty radio that can pick up all manor of shortwave and subspace frequencies. It's a bit bulkier than a normal radio thanks to the extra hardware." - description_info = "This radio can broadcast over any headset frequency that the user has access to. It has a shortwave fallback to directly broadcast to all radio equipment on the same Z-Level/Map in the event of a telecommunications failure. This device requires a functioning Telecommunications Network/Relay to send and receive signals meant for headsets. Additionally, the volume knob seems to be stuck on the max setting. You could hear this thing clear across a room... Not good for discretely listening in on secure channels or being stealthy!" - icon_state = "radio" - name = "subspace radio" - subspace_transmission = 1 - throwforce = 5 - throw_range = 7 - throw_speed = 1 - -//* Bluespace Radio *// -/obj/item/bluespaceradio/southerncross_prelinked - name = "bluespace radio (southerncross)" - handset = /obj/item/radio/bluespacehandset/linked/southerncross_prelinked - -/obj/item/radio/bluespacehandset/linked/southerncross_prelinked - bs_tx_preload_id = "Receiver A" //Transmit to a receiver - bs_rx_preload_id = "Broadcaster A" //Recveive from a transmitter - -#undef CANBROADCAST_INNERBOX diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 4159de2814..b92b8aa984 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -79,7 +79,7 @@ Frequency: src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]
" src.temp += span_bold("Extraneous Signals:") + "
" - for (var/obj/item/implant/tracking/W in GLOB.all_tracking_implants) // CHOMPEdit + for (var/obj/item/implant/tracking/W in GLOB.all_tracking_implants) if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc) || W.malfunction)) continue diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index fb0d9ce46f..fb128f097d 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -185,10 +185,6 @@ /obj/proc/see_emote(mob/M as mob, text, var/emote_type) return -/* CHOMP Removal -/obj/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) - return -*/ // Used to mark a turf as containing objects that are dangerous to step onto. /obj/proc/register_dangerous_to_step() var/turf/T = get_turf(src) diff --git a/code/game/sound.dm b/code/game/sound.dm index b4df86f100..fa180c3ab6 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -302,12 +302,10 @@ 'sound/items/pickup/generic1.ogg', 'sound/items/pickup/generic2.ogg', 'sound/items/pickup/generic3.ogg') - // CHOMPedit start - Sounds for mech footsteps. if ("powerloaderstep") soundin = pick( - 'modular_chomp/sound/effects/mech/powerloader_step.ogg', - 'modular_chomp/sound/effects/mech/powerloader_step2.ogg') - // CHOMPedit end. + 'sound/effects/mech/powerloader_step.ogg', + 'sound/effects/mech/powerloader_step2.ogg') return soundin @@ -330,32 +328,31 @@ GLOBAL_LIST_INIT(goon_speak_pug_sound, list('sound/talksounds/goon/pug.ogg', 'so GLOBAL_LIST_INIT(goon_speak_pugg_sound, list('sound/talksounds/goon/pugg.ogg', 'sound/talksounds/goon/pugg_ask.ogg', 'sound/talksounds/goon/pugg_exclaim.ogg')) GLOBAL_LIST_INIT(goon_speak_roach_sound, list('sound/talksounds/goon/roach.ogg', 'sound/talksounds/goon/roach_ask.ogg', 'sound/talksounds/goon/roach_exclaim.ogg')) GLOBAL_LIST_INIT(goon_speak_skelly_sound, list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg')) + //CHOMPAdd Start: More sounds. GLOBAL_LIST_INIT(wf_speak_lure_sound, list ('sound/talksounds/wf/lure_1.ogg', 'sound/talksounds/wf/lure_2.ogg', 'sound/talksounds/wf/lure_3.ogg', 'sound/talksounds/wf/lure_4.ogg', 'sound/talksounds/wf/lure_5.ogg')) GLOBAL_LIST_INIT(wf_speak_lyst_sound, list ('sound/talksounds/wf/lyst_1.ogg', 'sound/talksounds/wf/lyst_2.ogg', 'sound/talksounds/wf/lyst_3.ogg', 'sound/talksounds/wf/lyst_4.ogg', 'sound/talksounds/wf/lyst_5.ogg', 'sound/talksounds/wf/lyst_6.ogg')) GLOBAL_LIST_INIT(wf_speak_void_sound, list ('sound/talksounds/wf/void_1.ogg', 'sound/talksounds/wf/void_2.ogg', 'sound/talksounds/wf/void_3.ogg')) GLOBAL_LIST_INIT(wf_speak_vomva_sound, list ('sound/talksounds/wf/vomva_1.ogg', 'sound/talksounds/wf/vomva_2.ogg', 'sound/talksounds/wf/vomva_3.ogg', 'sound/talksounds/wf/vomva_4.ogg')) -GLOBAL_LIST_INIT(xeno_speak_sound, list('modular_chomp/sound/talksounds/xeno/xenotalk.ogg', 'modular_chomp/sound/talksounds/xeno/xenotalk2.ogg', 'modular_chomp/sound/talksounds/xeno/xenotalk3.ogg')) +GLOBAL_LIST_INIT(xeno_speak_sound, list('sound/talksounds/xeno/xenotalk.ogg', 'sound/talksounds/xeno/xenotalk2.ogg', 'sound/talksounds/xeno/xenotalk3.ogg')) //CHOMPAdd End - -// CHOMPEdit Start: Species sounds. This is probably inefficient, but I'm sure someone will yell at me or just do it better later:tm: -#define canine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')) -#define feline_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/feline/feline_death.ogg')) -#define cervine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/cervine/cervine_scream.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/cervine/cervine_death.ogg')) -#define robot_sounds list("cough" = list('sound/effects/mob_effects/m_machine_cougha.ogg', 'sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/machine_sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg'), "gasp" = null, "death" = list('sound/voice/borg_deathsound.ogg')) -#define male_generic_sounds list("cough" = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream/generic/male/male_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_5.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/male/male_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_3.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_4.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_5.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_6.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_7.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_8.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/male/male_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp2.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp3.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/male/male_death_1.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_2.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_3.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_4.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_5.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_6.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_7.ogg')) -#define female_generic_sounds list("cough" = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg'), "sneeze" = list('sound/effects/mob_effects/f_sneeze.ogg'), "scream" = list('modular_chomp/sound/voice/scream/generic/female/female_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_5.ogg'), "pain" = list('modular_chomp/sound/voice/pain/generic/female/female_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_3.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg'), "death" = list('modular_chomp/sound/voice/death/generic/female/female_death_1.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_2.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_3.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_4.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_5.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_6.ogg')) -#define spider_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/spiderchitter.ogg'), "pain" = list('sound/voice/spiderchitter.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/death/spider/spider_death.ogg')) +#define canine_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/canine/wolf_scream.ogg', 'sound/voice/scream/canine/wolf_scream2.ogg', 'sound/voice/scream/canine/wolf_scream3.ogg', 'sound/voice/scream/canine/wolf_scream4.ogg', 'sound/voice/scream/canine/wolf_scream5.ogg', 'sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('sound/voice/pain/canine/wolf_pain.ogg', 'sound/voice/pain/canine/wolf_pain2.ogg', 'sound/voice/pain/canine/wolf_pain3.ogg', 'sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('sound/voice/death/canine/wolf_death1.ogg', 'sound/voice/death/canine/wolf_death2.ogg', 'sound/voice/death/canine/wolf_death3.ogg', 'sound/voice/death/canine/wolf_death4.ogg', 'sound/voice/death/canine/wolf_death5.ogg')) +#define feline_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('sound/voice/death/feline/feline_death.ogg')) +#define cervine_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/cervine/cervine_scream.ogg'), "pain" = null, "gasp" = null, "death" = list('sound/voice/death/cervine/cervine_death.ogg')) +#define robot_sounds list("cough" = list('sound/effects/mob_effects/m_machine_cougha.ogg', 'sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/machine_sneeze.ogg'), "scream" = list('sound/voice/scream_silicon.ogg', 'sound/voice/android_scream.ogg', 'sound/voice/scream/robotic/robot_scream1.ogg', 'sound/voice/scream/robotic/robot_scream2.ogg', 'sound/voice/scream/robotic/robot_scream3.ogg'), "pain" = list('sound/voice/pain/robotic/robot_pain1.ogg', 'sound/voice/pain/robotic/robot_pain2.ogg', 'sound/voice/pain/robotic/robot_pain3.ogg'), "gasp" = null, "death" = list('sound/voice/borg_deathsound.ogg')) +#define male_generic_sounds list("cough" = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg'), "sneeze" = list('sound/effects/mob_effects/sneeze.ogg'), "scream" = list('sound/voice/scream/generic/male/male_scream_1.ogg', 'sound/voice/scream/generic/male/male_scream_2.ogg', 'sound/voice/scream/generic/male/male_scream_3.ogg', 'sound/voice/scream/generic/male/male_scream_4.ogg', 'sound/voice/scream/generic/male/male_scream_5.ogg', 'sound/voice/scream/generic/male/male_scream_6.ogg'), "pain" = list('sound/voice/pain/generic/male/male_pain_1.ogg', 'sound/voice/pain/generic/male/male_pain_2.ogg', 'sound/voice/pain/generic/male/male_pain_3.ogg', 'sound/voice/pain/generic/male/male_pain_4.ogg', 'sound/voice/pain/generic/male/male_pain_5.ogg', 'sound/voice/pain/generic/male/male_pain_6.ogg', 'sound/voice/pain/generic/male/male_pain_7.ogg', 'sound/voice/pain/generic/male/male_pain_8.ogg'), "gasp" = list('sound/voice/gasp/generic/male/male_gasp1.ogg', 'sound/voice/gasp/generic/male/male_gasp2.ogg', 'sound/voice/gasp/generic/male/male_gasp3.ogg'), "death" = list('sound/voice/death/generic/male/male_death_1.ogg', 'sound/voice/death/generic/male/male_death_2.ogg', 'sound/voice/death/generic/male/male_death_3.ogg', 'sound/voice/death/generic/male/male_death_4.ogg', 'sound/voice/death/generic/male/male_death_5.ogg', 'sound/voice/death/generic/male/male_death_6.ogg', 'sound/voice/death/generic/male/male_death_7.ogg')) +#define female_generic_sounds list("cough" = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg'), "sneeze" = list('sound/effects/mob_effects/f_sneeze.ogg'), "scream" = list('sound/voice/scream/generic/female/female_scream_1.ogg', 'sound/voice/scream/generic/female/female_scream_2.ogg', 'sound/voice/scream/generic/female/female_scream_3.ogg', 'sound/voice/scream/generic/female/female_scream_4.ogg', 'sound/voice/scream/generic/female/female_scream_5.ogg'), "pain" = list('sound/voice/pain/generic/female/female_pain_1.ogg', 'sound/voice/pain/generic/female/female_pain_2.ogg', 'sound/voice/pain/generic/female/female_pain_3.ogg'), "gasp" = list('sound/voice/gasp/generic/female/female_gasp1.ogg', 'sound/voice/gasp/generic/female/female_gasp2.ogg'), "death" = list('sound/voice/death/generic/female/female_death_1.ogg', 'sound/voice/death/generic/female/female_death_2.ogg', 'sound/voice/death/generic/female/female_death_3.ogg', 'sound/voice/death/generic/female/female_death_4.ogg', 'sound/voice/death/generic/female/female_death_5.ogg', 'sound/voice/death/generic/female/female_death_6.ogg')) +#define spider_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/spiderchitter.ogg'), "pain" = list('sound/voice/spiderchitter.ogg'), "gasp" = null, "death" = list('sound/voice/death/spider/spider_death.ogg')) #define mouse_sounds list("cough" = list('sound/effects/mouse_squeak.ogg'), "sneeze" = list('sound/effects/mouse_squeak.ogg'), "scream" = list('sound/effects/mouse_squeak_loud.ogg'), "pain" = list('sound/effects/mouse_squeak.ogg'), "gasp" = list('sound/effects/mouse_squeak.ogg'), "death" = list('sound/effects/mouse_squeak_loud.ogg')) -#define lizard_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg'), "pain" = list('modular_chomp/sound/voice/pain/lizard/lizard_pain.ogg'), "gasp" = null, "death" = list('modular_chomp/sound/voice/death/lizard/lizard_death.ogg')) +#define lizard_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg'), "pain" = list('sound/voice/pain/lizard/lizard_pain.ogg'), "gasp" = null, "death" = list('sound/voice/death/lizard/lizard_death.ogg')) #define vox_sounds list("cough" = list('sound/voice/shriekcough.ogg'), "sneeze" = list('sound/voice/shrieksneeze.ogg'), "scream" = list('sound/voice/shriek1.ogg'), "pain" = list('sound/voice/shriek1.ogg'), "gasp" = null, "death" = null) #define slime_sounds list("cough" = list('sound/effects/slime_squish.ogg'), "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null) -#define xeno_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/xeno/alien_roar1.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar2.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar3.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar4.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar5.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar6.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar7.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar8.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar9.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar10.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar11.ogg', 'modular_chomp/sound/voice/pain/xeno/alien_roar12.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/xeno/alien_hiss1.ogg'), "death" = list('modular_chomp/sound/voice/death/xeno/xeno_death.ogg', 'modular_chomp/sound/voice/death/xeno/xeno_death2.ogg')) +#define xeno_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/effects/mob_effects/x_scream1.ogg','sound/effects/mob_effects/x_scream2.ogg','sound/effects/mob_effects/x_scream3.ogg'), "pain" = list('sound/voice/pain/xeno/alien_roar1.ogg', 'sound/voice/pain/xeno/alien_roar2.ogg', 'sound/voice/pain/xeno/alien_roar3.ogg', 'sound/voice/pain/xeno/alien_roar4.ogg', 'sound/voice/pain/xeno/alien_roar5.ogg', 'sound/voice/pain/xeno/alien_roar6.ogg', 'sound/voice/pain/xeno/alien_roar7.ogg', 'sound/voice/pain/xeno/alien_roar8.ogg', 'sound/voice/pain/xeno/alien_roar9.ogg', 'sound/voice/pain/xeno/alien_roar10.ogg', 'sound/voice/pain/xeno/alien_roar11.ogg', 'sound/voice/pain/xeno/alien_roar12.ogg'), "gasp" = list('sound/voice/gasp/xeno/alien_hiss1.ogg'), "death" = list('sound/voice/death/xeno/xeno_death.ogg', 'sound/voice/death/xeno/xeno_death2.ogg')) #define teshari_sounds list("cough" = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg'), "sneeze" = list('sound/effects/mob_effects/tesharisneeze.ogg'), "scream" = list('sound/effects/mob_effects/teshariscream.ogg'), "pain" = null, "gasp" = null, "death" = null) #define raccoon_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/raccoon.ogg'), "pain" = list('sound/voice/raccoon.ogg'), "gasp" = null, "death" = list('sound/voice/raccoon.ogg')) #define metroid_sounds list("cough" = list('sound/metroid/metroid_cough.ogg'), "sneeze" = list('sound/metroid/metroid_sneeze.ogg'), "scream" = list('sound/metroid/metroid_scream.ogg'), "pain" = list('sound/metroid/metroidsee.ogg'), "gasp" = list('sound/metroid/metroid_gasp.ogg'), "death" = list('sound/metroid/metroiddeath.ogg')) -#define vulpine_sounds list("cough" = null, "sneeze" = null, "scream" = list('modular_chomp/sound/voice/scream/vulpine/fox_yip1.ogg', 'modular_chomp/sound/voice/scream/vulpine/fox_yip2.ogg', 'modular_chomp/sound/voice/scream/vulpine/fox_yip3.ogg'), "pain" = list('modular_chomp/sound/voice/pain/vulpine/fox_pain1.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain2.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain3.ogg', 'modular_chomp/sound/voice/pain/vulpine/fox_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')) +#define vulpine_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/vulpine/fox_yip1.ogg', 'sound/voice/scream/vulpine/fox_yip2.ogg', 'sound/voice/scream/vulpine/fox_yip3.ogg'), "pain" = list('sound/voice/pain/vulpine/fox_pain1.ogg', 'sound/voice/pain/vulpine/fox_pain2.ogg', 'sound/voice/pain/vulpine/fox_pain3.ogg', 'sound/voice/pain/vulpine/fox_pain4.ogg'), "gasp" = list('sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('sound/voice/death/canine/wolf_death1.ogg', 'sound/voice/death/canine/wolf_death2.ogg', 'sound/voice/death/canine/wolf_death3.ogg', 'sound/voice/death/canine/wolf_death4.ogg', 'sound/voice/death/canine/wolf_death5.ogg')) #define no_sounds list("cough" = null, "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null) #define use_default list("cough" = null, "sneeze" = null, "scream" = null, "pain" = null, "gasp" = null, "death" = null) /* @@ -426,14 +423,14 @@ var/list/species_sound_map = list( * var/mob/living/M = user * get_species_sound(M.client.pref.species_sound)["scream"] will return get_species_sound("Robotic")["scream"] * This can be paired with get_gendered_sound, like so: get_species_sound(get_gendered_sound(M))["emote"] <- get_gendered_sound will return whatever we have of the 3 valid options, and then get_species_sound will match that to the actual sound list. - * The get_species_sound proc will retrieve and return the list based on the key given - get_species_sound("Robotic")["scream"] will return list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', etc) + * The get_species_sound proc will retrieve and return the list based on the key given - get_species_sound("Robotic")["scream"] will return list('sound/voice/scream_silicon.ogg', 'sound/voice/android_scream.ogg', etc) * If you are adding new calls of this, follow the syntax of get_species_sound(species)["scream"] - you must attach ["emote"] to the end, outside the () * If your species has a gendered sound, DON'T PANIC. Simply set the gender_specific_species_sounds var on the species to true, and when you call this, do it like so: * get_species_sound(H.species.species_sounds_male)["emote"] // If we're male, and want an emote sound gendered correctly. */ /proc/get_species_sound(var/sounds) if(!islist(species_sound_map[sounds])) // We check here if this list actually has anything in it, or if we're about to return a null index - return null // Shitty failsafe but better than rewriting an entire litany of procs rn when I'm low on time - Rykka // list('modular_chomp/sound/voice/silence.ogg') + return null // Shitty failsafe but better than rewriting an entire litany of procs rn when I'm low on time - Rykka // list('sound/voice/silence.ogg') return species_sound_map[sounds] // Otherwise, successfully return our sound /* @@ -470,6 +467,3 @@ var/list/species_sound_map = list( return H.species.species_sounds else return user.species_sounds - - -// CHOMPEdit End diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index d7f98b2451..bf20c5b2eb 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1,3 +1,5 @@ +GLOBAL_VAR_INIT(global_vantag_hud, 0) + /client/proc/cmd_admin_drop_everything(mob/M as mob in mob_list) set category = null set name = "Drop Everything" @@ -1176,3 +1178,17 @@ Traitors and the like can also be revived with the previous role mostly intact. new /obj/structure/drop_pod/polite(get_turf(usr), L, autoopen == "Yes" ? TRUE : FALSE) feedback_add_details("admin_verb","DPD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_vantag_hud_global(mob/target as mob) + set category = "Fun.Event Kit" + set name = "Toggle Global Event HUD" + set desc = "Give everyone the Event HUD." + + GLOB.global_vantag_hud = !GLOB.global_vantag_hud + if(GLOB.global_vantag_hud) + for(var/mob/living/L in living_mob_list) + if(L.ckey) + L.vantag_hud = TRUE + L.recalculate_vis() + + to_chat(src, span_warning("Global Event HUD has been turned [GLOB.global_vantag_hud ? "on" : "off"].")) diff --git a/code/modules/ai/say_list.dm b/code/modules/ai/say_list.dm index 370545374a..576ab7c652 100644 --- a/code/modules/ai/say_list.dm +++ b/code/modules/ai/say_list.dm @@ -8,6 +8,13 @@ /mob/living var/datum/say_list/say_list = null var/say_list_type = /datum/say_list // Type to give us on initialization. Default has empty lists, so the mob will be silent. + var/can_pain_emote = TRUE + var/datum/looping_sound/mob/deafened/deaf_loop //NYI + var/pain_emote_1p = null + var/pain_emote_3p = null + var/species_sounds = "None" // By default, we have nothing. + var/death_sound_override = null + var/datum/looping_sound/mob/on_fire/firesoundloop /mob/living/Initialize(mapload) if(say_list_type) diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm index f3352dcfa0..cce7142570 100644 --- a/code/modules/client/preference_setup/vore/02_size.dm +++ b/code/modules/client/preference_setup/vore/02_size.dm @@ -11,11 +11,11 @@ var/weight_loss = 50 // Weight loss rate. var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp. var/offset_override = FALSE - var/voice_freq = 42500 //CHOMPEdit - Why was the default 0 - var/voice_sound = "goon speak 1" //CHOMPEdit - Changed the default voice to one less jarring + var/voice_freq = 42500 + var/voice_sound = "goon speak 1" var/custom_speech_bubble = "default" var/custom_footstep = "Default" - var/species_sound = "Unset" // CHOMPEdit: Use default species pain/scream sounds based off icon base if none set, override otherwise + var/species_sound = "Unset" // Definition of the stuff for Sizing /datum/category_item/player_setup_item/vore/size diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index aabc4acd5e..1efa93c186 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -270,11 +270,6 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_ //Any additional non-trait settings can be applied here new_S.blood_color = pref.blood_color - /* - if(pref.species_sound) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds. Don't try to do this if it doesn't exist. // && new_S.selects_bodytype && pref.custom_base) // we aren't a custom species, and we don't have a custom base. - new_S.copy_species_sounds(new_S, pref.species_sound, pref.custom_base) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds - */ - // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds. var/species_sounds_to_copy = pref.species_sound // What sounds are we using? if(species_sounds_to_copy == "Unset") // Are we unset? species_sounds_to_copy = select_default_species_sound(pref) // This will also grab gendered versions of the sounds, if they exist. @@ -300,6 +295,7 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_ var/points_left = pref.starting_trait_points + for(var/T in pref.pos_traits + pref.neg_traits) points_left -= GLOB.traits_costs[T] if(T in pref.pos_traits) @@ -309,21 +305,21 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_ if(points_left < 0 || traits_left < 0 || (!pref.custom_species && pref.species == SPECIES_CUSTOM)) . += span_red(span_bold("^ Fix things! ^")) + "
" - . += "Positive Trait(s) (Limited) +
" // CHOMPEdit: More obvious/clear to players. + . += "Positive Trait(s) (Limited) +
" . += "" - . += "Neutral Trait(s) (No Limit) +
" // CHOMPEdit: More obvious/clear to players. + . += "Neutral Trait(s) (No Limit) +
" . += "" - . += "Negative Trait(s) (No Limit) +
" // CHOMPEdit: More obvious/clear to players. + . += "Negative Trait(s) (No Limit) +
" . += "