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

模拟服务器

开发平台:

Visual C++

  1. /******************************************************************************************************************
  2.                                                                                                                    
  3. 葛碘疙:
  4. 累己磊:
  5. 累己老:
  6. [老磊][荐沥磊] : 荐沥 郴侩
  7.                                                                                                                    
  8. *******************************************************************************************************************/
  9. #include "StdAfx.h"
  10. CSpriteInfo::CSpriteInfo()
  11. {
  12. Init();
  13. }
  14. CSpriteInfo::~CSpriteInfo()
  15. {
  16. }
  17. CSpriteInfo::Init()
  18. {
  19. ZeroMemory(m_stHuman, sizeof(HUMANRACEINFO)*_MAX_HUMAN_RACE);
  20. ZeroMemory(m_stMon, sizeof(MONRACEINFO)*_MAX_HUMAN_RACE);
  21. }
  22. VOID CSpriteInfo::SetSpriteInfo()
  23. {
  24. SetHumanSpriteInfo();
  25. SetMonSpriteInfo();
  26. }
  27. VOID CSpriteInfo::SetHumanSpriteInfo()
  28. {
  29. INT nOffset = 0;
  30. for ( INT nCnt = 0; nCnt < _MAX_HUMAN_RACE; nCnt++ )
  31. {
  32. nOffset = _MAX_HUMAN_RACE_FRAME*nCnt;
  33. SetHumanRaceInfo(&m_stHuman[nCnt], _IMAGE_CHARACTER, nOffset, nOffset+_MAX_HUMAN_RACE_FRAME);
  34. SetMotionInfo(&m_stHuman[nCnt].stMtn[0] , nOffset     ,  4, 6, 200, FALSE);
  35. SetMotionInfo(&m_stHuman[nCnt].stMtn[1] , nOffset+  80,  6, 4, 130, FALSE);
  36. SetMotionInfo(&m_stHuman[nCnt].stMtn[2] , nOffset+ 160,  5, 5, 130, FALSE);
  37. SetMotionInfo(&m_stHuman[nCnt].stMtn[3] , nOffset+ 240,  5, 5, 130, FALSE);
  38. SetMotionInfo(&m_stHuman[nCnt].stMtn[4] , nOffset+ 320,  1, 9, 130, FALSE);
  39. SetMotionInfo(&m_stHuman[nCnt].stMtn[5] , nOffset+ 400,  1, 9, 130, FALSE);
  40. SetMotionInfo(&m_stHuman[nCnt].stMtn[6] , nOffset+ 480,  1, 9, 130, FALSE);
  41. SetMotionInfo(&m_stHuman[nCnt].stMtn[7] , nOffset+ 560,  3, 7, 130, FALSE);
  42. SetMotionInfo(&m_stHuman[nCnt].stMtn[8] , nOffset+ 640,  2, 8, 130, FALSE);
  43. SetMotionInfo(&m_stHuman[nCnt].stMtn[9] , nOffset+ 720,  6, 4, 130, FALSE);
  44. SetMotionInfo(&m_stHuman[nCnt].stMtn[10], nOffset+ 800,  6, 4, 130, FALSE);
  45. SetMotionInfo(&m_stHuman[nCnt].stMtn[11], nOffset+ 880,  6, 4, 130, FALSE);
  46. SetMotionInfo(&m_stHuman[nCnt].stMtn[12], nOffset+ 960,  6, 4, 130, FALSE);
  47. SetMotionInfo(&m_stHuman[nCnt].stMtn[13], nOffset+1040,  6, 4, 130, FALSE);
  48. SetMotionInfo(&m_stHuman[nCnt].stMtn[14], nOffset+1120,  6, 4, 130, FALSE);
  49. SetMotionInfo(&m_stHuman[nCnt].stMtn[15], nOffset+1200,  3, 7, 130, FALSE);
  50. SetMotionInfo(&m_stHuman[nCnt].stMtn[16], nOffset+1280, 10, 0, 130, FALSE);
  51. SetMotionInfo(&m_stHuman[nCnt].stMtn[17], nOffset+1360, 10, 0, 130, FALSE);
  52. SetMotionInfo(&m_stHuman[nCnt].stMtn[18], nOffset+1440, 10, 0, 130, FALSE);
  53. SetMotionInfo(&m_stHuman[nCnt].stMtn[19], nOffset+1520, 10, 0, 130, FALSE);
  54. SetMotionInfo(&m_stHuman[nCnt].stMtn[20], nOffset+1600, 10, 0, 130, FALSE);
  55. SetMotionInfo(&m_stHuman[nCnt].stMtn[21], nOffset+1680,  6, 4,  90, FALSE);
  56. SetMotionInfo(&m_stHuman[nCnt].stMtn[22], nOffset+1760,  6, 4, 120, FALSE);
  57. SetMotionInfo(&m_stHuman[nCnt].stMtn[23], nOffset+1840,  6, 4, 130, FALSE);
  58. SetMotionInfo(&m_stHuman[nCnt].stMtn[24], nOffset+1920, 10, 0, 130, FALSE);
  59. SetMotionInfo(&m_stHuman[nCnt].stMtn[25], nOffset+2000,  4, 6, 130, FALSE);
  60. SetMotionInfo(&m_stHuman[nCnt].stMtn[26], nOffset+2080,  3, 7, 130, FALSE);
  61. SetMotionInfo(&m_stHuman[nCnt].stMtn[27], nOffset+2160,  8, 2, 130, FALSE);
  62. SetMotionInfo(&m_stHuman[nCnt].stMtn[28], nOffset+2240,  8, 2, 130, FALSE);
  63. SetMotionInfo(&m_stHuman[nCnt].stMtn[29], nOffset+2320,  4, 6, 130, FALSE);
  64. SetMotionInfo(&m_stHuman[nCnt].stMtn[30], nOffset+2400,  6, 4, 130, FALSE);
  65. SetMotionInfo(&m_stHuman[nCnt].stMtn[31], nOffset+2480,  6, 4, 130, FALSE);
  66. SetMotionInfo(&m_stHuman[nCnt].stMtn[32], nOffset+2560,  3, 7, 130, FALSE);
  67. }
  68. }
  69.       
  70. VOID CSpriteInfo::SetMonSpriteInfo()
  71. {
  72. // 荤阜 档付轨 橇饭烙沥狼.
  73. SetMonRaceInfo(&m_stMon[_RACE_LIZARD], _IMAGE_MONSTER, 0, 400);
  74. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_STAND],    0,  4, 6, 150, FALSE);
  75. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_WALK],    80,  6, 4, 150, FALSE);
  76. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_ATTACK], 160,  6, 4, 150, FALSE);
  77. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_STRUCK], 240,  2, 8, 150, FALSE);
  78. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_DIE],    320, 10, 0, 150, FALSE);
  79. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_DEATH],  319,  1, 9, 150, FALSE);
  80. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_APPEAR],   0,  0, 0, 0, FALSE);
  81. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_DISAPPEAR],0,  0, 0, 0, FALSE);
  82. SetMotionInfo(&m_stMon[_RACE_LIZARD].stMtn[_MT_MON_CRITICAL], 0,  0, 0, 0, FALSE);
  83. // 具青蓖 橇饭烙沥狼.
  84. SetMonRaceInfo(&m_stMon[_RACE_NIGHTGHOST], _IMAGE_MONSTER, 400, 800);
  85. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_STAND],  400+  0,  4, 6, 150, FALSE);
  86. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_WALK],  400+ 80,  6, 4, 150, FALSE);
  87. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_ATTACK],  400+160,  6, 4, 150, FALSE);
  88. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_STRUCK],  400+240,  2, 8, 150, FALSE);
  89. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_DIE],  400+320, 10, 0, 150, FALSE);
  90. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_DEATH],  400+319,  1, 9, 150, FALSE);
  91. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_APPEAR],       0,  0, 0, 0, FALSE);
  92. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_DISAPPEAR],    0,  0, 0, 0, FALSE);
  93. SetMotionInfo(&m_stMon[_RACE_NIGHTGHOST].stMtn[_MT_MON_CRITICAL],    0,  0, 0, 0, FALSE);
  94. // 盟荐鲍拱 橇饭烙沥狼.
  95. SetMonRaceInfo(&m_stMon[_RACE_THORN], _IMAGE_MONSTER, 800, 1200);
  96. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_STAND],  800+  0,  4, 6, 150, FALSE);
  97. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_WALK],  800+ 80,  6, 4, 150, FALSE);
  98. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_ATTACK],   800+160,  6, 4, 150, FALSE);
  99. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_STRUCK],   800+240,  2, 8, 150, FALSE);
  100. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_DIE],  800+320, 10, 0, 150, FALSE);
  101. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_DEATH],  800+319,  1, 9, 150, FALSE);
  102. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_APPEAR],       0,  0, 0, 0, FALSE);
  103. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_DISAPPEAR],    0,  0, 0, 0, FALSE);
  104. SetMotionInfo(&m_stMon[_RACE_THORN].stMtn[_MT_MON_CRITICAL],    0,  0, 0, 0, FALSE);
  105. // 葛贰鲍拱 橇饭烙沥狼.
  106. SetMonRaceInfo(&m_stMon[_RACE_SANDMON], _IMAGE_MONSTER, 1200, 1680);
  107. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_STAND],    1200+  0,  4, 6, 150, FALSE);
  108. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_WALK],    1200+ 80,  6, 4, 150, FALSE);
  109. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_ATTACK],   1200+160,  6, 4, 150, FALSE);
  110. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_STRUCK],   1200+240,  2, 8, 150, FALSE);
  111. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_DIE],    1200+320, 10, 0, 150, FALSE);
  112. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_DEATH],    1200+319,  1, 9, 150, FALSE);
  113. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_APPEAR],   1200+400, 10, 0, 150, TRUE);
  114. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_DISAPPEAR],1200+400, 10, 0, 150, FALSE);
  115. SetMotionInfo(&m_stMon[_RACE_SANDMON].stMtn[_MT_MON_CRITICAL],       0,  0, 0, 0, FALSE);
  116. // 榜方 橇饭烙沥狼.
  117. SetMonRaceInfo(&m_stMon[_RACE_GOLEM], _IMAGE_MONSTER, 1680, 2160);
  118. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_STAND],  1680+  0,  4, 6, 150, FALSE);
  119. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_WALK],  1680+ 80,  6, 4, 150, FALSE);
  120. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_ATTACK],   1680+160,  6, 4, 150, FALSE);
  121. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_STRUCK],   1680+240,  2, 8, 150, FALSE);
  122. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_DIE],      1680+320, 10, 0, 150, FALSE);
  123. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_DEATH],    1680+319,  1, 9, 150, FALSE);
  124. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_APPEAR],   1680+400, 10, 0, 150, TRUE);
  125. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_DISAPPEAR],1680+400, 10, 0, 150, FALSE);
  126. SetMotionInfo(&m_stMon[_RACE_GOLEM].stMtn[_MT_MON_CRITICAL],        0,  0, 0, 0, FALSE);
  127. }
  128. VOID CSpriteInfo::SetHumanRaceInfo(LPHUMANRACEINFO pstHumanRaceInfo, SHORT shImgIdx, SHORT shRaceStartFrm, SHORT shRaceEndFrm)
  129. {
  130. pstHumanRaceInfo->shImgIdx = shImgIdx;
  131. pstHumanRaceInfo->shRaceStartFrm = shRaceStartFrm;
  132. pstHumanRaceInfo->shRaceEndFrm = shRaceEndFrm;
  133. }
  134. VOID CSpriteInfo::SetMonRaceInfo(LPMONRACEINFO pstMonRaceInfo, SHORT shImgIdx, SHORT shRaceStartFrm, SHORT shRaceEndFrm)
  135. {
  136. pstMonRaceInfo->shImgIdx = shImgIdx;
  137. pstMonRaceInfo->shRaceStartFrm = shRaceStartFrm;
  138. pstMonRaceInfo->shRaceEndFrm = shRaceEndFrm;
  139. }
  140. VOID CSpriteInfo::SetMotionInfo(LPMTNFRMINFO pstMtnFrmInfo, SHORT shStartFrm, BYTE bFrmCnt, BYTE bSkip, SHORT shDelay, BOOL bReverse)
  141. {
  142. pstMtnFrmInfo->shStartFrm = shStartFrm; 
  143. pstMtnFrmInfo->bFrmCnt = bFrmCnt;
  144. pstMtnFrmInfo->bSkip = bSkip;
  145. pstMtnFrmInfo->shDelay = shDelay;
  146. pstMtnFrmInfo->bReverse = bReverse;
  147. }