#include "file_input.h" #include #include file_input::file_input(std::ifstream &&ifs): in{std::move(ifs)} {} game_command file_input::get_command() { std::string cmd; in >> cmd; game_command tmp; if (in.eof()) return game_command_terminate; if (cmd == "q") return game_command_terminate; else if (cmd == "f") return the_world; else if (cmd == "r") return game_restart; else if (cmd == "u" || cmd == "a") { in >> cmd; if (in.eof()) return game_command_panic; return (game_command)((tmp = get_direction(cmd)) == game_command_panic ? tmp : tmp - move_north + (cmd == "u" ? apply_north : attack_north)); } else // is just moving return get_direction(cmd); return game_command_pass; }