Przeglądaj źródła

ResourceArchive is now an interface class

Daniele Bartolini 13 lat temu
rodzic
commit
bbfe3300ba
1 zmienionych plików z 3 dodań i 53 usunięć
  1. 3 53
      src/ResourceArchive.h

+ 3 - 53
src/ResourceArchive.h

@@ -33,64 +33,14 @@ namespace crown
 class Filesystem;
 class FileStream;
 
-const uint32_t ARCHIVE_VERSION	= 1;	// Version of the archive
-
-struct ArchiveHeader
-{
-	uint32_t	version;			// The version number of the archive
-	uint32_t	entries_count;		// Number of resource entries in the archive
-	uint32_t	checksum;			// MD5 checksum of the archive
-	uint8_t		padding[64];		// Padding for additional data
-};
-
-struct ArchiveEntry
-{
-	uint32_t	name;				// Name of the resource (fnv1a hash)
-	uint32_t	type;				// Type of the resource (fnv1a hash)
-	uint64_t	offset;				// First byte of the resource (as absolute offset)
-	uint32_t	size;				// Size of the resource data (in bytes)
-};
-
-/// Structure of the archive
-///
-/// [ArchiveHeader]
-/// [ArchiveEntry]
-/// [ArchiveEntry]
-/// ...
-/// [ArchiveEntry]
-/// [ResourceData]
-/// [ResourceData]
-/// ...
-/// [ResourceData]
-///
-/// A valid archive must always have at least the archive header,
-/// starting at byte 0 of the archive file.
-///
-/// Newer archive versions must be totally backward compatible
-/// across minor engine releases, in order to be able to use
-/// recent version of the engine with older game archives.
-
-/// Source of resources
 class ResourceArchive
 {
 public:
 
-							ResourceArchive(Filesystem* filesystem);
-							~ResourceArchive();
-
-	void					open(const char* archive);
-	void					close();
-
-	FileStream*				find(ResourceId name);
-
-private:
-
-	Filesystem*				m_filesystem;
-	
-	FileStream*				m_archive_file;
+							ResourceArchive(Filesystem& fs) {}
+	virtual					~ResourceArchive() {}
 
-	ArchiveEntry*			m_entries;
-	uint32_t				m_entries_count;
+	virtual FileStream*		find(ResourceId name) = 0;
 };
 
 } // namespace crown