43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
#include <memory>
|
|
#include <guecs/ui.hpp>
|
|
#include "gui/combat_ui.hpp"
|
|
#include "scene.hpp"
|
|
#include "camera.hpp"
|
|
|
|
namespace components {
|
|
struct Animation;
|
|
}
|
|
|
|
// needed to break an include cycle
|
|
namespace GameDB {
|
|
struct Level;
|
|
}
|
|
|
|
namespace boss {
|
|
using std::shared_ptr;
|
|
|
|
struct UI {
|
|
shared_ptr<DinkyECS::World> $world = nullptr;
|
|
DinkyECS::Entity $boss_id = DinkyECS::NONE;
|
|
DinkyECS::Entity $player_id = DinkyECS::NONE;
|
|
gui::CombatUI $combat_ui;
|
|
scene::Engine $arena;
|
|
guecs::UI $actions;
|
|
sf::RenderTexture $view_texture;
|
|
sf::Sprite $view_sprite;
|
|
cinematic::Camera $camera;
|
|
|
|
UI(shared_ptr<DinkyECS::World> world, DinkyECS::Entity boss_id, DinkyECS::Entity player_id);
|
|
|
|
void init();
|
|
void render(sf::RenderWindow& window);
|
|
bool mouse(float x, float y, guecs::Modifiers mods);
|
|
void status(const std::wstring& msg);
|
|
void move_actor(const std::string& actor, const std::string& cell_name);
|
|
void animate_actor(const std::string& actor);
|
|
void update_stats();
|
|
void play_animations();
|
|
void zoom(const std::string &cell);
|
|
};
|
|
}
|