aboutsummaryrefslogtreecommitdiff
path: root/src/screens/infoScreen.h
blob: 0c2f93d08dbf702a7f09a3efca32f303394ac7df (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
#include "gameCommon.h"
#include "entity.h"
#include "assets.h"

#ifndef INFO_SCREEN_H
#define INFO_SCREEN_H

#define ENTITY_USER_INFO_MSG_MAX 70
#define INFO_SCREEN_ENTITY_COUNT 7

#define ENTITY_INFO_NAME_FONT_SIZE 30
#define ENTITY_INFO_FONT_SIZE 18

typedef struct EntityUserInfo {
    EntityType type;
    AssetId assetId;
    float cameraDistance;
    char msg[ENTITY_USER_INFO_MSG_MAX];
} EntityUserInfo;

extern const EntityUserInfo infoScreenEntityInfo[INFO_SCREEN_ENTITY_COUNT];

typedef struct InfoScreen {
    Rectangle goBackButton;

    Camera3D camera;
    float distances[ENTITY_USER_INFO_MSG_MAX];

    int currentEntity;

    Vector2 lastMouse;
    Quaternion rotation;
    bool resetMouse;
} InfoScreen;

void initInfoScreen(Game * game);
void updateInfoScreen(Game * game);
void resizeInfoScreen(Game * game, InfoScreen * infoScreen);

#endif