X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_entity.c;h=3fd7ac63473459781b85ed7a348038247eb545a7;hb=23ba25574349652d86979fc787ec4b0214001333;hp=cbe7432a54aacc1e70b3cc31462d795af348e9c8;hpb=bdd98e4458be4a143cd415e5077b373129b1b0d9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_entity.c b/world_entity.c index cbe7432..3fd7ac6 100644 --- a/world_entity.c +++ b/world_entity.c @@ -617,6 +617,23 @@ static void world_entity_start( world_instance *world, vg_msg *sav ){ entity_call( world, &call ); } } + + 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->flags |= vg_msg_getkvu32( &route_info, "flags", 0 ); + route->best_laptime = + vg_msg_getkvf64( &route_info, "best_laptime", 0.0 ); + } + } + } + + ent_region_re_eval( world ); } static void world_entity_serialize( world_instance *world, vg_msg *sav ){ @@ -626,6 +643,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, "flags", route->flags ); + vg_msg_wkvf64( sav, "best_laptime", route->best_laptime ); + } + vg_msg_end_frame( sav ); + } + vg_msg_end_frame( sav ); + } } #endif /* WORLD_ENTITY_C */