#include "gui_fsm.hpp" #include "textures.hpp" #include "sound.hpp" #include "autowalker.hpp" #include int main(int argc, char* argv[]) { try { textures::init(); sound::init(); sound::mute(true); gui::FSM main; main.event(gui::Event::STARTED); Autowalker walker(main); sound::play("ambient_1", true); if(argc > 1 && argv[1][0] == 't') { walker.start_autowalk(); } 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(); } } else{ main.event(gui::Event::TICK); } 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"; } }