Merge pull request #629 from tigercat2000/portgetPixelDistance

Ports getPixelDistance() from -tg-
This commit is contained in:
ZomgPonies
2015-03-23 11:13:26 -04:00
+34 -1
View File
@@ -1268,6 +1268,39 @@ proc/get_mob_with_client_list()
if (0)
return
//Finds the distance between two atoms, in pixels
/proc/getPixelDistance(var/atom/A, var/atom/B)
if(!istype(A)||!istype(B))
return 0
var/_x1 = A.x
var/_x2 = B.x
var/_y1 = A.y
var/_y2 = B.y
//Ensure _x1 is bigger, simplicity
if(_x2 > _x1)
var/tx = _x1
_x1 = _x2
_x2 = tx
//Ensure _y1 is bigger, simplicity
if(_y2 > _y1)
var/ty = _y1
_y1 = _y2
_y2 = ty
//DY/DX
var/dx = _x1 - _x2 + A.pixel_x + B.pixel_x
var/dy = _y1 - _y2 + A.pixel_y + B.pixel_y
//Distance check
if(dx == 0 && dy == 0) //No distance, don't bother calculating
return 0
. = sqrt(((dx**2) + (dy**2)))
/proc/get(atom/loc, type)
while(loc)
if(istype(loc, type))
@@ -1627,4 +1660,4 @@ atom/proc/GetTypeInAllContents(typepath)
if(prob(chance))
step(AM, pick(alldirs))
chance = max(chance - (initial_chance / steps), 0)
steps--
steps--