From c0075f41d0fd266b190ace5d1814655940aa4c1a Mon Sep 17 00:00:00 2001 From: Krausus Date: Thu, 18 Jun 2015 04:54:31 -0400 Subject: [PATCH] Fixes get_apc with a BYOND bug workaround Also reverts the mining asteroid-specific workaround --- code/game/objects/items/mountable_frames/apc_frame.dm | 1 - code/modules/power/power.dm | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/mountable_frames/apc_frame.dm b/code/game/objects/items/mountable_frames/apc_frame.dm index 330ee8c7da2..5e092638707 100644 --- a/code/game/objects/items/mountable_frames/apc_frame.dm +++ b/code/game/objects/items/mountable_frames/apc_frame.dm @@ -9,7 +9,6 @@ if(..()) var/turf/turf_loc = get_turf(user) var/area/area_loc = turf_loc.loc - if(istype(area_loc,/area/mine)) return if (area_loc.get_apc()) user << "This area already has an APC." return //only one APC per area diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index a93e982e850..c66ebbe6557 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -404,8 +404,11 @@ return null /area/proc/get_apc() - var/obj/machinery/power/apc/FINDME = locate() in src - if (FINDME) + // This was a simple locate() in src, but an unresolved BYOND bug causes trying to locate() in an + // area to take an inconceivably long time, especially for large areas. + // See: http://www.byond.com/forum/?post=1860571 + var/obj/machinery/power/apc/FINDME + for(FINDME in src) return FINDME