MainData.cpp
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:4k
源码类别:

游戏

开发平台:

Visual C++

  1. // MainData.cpp: implementation of the CMainData class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "gamehigh.h"
  6. #include "MainData.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CMainData::CMainData()
  16. {
  17. lpMyTable =NULL;
  18. myStatus =IDLESSE;
  19. memset(&myInfo, 0, sizeof(GAMEHIGH_USERINFO));
  20. }
  21. CMainData::~CMainData()
  22. {
  23. }
  24. BOOL CMainData::Async_GameHigh_LoadRoomsFromServer(DWORD dwGameTypeID, LPGAMEHIGH_ROOM& roomArray, int& noutCount)
  25. {
  26. if(dwGameTypeID < 0)
  27. return FALSE;
  28. //服务器中提取房间列表
  29. roomArray =NULL;
  30. //test data
  31. if( 1 == dwGameTypeID)
  32. {
  33. noutCount =3;
  34. roomArray =new GAMEHIGH_ROOM[noutCount];
  35. SAFE_CHECKPOINTER(roomArray)
  36. {
  37. memset(roomArray, 0, sizeof(GAMEHIGH_ROOM) * noutCount);
  38. strcpy(roomArray[0].RoomName, "越南战争");
  39. roomArray[0].uRoomID =0;
  40. strcpy(roomArray[1].RoomName, "朝鲜战场");
  41. roomArray[0].uRoomID =1;
  42. strcpy(roomArray[2].RoomName, "击沉日本岛");
  43. roomArray[0].uRoomID =2;
  44. }
  45. }
  46. return TRUE;
  47. }
  48. BOOL CMainData::Async_GameHigh_LoadTableFromRoom(DWORD dwRoomID, LPGAMEHIGH_TABLE& lpTabArray, int& nCount)
  49. {
  50. //提取桌子列表
  51. nCount =0;
  52. if(NULL != lpTabArray)
  53. {
  54. ASSERT(NULL);
  55. }
  56. lpTabArray =NULL;
  57. //test code
  58. if(2 == dwRoomID)
  59. {
  60. nCount =MAX_TABLE;
  61. lpTabArray =new GAMEHIGH_TABLE[nCount];
  62. memset(lpTabArray, 0, sizeof(GAMEHIGH_TABLE) * nCount);
  63. for(int i=0; i < nCount; i++)
  64. {
  65. strcpy(lpTabArray[i].Initiator, "");
  66. lpTabArray[i].tableID =i;
  67. }
  68. //-----------------------测试数据
  69. //定义第一张桌子为测试对象
  70. ::strcpy(lpTabArray[0].Initiator, "ghost");
  71. ::strcpy(lpTabArray[0].userStatus[0].userID, "ghost");
  72. ::strcpy(lpTabArray[0].userStatus[0].userName, "阿鬼");
  73. ::strcpy(lpTabArray[0].userStatus[1].userID, "Wu");
  74. ::strcpy(lpTabArray[0].userStatus[1].userName, "小吴");
  75. ::strcpy(lpTabArray[0].userStatus[2].userID, "knight");
  76. ::strcpy(lpTabArray[0].userStatus[2].userName, "骑士");
  77. }
  78. /*
  79. memset(tableData, 0, sizeof(GAMEHIGH_TABLE) * MAX_TABLE);
  80. //清空原有的桌子列表
  81. if(2 == dwRoomID)
  82. {
  83. //模拟数据,仅为测试用
  84. for(UINT i=0; i < MAX_TABLE; i++)
  85. {
  86. strcpy(tableData[i].Initiator, "");
  87. tableData[i].tableID =i;
  88. memset(&(tableData[i].userStatus), 0, sizeof(GAMEHIGH_USERSTATUS));
  89. }
  90. //-----------------------测试数据
  91. //定义第一张桌子为测试对象
  92. ::strcpy(tableData[0].Initiator, "ghost");
  93. ::strcpy(tableData[0].userStatus[0].userID, "ghost");
  94. ::strcpy(tableData[0].userStatus[0].userName, "阿鬼");
  95. ::strcpy(tableData[0].userStatus[1].userID, "Wu");
  96. ::strcpy(tableData[0].userStatus[1].userName, "小吴");
  97. ::strcpy(tableData[0].userStatus[2].userID, "knight");
  98. ::strcpy(tableData[0].userStatus[2].userName, "骑士");
  99. }
  100. */
  101. return TRUE;
  102. }
  103. LPCTSTR CMainData::Attrib_GetMyID()
  104. {
  105. return strUserID;
  106. }
  107. USERSTATUS CMainData::Attrib_GetMyStatus()
  108. {
  109. return myStatus;
  110. }
  111. LPGAMEHIGH_USERINFO CMainData::Attrib_GetMyInfo()
  112. {
  113. return &myInfo;
  114. }
  115. LPGAMEHIGH_TABLE CMainData::Attrib_GetMyTable()
  116. {
  117. return lpMyTable;
  118. }
  119. void CMainData::Attrib_SetMyTable(LPGAMEHIGH_TABLE lpTable)
  120. {
  121. ASSERT(lpTable);
  122. if(NULL != lpTable)
  123. {
  124. lpMyTable =lpTable;
  125. }
  126. }
  127. BOOL CMainData::Async_GameHigh_Login(LPCTSTR lpszUser, LPCTSTR lpszPass)
  128. {
  129. ASSERT(lpszUser);
  130. ASSERT(lpszPass);
  131. if(NULL == lpszUser ||
  132. NULL == lpszPass ||
  133. 0 != strlen(lpszUser) ||
  134. 0 != strlen(lpszPass))
  135. {
  136. strUserID =lpszUser;
  137. }
  138. return TRUE;
  139. }
  140. void CMainData::Implemen_StandUp(LPGAMEHIGH_TABLE lptab)
  141. {
  142. ASSERT(lptab);
  143. if(NULL == lptab)
  144. return ;
  145. for(int i=0; i<MAX_TABCONTAIN; i++)
  146. {
  147. if(0 == strUserID.Compare(lptab->userStatus[i].userID))
  148. { //找到了自已
  149. lptab->userStatus[i].status =IDLESSE;
  150. memset(lptab->userStatus[i].userID, 0, sizeof(char) * MAX_USERID_LENGTH);
  151. memset(lptab->userStatus[i].userName, 0, sizeof(char) * MAX_USERNAME_LENGTH);
  152. }
  153. }
  154. }
  155. int CMainData::Attrib_GetMyPos()
  156. {
  157. SAFE_CHECKPOINTER(lpMyTable)
  158. {
  159. for(int i=0; i<MAX_TABCONTAIN; i++)
  160. {
  161. if(0 == strUserID.Compare(lpMyTable->userStatus[i].userID))
  162. {
  163. return i;
  164. }
  165. }
  166. }
  167. return -1;
  168. }