1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-02 16:38:41 +00:00

Switch android to leveldb as sqlite3 is broken and fails to save any mapblock there

This commit is contained in:
sapier 2014-07-06 21:24:31 +02:00
parent d020e0771d
commit b459f53ac3
4 changed files with 20 additions and 17 deletions

View file

@ -187,12 +187,12 @@ void Database_SQLite3::saveBlock(MapBlock *block)
const char *bytes = tmp.c_str();
if(sqlite3_bind_int64(m_database_write, 1, getBlockAsInteger(p3d)) != SQLITE_OK)
infostream<<"WARNING: Block position failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
errorstream<<"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
infostream<<"WARNING: Block data failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
errorstream<<"WARNING: Block data failed to bind: "<<sqlite3_errmsg(m_database)<<std::endl;
int written = sqlite3_step(m_database_write);
if(written != SQLITE_DONE)
infostream<<"WARNING: Block failed to save ("<<p3d.X<<", "<<p3d.Y<<", "<<p3d.Z<<") "
errorstream<<"WARNING: Block failed to save ("<<p3d.X<<", "<<p3d.Y<<", "<<p3d.Z<<") "
<<sqlite3_errmsg(m_database)<<std::endl;
// Make ready for later reuse
sqlite3_reset(m_database_write);

View file

@ -242,7 +242,12 @@ bool initializeWorld(const std::string &path, const std::string &gameid)
infostream<<"Creating world.mt ("<<worldmt_path<<")"<<std::endl;
fs::CreateAllDirs(path);
std::ostringstream ss(std::ios_base::binary);
ss<<"gameid = "<<gameid<<"\nbackend = sqlite3\n";
ss<<"gameid = "<<gameid<<
#ifdef __ANDROID__
"\nbackend = leveldb\n";
#else
"\nbackend = sqlite3\n";
#endif
fs::safeWriteToFile(worldmt_path, ss.str());
}
return true;