All of the UIs should be cleared out, and that just leaves the tests.

This commit is contained in:
Zed A. Shaw 2025-08-19 23:58:42 -04:00
parent d5ff57e025
commit 564f9842a2
23 changed files with 126 additions and 145 deletions

View file

@ -3,6 +3,7 @@
#include "easings.hpp"
#include <fmt/xchar.h>
#include "constants.hpp"
#include "game_level.hpp"
namespace gui {
using namespace components;
@ -20,7 +21,7 @@ namespace gui {
}
void MainUI::init() {
auto& player_position = $level.world->get<Position>($level.player);
auto& player_position = Game::player_position();
auto player = player_position.location;
$rayview->init_shaders();
@ -31,9 +32,10 @@ namespace gui {
}
DinkyECS::Entity MainUI::camera_aim() {
auto& level = Game::current();
// what happens if there's two things at that spot
if($level.collision->something_there($rayview->aiming_at)) {
return $level.collision->get($rayview->aiming_at);
if(level.collision->something_there($rayview->aiming_at)) {
return level.collision->get($rayview->aiming_at);
} else {
return 0;
}
@ -88,27 +90,26 @@ namespace gui {
}
void MainUI::dead_entity(DinkyECS::Entity entity) {
// BUG: this is kind of weird, but I think when I switch to dead bodies for things
// (see System::distribute_loot) then this can be fixed or improved
if($level.world->has<components::Sprite>(entity)) {
auto &sprite = $level.world->get<components::Sprite>(entity);
auto world = Game::current_world();
if(world->has<components::Sprite>(entity)) {
auto &sprite = world->get<components::Sprite>(entity);
$rayview->update_sprite(entity, sprite);
}
}
void MainUI::update_level(GameLevel level) {
$level = level;
auto& player_position = $level.world->get<Position>($level.player);
void MainUI::update_level() {
auto& level = Game::current();
auto& player_position = Game::player_position();
auto player = player_position.location;
$rayview->update_level($level);
$rayview->update_level(level);
$rayview->position_camera(player.x + 0.5, player.y + 0.5);
player_position.aiming_at = $rayview->aiming_at;
$compass_dir = 0;
$overlay_ui.update_level(level);
$overlay_ui.update_level();
dirty();
}