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

📄 atflashimporter.h

📁 flash文件的解码程序
💻 H
字号:
#ifndef AtFlashImporter_h_
#define AtFlashImporter_h_

#pragma warning( disable : 4786 )

#include <map>

#include "FImport.h"
#include "FShape.h"
#include "AtFlash.h"

/* A map of old shape tags to new character IDs. 
 * Each flash file is imported with a different set of shapes, and different but
 * initially overlapping shape ids. Each file also has place object tags that refer
 * to the ids in the same file.
 * We need to remap the ids. The ids get remapped from the local, private space of
 * the characters, to the global space of the engine, using this map.
 * The key is the old tag, the value is the new id.
 */
typedef std::map<int, int>		AtFlashIdMap;

class AtFlashImportHandler : public FlashImportHandler
{
	AtFlashIdMap	mIdMap;
	AtFlash *		mFlash;

public:
	AtFlashImportHandler( AtFlash *flash )
	{
		mFlash = flash;
	}

	~AtFlashImportHandler();

	virtual void Import(FlashHeader &data);
	virtual void Import(FlashTagHeader &data);
	
	virtual void Import(FlashTagRemoveObject *data);
	virtual void Import(FlashTagRemoveObject2 *data);
	virtual void Import(FlashTagPlaceObject *data);
	virtual void Import(FlashTagPlaceObject2 *data);
	virtual void Import(FlashTagShowFrame *data);

	virtual void Import(FlashTagBackgroundColor *data);
	virtual void Import(FlashTagLabelFrame *data);
	virtual void Import(FlashTagProtect *data);
	virtual void Import(FlashTagEnd *data);
	virtual void Import(FlashTagExportAssets *data);
	virtual void Import(FlashTagImportAssets *data);
	virtual void Import(FlashTagDefineBitsPtr *data);
	virtual void Import(FlashTagEnableDebugger *data);
	virtual void Import(FlashTagFreeCharacter *data);
	
	virtual void Import(FlashTagDefineBitsJPEG1 *data);
	virtual void Import(FlashTagJPEGTables *data);
	virtual void Import(FlashTagDefineBitsJPEG2 *data);
	virtual void Import(FlashTagDefineBitsJPEG3 *data);
	virtual void Import(FlashTagDefineBitsLossless *data);
	virtual void Import(FlashTagDefineBitsLossless2 *data);

	virtual void Import(FlashTagDefineShape1 *data);
	virtual void Import(FlashTagDefineShape2 *data);
	virtual void Import(FlashTagDefineShape3 *data);
	
	virtual void Import(FlashTagDefineSound *data);
	virtual void Import(FlashTagDefineSoundMP3 *data);
	virtual void Import(FlashTagStartSound *data);
	virtual void Import(FlashTagSoundStreamHead *data);
	virtual void Import(FlashTagSoundStreamHead2 *data);
	virtual void Import(FlashTagSoundStreamBlock *data);

	virtual void Import(FlashTagDoAction *data);
};

// Based on FlashImporter, but very different implementation
class AtFlashImporter
{
public:
	AtFlashImporter() {}
	
	FlashHeader ImportHeader(std::istream &in, AtFlashImportHandler &i);
	bool ImportTag(std::istream &in, AtFlashImportHandler &i);
};

#endif

⌨️ 快捷键说明

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