aboutsummaryrefslogtreecommitdiff
path: root/src/screens/infoScreen.c
blob: 98af36f114b5ac53b378607cb0e4b5a60df72d37 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "infoScreen.h"
#include "game.h"

// Fuck this capitalist society. Long live Karl Marx!

const EntityUserInfo infoScreenEntityInfo[INFO_SCREEN_ENTITY_COUNT] = {
    (EntityUserInfo){
        .type = ENTITY_ANTIFA,
        .assetId = ANTIFA_SHIP_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "The player ship. Its a anti fascist ship and is completely bad ass."
    },
    (EntityUserInfo){
        .type = ENTITY_SOLDATO,
        .assetId = SOLDATO_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "A wippy little ship. It follows the other ships like ants."
    },
    (EntityUserInfo){
        .type = ENTITY_CAPORALE,
        .assetId = CAPORATE_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "A pretty normal space ship. Often acts as a leader for the soldato."
    },
    (EntityUserInfo){
        .type = ENTITY_SERGENTE,
        .assetId = SERGENTE_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "A funny little dude that packs a lot of power"
    },
    (EntityUserInfo){
        .type = ENTITY_MARESCIALLO,
        .assetId = MARESCIALLO_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "A sneaky little ship based on a stealth jet."
    },
    (EntityUserInfo)
    {
        .type = ENTITY_GENERALE,
        .assetId = GENERALE_ASSET,
        .cameraPosition = (Vector3){10.0, 10.0, 10.0},
        .msg = "A ufo that goes zig zag and shoots its epic deadly laser.",
    },
    (EntityUserInfo){
        .type = ENTITY_MUSSOLINI,
        .assetId = MUSSOLINI_ASSET,
        .cameraPosition = (Vector3){100.0, 100.0, 100.0},
        .msg = "A deadly mother fucker named after the Italian fascist dictator"
    }
};

void initInfoScreen(Game * game) {
    InfoScreen * infoScreen = &game->infoScreen;

    infoScreen->goBackButton = (Rectangle){0.0, 25.0, 100.0, 50.0};

    infoScreen->camera = (Camera3D){
        .position = infoScreenEntityInfo[0].cameraPosition,
        .target = Vector3Zero(),
        .up = (Vector3){0.0, 1.0, 0.0},
        .fovy = 90.0,
        .projection = CAMERA_PERSPECTIVE
    };

    infoScreen->currentEntity = 0;
}

void updateInfoScreen(Game * game) {
    InfoScreen * infoScreen = &game->infoScreen;
    ClearBackground(BLACK);

    if (GuiButton(infoScreen->goBackButton, "Back"))
        game->screenId = SCREEN_MAIN_MENU;

    EntityUserInfo info = infoScreenEntityInfo[infoScreen->currentEntity];

    BeginMode3D(infoScreen->camera);

    DrawModelWires(game->assets.models[info.assetId], Vector3Zero(), 1.0, GREEN);

    DrawGrid(32, 5.0);

    EndMode3D();
}

void resizeInfoScreen(Game * game, InfoScreen * infoScreen) {
}