⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brewlogin.cpp

📁 象棋框架
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		break;
    case LOGIN_TEST_GAME_LIST:
		if(m_nCurCv != Canvas1)
		{
			SetCanvas(Canvas1);			
		}
		if (frame->getGameList() == OK)
			m_nLoginState = LOGIN_GET_GAME_LIST;
		break;
	case LOGIN_GET_GAME_LIST:
		m_nLoginState = LOGIN_WAIT_GAME_LIST;
		m_nWaitGameListTime = timeMS;
		break;
    case LOGIN_WAIT_GAME_LIST:
		if (timeMS > m_nWaitGameListTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_GAME_LIST;
			bTimeOut = true;
		break;
	case LOGIN_READY_GAME:
		m_nLoginState = LOGIN_CHOOSE_GAME;
		break;
    case LOGIN_CHOOSE_GAME:
		m_nLoginState = LOGIN_TEST_SERVER_LIST;
		break;
    case LOGIN_TEST_SERVER_LIST:
		if (frame->getServerList(m_nCurrentGameId) == OK)
			m_nLoginState = LOGIN_GET_SERVER_LIST;
		break;
	case LOGIN_GET_SERVER_LIST:
		m_nLoginState = LOGIN_WAIT_SERVER_LIST;
		m_nWaitServerListTime = timeMS;
		break;
    case LOGIN_WAIT_SERVER_LIST:
		if (timeMS > m_nWaitServerListTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_SERVER_LIST;
			bTimeOut = true;
		break;
	case LOGIN_READY_SERVER:
		if (m_pIMenu == NULL){
			if (ISHELL_CreateInstance(m_pIShell, AEECLSID_MENUCTL, (void **)&m_pIMenu) != SUCCESS)
				break;
		}
		if (m_pIMenu == NULL)
			break;
		IMENUCTL_Reset(m_pIMenu);
		SETAEERECT(&r, frame->getScreenOffsetX(), frame->getScreenOffsetY(), m_pIDi->cxScreen, m_pIDi->cyScreen);
		IMENUCTL_SetRect(m_pIMenu, &r);
		MEMSET(szText, '\0', sizeof(szText));
		szText[0] = 0x670D;
		szText[1] = 0x52A1;
		szText[2] = 0x5668;
		szText[3] = 0x5217;
		szText[4] = 0x8868;
		szText[5] = '\0';
		IMENUCTL_SetTitle(m_pIMenu, NULL, 0, szText);
		sItem = m_pSList;
		for (i = 0; i < m_nSCount; i ++){
			if (sItem == NULL)
				break;
			MEMSET(szText, '\0', sizeof(szText));
			for (j = 0; j < sItem->serverItem.serverNameLength / 2; j ++)
				szText[j] = NTOHS(*(UINT16 *)&(sItem->serverItem.serverName[j * 2]));
			szText[sItem->serverItem.serverNameLength / 2] = '\0';
			IMENUCTL_AddItem(m_pIMenu, NULL, 0, sItem->serverItem.serverId, szText, 0);
			sItem = sItem->serverNext;
		}
		IMENUCTL_EnableCommand(m_pIMenu, TRUE);
		IMENUCTL_SetActive(m_pIMenu, TRUE);
		
		m_nLoginState = LOGIN_CHOOSE_SERVER;
		break;
    case LOGIN_CHOOSE_SERVER:
		break;
    case LOGIN_TEST_ROOM_LIST:
		if (frame->getRoomList(m_nCurrentGameId, m_nCurrentServerId) == OK)
			m_nLoginState = LOGIN_GET_ROOM_LIST;
		break;
	case LOGIN_GET_ROOM_LIST:
		m_nLoginState = LOGIN_WAIT_ROOM_LIST;
		m_nWaitRoomListTime = timeMS;
		break;
    case LOGIN_WAIT_ROOM_LIST:
		if (timeMS > m_nWaitRoomListTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_ROOM_LIST;
			bTimeOut = true;
		break;
	case LOGIN_READY_ROOM:
		if (m_pIMenu == NULL){
			if (ISHELL_CreateInstance(m_pIShell, AEECLSID_MENUCTL, (void **)&m_pIMenu) != SUCCESS)
				break;
		}
		if (m_pIMenu == NULL)
			break;
		IMENUCTL_Reset(m_pIMenu);
		SETAEERECT(&r, frame->getScreenOffsetX(), frame->getScreenOffsetY(), m_pIDi->cxScreen, m_pIDi->cyScreen);
		IMENUCTL_SetRect(m_pIMenu, &r);
		MEMSET(szText, '\0', sizeof(szText));
		szText[0] = 0x623F;
		szText[1] = 0x95F4;
		szText[2] = 0x5217;
		szText[3] = 0x8868;
		szText[4] = '\0';
		IMENUCTL_SetTitle(m_pIMenu, NULL, 0, szText);
		rItem = m_pRList;
		for (i = 0; i < m_nRCount; i ++){
			if (rItem == NULL)
				break;
			MEMSET(szText, '\0', sizeof(szText));
			for (j = 0; j < rItem->roomItem.roomNameLength / 2; j ++)
				szText[j] = NTOHS(*(UINT16 *)&(rItem->roomItem.roomName[j * 2]));
			szText[rItem->roomItem.roomNameLength / 2] = '\0';
			IMENUCTL_AddItem(m_pIMenu, NULL, 0, rItem->roomItem.roomId, szText, 0);
			rItem = rItem->roomNext;
		}
		IMENUCTL_EnableCommand(m_pIMenu, TRUE);
		IMENUCTL_SetActive(m_pIMenu, TRUE);
		
		m_nLoginState = LOGIN_CHOOSE_ROOM;
		break;
    case LOGIN_CHOOSE_ROOM:
		break;
	case LOGIN_READY_LOGIN:
		{
			m_bUserMng = WSTRLEN(m_nUserName) == 0 && m_bUserMng;
			if(m_bUserMng)
			{
				if(m_nCurCv == CanvasUserMng)
					break;
				SetCanvas(CanvasUserMng);				
			}
			else
			{
				if(m_nCurCv == Canvas2)
					break;
				SetCanvas(Canvas2);				
			}
			break;
		}		
		
		m_nLoginState = LOGIN_CHOOSE_USER;
		break;
    case LOGIN_CHOOSE_USER:
	case LOGIN_CHOOSE_PASS:
		break;
	case LOGIN_TEST_LOGIN:
		
		if(m_nCurCv == InitCanvas)
		{
			CBrewMainMenu* main = (CBrewMainMenu*)m_pILoginCanvas;
			if(main->m_pos.m_nPos == MAINMENU_BEGIN)
				m_broom = true;
		}
		
		if(m_nCurCv != WaitCanvas)
		{
			
			SetCanvas(WaitCanvas);			
			if(m_nCurCv == WaitCanvas)
			SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
				((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_BEGINLOGIN)
				,false,LOGIN_INIT);
		}
		
		if(m_broom)
			if (frame->getRoomList(m_nCurrentGameId, m_nCurrentServerId) == OK)
			{
				m_nLoginState = LOGIN_WAIT_LOGIN;
				if(m_nCurCv == WaitCanvas)
				SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
					((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_GAMEIN),
					false,LOGIN_INIT);
				m_broom = false;
				break;
			}
			else
			{
				m_nLoginState = LOGIN_TEST_LOGIN;
				break;
			}
			//MEMSET(m_nUserName, '\0', sizeof(m_nUserName));
			//MEMSET(m_nUserPass, '\0', sizeof(m_nUserPass));
			//ITEXTCTL_GetText(m_pIText1, &m_nUserName[0], 16);
			//ITEXTCTL_GetText(m_pIText2, &m_nUserPass[0], 16);
			WSTRLOWER(&m_nUserName[0]);
			WSTRLOWER(&m_nUserPass[0]);
			for (i = 0; i < WSTRLEN(m_nUserName); i ++)
				m_nUserName[i] = HTONS(m_nUserName[i]);
			for (i = 0; i < WSTRLEN(m_nUserPass); i ++)
				m_nUserPass[i] = HTONS(m_nUserPass[i]);
			
			if (m_bLoginFlag)
			{
				m_nLoginState = LOGIN_TEST_ENTER;
				SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
					((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_LOGINED),false,LOGIN_READY_LOGIN);
			}
			else if ( frame->loginUser(WSTRLEN(m_nUserName) * 2, (UINT8 *)m_nUserName, WSTRLEN(m_nUserPass) * 2, (UINT8 *)m_nUserPass) == OK)
			{
				m_nLoginState = LOGIN_GET_LOGIN;
				SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
					((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_LOGINING),false,LOGIN_READY_LOGIN);
			}
			
			for (i = 0; i < WSTRLEN(m_nUserName); i ++)
				m_nUserName[i] = NTOHS(m_nUserName[i]);
			for (i = 0; i < WSTRLEN(m_nUserPass); i ++)
				m_nUserPass[i] = NTOHS(m_nUserPass[i]);
			//  MEMSET(m_nUserName, '\0', sizeof(m_nUserName));
			//  MEMSET(m_nUserPass, '\0', sizeof(m_nUserPass));
			// ITEXTCTL_GetText(m_pIText1, &m_nUserName[0], 16);
			//ITEXTCTL_GetText(m_pIText2, &m_nUserPass[0], 16);
			//WSTRLOWER(&m_nUserName[0]);
			//WSTRLOWER(&m_nUserPass[0]);
			break;
	case LOGIN_GET_LOGIN:
		
		//break;
		
		m_nLoginState = LOGIN_WAIT_LOGIN;
		m_nWaitLoginTime = timeMS;
		break;
    case LOGIN_WAIT_LOGIN:
		if (timeMS > m_nWaitLoginTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_LOGIN;
			bTimeOut = true;
		break;
	case LOGIN_TEST_ENTER:
		if (frame->enterRoom(m_nCurrentGameId, m_nCurrentServerId, (UINT8)m_nCurrentRoomId) == OK)
		{
			m_nLoginState = LOGIN_GET_ENTER;
			if(m_nCurCv != WaitCanvas)
			{
				SetCanvas(WaitCanvas);				
			}
			if(m_nCurCv == WaitCanvas)
			SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
				((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_ENTERING),false,LOGIN_INIT);
		}
		break;
	case LOGIN_GET_ENTER:
		m_nLoginState = LOGIN_WAIT_ENTER;
		m_nWaitEnterTime = timeMS;
		break;
    case LOGIN_WAIT_ENTER:
		if (timeMS > m_nWaitEnterTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_ENTER;
			bTimeOut = true;
		break;
	case LOGIN_READY_REGISTER:
		{
			if(m_nCurCv != CanvasRegister)
			{
				SetCanvas(CanvasRegister);				
			}
		}
		break;
	case LOGIN_TEST_REGISTER:
		{
			if(m_nCurCv != WaitCanvas)
			{
				
				SetCanvas(WaitCanvas);			
				if(m_nCurCv == WaitCanvas)
				SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
					((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_REGING),false,LOGIN_READY_REGISTER);
			}
			if(frame->registerUser(m_userMng.urs.userNameLength,
				(UINT8*)m_userMng.urs.userName,
				m_userMng.urs.userPassLength,(UINT8*)m_userMng.urs.userPass,
				m_userMng.urs.nickNameLength,(UINT8*)m_userMng.urs.nickName,
				m_userMng.urs.mobileid,m_userMng.urs.userinfo) == OK)
			{
				m_nLoginState = LOGIN_GET_REGISTER;
				m_bReg = true;
			}
		}
		break;
	case LOGIN_GET_REGISTER:
		m_nLoginState = LOGIN_WAIT_REGISTER;
		m_nWaitEnterTime = timeMS;
		break;
	case LOGIN_WAIT_REGISTER: 
		if (timeMS > m_nWaitEnterTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_REGISTER;
			bTimeOut = true;
		break;
	case LOGIN_READY_MODIFY:
		{
			if(m_nCurCv != CanvasModify)
			{
				SetCanvas(CanvasModify);				
			}
		}
		break;
	case LOGIN_TEST_MODIFY:	
		{
			if(m_nCurCv != WaitCanvas)
			{
				
				SetCanvas(WaitCanvas);
				if(m_nCurCv == WaitCanvas)
				SetWaitingMsg(m_nCurCv,m_pILoginCanvas,
					((CBrewLoginCanvasBase*)m_pILoginCanvas)->GetDispText(IDS_WAIT_MODING),false,LOGIN_READY_MODIFY);
			}
			if(frame->modifyUser(m_userMng.urs.userNameLength,
				(UINT8*)m_userMng.urs.userName,
				m_userMng.urs.userPassLength,(UINT8*)m_userMng.urs.userPass,
				m_userMng.userNewPassLength,(UINT8*)m_userMng.userNewPass,
				m_userMng.urs.nickNameLength,(UINT8*)m_userMng.urs.nickName,
				m_userMng.urs.mobileid,m_userMng.urs.userinfo) == OK)
			{
				m_nLoginState = LOGIN_GET_MODIFY;
				m_bReg = false;
			}
		}
		break;
	case LOGIN_GET_MODIFY:    
		m_nLoginState = LOGIN_WAIT_MODIFY;
		m_nWaitEnterTime = timeMS;
		break;
	case LOGIN_WAIT_MODIFY:	
		if (timeMS > m_nWaitEnterTime + TIMEOUT)
			//m_nLoginState = LOGIN_GET_MODIFY;
			bTimeOut = true;
		break;
		
	default:
		break;
  }
  if(bTimeOut)
  {
	  if(m_nCurCv == WaitCanvas)
	  {
		  CWaitingCanvas* p = (CWaitingCanvas*)m_pILoginCanvas;
		  p->TimeOut();
	  }
  }
}

void CBrewLogin::onEvent(AEEEvent eCode, UINT16 wParam, UINT32 dwParam){
  if (frame == NULL)
	return;

  switch (eCode){
    case EVT_COMMAND:
	  if (m_nLoginRunFlag == FALSE)
		break;
	  if(m_nCurCv != Canvas1)
	  {
		  CBrewLoginCanvasBase *p = (CBrewLoginCanvasBase*)m_pILoginCanvas;
		  boolean b = p->onEvent(eCode,wParam,dwParam);
		  if(b)
			  break;
	  }
      switch (m_nLoginState){
        case LOGIN_CHOOSE_SERVER:
		  m_nCurrentServerId = wParam;
		  m_nLoginState = LOGIN_TEST_ROOM_LIST;
	      IMENUCTL_SetActive(m_pIMenu, FALSE);
	      break;
        case LOGIN_CHOOSE_ROOM:
		  m_nCurrentRoomId = wParam;
		  if (m_bLoginFlag == FALSE)
		    m_nLoginState = LOGIN_READY_LOGIN;
		  else{
	        //m_nLoginRunFlag = FALSE;
	        //frame->postUserEvent(HALL, SWITCH_INTO, 0);
			  m_nLoginState = LOGIN_TEST_ENTER;
		  }
	      IMENUCTL_SetActive(m_pIMenu, FALSE);
	      break;
	    default:
	      break;
	  }
	  break;
	case EVT_USER:
	  switch (wParam){
	    case SWITCH_INTO:
	      //frame->setCanvas(m_pILoginCanvas);
			SetCanvas(Canvas1);			
		  m_nLoginState = LOGIN_READY_ROOM;
		  m_nLoginRunFlag = TRUE;
		  break;
		default:
		  break;
	  }
	  break;
	default:
      break;
  }
  return;
}

void CBrewLogin::Release(){
  delete this;
}

IBrewLogin *CreateBrewLogin(){
  return (IBrewLogin *)new CBrewLogin();
}

void CBrewLogin::SetCanvas(CURRENTCANVAS ci)
{
	if (m_pILoginCanvas != NULL)
	{
		m_pILoginCanvas->Release();
		m_pILoginCanvas = NULL;
	}
	switch(ci)
	{
	case Canvas1:
		m_pILoginCanvas = CreateLoginCanvas();
		break;
	case Canvas2:
		m_pILoginCanvas = CreateLoginCanvas2();
		break;
	case CanvasUserMng:
		m_pILoginCanvas = CreateUserMng();
		break;
	case CanvasRegister:
		m_pILoginCanvas = CreateLoginCanvas3();
		break;
	case CanvasModify:
		m_pILoginCanvas = CreateLoginCanvas42();
		break;
	case WaitCanvas:
		m_pILoginCanvas = CreateWaitingCanvas();
		break;
	case InitCanvas:
		m_pILoginCanvas = CreateBrewMainMenu();
		break;
	}		
	
	if (m_pILoginCanvas != NULL)
	{
		m_pILoginCanvas->setFrame(this);
		frame->setCanvas(m_pILoginCanvas);
		m_nCurCv = ci;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -