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

模拟服务器

开发平台:

Visual C++

  1. /******************************************************************************************************************
  2.                                                                                                                    
  3. 葛碘疙:
  4. 累己磊:
  5. 累己老:
  6. [老磊][荐沥磊] : 荐沥 郴侩
  7.                                                                                                                    
  8. *******************************************************************************************************************/
  9. #ifndef _CIMAGEHANDLER_H
  10. #define _CIMAGEHANDLER_H
  11. class CImageHandler
  12. {
  13. public:
  14. CImageHandler();
  15. ~CImageHandler();
  16. private:
  17. protected:
  18. public:
  19. CWHWilImageData m_xImageList[_MAX_IMAGE];
  20. CPDLList<TEXTUREFILE> m_xTextrFileList[_MAX_TEXTR_FILE];
  21. INT m_nLoadedEffect[_MAX_EFFECT];
  22. INT m_nLoadedMagic[_MAX_MAGIC];
  23. INT m_nLoadedExplode[_MAX_EXPLOSION];
  24. D3DVERTEX m_avBillBoard[4];
  25. public:
  26. VOID InitAllImage();
  27. VOID LoadAllImage(BOOL bIsMemMapped = TRUE, BOOL bComp = TRUE);
  28. VOID DeleteAllImage();
  29. __inline VOID FreeLoadedMagic(BYTE bSkillNum)
  30. {
  31. for ( INT nCnt = 0; nCnt < _MAX_EFFECT; nCnt++ )
  32. {
  33. if ( m_nLoadedEffect[nCnt] == bSkillNum )
  34. {
  35. m_nLoadedEffect[nCnt] = 0;
  36. }
  37. }
  38. }
  39. VOID AddTextr(WORD wFileType, WORD wFileIdx, WORD wImgIdx);
  40. LPDIRECTDRAWSURFACE7 GetTextrImg(WORD wFileType, WORD wFileIdx, WORD wImgIdx);
  41. VOID DelTextr(WORD wFileType, WORD wFileIdx, WORD wImgIdx);
  42. VOID DelAllTextrFileList();
  43. HRESULT DrawBillBoard(LPDIRECT3DDEVICE7 lpDevice, D3DVECTOR vTrans, D3DVECTOR vScale, /*D3DVECTOR vRot, */D3DMATERIAL7 mtrl, /*FLOAT fRotRad, */LPDIRECTDRAWSURFACE7 lpddsTextr);
  44. INT CheckList(INT* pnList, INT nNumOfList, BYTE bCheck)
  45. {
  46. for ( INT nCnt = 0; nCnt < nNumOfList; nCnt++ )
  47. {
  48. if ( pnList[nCnt] == bCheck )
  49. return nCnt;
  50. }
  51. return -1;
  52. }
  53. VOID SetLoad(INT* pnList, INT nNumOfList, BYTE bSkillNum, BOOL bFlag)  
  54. INT nIndex;
  55. if ( bFlag )
  56. nIndex = CheckList(pnList, nNumOfList, 0);
  57. else
  58. nIndex = CheckList(pnList, nNumOfList, bSkillNum);
  59. if ( nIndex >= 0 && nIndex < nNumOfList )
  60. {
  61. if ( bFlag )
  62. m_nLoadedEffect[nIndex] = bSkillNum;
  63. else
  64. m_nLoadedEffect[nIndex] = 0;
  65. }
  66. }
  67. __inline void SetEffectLoaded(BYTE bSkillNum)
  68. { SetLoad(m_nLoadedEffect, _MAX_EFFECT, bSkillNum, TRUE); }
  69. __inline FreeEffectLoaded(BYTE bSkillNum)
  70. { SetLoad(m_nLoadedEffect, _MAX_EFFECT, bSkillNum, FALSE); }
  71. __inline int EffectLoaded(BYTE bSkillNum)
  72. { return CheckList(m_nLoadedEffect, _MAX_EFFECT, bSkillNum); }
  73. __inline void SetMagicLoaded(BYTE bSkillNum)
  74. { SetLoad(m_nLoadedMagic, _MAX_MAGIC, bSkillNum, TRUE); }
  75. __inline FreeMagicLoaded(BYTE bSkillNum)
  76. { SetLoad(m_nLoadedMagic, _MAX_MAGIC, bSkillNum, FALSE); }
  77. __inline int MagicLoaded(BYTE bSkillNum)
  78. { return CheckList(m_nLoadedMagic, _MAX_MAGIC, bSkillNum); }
  79. __inline void SetExplodeLoaded(BYTE bSkillNum)
  80. { SetLoad(m_nLoadedExplode, _MAX_EXPLOSION, bSkillNum, TRUE); }
  81. __inline FreeExplodeLoaded(BYTE bSkillNum)
  82. { SetLoad(m_nLoadedExplode, _MAX_EXPLOSION, bSkillNum, FALSE);}
  83. __inline int ExplodeLoaded(BYTE bSkillNum)
  84. { return CheckList(m_nLoadedExplode,_MAX_EXPLOSION,bSkillNum);}
  85. };
  86. #endif // _CIMAGEHANDLER_H