-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCAMERA.H
57 lines (37 loc) · 1.1 KB
/
CAMERA.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#define TARGET_CAM 0
#define NORMAL_CAM 1
typedef struct
{
SVECTOR xa,ya,za;
SVECTOR angle;
VECTOR pos;
SVECTOR dest;
WORD type,mdt_blocks; // num of animation blocks
BYTE name[CAMERA_NAME_LEN];
MATRIX scene_matrix;
M01_anim *mdt_indexlist; // addr of indexlist ( index to rots and trans ) for this object (0=no anim)
M01_rot *mdt_rot; // addr of rotlist for this obj
M01_trans *mdt_trans; // addr of translist for this obj
WORD current_anim_frame,last_anim_frame;
WORD anim_timer,animation_active; // yes= this cam has matrix animation
WORD anim_suspended,pad; // yes or no
MATRIX anim_mat;
}Camera_data;
typedef struct
{
MATRIX output_mat;
MATRIX matrix; //scene_matrix * rotation placed here
WORD current;
Camera_data data[MAX_CAMERAS];
WORD aspect_correction,x_aspect; //aspect ratio correction
WORD num_cameras;
}Camera;
void reset_cameras();
void set_camera_matrix( WORD camera_num );
void fix_aspect_ratio(MATRIX *mat);
void move_matrix_camera( void );
extern Camera camera;
extern MATRIX light_matrix;
extern MATRIX color_matrix;
extern WORD aspect_correction;