⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcefile.h

📁 游戏编程精粹6第1章 通用编程,对入门的游戏开发者很有帮助.
💻 H
字号:
#ifndef _RESOURCE_FILE_
#define _RESOURCE_FILE_

#include "core_defs.h"
#include "basefile.h"
#include <vector>
#include <string>
#include <map>

#define ResourceFileFilenameMaxLen 256
typedef std::vector<std::string> ResourceFileStringTable;

class FileInterface;

struct ResourceFileHeader
{
	uint32 nVersion;
	uint32 nNumFiles;
};

struct ResourceFileEntry
{
	uint16	nStringTableIndex;
	uint32	nFlags;
	uint32	nFileSize;
	uint32	nCompressedFileSize;
	uint32	nFilepointer;
};

struct ResourceFileStats
{
	uint32	nFlags;
	uint32	nFileSize;
};

typedef std::vector<ResourceFileEntry> FileEntryTable;
typedef std::map<std::string, ResourceFileEntry> FileTable;

class ResourceFile
{
public:
	ResourceFile();
	~ResourceFile();

	GEN_RESULT	Open(const char* szFilename);
	GEN_RESULT	Close();
	GEN_RESULT	ClosePackedFile(BaseFile* pFile);
	BaseFile*	Find(const char* szFilename, ResourceFileStats *pEntry);
	uint32		GetNumFiles();
	BaseFile*	GetFileFromIndex(uint32 nIndex, ResourceFileStats *pEntry);
	BaseFile*	GetFileHandle(){ return m_pFileHandle; }

protected:
	BaseFile		*m_pFileHandle;
	FileInterface	*m_pFileSystem;

	//Current file system stats
	ResourceFileHeader		m_FileHeader;
	ResourceFileStringTable m_FileStringTable;
	FileEntryTable			m_FileEntryHeaderTable;
	FileTable				m_FileTable;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -