mirror of
https://github.com/minetest/minetestmapper.git
synced 2024-12-26 10:50:40 +01:00
Added node name reading.
This commit is contained in:
parent
feb945b1f9
commit
2319d5f0ed
@ -266,7 +266,9 @@ void TileGenerator::renderMap()
|
|||||||
string mapData = zlibDecompress(data + dataOffset, length - dataOffset, &processed);
|
string mapData = zlibDecompress(data + dataOffset, length - dataOffset, &processed);
|
||||||
dataOffset += processed;
|
dataOffset += processed;
|
||||||
string mapMetadata = zlibDecompress(data + dataOffset, length - dataOffset, &processed);
|
string mapMetadata = zlibDecompress(data + dataOffset, length - dataOffset, &processed);
|
||||||
|
dataOffset += processed;
|
||||||
|
|
||||||
|
// Skip unused data
|
||||||
if (version <= 21) {
|
if (version <= 21) {
|
||||||
dataOffset += 2;
|
dataOffset += 2;
|
||||||
}
|
}
|
||||||
@ -274,11 +276,37 @@ void TileGenerator::renderMap()
|
|||||||
dataOffset += 1;
|
dataOffset += 1;
|
||||||
}
|
}
|
||||||
if (version == 24) {
|
if (version == 24) {
|
||||||
uint8_t ver = data[dataOffset + 1];
|
uint8_t ver = data[dataOffset++];
|
||||||
dataOffset++;
|
|
||||||
if (ver == 1) {
|
if (ver == 1) {
|
||||||
int num = int(data[dataOffset + 1]) * 256 + data[dataOffset + 2];
|
int num = readU16(data + dataOffset);
|
||||||
dataOffset += 10 * num + 2;
|
dataOffset += 2;
|
||||||
|
dataOffset += 10 * num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip unused static objects
|
||||||
|
dataOffset++; // Skip static object version
|
||||||
|
int staticObjectCount = readU16(data + dataOffset);
|
||||||
|
dataOffset += 2;
|
||||||
|
for (int i = 0; i < staticObjectCount; ++i) {
|
||||||
|
dataOffset += 13;
|
||||||
|
int dataSize = readU16(data + dataOffset);
|
||||||
|
dataOffset += dataSize + 2;
|
||||||
|
}
|
||||||
|
dataOffset += 4; // Skip timestamp
|
||||||
|
|
||||||
|
// Read mapping
|
||||||
|
if (version >= 22) {
|
||||||
|
dataOffset++; // mapping version
|
||||||
|
int numMappings = readU16(data + dataOffset);
|
||||||
|
dataOffset += 2;
|
||||||
|
for (int i = 0; i < numMappings; ++i) {
|
||||||
|
int nodeId = readU16(data + dataOffset);
|
||||||
|
dataOffset += 2;
|
||||||
|
int nameLen = readU16(data + dataOffset);
|
||||||
|
dataOffset += 2;
|
||||||
|
dataOffset += nameLen;
|
||||||
|
m_nameMap[nodeId] = string(data + dataOffset, nameLen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -373,3 +401,8 @@ inline std::string TileGenerator::zlibDecompress(const char *data, std::size_t s
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline int TileGenerator::readU16(const char *data)
|
||||||
|
{
|
||||||
|
return int(data[0]) * 256 + data[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -95,6 +95,7 @@ private:
|
|||||||
std::map<int, BlockList> getBlocksOnZ(int zPos, sqlite3_stmt *statement) const;
|
std::map<int, BlockList> getBlocksOnZ(int zPos, sqlite3_stmt *statement) const;
|
||||||
void writeImage(const std::string &output);
|
void writeImage(const std::string &output);
|
||||||
inline std::string zlibDecompress(const char *data, std::size_t size, std::size_t *processed) const;
|
inline std::string zlibDecompress(const char *data, std::size_t size, std::size_t *processed) const;
|
||||||
|
inline int readU16(const char *data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Color m_bgColor;
|
Color m_bgColor;
|
||||||
@ -115,6 +116,7 @@ private:
|
|||||||
int m_imgWidth;
|
int m_imgWidth;
|
||||||
int m_imgHeight;
|
int m_imgHeight;
|
||||||
std::list<std::pair<int, int> > m_positions;
|
std::list<std::pair<int, int> > m_positions;
|
||||||
|
std::map<int, std::string> m_nameMap;
|
||||||
ColorMap m_colors;
|
ColorMap m_colors;
|
||||||
|
|
||||||
static const int SectorXMin = -1500/16;
|
static const int SectorXMin = -1500/16;
|
||||||
|
Loading…
Reference in New Issue
Block a user