* =============================================================================
*
* Copyright . . . -----, ,----- ,---. .---.
- * 2021-2023 |\ /| | / | | | | /|
+ * 2021-2024 |\ /| | / | | | | /|
* | \ / | +-- / +----- +---' | / |
* | \ / | | / | | \ | / |
* | \/ | | / | | \ | / |
#define SR_NETWORKED
#define VG_AUDIO_FORCE_COMPRESSED
+#define SDL_MAIN_HANDLED
#ifndef VG_RELEASE
#define VG_DEVWINDOW
#include "entity.c"
#include "workshop.c"
#include "addon.c"
-#include "highscores.c"
#include "save.c"
#include "world_map.c"
#include "network.c"
#include "particle.c"
#include "player_effects.c"
#include "freecam.c"
+#include "testing.c"
static int k_tools_mode = 0;
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){
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;
replay_clear( &skaterift.replay );
particle_alloc( &particles_grind, 300 );
+ particle_alloc( &particles_env, 200 );
player_load_animation_reference( "models/ch_none.mdl" );
player_model_load( &localplayer.fallback_model, "models/ch_none.mdl" );
vg_loader_step( addon_system_init, NULL );
vg_loader_step( workshop_init, NULL );
vg_loader_step( skateshop_init, NULL );
+ vg_loader_step( ent_tornado_init, NULL );
+ vg_loader_step( testing_init, NULL );
vg_loader_step( skaterift_load_player_content, NULL );
world_routes_fixedupdate( world_current_instance() );
player__update();
vehicle_update_fixed();
+ testing_update();
}
static void vg_post_update(void){
//particle_system_debug( &particles_grind );
particle_system_prerender( &particles_grind );
particle_system_render( &particles_grind, &skaterift.cam );
+
+ ent_tornado_pre_update();
+ particle_system_update( &particles_env, vg.time_delta );
+ particle_system_prerender( &particles_env );
+ particle_system_render( &particles_env, &skaterift.cam );
/*
* render transition
}
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();
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 );