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

📄 maphandler.h

📁 好游戏的客户端原码
💻 H
字号:
/******************************************************************************************************************
                                                                                                                   
	葛碘疙:																											
																													
	累己磊:																											
	累己老:																											
																													
	[老磊][荐沥磊] : 荐沥 郴侩																						
                                                                                                                   
*******************************************************************************************************************/


#ifndef _MAPHANDLER_
#define	_MAPHANDLER_


#pragma pack(1)
typedef struct tagLIGHTINFO
{
	BOOL	bIsLight;
	CHAR	cLightSizeType;
	CHAR	cLightColorType;
}LIGHTINFO, *LPLIGHTINFO;

// 甘颇老 肺爹包访 沥焊历厘.
// 泅犁 乐绰 瘤开狼 傈眉 甘俊 包访等 荤亲阑 焊包茄促.
typedef struct tagMAPFILEHEADER
{
	CHAR	szDesc[20];
	WORD	wAttr;
	SHORT	shWidth;
	SHORT	shHeight;
	CHAR	cEventFileIdx;
	CHAR	cFogColor;
}MAPFILEHEADER, *LPMAPFILEHEADER;

typedef struct tagTILEINFO
{
	BYTE	bFileIdx;
	WORD	wTileIdx;
}TILEINFO, *LPTILEINFO;

typedef struct tagCELLINFO
{
	BYTE	bFlag;
	BYTE	bObj1Ani;
	BYTE	bObj2Ani;
	BYTE	bFileIdx;
	WORD	wObj1;
	WORD	wObj2;
	BYTE	bDoorIdx;
	BYTE	bDoorOffset;
	WORD	wLigntNEvent;
}CELLINFO, *LPCELLINFO;
/*
typedef struct tagDOORIMAGEINFO
{
	WORD	wPosX;
	WORD	wPosY;
	WORD	wImageNum;
}DOORIMAGEINFO, *LPDOORIMAGEINFO;

typedef struct tagDOORINFO
{
	BYTE			bDoorIdx;
	BYTE			bDoorImgCnt;
	LPDOORIMAGEINFO	pstDoorImgInfo;
}DOORINFO, *LPDOORINFO;
*/
#pragma pack(8)


class CMapHandler
{
private:
protected:
public:
	LPTILEINFO		m_pstTileInfo;
	LPCELLINFO		m_pstCellInfo;

	MAPFILEHEADER	m_stMapFileHeader;				// 肺爹等 甘颇老狼 庆歹.

	// 某腐磐狼 捞悼苞 包访等促.
	SHORT			m_shStartViewTileX;				// 轰康开狼 矫累 X Tile 谅钎.(角力 胶农赴 矫累 鸥老 谅钎焊促 炼陛 歹 奴 荤捞令捞促.)
	SHORT			m_shStartViewTileY;				// 轰康开篮 角力 胶农赴 康开焊促 啊肺, 技肺 1鸥老究阑 咯盒栏肺 敌促.
	SHORT			m_shViewOffsetX;				// 胶农费茄 X绵茄 辨捞.(某腐磐狼 叭扁悼累狼 橇饭烙.)
	SHORT			m_shViewOffsetY;				

	RECT			m_rcView;						// 甘扁夯鸥老捞 弊妨龙 康开.(拳搁努府俏阑 困秦辑)

	POINT			m_ptMovePixelArray[6];			// 捞悼阑 困茄 侨伎蔼狼 焊包单捞鸥.

	WORD			m_wSavedMapBuffer[_VIEW_CELL_X_COUNT*_CELL_WIDTH*_VIEW_CELL_Y_COUNT*_CELL_HEIGHT];				// 扁夯鸥老苞 SM鸥老阑 扁废茄 滚欺. 磊扁 某腐磐啊 捞悼窍扁傈浚 盎脚登瘤 臼绰促.


	DWORD			m_dwAniSaveTime[8];
	BYTE			m_bAniTileFrame[8][16];

	CWHWilImageData*	m_pxTileImg[_MAX_TILE_FILE];
/*
	BYTE			m_bDoorCount;
	LPDOORINFO		m_pstDoorInfo;
	BYTE*			m_pbCellIDoorIdx;
*/

public:
	CMapHandler();
	~CMapHandler();
	VOID			InitMapHandler();				// 努贰胶 沥焊 檬扁拳.
	VOID			LoadMapHandler(CHAR* szMapFile, CImageHandler* pxImgHandler, INT nX, INT nY);// 捞固瘤棺 阿辆 甘侩单捞鸥 肺靛.
	VOID			DestroyMapHandler();			// 努贰胶 沥焊 檬扁拳棺 皋葛府 秦力.

	BOOL			LoadMapData(CHAR* szMapFile);	// 利侩登绰 甘狼 单捞鸥甫 肺爹.(甘捞 官拆锭付促 阂妨柳促.)
	VOID			LoadMapImage(CImageHandler* pxImgHandler);					// 甘俊 包访等 捞固瘤 单捞鸥 肺爹(皋葛府甘荤侩).
	VOID			LoadNewMapBuffer();				// 甘捞 贸澜 肺爹登菌阑锭 鸥老, SM鸥老 扁废滚欺俊 弥檬狼 郴侩阑 利侩茄促.

	VOID			FreeMapData();					// 利侩登绰 甘狼 单捞鸥甫 秦力.(甘捞 官拆锭付促 阂妨柳促.)

	VOID			DrawBaseTile(INT nX, INT nY);	// 扁夯鸥老阑 弊赴促.
//	VOID			DrawOpenDoor(INT nX, INT nY);
//	VOID			SetDoorIndex();

	VOID			ScrollMap(INT nCharDir, INT nCharFrame, INT nSpeed);		// 某腐磐 捞悼矫 甘狼 Scroll包访 函荐甸 利侩.
	VOID			ScrollMap(INT nCharDir, WORD wCurrDelay, WORD wMoveDelay, INT nSpeed);
	VOID			SetMovedTileBuffer(SHORT shMovedTileX, SHORT shMovedTileY);	// 某腐磐 捞悼矫 货肺 盎脚登绰 扁夯 捞固瘤(鸥老, SM鸥老)甫 利侩.
	VOID			SetStartViewTile(INT nX, INT nY);							// 弊府绰 轰康开狼 檬扁摹技泼.

	BOOL			GetNextTileCanMove(INT nXPos, INT nYPos, BYTE bDir, INT nGap, POINT* lpptTarget);

/////////////////////////////////////////////////////////////////////////////////////////////////////
	VOID			GetScrnPosFromTilePos(SHORT shTileX, SHORT shTileY, SHORT& shScrnX, SHORT& shScrnY);
	VOID			GetTilePosFromScrnPos(SHORT shScrnX, SHORT shScrnY, SHORT& shTileX, SHORT& shTileY);

	BYTE			CalcDirection16(WORD wFireTileX, WORD wFireTileY, WORD wDestTileX, WORD wDestTileY);
	BYTE			CalcDirection8(WORD wFireTileX, WORD wFireTileY, WORD wDestTileX, WORD wDestTileY);


//  泅犁 鸥老俊 措茄 甘加己 掘扁 窃荐甸.
	BYTE			GetTileAttribute(INT nX, INT nY);
	BYTE			GetEventNum(INT nX, INT nY);
//	BOOL			GetDoorState(INT nX, INT nY);

	INT				GetDoor(INT nX, INT nY);
	VOID			OpenDoor(INT nX, INT nY, INT nIdx);
	VOID			CloseDoor(INT nX, INT nY, INT nIdx);
	INT				GetDoorImgIdx(INT nX, INT nY);
	BOOL			IsDoorOpen(INT nX, INT nY);

	LIGHTINFO		GetTileLightInfo(INT nX, INT nY);
//	VOID			SetDoorState(BYTE bIndex, BOOL bDoorOpen);
	VOID			SetAniTileFrame(INT nLoopTime);
};


#endif //_MAPHANDLER_
























//	VOID			DrawOneCellObjTile(INT nX, INT nY);
//	BOOL			DrawOneCellOverObjTile(INT nX, INT nY);

⌨️ 快捷键说明

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