mini world rendering adjustments
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_miniworld.c
1 #include "entity.h"
2 #include "ent_miniworld.h"
3 #include "world_render.h"
4
5 static void ent_miniworld_call( world_instance *world, ent_call *call ){
6 ent_miniworld *miniworld = mdl_arritm( &world->ent_miniworld,
7 mdl_entity_id_id(call->id) );
8
9 int world_id = world - world_static.instances;
10
11 if( call->function == 0 ){ /* zone() */
12 const char *uid = mdl_pstr( &world->meta, miniworld->pstr_world );
13 skaterift_load_world_command( 1, (const char *[]){ uid } );
14
15 global_miniworld.active_id = call->id;
16 }
17 }
18
19 static void ent_miniworld_render( world_instance *host_world ){
20 u32 entity_id = global_miniworld.active_id;
21
22 if( !entity_id )
23 return;
24
25 ent_miniworld *miniworld = mdl_arritm( &host_world->ent_miniworld,
26 mdl_entity_id_id(entity_id) );
27
28 if( miniworld->purpose == k_world_purpose_invalid )
29 return;
30
31 world_instance *dest_world = &world_static.instances[miniworld->purpose];
32
33
34 m4x3f mmdl;
35 mdl_transform_m4x3( &miniworld->transform, mmdl );
36 render_world_override( dest_world, host_world, mmdl );
37
38 //render_world_routes( , &skaterift.cam, 1 );
39 }