WX: Use TitleDatabase for getting title names

This commit is contained in:
Léo Lam
2017-05-15 16:26:22 +02:00
parent 89b5549fe0
commit 2f5f9be9ac
3 changed files with 16 additions and 51 deletions

View File

@ -50,6 +50,7 @@
#include "Core/HW/DVD/DVDInterface.h"
#include "Core/HW/WiiSaveCrypted.h"
#include "Core/Movie.h"
#include "Core/TitleDatabase.h"
#include "DiscIO/Blob.h"
#include "DiscIO/Enums.h"
#include "DiscIO/Volume.h"
@ -154,37 +155,6 @@ static int CompareGameListItems(const GameListItem* iso1, const GameListItem* is
return 0;
}
static std::unordered_map<std::string, std::string> LoadCustomTitles()
{
// Load custom game titles from titles.txt
// http://www.gametdb.com/Wii/Downloads
const std::string& load_directory = File::GetUserPath(D_LOAD_IDX);
std::ifstream titlestxt;
OpenFStream(titlestxt, load_directory + "titles.txt", std::ios::in);
if (!titlestxt.is_open())
OpenFStream(titlestxt, load_directory + "wiitdb.txt", std::ios::in);
if (!titlestxt.is_open())
return {};
std::unordered_map<std::string, std::string> custom_titles;
std::string line;
while (!titlestxt.eof() && std::getline(titlestxt, line))
{
const size_t equals_index = line.find('=');
if (equals_index != std::string::npos)
{
custom_titles.emplace(StripSpaces(line.substr(0, equals_index)),
StripSpaces(line.substr(equals_index + 1)));
}
}
return custom_titles;
}
static std::vector<std::string> GetFileSearchExtensions()
{
std::vector<std::string> extensions;
@ -665,7 +635,7 @@ void CGameListCtrl::ScanForISOs()
{
m_ISOFiles.clear();
const auto custom_titles = LoadCustomTitles();
const Core::TitleDatabase title_database;
auto rFilenames =
Common::DoFileSearch(GetFileSearchExtensions(), SConfig::GetInstance().m_ISOFolder,
SConfig::GetInstance().m_RecursiveISOFolder);
@ -688,7 +658,7 @@ void CGameListCtrl::ScanForISOs()
if (dialog.WasCancelled())
break;
auto iso_file = std::make_unique<GameListItem>(rFilenames[i], custom_titles);
auto iso_file = std::make_unique<GameListItem>(rFilenames[i], title_database);
if (iso_file->IsValid() && ShouldDisplayGameListItem(*iso_file))
{
@ -703,7 +673,7 @@ void CGameListCtrl::ScanForISOs()
for (const auto& drive : drives)
{
auto gli = std::make_unique<GameListItem>(drive, custom_titles);
auto gli = std::make_unique<GameListItem>(drive, title_database);
if (gli->IsValid())
m_ISOFiles.push_back(std::move(gli));