GetDistance(tid)

Moderator: GZDoom Developers

User avatar
Cutmanmike
Posts: 11280
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

GetDistance(tid)

Post by Cutmanmike »

Since you can do this in ACS anyway (with a bit more hassle) why not have this? A little low priority but there you go
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48337
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Code: Select all


function int abs(int x)
{
  if (x>=0) return x;
  return -x;
}

function int min(int x, int y)
{
    if (x<y) return x;
    else return y;
}

function int AproxDistance(int dx, int dy)
{
	int dx = abs(dx);
	int dy = abs(dy);
	return dx+dy-(min(dx,dy)>>1);
}

function void GetDistance(int tid)
{
    int x=abs(GetActorX(tid)-GetActorX(activatortid()));
    int y=abs(GetActorY(tid)-GetActorY(activatortid()));
    int z=abs(GetActorZ(tid)-GetActorZ(activatortid()));

    return AproxDistance(AproxDistance(x,y), z);
}

It used the same precision Doom is using internally for distance calculations as a fixed point value.
User avatar
Agent ME
Posts: 2528
Joined: Mon Mar 22, 2004 7:00 pm
Location: California, USA

Re: GetDistance(tid)

Post by Agent ME »

cutmanmike wrote:Since you can do this in ACS anyway (with a bit more hassle) why not have this? A little low priority but there you go
What would it do? And don't you need two things to be able to tell the distance between them?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48337
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Look at my code. One is the activator, the other the specified tid.
User avatar
Agent ME
Posts: 2528
Joined: Mon Mar 22, 2004 7:00 pm
Location: California, USA

Post by Agent ME »

Oh, I see. I never looked at it closely enough.

Return to “Closed Feature Suggestions [GZDoom]”