From 45ad16c010345df5aedefd3dd2d6ee2dfffa935b Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Sat, 15 Feb 2025 22:23:24 -0500 Subject: [PATCH] A bit more refinement. --- combat_ui.hpp | 2 +- lel.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/combat_ui.hpp b/combat_ui.hpp index a0bfc67..d5b5326 100644 --- a/combat_ui.hpp +++ b/combat_ui.hpp @@ -11,7 +11,7 @@ namespace gui { class CombatUI { public: std::string $grid = - "[*%(200)hp | _ | *%(200)ap | _ ]" + "[*%(200,90)hp | _ | *%(200,90)ap | _ ]" "[attack1 | attack2 | attack3 | heal]"; lel::Parser $layout; GameLevel $level; diff --git a/lel.cpp b/lel.cpp index 11974c5..22f8028 100644 --- a/lel.cpp +++ b/lel.cpp @@ -26,7 +26,6 @@ namespace lel { cur = {cur.col + 1, cur.row}; } - void Parser::finalize() { dbc::check(columns > 0, "columns are 0"); dbc::check(rows > 0, "rows are 0"); @@ -54,18 +53,21 @@ namespace lel { cell.w = cell.expand ? std::min(cell.max_w, grid_w) : std::min(cell_width, cell.max_w); cell.h = cell.expand ? std::min(cell.max_h, grid_h) : std::min(cell_height, cell.max_h); + + dbc::check(cell.h > 0, fmt::format("invalid height cell {}", name)); + dbc::check(cell.w > 0, fmt::format("invalid width cell {}", name)); + + // keep the midpoint since it is used a lot cell.mid_x = std::midpoint(cell.x, cell.x + cell.w); cell.mid_y = std::midpoint(cell.y, cell.y + cell.h); + // perform alignments if(cell.right) cell.x += cell_width - cell.w; if(cell.bottom) cell.y += cell_height - cell.h; if(cell.center) { cell.x = cell.mid_x - cell.w / 2; cell.y = cell.mid_y - cell.h / 2; } - - dbc::check(cell.h > 0, fmt::format("invalid height cell {}", name)); - dbc::check(cell.w > 0, fmt::format("invalid width cell {}", name)); } }