about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-11-27 19:51:48 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-11-27 19:51:48 +0000
commit59f0a07555c124e14185dd29078b3b5e99ea09d8 (patch)
tree723f4ba020ac3ed5919485656e00637d32610b2a /src/game/server
parent8fa8485a3a207565a610dac981cb2da2a6a6d040 (diff)
downloadzcatch-59f0a07555c124e14185dd29078b3b5e99ea09d8.tar.gz
zcatch-59f0a07555c124e14185dd29078b3b5e99ea09d8.zip
fixed so that the server reports gametype, progression and password protection correctly
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/srv_common.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/game/server/srv_common.cpp b/src/game/server/srv_common.cpp
index bd5d0964..f76e1e51 100644
--- a/src/game/server/srv_common.cpp
+++ b/src/game/server/srv_common.cpp
@@ -110,8 +110,6 @@ void gameobject::post_reset()
 			players[i].respawn();
 	}
 }
-
-
 	
 void gameobject::on_player_info_change(class player *p)
 {
@@ -165,6 +163,34 @@ void gameobject::tick()
 			startround();
 		}
 	}
+	
+	
+	// update browse info
+	int prog = -1;
+	if(config.timelimit > 0)
+		prog = max(prog, (server_tick()-round_start_tick) * 100 / (config.timelimit*server_tickspeed()*60));
+
+	if(config.scorelimit)
+	{
+		if(is_teamplay)
+		{
+			prog = max(prog, (teamscore[0]*100)/config.scorelimit);
+			prog = max(prog, (teamscore[1]*100)/config.scorelimit);
+		}
+		else
+		{
+			for(int i = 0; i < MAX_CLIENTS; i++)
+			{
+				if(players[i].client_id != -1)
+					prog = max(prog, (players[i].score*100)/config.scorelimit);
+			}
+		}
+	}
+
+	if(warmup)
+		prog = -1;
+	
+	server_setbrowseinfo(gametype, prog);
 }
 
 void gameobject::snap(int snapping_client)