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