Esempio n. 1
0
uint32 CScreenJoin::OnCommand(uint32 dwCommand, uint32 dwParam1, uint32 dwParam2)
{
	switch(dwCommand)
	{
		case CMD_CANCEL :
		{
			ChangeState(eState_Waiting);
			break;
		}
	case CMD_OK:
		{
			return HandleCallback(dwParam1,dwParam2);
		}
		case CMD_SEARCH :
			{
			FindServers();
			break;
			}
		case CMD_EDIT_CDKEY :
		{
			ChangeState(eState_ChangeCDKey);
			break;
		}
	case CMD_JOIN:
		{
			if (dwParam1 >= m_cServerList.size())
				return 0;

			m_nSelectedServer = dwParam1;
		    if (g_pGameClientShell->IsWorldLoaded())
		    {
				if (IsCurrentGame(m_cServerList[m_nSelectedServer].m_sAddress.c_str()))
				{
					HLOCALOBJ hPlayerObj = g_pLTClient->GetClientObject();
					if (g_pGameClientShell->IsWorldLoaded() && hPlayerObj)
					{
						g_pInterfaceMgr->ChangeState(GS_PLAYING);
					}
				}
				else
				{
					MBCreate mb;
					mb.eType = LTMB_YESNO;
					mb.pFn = JoinLanConfirmationCallback;
					g_pInterfaceMgr->ShowMessageBox(IDS_ENDCURRENTGAME,&mb);
				}
		    }
		    else
		    {
				JoinCurGame();
		    }

			break;
		}
	default:
		return CBaseScreen::OnCommand(dwCommand,dwParam1,dwParam2);
	}
	return 1;
}
Esempio n. 2
0
LTBOOL CScreenJoin::HandleKeyDown(int key, int rep)
{
	if (key == VK_F5)
	{
		FindServers();
        return LTTRUE;
		}
    return CBaseScreen::HandleKeyDown(key,rep);
}
void CFindServersDlg::OnOK() 
{
	UpdateData();
	if (m_Method) {
		UINT	start, end;
		if (!CFindServersDlg::GetIPAddrRange(m_RangeStart, m_RangeEnd, start, end)) {
			AfxMessageBox(IDS_FSRV_BAD_IP_RANGE);
			GotoDlgCtrl(GetDlgItem(IDC_FSRV_RANGE_START));
			return;
		}
	}
	FindServers();
	CDialog::OnOK();
}