New debug_ui that shows perf data, other debug info, and allows spawning enemies.
This commit is contained in:
parent
4f090159ab
commit
07ce8a4148
12 changed files with 50 additions and 87 deletions
67
main_ui.cpp
67
main_ui.cpp
|
@ -18,58 +18,6 @@ namespace gui {
|
|||
$needs_render = true;
|
||||
}
|
||||
|
||||
void MainUI::debug() {
|
||||
auto& dbg = $level.world->get_the<Debug>();
|
||||
dbg.FPS = !dbg.FPS;
|
||||
dbg.PATHS = !dbg.PATHS;
|
||||
|
||||
if(dbg.FPS) {
|
||||
// it's on now, enable things
|
||||
auto player = $level.world->get_the<Player>();
|
||||
auto& player_combat = $level.world->get<Combat>(player.entity);
|
||||
player_combat.hp = player_combat.max_hp;
|
||||
$overlay_ui.show_text("top_left", L"STATS");
|
||||
} else {
|
||||
// it's off now, close it
|
||||
$overlay_ui.close_text("top_left");
|
||||
}
|
||||
}
|
||||
|
||||
void MainUI::draw_stats() {
|
||||
auto player = $level.world->get_the<Player>();
|
||||
auto player_combat = $level.world->get<Combat>(player.entity);
|
||||
auto map = $level.map;
|
||||
std::wstring stats = fmt::format(L"STATS\n"
|
||||
L"HP: {}\n"
|
||||
L"mean:{:>8.5}\n"
|
||||
L"sdev: {:>8.5}\n"
|
||||
L"min: {:>8.5}\n"
|
||||
L"max: {:>8.5}\n"
|
||||
L"count:{:<10}\n"
|
||||
L"level: {} size: {}x{}\n\n"
|
||||
L"dir: {:0.2},{:0.2}\n\n"
|
||||
L"VSync? {}\n"
|
||||
L"FR Limit: {}\n"
|
||||
L"Debug? {}\n\n",
|
||||
player_combat.hp, $stats.mean(), $stats.stddev(), $stats.min,
|
||||
$stats.max, $stats.n, $level.index, map->width(), map->height(),
|
||||
$rayview.$dir_x, $rayview.$dir_y,
|
||||
VSYNC, FRAME_LIMIT, DEBUG_BUILD);
|
||||
|
||||
$overlay_ui.show_text("top_left", stats);
|
||||
}
|
||||
|
||||
void MainUI::draw_blood() {
|
||||
auto player = $level.world->get_the<Player>();
|
||||
auto player_combat = $level.world->get<Combat>(player.entity);
|
||||
|
||||
if(float(player_combat.hp) / float(player_combat.max_hp) < 0.5) {
|
||||
$overlay_ui.show_sprite("middle", "blood_splatter");
|
||||
} else {
|
||||
$overlay_ui.close_sprite("middle");
|
||||
}
|
||||
}
|
||||
|
||||
void MainUI::init() {
|
||||
auto& player_position = $level.world->get<Position>($level.player);
|
||||
auto player = player_position.location;
|
||||
|
@ -78,7 +26,7 @@ namespace gui {
|
|||
$rayview.set_position(RAY_VIEW_X, RAY_VIEW_Y);
|
||||
$rayview.position_camera(player.x + 0.5, player.y + 0.5);
|
||||
|
||||
$overlay_ui.show_label("top_left", $compass[$compass_dir]);
|
||||
$overlay_ui.show_text("left", $compass[$compass_dir]);
|
||||
|
||||
auto st = textures::get("down_the_well");
|
||||
auto bounds = st.sprite->getLocalBounds();
|
||||
|
@ -94,7 +42,6 @@ namespace gui {
|
|||
}
|
||||
|
||||
void MainUI::render() {
|
||||
auto start = $stats.time_start();
|
||||
|
||||
if($show_level) {
|
||||
auto time = $clock.getElapsedTime();
|
||||
|
@ -110,14 +57,7 @@ namespace gui {
|
|||
$rayview.draw($window);
|
||||
}
|
||||
|
||||
$stats.sample_time(start);
|
||||
|
||||
$overlay_ui.render($window);
|
||||
|
||||
auto debug = $level.world->get_the<Debug>();
|
||||
if(debug.FPS) draw_stats();
|
||||
|
||||
// draw_blood();
|
||||
}
|
||||
|
||||
bool MainUI::play_rotate() {
|
||||
|
@ -144,7 +84,7 @@ namespace gui {
|
|||
void MainUI::plan_rotate(int dir) {
|
||||
// -1 is left, 1 is right
|
||||
$compass_dir = ($compass_dir + dir) % $compass.size();
|
||||
$overlay_ui.show_label("top_left", $compass[$compass_dir]);
|
||||
$overlay_ui.show_text("left", $compass[$compass_dir]);
|
||||
$camera.plan_rotate($rayview, dir);
|
||||
}
|
||||
|
||||
|
@ -170,7 +110,8 @@ namespace gui {
|
|||
$rayview.position_camera(player.x + 0.5, player.y + 0.5);
|
||||
|
||||
$compass_dir = 0;
|
||||
$overlay_ui.show_label("top_left", $compass[$compass_dir]);
|
||||
$overlay_ui.show_text("left", $compass[$compass_dir]);
|
||||
|
||||
dirty();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue