#pragma once #include #include #include namespace nx { class AssetHeader : public fnd::ISerialisable { public: struct sSection { uint64_t offset; uint64_t size; void operator=(const sSection& other) { offset = other.offset; size = other.size; } }; AssetHeader(); AssetHeader(const AssetHeader& other); bool operator==(const AssetHeader& other) const; bool operator!=(const AssetHeader& other) const; void operator=(const AssetHeader& other); // export/import binary void toBytes(); void fromBytes(const byte_t* bytes, size_t len); const fnd::Vec& getBytes() const; // variables void clear(); const sSection& getIconInfo() const; void setIconInfo(const sSection& info); const sSection& getNacpInfo() const; void setNacpInfo(const sSection& info); const sSection& getRomfsInfo() const; void setRomfsInfo(const sSection& info); private: const std::string kModuleName = "NRO_ASSET_HEADER"; // binary fnd::Vec mRawBinary; // data sSection mIconInfo; sSection mNacpInfo; sSection mRomfsInfo; }; }