From b68fd249caba2baa0bb1235e5d20cc5d548b7fae Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Thu, 6 Mar 2025 22:22:42 -0500 Subject: [PATCH] Catch a system error that OSX's SFML produces since it's at the end and looks like just a cleanup mistake. --- main.cpp | 62 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/main.cpp b/main.cpp index d5aa686..06a679b 100644 --- a/main.cpp +++ b/main.cpp @@ -2,41 +2,49 @@ #include "textures.hpp" #include "sound.hpp" #include "autowalker.hpp" +#include int main(int argc, char* argv[]) { - textures::init(); - sound::init(); - sound::mute(false); - gui::FSM main; - main.event(gui::Event::STARTED); - Autowalker walker(main); + try { + textures::init(); + sound::init(); + sound::mute(false); + gui::FSM main; + main.event(gui::Event::STARTED); + Autowalker walker(main); - sound::play("ambient_1", true); + sound::play("ambient_1", true); - if(argc > 1 && argv[1][0] == 't') { - walker.start_autowalk(); - } + if(argc > 1 && argv[1][0] == 't') { + walker.start_autowalk(); + } - while(main.active()) { - main.render(); + while(main.active()) { + main.render(); - // ZED: need to sort out how to deal with this in the FSM - if(main.in_state(gui::State::IDLE) - || main.in_state(gui::State::NEXT_LEVEL) - || main.in_state(gui::State::MAPPING) - || main.in_state(gui::State::IN_COMBAT)) - { - if(main.autowalking) { - walker.autowalk(); - } else { - main.keyboard_mouse(); + // ZED: need to sort out how to deal with this in the FSM + if(main.in_state(gui::State::IDLE) + || main.in_state(gui::State::NEXT_LEVEL) + || main.in_state(gui::State::MAPPING) + || main.in_state(gui::State::IN_COMBAT)) + { + if(main.autowalking) { + walker.autowalk(); + } else { + main.keyboard_mouse(); + } + } else{ + main.event(gui::Event::TICK); } - } else{ - main.event(gui::Event::TICK); + + main.handle_world_events(); } - main.handle_world_events(); + return 0; + } catch(const std::system_error& e) { + std::cout << "WARNING: On OSX you'll get this error on shutdown.\n"; + std::cout << "Caught system_error with code " + "[" << e.code() << "] meaning " + "[" << e.what() << "]\n"; } - - return 0; }