Merge pull request #6353 from Citadel-Station-13/upstream-merge-37044

[MIRROR] Fix logic circuits runtime
This commit is contained in:
deathride58
2018-04-11 21:32:17 +00:00
committed by GitHub
@@ -30,6 +30,9 @@
/obj/item/integrated_circuit/logic/binary/proc/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
return FALSE
/obj/item/integrated_circuit/logic/binary/proc/comparable(var/datum/integrated_io/A, var/datum/integrated_io/B)
return (isnum(A.data) && isnum(B.data)) || (istext(A.data) && istext(B.data))
/obj/item/integrated_circuit/logic/unary
inputs = list("A" = IC_PINTYPE_ANY)
activators = list("compare" = IC_PINTYPE_PULSE_IN, "on compare" = IC_PINTYPE_PULSE_OUT)
@@ -176,7 +179,8 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/logic/binary/less_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
return A.data < B.data
if(comparable(A, B))
return A.data < B.data
/obj/item/integrated_circuit/logic/binary/less_than_or_equal
name = "less than or equal gate"
@@ -185,7 +189,8 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/logic/binary/less_than_or_equal/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
return A.data <= B.data
if(comparable(A, B))
return A.data <= B.data
/obj/item/integrated_circuit/logic/binary/greater_than
name = "greater than gate"
@@ -194,7 +199,8 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/logic/binary/greater_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
return A.data > B.data
if(comparable(A, B))
return A.data > B.data
/obj/item/integrated_circuit/logic/binary/greater_than_or_equal
name = "greater_than or equal gate"
@@ -203,7 +209,8 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/logic/binary/greater_than_or_equal/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
return A.data >= B.data
if(comparable(A, B))
return A.data >= B.data
/obj/item/integrated_circuit/logic/unary/not
name = "not gate"