|
|
|
@ -13,12 +13,28 @@ |
|
|
|
|
#include "ftxui/component/loop.hpp" // for Loop |
|
|
|
|
#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive |
|
|
|
|
#include <vector> |
|
|
|
|
#include <SFML/Audio.hpp> |
|
|
|
|
|
|
|
|
|
using namespace ftxui; |
|
|
|
|
using namespace std; |
|
|
|
|
using namespace fmt; |
|
|
|
|
namespace fs = std::filesystem; |
|
|
|
|
|
|
|
|
|
void load_sound(sf::Sound &sound, sf::SoundBuffer &buffer, const char *in_file) { |
|
|
|
|
if(!buffer.loadFromFile(in_file)) { |
|
|
|
|
fmt::println("Failed to load {}", in_file); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sound.setBuffer(buffer); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GUI::GUI() { |
|
|
|
|
load_sound(you_died_sound, you_died_buffer, "./assets/you_died.wav"); |
|
|
|
|
load_sound(build_works_sound, build_works_buffer, "./assets/build_works.wav"); |
|
|
|
|
load_sound(build_failed_sound, build_failed_buffer, "./assets/build_failed.wav"); |
|
|
|
|
load_sound(building_sound, building_buffer, "./assets/building.wav"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GUI::output(const string &msg) { |
|
|
|
|
lines.push_back(msg); |
|
|
|
|
} |
|
|
|
@ -98,3 +114,27 @@ int GUI::main_loop(GameEngine &game, std::function<bool()> runner) { |
|
|
|
|
|
|
|
|
|
return EXIT_SUCCESS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GUI::build_works() { |
|
|
|
|
building_sound.stop(); |
|
|
|
|
build_works_sound.play(); |
|
|
|
|
output("BUILD FINISHED!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GUI::build_failed(const string &command) { |
|
|
|
|
building_sound.stop(); |
|
|
|
|
build_failed_sound.play(); |
|
|
|
|
output(format("!!! BUILD FAILED. Your command correct? '{}'", command)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GUI::you_died() { |
|
|
|
|
building_sound.stop(); |
|
|
|
|
you_died_sound.play(); |
|
|
|
|
output("YOU DIED!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GUI::building() { |
|
|
|
|
output("############# START ############"); |
|
|
|
|
output(">>>> Will it Build?"); |
|
|
|
|
building_sound.play(); |
|
|
|
|
} |
|
|
|
|