rendered paste body? QC-clmovement_disable.diff
Index: progsvm.h
===================================================================
RCS file: /cvs/cvsroot/twilight/darkplaces/progsvm.h,v
retrieving revision 1.45
diff -u -r1.45 progsvm.h
--- progsvm.h 19 Feb 2007 01:15:58 -0000 1.45
+++ progsvm.h 27 Mar 2007 19:58:32 -0000
@@ -151,6 +151,7 @@
int chain; // common - used by find builtins
int classname; // common
int clientcolors; // ssqc
+ int clmovement_disable; // ssqc
int color; // ssqc
int colormod; // ssqc / csqc
int contentstransition; // ssqc
Index: prvm_edict.c
===================================================================
RCS file: /cvs/cvsroot/twilight/darkplaces/prvm_edict.c,v
retrieving revision 1.73
diff -u -r1.73 prvm_edict.c
--- prvm_edict.c 11 Mar 2007 23:53:31 -0000 1.73
+++ prvm_edict.c 27 Mar 2007 19:58:32 -0000
@@ -1260,6 +1260,7 @@
prog->fieldoffsets.chain = PRVM_ED_FindFieldOffset("chain");
prog->fieldoffsets.classname = PRVM_ED_FindFieldOffset("classname");
prog->fieldoffsets.clientcolors = PRVM_ED_FindFieldOffset("clientcolors");
+ prog->fieldoffsets.clmovement_disable = PRVM_ED_FindFieldOffset("clmovement_disable");
prog->fieldoffsets.color = PRVM_ED_FindFieldOffset("color");
prog->fieldoffsets.colormod = PRVM_ED_FindFieldOffset("colormod");
prog->fieldoffsets.contentstransition = PRVM_ED_FindFieldOffset("contentstransition");
Index: sv_main.c
===================================================================
RCS file: /cvs/cvsroot/twilight/darkplaces/sv_main.c,v
retrieving revision 1.247
diff -u -r1.247 sv_main.c
--- sv_main.c 24 Mar 2007 17:46:19 -0000 1.247
+++ sv_main.c 27 Mar 2007 19:58:32 -0000
@@ -2540,6 +2540,7 @@
{ev_float, "buttonchat"},
{ev_float, "buttonuse"},
{ev_float, "clientcolors"},
+ {ev_float, "clmovement_disable"},
{ev_float, "cursor_active"},
{ev_float, "fullbright"},
{ev_float, "glow_color"},
Index: sv_user.c
===================================================================
RCS file: /cvs/cvsroot/twilight/darkplaces/sv_user.c,v
retrieving revision 1.108
diff -u -r1.108 sv_user.c
--- sv_user.c 3 Mar 2007 01:37:22 -0000 1.108
+++ sv_user.c 27 Mar 2007 20:08:19 -0000
@@ -533,7 +533,9 @@
// disable clientside movement prediction in some cases
if (ceil(max(move->receivetime - move->time, 0) * 1000.0) < sv_clmovement_minping.integer)
host_client->clmovement_disabletimeout = realtime + sv_clmovement_minping_disabletime.value / 1000.0;
- if (!sv_clmovement_enable.integer || host_client->clmovement_disabletimeout > realtime)
+ // DRESK
+ // Additionally Check for QC-level clmovement_disable
+ if (!sv_clmovement_enable.integer || host_client->clmovement_disabletimeout > realtime || (PRVM_EDICTFIELDVALUE(host_client->edict, prog->fieldoffsets.clmovement_disable)->_float == 1) )
move->sequence = 0;
// now store this move for later execution