.. _program_listing_file_gui_API_TileMap_Tilemap.cpp: Program Listing for File Tilemap.cpp ==================================== |exhale_lsh| :ref:`Return to documentation for file ` (``gui/API/TileMap/Tilemap.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "Tilemap.hpp" #include "API/Inventory/Inventory.hpp" std::vector> Tilemap::GetTilemap() { return _tilemap; } std::pair Tilemap::GetSize() const { return {_sizeX, _sizeY}; } void Tilemap::SetSize(int x, int y) { _sizeX = x; _sizeY = y; Tile tmp; _tilemap.clear(); _tilemap.resize(y); for (int i = 0; i < y; i++) { for (int j = 0; j < x; j++) { tmp.SetPosition(j, i); _tilemap[i].push_back(tmp); } } } void Tilemap::SetTileInventory( int x, int y, size_t food, size_t linemate, size_t deraumere, size_t sibur, size_t mendiane, size_t phiras, size_t thystame) { _tilemap[y][x].SetInventory( food, linemate, deraumere, sibur, mendiane, phiras, thystame); } void Tilemap::AddToInventory(int x, int y, Item item, int quantity) { _tilemap[y][x].AddToInventory(item, quantity); } Inventory Tilemap::GetTileInventory(int x, int y) { return _tilemap[y][x].GetInventory(); } int Tilemap::GetItemQuantity(Item id) { int quantity = 0; for (auto &tile: _tilemap) { for (auto t: tile) { switch (id) { case Item::FOOD: quantity += t.GetInventory().GetInventory()["food"]; break; case Item::LINEMATE: quantity += t.GetInventory().GetInventory()["linemate"]; break; case Item::DERAUMERE: quantity += t.GetInventory().GetInventory()["deraumere"]; break; case Item::SIBUR: quantity += t.GetInventory().GetInventory()["sibur"]; break; case Item::MENDIANE: quantity += t.GetInventory().GetInventory()["mendiane"]; break; case Item::PHIRAS: quantity += t.GetInventory().GetInventory()["phiras"]; break; case Item::THYSTAME: quantity += t.GetInventory().GetInventory()["thystame"]; break; default: continue; } } } return quantity; }