Commit 30860cac authored by nanahira's avatar nanahira

fix same name lflist and cdb

parent 3a19b04e
......@@ -88,6 +88,9 @@ bool DataManager::LoadDB(const wchar_t* wfile) {
#else
auto reader = FileSystem->createAndOpenFile(file);
#endif
return LoadDB(reader);
}
bool DataManager::LoadDB(irr::io::IReadFile* reader) {
if(reader == nullptr)
return false;
spmemvfs_db_t db;
......@@ -99,7 +102,7 @@ bool DataManager::LoadDB(const wchar_t* wfile) {
reader->drop();
(mem->data)[mem->total] = '\0';
bool ret{};
if (spmemvfs_open_db(&db, file, mem) != SQLITE_OK)
if (spmemvfs_open_db(&db, "temp.db", mem) != SQLITE_OK)
ret = Error(db.handle);
else
ret = ReadDB(db.handle);
......
......@@ -45,6 +45,7 @@ public:
DataManager();
bool ReadDB(sqlite3* pDB);
bool LoadDB(const wchar_t* wfile);
bool LoadDB(irr::io::IReadFile* reader);
bool LoadStrings(const char* file);
bool LoadStrings(irr::io::IReadFile* reader);
void ReadStringConfLine(const char* linebuf);
......
......@@ -1270,16 +1270,19 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
const char* uname = archive->getFullFileName(j).c_str();
BufferIO::DecodeUTF8(uname, fname);
#endif
auto createReader = [&]() {
#ifdef _WIN32
return archiveObj->createAndOpenFile(fname);
#else
return archiveObj->createAndOpenFile(uname);
#endif
};
if (IsExtension(fname, L".cdb")) {
dataManager.LoadDB(fname);
dataManager.LoadDB(createReader());
continue;
}
if (IsExtension(fname, L".conf")) {
#ifdef _WIN32
auto reader = archiveObj->createAndOpenFile(fname);
#else
auto reader = archiveObj->createAndOpenFile(uname);
#endif
auto reader = createReader();
if(!std::wcscmp(fname, L"lflist.conf")) {
deckManager.LoadLFListSingle(reader, true);
lflist_changed = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment