X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_miniworld.c;h=024fa6c0bc9153ad76d2075d7453efea57d74cd9;hb=fbc68c65e01838feb77f47b30994b45fcc39ebaf;hp=c56fa180488f09f0b67be75feed49d56448b701d;hpb=7a6ce9a58463f0123223f2b379d90fb6305bad8f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_miniworld.c b/ent_miniworld.c index c56fa18..024fa6c 100644 --- a/ent_miniworld.c +++ b/ent_miniworld.c @@ -5,26 +5,6 @@ #include "gui.h" #include "menu.h" -static void miniworld_helper_default(void){ - gui_helper_clear(); - vg_str text; - if( gui_new_helper( input_button_list[k_srbind_miniworld_resume], &text )) - vg_strcat( &text, "Resume" ); - - if( gui_new_helper( input_button_list[k_srbind_miniworld_teleport],&text)) - vg_strcat( &text, "Teleport" ); -} - -static void miniworld_helper_tele(void){ - gui_helper_clear(); - vg_str text; - if( gui_new_helper( input_button_list[k_srbind_miniworld_resume], &text )) - vg_strcat( &text, "Confirm" ); - - if( gui_new_helper( input_button_list[k_srbind_mback],&text)) - vg_strcat( &text, "Cancel" ); -} - static void ent_miniworld_call( world_instance *world, ent_call *call ){ ent_miniworld *miniworld = mdl_arritm( &world->ent_miniworld, mdl_entity_id_id(call->id) ); @@ -37,7 +17,12 @@ static void ent_miniworld_call( world_instance *world, ent_call *call ){ mdl_transform_m4x3( &miniworld->transform, global_miniworld.mmdl ); global_miniworld.active = miniworld; - miniworld_helper_default(); + + gui_helper_clear(); + vg_str text; + + if( gui_new_helper( input_button_list[k_srbind_miniworld_resume], &text )) + vg_strcat( &text, "Enter World" ); } else if( call->function == 1 ){ global_miniworld.active = NULL; @@ -51,7 +36,7 @@ static void ent_miniworld_call( world_instance *world, ent_call *call ){ } } -static void miniworld_icon( camera *cam, enum gui_icon icon, v3f pos ){ +static void miniworld_icon( camera *cam, enum gui_icon icon, v3f pos, f32 size){ m4x3f mmdl; v3_copy( cam->transform[2], mmdl[2] ); mmdl[2][1] = 0.0f; @@ -61,7 +46,7 @@ static void miniworld_icon( camera *cam, enum gui_icon icon, v3f pos ){ m4x3_mulv( global_miniworld.mmdl, pos, mmdl[3] ); shader_model_font_uMdl( mmdl ); - shader_model_font_uOffset( (v4f){0,0,0,20} ); + shader_model_font_uOffset( (v4f){0,0,0,20.0f*size} ); m4x4f m4mdl; m4x3_expand( mmdl, m4mdl ); @@ -102,7 +87,7 @@ static void ent_miniworld_render( world_instance *host_world, camera *cam ){ return; render_world_override( dest_world, host_world, global_miniworld.mmdl, cam, - global_miniworld.dest_spawn ); + NULL, (v4f){dest_world->tar_min,10000.0f,0.0f,0.0f} ); render_world_routes( dest_world, host_world, global_miniworld.mmdl, cam, 0, 1 ); @@ -116,6 +101,9 @@ static void ent_miniworld_render( world_instance *host_world, camera *cam ){ shader_model_font_uTexMain( 0 ); shader_model_font_uColour( (v4f){1,1,1,1} ); + miniworld_icon( cam, k_gui_icon_player, dest_world->player_co, + 1.0f + sinf(vg.time)*0.2f ); + for( u32 i=0; ient_challenge); i++ ){ ent_challenge *challenge = mdl_arritm( &dest_world->ent_challenge, i ); @@ -123,16 +111,19 @@ static void ent_miniworld_render( world_instance *host_world, camera *cam ){ if( challenge->status ) icon = k_gui_icon_tick; - miniworld_icon( cam, icon, challenge->transform.co ); + miniworld_icon( cam, icon, challenge->transform.co, 1.0f ); } - for( u32 i=0; ient_skateshop); i++ ){ - ent_skateshop *shop = mdl_arritm( &dest_world->ent_skateshop, i ); - if( shop->type == k_skateshop_type_boardshop ){ - miniworld_icon( cam, k_gui_icon_board, shop->transform.co ); + for( u32 i=0; ient_route); i++ ){ + ent_route *route = mdl_arritm( &dest_world->ent_route, i ); + + if( route->flags & k_ent_route_flag_achieve_gold ){ + miniworld_icon( cam, k_gui_icon_rift_run_gold, + route->board_transform[3],1.0f); } - else if( shop->type == k_skateshop_type_worldshop ){ - miniworld_icon( cam, k_gui_icon_world, shop->transform.co ); + else if( route->flags & k_ent_route_flag_achieve_silver ){ + miniworld_icon( cam, k_gui_icon_rift_run_silver, + route->board_transform[3],1.0f); } } @@ -143,7 +134,7 @@ static void ent_miniworld_render( world_instance *host_world, camera *cam ){ v4_copy( route->colour, colour ); v3_muls( colour, 1.6666f, colour ); shader_model_font_uColour( colour ); - miniworld_icon( cam, k_gui_icon_rift_run, route->board_transform[3] ); + miniworld_icon( cam, k_gui_icon_rift_run, route->board_transform[3],1.0f); } } @@ -158,61 +149,29 @@ static void ent_miniworld_preupdate(void){ (world_static.active_instance != k_world_purpose_hub) || (!miniworld) || (dest->status != k_world_status_loaded) ){ - - if( global_miniworld.mode ){ - global_miniworld.mode = 0; - menu.disable_open = 0; - srinput.state = k_input_state_resume; - gui_helper_clear(); - } return; } if( button_down( k_srbind_miniworld_resume ) ){ - global_miniworld.mode = 0; global_miniworld.transition = 1; global_miniworld.t = 0.0f; global_miniworld.cam = skaterift.cam; - - if( global_miniworld.dest_spawn ){ - v3_copy( global_miniworld.dest_spawn->transform.co, - dest->player_co ); - } world_switch_instance(1); - global_miniworld.dest_spawn = NULL; srinput.state = k_input_state_resume; menu.disable_open = 0; gui_helper_clear(); - } - else { - if( global_miniworld.mode == 1 ){ - if( button_down(k_srbind_mback) ){ - global_miniworld.mode = 0; - global_miniworld.dest_spawn = NULL; - menu.disable_open = 0; - srinput.state = k_input_state_resume; - miniworld_helper_default(); - } - else { - m4x3f mmdl_inv; - m4x3_invert_full( global_miniworld.mmdl, mmdl_inv ); - v3f lco; - m4x3_mulv( mmdl_inv, localplayer.rb.co, lco ); - global_miniworld.dest_spawn = world_find_closest_spawn( dest, lco ); - } - } - else { - if( button_down( k_srbind_miniworld_teleport ) ){ - global_miniworld.mode = 1; - menu.disable_open = 1; - miniworld_helper_tele(); - } - } + audio_lock(); + audio_oneshot( &audio_ui[2], 1.0f, 0.0f ); + audio_unlock(); } } static void ent_miniworld_goback(void){ + audio_lock(); + audio_oneshot( &audio_ui[2], 1.0f, 0.0f ); + audio_unlock(); + global_miniworld.transition = -1; global_miniworld.t = 1.0f;