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 
