[quake3-commits] r1735 - in trunk/code: cgame game

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Nov 6 07:02:02 EST 2009


Author: thilo
Date: 2009-11-06 07:02:02 -0500 (Fri, 06 Nov 2009)
New Revision: 1735

Modified:
   trunk/code/cgame/cg_drawtools.c
   trunk/code/game/g_mover.c
Log:
Commit two patches from SmokingGuns's Tequila, fixing problems with very fast movers and a typo in the string drawing function. (#4329) and (#4330)


Modified: trunk/code/cgame/cg_drawtools.c
===================================================================
--- trunk/code/cgame/cg_drawtools.c	2009-11-06 10:50:16 UTC (rev 1734)
+++ trunk/code/cgame/cg_drawtools.c	2009-11-06 12:02:02 UTC (rev 1735)
@@ -714,7 +714,7 @@
 	trap_R_SetColor( color );
 	
 	ax = x * cgs.screenXScale + cgs.screenXBias;
-	ay = y * cgs.screenXScale;
+	ay = y * cgs.screenYScale;
 
 	s = str;
 	while ( *s )

Modified: trunk/code/game/g_mover.c
===================================================================
--- trunk/code/game/g_mover.c	2009-11-06 10:50:16 UTC (rev 1734)
+++ trunk/code/game/g_mover.c	2009-11-06 12:02:02 UTC (rev 1735)
@@ -1308,6 +1308,25 @@
 
 	ent->s.pos.trDuration = length * 1000 / speed;
 
+	// Tequila comment: Be sure to send to clients after any fast move case
+	ent->r.svFlags &= ~SVF_NOCLIENT;
+
+	// Tequila comment: Fast move case
+	if(ent->s.pos.trDuration<1) {
+		// Tequila comment: As trDuration is used later in a division, we need to avoid that case now
+		// With null trDuration,
+		// the calculated rocks bounding box becomes infinite and the engine think for a short time
+		// any entity is riding that mover but not the world entity... In rare case, I found it
+		// can also stuck every map entities after func_door are used.
+		// The desired effect with very very big speed is to have instant move, so any not null duration
+		// lower than a frame duration should be sufficient.
+		// Afaik, the negative case don't have to be supported.
+		ent->s.pos.trDuration=1;
+
+		// Tequila comment: Don't send entity to clients so it becomes really invisible 
+		ent->r.svFlags |= SVF_NOCLIENT;
+	}
+
 	// looping sound
 	ent->s.loopSound = next->soundLoop;
 



More information about the quake3-commits mailing list