diff options
| author | ilotterytea <iltsu@alright.party> | 2025-01-19 20:42:57 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-01-19 20:42:57 +0500 |
| commit | 3fa74d5844e441f0cccf711791066efaab054b63 (patch) | |
| tree | 2a3f95088e49deba37963c16928d830373899146 /src/screens.c | |
| parent | 8bc01fccc138461f3bd58cd9d2707309fe745a43 (diff) | |
feat: save/load .xd files (wip)
Diffstat (limited to 'src/screens.c')
| -rw-r--r-- | src/screens.c | 45 |
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(); |
