📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -