X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_entity.c;h=0e484ed019b2a21fd0983f23812097ca3280b3ee;hb=cab063a27c067f6b5387305fe358c94fc7793f45;hp=cbe7432a54aacc1e70b3cc31462d795af348e9c8;hpb=0ff2713a286a77fa3e3538f5a76b0bf60525eb5b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_entity.c b/world_entity.c index cbe7432..0e484ed 100644 --- a/world_entity.c +++ b/world_entity.c @@ -617,6 +617,28 @@ static void world_entity_start( world_instance *world, vg_msg *sav ){ entity_call( world, &call ); } } + + for( u32 i=0; ient_route); i++ ){ + ent_route *route = mdl_arritm( &world->ent_route, i ); + route->achievment_status = 0; + route->best_laptime = 0.0; + } + + vg_msg routes_block = *sav; + if( vg_msg_seekframe( &routes_block, "routes" ) ){ + for( u32 i=0; ient_route); i++ ){ + ent_route *route = mdl_arritm( &world->ent_route, i ); + + vg_msg route_info = routes_block; + if( vg_msg_seekframe( &route_info, + mdl_pstr(&world->meta,route->pstr_name) ) ){ + route->achievment_status = + vg_msg_getkvu32( &route_info, "achivement_status", 0 ); + route->best_laptime = + vg_msg_getkvf64( &route_info, "best_laptime", 0.0 ); + } + } + } } static void world_entity_serialize( world_instance *world, vg_msg *sav ){ @@ -626,6 +648,21 @@ static void world_entity_serialize( world_instance *world, vg_msg *sav ){ const char *alias = mdl_pstr(&world->meta,challenge->pstr_alias); vg_msg_wkvu32( sav, alias, challenge->status ); } + + if( mdl_arrcount(&world->ent_route) ){ + vg_msg_frame( sav, "routes" ); + for( u32 i=0; ient_route); i++ ){ + ent_route *route = mdl_arritm( &world->ent_route, i ); + + vg_msg_frame( sav, mdl_pstr( &world->meta, route->pstr_name ) ); + { + vg_msg_wkvu32( sav, "achivement_status", route->achievment_status ); + vg_msg_wkvf64( sav, "best_laptime", route->best_laptime ); + } + vg_msg_end_frame( sav ); + } + vg_msg_end_frame( sav ); + } } #endif /* WORLD_ENTITY_C */