X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=cdef5a41c4f5b9ba236981ecca7036b313fc7a08;hb=76315944e5a98838163e0aba8601ed3522f0724d;hp=e488f778f0cfa63e613b36bd39ee850a1e8b08e5;hpb=039e6a3e39a8de1544c9021932e9550f40514ac7;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index e488f77..cdef5a4 100644 --- a/skaterift.c +++ b/skaterift.c @@ -13,6 +13,7 @@ #define SR_NETWORKED #define VG_AUDIO_FORCE_COMPRESSED +#define SDL_MAIN_HANDLED #ifndef VG_RELEASE #define VG_DEVWINDOW @@ -85,6 +86,10 @@ static void vg_launch_opt(void){ if( vg_long_opt( "demo" ) ){ skaterift.demo_mode = 1; } + + if( (arg = vg_long_opt_arg( "world" )) ){ + skaterift.hub_world = arg; + } } static void vg_preload(void){ @@ -160,18 +165,20 @@ static void skaterift_restore_state(void){ static addon_reg *skaterift_mount_world_unloadable( const char *path, u32 ext ){ addon_reg *reg = addon_mount_local_addon( path, k_addon_type_world, ".mdl" ); + if( !reg ) vg_fatal_error( "world not found\n" ); reg->flags |= (ADDON_REG_HIDDEN | ext); return reg; } static void skaterift_load_world_content(void){ /* hub world */ - addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub", 0 ); + addon_reg *hub = skaterift_mount_world_unloadable( skaterift.hub_world, 0 ); skaterift_mount_world_unloadable( "maps/mp_spawn", ADDON_REG_CITY|ADDON_REG_PREMIUM ); skaterift_mount_world_unloadable( "maps/mp_mtzero", ADDON_REG_MTZERO|ADDON_REG_PREMIUM ); skaterift_mount_world_unloadable( "maps/dev_tutorial", 0 ); + skaterift_mount_world_unloadable( "maps/dev_flatworld", 0 ); world_static.load_state = k_world_loader_load; @@ -581,7 +588,9 @@ static void render_main_game(void){ } else{ player__animate(); - skaterift_record_frame( &skaterift.replay, 0 ); + skaterift_record_frame( &skaterift.replay, + localplayer.deferred_frame_record ); + localplayer.deferred_frame_record = 0; } animate_remote_players(); player__pre_render(); @@ -664,6 +673,9 @@ static void vg_render(void){ static void vg_gui(void){ if( skaterift.op == k_async_op_clientloading ) return; + vg_ui.tex_bg = gpipeline.fb_main->attachments[0].id; + render_fb_inverse_ratio( gpipeline.fb_main, vg_ui.bg_inverse_ratio ); + menu_update(); if( skaterift.activity == k_skaterift_menu ){ glClear( GL_DEPTH_BUFFER_BIT );