return 1;
}
- where = pathlib_movenode(parent.origin, to, 0);
+ where = pathlib_movenode(parent, parent.origin, to, 0);
if (!pathlib_movenode_goodnode)
{
{
if(node.pathlib_node_g > g)
{
- //pathlib_movenode(where,node.origin,0);
+ //pathlib_movenode(node, where,node.origin,0);
//if(pathlib_movenode_goodnode)
//{
//mark_error(node.origin + '0 0 128',30);
node.owner = closedlist;
- if(vlen(node.origin - goal) <= pathlib_gridsize)
+ if(vdist(node.origin - goal, <=, pathlib_gridsize))
{
vector goalmove;
- goalmove = pathlib_walknode(node.origin,goal,1);
+ goalmove = pathlib_walknode(node, node.origin, goal, 1);
if(pathlib_movenode_goodnode)
{
goal_node = node;
return 0;
}
-float buildpath_nodefilter_moveskip(vector n,vector c,vector p)
+float buildpath_nodefilter_moveskip(entity this, vector n,vector c,vector p)
{
- pathlib_walknode(p,n,1);
+ pathlib_walknode(this, p, n, 1);
if(pathlib_movenode_goodnode)
return 1;
.vector pos1, pos2;
-vector pathlib_wateroutnode(vector start,vector end, float doedge)
-{SELFPARAM();
+vector pathlib_wateroutnode(entity this, vector start, vector end, float doedge)
+{
vector surface;
pathlib_movenode_goodnode = 0;
end.x = fsnap(end.x, pathlib_gridsize);
end.y = fsnap(end.y, pathlib_gridsize);
- traceline(end + ('0 0 0.25' * pathlib_gridsize),end - ('0 0 1' * pathlib_gridsize),MOVE_WORLDONLY,self);
+ traceline(end + ('0 0 0.25' * pathlib_gridsize),end - ('0 0 1' * pathlib_gridsize),MOVE_WORLDONLY,this);
end = trace_endpos;
if (!(pointcontents(end - '0 0 1') == CONTENT_SOLID))
if(pointcontents(surface + '0 0 1') != CONTENT_EMPTY)
return end;
- tracebox(start + '0 0 64', movenode_boxmin,movenode_boxmax, end + '0 0 64', MOVE_WORLDONLY, self);
+ tracebox(start + '0 0 64', movenode_boxmin,movenode_boxmax, end + '0 0 64', MOVE_WORLDONLY, this);
if(trace_fraction == 1)
pathlib_movenode_goodnode = 1;
return end;
}
-vector pathlib_swimnode(vector start,vector end, float doedge)
-{SELFPARAM();
+vector pathlib_swimnode(entity this, vector start, vector end, float doedge)
+{
pathlib_movenode_goodnode = 0;
if(pointcontents(start) != CONTENT_WATER)
end.y = fsnap(end.y, pathlib_gridsize);
if(pointcontents(end) == CONTENT_EMPTY)
- return pathlib_wateroutnode( start, end, doedge);
+ return pathlib_wateroutnode(this, start, end, doedge);
- tracebox(start, movenode_boxmin,movenode_boxmax, end, MOVE_WORLDONLY, self);
+ tracebox(start, movenode_boxmin,movenode_boxmax, end, MOVE_WORLDONLY, this);
if(trace_fraction == 1)
pathlib_movenode_goodnode = 1;
return end;
}
-vector pathlib_flynode(vector start,vector end, float doedge)
-{SELFPARAM();
+vector pathlib_flynode(entity this, vector start, vector end, float doedge)
+{
pathlib_movenode_goodnode = 0;
end.x = fsnap(end.x, pathlib_gridsize);
end.y = fsnap(end.y, pathlib_gridsize);
- tracebox(start, movenode_boxmin,movenode_boxmax, end, MOVE_WORLDONLY, self);
+ tracebox(start, movenode_boxmin,movenode_boxmax, end, MOVE_WORLDONLY, this);
if(trace_fraction == 1)
pathlib_movenode_goodnode = 1;
void a_think()
{SELFPARAM();
- te_lightning1(self,self.origin, self.pos1);
- if(self.cnt < time)
- remove(self);
+ te_lightning1(this,this.origin, this.pos1);
+ if(this.cnt < time)
+ remove(this);
else
- self.nextthink = time + 0.2;
+ this.nextthink = time + 0.2;
}
-vector pathlib_walknode(vector start,vector end,float doedge)
-{SELFPARAM();
+vector pathlib_walknode(entity this, vector start, vector end, float doedge)
+{
vector direction,point,last_point,s,e;
float steps, distance, i;
start.y = fsnap(start.y,pathlib_gridsize);
// Find the floor
- traceline(start + movenode_stepup, start - movenode_maxdrop, MOVE_WORLDONLY, self);
+ traceline(start + movenode_stepup, start - movenode_maxdrop, MOVE_WORLDONLY, this);
if(trace_fraction == 1.0)
{
entity a;
for(i = 1; i < steps; ++i)
{
point = last_point + (direction * movenode_stepsize);
- traceline(point + movenode_stepup,point - movenode_maxdrop,MOVE_WORLDONLY,self);
+ traceline(point + movenode_stepup,point - movenode_maxdrop,MOVE_WORLDONLY,this);
if(trace_fraction == 1.0)
return trace_endpos;
//dprint("end_x: ",ftos(end_x), " end_y: ",ftos(end_y),"\n");
//dprint("point_x:",ftos(point_x)," point_y:",ftos(point_y),"\n\n");
- traceline(point + movenode_stepup, point - movenode_maxdrop,MOVE_WORLDONLY,self);
+ traceline(point + movenode_stepup, point - movenode_maxdrop,MOVE_WORLDONLY,this);
if(trace_fraction == 1.0)
return trace_endpos;
last_point = trace_endpos;
- tracebox(start + movenode_boxup, movenode_boxmin,movenode_boxmax, last_point + movenode_boxup, MOVE_WORLDONLY, self);
+ tracebox(start + movenode_boxup, movenode_boxmin,movenode_boxmax, last_point + movenode_boxup, MOVE_WORLDONLY, this);
if(trace_fraction != 1.0)
return trace_endpos;
vector movenode_boxmin;
float pathlib_movenode_goodnode;
-vector pathlib_wateroutnode(vector start, vector end, float doedge);
-vector pathlib_swimnode(vector start, vector end, float doedge);
-vector pathlib_flynode(vector start, vector end, float doedge);
-vector pathlib_walknode(vector start, vector end, float doedge);
-var vector pathlib_movenode(vector start, vector end, float doedge);
+vector pathlib_wateroutnode(entity this, vector start, vector end, float doedge);
+vector pathlib_swimnode(entity this, vector start, vector end, float doedge);
+vector pathlib_flynode(entity this, vector start, vector end, float doedge);
+vector pathlib_walknode(entity this, vector start, vector end, float doedge);
+var vector pathlib_movenode(entity this, vector start, vector end, float doedge);
float pathlib_expandnode_star(entity node, vector start, vector goal);
float pathlib_expandnode_box(entity node, vector start, vector goal);