X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gate.h;h=b409c51d0d482f65ced1193aa8108a88ea8ecaf3;hb=0310bab3c018e23f5516c3e3c3653b844a8106ed;hp=a073b26af051d6edcd08b7bc1e866a165ea4c882;hpb=d6171f1c56789b2ca79efa3313fbbf74a13bda7a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gate.h b/world_gate.h index a073b26..b409c51 100644 --- a/world_gate.h +++ b/world_gate.h @@ -5,6 +5,7 @@ #ifndef WORLD_GATE_H #define WORLD_GATE_H +#include "skaterift.h" #include "common.h" #include "model.h" #include "entity.h" @@ -42,7 +43,6 @@ VG_STATIC void world_gates_init(void) mdl_context mgate; mdl_open( &mgate, "models/rs_gate.mdl", vg_mem.scratch ); mdl_load_metadata_block( &mgate, vg_mem.scratch ); - mdl_load_mesh_block( &mgate, vg_mem.scratch ); mdl_mesh *surface = mdl_find_mesh( &mgate, "rs_gate" ); mdl_submesh *sm = mdl_arritm(&mgate.submeshs,surface->submesh_start); @@ -57,13 +57,8 @@ VG_STATIC void world_gates_init(void) world_global.sm_gate_marker[i] = *sm; } + mdl_async_load_glmesh( &mgate, &world_global.mesh_gate ); mdl_close( &mgate ); - - vg_acquire_thread_sync(); - { - mdl_unpack_glmesh( &mgate, &world_global.mesh_gate ); - } - vg_release_thread_sync(); } VG_STATIC int render_gate( world_instance *world_inside, @@ -231,9 +226,17 @@ VG_STATIC ent_gate *world_intersect_gates( world_instance *world, { for( u32 i=0; ient_gate); i++ ){ ent_gate *gate = mdl_arritm( &world->ent_gate, i ); - if( gate->type == k_gate_type_unlinked ) + if( gate->type == k_gate_type_unlinked || + gate->type == k_gate_type_nonlocal_unlinked ) continue; + if( gate->type == k_gate_type_nonlocel ){ + if( skaterift.async_op == k_async_op_world_loading || + skaterift.async_op == k_async_op_world_preloading ){ + continue; + } + } + if( gate_intersect( gate, pos, last ) ){ return gate; }