From: hgn Date: Sun, 13 Aug 2023 12:58:10 +0000 (+0100) Subject: update finalized version X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=4cc4130853138cb88531146e44d6981ec38bf862;p=carveJwlIkooP6JGAAIwe30JlM.git update finalized version --- diff --git a/ent_objective.c b/ent_objective.c index c037eaf..ff31c4f 100644 --- a/ent_objective.c +++ b/ent_objective.c @@ -5,6 +5,7 @@ #include "world_load.h" #include "entity.h" #include "audio.h" +#include "steam.h" VG_STATIC void ent_objective_pass( world_instance *world, ent_objective *objective ){ @@ -29,6 +30,7 @@ VG_STATIC void ent_objective_pass( world_instance *world, audio_oneshot( &audio_challenge[2], 1.0f, 0.0f ); world_static.challenge_target = NULL; world_static.challenge_timer = 0.0f; + world_static.focused_entity = 0; if( objective->id_win ){ ent_call call; @@ -37,6 +39,23 @@ VG_STATIC void ent_objective_pass( world_instance *world, call.id = objective->id_win; 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" ); + } + } } } diff --git a/maps_src/mp_spawn/main.mdl b/maps_src/mp_spawn/main.mdl index 078f952..97e890e 100644 Binary files a/maps_src/mp_spawn/main.mdl and b/maps_src/mp_spawn/main.mdl differ diff --git a/skaterift.c b/skaterift.c index 9b90548..c2fc266 100644 --- a/skaterift.c +++ b/skaterift.c @@ -13,7 +13,7 @@ #if 1 -//#define SR_NETWORKED +#define SR_NETWORKED #ifndef VG_RELEASE #define VG_DEVWINDOW @@ -104,6 +104,9 @@ static void skaterift_restore_state(void){ kvsav.len = sav.len; kvsav.max = sizeof(sav.buf); + u32 board_reg_id = 0, + player_reg_id = 0; + vg_msg player = kvsav; if( vg_msg_seekframe( &player, "player", 0 ) ){ addon_alias q; @@ -111,21 +114,23 @@ static void skaterift_restore_state(void){ /* board */ skaterift_read_addon_alias( &player, "board", k_addon_type_board, &q ); u32 reg_id = addon_match( &q ); - if( reg_id != 0xffffffff ){ - localplayer.board_view_slot = - addon_cache_create_viewer( k_addon_type_board, reg_id ); - } + if( reg_id != 0xffffffff ) + board_reg_id = reg_id; + /* playermodel */ skaterift_read_addon_alias( &player, "playermodel", k_addon_type_player, &q ); reg_id = addon_match( &q ); - - if( reg_id == 0xffffffff ) reg_id = 0; - localplayer.playermodel_view_slot = - addon_cache_create_viewer( k_addon_type_player, reg_id ); + if( reg_id != 0xffffffff ) + player_reg_id = reg_id; } + localplayer.board_view_slot = + addon_cache_create_viewer( k_addon_type_board, board_reg_id ); + localplayer.playermodel_view_slot = + addon_cache_create_viewer( k_addon_type_player, player_reg_id ); + vg_msg world = kvsav; if( vg_msg_seekframe( &world, "world", 0 ) ){ addon_alias q;