diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index d4c40c6179c..8743d0b7e46 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -66,11 +66,15 @@ init_typing_indicator("[cur_bubble_appearance]_typing") if(state && !typing) - loc.add_overlay(typing_indicator, TRUE) + add_overlay(typing_indicator, TRUE) typing = TRUE + typing_indicator_active = typing_indicator else if(typing) - loc.cut_overlay(typing_indicator, TRUE) + cut_overlay(typing_indicator_active, TRUE) typing = FALSE + if(typing_indicator_active != typing_indicator) + qdel(typing_indicator_active) + typing_indicator_active = null return state diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 2529936a7ae..f729cb8c7ec 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -218,6 +218,7 @@ var/typing var/obj/effect/decal/typing_indicator + var/obj/effect/decal/typing_indicator_active var/cur_typing_indicator var/custom_speech_bubble = "default" diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index f6db4f5fc29..8684c3463cb 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -35,9 +35,13 @@ if(state && !typing) add_overlay(typing_indicator, TRUE) typing = TRUE + typing_indicator_active = typing_indicator else if(typing) - cut_overlay(typing_indicator, TRUE) + cut_overlay(typing_indicator_active, TRUE) typing = FALSE + if(typing_indicator_active != typing_indicator) + qdel(typing_indicator_active) + typing_indicator_active = null return state