All pastes #412533 Raw Edit

Someone

public text v1 · immutable
#412533 ·published 2007-03-27 19:15 UTC
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