X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_routes.h;h=f5add0bb6ba162d336509e66935debc6b2dd288d;hb=8c376ed2e4021a18b0a6c6e800109d67ad09d198;hp=acb58131436f80b1a43ef7864a561410d22e5ce4;hpb=f99902f513b0ad606437bf32de47405dd4ea5f98;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_routes.h b/world_routes.h index acb5813..f5add0b 100644 --- a/world_routes.h +++ b/world_routes.h @@ -103,7 +103,7 @@ VG_STATIC void world_routes_time_lap( world_instance *world, ent_route *route ) } last_version = rg->timing_version; - vg_info( "%u %f\n", rg, rg->timing_version, rg->timing_time ); + vg_info( "%u %f\n", rg->timing_version, rg->timing_time ); } if( world_global.current_run_version == last_version+1 ){ @@ -134,10 +134,19 @@ VG_STATIC void world_routes_time_lap( world_instance *world, ent_route *route ) VG_STATIC void world_routes_activate_entry_gate( world_instance *world, ent_gate *rg ) { - ent_gate *dest = mdl_arritm( &world->ent_gate, rg->target ); - world_global.last_use = world_global.time; + /* disable all routes and leave the world */ + if( rg->type == k_gate_type_nonlocel ){ + for( u32 i=0; ient_route); i++ ){ + ent_route *route = mdl_arritm( &world->ent_route, i ); + route->active_checkpoint = 0xffff; + } + return; + } + + ent_gate *dest = mdl_arritm( &world->ent_gate, rg->target ); + for( u32 i=0; ient_route); i++ ){ ent_route *route = mdl_arritm( &world->ent_route, i ); @@ -455,7 +464,7 @@ VG_STATIC void world_routes_create_mesh( world_instance *world, u32 route_id ) VG_STATIC void world_routes_generate( world_instance *world ) { vg_info( "Generating route meshes\n" ); - world->scene_lines = scene_init( world_global.generic_heap, 200000, 300000 ); + world->scene_lines = scene_init( world->heap, 200000, 300000 ); for( u32 i=0; ient_gate); i++ ){ ent_gate *gate = mdl_arritm( &world->ent_gate, i ); @@ -504,7 +513,7 @@ VG_STATIC void world_routes_generate( world_instance *world ) scene_upload( world->scene_lines, &world->mesh_route_lines ); } vg_release_thread_sync(); - vg_linear_del( world_global.generic_heap, world->scene_lines ); + vg_linear_del( world->heap, world->scene_lines ); world_routes_clear( world ); }