// thread (ir)relevant snippet dump
// op -> ignore
 Code:
var iPAN = 0;
var iSTEP = 1;

/************************************
vfPan2
	ex-dump
	_vSrc: src pos (my.x)
	_vDest: dest pos (your.x, player.x, etc.)
	_3Step: 
		[iPAN] = entity pan
		[iSTEP] = turn step (multiplied by time)
	_vTmp: a temp vector 

	use:
		my.pan += vfPan2(my.x, player.x, vector(my.pan, 3.15, 0), temp);
			or
		temp.pan = vfPan2(my.x, player.x, vector(my.pan, 3.15, 0), temp);
		temp.tilt = 0; temp.roll = 0;
		c_rotate(me,temp,ignore_passable + ignore_passents + ignore_me + glide);
*************************************/
function vfPan2(&_vSrc ,&_vDest, &_3Step, &_vTmp) {
	//vec_set(_vTmp, nullvector);
	vec_diff(_vTmp, _vDest, _vSrc);
	vec_to_angle(_vTmp, _vTmp);
	_vTmp[0] = ang(_vTmp[0] - _3Step[iPAN]);
	_vTmp[1] = abs(_vTmp[0]);
	//if (_vTmp[1] < 0.10) {
		//return(_vTmp[0]);
	//}
	_vTmp[2] = ang(min(_vTmp[1], time * _3Step[iSTEP]) * sign(_vTmp[0]));
	return(_vTmp[2]);
}