Files
screeps/douwco_hivemind/include/Tools/PathTool.hpp
2025-08-23 18:15:27 +02:00

35 lines
1.0 KiB
C++

#ifndef DOUWCO_HIVEMIND_PATH_TOOL_HPP
#define DOUWCO_HIVEMIND_PATH_TOOL_HPP
#include <vector>
#include <Screeps/ReturnTypes.hpp>
namespace DouwcoHivemind
{
static std::vector<int> flattenPathSteps(const std::vector<Screeps::PathStep> &pathSteps)
{
std::vector<int> flattened;
for (const auto &step : pathSteps)
{
flattened.push_back(step.x);
flattened.push_back(step.y);
flattened.push_back(step.dx);
flattened.push_back(step.dy);
flattened.push_back(step.direction);
}
return flattened;
}
static std::vector<Screeps::PathStep> unflattenPathSteps(const std::vector<int> &flattened)
{
std::vector<Screeps::PathStep> pathSteps;
for (size_t i = 0; i < flattened.size(); i += 5)
{
pathSteps.emplace_back(Screeps::PathStep(flattened[i], flattened[i + 1], flattened[i + 2], flattened[i + 3], flattened[i + 4]));
}
return pathSteps;
}
} // namespace Screeps
#endif // DOUWCO_HIVEMIND_PATH_TOOL_HPP