From: hgn Date: Wed, 31 May 2023 16:43:04 +0000 (+0100) Subject: boards and tht X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=7796f3f18ba78b42599f199523fdb0fdabc5efa1;hp=219e917c414052ad3adbb4e9a652b55757a7b6a9;p=carveJwlIkooP6JGAAIwe30JlM.git boards and tht --- diff --git a/boards_src/skaterift_fract/addon.inf b/boards_src/skaterift_fract/addon.inf new file mode 100644 index 0000000..745e972 Binary files /dev/null and b/boards_src/skaterift_fract/addon.inf differ diff --git a/boards_src/skaterift_fract/board.mdl b/boards_src/skaterift_fract/board.mdl new file mode 100644 index 0000000..cd24ab9 Binary files /dev/null and b/boards_src/skaterift_fract/board.mdl differ diff --git a/boards_src/skaterift_licco/addon.inf b/boards_src/skaterift_licco/addon.inf new file mode 100644 index 0000000..f96a599 Binary files /dev/null and b/boards_src/skaterift_licco/addon.inf differ diff --git a/boards_src/skaterift_licco/board.mdl b/boards_src/skaterift_licco/board.mdl new file mode 100644 index 0000000..14c6f7a Binary files /dev/null and b/boards_src/skaterift_licco/board.mdl differ diff --git a/boards_src/skaterift_long/addon.inf b/boards_src/skaterift_long/addon.inf new file mode 100644 index 0000000..4e00fd3 Binary files /dev/null and b/boards_src/skaterift_long/addon.inf differ diff --git a/boards_src/skaterift_long/board.mdl b/boards_src/skaterift_long/board.mdl new file mode 100644 index 0000000..81468f9 Binary files /dev/null and b/boards_src/skaterift_long/board.mdl differ diff --git a/boards_src/skaterift_shark/addon.inf b/boards_src/skaterift_shark/addon.inf new file mode 100644 index 0000000..f9be7a0 Binary files /dev/null and b/boards_src/skaterift_shark/addon.inf differ diff --git a/boards_src/skaterift_shark/board.mdl b/boards_src/skaterift_shark/board.mdl new file mode 100644 index 0000000..9213919 Binary files /dev/null and b/boards_src/skaterift_shark/board.mdl differ diff --git a/boards_src/skaterift_spiral/addon.inf b/boards_src/skaterift_spiral/addon.inf new file mode 100644 index 0000000..fd1733b Binary files /dev/null and b/boards_src/skaterift_spiral/addon.inf differ diff --git a/boards_src/skaterift_spiral/board.mdl b/boards_src/skaterift_spiral/board.mdl new file mode 100644 index 0000000..28459a8 Binary files /dev/null and b/boards_src/skaterift_spiral/board.mdl differ diff --git a/boards_src/skaterift_striped/addon.inf b/boards_src/skaterift_striped/addon.inf new file mode 100644 index 0000000..40dd0bf Binary files /dev/null and b/boards_src/skaterift_striped/addon.inf differ diff --git a/boards_src/skaterift_striped/board.mdl b/boards_src/skaterift_striped/board.mdl new file mode 100644 index 0000000..3283702 Binary files /dev/null and b/boards_src/skaterift_striped/board.mdl differ diff --git a/boards_src/test/addon.inf b/boards_src/test/addon.inf deleted file mode 100644 index 0b5ceb2..0000000 Binary files a/boards_src/test/addon.inf and /dev/null differ diff --git a/boards_src/test/preview.jpg b/boards_src/test/preview.jpg deleted file mode 100644 index 27c2667..0000000 Binary files a/boards_src/test/preview.jpg and /dev/null differ diff --git a/boards_src/test/skaterift_fish.mdl b/boards_src/test/skaterift_fish.mdl deleted file mode 100644 index f29acf1..0000000 Binary files a/boards_src/test/skaterift_fish.mdl and /dev/null differ diff --git a/build.c b/build.c index 6af9096..558299b 100644 --- a/build.c +++ b/build.c @@ -30,6 +30,18 @@ void build_server( enum compiler compiler ) compiled_something = 1; } +void write_msg( vg_msg *msg, const char *path ){ + FILE *fp = fopen( path, "wb" ); + if( !fp ){ + vg_error( "Cannot open %s for writing.\n", path ); + exit(0); + } + + fwrite( msg->buf, msg->cur, 1, fp ); + fclose( fp ); + vg_success( "Written %s (%ub)\n", path, msg->cur ); +} + void build_shaders(void); void build_game( enum compiler compiler ) { @@ -56,14 +68,72 @@ void build_game( enum compiler compiler ) u8 descriptor_buf[ 512 ]; vg_msg descriptor; + + { + vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg_frame( &descriptor, "workshop" ); + vg_msg_wkvstr( &descriptor, "title", "Longboard" ); + vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_end_frame( &descriptor ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_long/addon.inf" ); + } + + { + vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg_frame( &descriptor, "workshop" ); + vg_msg_wkvstr( &descriptor, "title", "Fractal" ); + vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_end_frame( &descriptor ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_fract/addon.inf" ); + } + + { + vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg_frame( &descriptor, "workshop" ); + vg_msg_wkvstr( &descriptor, "title", "Striped" ); + vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_end_frame( &descriptor ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_striped/addon.inf" ); + } + + { vg_msg_init( &descriptor, descriptor_buf, 512 ); vg_msg_frame( &descriptor, "workshop" ); - vg_msg_wkvstr( &descriptor, "title", "Understate DIY Park" ); + vg_msg_wkvstr( &descriptor, "title", "Licco" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_world); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); vg_msg_end_frame( &descriptor ); - vg_msg_wkvstr( &descriptor, "location", "USA" ); - vg_msg_wkvstr( &descriptor, "content", "main.mdl" ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_licco/addon.inf" ); + } + + { + vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg_frame( &descriptor, "workshop" ); + vg_msg_wkvstr( &descriptor, "title", "Hypno" ); + vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_end_frame( &descriptor ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_spiral/addon.inf" ); + } + + { + vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg_frame( &descriptor, "workshop" ); + vg_msg_wkvstr( &descriptor, "title", "Shark" ); + vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); + vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_end_frame( &descriptor ); + vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); + write_msg( &descriptor, "boards_src/skaterift_shark/addon.inf" ); + } /* method 2 */ #if 0 diff --git a/conf.h b/conf.h index 63b635a..e00c42b 100644 --- a/conf.h +++ b/conf.h @@ -12,6 +12,9 @@ VG_STATIC i32 cl_blur = 1, cl_playermdl_id = 0, cl_invert_y = 0; +static f32 cl_cinema = 0; +static i32 cl_cinema_fixed = 0; + VG_STATIC void g_conf_init(void) { VG_VAR_F32( cl_blur_strength, flags=VG_VAR_PERSISTENT ); @@ -22,6 +25,8 @@ VG_STATIC void g_conf_init(void) vg_console_reg_var( "invert_y", &cl_invert_y, k_var_dtype_i32, VG_VAR_PERSISTENT ); vg_console_reg_var( "fov", &cl_fov, k_var_dtype_f32, VG_VAR_PERSISTENT ); + vg_console_reg_var( "cinema", &cl_cinema, k_var_dtype_f32, 0 ); + vg_console_reg_var( "cinema_fixed", &cl_cinema_fixed, k_var_dtype_i32, 0 ); } #endif /* CONF_H */ diff --git a/ent_skateshop.c b/ent_skateshop.c index 47d8de2..e1e1548 100644 --- a/ent_skateshop.c +++ b/ent_skateshop.c @@ -232,13 +232,17 @@ VG_STATIC void skateshop_op_world_scan(void){ vg_loader_start( world_scan_thread, NULL ); } +VG_STATIC void board_processview_thread( void *_args ){ + workshop_visibile_load_loop(); + skaterift_end_op(); +} + VG_STATIC void board_scan_thread( void *_args ){ addon_mount_content_folder( k_workshop_file_type_board, "boards", ".mdl" ); addon_mount_workshop_items(); vg_async_call( async_addon_reg_update, NULL, 0 ); vg_async_stall(); - workshop_visibile_load_loop(); - skaterift_end_op(); + board_processview_thread(NULL); } VG_STATIC void skateshop_op_board_scan(void){ @@ -246,6 +250,11 @@ VG_STATIC void skateshop_op_board_scan(void){ vg_loader_start( board_scan_thread, NULL ); } +VG_STATIC void skateshop_op_processview(void){ + skaterift_begin_op( k_async_op_board_scan ); + vg_loader_start( board_processview_thread, NULL ); +} + /* * Regular stuff * ----------------------------------------------------------------------------- @@ -438,6 +447,8 @@ VG_STATIC void global_skateshop_preupdate(void) * ---------------------- */ + u32 opage = global_skateshop.selected_board_id/SKATESHOP_VIEW_SLOT_MAX; + if( button_down( k_srbind_mleft ) ){ if( global_skateshop.selected_board_id > 0 ){ global_skateshop.selected_board_id --; @@ -452,7 +463,13 @@ VG_STATIC void global_skateshop_preupdate(void) } } - if( selected_cache && button_down( k_srbind_maccept ) ){ + u32 npage = global_skateshop.selected_board_id/SKATESHOP_VIEW_SLOT_MAX; + + if( opage != npage ){ + skateshop_update_viewpage(); + skateshop_op_processview(); + } + else if( selected_cache && button_down( k_srbind_maccept ) ){ vg_info( "chose board from skateshop (%u)\n", global_skateshop.selected_board_id ); diff --git a/maps_src/mp_mtzero/main.mdl b/maps_src/mp_mtzero/main.mdl index 45ebbbf..eff6386 100644 Binary files a/maps_src/mp_mtzero/main.mdl and b/maps_src/mp_mtzero/main.mdl differ diff --git a/maps_src/mp_spawn/main.mdl b/maps_src/mp_spawn/main.mdl index e256775..ba1d847 100644 Binary files a/maps_src/mp_spawn/main.mdl and b/maps_src/mp_spawn/main.mdl differ diff --git a/player_common.c b/player_common.c index 0c76d8d..b551875 100644 --- a/player_common.c +++ b/player_common.c @@ -240,6 +240,35 @@ VG_STATIC void player__cam_iterate( player_instance *player ) player->cam.fov = vg_lerpf( player->cam.fov, player->cam_override_fov, player->cam_override_strength ); + + if( cl_cinema >= 0.0001f ){ + ent_camera *cam = NULL; + f32 min_dist = cl_cinema; + + world_instance *world = player->viewable_world; + for( u32 i=0; ient_camera); i++ ){ + ent_camera *c = mdl_arritm(&world->ent_camera,i); + + f32 dist = v3_dist( c->transform.co, player->rb.co ); + + if( dist < min_dist ){ + min_dist = dist; + cam = c; + } + } + + if( cam ){ + player->cam.fov = cam->fov; + v3_copy( cam->transform.co, player->cam.pos ); + v3f v0; + if( cl_cinema_fixed ) + mdl_transform_vector( &cam->transform, (v3f){0.0f,-1.0f,0.0f}, v0 ); + else v3_sub( player->rb.co, cam->transform.co, v0 ); + m3x3_mulv( player->invbasis, v0, v0 ); + player_vector_angles( player->cam.angles, v0, 1.0f, 0.0f ); + } + } + /* portal transitions */ player_camera_portal_correction( player ); } diff --git a/skaterift.c b/skaterift.c index 603e98a..50e780f 100644 --- a/skaterift.c +++ b/skaterift.c @@ -14,7 +14,7 @@ #if 1 #define SR_NETWORKED -#define VG_DEVWINDOW +//#define VG_DEVWINDOW /* * system headers