X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gate.c;fp=world_gate.c;h=765a09987e6f68cd61344e8163a2f641747dfe3c;hb=d532493a0cb87ebcfc58a72ac5e8206301f9d770;hp=b49113b3f0c381d1f27a618d9a213e57c3748776;hpb=c77e15a8dc7b976371a473bc8794cb55601d82f6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gate.c b/world_gate.c index b49113b..765a099 100644 --- a/world_gate.c +++ b/world_gate.c @@ -68,6 +68,15 @@ VG_STATIC void world_gates_init(void) 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 */ @@ -148,10 +157,10 @@ VG_STATIC int render_gate( world_instance *world, world_instance *world_inside, 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 ){ - shader_model_gate_uMdl( mmdl ); mesh_bind( &world->mesh_no_collide ); for( u32 i=0; isubmesh_count; i++ ){ mdl_submesh *sm = mdl_arritm( &world->meta.submeshs, @@ -160,9 +169,6 @@ VG_STATIC int render_gate( world_instance *world, world_instance *world_inside, } } else { - m3x3_scale( mmdl, (v3f){ gate->dimensions[0], - gate->dimensions[1], 1.0f } ); - shader_model_gate_uMdl( mmdl ); mesh_bind( &world_gates.mesh ); mdl_draw_submesh( &world_gates.sm_surface ); }