summaryrefslogtreecommitdiff
path: root/src/scenes/puzzleScene.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scenes/puzzleScene.c')
-rw-r--r--src/scenes/puzzleScene.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/scenes/puzzleScene.c b/src/scenes/puzzleScene.c
new file mode 100644
index 0000000..10e3fc9
--- /dev/null
+++ b/src/scenes/puzzleScene.c
@@ -0,0 +1,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;
+}