Files

201 lines
5.8 KiB
C
Raw Permalink Normal View History

2026-02-13 14:34:15 +08:00
#ifndef TABLE_FRAME_SINK_HEAD_FILE
#define TABLE_FRAME_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "AfxTempl.h"
#include "GameLogic.h"
#include "HistoryScore.h"
#include "DlgCustomRule.h"
#include "ServerControl.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
class CTableFrameSink : public ITableFrameSink, public ITableUserAction
{
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
protected:
WORD m_wFirstUser; //<2F>׽<EFBFBD><D7BD>û<EFBFBD>
WORD m_wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>
WORD m_wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
BYTE m_cbOutCardCount[GAME_PLAYER]; //<2F><><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD>
BYTE m_cbWaitTime; //<2F>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
WORD m_wTimerControl; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool m_bUserTrustee[GAME_PLAYER]; //<2F>йܱ<D0B9>־
BYTE m_aryOverTime[GAME_PLAYER]; //<2F><>ʱ<EFBFBD>й<EFBFBD>;
//<2F>й<EFBFBD><D0B9><EFBFBD>Ϣ
bool m_bOffLineTrustee; //<2F><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>
//ը<><D5A8><EFBFBD><EFBFBD>Ϣ
protected:
BYTE m_cbBombCount; //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE m_cbEachBombCount[GAME_PLAYER]; //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>з<EFBFBD><D0B7><EFBFBD>Ϣ
protected:
BYTE m_cbCallScoreCount; //<2F>зִ<D0B7><D6B4><EFBFBD>
BYTE m_cbBankerScore; //ׯ<>ҽз<D2BD>
BYTE m_cbScoreInfo[GAME_PLAYER]; //<2F>з<EFBFBD><D0B7><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
protected:
WORD m_wTurnWiner; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE m_cbTurnCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE m_cbTurnCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>˿<EFBFBD><CBBF><EFBFBD>Ϣ
protected:
BYTE m_cbBankerCard[3]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE m_cbHandCardCount[GAME_PLAYER]; //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
BYTE m_cbHandCardData[GAME_PLAYER][MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
HINSTANCE m_hControlInst;
IServerControl* m_pServerControl;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CGameLogic m_GameLogic; //<2F><>Ϸ<EFBFBD>߼<EFBFBD>
CHistoryScore m_HistoryScore; //<2F><>ʷ<EFBFBD>ɼ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
protected:
ITableFrame * m_pITableFrame; //<2F><><EFBFBD>ܽӿ<DCBD>
tagCustomRule * m_pGameCustomRule; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
tagGameServiceOption * m_pGameServiceOption; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
tagGameServiceAttrib * m_pGameServiceAttrib; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CTableFrameSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CTableFrameSink();
//<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><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
virtual VOID RepositionSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool Initialization(IUnknownEx * pIUnknownEx);
//<2F><>ѯ<EFBFBD>ӿ<EFBFBD>
public:
//<2F><>ѯ<EFBFBD>޶<EFBFBD>
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem);
//<2F><><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>
virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem);
//<2F><>ѯ<EFBFBD>Ƿ<EFBFBD><C7B7>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>
virtual bool QueryBuckleServiceCharge(WORD wChairID){return true;}
//<2F><>Ϸ<EFBFBD>¼<EFBFBD>
public:
//<2F><>Ϸ<EFBFBD><CFB7>ʼ
virtual bool OnEventGameStart();
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
//<2F><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
virtual bool OnEventSendGameScene(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret);
//<2F>¼<EFBFBD><C2BC>ӿ<EFBFBD>
public:
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
virtual bool OnTimerMessage(DWORD wTimerID, WPARAM wBindParam);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
virtual bool OnGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
virtual void SetGameBaseScore(LONG lBaseScore);
virtual void SetPrivateInfo(BYTE bGameTypeIdex, DWORD bGameRuleIdex){ ; }
//<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() { return GAME_PLAYER; }
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
public:
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>;
bool IsHasGameRule(eDDZRuleEnum eType);
//<2F>û<EFBFBD><C3BB>¼<EFBFBD>
public:
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
virtual bool OnActionUserOffLine(WORD wChairID, IServerUserItem * pIServerUserItem);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
virtual bool OnActionUserSitDown(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
virtual bool OnActionUserStandUp(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser);
//<2F>û<EFBFBD>ͬ<EFBFBD><CDAC>
virtual bool OnActionUserOnReady(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) { return true; }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
virtual bool OnActionUserFangKaCheck(WORD wChairID, IServerUserItem * pIServerUserItem, SCORE lUserInsure) { return true; }
//<2F>û<EFBFBD><C3BB><EFBFBD>ʼ<EFBFBD><CABC>Ϸ
virtual bool OnActionUserOnStart(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) { return true; }
//<2F>û<EFBFBD><C3BB><EFBFBD>ʼ<EFBFBD><CABC>Ϸ
virtual bool OnActionUserStartGame(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) { return true; }
//<2F><>Ϸ<EFBFBD>¼<EFBFBD>
protected:
//<2F>û<EFBFBD><C3BB>й<EFBFBD>;
bool OnUserTrustee(WORD wChairID, bool bTrustee);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
bool OnUserPassCard(WORD wChairID);
//<2F>û<EFBFBD><C3BB>з<EFBFBD>
bool OnUserCallScore(WORD wChairID, BYTE cbCallScore);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
bool OnUserOutCard(WORD wChairID, BYTE cbCardData[], BYTE cbCardCount);
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
bool OnCheatCard(IServerUserItem * pIServerUserItem);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
void SendCheatCard();
//<2F><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>
bool IsOfflineTrustee();
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
public:
CMD_S_Private_End_Info m_PrivateEndInfo;
// ¼<><C2BC><EFBFBD>¼<EFBFBD>
public:
// <20><>Ϸ<EFBFBD><CFB7>ʼ
void starGameRecord();
// <20><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>ʾ;
void addGameRecordAction(WORD wSubCmdID, void* pSubMessage, int nMessageSize);
//¼<><C2BC>
public:
tagGameRecord m_kGameRecord;
};
//////////////////////////////////////////////////////////////////////////////////
#endif