Now have a full map and a mini map, but I think the mini map will stop rendering sometimes.

This commit is contained in:
Zed A. Shaw 2025-03-23 00:04:23 -04:00
parent 193d97eb48
commit 322797f787
15 changed files with 120 additions and 36 deletions

View file

@ -18,6 +18,8 @@ namespace gui {
$level($levels.current()),
$combat_ui($level),
$status_ui($level),
$map_ui($level),
$mini_map($level),
$font{FONT_FILE_NAME}
{
}
@ -42,12 +44,15 @@ namespace gui {
$main_ui.init();
$combat_ui.init();
$status_ui.init();
$status_ui.log("Welcome to the game!");
$status_ui.update();
$boss_fight_ui = $levels.create_bossfight($level.world);
$boss_fight_ui->init();
$map_ui.init();
$mini_map.init($main_ui.$overlay_ui.$gui);
run_systems();
state(State::IDLE);
}
@ -126,13 +131,13 @@ namespace gui {
state(State::ROTATING);
break;
case MAP_OPEN:
$status_ui.map_open = !$status_ui.map_open;
$map_open = !$map_open;
break;
case ATTACK:
state(State::ATTACKING);
break;
case START_COMBAT:
$main_ui.$overlay_ui.show_sprite("top_right", "cinqueda");
$map_open = false;
state(State::IN_COMBAT);
break;
case CLOSE:
@ -291,10 +296,13 @@ namespace gui {
$boss_fight_ui->render($window);
} else {
$main_ui.render();
$status_ui.render($window);
$combat_ui.render($window);
if($map_open) {
$map_ui.render($window);
} else {
$mini_map.render($window);
}
}
}
@ -359,7 +367,6 @@ namespace gui {
// $status_ui.log(fmt::format("You picked up a {}.",
// std::string(item.data["name"])));
$status_ui.log("You picked up an item.");
$status_ui.update();
} break;
case eGUI::ATTACK:
event(Event::ATTACK);
@ -378,11 +385,9 @@ namespace gui {
auto name = std::any_cast<std::string>(data);
$status_ui.log(fmt::format("NOOP EVENT! {},{} name={}", evt, entity, name));
}
$status_ui.update();
} break;
default:
$status_ui.log(fmt::format("INVALID EVENT! {},{}", evt, entity));
$status_ui.update();
}
}
}
@ -392,8 +397,10 @@ namespace gui {
$level = $levels.next();
$status_ui.update_level($level);
$map_ui.update_level($level);
$combat_ui.update_level($level);
$main_ui.update_level($level);
$boss_fight_ui = $levels.create_bossfight($level.world);
$boss_fight_ui->init();