* system headers
* --------------------- */
-#include "skaterift.h"
-#include "steam.h"
-#include "render.h"
#include "vg/vg_opt.h"
#include "vg/vg_loader.h"
#include "vg/vg_io.h"
+#include "skaterift.h"
+#include "steam.h"
+#include "render.h"
#include "world.h"
-
#include "font.h"
#include "player.h"
-
#include "network.h"
#include "menu.h"
#include "vehicle.h"
struct skaterift_globals skaterift =
{
- .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1,
+ .time_rate = 1.0f,
.hub_world = "maps/dev_hub",
};
-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" );
- return 0;
-}
-
-void vg_launch_opt(void)
+void game_launch_opt(void)
{
const char *arg;
- if( vg_long_opt( "noauth" ) ){
- network_client.auth_mode = eServerModeNoAuthentication;
- }
-
- if( (arg = vg_long_opt_arg( "server" )) )
- {
- network_set_host( arg, NULL );
- }
-
- if( vg_long_opt( "demo" ) ){
- skaterift.demo_mode = 1;
- }
-
- if( (arg = vg_long_opt_arg( "world" )) ){
+ if( (arg = vg_long_opt_arg( "world" )) )
skaterift.hub_world = arg;
- }
-}
-
-void vg_preload(void)
-{
-vg_info(" Copyright . . . -----, ,----- ,---. .---. \n" );
-vg_info(" 2021-2023 |\\ /| | / | | | | /| \n" );
-vg_info(" | \\ / | +-- / +----- +---' | / | \n" );
-vg_info(" | \\ / | | / | | \\ | / | \n" );
-vg_info(" | \\/ | | / | | \\ | / | \n" );
-vg_info(" ' ' '--' [] '----- '----- ' ' '---' "
- "SOFTWARE\n" );
-
- /* please forgive me! */
- u32 sz; char *drm;
- if( (drm = vg_file_read_text( vg_mem.scratch, "DRM", &sz )) )
- if( !strcmp(drm, "blibby!") )
- skaterift.demo_mode = 0;
-
- vg_loader_step( remote_players_init, NULL );
-
- steam_init();
- vg_loader_step( NULL, steam_end );
- vg_loader_step( network_init, network_end );
}
static void async_skaterift_player_start( void *payload, u32 size ){
world_switch_instance(0);
}
-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)
{
savedata_file sav;
player_board_load( &localplayer.fallback_board, "models/board_none.mdl" );
}
-void vg_load(void)
+void game_load(void)
{
- vg_audio.always_keep_compressed = 1;
-
vg_console_reg_cmd( "load_world", skaterift_load_world_command, NULL );
vg_console_reg_var( "immobile", &localplayer.immobile, k_var_dtype_i32, 0 );
-
- 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( skaterift_replay_init, NULL );
vg_loader_step( skaterift_load_player_content, NULL );
- /* --------------------- */
-
vg_bake_shaders();
vg_loader_step( audio_init, NULL );
- /* 'systems' are completely loaded now */
-
- /* Completing addon registrations
- * -------------------------------------
- */
-
- /* load home/permanent world manually */
vg_loader_step( skaterift_load_world_content, NULL );
vg_async_call( async_skaterift_player_start, NULL, 0 );
vg_async_stall();
vg_async_call( async_addon_reg_update, NULL, 0 );
vg_async_stall();
- /* and now */
skaterift_restore_state();
update_ach_models();
vg_loader_step( NULL, skaterift_autosave_synchronous );
-
- //board_processview_thread(NULL);
- vg_async_call( async_call_ready, NULL, 0 );
}
-static void draw_origin_axis(void){
+static void draw_origin_axis(void)
+{
vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 1.0f, 0.0f, 0.0f }, 0xffff0000 );
vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 0.0f, 1.0f, 0.0f }, 0xff00ff00 );
vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 0.0f, 0.0f, 1.0f }, 0xff0000ff );
steam_update();
skaterift_change_client_world_preupdate();
- if( skaterift.op == k_async_op_clientloading ) return;
+ if( !g_client.loaded ) return;
draw_origin_axis();
addon_system_pre_update();
void vg_fixed_update(void)
{
- if( skaterift.op == k_async_op_clientloading ) return;
+ if( !g_client.loaded ) return;
world_routes_fixedupdate( world_current_instance() );
player__update();
void vg_post_update(void)
{
- if( skaterift.op == k_async_op_clientloading ) return;
+ if( !g_client.loaded ) return;
player__post_update();
void vg_render(void)
{
- if( skaterift.op == k_async_op_clientloading ){
+ if( !g_client.loaded )
+ {
vg_loader_render();
return;
}
void vg_gui( ui_context *ctx )
{
- if( skaterift.op == k_async_op_clientloading ) return;
+ if( !g_client.loaded ) return;
gui_draw( ctx );