about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-07 15:32:54 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-07 15:32:54 +0000
commit982db98faec1ba28ff74fdd594ced77e4197cc02 (patch)
tree6ac32c6bd44dcf11cff6fffd8e7a5488f922e788 /src/engine
parentf055f15ae7ef67069d51251b43c8bda22622018d (diff)
downloadzcatch-982db98faec1ba28ff74fdd594ced77e4197cc02.tar.gz
zcatch-982db98faec1ba28ff74fdd594ced77e4197cc02.zip
added sniperscope.. press F to test
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/client/gfx.c46
-rw-r--r--src/engine/interface.h9
-rw-r--r--src/engine/server/server.c5
3 files changed, 52 insertions, 8 deletions
diff --git a/src/engine/client/gfx.c b/src/engine/client/gfx.c
index c34ac0cb..f30e5099 100644
--- a/src/engine/client/gfx.c
+++ b/src/engine/client/gfx.c
@@ -146,7 +146,7 @@ int gfx_init()
 	}
 	else
 	{
-		int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, 0, 0, 0, GLFW_WINDOW);
+		int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, 0, 24, 0, GLFW_WINDOW);
 		if(result != GL_TRUE)
 		{
 			dbg_msg("game", "failed to create gl context");
@@ -154,6 +154,9 @@ int gfx_init()
 		}
 	}
 	
+	glGetIntegerv(GL_DEPTH_BITS, &i);
+	dbg_msg("gfx", "depthbits = %d", i);
+	
 	glfwSetWindowTitle("Teewars");
 	
 	/* We don't want to see the window when we run the stress testing */
@@ -176,8 +179,11 @@ int gfx_init()
 
 	/* set some default settings */	
 	glEnable(GL_BLEND);
+	glDisable(GL_CULL_FACE);
+	glDisable(GL_DEPTH_TEST);
 	glMatrixMode(GL_MODELVIEW);
 	glLoadIdentity();
+	gfx_mask_op(MASK_NONE, 0);
 	
 	/* Set all z to -5.0f */
 	for (i = 0; i < vertex_buffer_size; i++)
@@ -204,6 +210,36 @@ int gfx_init()
 	return 1;
 }
 
+void gfx_clear_mask(int fill)
+{
+	/*if(fill)
+		glClearDepth(0.0f);
+	else*/
+	
+	int i;
+	glGetIntegerv(GL_DEPTH_WRITEMASK, &i);
+	glDepthMask(GL_TRUE);
+	glClearDepth(0.0f);
+	glClear(GL_DEPTH_BUFFER_BIT);
+	glDepthMask(i);
+}
+
+void gfx_mask_op(int mask, int write)
+{
+	glEnable(GL_DEPTH_TEST);
+	
+	if(write)
+		glDepthMask(GL_TRUE);
+	else
+		glDepthMask(GL_FALSE);
+	
+	if(mask == MASK_NONE)
+		glDepthFunc(GL_ALWAYS);
+	else if(mask == MASK_SET)
+		glDepthFunc(GL_LEQUAL);
+	else if(mask == MASK_ZERO)
+		glDepthFunc(GL_NOTEQUAL);
+}
 
 int gfx_window_active()
 {
@@ -689,13 +725,13 @@ void gfx_quads_draw_freeform(
 
 	vertices[num_vertices + 2].pos.x = x3;
 	vertices[num_vertices + 2].pos.y = y3;
-	vertices[num_vertices + 2].tex = texture[2];
-	vertices[num_vertices + 2].color = color[2];
+	vertices[num_vertices + 2].tex = texture[3];
+	vertices[num_vertices + 2].color = color[3];
 
 	vertices[num_vertices + 3].pos.x = x2;
 	vertices[num_vertices + 3].pos.y = y2;
-	vertices[num_vertices + 3].tex = texture[3];
-	vertices[num_vertices + 3].color = color[3];
+	vertices[num_vertices + 3].tex = texture[2];
+	vertices[num_vertices + 3].color = color[2];
 	
 	draw_quad();
 }
diff --git a/src/engine/interface.h b/src/engine/interface.h
index af892dba..9f0ee144 100644
--- a/src/engine/interface.h
+++ b/src/engine/interface.h
@@ -21,6 +21,11 @@ enum
 	IMG_RGB=0,
 	IMG_RGBA=1,
 	
+	MASK_NONE=0,
+	MASK_SET,
+	MASK_ZERO,
+
+	
 	CLIENTSTATE_OFFLINE=0,
 	CLIENTSTATE_CONNECTING,
 	CLIENTSTATE_LOADING,
@@ -826,6 +831,10 @@ void gfx_lines_begin();
 void gfx_lines_draw(float x0, float y0, float x1, float y1);
 void gfx_lines_end();
 
+void gfx_mask_op(int mask, int write);
+void gfx_clear_mask(int fill);
+
+
 /* server snap id */
 int snap_new_id();
 void snap_free_id(int id);
diff --git a/src/engine/server/server.c b/src/engine/server/server.c
index 721c345b..afbcc0dd 100644
--- a/src/engine/server/server.c
+++ b/src/engine/server/server.c
@@ -765,13 +765,12 @@ static int server_run()
 			{
 				if(config.debug)
 				{
-					dbg_msg("server", "sim=%.02fms snap=%.02fms net=%.02fms total=%.02fms load=%.02f%% ids=%d/%d",
+					dbg_msg("server", "sim=%.02fms snap=%.02fms net=%.02fms total=%.02fms load=%.02f%%",
 						(simulationtime/reportinterval)/(double)time_freq()*1000,
 						(snaptime/reportinterval)/(double)time_freq()*1000,
 						(networktime/reportinterval)/(double)time_freq()*1000,
 						(totaltime/reportinterval)/(double)time_freq()*1000,
-						(totaltime)/reportinterval/(double)time_freq()*100.0f,
-						snap_id_inusage, snap_id_usage);
+						(totaltime)/reportinterval/(double)time_freq()*100.0f);
 				}
 	
 				simulationtime = 0;