revision 2
[carveJwlIkooP6JGAAIwe30JlM.git] / network.c
index 4d55707fbeb0feee105fba803aed7e9ff407fee1..74e03bf720187fe7dc2cd85393ba0dd0d01a82f4 100644 (file)
--- a/network.c
+++ b/network.c
@@ -1,3 +1,8 @@
+#include "skaterift.h"
+#include "vg/vg_steam.h"
+#include "vg/vg_steam_networking.h"
+#include "vg/vg_steam_auth.h"
+#include "vg/vg_steam_friends.h"
 #include "player.h"
 #include "network.h"
 #include "network_msg.h"
 #include "gui.h"
 #include "ent_region.h"
 
+struct network_client network_client =
+{
+   .auth_mode = eServerModeAuthentication,
+   .state = k_ESteamNetworkingConnectionState_None,
+   .server_adress = "46.101.34.155",
+   .last_intent_change = -99999.9
+};
+
 static void scores_update(void);
 
-static int packet_minsize( SteamNetworkingMessage_t *msg, u32 size ){
+int packet_minsize( SteamNetworkingMessage_t *msg, u32 size ){
    if( msg->m_cbSize < size ) {
       vg_error( "Invalid packet size (must be at least %u)\n", size );
       return 0;
@@ -79,7 +92,8 @@ static void network_send_username(void){
          k_nSteamNetworkingSend_Reliable, NULL );
 }
 
-static void network_send_region(void){
+void network_send_region(void)
+{
    if( !network_connected() )
       return;
    
@@ -159,9 +173,9 @@ static void network_scoreboard_callback( netmsg_request *res, vg_msg *body,
  *   .
  *   10+ specific week index
  */
-static void network_request_scoreboard( const char *mod_uid, 
-                                        const char *route_uid,
-                                        u32 week, u64 userdata ){
+void network_request_scoreboard( const char *mod_uid, 
+                                 const char *route_uid,
+                                 u32 week, u64 userdata ){
    if( !network_connected() ) 
       return;
 
@@ -184,8 +198,8 @@ static void network_publish_callback( netmsg_request *res, vg_msg *body,
    }
 }
 
-static void network_publish_laptime( const char *mod_uid, 
-                                     const char *route_uid, f64 lap_time ){
+void network_publish_laptime( const char *mod_uid, 
+                              const char *route_uid, f64 lap_time ){
    if( !network_connected() )
       return;
 
@@ -234,7 +248,8 @@ static void network_request_rx_300_400( SteamNetworkingMessage_t *msg ){
    }
 }
 
-static void network_send_item( enum netmsg_playeritem_type type ){
+void network_send_item( enum netmsg_playeritem_type type )
+{
    if( !network_connected() )
       return;
 
@@ -297,7 +312,8 @@ static void network_disconnect(void){
    }
 }
 
-static void network_status_string( vg_str *str, u32 *colour ){
+void network_status_string( vg_str *str, u32 *colour )
+{
    if( skaterift.demo_mode ){
       vg_strcat( str, "Offline" );
       return;
@@ -344,7 +360,8 @@ static void network_status_string( vg_str *str, u32 *colour ){
    }
 }
 
-static void render_server_status_gui(void){
+void render_server_status_gui(void)
+{
    render_fb_bind( gpipeline.fb_workshop_preview, 0 );
 
    /* HACK */
@@ -535,7 +552,8 @@ static void poll_remote_connection(void){
    }
 }
 
-static void network_update(void){
+void network_update(void)
+{
    if( !steam_ready )
       return;
 
@@ -582,7 +600,8 @@ static void network_update(void){
    }
 }
 
-static void chat_send_message( const char *message ){
+void chat_send_message( const char *message )
+{
    if( !network_connected() ){
       return;
    }
@@ -616,7 +635,8 @@ static int cmd_network_send_message( int argc, const char *argv[] ){
    return 0;
 }
 
-static void network_init(void){
+void network_init(void)
+{
    vg_console_reg_var( "network_info", &network_client.network_info,
                        k_var_dtype_i32, VG_VAR_PERSISTENT );
    if( steam_ready ){
@@ -642,7 +662,8 @@ static void network_init(void){
    }
 }
 
-static void network_end(void){
+void network_end(void)
+{
    /* TODO: Send buffered highscores that were not already */
    if( (network_client.state == k_ESteamNetworkingConnectionState_Connected) ||
        (network_client.state == k_ESteamNetworkingConnectionState_Connecting) )