// playfield_grid.cpp - Implementació de la grilla de fons // © 2026 JailDesigner #include "core/graphics/playfield_grid.hpp" #include "core/defaults.hpp" #include "core/rendering/line_renderer.hpp" namespace Graphics { PlayfieldGrid::PlayfieldGrid(Rendering::Renderer* renderer) : renderer_(renderer) {} void PlayfieldGrid::draw() const { const SDL_FRect& zona = Defaults::Zones::PLAYAREA; const float CELL_W = zona.w / static_cast(Defaults::Grid::COLUMNS); const float CELL_H = zona.h / static_cast(Defaults::Grid::ROWS); const int X1 = static_cast(zona.x); const int Y1 = static_cast(zona.y); const int X2 = static_cast(zona.x + zona.w); const int Y2 = static_cast(zona.y + zona.h); // Línies verticals interiors (i=1..COLUMNS-1: no repetim el border) for (int i = 1; i < Defaults::Grid::COLUMNS; i++) { const int X = static_cast(zona.x + (static_cast(i) * CELL_W)); Rendering::linea(renderer_, X, Y1, X, Y2, Defaults::Grid::BRIGHTNESS); } // Línies horitzontals interiors (j=1..ROWS-1: no repetim el border) for (int j = 1; j < Defaults::Grid::ROWS; j++) { const int Y = static_cast(zona.y + (static_cast(j) * CELL_H)); Rendering::linea(renderer_, X1, Y, X2, Y, Defaults::Grid::BRIGHTNESS); } } } // namespace Graphics