#include "backend/Location.h" #include "backend/Object.h" #include "backend/Enemy.h" #include "backend/print.h" #include "backend/Dungeon.h" #include "../GameController.h" using namespace std; static const unordered_map direction_map = { { Direction::NORTH, "Noord" }, { Direction::EAST, "Oost" }, { Direction::SOUTH, "Zuid" }, { Direction::WEST, "West" }, }; void GameController::cmd_query(string &) { Player & player = this->dungeon->get_player(); Location & location = player.get_location(); lprtf("Je staat bij de locatie %s.\n", location.get_name().c_str()); lprtf("%s\n", location.get_description().c_str()); { lprtf("Zichtbare objecten: "); size_t objects = 0; for (Object * obj : location.get_visible_objects()) { if (objects > 0) lprtf(", "); lprtf("%s", obj->get_displayname().c_str()); objects++; } if (objects == 0) lprtf("(geen)"); lprtf("\n"); } { lprtf("Uitgangen: "); bool first = true; for (Direction direction : DIRECTIONS) { if (location.get_exit(direction) == nullptr) continue; if (!first) lprtf(", "); lprtf("%s", direction_map.at(direction).c_str()); first = false; } lprtf("\n"); } { lprtf("Vijanden: "); size_t enemies = 0; for (Enemy * enemy : location.get_enemies()) { if (enemies > 0) lprtf(", "); lprtf("%s", enemy->get_displayname().c_str()); enemies++; } if (enemies == 0) lprtf("(geen)"); lprtf("\n"); } }