about summary refs log tree commit diff
path: root/src/engine/client
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-31 21:50:14 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-31 21:50:14 +0000
commit04eddacd65fd3da680e3d896368cb766b377e6e2 (patch)
tree4e99da87a56b59901e4752d7ac8d593a93ecd508 /src/engine/client
parent62d9ff05d6cc0ae1cd952d51a168f6ffcf6abf60 (diff)
downloadzcatch-04eddacd65fd3da680e3d896368cb766b377e6e2.tar.gz
zcatch-04eddacd65fd3da680e3d896368cb766b377e6e2.zip
setting of correct game type in game controller. fixed gametype filter in browser. various cleanups
Diffstat (limited to 'src/engine/client')
-rw-r--r--src/engine/client/ec_gfx.c2
-rw-r--r--src/engine/client/ec_srvbrowse.c13
2 files changed, 11 insertions, 4 deletions
diff --git a/src/engine/client/ec_gfx.c b/src/engine/client/ec_gfx.c
index d26c0b72..c062ebbd 100644
--- a/src/engine/client/ec_gfx.c
+++ b/src/engine/client/ec_gfx.c
@@ -177,7 +177,7 @@ int gfx_init()
 	}
 	else
 	{
-		int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, 8, 24, 0, GLFW_WINDOW);
+		int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, config.gfx_alphabits, 24, 0, GLFW_WINDOW);
 		if(result != GL_TRUE)
 		{
 			dbg_msg("game", "failed to create gl context");
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c
index f26ac9e3..e9d8dd75 100644
--- a/src/engine/client/ec_srvbrowse.c
+++ b/src/engine/client/ec_srvbrowse.c
@@ -48,6 +48,7 @@ static int num_server_capacity = 0;
 
 static int sorthash = 0;
 static char filterstring[64] = {0};
+static char filtergametypestring[128] = {0};
 
 static int serverlist_lan = 1;
 static int64 broadcast_time = 0;
@@ -181,7 +182,13 @@ static void client_serverbrowse_filter()
 			if(!matchfound)
 				filtered = 1;
 		}
-			
+		else if(config.b_filter_gametype[0] != 0)
+		{
+			/* match against game type */
+			if(!str_find_nocase(serverlist[i]->info.gametype, config.b_filter_gametype))
+				filtered = 1;
+		}
+
 		if(filtered == 0)
 			sorted_serverlist[num_sorted_servers++] = i;
 	}
@@ -195,7 +202,6 @@ static int client_serverbrowse_sorthash()
 	i |= config.b_filter_pw<<6;
 	i |= config.b_sort_order<<7;
 	i |= config.b_filter_compatversion<<8;
-	i |= config.b_filter_gametype<<9;
 	i |= config.b_filter_ping<<16;
 	return i;
 }
@@ -236,6 +242,7 @@ static void client_serverbrowse_sort()
 	for(i = 0; i < num_sorted_servers; i++)
 		serverlist[sorted_serverlist[i]]->info.sorted_index = i;
 	
+	str_copy(filtergametypestring, config.b_filter_gametype, sizeof(filtergametypestring)); 
 	str_copy(filterstring, config.b_filter_string, sizeof(filterstring)); 
 	sorthash = client_serverbrowse_sorthash();
 }
@@ -467,6 +474,6 @@ void client_serverbrowse_update()
 	
 	/* check if we need to resort */
 	/* TODO: remove the strcmp */
-	if(sorthash != client_serverbrowse_sorthash() || strcmp(filterstring, config.b_filter_string) != 0)
+	if(sorthash != client_serverbrowse_sorthash() || strcmp(filterstring, config.b_filter_string) != 0 || strcmp(filtergametypestring, config.b_filter_gametype) != 0)
 		client_serverbrowse_sort();
 }