aboutsummaryrefslogtreecommitdiff
path: root/08-august/src/game.h
blob: 611bd0726dea4cda2d21276632682beb91a91f7e (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef GAME_H
#define GAME_H

#include "camera.h"
#include "graphics/window.h"
#include "renderer/entity.h"
#include "player.h"
#include "terrain.h"
#include "texture.h"
#include "renderer/shape.h"
#include "graphics/shaders.h"
#include "renderer/skybox.h"

typedef enum
{
    MENU,
    RUNNING,
    EXIT
}GameState_t;

#define NUM_ENTITIES 1

#define WINDOW_WIDTH  1024
#define WINDOW_HEIGHT 768
#define WINDOW_ASPECT_RATIO ( (float)WINDOW_WIDTH / (float)WINDOW_HEIGHT )

typedef struct
{
    GameState_t gameState;
    Shader_Layout shaderProgram, terrainProgram, skyboxProgram;

    entity_t ents[NUM_ENTITIES];
    shape_t *entsShape;
    GLuint entsTexture;
    GLuint normalMap;
    GLuint defaultNormalMap;
    terrain_t *terrain;
    skybox_t sky;

    player_t player;

    camera_t camera;
    window_t *window;
} game_t;

#endif // GAME_H