shithub: qk1

Download patch

ref: 1bff98bbaca8cb7b639313947b5a8435efcb3ef2
parent: f5b82c7a8618c716e77568b979057dfe699561d4
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Oct 16 07:37:05 EDT 2023

sv_protocol: use protocol version instead of id

--- a/protocol.c
+++ b/protocol.c
@@ -34,7 +34,6 @@
 
 protocol_t protos[PROTO_NUM] = {
 	[PROTO_NQ] = {
-		.id = PROTO_NQ,
 		.name = "Quake",
 		.version = 15,
 		.limit_entity = 8192,
@@ -50,7 +49,6 @@
 		.MSG_ReadProtocolInfo = MSG_ReadProtocolInfoNQ,
 	},
 	[PROTO_RMQ] = {
-		.id = PROTO_RMQ,
 		.name = "RMQ",
 		.version = 999,
 		.fl_large_entity = 1<<3, .large_entity = 8192, .limit_entity = 65536,
--- a/protocol.h
+++ b/protocol.h
@@ -15,7 +15,6 @@
 typedef struct protocol_t protocol_t;
 
 struct protocol_t {
-	int id;
 	int version;
 	int flags;
 	char *name;
--- a/sv_main.c
+++ b/sv_main.c
@@ -19,16 +19,21 @@
 static void
 SV_Protocol_f(void)
 {
-	int n;
+	int i, n;
 
-	n = Cmd_Argc();
-	if(n == 1)
-		Con_Printf("\"sv_protocol\" is \"%d\" (%s)\n", sv_protocol->id, sv_protocol->name);
-	else if(n == 2){
-		if((n = atoi(Cmd_Argv(1))) < PROTO_NQ || n >= PROTO_NUM)
-			Con_Printf("sv_protocol must be of value from %d to %d\n", PROTO_NQ, PROTO_NUM-1);
-		else{
-			sv_protocol = &protos[n];
+	i = Cmd_Argc();
+	if(i == 1)
+		Con_Printf("\"sv_protocol\" is \"%d\" (%s)\n", sv_protocol->version, sv_protocol->name);
+	else if(i == 2){
+		n = atoi(Cmd_Argv(1));
+		for(i = 0; i < PROTO_NUM && n != protos[i].version; i++);
+		if(i >= PROTO_NUM){
+			Con_Printf("sv_protocol must be of values:");
+			for(i = 0; i < PROTO_NUM; i++)
+				Con_Printf(" %d", protos[i].version);
+			Con_Printf("\n");
+		}else{
+			sv_protocol = &protos[i];
 			if(sv.active)
 				Con_Printf("changes will take effect on the next game\n");
 		}