#pragma once #include #include "game_engine.hpp" #include #include #include #include using std::string; 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(); void output(const string &msg); int main_loop(GameEngine &game, std::function runner); void build_works(); void build_failed(bool play_sound, const string &command); void you_died(); void building(); };