[nexuiz-commits] r6144 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Mar 14 09:03:43 EDT 2009


Author: div0
Date: 2009-03-14 09:03:39 -0400 (Sat, 14 Mar 2009)
New Revision: 6144

Modified:
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_subs.qc
   trunk/data/qcsrc/server/sv_main.qc
   trunk/data/qcsrc/server/t_quake3.qc
Log:
more robustness for weapon animation (should fix the jerkiness)


Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2009-03-14 12:55:44 UTC (rev 6143)
+++ trunk/data/qcsrc/server/defs.qh	2009-03-14 13:03:39 UTC (rev 6144)
@@ -549,3 +549,5 @@
 #define BITXOR_ASSIGN(v,b) ((v) += ((b) - 2 * ((v) & (b))))
 
 .float wasplayer;
+
+float servertime, serverprevtime, serverframetime;

Modified: trunk/data/qcsrc/server/g_subs.qc
===================================================================
--- trunk/data/qcsrc/server/g_subs.qc	2009-03-14 12:55:44 UTC (rev 6143)
+++ trunk/data/qcsrc/server/g_subs.qc	2009-03-14 13:03:39 UTC (rev 6144)
@@ -22,7 +22,7 @@
 	e.animstate_startframe = anim_x;
 	e.animstate_numframes = anim_y;
 	e.animstate_framerate = anim_z;
-	e.animstate_starttime = time - 0.1 / e.animstate_framerate; // shift it a little bit into the past to prevent float inaccuracy hiccups
+	e.animstate_starttime = servertime - 0.1 * serverframetime; // shift it a little bit into the past to prevent float inaccuracy hiccups
 	e.animstate_endtime = e.animstate_starttime + e.animstate_numframes / e.animstate_framerate;
 	e.animstate_looping = looping;
 	e.animstate_override = override;
@@ -41,6 +41,7 @@
 		e.animstate_override = FALSE;
 	}
 	e.frame = e.animstate_startframe + bound(0, (time - e.animstate_starttime) * e.animstate_framerate, e.animstate_numframes - 1);
+	//print(ftos(time), " -> ", ftos(e.frame), "\n");
 };
 
 float animparseerror;

Modified: trunk/data/qcsrc/server/sv_main.qc
===================================================================
--- trunk/data/qcsrc/server/sv_main.qc	2009-03-14 12:55:44 UTC (rev 6143)
+++ trunk/data/qcsrc/server/sv_main.qc	2009-03-14 13:03:39 UTC (rev 6144)
@@ -134,6 +134,9 @@
 void StartFrame (void)
 {
 	remove = remove_unsafely; // not during spawning!
+	serverprevtime = servertime;
+	servertime = time;
+	serverframetime = frametime;
 
 	dprint_load(); // load dprint status from cvar
 

Modified: trunk/data/qcsrc/server/t_quake3.qc
===================================================================
--- trunk/data/qcsrc/server/t_quake3.qc	2009-03-14 12:55:44 UTC (rev 6143)
+++ trunk/data/qcsrc/server/t_quake3.qc	2009-03-14 13:03:39 UTC (rev 6144)
@@ -35,9 +35,9 @@
                           
 // Armor                  
 void spawnfunc_item_armor_body()     { spawnfunc_item_armor_large();   }
-void spawnfunc_item_armor_combat()   { spawnfunc_item_armor_big();  }
+void spawnfunc_item_armor_combat()   { spawnfunc_item_armor_big();     }
 void spawnfunc_item_armor_shard()    { spawnfunc_item_armor_small();   }
-void spawnfunc_item_enviro()         { spawnfunc_item_armor_medium();  }
+void spawnfunc_item_enviro()         { spawnfunc_item_invincible();    }
 //void spawnfunc_item_flight()       /* not supported */
 //void spawnfunc_item_haste()        /* not supported */
 //void spawnfunc_item_health()       /* handled in t_quake.qc */



More information about the nexuiz-commits mailing list