mirror of https://github.com/AxioDL/metaforce.git
Shared extract fix
This commit is contained in:
parent
a6c964a7c2
commit
bb89194157
|
@ -208,6 +208,23 @@ public:
|
||||||
if (!m_pak)
|
if (!m_pak)
|
||||||
LogDNACommon.report(LogVisor::FatalError,
|
LogDNACommon.report(LogVisor::FatalError,
|
||||||
"PAKRouter::enterPAKBridge() must be called before PAKRouter::getWorkingPath()");
|
"PAKRouter::enterPAKBridge() must be called before PAKRouter::getWorkingPath()");
|
||||||
|
if (m_pak->m_noShare)
|
||||||
|
{
|
||||||
|
const EntryType* singleSearch = m_pak->lookupEntry(entry->id);
|
||||||
|
if (singleSearch)
|
||||||
|
{
|
||||||
|
const HECL::ProjectPath& pakPath = m_bridgePaths[m_curBridgeIdx].first;
|
||||||
|
pakPath.makeDir();
|
||||||
|
#if HECL_UCS2
|
||||||
|
HECL::SystemString entName = HECL::UTF8ToWide(m_pak->bestEntryName(*entry));
|
||||||
|
#else
|
||||||
|
HECL::SystemString entName = m_pak->bestEntryName(*entry);
|
||||||
|
#endif
|
||||||
|
if (extractor.fileExts[0] && !extractor.fileExts[1])
|
||||||
|
entName += extractor.fileExts[0];
|
||||||
|
return HECL::ProjectPath(pakPath, entName);
|
||||||
|
}
|
||||||
|
}
|
||||||
auto uniqueSearch = m_uniqueEntries.find(entry->id);
|
auto uniqueSearch = m_uniqueEntries.find(entry->id);
|
||||||
if (uniqueSearch != m_uniqueEntries.end())
|
if (uniqueSearch != m_uniqueEntries.end())
|
||||||
{
|
{
|
||||||
|
@ -258,20 +275,6 @@ public:
|
||||||
m_sharedWorking.makeDir();
|
m_sharedWorking.makeDir();
|
||||||
return sharedPath;
|
return sharedPath;
|
||||||
}
|
}
|
||||||
const EntryType* singleSearch = m_pak->lookupEntry(entry->id);
|
|
||||||
if (singleSearch)
|
|
||||||
{
|
|
||||||
const HECL::ProjectPath& pakPath = m_bridgePaths[m_curBridgeIdx].first;
|
|
||||||
pakPath.makeDir();
|
|
||||||
#if HECL_UCS2
|
|
||||||
HECL::SystemString entName = HECL::UTF8ToWide(m_pak->bestEntryName(*entry));
|
|
||||||
#else
|
|
||||||
HECL::SystemString entName = m_pak->bestEntryName(*entry);
|
|
||||||
#endif
|
|
||||||
if (extractor.fileExts[0] && !extractor.fileExts[1])
|
|
||||||
entName += extractor.fileExts[0];
|
|
||||||
return HECL::ProjectPath(pakPath, entName);
|
|
||||||
}
|
|
||||||
LogDNACommon.report(LogVisor::FatalError, "Unable to find entry %s", entry->id.toString().c_str());
|
LogDNACommon.report(LogVisor::FatalError, "Unable to find entry %s", entry->id.toString().c_str());
|
||||||
return HECL::ProjectPath();
|
return HECL::ProjectPath();
|
||||||
}
|
}
|
||||||
|
@ -291,6 +294,16 @@ public:
|
||||||
if (!m_pak)
|
if (!m_pak)
|
||||||
LogDNACommon.report(LogVisor::FatalError,
|
LogDNACommon.report(LogVisor::FatalError,
|
||||||
"PAKRouter::enterPAKBridge() must be called before PAKRouter::getCookedPath()");
|
"PAKRouter::enterPAKBridge() must be called before PAKRouter::getCookedPath()");
|
||||||
|
if (m_pak->m_noShare)
|
||||||
|
{
|
||||||
|
const EntryType* singleSearch = m_pak->lookupEntry(entry->id);
|
||||||
|
if (singleSearch)
|
||||||
|
{
|
||||||
|
const HECL::ProjectPath& pakPath = m_bridgePaths[m_curBridgeIdx].second;
|
||||||
|
pakPath.makeDir();
|
||||||
|
return HECL::ProjectPath(pakPath, m_pak->bestEntryName(*entry));
|
||||||
|
}
|
||||||
|
}
|
||||||
auto uniqueSearch = m_uniqueEntries.find(entry->id);
|
auto uniqueSearch = m_uniqueEntries.find(entry->id);
|
||||||
if (uniqueSearch != m_uniqueEntries.end())
|
if (uniqueSearch != m_uniqueEntries.end())
|
||||||
{
|
{
|
||||||
|
@ -305,13 +318,6 @@ public:
|
||||||
m_sharedCooked.makeDir();
|
m_sharedCooked.makeDir();
|
||||||
return HECL::ProjectPath(m_sharedCooked, m_pak->bestEntryName(*entry));
|
return HECL::ProjectPath(m_sharedCooked, m_pak->bestEntryName(*entry));
|
||||||
}
|
}
|
||||||
const EntryType* singleSearch = m_pak->lookupEntry(entry->id);
|
|
||||||
if (singleSearch)
|
|
||||||
{
|
|
||||||
const HECL::ProjectPath& pakPath = m_bridgePaths[m_curBridgeIdx].second;
|
|
||||||
pakPath.makeDir();
|
|
||||||
return HECL::ProjectPath(pakPath, m_pak->bestEntryName(*entry));
|
|
||||||
}
|
|
||||||
LogDNACommon.report(LogVisor::FatalError, "Unable to find entry %s", entry->id.toString().c_str());
|
LogDNACommon.report(LogVisor::FatalError, "Unable to find entry %s", entry->id.toString().c_str());
|
||||||
return HECL::ProjectPath();
|
return HECL::ProjectPath();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue