From 0949e4d0524b1fb801823a8a25e0964dd9f2e243 Mon Sep 17 00:00:00 2001 From: xxalpha Date: Fri, 5 Feb 2016 04:30:07 +0000 Subject: [PATCH] Moved proc to game.dm --- code/__HELPERS/game.dm | 28 +++++++++++++++++++++------- code/__HELPERS/unsorted.dm | 14 -------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 4f0e9158101..e127a5f3060 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -1,3 +1,10 @@ +//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a +#define RANGE_TURFS(RADIUS, CENTER) \ + block( \ + locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ + locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ + ) + //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 /proc/get_area(O) @@ -24,6 +31,20 @@ return A return 0 +/proc/get_areas_in_range(dist=0, atom/center=usr) + if(!dist) + var/turf/T = get_turf(center) + return T ? list(T.loc) : list() + if(!center) + return list() + + var/list/turfs = RANGE_TURFS(dist, center) + var/list/areas = list() + for(var/V in turfs) + var/turf/T = V + areas |= T.loc + return areas + // Like view but bypasses luminosity check /proc/get_hear(range, atom/source) @@ -423,10 +444,3 @@ new_character.key = G_found.key return new_character - -//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a -#define RANGE_TURFS(RADIUS, CENTER) \ - block( \ - locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ - locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ - ) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 336648791af..bf7ba315543 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1175,20 +1175,6 @@ B --><-- A return L -/proc/get_areas_in_range(dist=0, atom/center=usr) - if(!dist) - var/turf/T = get_turf(center) - return T ? list(T.loc) : list() - if(!center) - return list() - - var/list/turfs = RANGE_TURFS(dist, center) - var/list/areas = list() - for(var/V in turfs) - var/turf/T = V - areas |= T.loc - return areas - /atom/proc/contains(var/atom/A) if(!A) return 0