mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 23:07:42 +00:00
RetroDataSpec: Use override where applicable
Continues the override modernizations, applying the keyword where applicable to the RetroDataSpec target.
This commit is contained in:
@@ -196,7 +196,7 @@ struct TextureCache {
|
||||
};
|
||||
|
||||
struct SpecMP1 : SpecBase {
|
||||
bool checkStandaloneID(const char* id) const { return !memcmp(id, "GM8", 3); }
|
||||
bool checkStandaloneID(const char* id) const override { return !memcmp(id, "GM8", 3); }
|
||||
|
||||
std::vector<const nod::Node*> m_nonPaks;
|
||||
std::vector<DNAMP1::PAKBridge> m_paks;
|
||||
@@ -212,7 +212,7 @@ struct SpecMP1 : SpecBase {
|
||||
|
||||
std::unordered_map<hecl::Hash, hecl::blender::Matrix4f> m_mreaPathToXF;
|
||||
|
||||
void setThreadProject() {
|
||||
void setThreadProject() override {
|
||||
SpecBase::setThreadProject();
|
||||
UniqueIDBridge::SetIDRestorer(&m_idRestorer);
|
||||
}
|
||||
@@ -292,7 +292,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
bool checkFromStandaloneDisc(nod::DiscBase& disc, const hecl::SystemString& regstr,
|
||||
const std::vector<hecl::SystemString>& args, std::vector<ExtractReport>& reps) {
|
||||
const std::vector<hecl::SystemString>& args, std::vector<ExtractReport>& reps) override {
|
||||
nod::IPartition* partition = disc.getDataPartition();
|
||||
m_dolBuf = partition->getDOLBuf();
|
||||
const char* buildInfo = (char*)memmem(m_dolBuf.get(), partition->getDOLSize(), "MetroidBuildInfo", 16) + 19;
|
||||
@@ -319,7 +319,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
bool checkFromTrilogyDisc(nod::DiscBase& disc, const hecl::SystemString& regstr,
|
||||
const std::vector<hecl::SystemString>& args, std::vector<ExtractReport>& reps) {
|
||||
const std::vector<hecl::SystemString>& args, std::vector<ExtractReport>& reps) override {
|
||||
std::vector<hecl::SystemString> mp1args;
|
||||
bool doExtract = false;
|
||||
if (args.size()) {
|
||||
@@ -378,7 +378,7 @@ struct SpecMP1 : SpecBase {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool extractFromDisc(nod::DiscBase& disc, bool force, const hecl::MultiProgressPrinter& progress) {
|
||||
bool extractFromDisc(nod::DiscBase& disc, bool force, const hecl::MultiProgressPrinter& progress) override {
|
||||
m_project.enableDataSpecs({_SYS_STR("MP1-PC")});
|
||||
|
||||
nod::ExtractionContext ctx = {force, nullptr};
|
||||
@@ -459,17 +459,17 @@ struct SpecMP1 : SpecBase {
|
||||
return true;
|
||||
}
|
||||
|
||||
const hecl::Database::DataSpecEntry& getOriginalSpec() const { return SpecEntMP1; }
|
||||
const hecl::Database::DataSpecEntry& getOriginalSpec() const override { return SpecEntMP1; }
|
||||
|
||||
const hecl::Database::DataSpecEntry& getUnmodifiedSpec() const { return SpecEntMP1ORIG; }
|
||||
const hecl::Database::DataSpecEntry& getUnmodifiedSpec() const override { return SpecEntMP1ORIG; }
|
||||
|
||||
hecl::ProjectPath getWorking(class UniqueID32& id) { return m_pakRouter.getWorking(id); }
|
||||
hecl::ProjectPath getWorking(class UniqueID32& id) override { return m_pakRouter.getWorking(id); }
|
||||
|
||||
bool checkPathPrefix(const hecl::ProjectPath& path) const {
|
||||
bool checkPathPrefix(const hecl::ProjectPath& path) const override {
|
||||
return path.getRelativePath().compare(0, 4, _SYS_STR("MP1/")) == 0;
|
||||
}
|
||||
|
||||
bool validateYAMLDNAType(athena::io::IStreamReader& fp) const {
|
||||
bool validateYAMLDNAType(athena::io::IStreamReader& fp) const override {
|
||||
athena::io::YAMLDocReader reader;
|
||||
yaml_parser_set_input(reader.getParser(), (yaml_read_handler_t*)athena::io::YAMLAthenaReader, &fp);
|
||||
return reader.ClassTypeOperation([](const char* classType) {
|
||||
@@ -543,7 +543,7 @@ struct SpecMP1 : SpecBase {
|
||||
});
|
||||
}
|
||||
|
||||
urde::SObjectTag buildTagFromPath(const hecl::ProjectPath& path) const {
|
||||
urde::SObjectTag buildTagFromPath(const hecl::ProjectPath& path) const override {
|
||||
if (hecl::StringUtils::EndsWith(path.getAuxInfo(), _SYS_STR(".CINF")))
|
||||
return {SBIG('CINF'), path.hash().val32()};
|
||||
else if (hecl::StringUtils::EndsWith(path.getAuxInfo(), _SYS_STR(".CSKR")))
|
||||
@@ -708,7 +708,7 @@ struct SpecMP1 : SpecBase {
|
||||
return {};
|
||||
}
|
||||
|
||||
void getTagListForFile(const char* pakName, std::vector<urde::SObjectTag>& out) const {
|
||||
void getTagListForFile(const char* pakName, std::vector<urde::SObjectTag>& out) const override {
|
||||
std::string pathPrefix("MP1/");
|
||||
pathPrefix += pakName;
|
||||
pathPrefix += '/';
|
||||
@@ -720,7 +720,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookMesh(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
Mesh mesh = ds.compileMesh(fast ? hecl::HMDLTopology::Triangles : hecl::HMDLTopology::TriStrips, m_pc ? 16 : -1);
|
||||
|
||||
if (m_pc)
|
||||
@@ -730,21 +730,21 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookColMesh(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
std::vector<ColMesh> mesh = ds.compileColMeshes();
|
||||
ds.close();
|
||||
DNAMP1::DCLN::Cook(out, mesh);
|
||||
}
|
||||
|
||||
void cookPathMesh(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
PathMesh mesh = ds.compilePathMesh();
|
||||
ds.close();
|
||||
DNAMP1::PATH::Cook(out, in, mesh, btok);
|
||||
}
|
||||
|
||||
void cookActor(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
if (hecl::StringUtils::EndsWith(in.getAuxInfo(), _SYS_STR(".CINF"))) {
|
||||
Actor actor = ds.compileActorCharacterOnly();
|
||||
DNAMP1::ANCS::CookCINF(out, in, actor);
|
||||
@@ -796,7 +796,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookArea(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
std::vector<std::string> meshes = ds.getMeshList();
|
||||
std::vector<Mesh> meshCompiles;
|
||||
meshCompiles.reserve(meshes.size());
|
||||
@@ -832,7 +832,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookWorld(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
if (hecl::StringUtils::EndsWith(in.getAuxInfo(), _SYS_STR("MAPW"))) {
|
||||
hecl::blender::World world = ds.compileWorld();
|
||||
ds.close();
|
||||
@@ -849,7 +849,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookGuiFrame(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
auto data = ds.compileGuiFrame(0);
|
||||
athena::io::MemoryReader r(data.data(), data.size());
|
||||
DNAMP1::FRME frme;
|
||||
@@ -859,7 +859,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookYAML(const hecl::ProjectPath& out, const hecl::ProjectPath& in, athena::io::IStreamReader& fin,
|
||||
FCookProgress progress) {
|
||||
FCookProgress progress) override {
|
||||
athena::io::YAMLDocReader reader;
|
||||
if (reader.parse(&fin)) {
|
||||
std::string classStr = reader.readString("DNAType");
|
||||
@@ -992,7 +992,7 @@ struct SpecMP1 : SpecBase {
|
||||
progress(_SYS_STR("Done"));
|
||||
}
|
||||
|
||||
void flattenDependenciesYAML(athena::io::IStreamReader& fin, std::vector<hecl::ProjectPath>& pathsOut) {
|
||||
void flattenDependenciesYAML(athena::io::IStreamReader& fin, std::vector<hecl::ProjectPath>& pathsOut) override {
|
||||
athena::io::YAMLDocReader reader;
|
||||
if (reader.parse(&fin)) {
|
||||
std::string classStr = reader.readString("DNAType");
|
||||
@@ -1045,7 +1045,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void flattenDependenciesANCSYAML(athena::io::IStreamReader& fin, std::vector<hecl::ProjectPath>& pathsOut,
|
||||
int charIdx) {
|
||||
int charIdx) override {
|
||||
athena::io::YAMLDocReader reader;
|
||||
if (reader.parse(&fin)) {
|
||||
std::string classStr = reader.readString("DNAType");
|
||||
@@ -1073,7 +1073,8 @@ struct SpecMP1 : SpecBase {
|
||||
|
||||
void buildWorldPakList(const hecl::ProjectPath& worldPath, const hecl::ProjectPath& worldPathCooked,
|
||||
hecl::blender::Token& btok, athena::io::FileWriter& w, std::vector<urde::SObjectTag>& listOut,
|
||||
atUint64& resTableOffset, std::unordered_map<urde::CAssetId, std::vector<uint8_t>>& mlvlData) {
|
||||
atUint64& resTableOffset,
|
||||
std::unordered_map<urde::CAssetId, std::vector<uint8_t>>& mlvlData) override {
|
||||
DNAMP1::MLVL mlvl;
|
||||
{
|
||||
athena::io::FileReader r(worldPathCooked.getAbsolutePath());
|
||||
@@ -1231,7 +1232,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void buildPakList(hecl::blender::Token& btok, athena::io::FileWriter& w, const std::vector<urde::SObjectTag>& list,
|
||||
const std::vector<std::pair<urde::SObjectTag, std::string>>& nameList, atUint64& resTableOffset) {
|
||||
const std::vector<std::pair<urde::SObjectTag, std::string>>& nameList, atUint64& resTableOffset) override {
|
||||
w.writeUint32Big(m_pc ? 0x80030005 : 0x00030005);
|
||||
w.writeUint32Big(0);
|
||||
|
||||
@@ -1259,7 +1260,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void writePakFileIndex(athena::io::FileWriter& w, const std::vector<urde::SObjectTag>& tags,
|
||||
const std::vector<std::tuple<size_t, size_t, bool>>& index, atUint64 resTableOffset) {
|
||||
const std::vector<std::tuple<size_t, size_t, bool>>& index, atUint64 resTableOffset) override {
|
||||
w.seek(resTableOffset, athena::Begin);
|
||||
|
||||
auto it = tags.begin();
|
||||
@@ -1276,7 +1277,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
std::pair<std::unique_ptr<uint8_t[]>, size_t> compressPakData(const urde::SObjectTag& tag, const uint8_t* data,
|
||||
size_t len) {
|
||||
size_t len) override {
|
||||
bool doCompress = false;
|
||||
switch (tag.type.toUint32()) {
|
||||
case SBIG('TXTR'):
|
||||
@@ -1309,18 +1310,18 @@ struct SpecMP1 : SpecBase {
|
||||
return ret;
|
||||
};
|
||||
|
||||
void cookAudioGroup(const hecl::ProjectPath& out, const hecl::ProjectPath& in, FCookProgress progress) {
|
||||
void cookAudioGroup(const hecl::ProjectPath& out, const hecl::ProjectPath& in, FCookProgress progress) override {
|
||||
DNAMP1::AGSC::Cook(in, out);
|
||||
progress(_SYS_STR("Done"));
|
||||
}
|
||||
|
||||
void cookSong(const hecl::ProjectPath& out, const hecl::ProjectPath& in, FCookProgress progress) {
|
||||
void cookSong(const hecl::ProjectPath& out, const hecl::ProjectPath& in, FCookProgress progress) override {
|
||||
DNAMP1::CSNG::Cook(in, out);
|
||||
progress(_SYS_STR("Done"));
|
||||
}
|
||||
|
||||
void cookMapArea(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
hecl::blender::MapArea mapa = ds.compileMapArea();
|
||||
ds.close();
|
||||
DNAMP1::MAPA::Cook(mapa, out);
|
||||
@@ -1328,7 +1329,7 @@ struct SpecMP1 : SpecBase {
|
||||
}
|
||||
|
||||
void cookMapUniverse(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds,
|
||||
hecl::blender::Token& btok, FCookProgress progress) {
|
||||
hecl::blender::Token& btok, FCookProgress progress) override {
|
||||
hecl::blender::MapUniverse mapu = ds.compileMapUniverse();
|
||||
ds.close();
|
||||
DNAMAPU::MAPU::Cook(mapu, out);
|
||||
|
||||
Reference in New Issue
Block a user