From 400e9d91f77ae115ec900ccdac0dfb0a4ab2a31a Mon Sep 17 00:00:00 2001 From: KikooDX Date: Wed, 24 Mar 2021 01:26:57 +0100 Subject: [PATCH] Tile picker progress Create window, display tileset.k --- CMakeLists.txt | 1 + include/conf.h | 2 ++ include/tile_picker/draw.h | 7 +++++++ src/editing_area/main.c | 37 ++++++++++++++++--------------------- src/main.c | 10 +++++++++- src/tile_picker/draw.c | 10 ++++++++++ src/tile_picker/main.c | 30 +++++++++++++++++++++++++++--- 7 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 include/tile_picker/draw.h create mode 100644 src/tile_picker/draw.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b0ef96..3ddec9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ set(SOURCES src/editing_area/level.c src/editing_area/draw.c src/tile_picker/main.c + src/tile_picker/draw.c ) set(FLAGS diff --git a/include/conf.h b/include/conf.h index b5e9970..9fea3a8 100644 --- a/include/conf.h +++ b/include/conf.h @@ -4,6 +4,8 @@ static const int game_window_width = 396; static const int game_window_height = 224; +static const int picker_window_width = 256; +static const int picker_window_height = 256; static const int draw_offset_x = -2; static const int draw_offset_y = -8; static const int tile_width = 16; diff --git a/include/tile_picker/draw.h b/include/tile_picker/draw.h new file mode 100644 index 0000000..3041a68 --- /dev/null +++ b/include/tile_picker/draw.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* Copyright (C) 2021 KikooDX */ +#pragma once + +#include + +void tileset_draw(Texture2D tileset); diff --git a/src/editing_area/main.c b/src/editing_area/main.c index 97f054e..59ba8b6 100644 --- a/src/editing_area/main.c +++ b/src/editing_area/main.c @@ -4,9 +4,7 @@ #include "conf.h" #include "editing_area/draw.h" #include "editing_area/level.h" -#include #include -#include #include int editing_area_main(int argc, char **argv) @@ -14,40 +12,37 @@ int editing_area_main(int argc, char **argv) struct Level level; level.data = NULL; - /* check for argument count */ - if (argc != 3) { - fprintf(stderr, "ERROR: expected 2 arguments, got %d\n", - argc - 1); - return EXIT_FAILURE; - }; - /* initialize raylib */ InitWindow(game_window_width, game_window_height, "SLE main window"); SetTargetFPS(target_fps); /* load textures */ const Texture2D tileset = LoadTexture(argv[1]); - assert(tileset.width > 0); - /* load level */ - level_read(&level, argv[2]); + /* only process if tileset is well loaded */ + if (tileset.width > 0) { + /* load level */ + level_read(&level, argv[2]); - while (!WindowShouldClose()) { - /* draw */ - BeginDrawing(); + while (!WindowShouldClose()) { + /* draw */ + BeginDrawing(); - ClearBackground(BLACK); - level_draw(level, tileset); + ClearBackground(BLACK); + level_draw(level, tileset); - EndDrawing(); + EndDrawing(); + } + + /* save level */ + level_write(level, argv[2]); } - /* save level */ - level_write(level, argv[2]); - /* deinit */ level_free(&level); + /* unload textures */ + UnloadTexture(tileset); CloseWindow(); return EXIT_SUCCESS; diff --git a/src/main.c b/src/main.c index 55c5c58..8ca4c01 100644 --- a/src/main.c +++ b/src/main.c @@ -13,8 +13,16 @@ * organize these panels in the way they want to. */ int main(int argc, char **argv) { - pid_t child_process = fork(); + pid_t child_process; + /* check for argument count */ + if (argc != 3) { + fprintf(stderr, "ERROR: expected 2 arguments, got %d\n", + argc - 1); + return EXIT_FAILURE; + }; + + child_process = fork(); if (child_process < 0) { fprintf(stderr, "ERROR: process couldn't fork"); return EXIT_FAILURE; diff --git a/src/tile_picker/draw.c b/src/tile_picker/draw.c new file mode 100644 index 0000000..63edc8e --- /dev/null +++ b/src/tile_picker/draw.c @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* Copyright (C) 2021 KikooDX */ + +#include "tile_picker/draw.h" +#include + +void tileset_draw(Texture2D tileset) +{ + DrawTexture(tileset, 0, 0, WHITE); +} diff --git a/src/tile_picker/main.c b/src/tile_picker/main.c index 2ec875d..fdc27a9 100644 --- a/src/tile_picker/main.c +++ b/src/tile_picker/main.c @@ -1,12 +1,36 @@ /* SPDX-License-Identifier: GPL-3.0-or-later */ /* Copyright (C) 2021 KikooDX */ -#include "editing_area/main.h" -#include +#include "conf.h" +#include "tile_picker/draw.h" +#include #include int tile_picker_main(int argc, char **argv) { - printf("hello you :)\n"); + /* initialize raylib */ + InitWindow(picker_window_width, picker_window_height, + "SLE secondary window"); + SetTargetFPS(target_fps); + /* load textures */ + const Texture2D tileset = LoadTexture(argv[1]); + + /* only process if tileset is well loaded */ + if (tileset.width > 0) { + while (!WindowShouldClose()) { + /* draw */ + BeginDrawing(); + + ClearBackground(BLACK); + tileset_draw(tileset); + + EndDrawing(); + } + } + + /* unload textures */ + UnloadTexture(tileset); + CloseWindow(); + return EXIT_SUCCESS; }