a mess but stable
[carveJwlIkooP6JGAAIwe30JlM.git] / world_entity.c
index cdc76f1ae23d96d5bde4957843f86ea791e7ba7a..e75cb29cebfdb2c09519b33e1c212c35845ffb95 100644 (file)
@@ -14,6 +14,7 @@
 #include "ent_glider.h"
 #include "ent_region.h"
 #include "ent_npc.h"
+#include "ent_camera.h"
 #include "input.h"
 #include "player_walk.h"
 
@@ -85,17 +86,14 @@ void world_entity_clear_focus(void)
 
 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 ? */
@@ -148,7 +146,7 @@ void world_entity_focus_render(void)
 {
    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;
    }