295 lines
8.9 KiB
C
295 lines
8.9 KiB
C
|
|
#ifndef TABLE_FRAME_SINK_HEAD_FILE
|
|||
|
|
#define TABLE_FRAME_SINK_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
#include "GameLogic.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//ö<>ٶ<EFBFBD><D9B6><EFBFBD>
|
|||
|
|
|
|||
|
|
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
enum enEstimatKind
|
|||
|
|
{
|
|||
|
|
EstimatKind_OutCard, //<2F><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
|
EstimatKind_GangCard, //<2F><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eGangType
|
|||
|
|
{
|
|||
|
|
eGangType_BuGang, //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
eGangType_MingGang, //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
eGangType_AnGang, //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class CTableFrameSink : public ITableFrameSink, public ITableUserAction
|
|||
|
|
{
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bActiveUser[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
WORD m_wSiceCount; //<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>
|
|||
|
|
WORD m_wSiceCount2; //<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WORD m_wSiceCount3; //<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>3
|
|||
|
|
WORD m_wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>
|
|||
|
|
BYTE m_cbCardIndex[GAME_PLAYER][MAX_INDEX]; //<2F>û<EFBFBD><C3BB>˿<EFBFBD>
|
|||
|
|
bool m_bCallCard[GAME_PLAYER]; //ϴ<><CFB4><EFBFBD><EFBFBD>־
|
|||
|
|
BYTE m_cbBatch[GAME_PLAYER]; //ϴ<>豶<EFBFBD><E8B1B6>
|
|||
|
|
bool m_bTrustee[GAME_PLAYER]; //<2F>Ƿ<EFBFBD><C7B7>й<EFBFBD>
|
|||
|
|
bool m_bBatchEnd[GAME_PLAYER]; //ϴ<><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>;
|
|||
|
|
protected:
|
|||
|
|
SCORE m_lAllTurnScore[GAME_PLAYER]; //<2F>ֵܾ÷<D6B5>
|
|||
|
|
SCORE m_lLastTurnScore[GAME_PLAYER]; //<2F>Ͼֵ÷<D6B5>
|
|||
|
|
BYTE m_cbAllGangCounts[GAME_PLAYER]; //ͳ<>ƸܵĴ<DCB5><C4B4><EFBFBD>;
|
|||
|
|
protected:
|
|||
|
|
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
BYTE m_cbDelCardIndex[GAME_PLAYER][MAX_INDEX];//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD>˿˺<CBBF>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
protected:
|
|||
|
|
WORD m_wOutCardUser; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
BYTE m_cbOutCardData; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
BYTE m_cbOutCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
BYTE m_cbDiscardCount[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
|||
|
|
BYTE m_cbGangCount; //<2F><><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD>
|
|||
|
|
INT m_BankContinueCount; //<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>¥
|
|||
|
|
BYTE m_cbMustLeft; //<2F><>8ǽ<38><C7BD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
protected:
|
|||
|
|
BYTE m_cbSendCardData; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
BYTE m_cbSendCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
BYTE m_cbLeftCardCount; //ʣ<><CAA3><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
BYTE m_cbRepertoryCard[MAX_REPERTORY]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
BYTE m_cbMasterCheckCard[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wResumeUser; //<2F><>ԭ<EFBFBD>û<EFBFBD>
|
|||
|
|
WORD m_wCurrentUser; //<2F><>ǰ<EFBFBD>û<EFBFBD>
|
|||
|
|
WORD m_wProvideUser; //<2F><>Ӧ<EFBFBD>û<EFBFBD>
|
|||
|
|
BYTE m_cbProvideCard; //<2F><>Ӧ<EFBFBD>˿<EFBFBD>
|
|||
|
|
|
|||
|
|
WORD m_wProvideMingGangUser; //<2F><>Ӧ<EFBFBD><D3A6><EFBFBD>ܵ<EFBFBD><DCB5>û<EFBFBD>;
|
|||
|
|
|
|||
|
|
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bSendStatus; //<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
bool m_bGangStatus; //<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
//bool m_bEnjoinChiHu[GAME_PLAYER]; //<2F><>ֹ<EFBFBD>Ժ<EFBFBD>
|
|||
|
|
//bool m_bEnjoinChiPeng[GAME_PLAYER]; //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD>״̬
|
|||
|
|
public:
|
|||
|
|
bool m_bResponse[GAME_PLAYER]; //<2F><>Ӧ<EFBFBD><D3A6>־
|
|||
|
|
WORD m_wUserAction[GAME_PLAYER]; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE m_cbOperateCard[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
WORD m_wPerformAction[GAME_PLAYER]; //ִ<>ж<EFBFBD><D0B6><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
BYTE m_cbWeaveItemCount[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][4]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
protected:
|
|||
|
|
BYTE m_cbChiHuCard; //<2F>Ժ<EFBFBD><D4BA>˿<EFBFBD>
|
|||
|
|
tagChiHuResult m_ChiHuResult[GAME_PLAYER]; //<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGameLogic m_GameLogic; //<2F><>Ϸ<EFBFBD><EFBFBD>
|
|||
|
|
ITableFrame * m_pITableFrame; //<2F><><EFBFBD>ܽӿ<DCBD>
|
|||
|
|
const tagGameServiceOption * m_pGameServiceOption; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
static const WORD m_wPlayerCount; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
//static const enStartMode m_GameStartMode; //<2F><>ʼģʽ
|
|||
|
|
|
|||
|
|
BYTE m_genDaLiHuCards[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ;
|
|||
|
|
BYTE m_genHuCards[GAME_PLAYER][4]; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ֵ;
|
|||
|
|
BYTE m_genPengCards[GAME_PLAYER][4]; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ֵ;
|
|||
|
|
BYTE m_cbContinueGangs[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܵĴ<DCB5><C4B4><EFBFBD>;
|
|||
|
|
tagGangCardResult m_GangPaiResult[GAME_PLAYER]; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
|||
|
|
|
|||
|
|
BYTE m_cbContinueGangTypes[GAME_PLAYER][4]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>θܵ<CEB8><DCB5><EFBFBD><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(const IID & Guid, DWORD dwQueryVer);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
virtual bool Initialization(IUnknownEx * pIUnknownEx);
|
|||
|
|
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|||
|
|
virtual void RepositionSink();
|
|||
|
|
|
|||
|
|
//<2F><>ѯ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ѯ<EFBFBD><EFBFBD>
|
|||
|
|
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem){return 0;}
|
|||
|
|
//<2F><><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>
|
|||
|
|
virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem){return 0;}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize){return false;}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason){return false;}
|
|||
|
|
//<2F><>ѯ<EFBFBD>Ƿ<EFBFBD><C7B7>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool QueryBuckleServiceCharge(WORD wChairID){return true;}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
|||
|
|
virtual void SetGameBaseScore(LONG lBaseScore){};
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ״̬
|
|||
|
|
virtual bool IsUserPlaying(WORD wChairID);
|
|||
|
|
|
|||
|
|
//<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 wChiarID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret);
|
|||
|
|
|
|||
|
|
//<2F>¼<EFBFBD><C2BC>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnTimerMessage(DWORD wTimerID, WPARAM wBindParam);
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool OnGameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnGameDataBase(WORD wRequestID, VOID * pData, WORD wDataSize);
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool OnActionUserOffLine(WORD wChairID,IServerUserItem * pIServerUserItem) { return true; }
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool OnActionUserConnect(WORD wChairID,IServerUserItem * pIServerUserItem) { return true; }
|
|||
|
|
//<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><EFBFBD><EFBFBD>
|
|||
|
|
bool OnUserOutCard(WORD wChairID, BYTE cbCardData);
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool OnUserOperateCard(WORD wChairID, WORD wOperateCode, BYTE cbOperateCard);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE GetOperateCard(WORD wChairID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>
|
|||
|
|
bool SendOperateNotify(const tagGangCardResult& GangCardResult);
|
|||
|
|
//<2F>ɷ<EFBFBD><C9B7>˿<EFBFBD>
|
|||
|
|
bool DispatchCardData(WORD wCurrentUser,bool bNotGang=true);
|
|||
|
|
//<2F><>Ӧ<EFBFBD>ж<EFBFBD>
|
|||
|
|
bool EstimateUserRespond(WORD wCenterUser, BYTE cbCenterCard, enEstimatKind EstimatKind);
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
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>
|
|||
|
|
virtual WORD GetRealChairCount();
|
|||
|
|
// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ӻ<EFBFBD>;
|
|||
|
|
WORD getNextChairID(WORD wChairID);
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
public:
|
|||
|
|
bool IsHasGameRule(eWNMJRuleEnum eType ); //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
BYTE GetFanShuType();
|
|||
|
|
//<2F><><EFBFBD>ú<EFBFBD><C3BA>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
BYTE GetHURuleType();
|
|||
|
|
|
|||
|
|
// ¼<><C2BC><EFBFBD>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
// <20><>Ϸ<EFBFBD><CFB7>ʼ
|
|||
|
|
void starGameRecord();
|
|||
|
|
// <20><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>ʾ;
|
|||
|
|
void addGameRecordAction(WORD wSubCmdID, void* pSubMessage, int nMessageSize);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
//<2F>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>DelCardIndex;
|
|||
|
|
void InsertIntoDelCardIndex(WORD wChairID, tagWeaveItem &reftagWeaveItem);
|
|||
|
|
void InsertIntoDelCardIndex(WORD wChairID, BYTE cbRemoveCard[], BYTE cbRemoveCount);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>ֵ;
|
|||
|
|
void InsertGenHuCards(WORD wChairID, BYTE cbHuCardData);
|
|||
|
|
bool IsInInsertGenHuCards(WORD wChairID, BYTE cbCardData);
|
|||
|
|
bool HasGenHuCards(WORD wChairID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ;
|
|||
|
|
void InsertGenPengCards(WORD wChairID, BYTE cbPengCardData);
|
|||
|
|
bool IsInInsertGenPengCards(WORD wChairID, BYTE cbCardData);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>
|
|||
|
|
BYTE getSendCardData(WORD dwSendUser);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD>;
|
|||
|
|
void sendMasterLeftCard(int nChairdID);
|
|||
|
|
//ʹ<><CAB9><EFBFBD>ƿ<EFBFBD>
|
|||
|
|
void UseCardLibrary();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>ɾ<EFBFBD><C9BE>һЩ<D2BB><D0A9>
|
|||
|
|
bool RemoveCards(BYTE cbCards[], BYTE cbCardCount, BYTE cbRemoveCards[], BYTE cbRemoveCount);
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
public:
|
|||
|
|
CMD_S_Private_End_Info m_PrivateEndInfo;
|
|||
|
|
|
|||
|
|
//¼<><C2BC>
|
|||
|
|
public:
|
|||
|
|
tagGameRecord m_kGameRecord;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wCheatChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD>
|
|||
|
|
|
|||
|
|
WORD m_wDropped; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|