121 lines
2.7 KiB
C++
121 lines
2.7 KiB
C++
// MissionSelectDialog.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "MissionSelectDialog.h"
|
|
#include "Mission.h"
|
|
#include "cryeditdoc.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMissionSelectDialog dialog
|
|
|
|
|
|
CMissionSelectDialog::CMissionSelectDialog(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CMissionSelectDialog::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CMissionSelectDialog)
|
|
m_description = _T("");
|
|
m_selected = _T("");
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CMissionSelectDialog::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CMissionSelectDialog)
|
|
DDX_Control(pDX, IDC_MISSIONS, m_missions);
|
|
DDX_Text(pDX, IDC_DESCRIPTION, m_description);
|
|
DDX_LBString(pDX, IDC_MISSIONS, m_selected);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CMissionSelectDialog, CDialog)
|
|
//{{AFX_MSG_MAP(CMissionSelectDialog)
|
|
ON_LBN_SELCHANGE(IDC_MISSIONS, OnSelectMission)
|
|
ON_LBN_DBLCLK(IDC_MISSIONS, OnDblclkMissions)
|
|
ON_EN_UPDATE(IDC_DESCRIPTION, OnUpdateDescription)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMissionSelectDialog message handlers
|
|
|
|
void CMissionSelectDialog::OnOK()
|
|
{
|
|
CCryEditDoc *doc = GetIEditor()->GetDocument();
|
|
for (int i = 0; i < doc->GetMissionCount(); i++)
|
|
{
|
|
CMission *m = doc->GetMission(i);
|
|
m->SetDescription( m_descriptions[i] );
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CMissionSelectDialog::OnCancel()
|
|
{
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
BOOL CMissionSelectDialog::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// Init missions.
|
|
m_missions.ResetContent();
|
|
CCryEditDoc *doc = GetIEditor()->GetDocument();
|
|
|
|
m_descriptions.resize( doc->GetMissionCount() );
|
|
for (int i = 0; i < doc->GetMissionCount(); i++)
|
|
{
|
|
CMission *m = doc->GetMission(i);
|
|
m_missions.AddString( m->GetName() );
|
|
m_descriptions[i] = m->GetDescription();
|
|
}
|
|
|
|
if (doc->GetMissionCount() > 0)
|
|
{
|
|
// Select first mission.
|
|
m_missions.SetCurSel(0);
|
|
OnSelectMission();
|
|
}
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CMissionSelectDialog::OnSelectMission()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
int sel = m_missions.GetCurSel();
|
|
if (sel != LB_ERR)
|
|
{
|
|
UpdateData(TRUE);
|
|
m_description = m_descriptions[sel];
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void CMissionSelectDialog::OnDblclkMissions()
|
|
{
|
|
OnOK();
|
|
}
|
|
|
|
void CMissionSelectDialog::OnUpdateDescription()
|
|
{
|
|
int sel = m_missions.GetCurSel();
|
|
if (sel != LB_ERR)
|
|
{
|
|
UpdateData(TRUE);
|
|
m_descriptions[sel] = m_description;
|
|
}
|
|
}
|