fix achievement bug
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index 0b223bab29d739c1aec45c8df18a6289d631fb57..01f27681bd9bffcb9d14570aab7427a1f03e09e7 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)
@@ -178,8 +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_MTZERO|ADDON_REG_PREMIUM );
+   skaterift_mount_world_unloadable( "maps/mp_line1", ADDON_REG_PREMIUM );
 
    world_static.load_state = k_world_loader_load;
 
@@ -215,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 );
@@ -309,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() );
@@ -643,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)
@@ -784,3 +803,4 @@ void vg_gui(void)
 #include "world_water.c"
 #include "ent_npc.c"
 #include "model.c"
+#include "control_overlay.c"