From 5094a8516099324c33a45d4d64ec7eea7f884452 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Mon, 30 Nov 2015 15:14:52 -0500 Subject: [PATCH 1/4] Gives mechas speech bubbles. --- code/modules/mob/living/say.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 5b3b365d88b..fd136463555 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -254,8 +254,12 @@ proc/get_radio_key_from_channel(var/channel) M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol) if(M.client) speech_bubble_recipients.Add(M.client) - spawn(0) - flick_overlay(image('icons/mob/talk.dmi', src, "h[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) + if(istype(src.loc, /obj/mecha)) + spawn(0) + flick_overlay(image('icons/mob/talk.dmi', src.loc, "hR[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) + else + spawn(0) + flick_overlay(image('icons/mob/talk.dmi', src, "h[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) for(var/obj/O in listening_obj) spawn(0) From 576ffff8d95504ef42fe6cf1a1bac16de826f53c Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Mon, 30 Nov 2015 15:17:32 -0500 Subject: [PATCH 2/4] Bots/mechs get different speech bubbles --- icons/mob/talk.dmi | Bin 2136 -> 2170 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index db9ee7eefdf515ccc0acef18d608a9f49d12fd92..4b74a2891e3fccac1702010322320cea4e33e512 100644 GIT binary patch literal 2170 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 aC5yyMufZpgPnU&X1%SPc6Rgqta_YbRwf$NE From c1a5f4168061726418bdf0628623de96bc245190 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Mon, 30 Nov 2015 15:42:26 -0500 Subject: [PATCH 3/4] Derp --- code/modules/mob/living/say.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index fd136463555..1720dad0f69 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -254,11 +254,10 @@ proc/get_radio_key_from_channel(var/channel) M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol) if(M.client) speech_bubble_recipients.Add(M.client) - if(istype(src.loc, /obj/mecha)) - spawn(0) + 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 - spawn(0) + else flick_overlay(image('icons/mob/talk.dmi', src, "h[speech_bubble_test]",MOB_LAYER+1), speech_bubble_recipients, 30) for(var/obj/O in listening_obj) From 900f20b9bd8b74b80c265865b8547e523675e7e8 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Tue, 1 Dec 2015 19:06:57 -0500 Subject: [PATCH 4/4] 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