载入中...
搜索中...
未找到
HexSerializer.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
7#include "common/Result.h"
8#include "hexmap/HexMap.h"
9#include "hexmap/HexUnits.h"
10
11#include <cstdint>
12#include <vector>
13
14namespace eve::hexmap {
15
17inline constexpr std::uint8_t kHexSaveMagic[8] = {'E', 'V', 'E', 'H', 'E', 'X', 0, 0};
18
20inline constexpr std::uint32_t kHexSaveVersion = 1;
21
51[[nodiscard]] EVENGINE_API_WORLD Result<void> saveHexMap(const HexMap& map, const std::vector<HexUnitState>& units,
52 std::vector<std::uint8_t>& out);
53
69[[nodiscard]] EVENGINE_API_WORLD Result<void> loadHexMap(const std::vector<std::uint8_t>& bytes, HexMap& map,
70 std::vector<HexUnitState>& units);
71
72} // namespace eve::hexmap
#define EVENGINE_API_WORLD
Definition Export.h:109
Editable hex cell grid: topology, queries, picking and authoring.
Units that occupy cells, travel along paths and carry vision.
std::uint64_t bytes
Move-only, checked operation results for the common layer.
std::vector< UnitCandidate > units
Move-only operation result carrying either a value or Status.
Definition Result.h:155
An editable, chunked, pointy-top hex map.
Definition HexMap.h:72
constexpr std::uint8_t kHexSaveMagic[8]
Magic prefix of a hex map payload; ASCII EVEHEX\0\0.
constexpr std::uint32_t kHexSaveVersion
Format version written by saveHexMap.
Result< void > loadHexMap(const std::vector< std::uint8_t > &bytes, HexMap &map, std::vector< HexUnitState > &units)
Restores a map and its units from a payload produced by saveHexMap.
Result< void > saveHexMap(const HexMap &map, const std::vector< HexUnitState > &units, std::vector< std::uint8_t > &out)
Serializes a map and its units into a self-describing byte payload.