These numbers were well exceeding 2^32...
This commit is contained in:
parent
d1a16f24cf
commit
d670c831c2
|
@ -2849,8 +2849,9 @@ bool ServerMap::loadFromFolders() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ServerMap::getBlockAsInteger(const v3s16 pos) {
|
sqlite3_int64 ServerMap::getBlockAsInteger(const v3s16 pos) {
|
||||||
return (pos.Z+2048)*16777216 + (pos.Y+2048)*4096 + pos.X;
|
return (sqlite3_int64)pos.Z*16777216 +
|
||||||
|
(sqlite3_int64)pos.Y*4096 + (sqlite3_int64)pos.X;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerMap::createDirs(std::string path)
|
void ServerMap::createDirs(std::string path)
|
||||||
|
@ -3318,7 +3319,7 @@ void ServerMap::saveBlock(MapBlock *block)
|
||||||
std::string tmp = o.str();
|
std::string tmp = o.str();
|
||||||
const char *bytes = tmp.c_str();
|
const char *bytes = tmp.c_str();
|
||||||
|
|
||||||
if(sqlite3_bind_int(m_database_write, 1, getBlockAsInteger(p3d)) != SQLITE_OK)
|
if(sqlite3_bind_int64(m_database_write, 1, getBlockAsInteger(p3d)) != SQLITE_OK)
|
||||||
dstream<<"WARNING: Block position failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
|
dstream<<"WARNING: Block position failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
|
||||||
if(sqlite3_bind_blob(m_database_write, 2, (void *)bytes, o.tellp(), NULL) != SQLITE_OK) // TODO this mught not be the right length
|
if(sqlite3_bind_blob(m_database_write, 2, (void *)bytes, o.tellp(), NULL) != SQLITE_OK) // TODO this mught not be the right length
|
||||||
dstream<<"WARNING: Block data failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
|
dstream<<"WARNING: Block data failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
|
||||||
|
@ -3484,7 +3485,7 @@ MapBlock* ServerMap::loadBlock(v3s16 blockpos)
|
||||||
if(!loadFromFolders()) {
|
if(!loadFromFolders()) {
|
||||||
verifyDatabase();
|
verifyDatabase();
|
||||||
|
|
||||||
if(sqlite3_bind_int(m_database_read, 1, getBlockAsInteger(blockpos)) != SQLITE_OK)
|
if(sqlite3_bind_int64(m_database_read, 1, getBlockAsInteger(blockpos)) != SQLITE_OK)
|
||||||
dstream<<"WARNING: Could not bind block position for load: "
|
dstream<<"WARNING: Could not bind block position for load: "
|
||||||
<<sqlite3_errmsg(m_database)<<std::endl;
|
<<sqlite3_errmsg(m_database)<<std::endl;
|
||||||
if(sqlite3_step(m_database_read) == SQLITE_ROW) {
|
if(sqlite3_step(m_database_read) == SQLITE_ROW) {
|
||||||
|
|
|
@ -378,7 +378,7 @@ public:
|
||||||
// Verify we can read/write to the database
|
// Verify we can read/write to the database
|
||||||
void verifyDatabase();
|
void verifyDatabase();
|
||||||
// Get an integer suitable for a block
|
// Get an integer suitable for a block
|
||||||
static int getBlockAsInteger(const v3s16 pos);
|
static sqlite3_int64 getBlockAsInteger(const v3s16 pos);
|
||||||
|
|
||||||
// Returns true if the database file does not exist
|
// Returns true if the database file does not exist
|
||||||
bool loadFromFolders();
|
bool loadFromFolders();
|
||||||
|
|
Loading…
Reference in New Issue