?? 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 諒釬.(角力 膠農(nóng)赴 矯累 鷗老 諒釬焊促 煉陛 歹 奴 葷撈令撈促.)
SHORT m_shStartViewTileY; // 轟康開籃 角力 膠農(nóng)赴 康開焊促 啊肺, 技肺 1鷗老究闌 咯盒欄肺 敵促.
SHORT m_shViewOffsetX; // 膠農(nóng)費茄 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(); // 甘撈 貿(mào)瀾 肺爹登菌闌錠 鷗老, 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);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -