summaryrefslogtreecommitdiff
path: root/src/screens.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens.c')
-rw-r--r--src/screens.c45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/screens.c b/src/screens.c
index f7bda99..03b1441 100644
--- a/src/screens.c
+++ b/src/screens.c
@@ -1,15 +1,56 @@
#include "screens.h"
+#include <stdio.h>
+#include <stdlib.h>
+
#include "editor.h"
#include "raylib.h"
+#include "xd.h"
+
+#define RAYGUI_IMPLEMENTATION
+#include "raygui.h"
+
+void SE_DrawMenuScreen(GameScreen *currentScreen, Editor *editor, XdData *data,
+ XdData *datas[]) {
+ if (IsKeyPressed(KEY_N)) {
+ *currentScreen = SCREEN_EDITOR;
+ data = malloc(sizeof(XdData));
+ editor->data = data;
+
+ data->name = "xd";
+
+ // Creating an empty level
+ data->levels[0] = malloc(sizeof(XdLevel));
+ data->levels[0]->floors[0] = malloc(sizeof(XdFloor));
+ data->levels[0]->floors[0]->width = 30;
+ data->levels[0]->floors[0]->height = 30;
+ }
-void SE_DrawMenuScreen() {
BeginDrawing();
ClearBackground(RAYWHITE);
+
+ for (int i = 0; i < sizeof(*datas) / sizeof(*datas[0]); i++) {
+ printf("xd\n");
+ XdData *data = datas[i];
+ bool button = GuiButton((Rectangle){10, 10 * i, GetScreenWidth() - 10, 40},
+ data->name);
+ }
+
+ GuiLabel((Rectangle){0, GetScreenHeight() - 20, GetScreenWidth(), 20},
+ "Press N to create a new campaign");
EndDrawing();
}
-void SE_DrawEditorScreen(Editor *editor, Camera2D *camera) {
+void SE_DrawEditorScreen(GameScreen *currentScreen, Editor *editor,
+ Camera2D *camera) {
+ if (IsKeyPressed(KEY_S)) {
+ Xd_SaveFile("test.xd", editor->data);
+ *currentScreen = SCREEN_MENU;
+ free(editor->data);
+ editor->data = NULL;
+ return;
+ }
+
if (GetMouseWheelMove() != 0.0) {
camera->zoom += (int)GetMouseWheelMove();