UiSkills.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面--技能窗口
  3. // Copyright : Kingsoft 2002
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2002-8-28
  6. ------------------------------------------------------------------------------------------
  7. *****************************************************************************************/
  8. #pragma once
  9. #include "../elem/wndpage.h"
  10. #include "../Elem/WndImagePart.h"
  11. #include "../elem/wndbutton.h"
  12. #include "../elem/wndtext.h"
  13. #include "../elem/WndObjContainer.h"
  14. #include "../../../core/src/gamedatadef.h"
  15. #define LIVE_SKILL_COUNT 10
  16. #define FIGHT_SKILL_COUNT 50
  17. #define FIGHT_SKILL_COUNT_PER_PAGE 25
  18. #define FIGHT_SKILL_SUB_PAGE_COUNT FIGHT_SKILL_COUNT / FIGHT_SKILL_COUNT_PER_PAGE
  19. class KUiFightSkillSubPage : public KWndPage
  20. {
  21. public:
  22. KUiFightSkillSubPage();
  23. void Initialize(/*int nSubPageIndex*/); //初始化
  24. void LoadScheme(const char* pScheme); //载入界面方案
  25. void UpdateRemainPoint(int nPoint); //更新升级点数
  26. void UpdateSkill(KUiSkillData* pSkill, int nIndex); //更新单个技能
  27. void UpdateData(KUiSkillData* pSkills); //更新数据
  28. private:
  29. int WndProc(unsigned int uMsg, unsigned int uParam, int nParam);//窗口函数
  30. void PaintWindow(); //绘制窗口
  31. private:
  32. // int m_nSubPagIndex;
  33. int m_nRemainSkillPoint;
  34. KWndObjectBox m_FightSkills[FIGHT_SKILL_COUNT_PER_PAGE];
  35. // KWndButton m_FightSkills[FIGHT_SKILL_COUNT_PER_PAGE];
  36. // KUiSkillData m_Skills[FIGHT_SKILL_COUNT_PER_PAGE];
  37. struct
  38. {
  39. int nFont;
  40. SIZE Offset;
  41. unsigned int Color;
  42. } m_SkillTextParam;
  43. };
  44. class KUiFightSkillSub : public KWndPageSet
  45. {
  46. public:
  47. void Initialize(); //初始化
  48. void LoadScheme(const char* pScheme); //载入界面方案
  49. void UpdateRemainPoint(int nPoint); //更新升级点数
  50. void UpdateSkill(KUiSkillData* pSkill, int nIndex); //更新技能
  51. void UpdateData(); //更新数据
  52. private:
  53. KUiFightSkillSubPage m_SubPages[FIGHT_SKILL_SUB_PAGE_COUNT];
  54. KWndButton m_SubPageBtn[FIGHT_SKILL_SUB_PAGE_COUNT];
  55. };
  56. class KUiFightSkill : public KWndPage
  57. {
  58. public:
  59. void Initialize(); //初始化
  60. void LoadScheme(const char* pScheme); //载入界面方案
  61. void UpdateRemainPoint(int nPoint); //更新升级点数
  62. void UpdateSkill(KUiSkillData* pSkill, int nIndex); //更新技能
  63. void UpdateData(); //更新数据
  64. private:
  65. KWndText32 m_RemainSkillPoint;
  66. KUiFightSkillSub m_InternalPad;
  67. };
  68. class KUiLiveSkill : public KWndPage
  69. {
  70. public:
  71. KUiLiveSkill();
  72. void Initialize(); //初始化
  73. void LoadScheme(const char* pScheme); //载入界面方案
  74. void UpdateBaseData(); //更新技能公共数据
  75. void UpdateSkill(KUiSkillData* pSkill, int nIndex); //更新技能
  76. void UpdateData(); //更新数据
  77. private:
  78. int WndProc(unsigned int uMsg, unsigned int uParam, int nParam);//窗口函数
  79. void PaintWindow(); //绘制窗口
  80. private:
  81. KWndText32 m_RemainSkillPoint;
  82. int m_nRemainSkillPoint;
  83. KWndObjectBox m_LiveSkill[LIVE_SKILL_COUNT];
  84. // KUiSkillData m_Skills[LIVE_SKILL_COUNT];
  85. struct
  86. {
  87. int nFont;
  88. SIZE Offset;
  89. unsigned int Color;
  90. } m_SkillTextParam;
  91. };
  92. class KUiSkills : public KWndPageSet
  93. {
  94. public:
  95. static KUiSkills* OpenWindow(); //打开窗口,返回唯一的一个类对象实例
  96. static KUiSkills* GetIfVisible(); //如果窗口正被显示,则返回实例指针
  97. static void  CloseWindow(bool bDestroy); //关闭窗口,同时可以选则是否删除对象实例
  98. static void  LoadScheme(const char* pScheme); //载入界面方案
  99. static void  UpdateSkill(KUiSkillData* pSkill, int nIndex); //更新技能
  100. void UpdateFightRemainPoint(int nPoint); //更新战斗技能升级点数
  101. void UpdateLiveBaseData(); //更新生活技能公共数据
  102. private:
  103. KUiSkills(){}
  104. ~KUiSkills() {}
  105. void Initialize(); //初始化
  106. int WndProc(unsigned int uMsg, unsigned int uParam, int nParam);//窗口函数
  107. private:
  108. static KUiSkills* m_pSelf;
  109. private:
  110. KUiFightSkill m_FightSkillPad;
  111. KUiLiveSkill m_LiveSkillPad;
  112. KWndButton m_FightSkillPadBtn;
  113. KWndButton m_LiveSkillPadBtn;
  114. KWndButton m_Close;
  115. };