From 80d8a6738bda6529a65c3f805232babe427625b9 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 10 Sep 2024 23:02:15 +0300 Subject: [PATCH] add SurroundMap.resize(...) --- src/world/generator/SurroundMap.cpp | 11 ++++++++--- src/world/generator/SurroundMap.hpp | 8 +++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/world/generator/SurroundMap.cpp b/src/world/generator/SurroundMap.cpp index 7fed03f2..07fa7087 100644 --- a/src/world/generator/SurroundMap.cpp +++ b/src/world/generator/SurroundMap.cpp @@ -4,9 +4,9 @@ #include #include -SurroundMap::SurroundMap(int loadDistance, int8_t maxLevel) - : areaMap((loadDistance + maxLevel) * 2 + 1, - (loadDistance + maxLevel) * 2 + 1), +SurroundMap::SurroundMap(int maxLevelRadius, int8_t maxLevel) + : areaMap((maxLevelRadius + maxLevel) * 2 + 1, + (maxLevelRadius + maxLevel) * 2 + 1), levelCallbacks(maxLevel), maxLevel(maxLevel) {} @@ -43,6 +43,11 @@ void SurroundMap::upgrade(int x, int y, int8_t level) { } } +void SurroundMap::resize(int maxLevelRadius) { + areaMap.resize((maxLevelRadius + maxLevel) * 2 + 1, + (maxLevelRadius + maxLevel) * 2 + 1); +} + void SurroundMap::completeAt(int x, int y) { if (!areaMap.isInside(x - maxLevel + 1, y - maxLevel + 1) || !areaMap.isInside(x + maxLevel - 1, y + maxLevel - 1)) { diff --git a/src/world/generator/SurroundMap.hpp b/src/world/generator/SurroundMap.hpp index 31bafc52..4f04d63e 100644 --- a/src/world/generator/SurroundMap.hpp +++ b/src/world/generator/SurroundMap.hpp @@ -23,7 +23,7 @@ private: void upgrade(int x, int y, int8_t level); public: - SurroundMap(int loadDistance, int8_t maxLevel); + SurroundMap(int maxLevelRadius, int8_t maxLevel); /// @brief Callback called on point level increments void setLevelCallback(int8_t level, LevelCallback callback); @@ -38,7 +38,13 @@ public: /// @brief Set map area center void setCenter(int x, int y); + void resize(int maxLevelRadius); + /// @brief Get level at position /// @throws std::invalid_argument - position is out of area int8_t at(int x, int y); + + const util::AreaMap2D& getArea() const { + return areaMap; + } };