X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=b07eadb318ec7488816f3573830ade349bae2636;hb=c1e54530e1b29e131aad80e242faaf0c0cfee0b0;hp=aa86fdca47b50304a95c1939e4bebcf1c37dc10f;hpb=157e4700f0557248a606555dcc7960404ac1c7f0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index aa86fdc..b07eadb 100644 --- a/skaterift.c +++ b/skaterift.c @@ -59,6 +59,33 @@ static struct player_avatar localplayer_avatar; int main( int argc, char *argv[] ){ +#if 0 + u8 buf[ 512 ]; + bitpack_ctx ctx = { + .buffer = buf, + .buffer_len = 512, + .bytes = 0, + .mode = k_bitpack_compress + }; + + v4f q = { 0.388, -0.565, 0.515, 0.515 }; + vg_info( "q: %f %f %f %f\n", q[0], q[1], q[2], q[3] ); + + /* compress */ + bitpack_qquat( &ctx, q ); + + vg_info( "compressed bytes: %u\n", ctx.bytes ); + + /* decompress */ + ctx.bytes = 0; + ctx.mode = k_bitpack_decompress; + + bitpack_qquat( &ctx, q ); + vg_info( "q: %f %f %f %f\n", q[0], q[1], q[2], q[3] ); + + return 0; +#endif + vg_mem.use_libc_malloc = 0; vg_set_mem_quota( 160*1024*1024 ); vg_enter( argc, argv, "Voyager Game Engine" ); @@ -205,7 +232,8 @@ static void vg_load(void){ /* FIXME FIXME FIXME FIXME FIXME */ u32 mtx_size = sizeof(m4x3f)*localplayer_avatar.sk.bone_count; localplayer.final_mtx = vg_linear_alloc( vg_mem.rtmemory, mtx_size ); - netplayers.final_mtx = vg_linear_alloc( vg_mem.rtmemory, mtx_size*32 ); + netplayers.final_mtx = vg_linear_alloc( vg_mem.rtmemory, + mtx_size*NETWORK_MAX_PLAYERS ); player_model_load( &localplayer.fallback_model, "models/ch_none.mdl" ); player__bind(); @@ -282,7 +310,7 @@ static void vg_load(void){ skaterift_restore_state(); vg_loader_step( NULL, skaterift_autosave_synchronous ); - board_processview_thread(NULL); + //board_processview_thread(NULL); vg_async_call( async_call_ready, NULL, 0 ); } @@ -307,6 +335,7 @@ static void vg_pre_update(void){ skaterift_change_client_world_preupdate(); draw_origin_axis(); + skateshop_autostart_loading(); network_update(); /* time rate */ @@ -455,37 +484,6 @@ static void render_player_transparent(void){ player__render( &small_cam ); } -static void animate_remote_players(void){ - for( u32 i=0; iactive ) continue; - if( player->subsystem > k_player_subsystem_max ) continue; - - struct player_subsystem_interface *sys = - player_subsystems[player->subsystem]; - - struct player_avatar *av = localplayer.playeravatar; - - player_pose pose; - sys->pose( &player->animdata, &pose ); - apply_full_skeleton_pose( &av->sk, &pose, - &netplayers.final_mtx[ av->sk.bone_count*i ] ); - } -} - -static void render_remote_players( world_instance *world, camera *cam ){ - for( u32 i=0; iactive ) continue; - - struct player_avatar *av = localplayer.playeravatar; - - struct player_model *model = &localplayer.fallback_model; - render_playermodel( cam, world, 0, model, &av->sk, - &netplayers.final_mtx[ av->sk.bone_count*i ] ); - } -} - static void render_scene(void){ /* Draw world */ glEnable( GL_DEPTH_TEST ); @@ -675,7 +673,7 @@ static void vg_gui(void){ skaterift_replay_imgui(); workshop_form_gui(); render_view_framebuffer_ui(); - remote_player_network_imgui(); + remote_player_network_imgui( vg.pv ); }