예제 #1
0
void CClientDlg::OnBnClickedGSRefreshList()
{
	if (!net_Hosts.size()) return;
	int nItem = -1;
	for (int i=0; i<m_pServerList.GetItemCount(); i++)
	{
		if (m_pServerList.GetItemState(i, (UINT)-1) & LVIS_SELECTED)
		{
			nItem = i;
			break;
		}
	}

	if (nItem == -1) return;

	HOST_NODE	N = net_Hosts[m_pServerList.GetItemData(nItem)];
	UINT res = m_pServerList.GetItemState(nItem, (UINT)-1);
	if (!N.dpServer) return;

//	m_pGameSpyUpdateList.EnableWindow(FALSE);
//	m_pGameSpyRefreshList.EnableWindow(FALSE);

	m_bQuickRefresh = TRUE;
	ServerBrowserAuxUpdateServer(m_serverBrowser, N.dpServer, SBTrue, SBTrue);

//	if(!m_timerID)
//		m_timerID = SetTimer(TIMER_ID, TIMER_FREQUENCY, NULL);
//	m_pGameSpyUpdateList.EnableWindow(TRUE);
//	m_pGameSpyRefreshList.EnableWindow(TRUE);

}
예제 #2
0
void CSbmfcsampleDlg::OnClickServerlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// clear the player box
	m_playerList.DeleteAllItems();

	// find the selected server
	POSITION pos = m_serverList.GetFirstSelectedItemPosition();
	if(pos == NULL)
		return;
	int index = m_serverList.GetNextSelectedItem(pos);

	// get the server
	LVITEM item;
	item.mask = LVIF_PARAM;
	item.iItem = index;
	item.iSubItem = 0;
	m_serverList.GetItem(&item);
	SBServer server = (SBServer)item.lParam;

	if (!SBServerHasFullKeys(server)) //we need to query for the full rules
	{
		// turn on the hour glass
		HCURSOR cursor = SetCursor(LoadCursor(NULL, IDC_WAIT));

		// do a server update (this is blocking!)
		ServerBrowserAuxUpdateServer(m_serverBrowser, server, SBFalse, SBTrue);

		// turn off the hour glass
		SetCursor(cursor);
	}

	// get the player count
	int count = SBServerGetIntValue(server, "numplayers", 0);

	// add the players to the list
	for(int i = 0 ; i < count ; i++)
	{
		m_playerList.InsertItem(0, SBServerGetPlayerStringValue(server, i, "player", "(NO NAME)"));
		m_playerList.SetItem(0, COL_PPING, LVIF_TEXT, SBServerGetPlayerStringValue(server, i, "ping", "0"), -1, 0, 0, 0);
		m_playerList.SetItem(0, COL_PSCORE, LVIF_TEXT, SBServerGetPlayerStringValue(server, i, "score", "0"), -1, 0, 0, 0);
	}

	// MFC
	*pResult = 0;

	GSI_UNUSED(pNMHDR);
}