From: hgn Date: Tue, 28 Nov 2023 14:53:22 +0000 (+0000) Subject: THE REST X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=8837dd6bdac03ce5fd87b470d22c01a56373ed89;p=carveJwlIkooP6JGAAIwe30JlM.git THE REST --- diff --git a/addon.h b/addon.h index 5ca812c..59645da 100644 --- a/addon.h +++ b/addon.h @@ -20,6 +20,8 @@ struct addon_alias { }; #define ADDON_REG_HIDDEN 0x1 +#define ADDON_REG_MTZERO 0x2 +#define ADDON_REG_CITY 0x4 struct { struct addon_reg{ diff --git a/ent_objective.c b/ent_objective.c index 97e33d8..ce5ad0f 100644 --- a/ent_objective.c +++ b/ent_objective.c @@ -44,23 +44,7 @@ static void ent_objective_pass( world_instance *world, entity_call( world, &call ); } - u32 world_completed = 1; - for( u32 i=0; ient_challenge); i++ ){ - ent_challenge *challenge = mdl_arritm( &world->ent_challenge, i ); - if( !challenge->status ){ - world_completed = 0; - break; - } - } - - if( world_completed ){ - const char *understate = "Understate DIY park"; - if( mdl_pstreq( &world->meta, world->info.pstr_name, - understate, vg_strdjb2( understate ))){ - steam_set_achievement( "CITY_COMPLETE" ); - steam_store_achievements(); - } - } + ent_region_re_eval( world ); } } diff --git a/ent_region.c b/ent_region.c index eecf22d..fd24f4e 100644 --- a/ent_region.c +++ b/ent_region.c @@ -62,6 +62,9 @@ static void ent_region_call( world_instance *world, ent_call *call ){ * reevaluate all achievements to calculate the compiled achievement */ static void ent_region_re_eval( world_instance *world ){ + u32 world_total = k_ent_route_flag_achieve_gold | + k_ent_route_flag_achieve_silver; + for( u32 i=0; ient_region); i ++ ){ ent_region *region = mdl_arritm(&world->ent_region, i); @@ -109,5 +112,25 @@ static void ent_region_re_eval( world_instance *world ){ } region->flags = combined; + world_total &= combined; + } + + u32 instance_id = world - world_static.instances; + + if( world_static.instance_addons[instance_id]->flags & ADDON_REG_MTZERO ){ + if( world_total & k_ent_route_flag_achieve_gold ){ + steam_set_achievement( "MTZERO_GOLD" ); + steam_store_achievements(); + } + + if( world_total & k_ent_route_flag_achieve_silver ){ + steam_set_achievement( "MTZERO_SILVER" ); + steam_store_achievements(); + } + } + + if( world_static.instance_addons[instance_id]->flags & ADDON_REG_CITY ){ + steam_set_achievement( "CITY_COMPLETE" ); + steam_store_achievements(); } } diff --git a/maps_src/dev_hub/main.mdl b/maps_src/dev_hub/main.mdl index 6362bb8..1c4e699 100644 Binary files a/maps_src/dev_hub/main.mdl and b/maps_src/dev_hub/main.mdl differ diff --git a/maps_src/dev_tutorial/main.mdl b/maps_src/dev_tutorial/main.mdl new file mode 100644 index 0000000..5ee4be4 Binary files /dev/null and b/maps_src/dev_tutorial/main.mdl differ diff --git a/maps_src/mp_mtzero/main.mdl b/maps_src/mp_mtzero/main.mdl index 3f7148d..76139c8 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 c42dc1b..74fb300 100644 Binary files a/maps_src/mp_spawn/main.mdl and b/maps_src/mp_spawn/main.mdl differ diff --git a/menu.h b/menu.h index 737c849..6df04db 100644 --- a/menu.h +++ b/menu.h @@ -609,11 +609,6 @@ static void menu_render(void){ ui_split( panel, k_ui_axis_h, 28, 0, title, panel ); ui_text( title, "Mt.Zero Software", 1, k_ui_align_middle_center, 0 ); - ui_split( panel, k_ui_axis_h, 8, 0, title, panel ); - ui_split( panel, k_ui_axis_h, 28, 0, title, panel ); - ui_text( title, "A game by Harry Godden", 1, - k_ui_align_middle_center, 0 ); - ui_split( panel, k_ui_axis_h, 8, 0, title, panel ); ui_split( panel, k_ui_axis_h, 28*2, 0, title, panel ); ui_text( title, "Free Software", 2, k_ui_align_middle_center, 0 ); diff --git a/shaders/model_gate_unlinked.h b/shaders/model_gate_unlinked.h index b617ab5..1fda296 100644 --- a/shaders/model_gate_unlinked.h +++ b/shaders/model_gate_unlinked.h @@ -97,19 +97,34 @@ static struct vg_shader _shader_model_gate_unlinked = { "\n" "#line 12 0 \n" "\n" +"const int NOISE_LOOP = 3;\n" +"vec3 digital_noise( uvec3 iuv ){\n" +" iuv *=uvec3(8,2524,7552);\n" +" for( int i=0; iflags |= ADDON_REG_HIDDEN; + reg->flags |= (ADDON_REG_HIDDEN | ext); return reg; } @@ -216,9 +216,10 @@ static void vg_load(void){ */ /* hub world */ - addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub" ); - skaterift_mount_world_unloadable( "maps/mp_spawn" ); - skaterift_mount_world_unloadable( "maps/mp_mtzero" ); + addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub", 0 ); + skaterift_mount_world_unloadable( "maps/mp_spawn", ADDON_REG_CITY ); + skaterift_mount_world_unloadable( "maps/mp_mtzero", ADDON_REG_MTZERO ); + skaterift_mount_world_unloadable( "maps/dev_tutorial", 0 ); /* load home/permanent world manually */ world_static.load_state = k_world_loader_load; diff --git a/steam.h b/steam.h index dcfc1c8..e0569a7 100644 --- a/steam.h +++ b/steam.h @@ -48,9 +48,10 @@ static HSteamPipe hSteamClientPipe; static const char *steam_achievement_names[] = { - "ALBERT", "MARC", + "ALBERT", "MARC", "JANET", "BERNADETTA", "ROUTE_MPY", "ROUTE_MPG", "ROUTE_MPB", "ROUTE_MPR", - "ROUTE_TO", "ROUTE_TC" + "ROUTE_TO", "ROUTE_TC", "CITY_COMPLETE", "MTZERO_SILVER", "MTZERO_GOLD", + "80FT" }; static void steam_store_achievements(void)