X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=gameserver.c;h=3ff58f1d40936e2abea9daf5923691f8318b7571;hb=08c07d4801fa8c134976d3c7c757179eeccd71d1;hp=b1058bb99ec56b243f1377622210c48027ddd9bb;hpb=d7fc81080aed9c32cbbb9c12a851be8248dd35ec;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/gameserver.c b/gameserver.c index b1058bb..3ff58f1 100644 --- a/gameserver.c +++ b/gameserver.c @@ -61,7 +61,9 @@ static void gameserver_player_join( int index ){ struct gameserver_client *joiner = &gameserver.clients[index]; netmsg_playerjoin join = { .inetmsg_id = k_inetmsg_playerjoin, - .index = index }; + .index = index, + .steamid = joiner->steamid }; + gameserver_send_to_all( index, &join, sizeof(join), k_nSteamNetworkingSend_Reliable ); @@ -84,7 +86,8 @@ static void gameserver_player_join( int index ){ /* join */ netmsg_playerjoin init = { .inetmsg_id = k_inetmsg_playerjoin, - .index = i }; + .index = i, + .steamid = client->steamid }; gameserver_send_to_client( index, &init, sizeof(init), k_nSteamNetworkingSend_Reliable ); @@ -119,7 +122,7 @@ static void gameserver_player_leave( int index ){ return; } - netmsg_playerjoin leave; + netmsg_playerleave leave; leave.inetmsg_id = k_inetmsg_playerleave; leave.index = index; @@ -455,6 +458,19 @@ static void gameserver_rx_200_300( SteamNetworkingMessage_t *msg ){ gameserver_send_to_all( client_id, prop, msg->m_cbSize, k_nSteamNetworkingSend_Reliable ); } + else if( tmp->inetmsg_id == k_inetmsg_chat ){ + netmsg_chat *chat = msg->m_pData, + *prop = alloca( sizeof(netmsg_chat) + NETWORK_MAX_CHAT ); + prop->inetmsg_id = k_inetmsg_chat; + prop->client = client_id; + + u32 l = network_msgstring( chat->msg, msg->m_cbSize, sizeof(netmsg_chat), + prop->msg, NETWORK_MAX_CHAT ); + vg_info( "[%d]: %s\n", client_id, prop->msg ); + + gameserver_send_to_all( client_id, prop, sizeof(netmsg_chat)+l, + k_nSteamNetworkingSend_Reliable ); + } else { vg_warn( "Unknown inetmsg_id recieved from client. (%u)\n", tmp->inetmsg_id );