📄 macros.h
字号:
/*******************************************************************************
Macros.h
游戏中要使用的一些宏定义和一些数据结构,不包括Game Rule部分
================================================================================
本程序修改自GAMEHIGH(open source)[http://www.gamehigh.net]项目程序,在此表示感谢紫瑗、骑士、阿鬼等。
这一程序是自由软件,你可以遵照自由软件基金会出版的GNU 通用公共许可证条款来修改和
重新发布这一程序。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。
发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目地的隐含的担保。
更详细的情况请参阅GNU通用公共许可证。
你应该已经和程序一起收到一份GNU通用公共许可证的副本。如果还没有,写信给:
The Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA02139, USA
或访问 http://www.gnu.org
文件版本:
0.0.9
Build 0207011
Date 2002-07-11
修改历史:
2002-4-28
增加一个CTreeCtrl的ID
2002-5-05
加入新的数据结构
2002-5-06
加入新的数据结构
2002-5-07
加入新的数据结构
2002-6-04
加入一个新的宏
2002-6-05
加入一个新的宏
2002-06-13
加入一些新的宏
2002-06-15
加入一些新的宏
2002-07-03
定义大厅服务器树的ID
2002-07-11
加入一个新的消息
*******************************************************************************/
#ifndef _GAME_VAR
#define _GAME_VAR (WM_USER + 0x0001) //从WM_USER + 1开始,
//到WM_USER + 2999都是程序中使用的变量范围
#define _GAME_VAR_BEGIN (WM_USER + 1) //起始标志
#define _GAME_HALL_TREE_ID (WM_USER + 2) //类CRoomListView中的m_RoomTree的ID定义
#define _GAME_VAR_END (WM_USER + 2999) //起始标志
#define START_BUTTONID (WM_USER + 9900) //从WM_USER + 9900开始到 9999,是一些零散的窗口定义的ID
#define GOGO_BUTTONID (WM_USER + 9901) //大军出征按钮的ID
#define OPEN_BUTTONID (WM_USER + 9902) //打开文件按钮的ID
#define SAVE_BUTTONID (WM_USER + 9903) //保存布阵图按钮的ID
#define SERVER_TREEID (WM_USER + 9904) //大厅中的服务器列表树的ID
#define WM_TABLE_SITDOWN (WM_USER + 9800) //用户坐在了桌子上
//wParam, 桌子的指针, CTable类
//lParam, 方位:0, 左;1,上;2,右;3,下
#endif
//军棋的变量
#ifndef _JQ_VAR
#define _JQ_VAR 1024
//安全删除指针
#define SAFE_DELETE(p) { if(NULL != p) { delete (p); (p)=NULL; } }
//安全删除数组
#define SAFE_DELETE_ARRAY(p) { if(NULL != p) { delete[] (p); (p)=NULL; } }
//安全释放对象
#define SAFE_RELEASE(p) { if(NULL != p) { (p)->Release(); (p)=NULL; } }
//检查窗口是否存在
#define SAFE_CHECKWND(p) if(NULL != p && ::IsWindow(p->GetSafeHwnd()))
//检查窗口是否为非法窗口
#define SAFE_CHECKFALSEWND(p) if(NULL == p || !::IsWindow(p->GetSafeHwnd()))
//检查指针
#define SAFE_CHECKPOINTER(p) if(NULL != p)
#define JQ_POSWIDTH 19
#define JQ_POSHEIGHT 19
#define JQ_CHESSWIDTH 32
#define JQ_CHESSHEIGHT 32
#endif
//游戏的结构
#ifndef _GAME_STRUCT
#define _GAME_STRUCT 1024
#define MAX_TABCONTAIN 4
#define MAX_USERID_LENGTH 24
#define MAX_USERNAME_LENGTH 24
#define MAX_PASSWORD_LENGTH 24
#define CLUBID_LENGTH 24
#define CLUBRANK_LENGTH 24
#define DATETIME_LENGTH 24
#define ROOM_NAME_LENGTH 24
#define MAX_TABLE 45
#define MAX_ROOM 4096
typedef struct tag_UserInfo //用户信息
{
char userID[MAX_USERID_LENGTH]; // 用户ID
char userName[MAX_USERNAME_LENGTH]; // 用户名称
char password[MAX_PASSWORD_LENGTH]; // 用户口令
bool isAdmin; // 是否为网管
bool isDeny; // 是否禁用
int lastPlayGameID; // 最后玩的游戏种类ID
char clubID[CLUBID_LENGTH]; // 俱乐部ID
char clubRank[CLUBRANK_LENGTH]; // 俱乐部官衔
long onlineTime; // 游戏在线总计时间
char firstPlayTime[DATETIME_LENGTH]; // 第一次游戏时间
char lastPlayTime[DATETIME_LENGTH]; // 最后一次游戏时间
int imageFace; // 头像图片索引
char email[30]; // email
char address[100]; // 地址
char homepage[100]; // 主页
char resume[256]; // 简介
bool isValidate; // 是否申请过帐号保护
char validateQ[30]; // 申请帐号保护问题
char validateA[30]; // 申请帐号保护答案
char validateID[30]; // 申请帐号保护标识(例如身份证号码)
}GAMEHIGH_USERINFO, *LPGAMEHIGH_USERINFO;
enum USERSTATUS //状态定义
{
STATUSNOTDEFINE =0, //未定义
IDLESSE =1, //空闲
INGAMES =2, //进入了游戏,但游戏未开始
PLAYING =3, //游戏进行中
READY =4, //在一个桌子中,并已准备好
NOTREADY =5, //坐在了一张桌子上,但未准备好
};
typedef struct tag_UserStatus //描述一个用户的状态
{
char userID[MAX_USERID_LENGTH]; // 用户ID
char userName[MAX_USERNAME_LENGTH]; // 用户昵称,仅当UserID有效时,才有效
USERSTATUS status; // 用户当前的状态,仅当UserID有效时,才有效
}GAMEHIGH_USERSTATUS, *LPGAMEHIGH_USERSTATUS;
typedef struct tag_Table //一张桌子
{
UINT tableID; //桌子ID,从0开始,最大不会超过MAX_TABLE
char Initiator[MAX_USERID_LENGTH]; //创始人的UserID
GAMEHIGH_USERSTATUS userStatus[MAX_TABCONTAIN]; // User的状态
// Index含义:
// 0: 左
// 1: 上
// 2: 右
// 3: 下
}GAMEHIGH_TABLE, *LPGAMEHIGH_TABLE;
typedef struct tag_Room //房间
{
UINT uRoomID; //房间ID,每一个Server中的房间ID总是从0开始
//顺次增加
char RoomName[ROOM_NAME_LENGTH]; //房间的名称
}GAMEHIGH_ROOM, *LPGAMEHIGH_ROOM;
typedef struct tag_MyStatus //我的状态
{
LPGAMEHIGH_TABLE lpMyTable; //指向我现在所在桌子的指针
//如果为NULL,则我为空闲状态
}GAMEHIGH_MYSTATUS, *LPGAMEHIGH_MYSTATUS;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -