diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 80356bec2..9502db55f 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -58,6 +58,7 @@ #define SPAN_COMMAND "command_headset" #define SPAN_CLOWN "clown" #define SPAN_SINGING "singing" +#define SPAN_SMALL "small" //bitflag #defines for return value of the radio() proc. #define ITALICS 1 diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm index 137723add..71ad20f9f 100644 --- a/hyperstation/code/modules/resize/resizing.dm +++ b/hyperstation/code/modules/resize/resizing.dm @@ -12,6 +12,7 @@ var/const/RESIZE_MICRO = 0.25 /mob/living var/size_multiplier = 1 //multiplier for the mob's icon size atm var/previous_size = 1 + var/small_speech = FALSE //Cyanosis - Action that resizes the sprite for the client but nobody else. Say goodbye to attacking yourself when someone's above you lmao var/datum/action/sizecode_resize/small_sprite @@ -237,8 +238,14 @@ mob/living/get_effective_size() //Proc for changing mob_size to be grabbed for item weight classes /mob/living/proc/update_mobsize(var/mob/living/tmob) + if(small_speech == TRUE) //if they have small speech reset it. + small_speech = FALSE + UnregisterSignal(src, COMSIG_MOB_SAY) + if(size_multiplier <= 0.50) mob_size = 0 + RegisterSignal(src, COMSIG_MOB_SAY, .proc/handle_small_speech) + small_speech = TRUE if(size_multiplier < 1) mob_size = 1 if(size_multiplier == 1) @@ -246,6 +253,9 @@ mob/living/get_effective_size() if(size_multiplier > 1) mob_size = 3 +/mob/living/proc/handle_small_speech(owner, list/speech_args) //for making peoples text small + speech_args[SPEECH_SPANS] |= SPAN_SMALL + //Proc for instantly grabbing valid size difference. Code optimizations soon(TM) /* /mob/living/proc/sizeinteractioncheck(var/mob/living/tmob)