📄 brewgame.h
字号:
/*===========================================================================
FILE: BrewGame.h
===========================================================================*/
#ifndef BREWGAME_H
#define BREWGAME_H
//*****************************************************************************
// INCLUDE FILES
//*****************************************************************************
#include "AEEShell.h" // Shell interface definitions
#include "AEEStdLib.h"
#include "BrewGameCanvas.h"
#include "Itf_BrewGameFrame.h"
#include "Itf_BrewGame.h"
#include "global.h"
//*****************************************************************************
// DEFINITIONS
//*****************************************************************************
#define GAME_INIT 0
#define GIRDSIZE 11
#define MENUHEIGHT 70
#define MENUWIDTH 60
#define MAINMENUHEIGHT 34
#define BGWIDTH 108
#define BGHEIGHT 120
#define MFC_KINDLIST_REQ 0xB001
#define MFC_KINDLIST_IND 0xB002
#define MFC_MLIST_REQ 0xB003
#define MFC_MLIST_IND 0xB004
#define MFC_M_REQ 0xB005
#define MFC_M_IND 0xB006
#define MFC_TIME_IND 0xB008
#define MFC_ROUNDEND_IND 0xB00C
#define MFC_GIVEUP_REQ 0xB00E
#define MFC_CLAIM_REQ 0xB00F
#define MFC_CLAIM_IND 0xB010
#define MFC_ACTION_REQ 0xB011
#define MFC_ACTION_IND 0xB012
#define RED 0
#define BLACK 1
#define MKND_CHESS 0x100C
#define MAXBUFLEN 680
#define MAXBUFSIZE 2048
#define GAME_STATE_NONE 130
#define GAME_STATE_SELSTART 131
#define GAME_STATE_WAIT 132
#define GAME_STATE_PLAY 133
#define GAME_STATE_ROUNDOVER 134
#define GAME_STATE_NEXTROUND 135
#define GAME_STATE_MAINMENU 136
#define GAME_STATE_CHAT 137
#define GAME_STATE_CHANGE 138
#define GAME_STATE_GIVEUP 139
#define GAME_STATE_REGRET 140
#define GAME_STATE_COMPROMISE 141
#define GAME_STATE_MENU 142
#define GAME_STATE_HELP 143
#define GAME_STATE_PLAYERINFO 144
#define GAME_STATE_QUITGAME 145
#define GAME_STATE_EXITGAME 146
//*****************************************************************************
// ENUMERATED TYPE DEFINITIONS
//*****************************************************************************
//*****************************************************************************
// GLOBAL APPLICATION DATA STRUCTURES
//*****************************************************************************
#include "AEEMenu.h"
#include "gamevv_res.h"
#include "Package.h"
#include "UserInfoDlg.h"
class CBrewHelpAndIntro;
/*typedef enum
{
GAME_STATE_NONE,
GAME_STATE_SELSTART,//选择是否开始
GAME_STATE_WAIT,
GAME_STATE_PLAY,//对手开始
GAME_STATE_ROUNDOVER,
GAME_STATE_NEXTROUND,
GAME_STATE_MAINMENU,
GAME_STATE_CHAT,
GAME_STATE_CHANGE,
GAME_STATE_GIVEUP,
GAME_STATE_REGRET,
GAME_STATE_COMPROMISE,
GAME_STATE_MENU,
GAME_STATE_HELP,
GAME_STATE_PLAYERINFO,
GAME_STATE_QUITGAME,
GAME_STATE_EXITGAME
} EGameState;//游戏状态
*/
typedef enum {
ENONE,
EUP,
EDOWN,
ELEFT,
ERIGHT
}MOVEDIRECTION;
typedef struct _CHESSBOARD{
AEERect m_rectBackGround;
AEERect m_rectWrap;
AEERect m_rectIn;
AEERect m_rectMiddle;
AEEPoint m_joinPt[90];
int m_nChessBoardSize;
}ChessBoard;
typedef struct _CHESSMAP{
INT32 m_nID;
INT8 m_cType;
INT8 m_cTurn;
INT8 m_cWiner;
INT8 m_cLevel;
INT8 m_cScoreRule[3];
}ChessMap;
typedef struct _CHESSSTATEIND{
INT8 m_stateID[2];//局况ID
INT8 m_turn;//走棋方和座位id
INT8 m_redUseTime[2];
INT8 m_blackUseTime[2];
INT16 m_turnClock;
INT8 m_ChessState;//局况
INT8 m_ChessGo[4];
}ChessState;
typedef struct _ROUNDOVER{
UINT32 m_RedMoneyChange;
UINT32 m_RedPointChange;
UINT32 m_BlackMoneyChange;
UINT32 m_BlackPointChange;
INT8 m_result;
}RoundOver;
class CBrewGame:public IBrewGame{
public:
CBrewGame();
virtual ~CBrewGame();
public:
AEEDeviceInfo *m_pIDi;
IShell *m_pIShell;
IBrewGameFrame *frame;
boolean m_nGameRunFlag;
// AECHAR szText[64 + 1];
struct UserItemStruct *m_pUList;
UINT16 m_nUCount;
private:
IBrewCanvas *m_pIGameCanvas;
UINT16 m_nCurrentGameId;
UINT16 m_nCurrentTableId;
UINT16 m_nCurrentSeatId;
private:
void freeData();
void clearUserList();
public:
void setGameFrame(IBrewGameFrame *f);
UINT16 getCurrentGameId();
void onSitDown(UINT8 tableId, UINT8 seatId, UINT8 action, UINT8 retCode);
void onUserInfo(UINT8 ret, UINT16 num, struct UserItemStruct *uItem);
void onInviteUser(UINT16 num, struct InviteItemStruct *inviteItem);
void onChat(UINT16 num, struct ChatItemStruct *chatItem);
void onDisconnectGameServer(UINT8 retCode);
void onStart();
void onStop();
void onSuspend();
void onResume();
void onPlay();
void onPackage(IMessageReader *mReader);
void onEvent(AEEEvent eCode, UINT16 wParam, UINT32 dwParam);
void Release();
void onYouBack(UINT8 roomId, UINT8 tableId, UINT8 seatId);
private:
void ShowIntroduce();
void ProcessSelStart();
void ShowResult(IShell *pIShell);
void setProHead(UINT16 gameID,UINT16 msgID,INT8 ver,INT8 crypt);
AECHAR* getShowText(UINT16 state,AECHAR * pszMsg,INT8 help);
void ProcessReConnect();
void ProcessUserInfo(UserInfoStruct* userInfo);
void DispatchChatMsg(UINT16 wParam);
void ProcessChat();
void ProcessHelp();
void ProcessGoResult();
void ProcessChange();
void ProcessRegret();
void ProcessMFC_CLAIM_REQmsg(IMessageReader *mReader);
void ProcessMFC_ACTION_INDmsg(IMessageReader* mReader);
void ProcessMFC_CLAIM_INDmsg(IMessageReader* mReader);
void ProcessMFC_ROUNDEND_INDmsg(IMessageReader* mReader);
void ProcessMFC_TIME_INDmsg(IMessageReader *mReader);
void ProcessMFC_M_INDmsg(IMessageReader *mReader);
void SetOrigin(INT8 clr);
boolean CheckMove(INT8 colorside,INT8 seledchess,AEEPoint start,AEEPoint end);
boolean InitData();
void freeMyData();
UINT16 ABSDIFF(UINT16 a, UINT16 b);
public:
boolean m_bGameStart;
void sendProBuf(UINT16 gameID, UINT16 msgID, INT8 ver, INT8 crypt,INT8* buffer,int msgNum);
void sendProINT8(UINT16 gameID, UINT16 msgID, INT8 ver, INT8 crypt,INT8* buffer,int msgNum);
void ProcessMyDecide(UINT16 state,UINT16 wParam,UINT32 dwParam);
void showMsg(UINT16 state,INT8 help, UINT8 sno, UINT32 color, UINT32 time, UINT32 mode);
boolean m_bNextRound;
boolean m_bShowClock;
void gameReset();
void CheckPos();
boolean CheckWhoTurn();
IMessageWriter *m_pIMWriter;
UINT16 m_nGameState;
UINT16 m_nPreGameState;
// EGameState m_nGameState;
// EGameState m_ePreGameState;//前一次的状态值
IMenuCtl* m_pMainMenuCtl;
AEERect m_rRect;
boolean m_bShowMenuOnly;
IMenuCtl* m_pMenu;
AEERect m_rMenuRect;
ChessBoard* m_pBoard;
IBitmap* m_pImage;
IBitmap* m_pRiver;
int m_nPicW,m_nPicH;
INT8 m_cMycolor; //我的颜色
INT8 m_cOldColor;
IBitmap* m_pChess;//最多有32个棋子
INT8 m_cChessVal[9][10];
INT8 m_cSelectedChess;//用来显示选中的棋子
INT8 m_cEndChess;//目的地的棋子
AEEPoint m_SelChessPos;//用来显示选中的棋子的位置
AEEPoint m_EndPos;
boolean m_bChessSelected;//是否有棋子被选中
IBitmap* m_pHand;
unsigned long m_handcx,m_handcy;
AEEPoint m_HandPos;//用来指示手的位置
boolean m_bShowRect;
boolean m_bShowOppRect;
INT8 m_cOppMovedChess;//用来显示对家移动的棋子
AEEPoint m_OppEndPos;
boolean m_bMyturn;
MOVEDIRECTION m_eMove;
INT16 m_setupCnt;//总共走过的步数
boolean m_bChessCanMove;
ChessMap m_pChessMap;
ChessState m_sChessState;
RoundOver m_sRoundOver;
AECHAR m_psTypeName[16+1];
AECHAR m_psIDName[16+1];
INT8 m_psLayout[96];
INT8 m_ChessMapField[96];
INT8* m_pLastLayout;
UserInfoStruct m_MyInfo;
UserInfoStruct m_OppInfo;
CUserInfoDlg* m_pDlg;
CBrewHelpAndIntro* m_pHelp;
boolean m_bMsgResponse;//用于指示(悔棋,交换等)消息反馈
INT8 m_pApplyResult[2];
INT8 m_ApplyInd[2];
boolean m_bInitData;
IBitmap* m_pGeneral;
unsigned long cx,cy;
boolean m_bShowGeneral;
AEEPoint m_GeneralPos;
UINT32 m_time;//显示用的当前时间
UINT32 m_clock;
boolean m_bProcessedTIMEIND;
IMenuCtl* m_pChatMenu;
boolean m_bMainMenuCtl;
boolean m_bMainMenu;
boolean m_bChatMenu;
boolean m_bHelpView;
boolean m_bYouBack;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -