#pragma once #include #include "game_engine.hpp" #include #include #include #include using std::string; class Builder; class SoundQuip { public: sf::Sound sound; sf::SoundBuffer buffer; bool initialized; SoundQuip() {}; void load(nlohmann::json &data, const char *in_file); void play(); void stop(); }; class GUI { std::vector _lines; SoundQuip you_died_sound; SoundQuip build_works_sound; SoundQuip build_failed_sound; SoundQuip building_sound; public: GUI(); // FOUND BUG: adding this found that I was accidentally copying the gui, really it shouldn't be copyable GUI(GUI &g) = delete; void output(const string msg); int main_loop(GameEngine &game, Builder &builder); void build_works(); void build_failed(bool play_sound, const string &command); void you_died(); void building(); };