+ if (self.movement_y > 0) {
+ // is this a state change?
+ if (!(self.pressedkeys & KEY_RIGHT)) {
+ if ((time - self.last_RIGHT_KEY_time) < self.cvar_cl_dodging_timeout) {
+ dodge_detected = 1;
+ self.dodging_action = 1;
+ self.dodging_direction_y = 1.0;
+ self.last_dodging_time = time;
+ }
+ self.last_RIGHT_KEY_time = time;
+ }
+ }
+
+ if (self.movement_y < 0) {
+ // is this a state change?
+ if (!(self.pressedkeys & KEY_LEFT)) {
+ if ((time - self.last_LEFT_KEY_time) < self.cvar_cl_dodging_timeout) {
+ dodge_detected = 1;
+ self.dodging_action = 1;
+ self.dodging_direction_y = -1.0;
+ self.last_dodging_time = time;
+ }
+ self.last_LEFT_KEY_time = time;
+ }
+ }
+
+
+
+ if (dodge_detected == 1) {
+ // normalize the dodging_direction vector..
+ length = length + self.dodging_direction_x * self.dodging_direction_x;
+ length = length + self.dodging_direction_y * self.dodging_direction_y;
+ length = sqrt(length);
+
+ self.dodging_direction_x = self.dodging_direction_x * 1.0/length;
+ self.dodging_direction_y = self.dodging_direction_y * 1.0/length;
+ }