r3515 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Mar 17 17:16:30 EDT 2008


Author: blub0
Date: 2008-03-17 17:16:27 -0400 (Mon, 17 Mar 2008)
New Revision: 3515

Modified:
   trunk/data/qcsrc/server/g_tetris.qc
Log:
changed tetris keypress detection, now also works when looking straight up or rotating over 90 degrees...

Modified: trunk/data/qcsrc/server/g_tetris.qc
===================================================================
--- trunk/data/qcsrc/server/g_tetris.qc	2008-03-17 17:39:35 UTC (rev 3514)
+++ trunk/data/qcsrc/server/g_tetris.qc	2008-03-17 21:16:27 UTC (rev 3515)
@@ -325,12 +325,14 @@
 
 */
 
-void(float c1, float c2, float c3, float c4, float c5, float c6) p6 =
+// remove warnings by adding underscores, i hate warnings, warnings suck
+// --blub
+void(float _c1, float _c2, float _c3, float _c4, float c5, float c6) p6 =
 {
-	WriteChar(MSG_ONE, c1);
-	WriteChar(MSG_ONE, c2);
-	WriteChar(MSG_ONE, c3);
-	WriteChar(MSG_ONE, c4);
+	WriteChar(MSG_ONE, _c1);
+	WriteChar(MSG_ONE, _c2);
+	WriteChar(MSG_ONE, _c3);
+	WriteChar(MSG_ONE, _c4);
 	WriteChar(MSG_ONE, c5);
 	WriteChar(MSG_ONE, c6);
 };
@@ -375,11 +377,11 @@
 
 void (float pc, float ln) DrawPiece =
 {
-	float x, d, piece_ln, color;
+	float x, d, piece_ln, pcolor;
 	vector piece_dat;
-	color = pc & 3;
-	if (color == 0) // 4
-		color = 1;
+	pcolor = pc & 3;
+	if (pcolor == 0) // 4
+		pcolor = 1;
 	WriteChar(MSG_ONE, TET_SPACE); // pad to 6
 
 	piece_dat = PieceShape(pc);
@@ -389,7 +391,7 @@
 		piece_ln = piece_dat_y;
 	for (x = 1; x <= 4; x = x + 1)
 	{
-		d = GetXBlock(x, piece_ln) * color;
+		d = GetXBlock(x, piece_ln) * pcolor;
 		if (d)
 			WriteChar(MSG_ONE, TET_BLOCKS + d);
 		else
@@ -541,15 +543,15 @@
 }
 void CementPiece(float piece, float orgx, float orgy, float rot) =
 {
-	float color;
+	float pcolor;
 	float x, y;
 	// why did I start counting from 1, damnit
 	orgx = orgx - 1;
 	orgy = orgy - 1;
 
-	color = piece & 3;
-	if (color == 0) // 4
-		color = 1;
+	pcolor = piece & 3;
+	if (pcolor == 0) // 4
+		pcolor = 1;
 
 	for (y = 1; y < 5; y = y + 1)
 	{
@@ -557,7 +559,7 @@
 		{
 			if (PieceMetric(x, y, rot, piece))
 			{
-				SetSquare(x + orgx, y + orgy, color);
+				SetSquare(x + orgx, y + orgy, pcolor);
 			}
 		}
 	}
@@ -720,22 +722,24 @@
 
 	if (!self.tetris_on)
 		return 0;
+	
 	if (self.origin != self.tet_org)
 	{
-		mov = vectoangles(self.origin - self.tet_org);
 		self.origin = self.tet_org;
+		makevectors(self.v_angle);
+		norm = self.velocity*v_forward;
+		if(norm < -0.1)
+			keysa |= TETKEY_DOWN;
+		else if(norm > 0.1)
+			keysa |= TETKEY_UP;
+
+		norm = self.velocity*v_right;
+		if(norm < -0.1)
+			keysa |= TETKEY_LEFT;
+		else if(norm > 0.1)
+			keysa |= TETKEY_RIGHT;
+
 		self.velocity_x = self.velocity_y = self.velocity_z = 0;
-		
-		norm = angcompa(self.v_angle_y, mov_y);
-
-		if (norm > -80 && norm < 80)
-			keysa = keysa | TETKEY_UP;
-		if (norm > 10 && norm < 170)
-			keysa = keysa | TETKEY_RIGHT;
-		if (norm > 100  || norm < -260)
-			keysa = keysa | TETKEY_DOWN;
-		if (norm > -170 && norm < -10)
-			keysa = keysa | TETKEY_LEFT;
 	}
 	if (self.button0)
 		keysa = keysa | TETKEY_ROTRIGHT;




More information about the nexuiz-commits mailing list