From 509c911afec9022e701deb90e9129f4baf452208 Mon Sep 17 00:00:00 2001 From: Florian Paul Schmidt Date: Sat, 20 Mar 2010 13:42:21 +0100 Subject: [PATCH] - some final fixup. --- qcsrc/server/defs.qh | 2 +- qcsrc/server/miscfunctions.qc | 2 ++ qcsrc/server/mutators/base.qh | 2 +- qcsrc/server/mutators/mutator_dodging.qc | 21 +++++++++++++++++---- qcsrc/server/teamplay.qc | 4 ++-- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index f18c610aa..e80025a67 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -17,7 +17,7 @@ float require_spawnfunc_prefix; // if this float exists, only functions with spa float ctf_score_value(string parameter); -float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_dodging; +float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts; float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_laserguided_missile, g_midair, g_minstagib, g_pinata, g_norecoil, g_vampire, g_minstagib_invis_alpha, g_bloodloss; float g_warmup_limit; float g_warmup_allguns; diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 0cf246331..7e00a8d6c 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -593,6 +593,8 @@ float w_getbestweapon(entity e); void GetCvars(float f) { string s; + + get_cvars_f = f; MUTATOR_CALLHOOK(GetCvars); if (f > 0) diff --git a/qcsrc/server/mutators/base.qh b/qcsrc/server/mutators/base.qh index 749582665..49feb762d 100644 --- a/qcsrc/server/mutators/base.qh +++ b/qcsrc/server/mutators/base.qh @@ -54,4 +54,4 @@ MUTATOR_HOOKABLE(OnEntityPreSpawn); // return error to prevent entity spawn, or MUTATOR_HOOKABLE(PlayerPreThink); MUTATOR_HOOKABLE(GetPressedKeys); MUTATOR_HOOKABLE(PlayerPhysics); -MUTATOR_HOOKABLE(GetCvars); +MUTATOR_HOOKABLE(GetCvars); float get_cvars_f; diff --git a/qcsrc/server/mutators/mutator_dodging.qc b/qcsrc/server/mutators/mutator_dodging.qc index dbafdc67c..3c5e884e8 100644 --- a/qcsrc/server/mutators/mutator_dodging.qc +++ b/qcsrc/server/mutators/mutator_dodging.qc @@ -23,6 +23,8 @@ .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; @@ -35,14 +37,19 @@ void dodging_Initialize() { } MUTATOR_HOOKFUNCTION(dodging_GetCvars) { + // print("dodging_GetCvars\n"); + string s; - float f; + s = strcat1(argv(get_cvars_f)); + + GetCvars_handleFloat(s, get_cvars_f, cvar_cl_dodging_timeout, "cl_dodging_timeout"); - GetCvars_handleFloat(s, f, cvar_cl_dodging_timeout, "cl_dodging_timeout"); return 0; } MUTATOR_HOOKFUNCTION(dodging_PlayerPhysics) { + // print("dodging_PlayerPhysics\n"); + float common_factor; // is dodging enabled at all? if not, do nothing.. @@ -92,9 +99,10 @@ MUTATOR_HOOKFUNCTION(dodging_PlayerPhysics) { } MUTATOR_HOOKFUNCTION(dodging_GetPressedKeys) { + // print("dodging_PlayerPhysics\n"); + float length; float dodge_detected; - //print("dodging_hook\n"); if (g_dodging == 0) return 0; @@ -110,6 +118,9 @@ MUTATOR_HOOKFUNCTION(dodging_GetPressedKeys) { return 0; + // TODO: fix! + // self.cvar_cl_dodging_timeout = 0.2; + if (self.movement_x > 0) { // is this a state change? if (!(self.pressedkeys & KEY_FORWARD)) { @@ -185,6 +196,8 @@ MUTATOR_DEFINITION(dodging) // in the physics hook we actually implement the dodge.. MUTATOR_HOOK(PlayerPhysics, dodging_PlayerPhysics, CBC_ORDER_ANY); + MUTATOR_HOOK(GetCvars, dodging_GetCvars, CBC_ORDER_ANY); + // this just turns on the cvar. MUTATOR_ONADD { @@ -199,4 +212,4 @@ MUTATOR_DEFINITION(dodging) } return 0; -} \ No newline at end of file +} diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index b25186998..aeb98bea1 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -208,8 +208,8 @@ void InitGameplayMode() fraglimit_override = cvar("fraglimit_override"); leadlimit_override = cvar("leadlimit_override"); - g_dodging = cvar("g_dodging"); - if(g_dodging) + // g_dodging = cvar("g_dodging"); + if(cvar("g_dodging")) MUTATOR_ADD(dodging); if(g_dm) -- 2.39.2