From 13ee99be77f02f5b4e14542e32a58f384a5466d2 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sat, 7 Nov 2020 03:42:11 -0300 Subject: [PATCH] fixes some stuff about emotes *damn skyrat!* --- code/datums/emotes.dm | 8 +-- code/modules/mob/living/say.dm | 4 +- .../simple_animal/hostile/megafauna/drake.dm | 2 +- code/modules/mob/mob.dm | 32 +++++----- code/modules/mob/say.dm | 2 +- sandcode/code/modules/mob/living/say.dm | 59 ------------------- .../hostile/megafauna/drakehard.dm | 2 +- tgstation.dme | 1 - 8 files changed, 24 insertions(+), 86 deletions(-) delete mode 100644 sandcode/code/modules/mob/living/say.dm diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 94ab538e9d..9ba80b7b26 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -69,13 +69,13 @@ M.show_message(dchatmsg) //SKYRAT CHANGE if(emote_type == EMOTE_AUDIBLE) - user.audible_message(msg, runechat_popup = chat_popup) + user.audible_message(dchatmsg, runechat_popup = chat_popup, rune_msg = msg) else if(emote_type == EMOTE_VISIBLE) - user.visible_message(msg, runechat_popup = chat_popup) + user.visible_message(dchatmsg, runechat_popup = chat_popup, rune_msg = msg) else if(emote_type == EMOTE_BOTH) - user.visible_message(msg, blind_message = msg, runechat_popup = chat_popup) + user.visible_message(dchatmsg, blind_message = msg, runechat_popup = chat_popup, rune_msg = msg) else if(emote_type == EMOTE_OMNI) - user.visible_message(msg, omni = TRUE, runechat_popup = chat_popup) + user.visible_message(dchatmsg, omni = TRUE, runechat_popup = chat_popup, rune_msg = msg) //Skyrat change if(image_popup) flick_emote_popup_on_mob(user, image_popup, 40) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index b859b493e3..3cf0751df2 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -270,7 +270,6 @@ GLOBAL_LIST_INIT(department_radio_keys, list( show_message(message, MSG_AUDIBLE, deaf_message, deaf_type) return message -/*****moved to modular_skyrat******* /mob/living/send_speech(message, message_range = 6, obj/source = src, bubble_type = bubble_icon, list/spans, datum/language/message_language=null, message_mode) var/static/list/eavesdropping_modes = list(MODE_WHISPER = TRUE, MODE_WHISPER_CRIT = TRUE) var/eavesdrop_range = 0 @@ -321,8 +320,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/animate_speechbubble, I, speech_bubble_recipients, 30) //skyrat-edit -********/ + INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) /mob/proc/binarycheck() return FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index f7d044831a..3d227b29ad 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -87,7 +87,7 @@ Difficulty: Medium return FALSE return ..() -/mob/living/simple_animal/hostile/megafauna/dragon/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup) +/mob/living/simple_animal/hostile/megafauna/dragon/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup, rune_msg) if(swooping & SWOOP_INVULNERABLE) //to suppress attack messages without overriding every single proc that could send a message saying we got hit return return ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 75318f9f85..2547a41e3c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -129,11 +129,10 @@ * * target_message (optional) is what the target mob will see e.g. "[src] does something to you!" * * omni (optional) if TRUE, will show to users no matter what. */ -/atom/proc/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup) +/atom/proc/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup, rune_msg) var/turf/T = get_turf(src) if(!T) return - var/final_msg = !(src == null) ? "[src] " + message : "Unknown " + message //SKYRAT CHANGE var/list/hearers = get_hearers_in_view(vision_distance, src) //caches the hearers and then removes ignored mobs. if(!length(hearers)) return @@ -172,20 +171,22 @@ msg = blind_message if(!msg) continue - if (runechat_popup && M.client?.prefs.chat_on_map && (M.client.prefs.see_chat_non_mob || ismob(src)) && M.client.prefs.see_chat_emotes) //SKYRAT CHANGE - M.create_chat_message(src, null, msg, list("emote", "italics"), null) //Skyrat change - M.show_message(final_msg, MSG_VISUAL, blind_message, MSG_AUDIBLE) //SKYRAT CHANGE + if(runechat_popup && M.client?.prefs.chat_on_map && (M.client.prefs.see_chat_non_mob || ismob(src)) && M.client.prefs.see_chat_emotes) //SKYRAT CHANGE + M.create_chat_message(src, null, rune_msg ? rune_msg : msg, list("emote", "italics"), null) //Skyrat change + M.show_message(msg, MSG_VISUAL, blind_message, MSG_AUDIBLE) //SKYRAT CHANGE ///Adds the functionality to self_message. -/mob/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup) +/mob/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni = FALSE, runechat_popup, rune_msg) . = ..() if(self_message && target != src) if(!omni) show_message(self_message, MSG_VISUAL, blind_message, MSG_AUDIBLE) if(runechat_popup && client?.prefs.chat_on_map && client.prefs.see_chat_emotes) //SKYRAT CHANGE - create_chat_message(src, null, self_message, list("emote", "italics"), null) //Skyrat change + create_chat_message(src, null, rune_msg ? rune_msg : self_message, list("emote", "italics"), null) //Skyrat change else show_message(self_message) + if(runechat_popup && client?.prefs.chat_on_map && client.prefs.see_chat_emotes) //SKYRAT CHANGE + create_chat_message(src, null, rune_msg ? rune_msg : self_message, list("emote", "italics"), null) //Skyrat change /** * Show a message to all mobs in earshot of this atom @@ -198,11 +199,10 @@ * * hearing_distance (optional) is the range, how many tiles away the message can be heard. * * ignored_mobs (optional) doesn't show any message to any given mob in the list. */ -/atom/proc/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, ignored_mobs, user_msg, runechat_popup) //SKYRAT CHANGE +/atom/proc/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, ignored_mobs, runechat_popup, rune_msg) //SKYRAT CHANGE var/turf/T = get_turf(src) if(!T) return - var/final_msg = user_msg ? "[src] " + message : message //SKYRAT CHANGE var/list/hearers = get_hearers_in_view(hearing_distance, src) if(!length(hearers)) return @@ -210,9 +210,9 @@ if(self_message) hearers -= src for(var/mob/M in hearers) - if (runechat_popup && M.client?.prefs.chat_on_map && (M.client.prefs.see_chat_non_mob || ismob(src)) && M.client.prefs.see_chat_emotes) //SKYRAT CHANGE - M.create_chat_message(src, null, message, list("emote", "italics"), null) //Skyrat change - M.show_message(final_msg, MSG_AUDIBLE, deaf_message, MSG_VISUAL) //SKYRAT CHANGE + if(runechat_popup && M.client?.prefs.chat_on_map && (M.client.prefs.see_chat_non_mob || ismob(src)) && M.client.prefs.see_chat_emotes) //SKYRAT CHANGE + M.create_chat_message(src, null, rune_msg ? rune_msg : message, list("emote", "italics"), null) //Skyrat change + M.show_message(message, MSG_AUDIBLE, deaf_message, MSG_VISUAL) //SKYRAT CHANGE /** * Show a message to all mobs in earshot of this one @@ -226,12 +226,12 @@ * * hearing_distance (optional) is the range, how many tiles away the message can be heard. * * ignored_mobs (optional) doesn't show any message to any given mob in the list. */ -/mob/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, list/ignored_mobs, user_msg, runechat_popup) //SKYRAT CHANGE +/mob/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, list/ignored_mobs, runechat_popup, rune_msg) //SKYRAT CHANGE . = ..() if(self_message) - if (runechat_popup && client?.prefs.chat_on_map && client.prefs.see_chat_emotes) //SKYRAT CHANGE - create_chat_message(src, null, self_message, list("emote", "italics"), null) //Skyrat change - show_message(user_msg ? "[src] " + self_message : self_message, MSG_AUDIBLE, deaf_message, MSG_VISUAL) + if(runechat_popup && client?.prefs.chat_on_map && client.prefs.see_chat_emotes) //SKYRAT CHANGE + create_chat_message(src, null, rune_msg ? rune_msg : self_message, list("emote", "italics"), null) //Skyrat change + show_message(self_message, MSG_AUDIBLE, deaf_message, MSG_VISUAL) /mob/proc/get_item_by_slot(slot_id) return null diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 8f566339a2..d3305c0c62 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -43,7 +43,7 @@ if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return - + if(length(message) > MAX_MESSAGE_LEN) to_chat(usr, message) to_chat(usr, "^^^----- The preceeding message has been DISCARDED for being over the maximum length of [MAX_MESSAGE_LEN]. It has NOT been sent! -----^^^") diff --git a/sandcode/code/modules/mob/living/say.dm b/sandcode/code/modules/mob/living/say.dm deleted file mode 100644 index d0edb1d4c9..0000000000 --- a/sandcode/code/modules/mob/living/say.dm +++ /dev/null @@ -1,59 +0,0 @@ -/mob/living/send_speech(message, message_range = 6, obj/source = src, bubble_type = bubble_icon, list/spans, datum/language/message_language=null, message_mode) - var/static/list/eavesdropping_modes = list(MODE_WHISPER = TRUE, MODE_WHISPER_CRIT = TRUE) - var/eavesdrop_range = 0 - if(eavesdropping_modes[message_mode]) - eavesdrop_range = EAVESDROP_EXTRA_RANGE - var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source) - var/list/the_dead = list() - var/list/dead_away = list() - var/list/yellareas //CIT CHANGE - adds the ability for yelling to penetrate walls and echo throughout areas - if(!eavesdrop_range && say_test(message) == "2") //CIT CHANGE - ditto - yellareas = get_areas_in_range(message_range*0.5, source) //CIT CHANGE - ditto - for(var/_M in GLOB.player_list) - var/mob/M = _M - if(M.stat != DEAD) //not dead, not important - if(yellareas) //CIT CHANGE - see above. makes yelling penetrate walls - var/area/A = get_area(M) //CIT CHANGE - ditto - if(istype(A) && A.ambientsounds != SPACE && (A in yellareas)) //CIT CHANGE - ditto - listening |= M //CIT CHANGE - ditto - continue - if(!M.client || !client) //client is so that ghosts don't have to listen to mice - continue - if(get_dist(M, source) > 7 || M.z != z) //they're out of range of normal hearing - if(eavesdropping_modes[message_mode] && !(M.client.prefs.chat_toggles & CHAT_GHOSTWHISPER)) //they're whispering and we have hearing whispers at any range off - continue - if(!(M.client.prefs.chat_toggles & CHAT_GHOSTEARS)) //they're talking normally and we have hearing at any range off - continue - dead_away[M] = TRUE - listening |= M - the_dead[M] = TRUE - - var/eavesdropping - var/eavesrendered - if(eavesdrop_range) - eavesdropping = stars(message) - eavesrendered = compose_message(src, message_language, eavesdropping, null, spans, message_mode, FALSE, source) - - var/rendered = compose_message(src, message_language, message, null, spans, message_mode, FALSE, source) - for(var/_AM in listening) - var/atom/movable/AM = _AM - if(!(the_dead[AM])) - if(eavesdrop_range && get_dist(source, AM) > message_range) - AM.Hear(eavesrendered, src, message_language, eavesdropping, null, spans, message_mode, source) - else - AM.Hear(rendered, src, message_language, message, null, spans, message_mode, source) - else if (dead_away[AM] && istype(AM, /mob/dead/observer)) - var/mob/dead/observer/O = AM - O.HearNoPopup(rendered, src, message_language, message, null, spans, message_mode, source) - else - AM.Hear(rendered, src, message_language, message, null, spans, message_mode, source) - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_LIVING_SAY_SPECIAL, src, message) - - //speech bubble - var/list/speech_bubble_recipients = list() - for(var/mob/M in listening) - if(M.client && !M.client.prefs.chat_on_map) //Skyrat change - speech_bubble_recipients.Add(M.client) - var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) - I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/animate_speechbubble, I, speech_bubble_recipients, 30) //skyrat-edit diff --git a/sandcode/code/modules/mob/living/simple_animal/hostile/megafauna/drakehard.dm b/sandcode/code/modules/mob/living/simple_animal/hostile/megafauna/drakehard.dm index e97eea550a..3153b46a1a 100644 --- a/sandcode/code/modules/mob/living/simple_animal/hostile/megafauna/drakehard.dm +++ b/sandcode/code/modules/mob/living/simple_animal/hostile/megafauna/drakehard.dm @@ -334,7 +334,7 @@ Difficulty: Medium return FALSE return ..() -/mob/living/simple_animal/hostile/megafauna/dragon/hard/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni, runechat_popup) //SKYRAT EDIT +/mob/living/simple_animal/hostile/megafauna/dragon/hard/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message, omni, runechat_popup, rune_msg) //SKYRAT EDIT if(swooping & SWOOP_INVULNERABLE) //to suppress attack messages without overriding every single proc that could send a message saying we got hit return return ..() diff --git a/tgstation.dme b/tgstation.dme index cea8a1eeaa..f725e70930 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3765,7 +3765,6 @@ #include "sandcode\code\modules\mob\dead\observer\observer.dm" #include "sandcode\code\modules\mob\living\combat_indicator.dm" #include "sandcode\code\modules\mob\living\emote.dm" -#include "sandcode\code\modules\mob\living\say.dm" #include "sandcode\code\modules\mob\living\ssd_indicator.dm" #include "sandcode\code\modules\mob\living\typing_indicator_overrides.dm" #include "sandcode\code\modules\mob\living\carbon\carbon.dm"