about summary refs log tree commit diff
path: root/src/game/client/game_client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client/game_client.cpp')
-rw-r--r--src/game/client/game_client.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp
index 5698fc05..d9c2ba53 100644
--- a/src/game/client/game_client.cpp
+++ b/src/game/client/game_client.cpp
@@ -4,7 +4,6 @@
 #include <string.h>
 
 extern "C" {
-	#include <engine/external/glfw/include/GL/glfw.h> // DEBUG TESTING
 	#include <engine/client/ui.h>
 	#include <engine/config.h>
 };
@@ -26,10 +25,6 @@ enum
 	CHN_WORLD,
 };
 
-// red team color = 54090
-// blue team color = 10998628
-
-
 data_container *data = 0x0;
 
 int gametype = GAMETYPE_DM;
@@ -855,7 +850,9 @@ void send_info(bool start)
 		msg_pack_start(MSG_CHANGEINFO, MSGFLAG_VITAL);
 	msg_pack_string(config.player_name, 64);
 	msg_pack_string(config.player_skin, 64);
+	msg_pack_int(config.player_use_custom_color);
 	msg_pack_int(config.player_color_body);
+	msg_pack_int(config.player_color_feet);
 	msg_pack_end();
 	client_send_msg();
 }
@@ -2640,19 +2637,28 @@ extern "C" void modc_message(int msg)
 		int cid = msg_unpack_int();
 		const char *name = msg_unpack_string();
 		const char *skinname = msg_unpack_string();
-		int color = msg_unpack_int();
-		(void)color;
+		
 		strncpy(client_datas[cid].name, name, 64);
 		strncpy(client_datas[cid].skin_name, skinname, 64);
-		client_datas[cid].skin_info.color_body = vec4(1,1,1,1); //color;
-		client_datas[cid].skin_info.color_feet = vec4(1,1,1,1); //color;
+		
+		int use_custom_color = msg_unpack_int();
+		client_datas[cid].skin_info.color_body = skin_get_color(msg_unpack_int());
+		client_datas[cid].skin_info.color_feet = skin_get_color(msg_unpack_int());
 		client_datas[cid].skin_info.size = 64;
 		
 		// find new skin
 		client_datas[cid].skin_id = skin_find(client_datas[cid].skin_name);
 		if(client_datas[cid].skin_id < 0)
 			client_datas[cid].skin_id = 0;
-		client_datas[cid].skin_info.texture = skin_get(client_datas[cid].skin_id)->org_texture;
+		
+		if(use_custom_color)
+			client_datas[cid].skin_info.texture = skin_get(client_datas[cid].skin_id)->color_texture;
+		else
+		{
+			client_datas[cid].skin_info.texture = skin_get(client_datas[cid].skin_id)->org_texture;
+			client_datas[cid].skin_info.color_body = vec4(1,1,1,1);
+			client_datas[cid].skin_info.color_feet = vec4(1,1,1,1);
+		}
 	}
 	else if(msg == MSG_READY_TO_ENTER)
 	{