From f834263f84cb8a4207dac8779892253ae5d94c98 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Fri, 21 Aug 2015 13:00:57 +0300 Subject: [PATCH 1/4] Fixes a borg charger bump runtime --- code/game/machinery/rechargestation.dm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index c20ca8468a..8a63e754fd 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -196,8 +196,9 @@ if(icon_update_tick == 0) build_overlays() -/obj/machinery/recharge_station/Bumped(var/mob/AM) - move_inside(AM) +/obj/machinery/recharge_station/Bumped(var/mob/living/silicon/robot/R) + if(istype(R)) + go_in(R) /obj/machinery/recharge_station/proc/go_out() if(!(occupant)) @@ -208,6 +209,12 @@ update_icon() return +/obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) + R.reset_view(src) + R.loc = src + occupant = R + update_icon() + /obj/machinery/recharge_station/verb/move_eject() set category = "Object" set src in oview(1) @@ -235,8 +242,5 @@ usr << "Without a powercell, you can't be recharged." return - usr.reset_view(src) - usr.loc = src - occupant = usr + go_in(usr) add_fingerprint(usr) - update_icon() From c074f9ee9e702cb121b2d6f7aa3db358372cacc9 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Fri, 21 Aug 2015 13:01:35 +0300 Subject: [PATCH 2/4] Fixes a runtime with lights during explosions --- code/modules/power/lighting.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 530206d3b5..aa3715525a 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -390,8 +390,8 @@ // returns whether this light has power // true if area has power and lightswitch is on /obj/machinery/light/proc/has_power() - var/area/A = src.loc.loc - return A.lightswitch && (!A.requires_power || A.power_light) + var/area/A = get_area(src) + return A && A.lightswitch && (!A.requires_power || A.power_light) /obj/machinery/light/proc/flicker(var/amount = rand(10, 20)) if(flickering) return From 035f551743a3bd4008cf4babe8597ab4d4ca2634 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Fri, 21 Aug 2015 13:18:19 +0300 Subject: [PATCH 3/4] Makes use of forceMove --- code/game/machinery/rechargestation.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 8a63e754fd..57cd77b066 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -203,7 +203,7 @@ /obj/machinery/recharge_station/proc/go_out() if(!(occupant)) return - occupant.loc = loc + occupant.forceMove(loc) occupant.reset_view() occupant = null update_icon() @@ -211,7 +211,7 @@ /obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) R.reset_view(src) - R.loc = src + R.forceMove(src) occupant = R update_icon() From d2ee97c6b77f924e1c8ac5f4bf60831be5080737 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Mon, 24 Aug 2015 09:59:57 +0300 Subject: [PATCH 4/4] You guys are hard to please --- code/game/machinery/rechargestation.dm | 44 +++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 57cd77b066..6f3041dd6d 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -200,46 +200,46 @@ if(istype(R)) go_in(R) -/obj/machinery/recharge_station/proc/go_out() - if(!(occupant)) - return - occupant.forceMove(loc) - occupant.reset_view() - occupant = null - update_icon() - return - /obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) + if(!istype(R)) + return + if(occupant) + return + R.reset_view(src) R.forceMove(src) occupant = R update_icon() +/obj/machinery/recharge_station/proc/go_out() + if(!occupant) + return + + occupant.forceMove(loc) + occupant.reset_view() + occupant = null + update_icon() + /obj/machinery/recharge_station/verb/move_eject() set category = "Object" + set name = "Eject Recharger" set src in oview(1) - if(usr.stat != 0) + + // TODO : Change to incapacitated() on merge. + if(usr.stat || usr.lying || usr.resting || usr.buckled) return + go_out() add_fingerprint(usr) return /obj/machinery/recharge_station/verb/move_inside() set category = "Object" + set name = "Enter Recharger" set src in oview(1) - if(usr.stat == DEAD) - return - if(occupant) - usr << "\The [src] is already occupied!" - return - - var/mob/living/silicon/robot/R = usr - if(!istype(R)) - usr << "Only synthetics may enter the recharger!" - return - if(!R.cell) - usr << "Without a powercell, you can't be recharged." + // TODO : Change to incapacitated() on merge. + if(usr.stat || usr.lying || usr.resting || usr.buckled) return go_in(usr)