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

📄 m2character.h

📁 3D游戏展示程序
💻 H
字号:
//--------------------------------------------------
//  Desc: M2 Character Control
//  Date: 2007.4.10 /update
//  Author: Artsylee
//
//  From: WOW Model Viewer
//  I just coding in my own ways!
//
//--------------------------------------------------

#ifndef _M2CHARACTER_
#define _M2CHARACTER_

#include "M2Loader.h"
#include "Attachment.h"
#include "GNode.h"

enum EquipmentSlot
{
	// Character
	ES_UNUSED = 0,
	ES_SKINCOLOR = 1,
	ES_HAIRCOLOR = 2,
	ES_HAIRSTYLE = 3,
	ES_FACESTYLE = 4,
	ES_FACIALSTYLE = 5,
	// Equipment
	ES_HEAD = 6,
	ES_NECK = 7,
	ES_SHOULDER = 8,
	ES_BOOTS = 9,
	ES_BELT = 10,
	ES_SHIRT = 11,
	ES_PANTS = 12,
	ES_CHEST = 13,
	ES_BRACERS = 14,
	ES_GLOVES = 15,
	ES_HAND_RIGHT = 16,
	ES_HAND_LEFT = 17,
	ES_CAPE = 18,
	ES_TABARD = 19,
	ES_QUIVER = 20,
	// 
	ES_TOTALNUM = 21,
	ES_EQUITBASE = ES_HEAD,
	NUM_CHAR_SLOTS = ES_QUIVER-ES_HEAD+1,
};

enum CSVDEFINE
{
	CSV_NAME = 0,
	CSV_SLOT,
	CSV_ARM_UPPER,
	CSV_ARM_LOWER,
	CSV_HAND,
	CSV_TORSO_UPPER,
	CSV_TORSO_LOWER,
	CSV_LEG_UPPER,
	CSV_LEG_LOWER,
	CSV_FOOT,
	CSV_GEOSET_A,
	CSV_GEOSET_B,
	CSV_GEOSET_C,
	CSV_MODEL_A,
	CSV_MODEL_B,
	CSV_MODEL_TEXTURE,
};

struct TextureGroup;
class M2Character : public GNode
{
public:
	M2Character();
	~M2Character();

	bool	Load(void);
	void	Update(void);
	void	Render(void);
	
	void	SetAnimationIndex(int index);
	void	OnMount(int mountID);
	CM2Loader* GetCurModel(void);
	CM2Loader* GetChar(void);
	void	SetEquipmentValue(int index, int value);
	int		GetEquipmentValue(int index);
	int		GetEquipmentMax(int index);
	void	SaveEquipment(void);
	void	LoadEquipment(bool bDefault = false);

private:
	void	CreateTexture(void);
	void	LoadItem(int slot);
	void	ChangeHairColor(void);
	void	ChangeHairStyle(void);
	void	ChangeFacialStyle(void);
	bool	IsSlotHasModel(int slot);
	void	AddEquipment(int slot, TextureGroup *pTexGroup, int layer);

private:
	Attachment  m_Root;
	Attachment* m_pCharAttach;
	CM2Loader*	m_pCurModel;
	CM2Loader*	m_pCharacter;
	DWORD		m_hChar;
	DWORD		m_hHair;
	DWORD		m_hCape;

	int			m_Geoset[5];

	int			m_EquipmentIndex[32];
	int			m_EquipmentMax[32];
	int			m_EquipmentBase[32];
	DWORD		m_EquipTexture[32];
};

#endif // _M2CHARACTER_

⌨️ 快捷键说明

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