// and to ramp up the dodge acceleration in the physics hook.
.float last_dodging_time;
-// set to 1 to indicate dodging has started.. reset by physics hook after dodge has been done..
-.float dodging_action;
-
// This is the velocity gain to be added over the ramp time.
// It will decrease from frame to frame during dodging_action = 1
// until it's 0.
.float dodging_velocity_gain;
-// the jump part of the dodge cannot be ramped
-.float dodging_single_action;
-
-void dodging_Initialize() {
- // print("dodging_Initialize\n");
-
- self.last_FORWARD_KEY_time = 0;
- self.last_BACKWARD_KEY_time = 0;
- self.last_RIGHT_KEY_time = 0;
- self.last_LEFT_KEY_time = 0;
- self.last_dodging_time = 0;
- self.dodging_action = 0;
- self.dodging_velocity_gain = 0;
- self.dodging_single_action = 0;
- self.dodging_direction_x = 0;
- self.dodging_direction_y = 0;
-}
-
MUTATOR_HOOKFUNCTION(dodging_GetCvars) {
GetCvars_handleFloat(get_cvars_s, get_cvars_f, cvar_cl_dodging_timeout, "cl_dodging_timeout");
return 0;
float new_velocity_gain;
float velocity_difference;
float clean_up_and_do_nothing;
+ float horiz_speed = autocvar_sv_dodging_horiz_speed;
+
+ if(self.freezetag_frozen)
+ horiz_speed = autocvar_sv_dodging_horiz_speed_frozen;
+
+ if (self.deadflag != DEAD_NO)
+ return 0;
new_velocity_gain = 0;
clean_up_and_do_nothing = 0;
if (common_factor > 1)
common_factor = 1;
- new_velocity_gain = self.dodging_velocity_gain - (common_factor * autocvar_sv_dodging_horiz_speed);
+ new_velocity_gain = self.dodging_velocity_gain - (common_factor * horiz_speed);
if (new_velocity_gain < 0)
new_velocity_gain = 0;
if (autocvar_sv_dodging_sound == 1)
PlayerSound(playersound_jump, CH_PLAYER, VOICETYPE_PLAYERSOUND);
- setanim(self, self.anim_jump, TRUE, FALSE, TRUE);
+ animdecide_setaction(self, ANIMACTION_JUMP, TRUE);
self.dodging_single_action = 0;
}
}
}
-
-
if (dodge_detected == 1) {
self.last_dodging_time = time;
MUTATOR_ONADD
{
g_dodging = 1;
- dodging_Initialize();
}
// this just turns off the cvar.
- MUTATOR_ONREMOVE
- {
+ MUTATOR_ONROLLBACK_OR_REMOVE
+ {
g_dodging = 0;
}
+ MUTATOR_ONREMOVE
+ {
+ }
+
return 0;
}