X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=2879ef9d117e43cd37443fc6c95904670d56e421;hb=bc40c302f1b8313bdd3c773fcfa2f850511c4634;hp=98c5797d429a19eb599805df412d7bc4da99b069;hpb=4af3f141e332ae426ecda80ca4ccd8cf4e84d0cb;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index 98c5797..2879ef9 100644 --- a/skaterift.c +++ b/skaterift.c @@ -11,8 +11,12 @@ * ============================================================================= */ +#include "skaterift_imgui_dev.c" + +#if 0 + #define SR_NETWORKED -//#define VG_DEVWINDOW +#define VG_DEVWINDOW #include "common.h" #include "conf.h" #include "steam.h" @@ -22,9 +26,11 @@ #include "font.h" #include "player.h" +#include "entity.c" + VG_STATIC struct player_avatar localplayer_avatar; -VG_STATIC glmesh localplayer_meshes[3]; -vg_tex2d localplayer_texture = { .path = "textures/ch_gradient.qoi" }; +VG_STATIC struct player_model localplayer_models[3]; +VG_STATIC int skaterift_status = 0; #include "network.h" #include "menu.h" @@ -88,50 +94,32 @@ vg_info(" ' ' '--' [] '----- '----- ' ' '---' " VG_STATIC void load_playermodels(void) { - vg_linear_clear( vg_mem.scratch ); - - /* - * load in other player models. This may need to be more sophisticated in - * the futre if we have more of these guys - */ - mdl_context ctx_default, - ctx_outlaw, - ctx_jordan; - - mdl_open( &ctx_default, "models/ch_new.mdl", vg_mem.scratch ); - mdl_load_metadata_block( &ctx_default, vg_mem.scratch ); - mdl_load_mesh_block( &ctx_default, vg_mem.scratch ); - mdl_close( &ctx_default ); - - mdl_open( &ctx_outlaw, "models/ch_outlaw.mdl", vg_mem.scratch ); - mdl_load_metadata_block( &ctx_outlaw, vg_mem.scratch ); - mdl_load_mesh_block( &ctx_outlaw, vg_mem.scratch ); - mdl_close( &ctx_outlaw ); - - mdl_open( &ctx_jordan, "models/ch_jordan.mdl", vg_mem.scratch ); - mdl_load_metadata_block( &ctx_jordan, vg_mem.scratch ); - mdl_load_mesh_block( &ctx_jordan, vg_mem.scratch ); - mdl_close( &ctx_jordan ); + player_model_load( &localplayer_models[0], "models/ch_new.mdl" ); + player_model_load( &localplayer_models[1], "models/ch_outlaw.mdl" ); + player_model_load( &localplayer_models[2], "models/ch_jordan.mdl" ); - vg_acquire_thread_sync(); - { - mdl_unpack_glmesh( &ctx_default, &localplayer_meshes[0] ); - mdl_unpack_glmesh( &ctx_outlaw, &localplayer_meshes[1] ); - mdl_unpack_glmesh( &ctx_jordan, &localplayer_meshes[2] ); - } - vg_release_thread_sync(); + /* load default board */ +#if 0 + player_board_load( &localplayer_boards[0], + "models/boards/skaterift_fish.mdl" ); +#endif /* FIXME: hack */ shader_model_character_view_register(); - vg_acquire_thread_sync(); - { - vg_tex2d_init( (vg_tex2d *[]){ &localplayer_texture }, 1 ); - } - vg_release_thread_sync(); + shader_model_board_view_register(); + shader_model_entity_register(); } void temp_update_playermodel(void){ - player__use_mesh( &localplayer, &localplayer_meshes[cl_playermdl_id] ); + player__use_model( &localplayer, &localplayer_models[cl_playermdl_id] ); +} + +VG_STATIC void async_skaterift_complete( void *payload, u32 size ) +{ + skaterift_status = 1; + + localplayer.viewable_world = get_active_world(); + localplayer_cmd_respawn( 1, (const char *[]){ "start" } ); } VG_STATIC void vg_load(void) @@ -146,6 +134,7 @@ VG_STATIC void vg_load(void) vg_loader_step( player_init, NULL ); vg_loader_step( player_ragdoll_init, NULL ); + vg_loader_step( skateshop_init, NULL ); /* ----------------- */ vg_loader_step( load_playermodels, NULL ); @@ -154,8 +143,8 @@ VG_STATIC void vg_load(void) player__create( &localplayer ); player_avatar_load( &localplayer_avatar, "models/ch_new.mdl" ); player__use_avatar( &localplayer, &localplayer_avatar ); - player__use_mesh( &localplayer, &localplayer_meshes[cl_playermdl_id] ); - player__use_texture( &localplayer, &localplayer_texture ); + player__use_model( &localplayer, &localplayer_models[cl_playermdl_id] ); + //localplayer.board = &localplayer_boards[0]; player__bind( &localplayer ); /* --------------------- */ @@ -167,7 +156,7 @@ VG_STATIC void vg_load(void) /* load home world */ -#if 0 +#if 1 world_load( 0, "maps/mp_spawn.mdl" ); #else world_load( 0, "maps/mp_mtzero.mdl" ); @@ -181,12 +170,8 @@ VG_STATIC void vg_load(void) #endif vg_console_load_autos(); -} -VG_STATIC void vg_start(void) -{ - localplayer.viewable_world = get_active_world(); - localplayer_cmd_respawn( 1, (const char *[]){ "start" } ); + vg_async_call( async_skaterift_complete, NULL, 0 ); } VG_STATIC void draw_origin_axis(void) @@ -200,20 +185,24 @@ VG_STATIC void vg_update(void) { steam_update(); - if( vg.is_loaded ){ + skaterift_preupdate_inputs(); + + if( skaterift_status == 1 ){ draw_origin_axis(); network_update(); player__pre_update( &localplayer ); + global_skateshop_preupdate(); world_update( get_active_world(), localplayer.rb.co ); audio_ambient_sprites_update( get_active_world(), localplayer.rb.co ); + //gui_helper_action( localplayer.input_use, "\x7f Hello \x1f""A \x1e\x84" ); } } VG_STATIC void vg_update_fixed(void) { - if( vg.is_loaded ){ + if( skaterift_status == 1 ){ world_routes_fixedupdate( get_active_world() ); player__update( &localplayer ); @@ -246,7 +235,7 @@ VG_STATIC void vg_update_fixed(void) VG_STATIC void vg_update_post(void) { - if( vg.is_loaded ){ + if( skaterift_status == 1 ){ player__post_update( &localplayer ); float dist; @@ -418,6 +407,9 @@ VG_STATIC void render_main_game(void) main_camera.fov = vg_lerpf( localplayer.cam.fov, menu_smooth_fov, menu_opacity ); + + main_camera.fov = vg_lerpf( main_camera.fov, 90.0f, + global_skateshop.factive ); main_camera.nearz = 0.1f; main_camera.farz = 2100.0f; @@ -459,6 +451,11 @@ VG_STATIC void render_main_game(void) VG_STATIC void vg_render(void) { + if( skaterift_status == 0 ){ + _vg_loader_render(); + return; + } + glBindFramebuffer( GL_FRAMEBUFFER, 0 ); glViewport( 0,0, vg.window_x, vg.window_y ); @@ -476,10 +473,15 @@ VG_STATIC void vg_render(void) glDisable(GL_DEPTH_TEST); vg_lines_drawall(); glViewport( 0,0, vg.window_x, vg.window_y ); + gui_draw(); } VG_STATIC void vg_ui(void) { + if( skaterift_status == 0 ){ + return; + } + #if 0 player__im_gui( &localplayer ); #endif @@ -488,3 +490,5 @@ VG_STATIC void vg_ui(void) render_view_framebuffer_ui(); } + +#endif