diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-07-20 23:33:11 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-07-20 23:49:51 +0200 |
commit | c082c8800c42d6f9da98ed985babc8ad2c2265a7 (patch) | |
tree | 1afd73b8d96e67d6446a855eb5903c59ebb0d113 /src/MinedMap.cpp | |
parent | 4b9bb2ab4894c52f60baba3273c27948ad022292 (diff) | |
download | MinedMap-c082c8800c42d6f9da98ed985babc8ad2c2265a7.tar MinedMap-c082c8800c42d6f9da98ed985babc8ad2c2265a7.zip |
Separate splitting of regions into chunks and actual parsing of chunk structure
Diffstat (limited to 'src/MinedMap.cpp')
-rw-r--r-- | src/MinedMap.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/MinedMap.cpp b/src/MinedMap.cpp index 3fd9d94..bfd34b9 100644 --- a/src/MinedMap.cpp +++ b/src/MinedMap.cpp @@ -52,8 +52,9 @@ namespace MinedMap { static const size_t DIM = World::Region::SIZE*World::Chunk::SIZE; -static void addChunk(uint32_t image[DIM*DIM], uint8_t lightmap[2*DIM*DIM], size_t X, size_t Z, const World::Chunk *chunk) { - World::Chunk::Blocks layer = chunk->getTopLayer(); +static void addChunk(uint32_t image[DIM*DIM], uint8_t lightmap[2*DIM*DIM], size_t X, size_t Z, const World::ChunkData *data) { + World::Chunk chunk(data); + World::Chunk::Blocks layer = chunk.getTopLayer(); for (size_t x = 0; x < World::Chunk::SIZE; x++) { for (size_t z = 0; z < World::Chunk::SIZE; z++) { @@ -139,7 +140,7 @@ static void doRegion(const std::string &input, const std::string &output, const std::unique_ptr<uint8_t[]> lightmap(new uint8_t[2*DIM*DIM]); std::memset(lightmap.get(), 0, 2*DIM*DIM); - World::Region::visitChunks(input.c_str(), [&] (size_t X, size_t Z, const World::Chunk *chunk) { addChunk(image.get(), lightmap.get(), X, Z, chunk); }); + World::Region::visitChunks(input.c_str(), [&] (size_t X, size_t Z, const World::ChunkData *chunk) { addChunk(image.get(), lightmap.get(), X, Z, chunk); }); writeImage(output, reinterpret_cast<const uint8_t*>(image.get()), true, intime); writeImage(output_light, lightmap.get(), false, intime); |