void CScreenHostLevels::SaveMissionList() { // Sanity checks... if (!m_pSelMissions) return; remove(m_sCampaignFile.c_str()); char szString[256]; char szNum[4]; sprintf(szNum, "%d", (m_bLoopMissions ? 1 : 0) ); CWinUtil::WinWritePrivateProfileString( "MissionList", "LoopMissions", szNum, m_sCampaignFile.c_str()); CWinUtil::WinWritePrivateProfileString( "MissionList", "MissionSourceFile", g_pMissionButeMgr->GetAttributeFile(), m_sCampaignFile.c_str()); for (int n = 0; n < m_pSelMissions->GetNumControls(); n++) { CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pSelMissions->GetControl(n); if (pCtrl) { sprintf(szString,"Mission%d",n); sprintf(szNum,"%d",pCtrl->GetParam1()); CWinUtil::WinWritePrivateProfileString( "MissionList", szString, szNum, m_sCampaignFile.c_str()); } } // Flush the file. CWinUtil::WinWritePrivateProfileString( NULL, NULL, NULL, m_sCampaignFile.c_str()); }
void CScreenHostLevels::SaveMissionList() { // Sanity checks... if (!m_pSelMissions) return; char szMission[MAX_PATH*2]; for (uint32 n = 0; n < m_pSelMissions->GetNumControls(); n++) { CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pSelMissions->GetControl(n); if( !pCtrl ) continue; LTStrCpy( szMission, g_pLTDatabase->GetRecordName( g_pMissionDB->GetMission( pCtrl->GetParam1( ))), LTARRAYSIZE( szMission )); GameModeMgr::Instance( ).SetMissionByIndex( g_pProfileMgr->GetCurrentProfile( )->m_sServerOptionsFile.c_str( ), n, szMission ); } // Write out an empty entry to indicate the end of the list. GameModeMgr::Instance( ).SetNumMissions( g_pProfileMgr->GetCurrentProfile( )->m_sServerOptionsFile.c_str( ), m_pSelMissions->GetNumControls( )); }
uint32 CScreenHostLevels::OnCommand(uint32 dwCommand, uint32 dwParam1, uint32 dwParam2) { switch(dwCommand) { case CMD_ADD_LEVEL: { if (m_pAvailMissions->GetSelectedIndex() >= 0 && (m_pSelMissions->GetNumControls() < MAX_GAME_LEVELS)) { CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pAvailMissions->GetSelectedControl(); if (pCtrl) { AddMissionToList(pCtrl->GetParam1(),true,false); m_pSelMissions->ClearSelection(); } } UpdateButtons(); } break; case CMD_ADD_ALL: { if (m_pAvailMissions->GetNumControls()) { for (uint32 i = 0; i < m_pAvailMissions->GetNumControls() && (m_pSelMissions->GetNumControls() < MAX_GAME_LEVELS); i++) { CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pAvailMissions->GetControl(i); if (pCtrl) { AddMissionToList(pCtrl->GetParam1(),false,false); } } } m_pSelMissions->ClearSelection(); UpdateButtons(); } break; case CMD_REMOVE_LEVEL: { int nIndex = m_pSelMissions->GetSelectedIndex(); if (nIndex >= 0) { m_pSelMissions->ClearSelection(); m_pSelMissions->RemoveControl(nIndex); int numLeft = m_pSelMissions->GetNumControls(); if (numLeft > 0) { if (nIndex >= numLeft) nIndex = numLeft-1; m_pSelMissions->SetSelection(nIndex); } } UpdateButtons(); } break; case CMD_REMOVE_ALL: { if (m_pSelMissions->GetNumControls() > 0) { m_pSelMissions->ClearSelection(); m_pSelMissions->RemoveAll(); } UpdateButtons(); } break; default: return CBaseScreen::OnCommand(dwCommand,dwParam1,dwParam2); } return 1; };
uint32 CScreenHostLevels::OnCommand(uint32 dwCommand, uint32 dwParam1, uint32 dwParam2) { switch(dwCommand) { case CMD_BACK: { m_pAvailMissions->Enable(LTFALSE); m_pSelMissions->Enable(LTFALSE); m_pScreenMgr->EscapeCurrentScreen(); break; } case CMD_ADD_LEVEL: { if (!m_pAvailMissions->IsEnabled() && m_pAvailMissions->GetNumControls()) { m_pSelMissions->Enable(LTFALSE); m_pRemove->Enable(LTTRUE); m_pAvailMissions->Enable(LTTRUE); m_pAdd->Enable(LTFALSE); SetSelection(GetIndex(m_pAvailMissions)); m_pAvailMissions->SetSelection(0); } else { char sMission[256] = ""; if (m_pAvailMissions->GetSelectedIndex() >= 0 && (m_pSelMissions->GetNumControls() < MAX_GAME_LEVELS)) { CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pAvailMissions->GetSelectedControl(); if (pCtrl) { AddMissionToList(pCtrl->GetParam1()); m_pSelMissions->ClearSelection(); } } UpdateButtons(); } } break; case CMD_ADD_ALL: { if (m_pAvailMissions->GetNumControls()) { for (int i = 0; i < m_pAvailMissions->GetNumControls() && (m_pSelMissions->GetNumControls() < MAX_GAME_LEVELS); i++) { char sMission[256] = ""; CLTGUITextCtrl *pCtrl = (CLTGUITextCtrl *)m_pAvailMissions->GetControl(i); if (pCtrl) { AddMissionToList(pCtrl->GetParam1()); } } } m_pSelMissions->ClearSelection(); UpdateButtons(); } break; case CMD_REMOVE_LEVEL: { if (!m_pSelMissions->IsEnabled() && m_pSelMissions->GetNumControls()) { m_pAvailMissions->Enable(LTFALSE); m_pAdd->Enable(LTTRUE); m_pSelMissions->Enable(LTTRUE); m_pRemove->Enable(LTFALSE); SetSelection(GetIndex(m_pSelMissions)); m_pSelMissions->SetSelection(0); } else { int nIndex = m_pSelMissions->GetSelectedIndex(); if (nIndex >= 0) { m_pSelMissions->RemoveControl(nIndex); } UpdateButtons(); } } break; case CMD_REMOVE_ALL: { if (m_pSelMissions->GetNumControls() > 0) { m_pSelMissions->ClearSelection(); m_pSelMissions->RemoveAll(); } UpdateButtons(); } break; default: return CBaseScreen::OnCommand(dwCommand,dwParam1,dwParam2); } return 1; };