mdl_close( &mgate );
}
+VG_STATIC void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl ){
+ m4x3_copy( gate->to_world, mmdl );
+
+ if( !(gate->flags & k_ent_gate_custom_mesh) ){
+ m3x3_scale( mmdl, (v3f){ gate->dimensions[0],
+ gate->dimensions[1], 1.0f } );
+ }
+}
+
/*
* Render the view through a gate
*/
glDisable( GL_CULL_FACE );
m4x3f mmdl;
- m4x3_copy( gate->to_world, mmdl );
+ ent_gate_get_mdl_mtx( gate, mmdl );
+ shader_model_gate_uMdl( mmdl );
if( gate->flags & k_ent_gate_custom_mesh ){
mesh_bind( &world->mesh_no_collide );
}
}
else {
- m3x3_scale( mmdl, (v3f){ gate->dimensions[0],
- gate->dimensions[1], 1.0f } );
-
mesh_bind( &world_gates.mesh );
mdl_draw_submesh( &world_gates.sm_surface );
}
- shader_model_gate_uMdl( mmdl );
-
glClear( GL_DEPTH_BUFFER_BIT );
glStencilFunc( GL_EQUAL, 1, 0xFF );
glStencilMask( 0x00 );
if( gate->flags & k_ent_gate_locked ) continue;
if( gate->flags & k_ent_gate_nonlocal ){
- if( world_loader.state != k_world_loader_none ){
+ if( world_static.load_state != k_world_loader_none ){
continue;
}
}
/*
* attatches nonlocal gates, to be called from main thread ONLY!
*/
-VG_STATIC void world_link_nonlocal_async( void *payload, u32 size )
-{
+VG_STATIC void world_link_nonlocal_async( void *payload, u32 size ){
world_instance *world = payload;
- u32 world_id = world - world_static.worlds;
+ u32 world_id = world - world_static.instances;
for( u32 j=0; j<mdl_arrcount(&world->ent_gate); j ++ ){
ent_gate *gate = mdl_arritm( &world->ent_gate, j );
const char *key = mdl_pstr( &world->meta, gate->key );
vg_info( "key: %s\n", key );
- for( u32 i=0; i<vg_list_size(world_static.worlds); i++ ){
- world_instance *other = &world_static.worlds[i];
+ for( u32 i=0; i<vg_list_size(world_static.instances); i++ ){
+ world_instance *other = &world_static.instances[i];
if( other == world ) continue;
if( other->status != k_world_status_loaded ) continue;
vg_info( "Checking world %u for key matches\n", i );
v4_copy( gate->q[0], gate2->q[1] );
v4_copy( gate2->q[0], gate->q[1] );
- if( other->meta.info.version >= 102 ){
+ if( world->meta.info.version >= 102 ){
gate->flags |= k_ent_gate_flip;
gate2->flags |= k_ent_gate_flip;
}