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

📄 gamedataset.h

📁 网络游戏魔域源代码 测试可以完整变异
💻 H
字号:
#ifndef _GAMEDATASET_H
#define _GAMEDATASET_H

//-------------------------------------------------------------------
#include "Ani.h"
#include "ND_Bitmap.h"
#include "3DEffect.h"
#include "StrRes.h"
//-------------------------------------------------------------------

#include <map>
#include <deque>
#include <string>
using namespace std;

// type define
typedef struct 
{
	std::string		strMapItemEffect;
	std::string		strItemUseEffect;
	std::string		strItemBgEffect;
	std::string		strItemDropSound;
}ItemEffectInfo;

typedef struct 
{
	OBJID	id;
	C3DObj*	p3DObj;
	C3DMotion* pDefaultMotion;
	DWORD	timeBirth;
}C3DObjInfo;

typedef struct 
{
	CHAR	szFile[128];
}CResourceInfo;

typedef struct 
{
	OBJID	id;
	C3DMotion* p3DMotion;
	DWORD	timeBirth;
}C3DMotionInfo;

typedef struct 
{
	OBJID	id;
	C3DTexture* p3DTexture;
	DWORD	timeBirth;
}C3DTextureInfo;

typedef struct 
{
	OBJID	id;
	C3DEffect* p3DEffect;
	DWORD	timeBirth;
}C3DEffectInfo;

#include <deque>
using namespace std;

typedef map<OBJID, C3DObjInfo* >	MAP_3DOBJEX;
typedef map<OBJID, C3DMotionInfo* >	MAP_3DMOTIONEX;
typedef map<OBJID, C3DTextureInfo* >	MAP_3DTEXTUREEX;
typedef map<OBJID, C3DEffectInfo* >	MAP_3DEFFECTEX;

typedef map<OBJID, string>		MAP_RES;
class CAni;
typedef deque<CAni* >  DEQUE_ANI;

//--------------------------------------------------
enum{EXIGENCE_NORMAL = 0, EXIGENCE_ABOVENORMAL, EXIGENCE_IMMEDIATE};
//---------------------------------------------------

class CGameDataSet {
public:
	CGameDataSet(void);	
	~CGameDataSet(void);

	void Init			(void);
	void Destroy		(void);
	void Process		(void);
	void InitDnp		(void);
	CAni*		GetItemMinIcon		(OBJID idType, int nExigence = EXIGENCE_NORMAL);
	CAni*		GetPlayerFaceIcon	(int nFace, int nLook, int nExigence = EXIGENCE_NORMAL);
	CAni*		GetEmblemIcon		(int nIndex, int nExigence = EXIGENCE_NORMAL);
	
	CAni*		GetPetFaceIcon		(int nFace, int nExigence = EXIGENCE_NORMAL);
	CAni*		GetNpcFaceIcon		(int nFace, int nExigence = EXIGENCE_NORMAL);
	CAni*		GetDataAni			(const char* pszFileName, const char* pszTitle, int nExigence = EXIGENCE_NORMAL, DWORD dwLife = 30*1000);
	CAni*		GetMedal			(int nMedal, int nExigence = EXIGENCE_NORMAL);

	C3DObj*		Get3DObj	(OBJID id);
	C3DMotion*	Get3DMotion (OBJID id);
	C3DMotion*  Get3DWeaponMotion (OBJID id);
	C3DMotion*  Get3DMantleMotion (OBJID id);
	C3DMotion*  Get3DMountMotion (OBJID id);

	C3DTexture* Get3DTexture(OBJID id);
	C3DEffect*	Get3DEffect	(OBJID id);

	C3DObjInfo*	Get3DObjInfo(OBJID id);
	OBJID		Get3DTextureID	(C3DTexture* pTexture);
	
	C3DEffect*  CreateNew3DEffect(OBJID id);
	const char*		GetSound(OBJID idSound);
	ItemEffectInfo*		GetItemEffectInfo(OBJID id);

	const char*    GetEmotionShutCut(int nIndex);
	int			   GetEmotionAmount();
	CAni*		GetEmotionIcon(int nIndex, int nExigence = EXIGENCE_NORMAL);
	
	void		ShowInfoBack(int x, int y, int nWidth, int nHeight);
	const char*	GetVersionInfo	(void);
	
private:
	MAP_3DOBJEX		m_set3DObj;
	MAP_3DMOTIONEX		m_set3DMotion, m_set3DWeaponMotion, m_set3DMantleMotion, m_set3DMountMotion;
	MAP_3DTEXTUREEX		m_set3DTexture;
	MAP_3DEFFECTEX		m_set3DEffect;
	MAP_DYNAMICANI		m_mapDataAni;
	
	DWORD				m_timerCheck;
	MAP_RES				m_mapResMesh;
	MAP_RES				m_mapResMotion;
	MAP_RES				m_mapResTexture;
	MAP_RES				m_mapResEffectObj;
	MAP_RES				m_mapResWeaponMotion;
	MAP_RES				m_mapResMantleMotion;
	MAP_RES				m_mapResMountMotion;
	MAP_RES				m_mapSound;
	CStrRes				m_objStrRes;
	std::map<OBJID, ItemEffectInfo> m_mapItemEffectInfo;

	std::vector<string> m_setEmotion;
	
public:
	void	LoadRes(const char* pszResFile, MAP_RES& mapRes);
	const	char* GetStr(OBJID idRes){return m_objStrRes.GetStr(idRes);}
private:
	void		CreateItemEffectInfo();
	void		DestroyItemEffectInfo();
	C3DMotion*	CreateNew3DMotion(OBJID id);

	C3DMotion*	CreateNew3DWeaponMotion(OBJID id);
	C3DMotion*	CreateNew3DMantleMotion(OBJID id);
	C3DMotion*	CreateNew3DMountMotion(OBJID id);

	C3DMotion*	CreateNew3DMotion(const char* pszFileName);
	C3DTexture* CreateNew3DTexture(OBJID id);

	void        CreateEmotionInfo();

	void		DestroyDataAni				(void);
	void		Destroy3DObj				(void);
	void		Destroy3DTexture			(void);
	void		Destroy3DMotion				(void);
	void		Destroy3DWeaponMotion		(void);
	void		Destroy3DMantleMotion		(void);
	void		Destroy3DMountMotion		(void);
	void		Destroy3DEffect				(void);

	void		ProcessDataAni				(void);
	void		Process3DObjSet				(void);
	void		Process3DMotionSet			(void);
	void		Process3DWeaponMotionSet	(void);
	void		Process3DMantalMotionSet	(void);
	void		Process3DMountMotionSet	(void);
	void		Process3DTextureSet			(void);
	void		Process3DEffectSet			(void);
// 系统策略...
private:
	void		InitSystemPolicy(void);

public:
	DWORD m_dw3DMotionLife;
	DWORD m_dw3DTextureLife;
	DWORD m_dw3DEffectLife;
	DWORD m_dwPuzzleLife;
	DWORD m_dwPuzzlePreloadSize;
	DWORD m_dwReadThreadPriority;
public:
	void GetObjAmount(DWORD& dw3DObj, DWORD& dw3DMotion, DWORD& dw3DWMotion, DWORD& dwTexture, DWORD& dw3DEffect, DWORD& dwDataAni);
};
#ifdef _ANALYSIS_ON
extern DWORD g_dw3DObj, g_dw3DMotion, g_dw3DWMotion, g_dwTexture, g_dw3DEffect, g_dwDataAni;
#endif
//-------------------------------------------------------------------
// extenal...
extern CGameDataSet g_objGameDataSet;

#endif

⌨️ 快捷键说明

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