diff --git a/builder.cpp b/builder.cpp index 412c43a..7f36717 100644 --- a/builder.cpp +++ b/builder.cpp @@ -2,7 +2,6 @@ #include "dbc.hpp" #include "watcher.hpp" #include "game_engine.hpp" -#include "coro.hpp" #include // for milliseconds #include #include @@ -27,7 +26,9 @@ using namespace nlohmann; #define BUF_MAX 1024 -Builder::Builder(GUI &g, GameEngine &engine) : gui(g), game(engine) { +Builder::Builder(GUI &g, GameEngine &engine) + : gui(g), game(engine) +{ std::ifstream infile(".tarpit.json"); json config = json::parse(infile); @@ -35,13 +36,12 @@ Builder::Builder(GUI &g, GameEngine &engine) : gui(g), game(engine) { config["build_cmd"].template get_to(build_cmd); } -Task Builder::run_build() { +void Builder::run_build() { std::regex err_re("(.*?):([0-9]+):([0-9]+):\\s*(.*?):\\s*(.*)\n*"); char buffer[BUF_MAX]; // BUF_MAX is a define already? std::ofstream stats_out; - co_await Pass{}; stats_out.open("stats.csv", std::ios::out | std::ios::app); std::time_t tstamp = std::time(nullptr); @@ -49,18 +49,15 @@ Task Builder::run_build() { dbc::check(stats_out.good(), "Error opening stats.csv file."); dbc::pre("simple test", [&]() { return stats_out.good(); }); - co_yield 1; // need to catch the error message when the command is bad FILE *build_out = popen(build_cmd.c_str(), "r"); dbc::check(build_out != nullptr, "Failed to run command."); - co_yield 2; game.start_round(); while(fgets(buffer, BUF_MAX, build_out) != nullptr) { - co_yield 3; string line(buffer); // yeah, that's probably a problem std::smatch err; @@ -87,10 +84,8 @@ Task Builder::run_build() { gui.you_died(); } } - co_yield 4; } - co_yield 3; game.end_round(); @@ -104,8 +99,6 @@ Task Builder::run_build() { stats_out.close(); dbc::post("a post test", [&]() { return !stats_out.is_open(); }); - - co_return 1000; } void Builder::run() { @@ -127,8 +120,6 @@ void Builder::run() { gui.output(format("Watching directory {} for changes...", git_path)); efsw::WatchID wid = fileWatcher->addWatch(git_path, listener, true); - auto build_task = run_build(); - int rc = gui.main_loop(game, [&] { fileWatcher->watch(); @@ -136,19 +127,15 @@ void Builder::run() { gui.building(); gui.output(format("CHANGES! Running build {}", build_cmd)); - if(!build_task.done()) { - unsigned point = build_task(); - } else { - if(game.is_dead()) { - gui.output("!!!! YOU DIED! !!!! Learn to code luser."); - game.reset(); - } - - listener->reset_state(); - gui.output("^^^^^^^^^^^ END ^^^^^^^^^^^"); - build_task.destroy(); - build_task = run_build(); + run_build(); + + if(game.is_dead()) { + gui.output("!!!! YOU DIED! !!!! Learn to code luser."); + game.reset(); } + + listener->reset_state(); + gui.output("^^^^^^^^^^^ END ^^^^^^^^^^^"); } return 0; diff --git a/builder.hpp b/builder.hpp index 96b0b12..ace5c38 100644 --- a/builder.hpp +++ b/builder.hpp @@ -1,7 +1,6 @@ #pragma once #include "gui.hpp" #include "game_engine.hpp" -#include "coro.hpp" using std::string; @@ -15,7 +14,7 @@ class Builder { Builder(GUI &g, GameEngine &engine); - Task run_build(); + void run_build(); void run(); }; diff --git a/meson.build b/meson.build index e81e092..ae63084 100644 --- a/meson.build +++ b/meson.build @@ -32,8 +32,7 @@ executable('escape_turings_tarpit', 'builder.cpp', 'sfmlgui.cpp', 'escape_turings_tarpit.cpp'], - dependencies: dependencies, - cpp_args: '-fcoroutines') + dependencies: dependencies) executable('regtest', 'regtest.cpp', dependencies: [fmt])