From 384c811a2971b1881c70ee4a95f64130eea8e351 Mon Sep 17 00:00:00 2001 From: lejulien Date: Thu, 15 Jan 2026 09:13:53 +0100 Subject: [PATCH] grid: add a guide grid --- CMakeLists.txt | 1 + includes/grid.hpp | 28 ++++++++++++++++++++++++++++ src/grid.cpp | 27 +++++++++++++++++++++++++++ src/main.cpp | 3 +++ 4 files changed, 59 insertions(+) create mode 100644 includes/grid.hpp create mode 100644 src/grid.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d2ebdad..f79d165 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,7 @@ include_directories(${imgui_SOURCE_DIR} ${rlImGui_SOURCE_DIR}) set(SRC_CXX_FILES "./src/main.cpp" "./src/rules.cpp" "./src/world.cpp" + "./src/grid.cpp" "./src/render.cpp" "./src/control_menu.cpp" "./src/settings_menu.cpp" diff --git a/includes/grid.hpp b/includes/grid.hpp new file mode 100644 index 0000000..3ea7d1c --- /dev/null +++ b/includes/grid.hpp @@ -0,0 +1,28 @@ +/* +* File name: grid.hpp +* Author: lejulien +* Date created: 01-01-1970 00:59:59 +// Date modified: 12-01-2026 21:30:10 +* ------ +*/ + +#pragma once + +#include +#include +#include +#include + +namespace gol { + +class Grid { + public: + Grid(std::shared_ptr); + ~Grid() = default; + void display(); + + private: + std::shared_ptr context_; +}; + +}; // namespace gol diff --git a/src/grid.cpp b/src/grid.cpp new file mode 100644 index 0000000..611b436 --- /dev/null +++ b/src/grid.cpp @@ -0,0 +1,27 @@ +/* +* File name: grid.cpp +* Author: lejulien +* Date created: 01-01-1970 00:59:59 +// Date modified: 12-01-2026 21:30:10 +* ------ +*/ + +#include + +#include + +namespace gol { + +Grid::Grid(std::shared_ptr context) : context_(context) {} + +void Grid::display() { + auto cell_size = context_->settings_menu->getCellSize(); + for (int j = 0; j < context_->world->getHeight(); j++) { + for (int i = 0; i < context_->world->getWidth(); i++) { + DrawRectangleLines(i * cell_size, j * cell_size, cell_size, cell_size, + GRAY); + } + } +} + +} // namespace gol diff --git a/src/main.cpp b/src/main.cpp index 80fdaf4..ed1e923 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,6 +26,7 @@ #include #include #include +#include int main(int ac, char **av) { std::shared_ptr context = std::make_shared(); @@ -109,6 +110,7 @@ int main(int ac, char **av) { context->selection = std::make_shared(context); context->paterns_menu = std::make_shared(context); context->patern_preview = std::make_shared(context); + gol::Grid grid(context); // Speed handling values float sim_speed = 1.0f; @@ -155,6 +157,7 @@ int main(int ac, char **av) { } BeginDrawing(); ClearBackground(BLACK); + grid.display(); context->render->display(context->world); context->selection->display(); context->patern_preview->display();