MapHandler.h
上传用户:cydong117
上传日期:2009-11-10
资源大小:638k
文件大小:5k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. /******************************************************************************************************************
  2.                                                                                                                    
  3. 葛碘疙:
  4. 累己磊:
  5. 累己老:
  6. [老磊][荐沥磊] : 荐沥 郴侩
  7.                                                                                                                    
  8. *******************************************************************************************************************/
  9. #ifndef _MAPHANDLER_
  10. #define _MAPHANDLER_
  11. #pragma pack(1)
  12. typedef struct tagLIGHTINFO
  13. {
  14. BOOL bIsLight;
  15. CHAR cLightSizeType;
  16. CHAR cLightColorType;
  17. }LIGHTINFO, *LPLIGHTINFO;
  18. // 甘颇老 肺爹包访 沥焊历厘.
  19. // 泅犁 乐绰 瘤开狼 傈眉 甘俊 包访等 荤亲阑 焊包茄促.
  20. typedef struct tagMAPFILEHEADER
  21. {
  22. CHAR szDesc[20];
  23. WORD wAttr;
  24. SHORT shWidth;
  25. SHORT shHeight;
  26. CHAR cEventFileIdx;
  27. CHAR cFogColor;
  28. }MAPFILEHEADER, *LPMAPFILEHEADER;
  29. typedef struct tagTILEINFO
  30. {
  31. BYTE bFileIdx;
  32. WORD wTileIdx;
  33. }TILEINFO, *LPTILEINFO;
  34. typedef struct tagCELLINFO
  35. {
  36. BYTE bFlag;
  37. BYTE bObj1Ani;
  38. BYTE bObj2Ani;
  39. BYTE bFileIdx;
  40. WORD wObj1;
  41. WORD wObj2;
  42. BYTE bDoorIdx;
  43. BYTE bDoorOffset;
  44. WORD wLigntNEvent;
  45. }CELLINFO, *LPCELLINFO;
  46. /*
  47. typedef struct tagDOORIMAGEINFO
  48. {
  49. WORD wPosX;
  50. WORD wPosY;
  51. WORD wImageNum;
  52. }DOORIMAGEINFO, *LPDOORIMAGEINFO;
  53. typedef struct tagDOORINFO
  54. {
  55. BYTE bDoorIdx;
  56. BYTE bDoorImgCnt;
  57. LPDOORIMAGEINFO pstDoorImgInfo;
  58. }DOORINFO, *LPDOORINFO;
  59. */
  60. #pragma pack(8)
  61. class CMapHandler
  62. {
  63. private:
  64. protected:
  65. public:
  66. LPTILEINFO m_pstTileInfo;
  67. LPCELLINFO m_pstCellInfo;
  68. MAPFILEHEADER m_stMapFileHeader; // 肺爹等 甘颇老狼 庆歹.
  69. // 某腐磐狼 捞悼苞 包访等促.
  70. SHORT m_shStartViewTileX; // 轰康开狼 矫累 X Tile 谅钎.(角力 胶农赴 矫累 鸥老 谅钎焊促 炼陛 歹 奴 荤捞令捞促.)
  71. SHORT m_shStartViewTileY; // 轰康开篮 角力 胶农赴 康开焊促 啊肺, 技肺 1鸥老究阑 咯盒栏肺 敌促.
  72. SHORT m_shViewOffsetX; // 胶农费茄 X绵茄 辨捞.(某腐磐狼 叭扁悼累狼 橇饭烙.)
  73. SHORT m_shViewOffsetY;
  74. RECT m_rcView; // 甘扁夯鸥老捞 弊妨龙 康开.(拳搁努府俏阑 困秦辑)
  75. POINT m_ptMovePixelArray[6]; // 捞悼阑 困茄 侨伎蔼狼 焊包单捞鸥.
  76. WORD m_wSavedMapBuffer[_VIEW_CELL_X_COUNT*_CELL_WIDTH*_VIEW_CELL_Y_COUNT*_CELL_HEIGHT]; // 扁夯鸥老苞 SM鸥老阑 扁废茄 滚欺. 磊扁 某腐磐啊 捞悼窍扁傈浚 盎脚登瘤 臼绰促.
  77. DWORD m_dwAniSaveTime[8];
  78. BYTE m_bAniTileFrame[8][16];
  79. CWHWilImageData* m_pxTileImg[_MAX_TILE_FILE];
  80. /*
  81. BYTE m_bDoorCount;
  82. LPDOORINFO m_pstDoorInfo;
  83. BYTE* m_pbCellIDoorIdx;
  84. */
  85. public:
  86. CMapHandler();
  87. ~CMapHandler();
  88. VOID InitMapHandler(); // 努贰胶 沥焊 檬扁拳.
  89. VOID LoadMapHandler(CHAR* szMapFile, CImageHandler* pxImgHandler, INT nX, INT nY);// 捞固瘤棺 阿辆 甘侩单捞鸥 肺靛.
  90. VOID DestroyMapHandler(); // 努贰胶 沥焊 檬扁拳棺 皋葛府 秦力.
  91. BOOL LoadMapData(CHAR* szMapFile); // 利侩登绰 甘狼 单捞鸥甫 肺爹.(甘捞 官拆锭付促 阂妨柳促.)
  92. VOID LoadMapImage(CImageHandler* pxImgHandler); // 甘俊 包访等 捞固瘤 单捞鸥 肺爹(皋葛府甘荤侩).
  93. VOID LoadNewMapBuffer(); // 甘捞 贸澜 肺爹登菌阑锭 鸥老, SM鸥老 扁废滚欺俊 弥檬狼 郴侩阑 利侩茄促.
  94. VOID FreeMapData(); // 利侩登绰 甘狼 单捞鸥甫 秦力.(甘捞 官拆锭付促 阂妨柳促.)
  95. VOID DrawBaseTile(INT nX, INT nY); // 扁夯鸥老阑 弊赴促.
  96. // VOID DrawOpenDoor(INT nX, INT nY);
  97. // VOID SetDoorIndex();
  98. VOID ScrollMap(INT nCharDir, INT nCharFrame, INT nSpeed); // 某腐磐 捞悼矫 甘狼 Scroll包访 函荐甸 利侩.
  99. VOID ScrollMap(INT nCharDir, WORD wCurrDelay, WORD wMoveDelay, INT nSpeed);
  100. VOID SetMovedTileBuffer(SHORT shMovedTileX, SHORT shMovedTileY); // 某腐磐 捞悼矫 货肺 盎脚登绰 扁夯 捞固瘤(鸥老, SM鸥老)甫 利侩.
  101. VOID SetStartViewTile(INT nX, INT nY); // 弊府绰 轰康开狼 檬扁摹技泼.
  102. BOOL GetNextTileCanMove(INT nXPos, INT nYPos, BYTE bDir, INT nGap, POINT* lpptTarget);
  103. /////////////////////////////////////////////////////////////////////////////////////////////////////
  104. VOID GetScrnPosFromTilePos(SHORT shTileX, SHORT shTileY, SHORT& shScrnX, SHORT& shScrnY);
  105. VOID GetTilePosFromScrnPos(SHORT shScrnX, SHORT shScrnY, SHORT& shTileX, SHORT& shTileY);
  106. BYTE CalcDirection16(WORD wFireTileX, WORD wFireTileY, WORD wDestTileX, WORD wDestTileY);
  107. BYTE CalcDirection8(WORD wFireTileX, WORD wFireTileY, WORD wDestTileX, WORD wDestTileY);
  108. //  泅犁 鸥老俊 措茄 甘加己 掘扁 窃荐甸.
  109. BYTE GetTileAttribute(INT nX, INT nY);
  110. BYTE GetEventNum(INT nX, INT nY);
  111. // BOOL GetDoorState(INT nX, INT nY);
  112. INT GetDoor(INT nX, INT nY);
  113. VOID OpenDoor(INT nX, INT nY, INT nIdx);
  114. VOID CloseDoor(INT nX, INT nY, INT nIdx);
  115. INT GetDoorImgIdx(INT nX, INT nY);
  116. BOOL IsDoorOpen(INT nX, INT nY);
  117. LIGHTINFO GetTileLightInfo(INT nX, INT nY);
  118. // VOID SetDoorState(BYTE bIndex, BOOL bDoorOpen);
  119. VOID SetAniTileFrame(INT nLoopTime);
  120. };
  121. #endif //_MAPHANDLER_
  122. // VOID DrawOneCellObjTile(INT nX, INT nY);
  123. // BOOL DrawOneCellOverObjTile(INT nX, INT nY);