about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-16 20:16:27 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-16 20:16:27 +0000
commitb03d26b8866e04567f21cee3fcd37a9ca673ea3b (patch)
tree5d04ea9eed4b826ab0102cb2d92b1e2b7b908a4c /src
parentb31d63b4d8574be79c15030421becf4980978514 (diff)
downloadzcatch-b03d26b8866e04567f21cee3fcd37a9ca673ea3b.tar.gz
zcatch-b03d26b8866e04567f21cee3fcd37a9ca673ea3b.zip
fixed so that the score is reported correctly
Diffstat (limited to 'src')
-rw-r--r--src/engine/e_interface.h1
-rw-r--r--src/engine/server/es_server.c11
-rw-r--r--src/game/server/gs_server.cpp2
3 files changed, 13 insertions, 1 deletions
diff --git a/src/engine/e_interface.h b/src/engine/e_interface.h
index b8a0a6a7..170d1ba5 100644
--- a/src/engine/e_interface.h
+++ b/src/engine/e_interface.h
@@ -754,6 +754,7 @@ const char *mods_net_version();
 int server_getclientinfo(int client_id, CLIENT_INFO *info);
 const char *server_clientname(int client_id);
 void server_setclientname(int client_id, const char *name);
+void server_setclientscore(int client_id, int score);
 
 void server_setbrowseinfo(int game_type, int progression);
 
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c
index c8bdebc0..675e778c 100644
--- a/src/engine/server/es_server.c
+++ b/src/engine/server/es_server.c
@@ -89,6 +89,7 @@ typedef struct
 	
 	char name[MAX_NAME_LENGTH];
 	char clan[MAX_CLANNAME_LENGTH];
+	int score;
 } CLIENT;
 
 static CLIENT clients[MAX_CLIENTS];
@@ -192,6 +193,13 @@ void server_setclientname(int client_id, const char *name)
 	strncpy(clients[client_id].name, name, MAX_NAME_LENGTH);
 }
 
+void server_setclientscore(int client_id, int score)
+{
+	if(client_id < 0 || client_id > MAX_CLIENTS || clients[client_id].state < SRVCLIENT_STATE_READY)
+		return;
+	clients[client_id].score = score;
+}
+
 void server_setbrowseinfo(int game_type, int progression)
 {
 	browseinfo_gametype = game_type;
@@ -451,6 +459,7 @@ static int new_client_callback(int cid, void *user)
 	
 	snapstorage_purge_all(&clients[cid].snapshots);
 	clients[cid].last_acked_snapshot = -1;
+	clients[cid].score = 0;
 	return 0;
 }
 
@@ -650,7 +659,7 @@ static void server_send_serverinfo(NETADDR4 *addr)
 		if(clients[i].state != SRVCLIENT_STATE_EMPTY)
 		{
 			packer_add_string(&p, clients[i].name, 48);  /* player name */
-			packer_add_string(&p, "0", 6); /* score */
+			sprintf(buf, "%d", clients[i].score); packer_add_string(&p, buf, 6);  /* player score */
 		}
 	}
 	
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp
index 524b8dfc..cd1803f7 100644
--- a/src/game/server/gs_server.cpp
+++ b/src/game/server/gs_server.cpp
@@ -1039,6 +1039,8 @@ int player::handle_weapons()
 
 void player::tick()
 {
+	server_setclientscore(client_id, score);
+	
 	// check if we have enough input
 	// this is to prevent initial weird clicks
 	if(num_inputs < 2)