📄 maphandler.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 + -