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

📄 typedef.h

📁 可以解壓pak檔, 修改墨香檔案一流, 必用 墨香私服必
💻 H
📖 第 1 页 / 共 3 页
字号:
};
struct FLOAT_RECT
{
	float	fLeft;
	float	fTop;
	float	fRight;
	float	fBottom;
};



struct COLORVALUE
{
	float	r;
	float	g;
	float	b;
	float	a;
};
struct TVERTEX
{
	float u;
	float v;
};

struct TPVERTEX
{
	float	x;
	float	y;
	float	z;
	float	tu;
	float	tv;
};

struct NODE_TM
{
	float		fRotAng;
	float		fPosX,fPosY,fPosZ;
	float		fRotAxisX,fRotAxisY,fRotAxisZ;
	float		fScaleX,fScaleY,fScaleZ;
	float		fScaleAxisX,fScaleAxisY,fScaleAxisZ;
	float		fScaleAngle;
	MATRIX4		mat4;
	MATRIX4		mat4Inverse;
};

enum SPOT_LIGHT_TYPE
{
	SPOT_LIGHT_TYPE_PRJIMAGE	= 0,
	SPOT_LIGHT_TYPE_SHADOW		= 1,
	SPOT_LIGHT_TYPE_MIRROR		= 2
};

struct LIGHT_DESC
{
	DWORD			dwAmbient;
	DWORD			dwDiffuse;
	DWORD			dwSpecular;
	
	VECTOR3			v3Point;
	float			fRs;
	
	VECTOR3			v3To;
	VECTOR3			v3Up;
	DWORD			dwProjTexIndex;
	float			fFov;
	
	float			fNear;
	float			fFar;
	float			fWidth;
	float			fHeight;
	void*			pMtlHandle;
	DWORD			dwFlag;
	SPOT_LIGHT_TYPE	type;
};
//#define LIGHT_DESC_SIZE	(4 + VECTOR3_SIZE + 4 + VECTOR3_SIZE + VECTOR3_SIZE + 4 + 4 + 4 + 4);
//#define LIGHT_DESC_RS_OFFSET	4+VECTOR3_SIZE
struct MIRROR_DESC
{
	VECTOR3			v3Point;
	float			fRs;
	
	VECTOR3			v3To;
	VECTOR3			v3Up;
	float			fFov;
	
	float			fNear;
	float			fFar;
	float			fWidth;
	float			fHeight;
	
	DWORD			dwFlag;
};


struct DIRECTIONAL_LIGHT_DESC
{
	DWORD			dwAmbient;
	DWORD			dwDiffuse;
	DWORD			dwSpecular;
	VECTOR3			v3Dir;
	BOOL			bEnable;
};

struct LIGHT_INDEX_DESC
{

	void*		pMtlHandle;
	BYTE		bLightIndex;
	BYTE		bTexOP;
	BYTE		bReserved2;
	BYTE		bReserved3;

};
struct INDEX_BUFFER_DESC
{
	DWORD		dwIndicesNum;
	WORD*		pIndex;
};
struct INDEX_POS
{
	DWORD		dwX;
	DWORD		dwY;
};


struct PLANE
{
	VECTOR3		v3Up;
	float		D;
};
#define PLANE_D_OFFSET	VECTOR3_SIZE


struct PATCH;
struct TEXTURE_PLANE
{
	VECTOR3			v3Normal;
	VECTOR3			v3Rect[4];
	DWORD			dwEntryPosX;
	DWORD			dwEntryPosY;
	PLANE			plane;
	DWORD			dwReserved;
	DWORD			dwPatchNum;
	PATCH*			pPatch;
	DWORD			dwTexelSize;
};
class CBaseObject;
class CMeshObject;

#pragma pack(push,1)

struct TGA_HEADER
{
	char idLength;
	char ColorMapType;
	char ImageType;
	WORD ColorMapFirst;
	WORD ColorMapLast;
	char ColorMapBits;
	WORD FirstX;
	WORD FirstY;
	WORD width;
	WORD height;
	char Bits;
	char Descriptor;
};
#pragma pack(pop)


#ifdef _MAX_EXP
	#define	MAXEXP_MAX_MATERIAL_NUM		65536		
	struct FACE
	{
		WORD		a;
		WORD		b;
		WORD		c;
		WORD		mtlid;
		VECTOR3		v3Normal[3];
	};
	struct TFACE
	{
		WORD		a;
		WORD		b;
		WORD		c;
		WORD		flag;
	};

	#define	MAX_PHYSIQUE_OBJECT_NUM		512

	struct POINT3D_REF_TVERTEX
	{
		VECTOR3*				pv3Point;
		TVERTEX*				ptv;
		POINT3D_REF_TVERTEX*	pNext;
		WORD					wIndex;

	};
	struct PATCH
	{
		VECTOR3			v3Point;
		VECTOR3			v3Normal;
		float			fDistance;
		DWORD			dwColor;
		DWORD			sx;
		DWORD			sy;
		TEXTURE_PLANE*	pTexPlane;
	};


#else

	struct PATCH
	{
		DWORD		dwColor;
		VECTOR3		v3Point;
		WORD		sx;
		WORD		sy;
		DWORD		dwLightColor[4];
	};

	#define		PATCH_SX_OFFSET				4+VECTOR3_SIZE
	#define		PATCH_SY_OFFSET				4+VECTOR3_SIZE+2
	#define		PATCH_LIGHT_COLOR_OFFSET	4+VECTOR3_SIZE+2+2
	#define		PATCH_SIZE					36				


#endif

#pragma pack(push,1)

struct BONE
{
	void*			pBone;
	float			fWeight;
	VECTOR3			v3Offset;
	VECTOR3			v3NormalOffset;
};
struct PHYSIQUE_VERTEX
{
	BYTE			bBonesNum;
	BONE*			pBoneList;
};

#pragma pack(pop)

#define POS_OFFSET_IN_BONE		8
#define NORMAL_OFFSET_IN_BONE	20
#define BONE_SIZE				32
#define	PHYSIQUE_VERTEX_SIZE	5

struct COLLISION_FACE
{
	VECTOR3		v3Point[3];
	VECTOR3		v3Up;
	float		D;

};
struct MATERIAL 
{	

	DWORD			dwTextureNum;
	DWORD			dwDiffuse;
	DWORD			dwAmbient;
	DWORD			dwSpecular;
	float			fTransparency;
	float			fShine;
	float			fShineStrength;
	char			szDiffuseTexmapFileName[MAX_NAME_LEN];	
	char			szReflectTexmapFileName[MAX_NAME_LEN];	
	DWORD			dwFlag;

	DWORD			GetFlag()	{return dwFlag;}
	char*			GetDiffuseTexmapName() {return szDiffuseTexmapFileName;}
	char*			GetReflectTexmapName() {return szReflectTexmapFileName;}
	DWORD			GetDiffuse() {return dwDiffuse;}
	DWORD			GetAmbient() {return dwAmbient;}
	DWORD			GetSpecular() {return dwSpecular;}
	float			GetTransparency() {return fTransparency;}
	float			GetShine() {return fShine;}
	float			GetShineStrength() {return fShineStrength;}
};

struct MATERIAL_TABLE
{
	MATERIAL*		pMtl;
	DWORD			dwMtlIndex;
};

struct LIGHT_TEXTURE
{
	TEXTURE_PLANE*		pTexPlane;
	DWORD				dwTexPlaneNum;
	DWORD				dwSurfaceWidth;
	DWORD				dwSurfaceHeight;
	DWORD				dwBPS;
	char*				pBits;

};

struct VIEW_VOLUME
{
	VECTOR3		From;		// 墨皋扼狼 困摹.
	PLANE		Plane[4];	// 鉴辑措肺 哭率, 坷弗率, 酒贰, 困.

	float		fFar;		// 矫痢栏肺何磐 啊厘 刚镑狼 芭府.
	BOOL		bIsOrtho;
	
	float		fWidth;
	// 捞酒贰何畔 绝绢档 瞪妨唱.?
//	VECTOR3		To;			// 捞扒 鞘夸乐绰瘤 葛福摆焙.
//	float		fFov;		// 墨皋扼 谅快狼 fov.
//	float		fHVRatio;	// 啊肺, 技肺 厚啦, 老馆利栏肺 1.3333沥档摆瘤.
	
//	VECTOR3		v3SenderPosition;		// 橇肺璃记 溅档快俊辑 荐脚磊 困摹.
};

struct MESH_DESC
{
	DWORD					dwVertexNum;
	VECTOR3*				pv3WorldList;
	VECTOR3*				pv3LocalList;
	DWORD					dwTexVertexNum;
	TVERTEX*				ptvTexCoordList;

	MATRIX4*				pMatrixWorldInverse;

	DWORD					dwFaceGroupNum;
		
	LIGHT_TEXTURE			LightTexture;
	DWORD*					pVertexColor;
	VECTOR3*				pv3NormalLocal;
	CMeshFlag				meshFlag;
};

struct CAMERA_DESC
{
	VECTOR3			v3From;
	VECTOR3			v3To;
	VECTOR3			v3Up;			// 墨皋扼狼 up.
	float			fXRot;
	float			fYRot;
	float			fZRot;
	float			fFovX;
	float			fFovY;
	float			fAspect;
	float			fNear;
	float			fFar;
};


class CMaterial;

struct FACE_DESC
{
	WORD*			pIndex;				// face index 硅凯 器牢磐 
	DWORD			dwFacesNum;			// face肮荐
	DWORD			dwMtlIndex;			// 概磐府倔 牢郸胶
	MATERIAL*		pMaterial;			// material 
	TVERTEX*		ptUVLight1;			// 扼捞飘 咆胶媚侩 uv谅钎.搁鉴辑客 1:1 措览 
	TVERTEX*		ptUVLight2;			// 扼捞飘 咆胶媚侩 uv谅钎.搁鉴辑客 1:1 措览.胶怕平 扼捞飘甘.
	DWORD*			pdwMtlIndex;		// 概磐府倔 牢郸胶 
};



struct IVERTEX
{
	float			x;
	float			y;
	float			z;

	float			u1;
	float			v1;
};


struct MOTION_DESC
{
	DWORD					dwTicksPerFrame;
	DWORD					dwFirstFrame;
	DWORD					dwLastFrame;
	DWORD					dwFrameSpeed;
	DWORD					dwKeyFrameStep;
	char					szMotionName[MAX_NAME_LEN];
};


struct MODEL_STATUS
{
	DWORD		dwFrame;
	DWORD		dwMotionIndex;
	DWORD		dwLODLevel;
	float		fDistanceFromView;
	float		fDistanceFactor;
	void*		pMotionObject;
	BOOL		bAxisAlignOK;
};
struct MOTION_STATUS
{
	DWORD		dwFrame;
	DWORD		dwMotionIndex;
	void*		pMotionUID;
};

struct BOUNDING_BOX
{
	VECTOR3			v3Oct[8];
};

struct BOUNDING_SPHERE
{
	VECTOR3			v3Point;
	float			fRs;
};

struct BOUNDING_CYLINDER
{
	VECTOR3			v3Point;
	float			fRs;
	float			fAy;
};

struct BOUNDING_CAPSULE
{
	VECTOR3			v3From;
	VECTOR3			v3To;
	float			fRadius;
};

struct COLLISION_MESH_OBJECT_DESC_SAVELOAD
{
	BOUNDING_BOX		boundingBox;
	BOUNDING_SPHERE		boundingSphere;
	BOUNDING_CYLINDER	boundingCylinder;
	DWORD				dwObjIndex;
	char				szObjName[MAX_NAME_LEN];
};

struct COLLISION_MESH_OBJECT_DESC
{
	BOUNDING_BOX		boundingBox;
	BOUNDING_SPHERE		boundingSphere;
	BOUNDING_CYLINDER	boundingCylinder;
	DWORD				dwObjIndex;
};


struct COLLISION_MODEL_DESC
{
	COLLISION_MESH_OBJECT_DESC	colMeshModel;
	DWORD						dwColMeshObjectDescNum;
	COLLISION_MESH_OBJECT_DESC	colMeshObjectDesc[1];
};
struct OBJ_REF_DESC
{
	COLLISION_MESH_OBJECT_DESC	colMeshDescLocal;
	COLLISION_MESH_OBJECT_DESC	colMeshDescWorld;
	MATRIX4						matResult;
	MODEL_STATUS				modelStatus;
};

struct IMAGE_HEADER
{
	DWORD				dwWidth;
	DWORD				dwHeight;
	DWORD				dwPitch;
	DWORD				dwBPS;
};
struct IMAGE_DESC
{
	IMAGE_HEADER	imgHeader;
	char*			pBits;
};

struct TEXTURE_TABLE
{
	WORD		wIndex;
	char		szTextureName[MAX_NAME_LEN];

};
struct PACKFILE_NAME_TABLE
{
	char	szFileName[_MAX_PATH];
	DWORD	dwFlag;
};
struct HFIELD_CREATE_DESC
{
	float			left;
	float			top;
	float			right;
	float			bottom;
	float			fFaceSize;
	DWORD			dwFacesNumPerObjAxis;
	DWORD			dwObjNumX;
	DWORD			dwObjNumZ;
	DWORD			dwDetailLevelNum;
	DWORD			dwIndexBufferNumLV0;
	TEXTURE_TABLE*	pTexTable;
	DWORD			dwTileTextureNum;
	

};

struct HFIELD_DESC
{
	float			left;
	float			top;
	float			right;
	float			bottom;
	float			fFaceSize;

	DWORD			dwFacesNumPerObjAxis;
	DWORD			dwObjNumX;
	DWORD			dwObjNumZ;
	BYTE			bDetailLevelNum;
	BYTE			bReserved0;
	BYTE			bReserved1;
	BYTE			bBlendEnable;
	DWORD			dwIndexBufferNumLV0;
	
	TEXTURE_TABLE*	pTexTable;
	DWORD			dwTileTextureNum;
	

⌨️ 快捷键说明

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