DragonNest/Client/ActorEternity/SaveSkin.h
2024-12-19 09:48:26 +08:00

58 lines
967 B
C++

#pragma once
#define SKIN_FILE_STRING "Eternity Engine Skin File 0.1"
#define SKIN_FILE_VERSION 10
struct SSkinFileHeader
{
char szHeaderString[ 256 ];
char szMeshName[ 256 ];
int nVersion;
int nSubMeshCount;
char cReserved[ 504 ];
};
struct SSubSkinHeader
{
char szMaterialName[ 256 ];
char szEffectName[ 256 ];
float fAlphaValue;
bool bEnableAlpha;
char cReserved[ 507 ];
};
class CSaveSkin
{
public:
CSaveSkin(void);
virtual ~CSaveSkin(void);
protected:
enum ExportParamType {
PT_UNKNOWN = -1,
PT_INT = 0,
PT_FLOAT = 1,
PT_FLOAT4 = 2,
PT_TEX = 3,
PT_FORCE_DWORD = 0xFFFFFFFF,
};
struct SParamStruct {
char szParamName[256];
ExportParamType Type;
union {
int nInt;
float fFloat;
float fFloat4[4];
char *szStr;
};
};
std::vector< SParamStruct > m_VecParamList;
public:
void SaveSkin( FILE *fp, Mtl *pMtl );
bool CheckDirectX9ShaderClass( Mtl *pMtl );
void WriteString( FILE *fp, const char *pString );
};