diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c5693eb8..552452574 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,3 +5,4 @@ if (NOT TARGET NOD) endif() include_directories(${ATHENA_INCLUDE_DIR} ${LOG_VISOR_INCLUDE_DIR}) add_subdirectory(DataSpec) +add_subdirectory(Runtime) diff --git a/DataSpec/DNACommon/DNACommon.hpp b/DataSpec/DNACommon/DNACommon.hpp index b76e4aa43..127db2c33 100644 --- a/DataSpec/DNACommon/DNACommon.hpp +++ b/DataSpec/DNACommon/DNACommon.hpp @@ -10,6 +10,20 @@ namespace Retro /* This comes up a great deal */ typedef Athena::io::DNA BigDNA; +class FourCC final : public BigDNA, public HECL::FourCC +{ +public: + FourCC() : HECL::FourCC() {} + FourCC(const char* name) + : HECL::FourCC(name) {} + + Delete expl; + inline void read(Athena::io::IStreamReader& reader) + {reader.readUBytesToBuf(fcc, 4);} + inline void write(Athena::io::IStreamWriter& writer) const + {writer.writeUBytes((atUint8*)fcc, 4);} +}; + /* PAK 32-bit Unique ID */ class UniqueID32 : public BigDNA { diff --git a/DataSpec/DNAMP1/MLVL.hpp b/DataSpec/DNAMP1/MLVL.hpp index 99a646e7b..38c716af2 100644 --- a/DataSpec/DNAMP1/MLVL.hpp +++ b/DataSpec/DNAMP1/MLVL.hpp @@ -8,7 +8,7 @@ namespace DNAMP1 struct MLVL : BigDNA { DECL_DNA - HECL::FourCC magic; + FourCC magic; Value version; UniqueID32 worldNameId; UniqueID32 saveWorldId; diff --git a/DataSpec/DNAMP1/PAK.hpp b/DataSpec/DNAMP1/PAK.hpp index 14a84dca9..94c80cd71 100644 --- a/DataSpec/DNAMP1/PAK.hpp +++ b/DataSpec/DNAMP1/PAK.hpp @@ -17,7 +17,7 @@ public: struct NameEntry : public BigDNA { DECL_DNA - HECL::FourCC type; + FourCC type; UniqueID32 id; Value nameLen; String name; @@ -27,7 +27,7 @@ public: { DECL_DNA Value compressed; - HECL::FourCC type; + FourCC type; UniqueID32 id; Value size; Value offset; diff --git a/DataSpec/DNAMP1/STRG.hpp b/DataSpec/DNAMP1/STRG.hpp index fa65b4110..3bb42428f 100644 --- a/DataSpec/DNAMP1/STRG.hpp +++ b/DataSpec/DNAMP1/STRG.hpp @@ -24,7 +24,7 @@ struct STRG : BigDNA struct Language { - HECL::FourCC lang; + FourCC lang; std::vector strings; }; std::vector langs; diff --git a/DataSpec/DNAMP2/MLVL.hpp b/DataSpec/DNAMP2/MLVL.hpp index b39e95ea0..6fbabf086 100644 --- a/DataSpec/DNAMP2/MLVL.hpp +++ b/DataSpec/DNAMP2/MLVL.hpp @@ -8,7 +8,7 @@ namespace DNAMP2 struct MLVL : BigDNA { DECL_DNA - HECL::FourCC magic; + FourCC magic; Value version; UniqueID32 worldNameId; UniqueID32 darkWorldNameId; diff --git a/DataSpec/DNAMP3/PAK.cpp b/DataSpec/DNAMP3/PAK.cpp index 8385eec4a..44adad77f 100644 --- a/DataSpec/DNAMP3/PAK.cpp +++ b/DataSpec/DNAMP3/PAK.cpp @@ -55,7 +55,7 @@ void PAK::write(Athena::io::IStreamWriter& writer) const writer.setEndian(Athena::BigEndian); m_header.write(writer); - HECL::FourCC("STRG").write(writer); + FourCC("STRG").write(writer); atUint32 strgSz = 4; for (const NameEntry& entry : m_nameEntries) strgSz += entry.name.size() + 13; @@ -63,13 +63,13 @@ void PAK::write(Athena::io::IStreamWriter& writer) const strgSz += strgPad; writer.writeUint32(strgSz); - HECL::FourCC("RSHD").write(writer); + FourCC("RSHD").write(writer); atUint32 rshdSz = 4 + 24 * m_entries.size(); atUint32 rshdPad = ((rshdSz + 63) & ~63) - rshdSz; rshdSz += rshdPad; writer.writeUint32(rshdSz); - HECL::FourCC("DATA").write(writer); + FourCC("DATA").write(writer); atUint32 dataSz = 0; for (const Entry& entry : m_entries) dataSz += (entry.size + 63) & ~63; diff --git a/DataSpec/DNAMP3/PAK.hpp b/DataSpec/DNAMP3/PAK.hpp index 1d0142ebb..c06a6703f 100644 --- a/DataSpec/DNAMP3/PAK.hpp +++ b/DataSpec/DNAMP3/PAK.hpp @@ -27,7 +27,7 @@ public: { DECL_DNA String<-1> name; - HECL::FourCC type; + FourCC type; UniqueID64 id; }; diff --git a/Runtime/Audio/CMakeLists.txt b/Runtime/Audio/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/CMakeLists.txt b/Runtime/CMakeLists.txt new file mode 100644 index 000000000..9166d8224 --- /dev/null +++ b/Runtime/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory(Core) +add_subdirectory(Graphics) +add_subdirectory(Audio) +add_subdirectory(Character) +add_subdirectory(GuiSys) +add_subdirectory(Script) + diff --git a/Runtime/Character/CMakeLists.txt b/Runtime/Character/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Core/CMakeLists.txt b/Runtime/Core/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Graphics/CMakeLists.txt b/Runtime/Graphics/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/GuiSys/CMakeLists.txt b/Runtime/GuiSys/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Script/CMakeLists.txt b/Runtime/Script/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb