From b5790fca217b4b9d9f861d2230c8c9b9e0f0b9ec Mon Sep 17 00:00:00 2001 From: Neerti Date: Fri, 18 Jan 2019 18:14:58 -0500 Subject: [PATCH 1/2] Merge pull request #5859 from Anewbe/emote_fix Audible emotes can be used again --- code/modules/mob/language/generic.dm | 3 +++ code/modules/mob/language/language.dm | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/language/generic.dm b/code/modules/mob/language/generic.dm index 40fe94b7f54..333fbb6fe5c 100644 --- a/code/modules/mob/language/generic.dm +++ b/code/modules/mob/language/generic.dm @@ -18,6 +18,9 @@ // if you make a loud noise (screams etc), you'll be heard from 4 tiles over instead of two return (copytext(message, length(message)) == "!") ? 4 : 2 +/datum/language/noise/can_speak_special(var/mob/speaker) + return TRUE //Audible emotes + // 'basic' language; spoken by default. /datum/language/common name = LANGUAGE_GALCOM diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index 66e0e5e0f01..3ee6de76933 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -134,14 +134,15 @@ /datum/language/proc/can_speak_special(var/mob/speaker) . = TRUE - if(ishuman(speaker)) - var/mob/living/carbon/human/H = speaker - if(src.name in H.species.assisted_langs) - . = FALSE - var/obj/item/organ/internal/voicebox/vox = locate() in H.internal_organs // Only voiceboxes for now. Maybe someday it'll include other organs, but I'm not that clever - if(vox) - if(!vox.is_broken() && (src in vox.assists_languages)) - . = TRUE + if(name != "Noise") // Audible Emotes + if(ishuman(speaker)) + var/mob/living/carbon/human/H = speaker + if(src.name in H.species.assisted_langs) + . = FALSE + var/obj/item/organ/internal/voicebox/vox = locate() in H.internal_organs // Only voiceboxes for now. Maybe someday it'll include other organs, but I'm not that clever + if(vox) + if(!vox.is_broken() && (src in vox.assists_languages)) + . = TRUE // Language handling. /mob/proc/add_language(var/language) @@ -172,6 +173,9 @@ log_debug("[src] attempted to speak a null language.") return 0 + if(speaking == all_languages["Noise"]) + return 1 + if (only_species_language && speaking != all_languages[species_language]) return 0