New debug_ui that shows perf data, other debug info, and allows spawning enemies.

This commit is contained in:
Zed A. Shaw 2025-04-05 12:09:19 -04:00
parent 4f090159ab
commit 07ce8a4148
12 changed files with 50 additions and 87 deletions

View file

@ -15,6 +15,7 @@ namespace gui {
FSM::FSM() :
$window(sf::VideoMode({SCREEN_WIDTH, SCREEN_HEIGHT}), "Zed's Raycaster Thing"),
$debug_ui($levels),
$main_ui($window),
$level($levels.current()),
$combat_ui($level),
@ -43,6 +44,12 @@ namespace gui {
$main_ui.update_level($level);
$level.world->set_the<Debug>({});
$main_ui.init();
// BUG: maybe this is a function on main_ui?
auto cell = $main_ui.$overlay_ui.$gui.cell_for("left");
$debug_ui.init(cell);
$debug_ui.update_level($level);
$combat_ui.init();
$status_ui.init();
@ -234,7 +241,8 @@ namespace gui {
event(Event::STAIRS_DOWN);
}
} else {
$combat_ui.$gui.mouse(pos.x, pos.y);
$debug_ui.mouse(pos.x, pos.y);
$combat_ui.mouse(pos.x, pos.y);
$status_ui.mouse(pos.x, pos.y);
$main_ui.mouse(pos.x, pos.y);
}
@ -264,7 +272,7 @@ namespace gui {
event(Event::MOVE_LEFT);
break;
case KEY::R:
$main_ui.$stats.reset();
dbc::log("HEY! DIPSHIT! You need to move debug ui so you can rest stats.");
break;
case KEY::M:
event(Event::MAP_OPEN);
@ -277,16 +285,11 @@ namespace gui {
break;
case KEY::P:
sound::mute(false);
$main_ui.debug();
$debug_ui.debug();
break;
case KEY::O:
autowalking = true;
break;
case KEY::Equal:
$levels.spawn_enemy("KNIGHT");
$main_ui.update_level($level);
run_systems();
break;
case KEY::L:
event(Event::STAIRS_DOWN);
break;
@ -301,7 +304,11 @@ namespace gui {
if(in_state(State::NEXT_LEVEL)) {
$boss_fight_ui->render($window);
} else {
// BUG: maybe pass the stats to main_ui for this?
auto start = $debug_ui.time_start();
$main_ui.render();
$debug_ui.sample_time(start);
$debug_ui.render($window);
$status_ui.render($window);
$combat_ui.render($window);
if($map_open) {
@ -365,6 +372,11 @@ namespace gui {
case eGUI::COMBAT_START:
event(Event::START_COMBAT);
break;
case eGUI::ENEMY_SPAWN:
$debug_ui.update_level($level);
$main_ui.update_level($level);
run_systems();
break;
case eGUI::NO_NEIGHBORS:
event(Event::STOP_COMBAT);
break;
@ -402,6 +414,7 @@ namespace gui {
$levels.create_level($level.world);
$level = $levels.next();
$debug_ui.update_level($level);
$status_ui.update_level($level);
$map_ui.update_level($level);
$mini_map.update_level($level);