180 lines
4.3 KiB
C
180 lines
4.3 KiB
C
|
|
#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
|