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; }
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(); }