Code:
c_move(my, nullvector, nullvector, GLIDE );
my.x += 5 * (key_a - key_d) * time_step;
my.y += 5 * (key_s - key_w) * time_step;
my.pan += -50 * mouse_force.x * time_step;


You have c_move in here, but you aren't using it.

c_move has two vectors, the first one is relative distance, the second it absolute.

Relative will make the model move in relation to his orientation and origin, so all we need to do is put all of this into c_move:
Code:
action wizard_with_pointer()
{
   VECTOR speed;
   //...rest of code
   while(1)
   {
      my.pan = -50 * mouse_force.x * time_step;
      speed.x = 5 * (key_a - key_d) * time_step;
      speed.y = 5 * (key_s - key_w) * time_step;
      c_move(my,speed,nullvector,IGNORE_PASSABLE | GLIDE);
      //...rest of code



I was once Anonymous_Alcoholic.

Code Breakpoint;