2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 05:07:43 +00:00

All cooked resources extracting; decompression bug-fixes

This commit is contained in:
Jack Andersen
2015-07-17 18:33:38 -10:00
parent 94d84d8991
commit dea341d27b
22 changed files with 564 additions and 168 deletions

View File

@@ -14,7 +14,8 @@ struct STRG : ISTRG, BigDNA
{
DECL_EXPLICIT_DNA
void _read(Athena::io::IStreamReader& reader);
std::unordered_map<FourCC, std::vector<std::wstring>> langs;
std::vector<std::pair<FourCC, std::vector<std::wstring>>> langs;
std::unordered_map<FourCC, std::vector<std::wstring>*> langMap;
inline int32_t lookupIdx(const std::string& name) const {return -1;}
@@ -31,26 +32,26 @@ struct STRG : ISTRG, BigDNA
}
inline std::string getUTF8(const FourCC& lang, size_t idx) const
{
auto search = langs.find(lang);
if (search != langs.end())
return HECL::WideToUTF8(search->second.at(idx));
auto search = langMap.find(lang);
if (search != langMap.end())
return HECL::WideToUTF8(search->second->at(idx));
return std::string();
}
inline std::wstring getUTF16(const FourCC& lang, size_t idx) const
{
auto search = langs.find(lang);
if (search != langs.end())
return search->second.at(idx);
auto search = langMap.find(lang);
if (search != langMap.end())
return search->second->at(idx);
return std::wstring();
}
inline HECL::SystemString getSystemString(const FourCC& lang, size_t idx) const
{
auto search = langs.find(lang);
if (search != langs.end())
auto search = langMap.find(lang);
if (search != langMap.end())
#if HECL_UCS2
return search->second.at(idx);
return search->second->at(idx);
#else
return HECL::WideToUTF8(search->second.at(idx));
return HECL::WideToUTF8(search->second->at(idx));
#endif
return std::string();
}
@@ -58,7 +59,6 @@ struct STRG : ISTRG, BigDNA
bool readAngelScript(const AngelScript::asIScriptModule& in);
void writeAngelScript(std::ofstream& out) const;
};
}