コード例 #1
0
ファイル: Level.cpp プロジェクト: ZHANITEST/SDLProgramming
void Level::Update()
{    
    for(int i = 0; i < m_layers.size(); i++)
    {
		m_layers[i]->Update(this);
    }

	m_pPathManager->UpdateSearches();

	UpdatePlayers();

	//CheckPlayerCollision();

	UpdateObject();

	m_TriggerSystem.Update(GetPlayers());
}
コード例 #2
0
void CFolderJoin::UpdateLists(LTBOOL bForce)
{
	// Check for a forced update...

	if (m_bForceNextUpdate)
	{
        bForce             = LTTRUE;
        m_bForceNextUpdate = LTFALSE;
	}


	// Check if we got a new server...

	static LTBOOL bDelayNewServer = LTFALSE;

	LTBOOL bNewServer = LTFALSE;

	if (GetGameSpyClientMgr()->ExistNewServer())
	{
		bNewServer = LTTRUE;
	}

	if (bDelayNewServer)
	{
		bNewServer = LTTRUE;
	}


	// Make sure we don't do a full update too often...

	static uint32 timeLastFullUpdate = 0;

	if (!bForce && bNewServer)
	{
		if ((GetTickCount() - timeLastFullUpdate) < 1000)
		{
			bDelayNewServer = LTTRUE;
		}
		else
		{
			bForce = LTTRUE;
		}
	}
	else if (bNewServer)
	{
		bForce = LTTRUE;
	}

	if (bForce)
	{
		timeLastFullUpdate = GetTickCount();
		bDelayNewServer    = LTFALSE;
	}


	// Do the updates...

	UpdateServers(bForce);
	UpdatePlayers(bForce);
	UpdateOptions(bForce);
}
コード例 #3
0
uint32 CFolderJoin::OnCommand(uint32 dwCommand, uint32 dwParam1, uint32 dwParam2)
{
	switch(dwCommand)
	{
	case CMD_SELECT_SERVER:
		{
			int nIndex = m_pServerList->GetSelectedItem();
            void* pGame = LTNULL;
			if (nIndex != CListCtrl::kNoSelection)
			{
				pGame = (void*)m_pServerList->GetControl(nIndex)->GetParam1();
			}

			if (pGame != GetCurGameServerHandle())
			{
				SetCurGameServerHandle(pGame);
				SetState(FSS_GETALLDATA);

			}
			UpdatePlayers(TRUE);


		} break;
	case CMD_REFRESH_SERVERS:
		{
			SetState(FSS_GETSERVICES);
			break;
		}

	case CMD_REPING_SERVERS:
		{
			//SetState(FSS_GETPINGS);
			break;
		}

	case CMD_VERSION_FILTER:
		{
			m_nVersionFilter = !m_nVersionFilter;
            m_pVersionFilter->UpdateData(LTFALSE);
			ForceNextUpdate();

		} break;

	case CMD_GAME_FILTER:
		{
			m_nGameFilter++;
			if (m_nGameFilter > NGT_FILTER_LAST)
				m_nGameFilter = 0;
            m_pGameFilter->UpdateData(LTFALSE);
			ForceNextUpdate();

		} break;
	case CMD_POP_FILTER:
		{
			m_nPopFilter++;
			if (m_nPopFilter > POP_FILTER_LAST)
				m_nPopFilter = 0;
            m_pPopFilter->UpdateData(LTFALSE);
			ForceNextUpdate();

		} break;
	case CMD_SORT_SERV_NAME:
		{
			SetServerSort(FSS_SORT_NAME);
			SortServers();
		} break;

	case CMD_SORT_SERV_PLAYERS:
		{
			SetServerSort(FSS_SORT_PLAYERS);
			SortServers();
		} break;
	case CMD_SORT_SERV_PING:
		{
			SetServerSort(FSS_SORT_PING);
			SortServers();
		} break;
	case CMD_SORT_SERV_GAME:
		{
			SetServerSort(FSS_SORT_GAME);
			SortServers();
		} break;
	case CMD_SORT_SERV_MAP:
		{
			SetServerSort(FSS_SORT_MAP);
			SortServers();
		} break;
	case CMD_SORT_PLYR_NAME:
		{
			SetPlayerSort(FSS_SORT_NAME);
			SortPlayers();
		} break;
	case CMD_SORT_PLYR_SCORE:
		{
			SetPlayerSort(FSS_SORT_FRAGS);
			SortPlayers();
		} break;
	case CMD_SORT_PLYR_PING:
		{
			SetPlayerSort(FSS_SORT_PING);
			SortPlayers();
		} break;
	case CMD_EDIT_PASS:
		{
			SetCapture(LTNULL);
			m_pPassEdit->UpdateData();
			RemoveFixedControl(m_pPassEdit);
			RemoveFixedControl(m_pPassLabel);
			RemoveFixedControl(m_pPassBack);
			m_bAskingForPassword = LTFALSE;
			ForceMouseUpdate();
			JoinCurGame(LTTRUE);
		} break;
	case CMD_JOIN:
		{
			CGameSpyServer* pGame = GetGameSpyClientMgr()->GetServerFromHandle(m_pCurServerHandle);
		    if (g_pGameClientShell->IsInWorld() && pGame)
		    {

				if (IsCurrentGame(pGame))
				{
					HLOCALOBJ hPlayerObj = g_pLTClient->GetClientObject();
					if (g_pGameClientShell->IsInWorld() && hPlayerObj)
					{
						g_pInterfaceMgr->ChangeState(GS_PLAYING);
					}
				}
				else
				{
					HSTRING hString = g_pLTClient->FormatString(IDS_ENDCURRENTGAME);
					g_pInterfaceMgr->ShowMessageBox(hString,LTMB_YESNO,JoinCallBack,this);
					g_pLTClient->FreeString(hString);
				}
		    }
		    else
		    {
				JoinCurGame();
		    }


		} break;

	default:
		return CBaseFolder::OnCommand(dwCommand,dwParam1,dwParam2);
	}
	return 1;
};