void CFolderNew::BuildMissionList() { int nextMission = g_pGameClientShell->GetPlayerSummary()->GetNextMission(); int nCurrentMission = -1; for (int mis = 0; mis <= nextMission; ++mis) { MISSION* pMission = g_pMissionMgr->GetMission(mis); uint32 cmd = (uint32)mis + FOLDER_CMD_CUSTOM; if (!pMission) break; int nameId = pMission->nNameId; int nListWidth = m_ListRect.right - m_ListRect.left; HSTRING hStr = g_pLTClient->FormatString(nameId); CLTGUIFont *pFont; if (g_pLayoutMgr->GetListFontSize((eFolderID)m_nFolderID) == 0) pFont = GetSmallFont(); else if (g_pLayoutMgr->GetListFontSize((eFolderID)m_nFolderID) == 1) pFont = GetMediumFont(); else pFont = GetLargeFont(); CBitmapCtrl *pCheck = debug_new(CBitmapCtrl); if (g_pLayoutMgr->GetListFontSize((eFolderID)m_nFolderID)) pCheck->Create(g_pLTClient,"interface\\check-off.pcx","interface\\check-on.pcx"); else pCheck->Create(g_pLTClient,"interface\\small_check-off.pcx","interface\\small_check-on.pcx"); pCheck->Select((mis < nextMission)); int nWidth = pCheck->GetWidth(); CStaticTextCtrl *pCtrl = CreateStaticTextItem(hStr,cmd,LTNULL,(nListWidth - nWidth),0,LTFALSE,pFont); pCtrl->Enable(LTTRUE); int nHeight = Max(pCtrl->GetHeight(),pCheck->GetHeight()); CGroupCtrl *pGroup = AddGroup(nListWidth,nHeight,cmd); g_pLTClient->FreeString(hStr); LTIntPt offset; pGroup->AddControl(pCheck,offset,LTFALSE); offset.x = nWidth; pGroup->AddControl(pCtrl,offset,LTTRUE); // AddPhotoBitmap(g_pInterfaceResMgr->GetSharedSurface(pMission->szPhoto)); } }
int CFolderJoin::AddOptionCtrl(int nID, char *pszValue) { CLTGUIFont *pFont = GetSmallFont(); CGroupCtrl *pGroup = CreateGroup(nOptionGroupWidth,pFont->GetHeight(),LTNULL); LTIntPt pos(0,0); CStaticTextCtrl *pCtrl = CreateStaticTextItem(nID,LTNULL,LTNULL,nOptionWidth,pFont->GetHeight(),LTTRUE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nOptionWidth+nGap; pCtrl = CreateStaticTextItem(pszValue,LTNULL,LTNULL,(nOptionGroupWidth-pos.x),pFont->GetHeight(),LTTRUE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); return m_pOptionList->AddControl(pGroup); }
int CFolderJoin::AddServerCtrl(CGameSpyServer* pGame) { CLTGUIFont *pFont = GetSmallFont(); CGroupCtrl *pGroup = CreateGroup(nServerGroupWidth,pFont->GetHeight(),LTNULL); LTIntPt pos(0,0); pGroup->SetParam1((uint32)pGame->GetHandle()); char sTemp[128] = ""; sprintf(sTemp,"%s",pGame->GetName()); CStaticTextCtrl *pCtrl = CreateStaticTextItem(sTemp,CMD_SELECT_SERVER,LTNULL,nGameWidth,pFont->GetHeight(),LTFALSE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nGameWidth+nGap; sprintf(sTemp,"%d/%d",pGame->GetNumPlayers(), pGame->GetMaxPlayers()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nPlayerWidth,pFont->GetHeight(),LTFALSE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nPlayerWidth+nGap; if (pGame->GetPing() >= 9999) strcpy(sTemp, "???"); else sprintf(sTemp,"%d",pGame->GetPing()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nPingWidth,pFont->GetHeight(),LTFALSE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nPingWidth+nGap; sprintf(sTemp,"%s",pGame->GetGameType()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nTypeWidth,pFont->GetHeight(),LTFALSE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nTypeWidth+nGap; sprintf(sTemp,"%s",pGame->GetMap()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nMapWidth,pFont->GetHeight(),LTFALSE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); return m_pServerList->AddControl(pGroup); }
// build a list of objectives for a new mission void CFolderObjectives::BuildObjectivesList() { int missionNum = g_pInterfaceMgr->GetMissionData()->GetMissionNum(); MISSION* pMission = g_pMissionMgr->GetMission(missionNum); if (!pMission) return; CLTGUIFont *pFont = GetSmallFont(); for (int i = 0; i < pMission->nNumObjectives ; i++) { uint32 objID = pMission->aObjectiveIds[i]; CGroupCtrl *pGroup = debug_new(CGroupCtrl); CLTGUITextItemCtrl *pCtrl = CreateTextItem((int)objID,LTNULL,LTNULL,LTTRUE,pFont); if (pCtrl) { pCtrl->Enable(LTFALSE); pCtrl->SetFixedWidth(440); int nIndex= 0; CBitmapCtrl *pCheck = debug_new(CBitmapCtrl); pCheck->Create(g_pLTClient,"interface\\check-off.pcx"); int strHeight = pCtrl->GetHeight(); int bmpHeight = pCheck->GetHeight(); int height = Max(strHeight,bmpHeight) + 4; pGroup->Create(480,height); LTIntPt offset(40, (height - strHeight) / 2 ); pGroup->AddControl(pCtrl,offset); offset.x = 0; offset.y = (height - bmpHeight) / 2; pGroup->AddControl(pCheck,offset); pGroup->Enable(LTFALSE); AddFreeControl(pGroup); } } }
LTBOOL CFolderNew::UpdateSelection() { LTBOOL bChanged = CBaseSelectionFolder::UpdateSelection(); if (bChanged) { CGroupCtrl *pGroup = (CGroupCtrl *)GetControl(m_nLastListItem); int nMissionID = (pGroup->GetHelpID() - FOLDER_CMD_CUSTOM); MISSION* pMission = g_pMissionMgr->GetMission(nMissionID); m_pName->RemoveAll(); m_pName->AddString(pMission->nNameId); int briefingId = pMission->nDescriptionId; HSTRING hStr; if (briefingId) hStr=g_pLTClient->FormatString(briefingId); else hStr=g_pLTClient->CreateString("place mission briefing here"); m_pDescription->SetString(hStr); g_pLTClient->FreeString(hStr); SetPhotoBitmap(pMission->szPhoto); if (m_nFirstDrawn != nOldFirstDrawn) { nOldFirstDrawn = m_nFirstDrawn; for (int i = m_nFirstDrawn; i < m_nLastDrawn; i++) { CGroupCtrl *pGroup = (CGroupCtrl *)GetControl(i); int nMissionID = (pGroup->GetHelpID() - FOLDER_CMD_CUSTOM); MISSION* pMission = g_pMissionMgr->GetMission(nMissionID); AddPhotoBitmap(g_pInterfaceResMgr->GetSharedSurface(pMission->szPhoto)); } } } return bChanged; }
int CFolderJoin::AddPlayerCtrl(CGameSpyPlayer* pPlr) { CLTGUIFont *pFont = GetSmallFont(); CGroupCtrl *pGroup = CreateGroup(nPlayerGroupWidth,pFont->GetHeight(),LTNULL); LTIntPt pos(0,0); pGroup->SetParam1((uint32)pPlr); char sTemp[128] = ""; strcpy(sTemp, pPlr->GetName()); CStaticTextCtrl *pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nNameWidth,pFont->GetHeight(),LTTRUE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nNameWidth+nGap; sprintf(sTemp, "%i", pPlr->GetFrags()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nScoreWidth,pFont->GetHeight(),LTTRUE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pos.x += nScoreWidth+nGap; if (pPlr->GetPing() >= 9999) strcpy(sTemp, "???"); else sprintf(sTemp,"%d",pPlr->GetPing()); pCtrl = CreateStaticTextItem(sTemp,LTNULL,LTNULL,nPingWidth,pFont->GetHeight(),LTTRUE,pFont); pGroup->AddControl(pCtrl,pos,LTTRUE); pGroup->Enable(LTFALSE); return m_pPlayerList->AddControl(pGroup); }