mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-05-13 07:51:21 +00:00
Avoids indirect inclusions where applicable and includes the necessary headers as used by the interface. This way, it prevents code from failing to compile due to changes in other header inclusions.
43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "DataSpec/DNACommon/STRG.hpp"
|
|
|
|
#include "DataSpec/DNAMP1/STRG.hpp"
|
|
#include "DataSpec/DNAMP2/STRG.hpp"
|
|
#include "DataSpec/DNAMP3/STRG.hpp"
|
|
|
|
#include <logvisor/logvisor.hpp>
|
|
|
|
namespace DataSpec {
|
|
|
|
void ISTRG::gatherDependencies(std::vector<hecl::ProjectPath>& pathsOut) const { /* TODO: parse out resource tokens */ }
|
|
|
|
std::unique_ptr<ISTRG> LoadSTRG(athena::io::IStreamReader& reader) {
|
|
uint32_t magic = reader.readUint32Big();
|
|
if (magic != 0x87654321) {
|
|
LogDNACommon.report(logvisor::Error, fmt("invalid STRG magic"));
|
|
return std::unique_ptr<ISTRG>();
|
|
}
|
|
|
|
uint32_t version = reader.readUint32Big();
|
|
switch (version) {
|
|
case 0: {
|
|
DNAMP1::STRG* newStrg = new DNAMP1::STRG;
|
|
newStrg->_read(reader);
|
|
return std::unique_ptr<ISTRG>(newStrg);
|
|
}
|
|
case 1: {
|
|
DNAMP2::STRG* newStrg = new DNAMP2::STRG;
|
|
newStrg->_read(reader);
|
|
return std::unique_ptr<ISTRG>(newStrg);
|
|
}
|
|
case 3: {
|
|
DNAMP3::STRG* newStrg = new DNAMP3::STRG;
|
|
newStrg->_read(reader);
|
|
return std::unique_ptr<ISTRG>(newStrg);
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
return std::unique_ptr<ISTRG>();
|
|
}
|
|
} // namespace DataSpec
|