WX: Use TitleDatabase for getting title names
This commit is contained in:
parent
89b5549fe0
commit
2f5f9be9ac
|
@ -50,6 +50,7 @@
|
||||||
#include "Core/HW/DVD/DVDInterface.h"
|
#include "Core/HW/DVD/DVDInterface.h"
|
||||||
#include "Core/HW/WiiSaveCrypted.h"
|
#include "Core/HW/WiiSaveCrypted.h"
|
||||||
#include "Core/Movie.h"
|
#include "Core/Movie.h"
|
||||||
|
#include "Core/TitleDatabase.h"
|
||||||
#include "DiscIO/Blob.h"
|
#include "DiscIO/Blob.h"
|
||||||
#include "DiscIO/Enums.h"
|
#include "DiscIO/Enums.h"
|
||||||
#include "DiscIO/Volume.h"
|
#include "DiscIO/Volume.h"
|
||||||
|
@ -154,37 +155,6 @@ static int CompareGameListItems(const GameListItem* iso1, const GameListItem* is
|
||||||
return 0;
|
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()
|
static std::vector<std::string> GetFileSearchExtensions()
|
||||||
{
|
{
|
||||||
std::vector<std::string> extensions;
|
std::vector<std::string> extensions;
|
||||||
|
@ -665,7 +635,7 @@ void CGameListCtrl::ScanForISOs()
|
||||||
{
|
{
|
||||||
m_ISOFiles.clear();
|
m_ISOFiles.clear();
|
||||||
|
|
||||||
const auto custom_titles = LoadCustomTitles();
|
const Core::TitleDatabase title_database;
|
||||||
auto rFilenames =
|
auto rFilenames =
|
||||||
Common::DoFileSearch(GetFileSearchExtensions(), SConfig::GetInstance().m_ISOFolder,
|
Common::DoFileSearch(GetFileSearchExtensions(), SConfig::GetInstance().m_ISOFolder,
|
||||||
SConfig::GetInstance().m_RecursiveISOFolder);
|
SConfig::GetInstance().m_RecursiveISOFolder);
|
||||||
|
@ -688,7 +658,7 @@ void CGameListCtrl::ScanForISOs()
|
||||||
if (dialog.WasCancelled())
|
if (dialog.WasCancelled())
|
||||||
break;
|
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))
|
if (iso_file->IsValid() && ShouldDisplayGameListItem(*iso_file))
|
||||||
{
|
{
|
||||||
|
@ -703,7 +673,7 @@ void CGameListCtrl::ScanForISOs()
|
||||||
|
|
||||||
for (const auto& drive : drives)
|
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())
|
if (gli->IsValid())
|
||||||
m_ISOFiles.push_back(std::move(gli));
|
m_ISOFiles.push_back(std::move(gli));
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "Core/Boot/Boot.h"
|
#include "Core/Boot/Boot.h"
|
||||||
#include "Core/ConfigManager.h"
|
#include "Core/ConfigManager.h"
|
||||||
#include "Core/IOS/ES/Formats.h"
|
#include "Core/IOS/ES/Formats.h"
|
||||||
|
#include "Core/TitleDatabase.h"
|
||||||
|
|
||||||
#include "DiscIO/Blob.h"
|
#include "DiscIO/Blob.h"
|
||||||
#include "DiscIO/Enums.h"
|
#include "DiscIO/Enums.h"
|
||||||
|
@ -62,8 +63,7 @@ static std::string GetLanguageString(DiscIO::Language language,
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
GameListItem::GameListItem(const std::string& _rFileName,
|
GameListItem::GameListItem(const std::string& _rFileName, const Core::TitleDatabase& title_database)
|
||||||
const std::unordered_map<std::string, std::string>& custom_titles)
|
|
||||||
: m_FileName(_rFileName), m_title_id(0), m_emu_state(0), m_FileSize(0),
|
: m_FileName(_rFileName), m_title_id(0), m_emu_state(0), m_FileSize(0),
|
||||||
m_region(DiscIO::Region::UNKNOWN_REGION), m_Country(DiscIO::Country::COUNTRY_UNKNOWN),
|
m_region(DiscIO::Region::UNKNOWN_REGION), m_Country(DiscIO::Country::COUNTRY_UNKNOWN),
|
||||||
m_Revision(0), m_Valid(false), m_ImageWidth(0), m_ImageHeight(0), m_disc_number(0),
|
m_Revision(0), m_Valid(false), m_ImageWidth(0), m_ImageHeight(0), m_disc_number(0),
|
||||||
|
@ -125,18 +125,10 @@ GameListItem::GameListItem(const std::string& _rFileName,
|
||||||
|
|
||||||
if (IsValid())
|
if (IsValid())
|
||||||
{
|
{
|
||||||
std::string short_game_id = m_game_id;
|
const auto type = m_Platform == DiscIO::Platform::WII_WAD ?
|
||||||
|
Core::TitleDatabase::TitleType::Channel :
|
||||||
// Ignore publisher ID for WAD files
|
Core::TitleDatabase::TitleType::Other;
|
||||||
if (m_Platform == DiscIO::Platform::WII_WAD && short_game_id.size() > 4)
|
m_custom_name_titles_txt = title_database.GetTitleName(m_game_id, type);
|
||||||
short_game_id.erase(4);
|
|
||||||
|
|
||||||
auto it = custom_titles.find(short_game_id);
|
|
||||||
if (it != custom_titles.end())
|
|
||||||
{
|
|
||||||
m_custom_name_titles_txt = it->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReloadINI();
|
ReloadINI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <unordered_map>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -14,6 +13,11 @@
|
||||||
#include <wx/bitmap.h>
|
#include <wx/bitmap.h>
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
|
|
||||||
|
namespace Core
|
||||||
|
{
|
||||||
|
class TitleDatabase;
|
||||||
|
}
|
||||||
|
|
||||||
namespace DiscIO
|
namespace DiscIO
|
||||||
{
|
{
|
||||||
enum class BlobType;
|
enum class BlobType;
|
||||||
|
@ -28,8 +32,7 @@ class PointerWrap;
|
||||||
class GameListItem
|
class GameListItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameListItem(const std::string& _rFileName,
|
GameListItem(const std::string& file_name, const Core::TitleDatabase& title_database);
|
||||||
const std::unordered_map<std::string, std::string>& custom_titles);
|
|
||||||
~GameListItem();
|
~GameListItem();
|
||||||
|
|
||||||
// Reload settings after INI changes
|
// Reload settings after INI changes
|
||||||
|
|
Loading…
Reference in New Issue