2 #include "ent_miniworld.h"
3 #include "world_render.h"
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
) );
9 int world_id
= world
- world_static
.instances
;
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
} );
15 global_miniworld
.active_id
= call
->id
;
17 else if( call
->function
== 1 ){
19 if( global_miniworld
.active_id
== call
->id
)
20 global_miniworld
.active_id
= 0;
22 vg_warn( "bad call\n" );
24 if( miniworld
->proxy
){
25 ent_prop
*prop
= mdl_arritm( &world
->ent_prop
,
26 mdl_entity_id_id(miniworld
->proxy
) );
32 static void ent_miniworld_render( world_instance
*host_world
){
33 u32 entity_id
= global_miniworld
.active_id
;
38 ent_miniworld
*miniworld
= mdl_arritm( &host_world
->ent_miniworld
,
39 mdl_entity_id_id(entity_id
) );
42 if( miniworld
->purpose
== k_world_purpose_invalid
)
45 if( miniworld
->proxy
){
46 ent_prop
*prop
= mdl_arritm( &host_world
->ent_prop
,
47 mdl_entity_id_id(miniworld
->proxy
) );
57 world_instance
*dest_world
= &world_static
.instances
[miniworld
->purpose
];
61 mdl_transform_m4x3( &miniworld
->transform
, mmdl
);
62 render_world_override( dest_world
, host_world
, mmdl
);
64 //render_world_routes( , &skaterift.cam, 1 );