}
void GetPressedKeys(void) {
+ MUTATOR_CALLHOOK(GetPressedKeys);
if (self.movement_x > 0) // get if movement keys are pressed
{ // forward key pressed
self.pressedkeys |= KEY_FORWARD;
MUTATOR_HOOKABLE(FilterItem); // return error to request removal, or change self.items or self.weapons
MUTATOR_HOOKABLE(OnEntityPreSpawn); // return error to prevent entity spawn, or modify the entity
MUTATOR_HOOKABLE(PlayerPreThink);
+MUTATOR_HOOKABLE(GetPressedKeys);
--- /dev/null
+.float last_FORWARD_KEY_time;
+.float last_BACKWARD_KEY_time;
+.float last_LEFT_KEY_time;
+.float last_RIGHT_KEY_time;
+
+void dodging_Initialize() {
+ self.last_FORWARD_KEY_time = 0;
+ self.last_BACKWARD_KEY_time = 0;
+ self.last_RIGHT_KEY_time = 0;
+ self.last_LEFT_KEY_time = 0;
+}
+
+MUTATOR_HOOKFUNCTION(dodging_GetPressedKeys) {
+ print("dodging_hook\n");
+ return 0;
+}
+
+MUTATOR_DEFINITION(dodging)
+{
+ // we need to be called before GetPressedKey does its thing so we can
+ // detect state changes..
+ MUTATOR_HOOK(GetPressedKeys, dodging_GetPressedKeys, CBC_ORDER_FIRST);
+
+ // this just turns on the cvar. TODO: implement :D
+ MUTATOR_ONADD
+ {
+ // g_dodging = 1;
+ dodging_Initialize();
+ }
+
+ // this just turns off the cvar. TODO: implement :D
+ MUTATOR_ONREMOVE
+ {
+ //g_dodging = 0;
+ }
+
+ return 0;
+}
\ No newline at end of file
mutators/base.qh
mutators/mutators.qh
mutators/gamemode_keyhunt.qh // TODO fix this
+mutators/mutator_dodging.qh
//// tZork Turrets ////
tturrets/include/turrets_early.qh
mutators/base.qc
mutators/gamemode_keyhunt.qc
mutators/mutator_nix.qc
+mutators/mutator_dodging.qc
../warpzonelib/anglestransform.qc
../warpzonelib/mathlib.qc