+#define TWO_PI ((float)M_PI * 2.0f)
+#define HALF_PI ((float)M_PI / 2.0f)
+
+void update_player_dir(struct player *p)
+{
+ int dir;
+ float angle;
+
+ /* TODO: take vrot into account */
+ angle = fmod(p->theta, TWO_PI);
+ if(angle < 0) angle += TWO_PI;
+
+ p->theta = angle; /* renormalize theta */
+ p->dir = (int)(4.0f * angle / TWO_PI + 0.5) & 3;
+}
+