@@ -41,9 +41,9 @@ static inline int unsignedToSigned(long i, long max_positive)
41
41
}
42
42
}
43
43
44
- static inline int readU16 (const char *data)
44
+ static inline uint16_t readU16 (const unsigned char *data)
45
45
{
46
- return uint8_t ( data[0 ]) * 256 + uint8_t ( data[1 ]) ;
46
+ return data[0 ] << 8 | data[1 ];
47
47
}
48
48
49
49
static inline int rgb2int (uint8_t r, uint8_t g, uint8_t b)
@@ -70,7 +70,7 @@ static inline int readBlockContent(const unsigned char *mapData, int version, in
70
70
}
71
71
}
72
72
73
- static inline std::string zlibDecompress (const char *data, std::size_t size, std::size_t *processed)
73
+ static inline std::string zlibDecompress (const unsigned char *data, std::size_t size, std::size_t *processed)
74
74
{
75
75
string buffer;
76
76
const size_t BUFSIZE = 128 * 1024 ;
@@ -87,7 +87,7 @@ static inline std::string zlibDecompress(const char *data, std::size_t size, std
87
87
throw DecompressError ();
88
88
}
89
89
90
- strm.next_in = reinterpret_cast <Bytef *>( const_cast <char *>(data) );
90
+ strm.next_in = const_cast <unsigned char *>(data);
91
91
int ret = 0 ;
92
92
do {
93
93
strm.avail_out = BUFSIZE;
@@ -98,7 +98,7 @@ static inline std::string zlibDecompress(const char *data, std::size_t size, std
98
98
if (ret != Z_STREAM_END) {
99
99
throw DecompressError ();
100
100
}
101
- *processed = ( const char *) strm.next_in - ( const char *) data;
101
+ *processed = strm.next_in - data;
102
102
(void )inflateEnd (&strm);
103
103
104
104
return buffer;
@@ -358,7 +358,7 @@ void TileGenerator::renderMap()
358
358
const BlockList &blockStack = blocks[xPos];
359
359
for (BlockList::const_iterator it = blockStack.begin (); it != blockStack.end (); ++it) {
360
360
const BlockPos &pos = it->first ;
361
- const char *data = it->second .c_str ();
361
+ const unsigned char *data = it->second .c_str ();
362
362
size_t length = it->second .length ();
363
363
364
364
uint8_t version = data[0 ];
@@ -387,7 +387,7 @@ void TileGenerator::renderMap()
387
387
if (version == 24 ) {
388
388
uint8_t ver = data[dataOffset++];
389
389
if (ver == 1 ) {
390
- int num = readU16 (data + dataOffset);
390
+ uint16_t num = readU16 (data + dataOffset);
391
391
dataOffset += 2 ;
392
392
dataOffset += 10 * num;
393
393
}
@@ -399,7 +399,7 @@ void TileGenerator::renderMap()
399
399
dataOffset += 2 ;
400
400
for (int i = 0 ; i < staticObjectCount; ++i) {
401
401
dataOffset += 13 ;
402
- int dataSize = readU16 (data + dataOffset);
402
+ uint16_t dataSize = readU16 (data + dataOffset);
403
403
dataOffset += dataSize + 2 ;
404
404
}
405
405
dataOffset += 4 ; // Skip timestamp
@@ -409,14 +409,14 @@ void TileGenerator::renderMap()
409
409
// Read mapping
410
410
if (version >= 22 ) {
411
411
dataOffset++; // mapping version
412
- int numMappings = readU16 (data + dataOffset);
412
+ uint16_t numMappings = readU16 (data + dataOffset);
413
413
dataOffset += 2 ;
414
414
for (int i = 0 ; i < numMappings; ++i) {
415
- int nodeId = readU16 (data + dataOffset);
415
+ uint16_t nodeId = readU16 (data + dataOffset);
416
416
dataOffset += 2 ;
417
- int nameLen = readU16 (data + dataOffset);
417
+ uint16_t nameLen = readU16 (data + dataOffset);
418
418
dataOffset += 2 ;
419
- string name = string (data + dataOffset, nameLen);
419
+ string name = string (reinterpret_cast < const char *>( data) + dataOffset, nameLen);
420
420
if (name == " air" ) {
421
421
m_blockAirId = nodeId;
422
422
}
@@ -433,7 +433,7 @@ void TileGenerator::renderMap()
433
433
// Node timers
434
434
if (version >= 25 ) {
435
435
dataOffset++;
436
- int numTimers = readU16 (data + dataOffset);
436
+ uint16_t numTimers = readU16 (data + dataOffset);
437
437
dataOffset += 2 ;
438
438
dataOffset += numTimers * 10 ;
439
439
}
@@ -605,10 +605,10 @@ std::map<int, TileGenerator::BlockList> TileGenerator::getBlocksOnZ(int zPos, sq
605
605
result = sqlite3_step (statement);
606
606
if (result == SQLITE_ROW) {
607
607
sqlite3_int64 blocknum = sqlite3_column_int64 (statement, 0 );
608
- const char *data = reinterpret_cast <const char *>(sqlite3_column_blob (statement, 1 ));
608
+ const unsigned char *data = reinterpret_cast <const unsigned char *>(sqlite3_column_blob (statement, 1 ));
609
609
int size = sqlite3_column_bytes (statement, 1 );
610
610
BlockPos pos = decodeBlockPos (blocknum);
611
- blocks[pos.x ].push_back (Block (pos, string (data, size)));
611
+ blocks[pos.x ].push_back (Block (pos, std::basic_string< unsigned char > (data, size)));
612
612
}
613
613
else {
614
614
break ;
0 commit comments