mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-21 06:33:22 +00:00
Merge pull request #11370 from unknownbrackets/tex-replace
Replacement: Cut down on parsing for large inis
This commit is contained in:
commit
47cccc0ff0
@ -112,29 +112,24 @@ bool TextureReplacer::LoadIni() {
|
||||
ERROR_LOG(G3D, "Unsupported texture replacement version %d, trying anyway", version);
|
||||
}
|
||||
|
||||
std::vector<std::string> hashNames;
|
||||
if (ini.GetKeys("hashes", hashNames)) {
|
||||
auto hashes = ini.GetOrCreateSection("hashes");
|
||||
if (ini.HasSection("hashes")) {
|
||||
auto hashes = ini.GetOrCreateSection("hashes")->ToMap();
|
||||
// Format: hashname = filename.png
|
||||
for (std::string hashName : hashNames) {
|
||||
for (const auto &item : hashes) {
|
||||
ReplacementAliasKey key(0, 0, 0);
|
||||
if (sscanf(hashName.c_str(), "%16llx%8x_%d", &key.cachekey, &key.hash, &key.level) >= 1) {
|
||||
hashes->Get(hashName.c_str(), &aliases_[key], "");
|
||||
if (sscanf(item.first.c_str(), "%16llx%8x_%d", &key.cachekey, &key.hash, &key.level) >= 1) {
|
||||
aliases_[key] = item.second;
|
||||
} else {
|
||||
ERROR_LOG(G3D, "Unsupported syntax under [hashes]: %s", hashName.c_str());
|
||||
ERROR_LOG(G3D, "Unsupported syntax under [hashes]: %s", item.first.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::string> hashrangeKeys;
|
||||
if (ini.GetKeys("hashranges", hashrangeKeys)) {
|
||||
auto hashranges = ini.GetOrCreateSection("hashranges");
|
||||
if (ini.HasSection("hashranges")) {
|
||||
auto hashranges = ini.GetOrCreateSection("hashranges")->ToMap();
|
||||
// Format: addr,w,h = newW,newH
|
||||
for (const std::string &key : hashrangeKeys) {
|
||||
std::string value;
|
||||
if (hashranges->Get(key.c_str(), &value, "")) {
|
||||
ParseHashRange(key, value);
|
||||
}
|
||||
for (const auto &item : hashranges) {
|
||||
ParseHashRange(item.first, item.second);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user