MapHandler.h
上传用户:cydong117
上传日期:2009-11-10
资源大小:638k
文件大小:5k
- /******************************************************************************************************************
-
- 葛碘疙:
-
- 累己磊:
- 累己老:
-
- [老磊][荐沥磊] : 荐沥 郴侩
-
- *******************************************************************************************************************/
- #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);