诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

116 lines
3.0 KiB

  1. #include "StdAfx.h"
  2. #include "TableFrameHook.h"
  3. //////////////////////////////////////////////////////////////////////////
  4. //静态变量
  5. const WORD CTableFrameHook::m_wPlayerCount = MAX_CHAIR; //游戏人数
  6. //////////////////////////////////////////////////////////////////////////
  7. //构造函数
  8. CTableFrameHook::CTableFrameHook()
  9. {
  10. //组件变量
  11. m_pITableFrame = NULL;
  12. m_pGameServiceOption = NULL;
  13. m_pMatchEventSink = NULL;
  14. return;
  15. }
  16. //析构函数
  17. CTableFrameHook::~CTableFrameHook(void)
  18. {
  19. }
  20. //接口查询
  21. void * CTableFrameHook::QueryInterface(const IID & Guid, DWORD dwQueryVer)
  22. {
  23. QUERYINTERFACE(ITableFrameHook, Guid, dwQueryVer);
  24. QUERYINTERFACE(ITableUserAction, Guid, dwQueryVer);
  25. QUERYINTERFACE_IUNKNOWNEX(ITableFrameHook, Guid, dwQueryVer);
  26. return NULL;
  27. }
  28. //
  29. bool CTableFrameHook::SetMatchEventSink(IUnknownEx * pIUnknownEx)
  30. {
  31. m_pMatchEventSink = QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, IMatchEventSink);
  32. return true;
  33. }
  34. //初始化
  35. bool CTableFrameHook::InitTableFrameHook(IUnknownEx * pIUnknownEx)
  36. {
  37. //查询接口
  38. ASSERT(pIUnknownEx != NULL);
  39. m_pITableFrame = QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, ITableFrame);
  40. if (m_pITableFrame == NULL) return false;
  41. //获取参数
  42. m_pGameServiceOption = m_pITableFrame->GetGameServiceOption();
  43. ASSERT(m_pGameServiceOption != NULL);
  44. return true;
  45. }
  46. //游戏开始
  47. bool CTableFrameHook::OnEventGameStart(ITableFrame *pITableFrame, WORD wChairCount)
  48. {
  49. if (m_pMatchEventSink != NULL)
  50. {
  51. return m_pMatchEventSink->OnEventGameStart(pITableFrame, wChairCount);
  52. }
  53. return false;
  54. }
  55. //游戏结束
  56. bool CTableFrameHook::OnEventGameEnd(ITableFrame *pITableFrame, WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason)
  57. {
  58. if (m_pMatchEventSink != NULL)
  59. {
  60. return m_pMatchEventSink->OnEventGameEnd(pITableFrame, wChairID, pIServerUserItem, cbReason);
  61. }
  62. return false;
  63. }
  64. //用户坐下
  65. bool CTableFrameHook::OnActionUserSitDown(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser)
  66. {
  67. if (m_pMatchEventSink != NULL)
  68. {
  69. return m_pMatchEventSink->OnActionUserSitDown(m_pITableFrame->GetTableID(), wChairID, pIServerUserItem, bLookonUser);
  70. }
  71. return false;
  72. }
  73. //用户起来
  74. bool CTableFrameHook::OnActionUserStandUp(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser)
  75. {
  76. if (m_pMatchEventSink != NULL)
  77. {
  78. return m_pMatchEventSink->OnActionUserStandUp(m_pITableFrame->GetTableID(), wChairID, pIServerUserItem, bLookonUser);
  79. }
  80. return false;
  81. }
  82. //用户同意
  83. bool CTableFrameHook::OnActionUserOnReady(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize)
  84. {
  85. if (m_pMatchEventSink != NULL)
  86. {
  87. return m_pMatchEventSink->OnActionUserOnReady(m_pITableFrame->GetTableID(), wChairID, pIServerUserItem, pData, wDataSize);
  88. }
  89. return false;
  90. }
  91. //////////////////////////////////////////////////////////////////////////