#include "screens.h" #include #include #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; } 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(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(); if (camera->zoom > 6.0f) camera->zoom = 6.0f; else if (camera->zoom < 4.0f) camera->zoom = 4.0f; } if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT)) { Vector2 mousePos = GetMouseDelta(); camera->target.x -= mousePos.x / 5.0f; camera->target.y -= mousePos.y / 5.0f; } BeginDrawing(); ClearBackground(RAYWHITE); BeginMode2D(*camera); SE_DrawEditor(editor, camera); EndMode2D(); SE_DrawEditorToolkit(editor); EndDrawing(); }