From 34e46de2189f817bf85e131945ecfdae47a1eedb Mon Sep 17 00:00:00 2001 From: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Date: Fri, 11 Jun 2021 17:10:04 +0100 Subject: [PATCH] Fixes comparison component runtime (#59584) --- .../wiremod/components/math/comparison.dm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/code/modules/wiremod/components/math/comparison.dm b/code/modules/wiremod/components/math/comparison.dm index 2d3ef3be516..46e7910ab2c 100644 --- a/code/modules/wiremod/components/math/comparison.dm +++ b/code/modules/wiremod/components/math/comparison.dm @@ -7,6 +7,7 @@ display_name = "Comparison" input_port_amount = 2 + var/current_type = PORT_TYPE_ANY GLOBAL_LIST_INIT(comp_comparison_options, list( COMP_COMPARISON_EQUAL, @@ -21,6 +22,21 @@ GLOBAL_LIST_INIT(comp_comparison_options, list( options = GLOB.comp_comparison_options return ..() +/obj/item/circuit_component/compare/comparison/input_received(datum/port/input/port) + switch(current_option) + if(COMP_COMPARISON_EQUAL, COMP_COMPARISON_NOT_EQUAL) + if(current_type != PORT_TYPE_ANY) + current_type = PORT_TYPE_ANY + input_ports[1].set_datatype(PORT_TYPE_ANY) + input_ports[2].set_datatype(PORT_TYPE_ANY) + else + if(current_type != PORT_TYPE_NUMBER) + current_type = PORT_TYPE_NUMBER + input_ports[1].set_datatype(PORT_TYPE_NUMBER) + input_ports[2].set_datatype(PORT_TYPE_NUMBER) + return ..() + + /obj/item/circuit_component/compare/comparison/do_comparisons(list/ports) if(length(ports) < input_port_amount) return FALSE