Use English game title when available.

This commit is contained in:
gibbed 2020-12-06 20:08:00 -06:00 committed by Rick Gibbed
parent 9ccdbb2153
commit 4ce43369a7
3 changed files with 12 additions and 1 deletions

View File

@ -677,7 +677,12 @@ X_STATUS Emulator::CompleteLaunch(const std::filesystem::path& path,
kernel::util::XdbfGameData db( kernel::util::XdbfGameData db(
module->memory()->TranslateVirtual(resource_data), resource_size); module->memory()->TranslateVirtual(resource_data), resource_size);
if (db.is_valid()) { if (db.is_valid()) {
// TODO(gibbed): get title respective to user locale.
game_title_ = db.title(kernel::util::XdbfLocale::kEnglish);
if (game_title_.empty()) {
// If English title is unavailable, get the title in default locale.
game_title_ = db.title(); game_title_ = db.title();
}
auto icon_block = db.icon(); auto icon_block = db.icon();
if (icon_block) { if (icon_block) {
display_window_->SetIcon(icon_block.buffer, icon_block.size); display_window_->SetIcon(icon_block.buffer, icon_block.size);

View File

@ -102,6 +102,10 @@ std::string XdbfGameData::title() const {
return GetStringTableEntry(default_language(), kXdbfIdTitle); return GetStringTableEntry(default_language(), kXdbfIdTitle);
} }
std::string XdbfGameData::title(XdbfLocale locale) const {
return GetStringTableEntry(locale, kXdbfIdTitle);
}
} // namespace util } // namespace util
} // namespace kernel } // namespace kernel
} // namespace xe } // namespace xe

View File

@ -137,6 +137,8 @@ class XdbfGameData : public XdbfWrapper {
// The game's title in its default language. // The game's title in its default language.
std::string title() const; std::string title() const;
std::string title(XdbfLocale locale) const;
}; };
} // namespace util } // namespace util