I have two camera structures ATM:
1) well known one at [obMan + 0x8D4]
Code:
struct CameraRaw
{
DWORD pad_000[3]; // 0x000
DWORD pad_00C[15]; // 0x00C
DWORD snap_actor_id; // 0x048
float pad_04C[27]; // 0x04C
Vec3 position; // 0x0B8
DWORD pad_0C4; // 0x0C4
float zoom2; // 0x0C8
DWORD pad_0CC; // 0x0CC
float zoom; // 0x0D0
float unk[2]; // 0x0D4
float pad_0DC[46]; // 0x0DC
DWORD cam_mode; // 0x194 0 - free, 2 - snapped, 3 - AV
};
2) More rich one at [obMan + 0x928]:
After changing some of the values here, you need to actually update camera by calling some functions, i think.
Code:
struct CameraRaw2
{
DWORD unk_000; // 0x000
float rot1; // 0x004
float rot2; // 0x008
float rot3; // 0x01C
float rot4; // 0x010
Vec3 position; // 0x014
float pad_020[3]; // 0x020
float fovY; // 0x02C
float fovX; // 0x030
float unk_034[16]; // 0x034 some valid data
};
And there is function at 0x0CC9DA0 (build 1.0.4.11327) that messes heavily with camera stuff.