Took a little time to look at the dist calcs... in Mob:

ist it reads
Code:
float Mob::Dist(const Mob &other) {
double xDiff = other.x_pos - x_pos;
double yDiff = other.y_pos - y_pos;
double zDiff = other.z_pos - z_pos;
return sqrt( (xDiff * xDiff)
+ (yDiff * yDiff)
+ (zDiff * zDiff) );
}
Which looks about as efficient as you can get without going to assembler... but if you went to that level it might look like
Code:
float Mob::Dist(const Mob &other)
{
double xDiff = other.x_pos - x_pos;
double yDiff = other.y_pos - y_pos;
double zDiff = other.z_pos - z_pos;
double calctemp;
float calcdist;
__asm
{
fld xDiff
fmul xDiff
fst calctemp
fld yDiff
fmul yDiff
fadd calctemp
fst calctemp
fld zDiff
fmul zDiff
fadd calctemp
fsqrt
fst calcdist
}
return calcdist;
}
Which might run in under 500 cycles....
Haven't tested this mind you, just a thought
