From 900f20b9bd8b74b80c265865b8547e523675e7e8 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Tue, 1 Dec 2015 19:06:57 -0500 Subject: [PATCH] I -think- this is what you guys mean? --- code/game/atoms.dm | 5 ++++- code/game/mecha/mecha.dm | 4 ++++ code/modules/mob/living/say.dm | 12 ++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 65f79185e3a..3fa9337059a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -476,4 +476,7 @@ its easier to just keep the beam vertical. if((!message)) return for(var/mob/O in hearers(src, null)) - O.show_message("[src] [atom_say_verb], \"[message]\"",2) \ No newline at end of file + O.show_message("[src] [atom_say_verb], \"[message]\"",2) + +/atom/proc/speech_bubble(var/bubble_state = "",var/bubble_loc = src, var/list/bubble_recipients = list()) + return \ No newline at end of file diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index bc461924377..4133d8eb014 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1943,3 +1943,7 @@ //src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) return */ + + +/obj/mecha/speech_bubble(var/bubble_state = "",var/bubble_loc = src, var/list/bubble_recipients = list()) + flick_overlay(image('icons/mob/talk.dmi', bubble_loc, bubble_state,MOB_LAYER+1), bubble_recipients, 30) \ No newline at end of file diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 1720dad0f69..72035ee078b 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -255,10 +255,11 @@ proc/get_radio_key_from_channel(var/channel) if(M.client) speech_bubble_recipients.Add(M.client) spawn(0) - if(istype(src.loc, /obj/mecha)) - flick_overlay(image('icons/mob/talk.dmi', src.loc, "hR[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) - else - flick_overlay(image('icons/mob/talk.dmi', src, "h[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) + if(loc && !isturf(loc)) + var/atom/A = loc //Non-turf, let it handle the speech bubble + A.speech_bubble("hR[speech_bubble_test]", A.loc, speech_bubble_recipients) + else //Turf, leave speech bubbles to the mob + speech_bubble("h[speech_bubble_test]", src, speech_bubble_recipients) for(var/obj/O in listening_obj) spawn(0) @@ -433,3 +434,6 @@ proc/get_radio_key_from_channel(var/channel) log_whisper("[src.name]/[src.key] : [message]") return 1 + +/mob/living/speech_bubble(var/bubble_state = "",var/bubble_loc = src, var/list/bubble_recipients = list()) + flick_overlay(image('icons/mob/talk.dmi', bubble_loc, bubble_state,MOB_LAYER+1), bubble_recipients, 30) \ No newline at end of file