diff --git a/src/console_input.cc b/src/console_input.cc index 566fab3..0de1201 100644 --- a/src/console_input.cc +++ b/src/console_input.cc @@ -3,40 +3,40 @@ #include console_input::console_input(std::istream &cin): - in{cin} {} + in{cin} {} game_command console_input::get_command() { - std::string cmd; + 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") { + bool use = cmd == "u"; + in >> cmd; - game_command tmp; if (in.eof()) - return game_command_terminate; + return game_command_panic; - 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") { - bool use = cmd == "u"; + return (game_command)((tmp = get_direction(cmd)) == + game_command_panic + ? tmp : tmp - move_north + + (use ? apply_north : attack_north)); + } else { + auto tmp = get_direction(cmd); - in >> cmd; + if (tmp != game_command_panic) + return tmp; + } - if (in.eof()) - return game_command_panic; - - return (game_command)((tmp = get_direction(cmd)) == - game_command_panic - ? tmp : tmp - move_north + - (use ? apply_north : attack_north)); - } else { - auto tmp = get_direction(cmd); - - if (tmp != game_command_panic) - return tmp; - } - - return game_command_pass; + return game_command_pass; }