summaryrefslogtreecommitdiff
path: root/src/scenes/puzzleScene.c
blob: 10e3fc92a58fce0dc2a6cb674b2603b385a1d73d (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
#include <raylib.h>
#include <stdlib.h>
#include "scenes.h"
#include "../resources/resources.h"

typedef struct {
    Puzzle *PuzzlePtr;
} puzzleSceneData;


bool updatePuzzleScene(void *self) {
    return true;
}

Vector2 PuzzleNamePos = { .x = 0, .y = 0 };

bool drawPuzzleScene(void *self) {
    puzzleSceneData *data = ((Scene *)self)->data;
    ClearBackground(SKYBLUE);

    DrawTextEx(*GetMainFont(),
            data->PuzzlePtr->Name,
            PuzzleNamePos, 
            100, 1, BLACK);

    return true;
}

void deinitPuzzleScene(void *self) {
    TraceLog(LOG_INFO, "Deleting a puzzle scene");
    free((puzzleSceneData *)((Scene *)self)->data);
    free((Scene *)self);
}

Scene *CreatePuzzleScene(Puzzle *puzzle) {
    Scene *outp = malloc(sizeof(Scene));
    outp->Update = updatePuzzleScene;
    outp->Draw = drawPuzzleScene;
    outp->Deint = deinitPuzzleScene;

    puzzleSceneData *data = malloc(sizeof(puzzleSceneData));
    data->PuzzlePtr = puzzle;

    outp->data = data;
    return outp;
}