In PreVa, we counteracted this by using this code:
Code:
entity* ent1;
function phys_move(e1, &reldist, &absdist, mode_)
{
var ab;
ent1 = e1;
ab = c_move (ent1, reldist, absdist, mode_);
if (ab <= 0)
{
vec_diff (temp, target, my.x);
vec_inverse (temp);
vec_normalize(temp, 0.2);
if (you) { if (you.push >= my.push) { vec_add(my.x,temp); } } //move us away from you
else { vec_add(my.x,temp); }
}
}
It could be modified for A7 if any code is different there. All you have to do is replace all your c_move instructions with phys_move, this code makes it where you can use actual pan, tilt, and roll. It also makes it where you can do some light physics with it (pushing boxes, etc).