#include "ent_glider.h"
#include "ent_region.h"
#include "ent_npc.h"
+#include "ent_camera.h"
#include "input.h"
#include "player_walk.h"
void world_entity_focus_camera( world_instance *world, u32 uid )
{
- if( mdl_entity_id_type( uid ) == k_ent_camera ){
+ if( mdl_entity_id_type( uid ) == k_ent_camera )
+ {
u32 index = mdl_entity_id_id( uid );
ent_camera *cam = mdl_arritm( &world->ent_camera, index );
-
- v3f dir = {0.0f,-1.0f,0.0f};
- mdl_transform_vector( &cam->transform, dir, dir );
- v3_angles( dir, world_static.focus_cam.angles );
- v3_copy( cam->transform.co, world_static.focus_cam.pos );
- world_static.focus_cam.fov = cam->fov;
+ ent_camera_unpack( cam, &world_static.focus_cam );
}
- else {
+ else
+ {
vg_camera_copy( &localplayer.cam, &world_static.focus_cam );
/* TODO ? */
[ k_ent_npc ] = ent_npc_preupdate,
};
- if( (type > vg_list_size(table)) || (table[type] == NULL) )
+ if( (type > VG_ARRAY_LEN(table)) || (table[type] == NULL) )
{
vg_fatal_error( "No pre-update method set for entity (%u#%u)\n",
type, index );
{
world_instance *world = world_current_instance();
if( skaterift.activity != k_skaterift_ent_focus ){
- skateshop_render_nonfocused( world, &skaterift.cam );
+ skateshop_render_nonfocused( world, &g_render.cam );
return;
}
{ k_ent_npc, &world->ent_npc }
};
- for( u32 i=0; i<vg_list_size(indexables); i++ )
+ for( u32 i=0; i<VG_ARRAY_LEN(indexables); i++ )
indexed_count += mdl_arrcount( indexables[i].array );
vg_info( "indexing %u entities\n", indexed_count );
vg_align8(indexed_count*sizeof(u32)));
u32 index=0;
- for( u32 i=0; i<vg_list_size(indexables); i++ ){
+ for( u32 i=0; i<VG_ARRAY_LEN(indexables); i++ ){
u32 type = indexables[i].type,
count = mdl_arrcount( indexables[i].array );
/* LEGACY: check if steam achievements can give us a medal */
if( steam_ready && steam_stats_ready ){
- for( u32 j=0; j<vg_list_size(track_infos); j ++ ){
+ for( u32 j=0; j<VG_ARRAY_LEN(track_infos); j ++ ){
struct track_info *inf = &track_infos[j];
if( !strcmp(inf->name,
mdl_pstr(&world->meta,route->pstr_name))){