update helpers/location to 'frosted' ui
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index 4f86538fde095c96866194887c2fca26d6acf398..d661fbf90501a2d1d7329df8bd418fc4b602bd02 100644 (file)
 
 #define SR_ALLOW_REWIND_HUB
 
+#ifdef _WIN32
+ #include <winsock2.h>
+#endif
+
 /* 
  *     system headers
  * --------------------- */
@@ -46,6 +50,7 @@
 #include "workshop.h"
 #include "audio.h"
 #include "player_render.h"
+#include "control_overlay.h"
 
 struct skaterift_globals skaterift = 
 { 
@@ -55,7 +60,9 @@ struct skaterift_globals skaterift =
 
 static int k_tools_mode = 0;
 
-int main( int argc, char *argv[] ){
+int main( int argc, char *argv[] )
+{
+   network_set_host( "skaterift.com", NULL );
    vg_mem.use_libc_malloc = 0;
    vg_set_mem_quota( 160*1024*1024 );
    vg_enter( argc, argv, "Voyager Game Engine" ); 
@@ -69,9 +76,9 @@ void vg_launch_opt(void)
       network_client.auth_mode = eServerModeNoAuthentication;
    }
 
-   if( (arg = vg_long_opt_arg( "server" )) ){
-      vg_strncpy( arg, network_client.server_adress, 64, 
-                  k_strncpy_overflow_fatal );
+   if( (arg = vg_long_opt_arg( "server" )) )
+   {
+      network_set_host( arg, NULL );
    }
 
    if( vg_long_opt( "tools" ) ){
@@ -117,8 +124,14 @@ static void async_skaterift_player_start( void *payload, u32 size ){
    world_switch_instance(0);
 }
 
-static void async_call_ready( void *payload, u32 size ){
+static void async_call_ready( void *payload, u32 size )
+{
    skaterift.op = k_async_op_none;
+
+   if( network_client.auto_connect )
+      network_client.user_intent = k_server_intent_online;
+
+   menu_at_begin();
 }
 
 static void skaterift_restore_state(void)
@@ -130,7 +143,7 @@ static void skaterift_restore_state(void)
    vg_msg_init( &kvsav, sav.buf, sizeof(sav.buf) );
 
    u32 ach;
-   vg_msg_getkvintg( &kvsav, "ach", k_vg_msg_u32, &ach );
+   vg_msg_getkvintg( &kvsav, "ach", k_vg_msg_u32, &ach, NULL );
    skaterift.achievements |= ach;
 
    u32 board_reg_id = time(NULL) % addon_count( k_addon_type_board, 0 ),
@@ -178,6 +191,7 @@ static void skaterift_load_world_content(void){
          ADDON_REG_MTZERO|ADDON_REG_PREMIUM );
    skaterift_mount_world_unloadable( "maps/dev_tutorial", 0 );
    skaterift_mount_world_unloadable( "maps/dev_flatworld", 0 );
+   skaterift_mount_world_unloadable( "maps/mp_line1", ADDON_REG_PREMIUM );
 
    world_static.load_state = k_world_loader_load;
 
@@ -213,6 +227,7 @@ void vg_load(void)
 
    vg_loader_step( render_init, NULL );
    vg_loader_step( menu_init, NULL );
+   vg_loader_step( control_overlay_init, NULL );
    vg_loader_step( world_init, NULL );
    vg_loader_step( vehicle_init, NULL );
    vg_loader_step( gui_init, NULL );
@@ -307,7 +322,12 @@ void vg_pre_update(void)
    /* TODO: how can we compress this? */
    ent_miniworld_preupdate();
    world_entity_focus_preupdate();
-   player__pre_update();
+
+   if( skaterift.activity != k_skaterift_menu )
+   {
+      player__pre_update();
+   }
+
    skaterift_replay_pre_update();
    remote_sfx_pre_update();
    skateshop_world_preupdate( world_current_instance() );
@@ -641,6 +661,7 @@ static void render_main_game(void){
    /* composite */
    present_view_with_post_processing();
    skaterift_replay_post_render();
+   control_overlay_render();
 }
 
 void vg_render(void)
@@ -675,13 +696,16 @@ void vg_render(void)
    glDisable(GL_DEPTH_TEST);
    vg_lines_drawall();
    glViewport( 0,0, vg.window_x, vg.window_y );
-   gui_draw();
+
+   gui_render_icons();
 }
 
 void vg_gui(void)
 {
    if( skaterift.op == k_async_op_clientloading ) return;
 
+   gui_draw();
+
    if( k_tools_mode ){
       ui_rect null;
       ui_rect screen = { 0, 0, vg.window_x, vg.window_y };
@@ -782,3 +806,4 @@ void vg_gui(void)
 #include "world_water.c"
 #include "ent_npc.c"
 #include "model.c"
+#include "control_overlay.c"