diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 81b4a67f3b..c0ac9817fa 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -526,6 +526,7 @@ complexity = 8 inputs = list() outputs = list( + "speaker ref",//CHOMPADDITION: so we can target the speaker with an action "speaker" = IC_PINTYPE_STRING, "message" = IC_PINTYPE_STRING ) @@ -551,8 +552,9 @@ // as a translation, when it is not. if(S.speaking && !istype(S.speaking, /datum/language/common)) translated = TRUE - set_pin_data(IC_OUTPUT, 1, M.GetVoice()) - set_pin_data(IC_OUTPUT, 2, msg) + set_pin_data(IC_OUTPUT , 1, weakref(M))//CHOMPADDITION: so we can target the speaker with an action + set_pin_data(IC_OUTPUT, 2, M.GetVoice()) + set_pin_data(IC_OUTPUT, 3, msg) push_data() activate_pin(1) @@ -570,6 +572,7 @@ complexity = 12 inputs = list() outputs = list( + "speaker ref",//CHOMPADDITION: so we can target the speaker with an action "speaker" = IC_PINTYPE_STRING, "message" = IC_PINTYPE_STRING ) @@ -602,8 +605,9 @@ for(var/datum/multilingual_say_piece/S in message_pieces) if(!((S.speaking.flags & NONVERBAL) || (S.speaking.flags & SIGNLANG))||S.speaking.name == LANGUAGE_ECHOSONG) //Ignore verbal languages return - set_pin_data(IC_OUTPUT, 1, M.GetVoice()) - set_pin_data(IC_OUTPUT, 2, msg) + set_pin_data(IC_OUTPUT , 1, weakref(M))//CHOMPADDITION: so we can target the speaker with an action + set_pin_data(IC_OUTPUT, 2, M.GetVoice()) + set_pin_data(IC_OUTPUT, 3, msg) push_data() if(!translated)