mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 19:07:44 +00:00
work on CMDL
This commit is contained in:
@@ -39,15 +39,15 @@ struct SpecMP3 : SpecBase
|
||||
PAKRouter<DNAMP3::PAKBridge> m_fePakRouter;
|
||||
|
||||
SpecMP3(HECL::Database::Project& project)
|
||||
: m_workPath(project.getProjectRootPath(), _S("MP3")),
|
||||
: SpecBase(project),
|
||||
m_workPath(project.getProjectRootPath(), _S("MP3")),
|
||||
m_cookPath(project.getProjectCookedPath(SpecEntMP3), _S("MP3")),
|
||||
m_pakRouter(m_workPath, m_cookPath),
|
||||
m_pakRouter(*this, m_workPath, m_cookPath),
|
||||
m_feWorkPath(project.getProjectRootPath(), _S("fe")),
|
||||
m_feCookPath(project.getProjectCookedPath(SpecEntMP3), _S("fe")),
|
||||
m_fePakRouter(m_feWorkPath, m_feCookPath) {}
|
||||
m_fePakRouter(*this, m_feWorkPath, m_feCookPath) {}
|
||||
|
||||
void buildPaks(HECL::Database::Project& project,
|
||||
NOD::DiscBase::IPartition::Node& root,
|
||||
void buildPaks(NOD::DiscBase::IPartition::Node& root,
|
||||
const std::vector<HECL::SystemString>& args,
|
||||
ExtractReport& rep,
|
||||
bool fe)
|
||||
@@ -114,9 +114,9 @@ struct SpecMP3 : SpecBase
|
||||
if (good)
|
||||
{
|
||||
if (fe)
|
||||
m_fePaks.emplace_back(project, child);
|
||||
m_fePaks.emplace_back(m_project, child);
|
||||
else
|
||||
m_paks.emplace_back(project, child);
|
||||
m_paks.emplace_back(m_project, child);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -163,8 +163,7 @@ struct SpecMP3 : SpecBase
|
||||
}
|
||||
}
|
||||
|
||||
bool checkFromStandaloneDisc(HECL::Database::Project& project,
|
||||
NOD::DiscBase& disc,
|
||||
bool checkFromStandaloneDisc(NOD::DiscBase& disc,
|
||||
const HECL::SystemString& regstr,
|
||||
const std::vector<HECL::SystemString>& args,
|
||||
std::vector<ExtractReport>& reps)
|
||||
@@ -188,13 +187,12 @@ struct SpecMP3 : SpecBase
|
||||
|
||||
/* Iterate PAKs and build level options */
|
||||
NOD::DiscBase::IPartition::Node& root = partition->getFSTRoot();
|
||||
buildPaks(project, root, args, rep, false);
|
||||
buildPaks(root, args, rep, false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool checkFromTrilogyDisc(HECL::Database::Project& project,
|
||||
NOD::DiscBase& disc,
|
||||
bool checkFromTrilogyDisc(NOD::DiscBase& disc,
|
||||
const HECL::SystemString& regstr,
|
||||
const std::vector<HECL::SystemString>& args,
|
||||
std::vector<ExtractReport>& reps)
|
||||
@@ -269,7 +267,7 @@ struct SpecMP3 : SpecBase
|
||||
NOD::DiscBase::IPartition::Node::DirectoryIterator mp3It = root.find("MP3");
|
||||
if (mp3It == root.end())
|
||||
return false;
|
||||
buildPaks(project, *mp3It, mp3args, rep, false);
|
||||
buildPaks(*mp3It, mp3args, rep, false);
|
||||
}
|
||||
|
||||
/* MPT Frontend extract */
|
||||
@@ -298,14 +296,13 @@ struct SpecMP3 : SpecBase
|
||||
NOD::DiscBase::IPartition::Node::DirectoryIterator feIt = root.find("fe");
|
||||
if (feIt == root.end())
|
||||
return false;
|
||||
buildPaks(project, *feIt, feargs, rep, true);
|
||||
buildPaks(*feIt, feargs, rep, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool extractFromDisc(HECL::Database::Project& project, NOD::DiscBase&, bool force,
|
||||
FExtractProgress progress)
|
||||
bool extractFromDisc(NOD::DiscBase&, bool force, FExtractProgress progress)
|
||||
{
|
||||
int compIdx = 2;
|
||||
int prog;
|
||||
@@ -318,7 +315,7 @@ struct SpecMP3 : SpecBase
|
||||
});
|
||||
progress(_S("Indexing PAKs"), compIdx++, 1.0);
|
||||
|
||||
HECL::ProjectPath mp3WorkPath(project.getProjectRootPath(), "MP3");
|
||||
HECL::ProjectPath mp3WorkPath(m_project.getProjectRootPath(), "MP3");
|
||||
mp3WorkPath.makeDir();
|
||||
progress(_S("MP3 Root"), compIdx, 0.0);
|
||||
prog = 0;
|
||||
@@ -329,7 +326,7 @@ struct SpecMP3 : SpecBase
|
||||
}
|
||||
progress(_S("MP3 Root"), compIdx++, 1.0);
|
||||
|
||||
const HECL::ProjectPath& cookPath = project.getProjectCookedPath(SpecEntMP3);
|
||||
const HECL::ProjectPath& cookPath = m_project.getProjectCookedPath(SpecEntMP3);
|
||||
cookPath.makeDir();
|
||||
HECL::ProjectPath mp3CookPath(cookPath, "MP3");
|
||||
mp3CookPath.makeDir();
|
||||
@@ -371,7 +368,7 @@ struct SpecMP3 : SpecBase
|
||||
}
|
||||
progress(_S("fe Root"), compIdx++, 1.0);
|
||||
|
||||
const HECL::ProjectPath& cookPath = project.getProjectCookedPath(SpecEntMP3);
|
||||
const HECL::ProjectPath& cookPath = m_project.getProjectCookedPath(SpecEntMP3);
|
||||
cookPath.makeDir();
|
||||
m_feCookPath.makeDir();
|
||||
|
||||
@@ -394,11 +391,11 @@ struct SpecMP3 : SpecBase
|
||||
return true;
|
||||
}
|
||||
|
||||
bool checkFromProject(HECL::Database::Project& proj)
|
||||
bool checkFromProject()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
bool readFromProject(HECL::Database::Project& proj)
|
||||
bool readFromProject()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user