Compare commits
No commits in common. "8fdaadaf12e57cb0ad22b0b68fbf461a9a900b6a" and "e6072c9f1e4c29e038d6125fb0215e6f8075d0a8" have entirely different histories.
8fdaadaf12
...
e6072c9f1e
6 changed files with 21 additions and 34 deletions
|
|
@ -277,9 +277,9 @@
|
||||||
"frame_height": 1080
|
"frame_height": 1080
|
||||||
},
|
},
|
||||||
"test_story":
|
"test_story":
|
||||||
{"path": "assets/story/rat_king_fight.jpg",
|
{"path": "assets/story/test_storyboard.png",
|
||||||
"frame_width": 3840,
|
"frame_width": 1280,
|
||||||
"frame_height": 2160
|
"frame_height": 720
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"worldgen": {
|
"worldgen": {
|
||||||
|
|
|
||||||
36
gui/fsm.cpp
36
gui/fsm.cpp
|
|
@ -213,9 +213,6 @@ namespace gui {
|
||||||
|
|
||||||
void FSM::BOSS_FIGHT(Event ev, std::any data) {
|
void FSM::BOSS_FIGHT(Event ev, std::any data) {
|
||||||
dbc::check($boss_fight != nullptr, "$boss_fight not initialized");
|
dbc::check($boss_fight != nullptr, "$boss_fight not initialized");
|
||||||
|
|
||||||
if($boss_scene->playing()) return;
|
|
||||||
|
|
||||||
$boss_fight->mouse_pos = mouse_position();
|
$boss_fight->mouse_pos = mouse_position();
|
||||||
|
|
||||||
if(ev == gui::Event::QUIT) {
|
if(ev == gui::Event::QUIT) {
|
||||||
|
|
@ -383,31 +380,31 @@ namespace gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::draw_gui() {
|
void FSM::draw_gui() {
|
||||||
if($debug_ui.active) {
|
if(in_state(State::BOSS_FIGHT)) {
|
||||||
debug_render();
|
$boss_fight->render($window);
|
||||||
} else {
|
} else {
|
||||||
$main_ui.render();
|
if($debug_ui.active) {
|
||||||
}
|
debug_render();
|
||||||
|
} else {
|
||||||
|
$main_ui.render();
|
||||||
|
}
|
||||||
|
|
||||||
$status_ui.render($window);
|
$status_ui.render($window);
|
||||||
$combat_ui.render($window);
|
$combat_ui.render($window);
|
||||||
if($loot_ui.active) $loot_ui.render($window);
|
if($loot_ui.active) $loot_ui.render($window);
|
||||||
|
|
||||||
if(in_state(State::LOOTING)) $dnd_loot.render();
|
if(in_state(State::LOOTING)) $dnd_loot.render();
|
||||||
|
|
||||||
if($map_open) {
|
if($map_open) {
|
||||||
$map_ui.render($window, $main_ui.$compass_dir);
|
$map_ui.render($window, $main_ui.$compass_dir);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::render() {
|
void FSM::render() {
|
||||||
if(in_state(State::BOSS_FIGHT)) {
|
if(in_state(State::BOSS_FIGHT)) {
|
||||||
$window.clear();
|
$window.clear();
|
||||||
if($boss_scene->playing()) {
|
$boss_fight->render($window);
|
||||||
$boss_scene->render($window);
|
|
||||||
} else {
|
|
||||||
$boss_fight->render($window);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
draw_gui();
|
draw_gui();
|
||||||
}
|
}
|
||||||
|
|
@ -541,10 +538,7 @@ namespace gui {
|
||||||
|
|
||||||
void FSM::next_level(bool bossfight) {
|
void FSM::next_level(bool bossfight) {
|
||||||
if(bossfight) {
|
if(bossfight) {
|
||||||
$boss_scene = std::make_shared<storyboard::UI>("rat_king");
|
|
||||||
$boss_fight = boss::System::create_bossfight();
|
$boss_fight = boss::System::create_bossfight();
|
||||||
$boss_scene->init();
|
|
||||||
dbc::check($boss_scene->playing(), "boss scene doesn't play");
|
|
||||||
} else {
|
} else {
|
||||||
GameDB::create_level();
|
GameDB::create_level();
|
||||||
$status_ui.update_level();
|
$status_ui.update_level();
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
#include "events.hpp"
|
#include "events.hpp"
|
||||||
#include "gui/event_router.hpp"
|
#include "gui/event_router.hpp"
|
||||||
#include "gui/dnd_loot.hpp"
|
#include "gui/dnd_loot.hpp"
|
||||||
#include "storyboard/ui.hpp"
|
|
||||||
|
|
||||||
namespace gui {
|
namespace gui {
|
||||||
enum class State {
|
enum class State {
|
||||||
|
|
@ -37,7 +36,6 @@ namespace gui {
|
||||||
DebugUI $debug_ui;
|
DebugUI $debug_ui;
|
||||||
MainUI $main_ui;
|
MainUI $main_ui;
|
||||||
std::shared_ptr<boss::Fight> $boss_fight = nullptr;
|
std::shared_ptr<boss::Fight> $boss_fight = nullptr;
|
||||||
std::shared_ptr<storyboard::UI> $boss_scene = nullptr;
|
|
||||||
CombatUI $combat_ui;
|
CombatUI $combat_ui;
|
||||||
StatusUI $status_ui;
|
StatusUI $status_ui;
|
||||||
MapViewUI $map_ui;
|
MapViewUI $map_ui;
|
||||||
|
|
|
||||||
|
|
@ -41,16 +41,12 @@ namespace storyboard {
|
||||||
|
|
||||||
$camera.render($view_texture);
|
$camera.render($view_texture);
|
||||||
$ui.render($view_texture);
|
$ui.render($view_texture);
|
||||||
// $ui.debug_layout($view_texture);
|
$ui.debug_layout($view_texture);
|
||||||
|
|
||||||
$view_texture.display();
|
$view_texture.display();
|
||||||
window.draw($view_sprite);
|
window.draw($view_sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UI::playing() {
|
|
||||||
return $audio->getStatus() == sf::SoundSource::Status::Playing;
|
|
||||||
}
|
|
||||||
|
|
||||||
sf::Time parse_time_code(const std::string& time) {
|
sf::Time parse_time_code(const std::string& time) {
|
||||||
std::chrono::seconds out{};
|
std::chrono::seconds out{};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ namespace storyboard {
|
||||||
void zoom(const std::string &cell_name);
|
void zoom(const std::string &cell_name);
|
||||||
void reset();
|
void reset();
|
||||||
void track_audio();
|
void track_audio();
|
||||||
bool playing();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,8 @@ int main(int, char*[]) {
|
||||||
storyboard::UI main("rat_king");
|
storyboard::UI main("rat_king");
|
||||||
main.init();
|
main.init();
|
||||||
|
|
||||||
while(main.playing()) {
|
while(true) {
|
||||||
|
|
||||||
while(const auto ev = window.pollEvent()) {
|
while(const auto ev = window.pollEvent()) {
|
||||||
auto gui_ev = router.process_event(ev);
|
auto gui_ev = router.process_event(ev);
|
||||||
auto mouse_pos = window.mapPixelToCoords(router.position);
|
auto mouse_pos = window.mapPixelToCoords(router.position);
|
||||||
|
|
@ -40,7 +41,6 @@ int main(int, char*[]) {
|
||||||
main.mouse(mouse_pos.x, mouse_pos.y, guecs::NO_MODS);
|
main.mouse(mouse_pos.x, mouse_pos.y, guecs::NO_MODS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main.render(window);
|
main.render(window);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue