|
- #pragma once
-
- #include "Stdafx.h"
- #include "GameLogic.h"
- #include "GameClientView.h"
- #include "DirectSound.h"
-
- //////////////////////////////////////////////////////////////////////////
-
- //游戏对话框
- class CGameClientEngine : public CGameFrameEngine
- {
- //用户变量
- protected:
- WORD m_wBankerUser; //庄家用户
- WORD m_wCurrentUser; //当前用户
- BYTE m_cbUserAction; //玩家动作
- LONG m_lSiceCount; //
-
- TCHAR m_szAccounts[GAME_PLAYER][32];
-
- //托管变量
- protected:
- bool m_bStustee; //托管标志
- WORD m_wTimeOutCount; //超时次数
-
- //堆立变量
- protected:
- WORD m_wHeapHand; //堆立头部
- WORD m_wHeapTail; //堆立尾部
- BYTE m_cbHeapCardInfo[4][2]; //堆牌信息
-
- //扑克变量
- protected:
- BYTE m_cbLeftCardCount; //剩余数目
- BYTE m_cbCardIndex[MAX_INDEX]; //手中扑克
-
- //组合扑克
- protected:
- BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目
- tagWeaveItem m_WeaveItemArray[GAME_PLAYER][4]; //组合扑克
-
- //出牌信息
- protected:
- WORD m_wOutCardUser; //出牌用户
- BYTE m_cbOutCardData; //出牌扑克
- BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目
- BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录
-
- //控件变量
- protected:
- CGameLogic m_GameLogic; //游戏逻辑
- CGameClientView m_GameClientView; //游戏视图
- CDirectSound m_DirectSound; //出牌和发牌声音
-
- //函数定义
- public:
- //构造函数
- CGameClientEngine();
- //析构函数
- virtual ~CGameClientEngine();
-
- //常规继承
- private:
- //初始函数
- virtual bool OnInitGameEngine();
- //重置框架
- virtual bool OnResetGameEngine();
- //时钟删除
- virtual bool OnEventGameClockKill(WORD wChairID);
- //时间消息
- virtual bool OnEventGameClockInfo(WORD wChairID, UINT nElapse, WORD wClockID);
- //旁观状态
- virtual bool OnEventLookonMode(VOID * pData, WORD wDataSize);
- //网络消息
- virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pBuffer, WORD wDataSize);
- //游戏场景
- virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pBuffer, WORD wDataSize);
-
- //消息处理
- protected:
- //游戏开始
- bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
- //用户出牌
- bool OnSubOutCard(const void * pBuffer, WORD wDataSize);
- //发牌消息
- bool OnSubSendCard(const void * pBuffer, WORD wDataSize);
- //操作提示
- bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize);
- //操作结果
- bool OnSubOperateResult(const void * pBuffer, WORD wDataSize);
- //游戏结束
- bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
- //用户托管
- bool OnSubTrustee(const void * pBuffer,WORD wDataSize);
- //
- bool OnSubUserChiHu( const void *pBuffer,WORD wDataSize );
- //
- bool OnSubGangScore( const void *pBuffer, WORD wDataSize );
-
- //辅助函数
- protected:
- //播放声音
- void PlayCardSound(WORD wChairID,BYTE cbCardData);
- //播放声音
- void PlayActionSound(WORD wChairID,BYTE cbAction);
- //出牌判断
- bool VerdictOutCard(BYTE cbCardData);
- //扣除扑克
- void DeductionTableCard(bool bHeadCard);
- //显示控制
- bool ShowOperateControl(BYTE cbUserAction, BYTE cbActionCard);
-
- //消息映射
- protected:
- //开始消息
- LRESULT OnStart(WPARAM wParam, LPARAM lParam);
- //出牌操作
- LRESULT OnOutCard(WPARAM wParam, LPARAM lParam);
- //扑克操作
- LRESULT OnCardOperate(WPARAM wParam, LPARAM lParam);
- //拖管控制
- LRESULT OnStusteeControl(WPARAM wParam, LPARAM lParam);
- //第二次摇色子消息
- LRESULT OnSiceTwo(WPARAM wParam, LPARAM lParam);
- //摇色子结束消息
- LRESULT OnSiceFinish(WPARAM wParam, LPARAM lParam);
-
- DECLARE_MESSAGE_MAP()
- };
-
- //////////////////////////////////////////////////////////////////////////
|