better line wrap for level descriptions

This commit is contained in:
Crispy 2024-12-21 18:44:49 +01:00
parent 1e370201e1
commit 6900dadd9e
2 changed files with 94 additions and 5 deletions

View file

@ -32,6 +32,7 @@ struct Game {
selected_level: usize,
selected_solution: usize,
editing_solution_name: bool,
level_desc_text: ShapedText,
}
fn main() {
@ -71,6 +72,7 @@ impl Game {
selected_level: 0,
selected_solution,
editing_solution_name: false,
level_desc_text: ShapedText::new(20),
}
}
@ -181,10 +183,11 @@ impl Game {
d.draw_text(level.id(), level_list_width + 10, 50, 10, Color::GRAY);
let mut y = 70;
for line in level.description().lines() {
d.draw_text(line, level_list_width + 10, y, 20, Color::WHITE);
y += 30;
}
self.level_desc_text.set_text(level.description());
self.level_desc_text
.update_width(d, d.get_render_width() - level_list_width - 30);
self.level_desc_text.draw(d, level_list_width + 10, y);
y += self.level_desc_text.height() + 10;
if let Some(solutions) = self.solutions.get_mut(level.id()) {
let solution_entry_height = 40;