Files

180 lines
4.3 KiB
C
Raw Permalink Normal View History

2026-02-13 14:34:15 +08:00
#ifndef ANDROID_USER_TIEM_HEAD_FILE
#define ANDROID_USER_TIEM_HEAD_FILE
#pragma once
#include "GameServiceHead.h"
//////////////////////////////////////////////////////////////////////////////////
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagTimerItem
{
UINT nTimerID; //ʱ<><CAB1><EFBFBD><EFBFBD>ʶ
UINT nTimeLeave; //ʣ<><CAA3>ʱ<EFBFBD><CAB1>
};
//<2F><>˵<EFBFBD><CBB5>
typedef CWHArray<tagTimerItem *> CTimerItemArray; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
class GAME_SERVICE_CLASS CAndroidUserItem : public IAndroidUserItem
{
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
friend class CAndroidUserManager;
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
protected:
bool m_bWaitLeave; //<2F>ȴ<EFBFBD><C8B4>
bool m_bStartClient; //<2F><>Ϸ<EFBFBD><CFB7>־
BYTE m_cbGameStatus; //<2F><>Ϸ״̬
WORD m_wAndroidAction; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD m_dwPlayInnings; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
tagUserStatus m_CurrentUserStatus; //<2F>û<EFBFBD>״̬
//<2F>󶨱<EFBFBD><F3B6A8B1><EFBFBD>
protected:
IServerUserItem * m_pIServerUserItem; //<2F>û<EFBFBD><C3BB>ӿ<EFBFBD>
//״̬<D7B4><CCAC>Ϣ
protected:
tagAndroidService m_AndroidService; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
tagAndroidItemConfig m_AndroidItemConfig; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
WORD m_wRoundID; //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD m_wAndroidIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CTimerItemArray m_TimerItemActive; //<2F><EFBFBD><EEB6AF><EFBFBD><EFBFBD>
static CTimerItemArray m_TimerItemBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
DWORD m_dwMinSitInterval; //<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
DWORD m_dwMaxSitInterval; //<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
DWORD m_dwStandupTickCount; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD m_dwReposeTickCount; //<2F><>Ϣʱ<CFA2><CAB1>
//<2F>ӿڱ<D3BF><DAB1><EFBFBD>
protected:
IServerUserManager * m_pIServerUserManager; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
IAndroidUserManager * m_pIAndroidUserManager; //<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
IAndroidUserItemSink * m_pIAndroidUserItemSink; //<2F>ص<EFBFBD><D8B5>ӿ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CAndroidUserItem();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CAndroidUserItem();
//<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><C3BB><EFBFBD>Ϣ
public:
//<2F><>ȡ I D
virtual DWORD GetUserID();
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
virtual WORD GetTableID();
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
virtual WORD GetChairID();
//״̬<D7B4>ӿ<EFBFBD>
public:
//<2F><>ȡ״̬
virtual BYTE GetGameStatus() { return m_cbGameStatus; }
//<2F><><EFBFBD><EFBFBD>״̬
virtual VOID SetGameStatus(BYTE cbGameStatus) { m_cbGameStatus=cbGameStatus; }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
public:
//<2F><>ȡ״̬
virtual tagAndroidService * GetAndroidService() { return &m_AndroidService; }
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual tagAndroidParameter * GetAndroidParameter() { return m_AndroidItemConfig.pAndroidParameter; }
//<2F>û<EFBFBD><C3BB>ӿ<EFBFBD>
public:
//<2F><>ȡ<EFBFBD>Լ<EFBFBD>
virtual IServerUserItem * GetMeUserItem();
//<2F><>Ϸ<EFBFBD>û<EFBFBD>
virtual IServerUserItem * GetTableUserItem(WORD wChariID);
//<2F><><EFBFBD>нӿ<D0BD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>
virtual bool PerformSaveScore(SCORE lScore);
//<2F><>ȡ<EFBFBD><C8A1>Ϸ<EFBFBD><CFB7>
virtual bool PerformTakeScore(SCORE lScore);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
virtual bool SendSocketData(WORD wSubCmdID);
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
virtual bool SendSocketData(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
virtual bool SendSocketData(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool JudgeAndroidActionAndRemove(WORD wAction);
//<2F><><EFBFBD>ܽӿ<DCBD>
public:
//ɾ<><C9BE>ʱ<EFBFBD><CAB1>
virtual bool KillGameTimer(UINT nTimerID);
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
virtual bool SetGameTimer(UINT nTimerID, UINT nElapse);
//<2F><><EFBFBD><EFBFBD>׼<EFBFBD><D7BC>
virtual bool SendUserReady(VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool SendChatMessage(DWORD dwTargetUserID, LPCTSTR pszChatString, COLORREF crColor);
//<2F>¼<EFBFBD>֪ͨ
public:
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
bool OnTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool OnSocketRead(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
protected:
//<2F><>¼ʧ<C2BC><CAA7>
bool OnSocketSubLogonFailure(VOID * pData, WORD wDataSize);
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
bool OnSocketSubLogonFinish(VOID * pData, WORD wDataSize);
//<2F>û<EFBFBD>״̬
bool OnSocketSubUserStatus(VOID * pData, WORD wDataSize);
//ϵͳ<CFB5><CDB3>Ϣ
bool OnSocketSubSystemMessage(VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
bool OnSocketGameMessage(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
protected:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
VOID StartGameClient();
//<2F>ر<EFBFBD><D8B1><EFBFBD>Ϸ
VOID CloseGameClient();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
VOID RepositUserItem();
};
//////////////////////////////////////////////////////////////////////////////////
#endif