www.pudn.com > chibi > CBDATA.H


///////////////// 
// CBData.h		:	《赤壁》全局类型数据结构 
// CBData.h		:	<< chibi >> global data type structure 
// 
// 版本0010		:	一九九六年九月十二日 
// v0010		:	Sep.12.1996 
// v0011		:	Oct.18.1996 
// v0020		:	Feb.28.1997 
// 
// 编写			:	刘刚 
// written by	:	Liu Gang 
// 
// 编译器		:	Visual C++ 4.2 
// Compiler		:	Visual C++ 4.2 
// 
// 版权			:	北京前导软件有限公司	1996-1997 
// Copyright	:	WayAhead Co.Ltd.		1996-1997 
///////////////// 
// 此文件用来读取、处理和存放所有单元(将领、士兵、建筑)的属性数据 
 
#ifndef	__CBDATA_H__ 
#define	__CBDATA_H__ 
/////////// 
 
#include "DsApi.h" 
 
#define	DATA_ERROR_ID	700 
 
///////// 
///////// 
// 将领种类General_Type 
#define	DATA_MOULUE_MAX	255 
struct	DATA_GENERAL_STRUCT 
{ 
	// 基本属性 
	BYTE	nID;		// 将领类型(ID) 
	DWORD	dwLife;		// 将领最大生命值 
	char	strName[16];// 名字 
	BYTE	nJunZhu;	// 君主的编号,不是游戏者 编号 
 
	// 将领特殊属性 
	BYTE	nWuLi;		// 武力 
	BYTE	nZhiLi;		// 智力 
	BYTE	nType;		// 将领的类型,1——骑,2——步,3——弓,4——文 
	BYTE	nLevel;		// 将领级别(初始级别) 
	BYTE	nMouLue;	// 谋略 
	BYTE	nJiMou;		// 可使用的计谋 
	int		nJingYan;	// 经验 
	BYTE	nHealth;	// 体力 
 
	// 控制属性 
	BOOL	bOnBattle;	// 如果已经被选进战场为真 
						// 或者初始化时特意不让该将领在本关出现 
}; 
///////// 
 
///////// 
// 单元种类Unit_Type 
#define		DATA_UNIT_NONE		0 
struct	DATA_UNIT_STRUCT 
{ 
	// 基本数据 
	BYTE	nID;	// 类型(ID),文件号 
	char	strName[16];		// 名字 
	BYTE	nLevel;	// 级别 
	DWORD	dwLife;	// 最大带兵数,生命值 
 
	// 攻击和防御数据 
	BYTE	nNearAttack;	// 近程攻击力 
	BYTE	nFarAttack;		// 远程攻击力 
	BYTE	nNearDefend;	// 近程防御力 
	BYTE	nFarDefend;		// 远程防御力 
	BYTE	nViewRange;		// 视野 
	BYTE	nFightRange;	// 射程 
	BYTE	nMoveSpeed;		// 移动速度 
	BYTE	nFightSpeed;	// 攻击速度 
 
	// 建造数据 
	int		nCreateIron;	// 生产该单元时所需的资源 
	int		nCreateFood; 
	int		nCreateWood; 
	int		nCreateGold; 
	int		nCreateSpeed; 
 
	// 计算数据 
	BYTE	nAddExp;		// 被毁后对方经验值增加 
	BYTE	nAddMorale;		// 被毁后对方士气增加,自己士气减少 
}; 
 
// 官职Grade 
struct DATA_GRADE_STRUCT 
{ 
	char	strName[16]; 
	BYTE	nAddWuLi; 
	BYTE	nAddZhiLi; 
	BYTE	nGrade; 
}; 
 
struct DATA_UPGRADE_STRUCT 
{ 
	int nGold; 
	int nWood; 
	int nIron; 
	int nFood; 
 
	DWORD dwParam1; 
	DWORD dwParam2; 
	DWORD dwParam3; 
	DWORD dwParam4; 
}; 
 
#define	DATA_UNIT_GRADE_MAX		29 
#define	DATA_UNIT_GENERAL_MAX	118 
#define	DATA_UNIT_MAX			56 
#define	DATA_UPGRADE_MAX	24 
struct DATA_STRUCT 
{ 
	char strDATA[_MAX_FNAME];	// 存放数据的文件名 
	struct DATA_GRADE_STRUCT	Grade[DATA_UNIT_GRADE_MAX]; 
	struct DATA_GENERAL_STRUCT	Gen[DATA_UNIT_GENERAL_MAX]; 
	struct DATA_UNIT_STRUCT	Unit[DATA_UNIT_MAX]; 
	struct DATA_UPGRADE_STRUCT Upgrade[DATA_UPGRADE_MAX]; 
}; 
 
extern struct DATA_STRUCT DATA_Lib; 
///////// 
 
///////// 
#define	DATA_EFFECT_MAX	128	// 所有的音效声音文件的数量 
#define	DATA_MUSIC_MAX	32	// 所有的背景音乐文件的数量 
struct DATA_WAVE_STRUCT 
{ 
	char	strName[_MAX_FNAME]; 
}; 
 
struct DATA_WAVE_LIB_STRUCT 
{ 
	char strWAVFile[_MAX_FNAME];	// 存放声音数据的文件名 
	struct DATA_WAVE_STRUCT Music[DATA_MUSIC_MAX]; 
	struct DATA_WAVE_STRUCT Effect[DATA_EFFECT_MAX];	// 保存WAV音效 
}; 
extern struct DATA_WAVE_LIB_STRUCT DATA_WAVE_Lib; 
///////// 
 
 
BOOL DATA_ReadDATAFile( HWND hwnd, LPCTSTR filename, LPCTSTR path ); 
BOOL DATA_ReloadDATAFile( HWND hwnd ); 
 
////////////////////// 
// 声音文件,声音个体 
// 读取声音文件 
// hwnd		:	window handle if error  
// filname	:	wave data file name 
// path		:	wave data file path 
// pathWAV	:	wave source file path 
// return	:	TRUE if read successful 
BOOL DATA_ReadWAVEFile( HWND hwnd, LPCTSTR filename, LPCTSTR path, LPCTSTR pathWAV ); 
 
// play sound effects 
// nIndex	:	index number from DATA_WAVE_Lib for play source 
// bLoop	:	TRUE for loop 
void DATA_WAVE_EffectPlay( int nIndex, BOOL bLoop=TRUE ); 
void DATA_WAVE_EffectPlayLow( int nIndex );	// in a low voice 
 
// play background music 
// nIndex	:	index number from DATA_WAVE_Lib for play source 
void DATA_WAVE_MusicPlay( int nIndex ); 
 
// play background music 
// filename		:	file name to be played 
void DATA_WAVE_MusicPlayS( LPCTSTR filename ); 
 
// stop background music 
void DATA_WAVE_MusicStop(); 
 
// replay the background music 
void DATA_WAVE_MusicReplay(); 
 
// Close background music 
void DATA_WAVE_MusicClose(); 
////////////////////// 
 
///////// 
#endif