From 8df50f6e296eb474e12a6781bc76d03239e7d0cb Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 3 Jul 2025 01:55:49 +0100 Subject: [PATCH] move registration order --- build.c | 48 +++++------------------------------ src/audio.c | 1 - src/compass.c | 7 ++++-- src/compass.h | 1 + src/control_overlay.c | 7 ++++-- src/control_overlay.h | 1 + src/ent_atom.c | 2 +- src/ent_atom.h | 2 +- src/ent_challenge.c | 2 +- src/ent_challenge.h | 2 +- src/ent_tornado.c | 2 +- src/ent_tornado.h | 2 +- src/gui.h | 6 ++++- src/menu.c | 5 +++- src/menu.h | 1 + src/metascene.c | 28 ++++++++++----------- src/metascene.h | 4 +-- src/network.c | 21 +++++++--------- src/network.h | 6 +++++ src/player.c | 27 ++++++++++---------- src/player.h | 1 + src/player_api.h | 2 +- src/player_glide.c | 7 ++++-- src/player_glide.h | 1 + src/player_ragdoll.c | 2 +- src/player_ragdoll.h | 2 +- src/player_remote.c | 6 ++++- src/player_remote.h | 1 + src/render.c | 9 ++++--- src/render.h | 1 + src/replay2.c | 5 +++- src/replay2.h | 1 + src/skaterift.c | 58 +++++++++++++++++++++++++++---------------- src/steam.c | 25 +++++++++---------- src/steam.h | 1 + src/workshop.c | 2 +- src/workshop.h | 2 +- src/world_load.c | 2 +- src/world_render.c | 5 +++- src/world_render.h | 1 + 40 files changed, 164 insertions(+), 145 deletions(-) diff --git a/build.c b/build.c index d110b58..010dc91 100644 --- a/build.c +++ b/build.c @@ -397,7 +397,6 @@ void s_testing_build_win(void) { .optimization = 0, .debug_asan = 0, - .pdb = 1, .platform = k_platform_windows, .arch = k_architecture_x86_64, .compiler = k_compiler_zigcc, @@ -464,52 +463,11 @@ void s_dbtest_build(void) vg_compiler_run( &test_proj, &vg_test_env, &conf, sources.buffer, "dbtest", k_obj_type_exe ); } -#include "vg/vg_kv.h" -#include "vg/vg_kv.c" - int main( int argc, const char *argv[] ) { vg_log_init(); _vg_opt_init( argc, argv ); - vg_stack_allocator stacky; - vg_stack_init( &stacky, NULL, 0, "Stacky" ); - vg_stack_set_flags( &stacky, VG_STACK_ALLOCATOR_METADATA|VG_STACK_ALLOCATOR_DOUBLE_IF_FULL ); - u32 size; - const char *src = vg_file_read( &stacky, "/home/harry/Documents/vg_res/test.kv", &size, 1 ); - - if( src ) - { - vg_kvs kvs; - vg_kv_parse( &kvs, src, &stacky ); - vg_kv_print_info( &kvs ); - vg_kv_print_tree( &kvs, 0, 0 ); - - u32 db = vg_kv_find( &kvs, 0, "skaterift_database" ); - if( db ) - { - vg_success( "Found db\n" ); - - u32 users = vg_kv_find( &kvs, db, "users" ); - if( users ) - { - vg_success( "Found users\n" ); - - u32 vt = vg_kv_find( &kvs, users, "value_type" ); - if( vt ) - { - u32 val_length; - const char *val = vg_kv_value( &kvs, vt, &val_length ); - - if( val ) - vg_success( "-> %.*s\n", val_length, val ); - } - } - } - } - - return 0; - const char *arg; if( (arg = vg_long_opt_arg( "glsl-dir", "Specify output directory for preprocessed GLSL" )) ) @@ -521,6 +479,12 @@ int main( int argc, const char *argv[] ) if( vg_opt('r', NULL) ) vg_test_env.optimization = 3; + if( vg_long_opt( "tsan", NULL ) ) + { + vg_test_env.debug_asan = 0; + vg_test_env.thread_san = 1; + } + if( vg_long_opt( "no-asan", NULL ) ) vg_test_env.debug_asan = 0; diff --git a/src/audio.c b/src/audio.c index 2d47ca5..8186c46 100644 --- a/src/audio.c +++ b/src/audio.c @@ -213,7 +213,6 @@ void audio_init(void) vg_audio_lock(); air_audio_data.channel_id = vg_audio_get_first_idle_channel(); VG_ASSERT( air_audio_data.channel_id ); - vg_audio_set_channel_clip( air_audio_data.channel_id, &air_synth ); vg_audio_start_channel( air_audio_data.channel_id ); vg_audio_unlock(); diff --git a/src/compass.c b/src/compass.c index 240b12f..019241b 100644 --- a/src/compass.c +++ b/src/compass.c @@ -4,6 +4,11 @@ struct _compass _compass = { .alpha = 1 }; +void compass_register(void) +{ + vg_console_reg_var( "compass_alpha", &_compass.alpha, k_var_dtype_f32, VG_VAR_PERSISTENT ); +} + void compass_init(void) { mdl_context *mdl = &_compass.mdl; @@ -25,8 +30,6 @@ void compass_init(void) _compass.sm_comp_w = mdl_get_submesh_index( mdl, "comp_w" ); _compass.sm_comp_objective = mdl_get_submesh_index( mdl, "comp_objective" ); mdl_close( mdl ); - - vg_console_reg_var( "compass_alpha", &_compass.alpha, k_var_dtype_f32, VG_VAR_PERSISTENT ); } static void compass_project( m3x3f base_projection, f32 x, f32 height ) diff --git a/src/compass.h b/src/compass.h index f8b08c0..8337610 100644 --- a/src/compass.h +++ b/src/compass.h @@ -24,5 +24,6 @@ struct _compass extern _compass; void compass_init(void); +void compass_register(void); void compass_render_texture(void); void compass_render_imgui( ui_context *ctx ); diff --git a/src/control_overlay.c b/src/control_overlay.c index a9aaa96..9c42938 100644 --- a/src/control_overlay.c +++ b/src/control_overlay.c @@ -31,6 +31,11 @@ static void control_overlay_init_finish( void *userdata ) } } +void control_overlay_register(void) +{ + vg_console_reg_var( "control_overlay", &control_overlay.enabled, k_var_dtype_i32, VG_VAR_PERSISTENT ); +} + void control_overlay_init(void) { mdl_context *mdl = &control_overlay.mdl; @@ -40,8 +45,6 @@ void control_overlay_init(void) mdl_async_full_load_std( mdl, NULL ); mdl_close( mdl ); vg_async_call( &vg.main_tasks, control_overlay_init_finish, NULL ); - - vg_console_reg_var( "control_overlay", &control_overlay.enabled, k_var_dtype_i32, VG_VAR_PERSISTENT ); } static void draw_key( bool press, bool wide ) diff --git a/src/control_overlay.h b/src/control_overlay.h index 089136d..a8f734a 100644 --- a/src/control_overlay.h +++ b/src/control_overlay.h @@ -15,3 +15,4 @@ extern control_overlay; void control_overlay_render(void); void control_overlay_init(void); +void control_overlay_register(void); diff --git a/src/ent_atom.c b/src/ent_atom.c index ad8c733..5654ece 100644 --- a/src/ent_atom.c +++ b/src/ent_atom.c @@ -251,7 +251,7 @@ static void _ent_atom_ccmd_poll( int argc, const char *argv[] ) } } -void _ent_atom_init(void) +void _ent_atom_register(void) { vg_console_reg_cmd( "atom", _ent_atom_ccmd, _ent_atom_ccmd_poll ); } diff --git a/src/ent_atom.h b/src/ent_atom.h index 2860997..5620c1b 100644 --- a/src/ent_atom.h +++ b/src/ent_atom.h @@ -23,4 +23,4 @@ void _atom_notify( enum e_atom_list list, const char *alias ); void _atom_notify_list( enum e_atom_list list ); entity_event_result _ent_atom_event( ent_event *event ); -void _ent_atom_init(void); +void _ent_atom_register(void); diff --git a/src/ent_challenge.c b/src/ent_challenge.c index d925f65..e8eec54 100644 --- a/src/ent_challenge.c +++ b/src/ent_challenge.c @@ -393,7 +393,7 @@ static int _skaterift_challenge_ccmd( int argc, const char *argv[] ) return 1; } -void _ent_challenge_init(void) +void _ent_challenge_register(void) { vg_console_reg_cmd( "challenge", _skaterift_challenge_ccmd, NULL ); } diff --git a/src/ent_challenge.h b/src/ent_challenge.h index e449e6f..0e3a860 100644 --- a/src/ent_challenge.h +++ b/src/ent_challenge.h @@ -6,4 +6,4 @@ void _ent_challenge_ui( ui_context *ctx ); void _restart_active_challenge(void); void _ent_challenge_complete( ent_challenge *challenge ); void _ent_challenge_win(void); -void _ent_challenge_init(void); +void _ent_challenge_register(void); diff --git a/src/ent_tornado.c b/src/ent_tornado.c index cb38b8a..52b33d4 100644 --- a/src/ent_tornado.c +++ b/src/ent_tornado.c @@ -5,7 +5,7 @@ static f32 k_tornado_strength = 0.0f, k_tornado_ratio = 0.5f, k_tornado_range = 10.f; -void ent_tornado_init(void) +void ent_tornado_register(void) { vg_console_reg_var( "k_tonado_strength", &k_tornado_strength, k_var_dtype_f32, VG_VAR_PERSISTENT|VG_VAR_CHEAT ); diff --git a/src/ent_tornado.h b/src/ent_tornado.h index f89c070..c2dfb8b 100644 --- a/src/ent_tornado.h +++ b/src/ent_tornado.h @@ -1,6 +1,6 @@ #pragma once -void ent_tornado_init(void); +void ent_tornado_register(void); void ent_tornado_debug(void); void ent_tornado_forces( v3f co, v3f cv, v3f out_a ); void ent_tornado_pre_update(void); diff --git a/src/gui.h b/src/gui.h index 7ff3678..cf506b2 100644 --- a/src/gui.h +++ b/src/gui.h @@ -347,10 +347,14 @@ static void gui_icon_setcolour( v4f colour ){ v4_copy( colour, gui.cur_icon_colour ); } +void gui_register(void) +{ + vg_console_reg_cmd( "gui_location", gui_location_print_ccmd, NULL ); +} + static void gui_init(void) { font3d_load( &gui.font, "models/rs_font.mdl", &vg.rtmem ); - vg_console_reg_cmd( "gui_location", gui_location_print_ccmd, NULL ); /* load icons */ mdl_context *mdl = &gui.model_icons; diff --git a/src/menu.c b/src/menu.c index fff1190..301f7ca 100644 --- a/src/menu.c +++ b/src/menu.c @@ -33,11 +33,14 @@ static int cmd_menu_impromptu( int argc, const char *argv[] ) return 1; } -void menu_init(void) +void menu_register(void) { vg_console_reg_var( "skip_starter_menu", &menu.skip_starter, k_var_dtype_i32, VG_VAR_PERSISTENT ); vg_console_reg_cmd( "menu_impromptu", cmd_menu_impromptu, NULL ); +} +void menu_init(void) +{ u32 flags = VG_TEX2D_CLAMP|VG_TEX2D_NOMIP|VG_TEX2D_NEAREST; vg_tex2d_load_qoi_async_file( "textures/prem.qoi", flags, &menu.prem_tex ); vg_tex2d_load_qoi_async_file( "textures/guide_pump.qoi", flags, &menu.guide_pump_tex ); diff --git a/src/menu.h b/src/menu.h index 4eda5a2..242cb74 100644 --- a/src/menu.h +++ b/src/menu.h @@ -81,6 +81,7 @@ struct global_menu } extern menu; +void menu_register(void); void menu_init(void); void menu_at_begin(void); void menu_gui( ui_context *ctx ); diff --git a/src/metascene.c b/src/metascene.c index 6a6b5c8..7c75699 100644 --- a/src/metascene.c +++ b/src/metascene.c @@ -45,8 +45,8 @@ void _cutscene_unload(void) { vg_info( "Unloading cutscene\n" ); vg_audio_lock(); - vg_audio_fadeout_flagged_audio( AUDIO_FLAG_CUTSCENE, 1.0f ); vg_audio_set_flagged_pause( AUDIO_FLAG_CUTSCENE, 0 ); + vg_audio_fadeout_flagged_audio( AUDIO_FLAG_CUTSCENE, 1.0f ); vg_audio_unlock(); for( u32 i=0; i<_cutscene.unique_refs; i ++ ) @@ -146,14 +146,14 @@ static void cutscene_load_thread( vg_async_task *task ) struct cutscene_load_info *info = (void *)task->data; vg_info( "Loading cutscene: %s\n", info->path ); - _cutscene.stack = vg_stack_make_substack( &vg.rtmem, VG_MB(20), "Cutscene Stack" ); - metascene_load( &_cutscene.meta, info->path, _cutscene.stack ); + vg_stack_init( &_cutscene.stack, NULL, VG_MB(20), "Cutscene Stack" ); + metascene_load( &_cutscene.meta, info->path, &_cutscene.stack ); _cutscene.instance_count = af_arrcount( &_cutscene.meta.instances ); - _cutscene.instances = vg_stack_allocate( _cutscene.stack, sizeof(struct cs_instance) * _cutscene.instance_count, + _cutscene.instances = vg_stack_allocate( &_cutscene.stack, sizeof(struct cs_instance) * _cutscene.instance_count, 8, "Instances" ); - _cutscene.refs = vg_stack_allocate( _cutscene.stack, 0, 8, "References" ); + _cutscene.refs = vg_stack_allocate( &_cutscene.stack, 0, 8, "References" ); _cutscene.unique_refs = 0; for( u32 i=0; i < _cutscene.instance_count; i ++ ) { @@ -178,7 +178,7 @@ static void cutscene_load_thread( vg_async_task *task ) if( !ref ) { - _cutscene.refs = vg_stack_extend_last( _cutscene.stack, sizeof(struct model_ref) ); + _cutscene.refs = vg_stack_extend_last( &_cutscene.stack, sizeof(struct model_ref) ); ref_id = _cutscene.unique_refs; ref = &_cutscene.refs[ ref_id ]; ref->name = name; @@ -205,20 +205,20 @@ static void cutscene_load_thread( vg_async_task *task ) vg_strcat( &mdl_path, ".mdl" ); vg_info( "Loading instance model: %s\n", mdl_path.buffer ); - mdl_open( &ref->mdl, mdl_path.buffer, _cutscene.stack ); - mdl_load_metadata_block( &ref->mdl, _cutscene.stack ); + mdl_open( &ref->mdl, mdl_path.buffer, &_cutscene.stack ); + mdl_load_metadata_block( &ref->mdl, &_cutscene.stack ); mdl_async_full_load_std( &ref->mdl, NULL ); mdl_close( &ref->mdl ); u32 skeleton_count = ref->mdl.armature_count; if( skeleton_count ) { - ref->skeletons = vg_stack_allocate( _cutscene.stack, sizeof(struct cs_skeleton) * skeleton_count, 8, "Skeletons" ); + ref->skeletons = vg_stack_allocate( &_cutscene.stack, sizeof(struct cs_skeleton) * skeleton_count, 8, "Skeletons" ); ref->total_skinning_bones = 0; for( u32 j=0; jskeletons[ j ]; - skeleton_setup( &skele->sk, &ref->mdl, j, _cutscene.stack ); + skeleton_setup( &skele->sk, &ref->mdl, j, &_cutscene.stack ); skele->skinning_offset = ref->total_skinning_bones; ref->total_skinning_bones += skele->sk.bone_count; } @@ -236,7 +236,7 @@ static void cutscene_load_thread( vg_async_task *task ) struct cs_instance *ins = &_cutscene.instances[ i ]; struct model_ref *ref = &_cutscene.refs[ ins->ref_id ]; - ins->skinning_data = vg_stack_allocate( _cutscene.stack, sizeof(m4x3f) * ref->total_skinning_bones, + ins->skinning_data = vg_stack_allocate( &_cutscene.stack, sizeof(m4x3f) * ref->total_skinning_bones, 8, "Skinning Data" ); for( u32 j=0; jtotal_skinning_bones; j ++ ) m4x3_identity( ins->skinning_data[ j ] ); @@ -280,7 +280,7 @@ static void cutscene_load_thread( vg_async_task *task ) clip->_.clip.size = 0; } - audio_clip_load( &clip->_.clip, _cutscene.stack ); + audio_clip_load( &clip->_.clip, &_cutscene.stack ); } } @@ -481,7 +481,7 @@ void cutscene_update( f32 delta ) return; } - vg_stack_free( _cutscene.stack ); + vg_stack_free( &_cutscene.stack ); _cutscene.state = k_cutscene_state_none; _cutscene.marker_this_frame = NULL; _cutscene.subtitle = NULL; @@ -1011,7 +1011,7 @@ static int cmd_cutscene_inspector( int argc, const char *argv[] ) return 1; } -void cutscene_init(void) +void cutscene_register(void) { vg_console_reg_cmd( "cutscene_play", cmd_cutscene_play, NULL ); vg_console_reg_cmd( "cutscene_inspector", cmd_cutscene_inspector, NULL ); diff --git a/src/metascene.h b/src/metascene.h index a26fe30..4e1211b 100644 --- a/src/metascene.h +++ b/src/metascene.h @@ -132,7 +132,7 @@ struct cs_subtitle struct _cutscene { ms_context meta; - vg_stack_allocator *stack; + vg_stack_allocator stack; enum cutscene_state { @@ -214,7 +214,7 @@ struct _cutscene extern _cutscene; void metascene_load( ms_context *ms, const char *path, void *alloc ); -void cutscene_init(void); +void cutscene_register(void); void cutscene_render( world_instance *world, vg_camera *cam ); void cutscene_render_fadeout(void); bool _cutscene_load_and_play( const char *path, bool freeze_player, u32 raiser_entity ); diff --git a/src/network.c b/src/network.c index 5c27f31..f09e828 100644 --- a/src/network.c +++ b/src/network.c @@ -68,7 +68,7 @@ static void on_auth_ticket_recieved( void *result, void *context ){ } } -static void request_auth_ticket(void) +void request_auth_ticket(void) { /* * TODO Check for one thats cached on the disk and load it. @@ -286,7 +286,7 @@ void render_server_status_gui(void) skaterift.rt_textures[ k_skaterift_rt_server_status ] = g_render.fb_network_status->attachments[0].id; } -static void on_server_connect_status( CallbackMsg_t *msg ) +void on_server_connect_status( CallbackMsg_t *msg ) { SteamNetConnectionStatusChangedCallback_t *info = (void *)msg->m_pubParam; vg_info( " Connection status changed for %lu\n", info->m_hConn ); @@ -344,7 +344,7 @@ static void on_server_connect_status( CallbackMsg_t *msg ) render_server_status_gui(); } -static void on_persona_state_change( CallbackMsg_t *msg ) +void on_persona_state_change( CallbackMsg_t *msg ) { if( !network_connected() ) return; @@ -687,18 +687,15 @@ static int cmd_network_send_rcon( int argc, const char *argv[] ) return 0; } -void network_init(void) +void network_register(void) { vg_console_reg_var( "auto_connect", &network_client.auto_connect, k_var_dtype_i32, VG_VAR_PERSISTENT ); - if( steam_ready ) - { - _net_requests_init(); - steam_register_callback( k_iSteamNetConnectionStatusChangedCallBack, on_server_connect_status ); - steam_register_callback( k_iPersonaStateChange, on_persona_state_change ); - request_auth_ticket(); + vg_console_reg_cmd( "rcon", cmd_network_send_rcon, NULL ); +} - vg_console_reg_cmd( "rcon", cmd_network_send_rcon, NULL ); - } +void network_init(void) +{ + _net_requests_init(); } void network_end(void) diff --git a/src/network.h b/src/network.h index 6c84a2e..a24dd3b 100644 --- a/src/network.h +++ b/src/network.h @@ -19,7 +19,13 @@ * Interface */ +/* TEMP!!!!!!!!!!!! */ +void on_server_connect_status( CallbackMsg_t *msg ); +void on_persona_state_change( CallbackMsg_t *msg ); +void request_auth_ticket(void); + /* Call it at start; Connects us to the gameserver */ +void network_register(void); void network_init(void); /* Run this from main loop */ diff --git a/src/player.c b/src/player.c index de25a24..f706eef 100644 --- a/src/player.c +++ b/src/player.c @@ -15,7 +15,6 @@ #include "player_walk.h" #include "player_dead.h" -#include "player_drive.h" #include "player_skate.h" #include "player_basic_info.h" #include "player_glide.h" @@ -36,11 +35,10 @@ struct localplayer localplayer = .immunity = 1 /* just for one frame */ }; -struct player_subsystem_interface *player_subsystems[] = +struct player_subsystem_interface *player_subsystems[k_player_subsystem_max] = { [k_player_subsystem_walk] = &player_subsystem_walk, [k_player_subsystem_dead] = &player_subsystem_dead, - [k_player_subsystem_drive] = &player_subsystem_drive, [k_player_subsystem_skate] = &player_subsystem_skate, [k_player_subsystem_basic_info]=&player_subsystem_basic_info, [k_player_subsystem_glide] = &player_subsystem_glide, @@ -65,15 +63,8 @@ int localplayer_cmd_respawn( int argc, const char *argv[] ) return 1; } -void player_init(void) +void player_register(void) { - for( u32 i=0; isystem_register ) - sys->system_register(); - } - vg_console_reg_var( "player_battery", &localplayer.has_battery, k_var_dtype_i32, 0 ); vg_console_reg_cmd( "respawn", localplayer_cmd_respawn, NULL ); VG_VAR_F32( k_cam_damp ); @@ -89,6 +80,16 @@ void player_init(void) #endif vg_console_reg_var( "invert_y", &k_invert_y, k_var_dtype_i32, VG_VAR_PERSISTENT ); + for( u32 i=0; isystem_register ) + sys->system_register(); + } +} + +void player_init(void) +{ mdl_context *mdl = &localplayer.battery; mdl_open( mdl, "models/battery.mdl", &vg.rtmem ); mdl_load_metadata_block( mdl, &vg.rtmem ); @@ -124,8 +125,8 @@ void player__bind(void) for( u32 i=0; ibind ) sys->bind(); + if( sys && sys->bind ) + sys->bind(); } } diff --git a/src/player.h b/src/player.h index 76b2d1b..c4ed1d3 100644 --- a/src/player.h +++ b/src/player.h @@ -173,6 +173,7 @@ extern struct player_subsystem_interface *player_subsystems[]; * --------------------------------------------------------- */ +void player_register(void); void player_init(void); void player__debugtext( ui_context *ctx, int size, const char *fmt, ... ); void player__use_mesh( glmesh *mesh ); diff --git a/src/player_api.h b/src/player_api.h index 51b21b6..cd8a477 100644 --- a/src/player_api.h +++ b/src/player_api.h @@ -27,7 +27,7 @@ enum player_subsystem{ k_player_subsystem_walk = 0, k_player_subsystem_skate = 1, k_player_subsystem_dead = 2, - k_player_subsystem_drive = 3, + k_player_subsystem_REMOVED0 = 3, k_player_subsystem_basic_info = 4, k_player_subsystem_glide = 5, k_player_subsystem_max, diff --git a/src/player_glide.c b/src/player_glide.c index 5c2d565..6c077c3 100644 --- a/src/player_glide.c +++ b/src/player_glide.c @@ -64,6 +64,7 @@ struct player_subsystem_interface player_subsystem_glide = .network_animator_exchange = player_glide_animator_exchange, .im_gui = player_glide_im_gui, .bind = player_glide_bind, + .system_register = player_glide_register, .animator_data = &player_glide.animator, .animator_size = sizeof(player_glide.animator), @@ -383,7 +384,7 @@ static int ccmd_player_glider_spawn( int argc, const char *argv[] ){ return 0; } -void player_glide_bind(void) +void player_glide_register(void) { u32 mask = VG_VAR_CHEAT|VG_VAR_PERSISTENT; VG_VAR_F32( k_glide_steer, flags=mask ); @@ -395,9 +396,11 @@ void player_glide_bind(void) VG_VAR_I32( k_glide_pause, flags=mask ); VG_VAR_F32( k_glide_balance, flags=mask ); VG_VAR_F32( k_glide_wing_orient, flags=mask ); - vg_console_reg_cmd( "spawn_glider", ccmd_player_glider_spawn, NULL ); +} +void player_glide_bind(void) +{ f32 mass = 0.0f,k_density = 8.0f; m3x3f I; m3x3_zero( I ); diff --git a/src/player_glide.h b/src/player_glide.h index 8d10d17..f189cc6 100644 --- a/src/player_glide.h +++ b/src/player_glide.h @@ -55,6 +55,7 @@ struct player_glide extern player_glide; extern struct player_subsystem_interface player_subsystem_glide; +void player_glide_register(void); void player_glide_pre_update(void); void player_glide_update(void); void player_glide_post_update(void); diff --git a/src/player_ragdoll.c b/src/player_ragdoll.c index ebaa55d..5ef3ebd 100644 --- a/src/player_ragdoll.c +++ b/src/player_ragdoll.c @@ -57,7 +57,7 @@ static int dev_ragdoll_saveload(int argc, const char *argv[]){ return 0; } -void player_ragdoll_init(void) +void player_ragdoll_register(void) { VG_VAR_F32( k_ragdoll_active_threshold ); VG_VAR_F32( k_ragdoll_angular_drag ); diff --git a/src/player_ragdoll.h b/src/player_ragdoll.h index 3a67ee6..b47bdca 100644 --- a/src/player_ragdoll.h +++ b/src/player_ragdoll.h @@ -58,7 +58,7 @@ enum player_die_type { k_player_die_type_water }; -void player_ragdoll_init(void); +void player_ragdoll_register(void); void player_init_ragdoll_bone_collider( struct skeleton_bone *bone, struct ragdoll_part *rp ); u32 ragdoll_bone_parent( struct player_ragdoll *rd, u32 bone_id ); diff --git a/src/player_remote.c b/src/player_remote.c index e1e1aff..cd846ef 100644 --- a/src/player_remote.c +++ b/src/player_remote.c @@ -1248,11 +1248,15 @@ static int cmd_network_info( int argc, const char *argv[] ) return 1; } -void remote_players_init(void) +void remote_players_register(void) { vg_console_reg_cmd( "network_info", cmd_network_info, NULL ); vg_console_reg_cmd( "add_test_players", remote_players_randomize, NULL ); vg_console_reg_var( "k_show_own_name", &k_show_own_name, k_var_dtype_i32, 0 ); +} + +void remote_players_init(void) +{ for( u32 i=0; iubo_lighting ); } -void world_render_init(void) +void world_render_register(void) { VG_VAR_F32( k_day_length ); VG_VAR_I32( k_debug_light_indices ); @@ -50,7 +50,10 @@ void world_render_init(void) VG_VAR_I32( k_light_editor ); vg_console_reg_cmd( "set_time", ccmd_set_time, NULL ); vg_console_reg_cmd( "render_portals", ccmd_render_portals, NULL ); +} +void world_render_init(void) +{ vg_info( "Loading world resources\n" ); vg_stack_clear( &vg.scratch ); diff --git a/src/world_render.h b/src/world_render.h index 347cea7..4f329d5 100644 --- a/src/world_render.h +++ b/src/world_render.h @@ -56,6 +56,7 @@ struct world_render } extern world_render; +void world_render_register(void); void world_render_init(void); void world_prerender( world_instance *world ); -- 2.25.1