self.owner.angles_z -= 360 * floor((self.owner.angles_z - destangle_z) / 360 + 0.5);
angloc = destangle - self.owner.angles;
angloc = angloc * (1 / sys_frametime); // so it arrives for the next frame
+ self.owner.avelocity = angloc;
}
if(nexttick < self.animstate_endtime)
veloc = nextpos - self.owner.origin;
veloc = veloc * (1 / sys_frametime); // so it arrives for the next frame
self.owner.velocity = veloc;
- self.owner.avelocity = angloc;
self.nextthink = nexttick;
} else {
// derivative: delta + 2 * delta2 (e.g. for angle positioning)
void train_next()
{
- entity targ, cp;
- vector cp_org;
+ entity targ, cp = world;
+ vector cp_org = '0 0 0';
targ = find(world, targetname, self.target);
self.target = targ.target;
cp = find(world, targetname, targ.curvetarget); // get its second target (the control point)
cp_org = cp.origin - self.view_ofs; // no control point found, assume a straight line to the destination
}
- else
- cp = world; // no cp
}
if (self.target == "")
objerror("train_next: no next target");