blob: e02a3936caca79d7b91df3c77f338162dbc46422 (
plain)
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
|
#include "gameCommon.h"
#ifndef CAMERAS_H
#define CAMERAS_H
#define FIRST_PERSON_CAMERA_DISTANCE 5.0
#define THIRD_PERSON_CAMERA_DISTANCE (Vector3){0.0, 10.0, -20.0}
#define DEBUG_CAMERA_POSITION (Vector3){0.0, 200.0, 100.0}
#define CAMERA_COUNT 4
// Each camera has a game loop callback and a init callback.
typedef void (*CameraInitCb)(Game * game, Camera3D * camera);
typedef void (*CameraCb)(Game * game, Camera3D * camera);
extern const CameraInitCb cameraInitCallbacks[CAMERA_COUNT];
extern const CameraCb cameraCallbacks[CAMERA_COUNT];
typedef enum CameraId {
FIRST_PERSON_CAMERA,
THIRD_PERSON_CAMERA,
ZOOM_CAMERA,
DEBUG_CAMERA
} CameraId;
// A array of the cameras.
typedef Camera3D Cameras[CAMERA_COUNT];
void initCameras(Game * game, Cameras cameras);
void runCameraUpdate(Game * game, Cameras cameras, CameraId id);
#endif
|