From 51e10e6a199077f11723a57c071ec78f23653add Mon Sep 17 00:00:00 2001 From: Menshin Date: Tue, 16 Dec 2014 01:23:29 +0100 Subject: [PATCH 1/2] Fixes controless tracker runtime --- code/modules/power/solar.dm | 9 ++++----- code/modules/power/tracker.dm | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 062f28cb028..30c405ac630 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -33,9 +33,10 @@ var/list/solars_list = list() //set the control of the panel to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/solar/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST)) + if(!SC || (SC && (get_dist(src, SC) > SOLAR_MAX_DIST))) return 0 control = SC + SC.connected_panels |= src return 1 //set the control of the panel to null and removes it from the control list of the previous control computer if needed @@ -323,12 +324,10 @@ var/list/solars_list = list() var/obj/machinery/power/solar/S = M if(!S.control) //i.e unconnected S.set_control(src) - connected_panels |= S else if(istype(M, /obj/machinery/power/tracker)) if(!connected_tracker) //if there's already a tracker connected to the computer don't add another var/obj/machinery/power/tracker/T = M if(!T.control) //i.e unconnected - connected_tracker = T T.set_control(src) //called by the sun controller, update the facing angle (either manually or via tracking) and rotates the panels accordingly @@ -484,10 +483,10 @@ var/list/solars_list = list() set_panels(targetdir) if(href_list["search_connected"]) - src.search_for_connected() + search_for_connected() if(connected_tracker && track == 2) connected_tracker.set_angle(sun.angle) - src.set_panels(cdir) + set_panels(cdir) src.updateUsrDialog() return diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 20e8ab528c4..84a51c7bdf8 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -27,9 +27,10 @@ //set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/tracker/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST)) + if(!SC || (SC && (get_dist(src, SC) > SOLAR_MAX_DIST))) return 0 control = SC + SC.connected_tracker = src return 1 //set the control of the tracker to null and removes it from the previous control computer if needed From 672b476f23b428b593998da81206bb66263a3f5b Mon Sep 17 00:00:00 2001 From: Menshin Date: Tue, 16 Dec 2014 13:16:19 +0100 Subject: [PATCH 2/2] Tidying a little --- code/modules/power/solar.dm | 2 +- code/modules/power/tracker.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 30c405ac630..7c70cb2c484 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -33,7 +33,7 @@ var/list/solars_list = list() //set the control of the panel to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/solar/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(!SC || (SC && (get_dist(src, SC) > SOLAR_MAX_DIST))) + if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) return 0 control = SC SC.connected_panels |= src diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 84a51c7bdf8..5cf341f9fbb 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -27,7 +27,7 @@ //set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/tracker/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(!SC || (SC && (get_dist(src, SC) > SOLAR_MAX_DIST))) + if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) return 0 control = SC SC.connected_tracker = src