Fixes some missing push_data calls (fixes #3683) (#3714)

Fixes every issue in #3683. Every single one. I'm sort of scared, given how easy this fix was.

Also changes basic pathfinder behaviour. It will now stop moving/output null as the direction if it can't see its target, instead of continuing moving in the same direction. Might remove this if people don't like the change.
This commit is contained in:
MarinaGryphon
2017-10-20 06:17:41 -05:00
committed by Erki
parent 74d67e977b
commit 047ce56593
6 changed files with 18 additions and 2 deletions

View File

@@ -91,7 +91,8 @@
for(var/i = 1 to outputs.len)
set_pin_data(IC_OUTPUT, i, i == output_index ? output : null)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/transfer/demultiplexer/medium

View File

@@ -166,6 +166,7 @@
else
set_pin_data(IC_OUTPUT, 1, null)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/input/adjacent_locator
@@ -185,6 +186,7 @@
var/atom/A = get_pin_data_as_type(IC_INPUT, 1, /atom)
if(!A)
set_pin_data(IC_OUTPUT, 1, null)
push_data()
return
var/desired_type = A.type
@@ -197,6 +199,7 @@
if(valid_things.len)
set_pin_data(IC_OUTPUT, 1, pick(valid_things))
push_data()
/obj/item/integrated_circuit/input/signaler
name = "integrated signaler"

View File

@@ -41,7 +41,7 @@
for(var/i = 1 to inputs.len)
var/data = get_pin_data(IC_INPUT, i)
set_pin_data(IC_OUTPUT, i, data)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/memory/storage/medium
@@ -85,6 +85,7 @@
/obj/item/integrated_circuit/memory/constant/do_work()
set_pin_data(IC_OUTPUT, 1, data)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/memory/constant/attack_self(mob/user)

View File

@@ -272,6 +272,7 @@
if(camera)
set_camera_status(0)
set_pin_data(IC_INPUT, 2, FALSE)
push_data()
/obj/item/integrated_circuit/output/led
name = "light-emitting diode"
@@ -292,6 +293,7 @@
/obj/item/integrated_circuit/output/led/power_fail()
set_pin_data(IC_INPUT, 1, FALSE)
push_data()
/obj/item/integrated_circuit/output/led/any_examine(mob/user)
var/text_output = list()

View File

@@ -20,11 +20,14 @@
set_pin_data(IC_OUTPUT, 1, null)
if(!isweakref(I.data))
push_data()
return
var/atom/A = I.data.resolve()
if(!A)
push_data()
return
if(!(A in view(get_turf(src))))
push_data()
return // Can't see the target.
var/desired_dir = get_dir(get_turf(src), A)