diff --git a/assets/config.json b/assets/config.json index 11746fa..89e80a1 100644 --- a/assets/config.json +++ b/assets/config.json @@ -277,9 +277,9 @@ "frame_height": 1080 }, "test_story": - {"path": "assets/story/rat_king_fight.jpg", - "frame_width": 3840, - "frame_height": 2160 + {"path": "assets/story/test_storyboard.png", + "frame_width": 1280, + "frame_height": 720 } }, "worldgen": { diff --git a/gui/fsm.cpp b/gui/fsm.cpp index c3a4140..07c5186 100644 --- a/gui/fsm.cpp +++ b/gui/fsm.cpp @@ -213,9 +213,6 @@ namespace gui { void FSM::BOSS_FIGHT(Event ev, std::any data) { dbc::check($boss_fight != nullptr, "$boss_fight not initialized"); - - if($boss_scene->playing()) return; - $boss_fight->mouse_pos = mouse_position(); if(ev == gui::Event::QUIT) { @@ -383,31 +380,31 @@ namespace gui { } void FSM::draw_gui() { - if($debug_ui.active) { - debug_render(); + if(in_state(State::BOSS_FIGHT)) { + $boss_fight->render($window); } else { - $main_ui.render(); - } + if($debug_ui.active) { + debug_render(); + } else { + $main_ui.render(); + } - $status_ui.render($window); - $combat_ui.render($window); - if($loot_ui.active) $loot_ui.render($window); + $status_ui.render($window); + $combat_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) { - $map_ui.render($window, $main_ui.$compass_dir); + if($map_open) { + $map_ui.render($window, $main_ui.$compass_dir); + } } } void FSM::render() { if(in_state(State::BOSS_FIGHT)) { $window.clear(); - if($boss_scene->playing()) { - $boss_scene->render($window); - } else { - $boss_fight->render($window); - } + $boss_fight->render($window); } else { draw_gui(); } @@ -541,10 +538,7 @@ namespace gui { void FSM::next_level(bool bossfight) { if(bossfight) { - $boss_scene = std::make_shared("rat_king"); $boss_fight = boss::System::create_bossfight(); - $boss_scene->init(); - dbc::check($boss_scene->playing(), "boss scene doesn't play"); } else { GameDB::create_level(); $status_ui.update_level(); diff --git a/gui/fsm.hpp b/gui/fsm.hpp index ad628d3..c7fe909 100644 --- a/gui/fsm.hpp +++ b/gui/fsm.hpp @@ -12,7 +12,6 @@ #include "events.hpp" #include "gui/event_router.hpp" #include "gui/dnd_loot.hpp" -#include "storyboard/ui.hpp" namespace gui { enum class State { @@ -37,7 +36,6 @@ namespace gui { DebugUI $debug_ui; MainUI $main_ui; std::shared_ptr $boss_fight = nullptr; - std::shared_ptr $boss_scene = nullptr; CombatUI $combat_ui; StatusUI $status_ui; MapViewUI $map_ui; diff --git a/storyboard/ui.cpp b/storyboard/ui.cpp index 94571d6..1e1278c 100644 --- a/storyboard/ui.cpp +++ b/storyboard/ui.cpp @@ -41,16 +41,12 @@ namespace storyboard { $camera.render($view_texture); $ui.render($view_texture); - // $ui.debug_layout($view_texture); + $ui.debug_layout($view_texture); $view_texture.display(); window.draw($view_sprite); } - bool UI::playing() { - return $audio->getStatus() == sf::SoundSource::Status::Playing; - } - sf::Time parse_time_code(const std::string& time) { std::chrono::seconds out{}; diff --git a/storyboard/ui.hpp b/storyboard/ui.hpp index 87a7d19..601962f 100644 --- a/storyboard/ui.hpp +++ b/storyboard/ui.hpp @@ -26,7 +26,6 @@ namespace storyboard { void zoom(const std::string &cell_name); void reset(); void track_audio(); - bool playing(); }; } diff --git a/tools/storyboard.cpp b/tools/storyboard.cpp index b32a436..540cfcd 100644 --- a/tools/storyboard.cpp +++ b/tools/storyboard.cpp @@ -29,7 +29,8 @@ int main(int, char*[]) { storyboard::UI main("rat_king"); main.init(); - while(main.playing()) { + while(true) { + while(const auto ev = window.pollEvent()) { auto gui_ev = router.process_event(ev); 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.render(window); window.display(); }