Macros.h
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:6k
源码类别:

游戏

开发平台:

Visual C++

  1. /*******************************************************************************
  2. Macros.h
  3. 游戏中要使用的一些宏定义和一些数据结构,不包括Game Rule部分
  4. ================================================================================
  5. 本程序修改自GAMEHIGH(open source)[http://www.gamehigh.net]项目程序,在此表示感谢紫瑗、骑士、阿鬼等。
  6. 这一程序是自由软件,你可以遵照自由软件基金会出版的GNU 通用公共许可证条款来修改和
  7. 重新发布这一程序。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。
  8. 发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目地的隐含的担保。
  9. 更详细的情况请参阅GNU通用公共许可证。
  10. 你应该已经和程序一起收到一份GNU通用公共许可证的副本。如果还没有,写信给:
  11. The Free Software Foundation, Inc.,  675  Mass Ave,  Cambridge,  MA02139,  USA
  12. 或访问 http://www.gnu.org
  13. 文件版本:
  14.     0.0.9
  15.     Build 0207011
  16.     Date  2002-07-11
  17. 修改历史:
  18.     2002-4-28
  19. 增加一个CTreeCtrl的ID
  20. 2002-5-05
  21. 加入新的数据结构
  22. 2002-5-06
  23. 加入新的数据结构
  24. 2002-5-07
  25. 加入新的数据结构
  26. 2002-6-04
  27. 加入一个新的宏
  28. 2002-6-05
  29. 加入一个新的宏
  30. 2002-06-13
  31. 加入一些新的宏
  32. 2002-06-15
  33. 加入一些新的宏
  34. 2002-07-03
  35. 定义大厅服务器树的ID
  36. 2002-07-11
  37. 加入一个新的消息
  38. *******************************************************************************/
  39. #ifndef _GAME_VAR
  40. #define _GAME_VAR (WM_USER + 0x0001) //从WM_USER + 1开始,
  41. //到WM_USER + 2999都是程序中使用的变量范围
  42. #define _GAME_VAR_BEGIN (WM_USER + 1) //起始标志
  43. #define _GAME_HALL_TREE_ID (WM_USER + 2) //类CRoomListView中的m_RoomTree的ID定义
  44. #define _GAME_VAR_END (WM_USER + 2999) //起始标志
  45. #define START_BUTTONID (WM_USER + 9900) //从WM_USER + 9900开始到 9999,是一些零散的窗口定义的ID
  46. #define GOGO_BUTTONID (WM_USER + 9901) //大军出征按钮的ID
  47. #define OPEN_BUTTONID (WM_USER + 9902) //打开文件按钮的ID
  48. #define SAVE_BUTTONID (WM_USER + 9903) //保存布阵图按钮的ID
  49. #define SERVER_TREEID (WM_USER + 9904) //大厅中的服务器列表树的ID
  50. #define WM_TABLE_SITDOWN (WM_USER + 9800) //用户坐在了桌子上
  51. //wParam, 桌子的指针, CTable类
  52. //lParam, 方位:0, 左;1,上;2,右;3,下
  53. #endif
  54. //军棋的变量
  55. #ifndef _JQ_VAR
  56. #define _JQ_VAR 1024
  57. //安全删除指针
  58. #define SAFE_DELETE(p) { if(NULL != p) { delete (p);     (p)=NULL; } }
  59. //安全删除数组
  60. #define SAFE_DELETE_ARRAY(p) { if(NULL != p) { delete[] (p);   (p)=NULL; } }
  61. //安全释放对象
  62. #define SAFE_RELEASE(p) { if(NULL != p) { (p)->Release(); (p)=NULL; } }
  63. //检查窗口是否存在
  64. #define SAFE_CHECKWND(p) if(NULL != p && ::IsWindow(p->GetSafeHwnd())) 
  65. //检查窗口是否为非法窗口
  66. #define SAFE_CHECKFALSEWND(p) if(NULL == p || !::IsWindow(p->GetSafeHwnd())) 
  67. //检查指针
  68. #define SAFE_CHECKPOINTER(p) if(NULL != p)
  69. #define JQ_POSWIDTH 19
  70. #define JQ_POSHEIGHT 19
  71. #define JQ_CHESSWIDTH 32
  72. #define JQ_CHESSHEIGHT 32
  73. #endif
  74. //游戏的结构
  75. #ifndef _GAME_STRUCT
  76. #define _GAME_STRUCT 1024
  77. #define MAX_TABCONTAIN 4
  78. #define MAX_USERID_LENGTH 24
  79. #define MAX_USERNAME_LENGTH 24
  80. #define MAX_PASSWORD_LENGTH 24
  81. #define CLUBID_LENGTH 24
  82. #define CLUBRANK_LENGTH 24
  83. #define DATETIME_LENGTH 24
  84. #define ROOM_NAME_LENGTH 24
  85. #define MAX_TABLE 45
  86. #define MAX_ROOM 4096
  87. typedef struct tag_UserInfo //用户信息
  88. {
  89. char userID[MAX_USERID_LENGTH];       // 用户ID
  90. char userName[MAX_USERNAME_LENGTH];   // 用户名称
  91. char password[MAX_PASSWORD_LENGTH];   // 用户口令
  92. bool isAdmin;                         // 是否为网管
  93. bool isDeny;                          // 是否禁用
  94. int  lastPlayGameID;                  // 最后玩的游戏种类ID
  95. char clubID[CLUBID_LENGTH];           // 俱乐部ID
  96. char clubRank[CLUBRANK_LENGTH];       // 俱乐部官衔
  97. long onlineTime;                      // 游戏在线总计时间
  98. char firstPlayTime[DATETIME_LENGTH];  // 第一次游戏时间
  99. char lastPlayTime[DATETIME_LENGTH];   // 最后一次游戏时间
  100. int  imageFace;                       // 头像图片索引
  101. char email[30];                       // email
  102. char address[100];                    // 地址
  103. char homepage[100];                   // 主页
  104. char resume[256];                     // 简介
  105. bool isValidate;                      // 是否申请过帐号保护
  106. char validateQ[30];                   // 申请帐号保护问题
  107. char validateA[30];                   // 申请帐号保护答案
  108. char validateID[30];                  // 申请帐号保护标识(例如身份证号码)
  109. }GAMEHIGH_USERINFO, *LPGAMEHIGH_USERINFO;
  110. enum    USERSTATUS //状态定义
  111. {
  112. STATUSNOTDEFINE =0, //未定义
  113. IDLESSE =1, //空闲
  114. INGAMES =2, //进入了游戏,但游戏未开始
  115. PLAYING =3, //游戏进行中
  116. READY =4, //在一个桌子中,并已准备好
  117. NOTREADY =5, //坐在了一张桌子上,但未准备好
  118. };
  119. typedef struct tag_UserStatus //描述一个用户的状态
  120. {
  121. char userID[MAX_USERID_LENGTH]; // 用户ID
  122. char userName[MAX_USERNAME_LENGTH]; // 用户昵称,仅当UserID有效时,才有效
  123. USERSTATUS status; // 用户当前的状态,仅当UserID有效时,才有效
  124. }GAMEHIGH_USERSTATUS, *LPGAMEHIGH_USERSTATUS;
  125. typedef struct tag_Table //一张桌子
  126. {
  127. UINT tableID; //桌子ID,从0开始,最大不会超过MAX_TABLE
  128. char Initiator[MAX_USERID_LENGTH]; //创始人的UserID
  129. GAMEHIGH_USERSTATUS userStatus[MAX_TABCONTAIN]; // User的状态
  130. // Index含义:
  131. // 0: 左
  132. // 1: 上
  133. // 2: 右
  134. // 3: 下
  135. }GAMEHIGH_TABLE, *LPGAMEHIGH_TABLE;
  136. typedef struct tag_Room //房间
  137. {
  138. UINT uRoomID; //房间ID,每一个Server中的房间ID总是从0开始
  139. //顺次增加
  140. char RoomName[ROOM_NAME_LENGTH]; //房间的名称
  141. }GAMEHIGH_ROOM, *LPGAMEHIGH_ROOM;
  142. typedef struct tag_MyStatus //我的状态
  143. {
  144. LPGAMEHIGH_TABLE lpMyTable; //指向我现在所在桌子的指针
  145. //如果为NULL,则我为空闲状态
  146. }GAMEHIGH_MYSTATUS, *LPGAMEHIGH_MYSTATUS;
  147. #endif