We'll need to add the entity_get_entity function.
You should be able to use:
Prototype Boolean ac_entity_get_value(ACEntity *e, char *resname, char *restype, void *valaddr)
ACEntity *cam;
ac_entity_get_value(e, "camera", "entity", &cam)
Remember there may be more than one 3d window - get_default_camera will get the first 3d camera.
Code:
ACCamera *cam = ac_views_get_default_camera();
if (cam == NULL)
{
printf("no camera found (probably no 3d view available) - camera location is default");
...
}
else
{
ac_entity_get_point_value((ACEntity *)cam, "location", &loc);
ac_entity_get_point_value((ACEntity *)cam, "offset", &offset);
ac_entity_get_point_value((ACEntity *)cam, "direction", &vec);
ac_entity_get_float_value((ACEntity *)cam, "scale", &scale);
Point3 rotp;
ac_entity_get_point_value((ACEntity *)cam, "rotation", &rotp);
rotx = rotp.x;
roty = rotp.y;
ac_entity_get_float_value((ACEntity *)cam, "fov", &fov);
ac_entity_get_boolean_value((ACEntity *)cam, "walk_vehicle", &is_walk_vehicle);