From 5bb71fef0e63780f95f403fb14b824778cecbe9b Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 18 Apr 2024 22:06:59 +0100 Subject: [PATCH] Add some challenges to the world map --- input.h | 4 +- maps_src/dev_tutorial/main.mdl | Bin 4325056 -> 4325192 bytes menu.c | 149 ++++++++++++++++++++++++++++++--- menu.h | 48 ----------- world_map.c | 7 ++ world_routes_ui.c | 2 + 6 files changed, 147 insertions(+), 63 deletions(-) diff --git a/input.h b/input.h index dc89f8b..131ab8c 100644 --- a/input.h +++ b/input.h @@ -88,13 +88,11 @@ static vg_input_op *input_button_list[] = { INPUT_BASIC( SDLK_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT ), [k_srbind_world_right] = INPUT_BASIC( SDLK_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT ), -[k_srbind_home] = INPUT_BASIC( SDLK_h, SDL_CONTROLLER_BUTTON_Y ), [k_srbind_mup] = INPUT_BASIC( SDLK_UP, SDL_CONTROLLER_BUTTON_DPAD_UP ), [k_srbind_mdown] = INPUT_BASIC( SDLK_DOWN, SDL_CONTROLLER_BUTTON_DPAD_DOWN ), [k_srbind_mback] = INPUT_BASIC( SDLK_ESCAPE, SDL_CONTROLLER_BUTTON_B ), [k_srbind_mopen] = INPUT_BASIC( SDLK_ESCAPE, SDL_CONTROLLER_BUTTON_START ), -[k_srbind_mhub] = (vg_input_op[]){ vg_joy_button, SDL_CONTROLLER_BUTTON_Y, - vg_end }, +[k_srbind_mhub] = INPUT_BASIC( SDLK_h, SDL_CONTROLLER_BUTTON_Y ), [k_srbind_maccept] = (vg_input_op[]){ vg_keyboard, SDLK_e, vg_gui_visible, 0, vg_keyboard, SDLK_RETURN, vg_keyboard, SDLK_RETURN2, diff --git a/maps_src/dev_tutorial/main.mdl b/maps_src/dev_tutorial/main.mdl index 4539d9ff2266c82dd032a91e2a57b7dedd64e414..9a24db8a1a43ea4d5405799d3cea38b399aae48b 100644 GIT binary patch delta 12909 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 R2nquQK?!EdTSA;W{y&Lce1QM} delta 10827 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 ); i ++ ) + { + ent_region *region = mdl_arritm( &world->ent_region, i ); + + if( !region->zone_volume ) + continue; + + const char *title = mdl_pstr( &world->meta, region->pstr_title ); + ui_font_face( &vgf_default_large ); + + ui_rect title_box; + menu_standard_widget( stat_panel, title_box, 1 ); + + stat_panel[0] += 16; + stat_panel[2] -= 16; + ui_font_face( &vgf_default_small ); + + ent_volume *volume = mdl_arritm(&world->ent_volume, + mdl_entity_id_id(region->zone_volume)); + + u32 combined = k_ent_route_flag_achieve_gold | + k_ent_route_flag_achieve_silver; + + char buf[128]; + vg_str str; + + for( u32 j=0; jent_route); j ++ ) + { + ent_route *route = mdl_arritm(&world->ent_route, j ); + + v3f local; + m4x3_mulv( volume->to_local, route->board_transform[3], local ); + if( !((fabsf(local[0]) <= 1.0f) && + (fabsf(local[1]) <= 1.0f) && + (fabsf(local[2]) <= 1.0f)) ) + { + continue; + } + + combined &= route->flags; + + vg_strnull( &str, buf, sizeof(buf) ); + vg_strcat( &str, mdl_pstr(&world->meta, route->pstr_name)); + + if( route->flags & k_ent_route_flag_achieve_silver ) + vg_strcat( &str, " \xb3"); + if( route->flags & k_ent_route_flag_achieve_gold ) + vg_strcat( &str, "\xb3"); + + ui_rect r; + ui_standard_widget( stat_panel, r, 1 ); + ui_text( r, buf, 1, k_ui_align_middle_left, + medal_colour(route->flags) ); + } + + for( u32 j=0; jent_challenge); j ++ ) + { + ent_challenge *challenge = mdl_arritm( &world->ent_challenge, j ); + + v3f local; + m4x3_mulv( volume->to_local, challenge->transform.co, local ); + if( !((fabsf(local[0]) <= 1.0f) && + (fabsf(local[1]) <= 1.0f) && + (fabsf(local[2]) <= 1.0f)) ) + { + continue; + } + + vg_strnull( &str, buf, sizeof(buf) ); + vg_strcat( &str, mdl_pstr(&world->meta, challenge->pstr_alias)); + + u32 flags = 0x00; + if( challenge->status ) + { + flags |= k_ent_route_flag_achieve_gold; + flags |= k_ent_route_flag_achieve_silver; + vg_strcat( &str, " \xb3\xb3" ); + } + + combined &= flags; + + ui_rect r; + ui_standard_widget( stat_panel, r, 1 ); + ui_text( r, buf, 1, k_ui_align_middle_left, medal_colour(flags) ); + } + + stat_panel[0] -= 16; + stat_panel[2] += 16; + + u32 title_col = 0; + if( combined & k_ent_route_flag_achieve_gold ) + title_col = ui_colour( k_ui_yellow ); + else if( combined & k_ent_route_flag_achieve_silver ) + title_col = ui_colour( k_ui_fg ); + + menu_heading( title_box, title, title_col ); + } + + vs[2].co[1] = stat_panel[1]; + vs[3].co[1] = stat_panel[1]; + } } else { @@ -573,20 +698,20 @@ void menu_gui(void) ui_font_face( &vgf_default_large ); list[1] -= 8; - menu_heading( list, "Game" ); + menu_heading( list, "Game", 0 ); menu_checkbox( list, *row == 0, "Show controls overlay", &control_overlay.enabled ); menu_checkbox( list, *row == 1, "Auto connect to global server", &network_client.auto_connect ); - menu_heading( list, "Audio/Video" ); + menu_heading( list, "Audio/Video", 0 ); menu_slider( list, *row == 2, "Volume", 0, 100, &vg_audio.external_global_volume, "%.f%%" ); menu_slider( list, *row == 3, "Resolution", 0, 100, &k_render_scale, "%.f%%" ); menu_checkbox( list, *row == 4, "Motion Blur", &k_blur_effect ); - menu_heading( list, "Camera" ); + menu_heading( list, "Camera", 0 ); menu_slider( list, *row == 5, "Fov", 97, 135, &k_fov, "%.1f\xb0" ); menu_slider( list, *row == 6, "Cam Height", -0.4f, +1.4f, @@ -597,7 +722,7 @@ void menu_gui(void) ui_rect end = { list[0], list[1]+list[3]-64, list[2], 72 }; ui_font_face( &vgf_default_small ); - menu_heading( end, "Advanced" ); + menu_heading( end, "Advanced", 0 ); if( menu_button( end, *row == 8, "Open Engine Settings" ) ) { vg_settings_open(); @@ -611,7 +736,7 @@ void menu_gui(void) ui_font_face( &vgf_default_large ); list[1] -= 8; - menu_heading( list, "Controls" ); + menu_heading( list, "Controls", 0 ); if( menu_button( list, *row == 0, "Skating \xb2" ) ) { } @@ -619,7 +744,7 @@ void menu_gui(void) { } - menu_heading( list, "Workshop" ); + menu_heading( list, "Workshop", 0 ); if( menu_button( list, *row == 2, "Create a Board \xb2" ) ) { } diff --git a/menu.h b/menu.h index 6cbe297..237a82a 100644 --- a/menu.h +++ b/menu.h @@ -42,51 +42,3 @@ void menu_at_begin(void); void menu_gui(void); void menu_open( enum menu_page page ); bool menu_viewing_map(void); - -#if 0 -#define MENU_STACK_SIZE 8 - -#include "vg/vg_engine.h" -#include "entity.h" - -struct global_menu -{ - int credits_open; - int disable_open; - i32 skip_starter; - - u32 page, /* current page index */ - page_depth, - controls_page_id; - - ent_menuitem *ctr_kbm, - *ctr_deck, - *ctr_ps, - *ctr_steam, - *ctr_xbox; - f32 slider_offset; - - struct page_stack_frame { - u32 page; - ent_menuitem *loc; - ent_camera *cam; - } - page_stack[ MENU_STACK_SIZE ]; - - ent_menuitem *loc; - ent_camera *cam; - vg_camera view; - - mdl_context model; - GLuint *textures; - glmesh mesh; - - mdl_array_ptr items, markers, cameras; -} -extern menu; -void menu_close(void); -void menu_open_page( const char *name, - enum ent_menuitem_stack_behaviour stackmode ); -void menu_link(void); -void menu_render(void); -#endif diff --git a/world_map.c b/world_map.c index 13de85c..2799428 100644 --- a/world_map.c +++ b/world_map.c @@ -84,6 +84,13 @@ static void world_map_help_normal(void) if( gui_new_helper( input_button_list[k_srbind_mback], &text ) ) vg_strcat( &text, "Exit" ); + + if( world_static.instances[1].status == k_world_status_loaded ) + { + if( gui_new_helper( input_button_list[k_srbind_mhub], &text ) ) + vg_strcat( &text, world_static.active_instance? + "Go to Hub": "Go to Active World" ); + } } void world_map_pre_update(void) diff --git a/world_routes_ui.c b/world_routes_ui.c index a4e2f10..e367e66 100644 --- a/world_routes_ui.c +++ b/world_routes_ui.c @@ -151,6 +151,8 @@ static void ent_route_imgui( world_instance *world, ent_route *route, void world_routes_imgui( world_instance *world ) { + if( skaterift.activity == k_skaterift_menu ) return; + ui_point cursor = { 4, 4 }; for( u32 i=0; ient_route); i++ ){ ent_route_imgui( world, mdl_arritm( &world->ent_route, i ), cursor ); -- 2.25.1