mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 00:25:44 +00:00
ZoneLoading: Save which language a zone has when loading
This commit is contained in:
parent
81255695a7
commit
2f108d533c
@ -6,6 +6,7 @@ Zone::Zone(std::string name, const zone_priority_t priority, IZoneAssetPools* po
|
|||||||
m_priority = priority;
|
m_priority = priority;
|
||||||
m_pools = pools;
|
m_pools = pools;
|
||||||
m_game = game;
|
m_game = game;
|
||||||
|
m_language = ZoneLanguage::LANGUAGE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
IZoneAssetPools* Zone::GetPools() const
|
IZoneAssetPools* Zone::GetPools() const
|
||||||
|
@ -6,6 +6,31 @@
|
|||||||
|
|
||||||
class IGame;
|
class IGame;
|
||||||
|
|
||||||
|
enum class ZoneLanguage
|
||||||
|
{
|
||||||
|
LANGUAGE_NONE,
|
||||||
|
LANGUAGE_ENGLISH,
|
||||||
|
LANGUAGE_FRENCH,
|
||||||
|
LANGUAGE_GERMAN,
|
||||||
|
LANGUAGE_ITALIAN,
|
||||||
|
LANGUAGE_SPANISH,
|
||||||
|
LANGUAGE_BRITISH,
|
||||||
|
LANGUAGE_RUSSIAN,
|
||||||
|
LANGUAGE_POLISH,
|
||||||
|
LANGUAGE_KOREAN,
|
||||||
|
LANGUAGE_TAIWANESE,
|
||||||
|
LANGUAGE_JAPANESE,
|
||||||
|
LANGUAGE_CHINESE,
|
||||||
|
LANGUAGE_THAI,
|
||||||
|
LANGUAGE_LEET,
|
||||||
|
LANGUAGE_CZECH,
|
||||||
|
LANGUAGE_FRENCH_CAN,
|
||||||
|
LANGUAGE_AUSTRIAN,
|
||||||
|
LANGUAGE_PORTUGUESE,
|
||||||
|
LANGUAGE_MEXICAN_SPANISH,
|
||||||
|
LANGUAGE_FULL_JAPANESE
|
||||||
|
};
|
||||||
|
|
||||||
class Zone
|
class Zone
|
||||||
{
|
{
|
||||||
IZoneAssetPools* m_pools;
|
IZoneAssetPools* m_pools;
|
||||||
@ -13,6 +38,7 @@ class Zone
|
|||||||
public:
|
public:
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
zone_priority_t m_priority;
|
zone_priority_t m_priority;
|
||||||
|
ZoneLanguage m_language;
|
||||||
IGame* m_game;
|
IGame* m_game;
|
||||||
|
|
||||||
Zone(std::string name, zone_priority_t priority, IZoneAssetPools* pools, IGame* game);
|
Zone(std::string name, zone_priority_t priority, IZoneAssetPools* pools, IGame* game);
|
||||||
|
@ -84,6 +84,76 @@ const uint8_t ZoneLoaderFactoryT6::RSA_PUBLIC_KEY_TREYARCH[]
|
|||||||
|
|
||||||
class ZoneLoaderFactoryT6::ZoneLoaderFactoryT6Impl
|
class ZoneLoaderFactoryT6::ZoneLoaderFactoryT6Impl
|
||||||
{
|
{
|
||||||
|
static ZoneLanguage GetZoneLanguage(std::string& zoneName)
|
||||||
|
{
|
||||||
|
if(zoneName.compare(0, 3, "en_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_ENGLISH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "fr_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_FRENCH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "fc_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_FRENCH_CAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "ge_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_GERMAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "as_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_AUSTRIAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "it_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_ITALIAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "sp_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_SPANISH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "br_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_BRITISH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "ru_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_RUSSIAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "po_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_POLISH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "ko_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_KOREAN;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "ja_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_JAPANESE;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "cz_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_CZECH;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "fj_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_FULL_JAPANESE;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "bp_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_PORTUGUESE;
|
||||||
|
}
|
||||||
|
if(zoneName.compare(0, 3, "ms_") == 0)
|
||||||
|
{
|
||||||
|
return ZoneLanguage::LANGUAGE_MEXICAN_SPANISH;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ZoneLanguage::LANGUAGE_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
static bool CanLoad(ZoneHeader& header, bool* isSecure, bool* isOfficial, bool* isEncrypted)
|
static bool CanLoad(ZoneHeader& header, bool* isSecure, bool* isOfficial, bool* isEncrypted)
|
||||||
{
|
{
|
||||||
assert(isSecure != nullptr);
|
assert(isSecure != nullptr);
|
||||||
@ -220,6 +290,7 @@ public:
|
|||||||
|
|
||||||
// Create new zone
|
// Create new zone
|
||||||
auto* zone = new Zone(fileName, 0, new GameAssetPoolT6(0), &game_t6);
|
auto* zone = new Zone(fileName, 0, new GameAssetPoolT6(0), &game_t6);
|
||||||
|
zone->m_language = GetZoneLanguage(fileName);
|
||||||
|
|
||||||
// File is supported. Now setup all required steps for loading this file.
|
// File is supported. Now setup all required steps for loading this file.
|
||||||
auto* zoneLoader = new ZoneLoader(zone);
|
auto* zoneLoader = new ZoneLoader(zone);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user