373 lines
11 KiB
C
373 lines
11 KiB
C
|
|
#ifndef TABLE_FRAME_HEAD_FILE
|
|||
|
|
#define TABLE_FRAME_HEAD_FILE
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>鶨<EFBFBD><E9B6A8>
|
|||
|
|
typedef IServerUserItem * CTableUserItemArray[MAX_CHAIR]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
typedef CWHArray<IServerUserItem *> CLookonUserItemArray; //<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef CWHArray<tagGameScoreRecord *> CGameScoreRecordArray; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
|
typedef CWHArray<tagGameCardLibrary *> CGameCardLibraryArray; //<2F>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
interface IMatchTableFrameNotify;
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD>
|
|||
|
|
class CTableFrame : public ITableFrame
|
|||
|
|
{
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
|
|||
|
|
WORD m_wChairCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
BYTE m_cbStartMode; //<2F><>ʼģʽ
|
|||
|
|
WORD m_wUserCount; //<2F>û<EFBFBD><C3BB><EFBFBD>Ŀ
|
|||
|
|
|
|||
|
|
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bGameStarted; //<2F><>Ϸ<EFBFBD><CFB7>־
|
|||
|
|
bool m_bDrawStarted; //<2F><>Ϸ<EFBFBD><CFB7>־
|
|||
|
|
bool m_bTableStarted; //<2F><>Ϸ<EFBFBD><CFB7>־
|
|||
|
|
|
|||
|
|
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bAllowLookon[MAX_CHAIR]; //<2F>Թ۱<D4B9>־
|
|||
|
|
SCORE m_lFrozenedScore[MAX_CHAIR]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
LONG m_lCellScore; //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
BYTE m_cbGameStatus; //<2F><>Ϸ״̬
|
|||
|
|
|
|||
|
|
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
DWORD m_dwDrawStartTime; //<2F><>ʼʱ<CABC><CAB1>
|
|||
|
|
SYSTEMTIME m_SystemTimeStart; //<2F><>ʼʱ<CABC><CAB1>
|
|||
|
|
WORD m_wDrawCount; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
DWORD m_dwTableOwnerID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
TCHAR m_szEnterPassword[LEN_PASSWORD]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wOffLineCount[MAX_CHAIR]; //<2F><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
|||
|
|
DWORD m_dwOffLineTime[MAX_CHAIR]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CTableUserItemArray m_TableUserItemArray; //<2F><>Ϸ<EFBFBD>û<EFBFBD>
|
|||
|
|
CLookonUserItemArray m_LookonUserItemArray; //<2F>Թ<EFBFBD><D4B9>û<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
ITimerEngine * m_pITimerEngine; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ITableFrameSink * m_pITableFrameSink; //<2F><><EFBFBD>ӽӿ<D3BD>
|
|||
|
|
IMainServiceFrame * m_pIMainServiceFrame; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
IAndroidUserManager * m_pIAndroidUserManager; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>չ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
ITableUserAction * m_pITableUserAction; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
ITableUserRequest * m_pITableUserRequest; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݽӿ<DDBD>
|
|||
|
|
protected:
|
|||
|
|
IDataBaseEngine * m_pIKernelDataBaseEngine; //<2F>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
IDataBaseEngine * m_pIRecordDataBaseEngine; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
protected:
|
|||
|
|
tagGameParameter * m_pGameParameter; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
tagGameServiceAttrib * m_pGameServiceAttrib; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameServiceOption * m_pGameServiceOption; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameMatchOption * m_pGameMatchOption; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>¼
|
|||
|
|
protected:
|
|||
|
|
CGameScoreRecordArray m_GameScoreRecordActive; //<2F><>Ϸ<EFBFBD><CFB7>¼
|
|||
|
|
static CGameScoreRecordArray m_GameScoreRecordBuffer; //<2F><>Ϸ<EFBFBD><CFB7>¼
|
|||
|
|
DataStream m_UserDefine; //<2F>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
static CGameCardLibraryArray m_GameCardLibraryBuffer;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
ITableFrameHook * m_pITableFrameHook; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
ITableUserAction * m_pIMatchTableAction; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3>ӿ<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
ITableFramePrivate * m_pITableFramePrivate; //˽<>˳<EFBFBD><CBB3>ӿ<EFBFBD>
|
|||
|
|
ITableUserAction * m_pIPrivateTableAction; //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
tagPrivateFrameParameter m_PrivateFramePrarameter; // ˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagPrivateFrameRecordInfo m_PrivateFrameRecord; // <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CTableFrame();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CTableFrame();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
|
|||
|
|
virtual VOID Release() { delete this; }
|
|||
|
|
//<2F>ӿڲ<D3BF>ѯ
|
|||
|
|
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Խӿ<D4BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
|
|||
|
|
virtual WORD GetTableID() { return m_wTableID; }
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
virtual WORD GetChairCount() { return m_wChairCount; }
|
|||
|
|
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
virtual WORD GetNullChairCount(){return m_wChairCount - m_wUserCount;}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
virtual WORD GetOffLineUserCount();
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ŀ
|
|||
|
|
virtual WORD GetSitUserCount();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual VOID * GetCustomRule() { return m_pGameServiceOption->cbCustomRule; };
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagGameServiceAttrib * GetGameServiceAttrib() { return m_pGameServiceAttrib; }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagGameServiceOption * GetGameServiceOption() { return m_pGameServiceOption; }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
virtual tagGameMatchOption * GetGameMatchOption() { return m_pGameMatchOption; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʼģʽ
|
|||
|
|
virtual BYTE GetStartMode() { return m_cbStartMode; }
|
|||
|
|
//<2F><>ʼģʽ
|
|||
|
|
virtual VOID SetStartMode(BYTE cbStartMode) { m_cbStartMode=cbStartMode; }
|
|||
|
|
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
virtual LONG GetCellScore() { return m_lCellScore; }
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
virtual VOID SetCellScore(LONG lCellScore);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>Ϣ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ϸ״̬
|
|||
|
|
virtual bool IsGameStarted() { return m_bGameStarted; }
|
|||
|
|
//<2F><>Ϸ״̬
|
|||
|
|
virtual bool IsDrawStarted() { return m_bDrawStarted; }
|
|||
|
|
//<2F><>Ϸ״̬
|
|||
|
|
virtual bool IsTableStarted() { return m_bTableStarted; }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
virtual bool IsTableLocked() { return (m_szEnterPassword[0]!=0); }
|
|||
|
|
|
|||
|
|
//״̬<D7B4>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ȡ״̬
|
|||
|
|
virtual BYTE GetGameStatus() { return m_cbGameStatus; }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
virtual VOID SetGameStatus(BYTE cbGameStatus) { m_cbGameStatus=cbGameStatus; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƽӿ<C6BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC>Ϸ
|
|||
|
|
virtual bool StartGame();
|
|||
|
|
//<2F><>ɢ<EFBFBD><C9A2>Ϸ
|
|||
|
|
virtual bool DismissGame();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
|
|||
|
|
virtual bool ConcludeGame(BYTE cbGameStatus, BYTE cbReason = GER_NORMAL);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool ConcludeTable();
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//Ѱ<><D1B0><EFBFBD>û<EFBFBD>
|
|||
|
|
virtual IServerUserItem * SearchUserItem(DWORD dwUserID);
|
|||
|
|
//<2F><>Ϸ<EFBFBD>û<EFBFBD>
|
|||
|
|
virtual IServerUserItem * GetTableUserItem(WORD wChairID);
|
|||
|
|
//<2F>Թ<EFBFBD><D4B9>û<EFBFBD>
|
|||
|
|
virtual IServerUserItem * EnumLookonUserItem(WORD wEnumIndex);
|
|||
|
|
|
|||
|
|
//д<>ֽӿ<D6BD>
|
|||
|
|
public:
|
|||
|
|
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool WriteUserScore(WORD wChairID, tagScoreInfo & ScoreInfo);
|
|||
|
|
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool WriteTableScore(tagScoreInfo ScoreInfoArray[], WORD wScoreCount,DataStream kDataStream = DataStream());
|
|||
|
|
//<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
|
|||
|
|
//virtual bool WriteScoreMultiple(WORD wChairID, BYTE cbScoreMultiple);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0>
|
|||
|
|
virtual SCORE CalculateRevenue(WORD wChairID, SCORE lScore);
|
|||
|
|
//<2F><>ѯ<EFBFBD><EFBFBD>
|
|||
|
|
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem);
|
|||
|
|
|
|||
|
|
//ʱ<><CAB1><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
virtual bool SetGameTimer(DWORD dwTimerID, DWORD dwElapse, DWORD dwRepeat, WPARAM dwBindParameter);
|
|||
|
|
//ɾ<><C9BE>ʱ<EFBFBD><CAB1>
|
|||
|
|
virtual bool KillGameTimer(DWORD dwTimerID);
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD>û<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendTableData(WORD wChairID, WORD wSubCmdID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendTableData(WORD wChairID, WORD wSubCmdID, VOID * pData, WORD wDataSize,WORD wMainCmdID=MDM_GF_GAME);
|
|||
|
|
|
|||
|
|
//<2F>Թ<EFBFBD><D4B9>û<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendLookonData(WORD wChairID, WORD wSubCmdID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendLookonData(WORD wChairID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendUserItemData(IServerUserItem * pIServerUserItem, WORD wSubCmdID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendUserItemData(IServerUserItem * pIServerUserItem, WORD wSubCmdID, VOID * pData, WORD wDataSize);
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5><CDB3>Ϣ
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
virtual bool SendGameMessage(LPCTSTR lpszMessage, WORD wType);
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
|
|||
|
|
virtual bool SendGameMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
virtual bool SendRoomMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool PerformStandUpAction(IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool PerformStandUpActionEx(IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F>Թ۶<D4B9><DBB6><EFBFBD>
|
|||
|
|
virtual bool PerformLookonAction(WORD wChairID, IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD>¶<EFBFBD><C2B6><EFBFBD>
|
|||
|
|
virtual bool PerformSitDownAction(WORD wChairID, IServerUserItem * pIServerUserItem, LPCTSTR lpszPassword=NULL);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܽӿ<DCBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
|||
|
|
virtual bool SendGameScene(IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
virtual bool SetTableFrameHook(IUnknownEx * pIUnknownEx);
|
|||
|
|
//<2F><>ȡ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
virtual IUnknownEx * GetTableFrameHook(){ return m_pITableFrameHook;}
|
|||
|
|
//α<><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool ImitateGameOption(IServerUserItem * pIServerUserItem);
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
virtual bool SetTableFramePrivate(IUnknownEx * pIUnknownEx);
|
|||
|
|
//<2F><>ȡ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
virtual IUnknownEx * GetTableFramePrivate(){ return m_pITableFramePrivate;}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual void AddPrivateAction(DWORD dwChairID,BYTE bActionIdex);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>Ϣ
|
|||
|
|
virtual void SetPrivateInfo(tagPrivateFrameParameter &PriavateFrame);
|
|||
|
|
//<2F><>ȡ˽<C8A1>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagPrivateFrameParameter* GetPrivateFrameInfo();
|
|||
|
|
//<2F>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool IsAutoUserCountRule(ITableFrame* pTbableFrame, bool bReal = false);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagPrivateFrameRecordInfo* GetPrivateFrameRecord();
|
|||
|
|
//ͳ<><CDB3>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ҿ<EFBFBD><D2BE><EFBFBD>
|
|||
|
|
virtual VOID addPrivatePlayCout(WORD wCout);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
virtual void ResetPrivateEndInfo();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
|
|||
|
|
virtual void GetPrivateEndInfo(DataStream &kDataStream, bool bSend);
|
|||
|
|
//<2F>ж<EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool IsPrivateEnd();
|
|||
|
|
//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual WORD GetRealChairCount();
|
|||
|
|
//<2F>ƿ<EFBFBD><C6BF>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ȡ<EFBFBD>ƿ<EFBFBD>
|
|||
|
|
virtual tagGameCardLibrary* GetGameCardLibrary(DWORD dwCustomID = 0xFFFFFFFF);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD>
|
|||
|
|
static void AddGameCardLibrary(tagGameCardLibrary* pGameCard);
|
|||
|
|
//<2F><EFBFBD><DEB8>ƿ<EFBFBD>
|
|||
|
|
static void UpdateGameCardLibrary(DWORD dwLibID, DWORD dwCustomID, BYTE cbCardCount, BYTE* pCardData);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>ƿ<EFBFBD>
|
|||
|
|
static void ClearGameCardLibrary();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
WORD GetDrawCount();
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>λ
|
|||
|
|
WORD GetNullChairID();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
|
WORD GetRandNullChairID();
|
|||
|
|
//<2F>Թ<EFBFBD><D4B9><EFBFBD>Ŀ
|
|||
|
|
WORD GetLookonUserCount();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>û<EFBFBD>״<EFBFBD><D7B4>
|
|||
|
|
WORD GetTableUserInfo(tagTableUserInfo & TableUserInfo);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool InitializationFrame(WORD wTableID, tagTableFrameParameter & TableFrameParameter);
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
bool OnEventUserOffLine(IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
|
|||
|
|
bool OnEventTimer(DWORD dwTimerID, WPARAM dwBindParameter);
|
|||
|
|
//<2F><>Ϸ<EFBFBD>¼<EFBFBD>
|
|||
|
|
bool OnEventSocketGame(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
bool OnEventSocketFrame(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
bool SendTableStatus();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
|
bool SendRequestFailure(IServerUserItem * pIServerUserItem, LPCTSTR pszDescribe, LONG lErrorCode);
|
|||
|
|
|
|||
|
|
//Ч<>麯<EFBFBD><E9BAAF>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʼЧ<CABC><D0A7>
|
|||
|
|
bool EfficacyStartGame(WORD wReadyChairID);
|
|||
|
|
//<2F><>ʼ<CABC><D7BC>У<EFBFBD><D0A3>
|
|||
|
|
bool EfficacyStartReady(WORD wStartChairID);
|
|||
|
|
//<2F><>ַЧ<D6B7><D0A7>
|
|||
|
|
bool EfficacyIPAddress(IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
|
bool EfficacyScoreRule(IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool CheckDistribute();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|