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

📄 cbother.h

📁 赤壁之战(游戏原码)
💻 H
字号:
/////////////////
// CBOther.cpp	:	v0020
// v0010		:	Mar.21.1997
// v0020		:	May.16.1997, add stone, fixed some bugs
// written by	:	Liu Gang
// Compiler		:	Visual C++ 4.2
// Copyright	:	WayAhead Software Co.Ltd.	1996-1997
/////////////////
// header file
// 弓箭,火,滚木,擂石,投石,血迹,爆炸,雨,雪的数据结构

#define	OTHER_MAX		100

enum	OTHER_TYPE
{	OTHER_TYPE_NONE=0,
	OTHER_TYPE_BLOOD,
	OTHER_TYPE_MOUSE,
	OTHER_TYPE_FIRE,
	OTHER_TYPE_ARROW,
	OTHER_TYPE_BOMB,
	OTHER_TYPE_STONE,
	OTHER_TYPE_HUOGONG,
	OTHER_TYPE_GUNMU
};

#define	OTHER_FRAME_MAX	12

struct OTHER_STRUCT
{
	int nType;				// 类型,无效时为OTHER_TYPE_NONE
	int nFile;				// 如果为BMP状态,此值为文件号,为CMP状态无效
	POINT ptBegin;			// 启始位置
	POINT ptEnd;			// 目的位置
	POINT ptCur;			// 当前位置
	SIZE szItem;			// 图形的大小
	int nHit;				// 攻击力
	int nCol[OTHER_FRAME_MAX];				// 图形在压缩包中的偏移量
	int nFrame;				// 当前帧
	int nMaxFrame;			// 最大帧数
	int nDelay;				// 每一帧的延时
	int nCounter;			// 计数器
	WORD nOwnerID;			// 所有者ID
	WORD nTargetID;			// 目标单元ID,射箭有用
	int nSpeed;				// 移动速度,在某个方向上的速度
	float fSin;			// Sin()
	float fCos;			// Cos()
};

extern struct OTHER_STRUCT OTHER[OTHER_MAX];
extern int OTHER_nCounter;

/////////////////
// initialize
void OTHER_InitOther();
/////////////////

/////////////////
// 把数据设置到数组中
// pOther	:	source structure
// return	:	index in array, -1 if failed
int OTHER_CreateData( struct OTHER_STRUCT *pOther );

// 把数据设置到数组中
// 专门为鼠标设置,Dec.8.1997
// pOther	:	source structure
// return	:	index in array, -1 if failed
int OTHER_CreateDataEx( struct OTHER_STRUCT *pOther );

// 从数组中删除该内容,与CreateData对应
// nIndex	:	index in OTHER array
void OTHER_DestroyData( int nIndex );

// 初始化结构
// pOther	:	source structure
void OTHER_ClearData( struct OTHER_STRUCT *pOther );
/////////////////

/////////////////
// 移动该内容
// nIndex	:	index in array
// return	:	TRUE if hit
BOOL OTHER_Move( int nIndex );

// 得到在屏幕上的矩形
// ptScreenOff	:	offset of screen relative to the whole map
// nIndex		:	index in array
// return		:	rectangle on screen
RECT OTHER_GetRect( POINT ptScreenOff, int nIndex );

// 到达目的地后,对该点上的单元造成损失
// nIndex	:	index in array
// return	:	TRUE if hit someone
BOOL OTHER_HitStone( int nIndex );

// 到达目的地后,对目标单元造成损失
// nIndex	:	index in array
// return	:	TRUE if hit someone
BOOL OTHER_HitArrow( int nIndex );

// 生产火攻的火
// nX, nY	:	放火的位置(格子)
// nLife	:	存活时间(轮)
// nDai		:	生产的代数,为0时不生产
// nNum		:	生产的个数,1到9个
extern void OTHER_HUOGONG_Set( int nX, int nY, int nLife, int nDai, int nNum );

// 火烧效果
// nIndex	:	index in array
// return	:	TRUE if hit someone
BOOL OTHER_HUOGONG_Hit( int nIndex );

// 删除火攻效果,如果遇到地形型资源,则该资源被使用掉
void OTHER_HUOGONG_Die( int nIndex );
/////////////////

⌨️ 快捷键说明

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