summaryrefslogtreecommitdiff
path: root/hammer/runmapcfgdlg.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /hammer/runmapcfgdlg.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'hammer/runmapcfgdlg.cpp')
-rw-r--r--hammer/runmapcfgdlg.cpp160
1 files changed, 160 insertions, 0 deletions
diff --git a/hammer/runmapcfgdlg.cpp b/hammer/runmapcfgdlg.cpp
new file mode 100644
index 0000000..70f940d
--- /dev/null
+++ b/hammer/runmapcfgdlg.cpp
@@ -0,0 +1,160 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+// RunMapCfgDlg.cpp : implementation file
+//
+
+#include "stdafx.h"
+#include "hammer.h"
+#include "RunMapCfgDlg.h"
+#include "StrDlg.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include <tier0/memdbgon.h>
+
+/////////////////////////////////////////////////////////////////////////////
+// CRunMapCfgDlg dialog
+
+
+CRunMapCfgDlg::CRunMapCfgDlg(CWnd* pParent /*=NULL*/)
+ : CDialog(CRunMapCfgDlg::IDD, pParent)
+{
+ //{{AFX_DATA_INIT(CRunMapCfgDlg)
+ // NOTE: the ClassWizard will add member initialization here
+ //}}AFX_DATA_INIT
+
+ m_pApp = (CHammer*) AfxGetApp();
+}
+
+
+void CRunMapCfgDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CRunMapCfgDlg)
+ DDX_Control(pDX, IDC_CONFIGURATIONS, m_cConfigurations);
+ //}}AFX_DATA_MAP
+}
+
+
+BEGIN_MESSAGE_MAP(CRunMapCfgDlg, CDialog)
+ //{{AFX_MSG_MAP(CRunMapCfgDlg)
+ ON_BN_CLICKED(IDC_NEW, OnNew)
+ ON_BN_CLICKED(IDC_REMOVE, OnRemove)
+ ON_BN_CLICKED(IDC_RENAME, OnRename)
+ ON_BN_CLICKED(IDC_COPY, OnCopy)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CRunMapCfgDlg message handlers
+
+void CRunMapCfgDlg::AddSequenceToList(int iIndex, CCommandSequence *pSeq)
+{
+ iIndex = m_cConfigurations.InsertString(iIndex, pSeq->m_szName);
+ m_cConfigurations.SetItemDataPtr(iIndex, PVOID(pSeq));
+ m_cConfigurations.SetCurSel(iIndex);
+}
+
+void CRunMapCfgDlg::OnNew()
+{
+ // add a new sequence
+ CStrDlg dlg(0, "", "Name:", "New Configuration");
+ if(dlg.DoModal() == IDCANCEL)
+ return;
+
+ // add it to the list in the app
+ CCommandSequence *pSeq = new CCommandSequence;
+ strcpy(pSeq->m_szName, dlg.m_string);
+ m_pApp->m_CmdSequences.Add(pSeq);
+
+ AddSequenceToList(-1, pSeq);
+}
+
+void CRunMapCfgDlg::OnRemove()
+{
+ int iSel = m_cConfigurations.GetCurSel();
+ if(iSel == LB_ERR)
+ return; // nothing selected
+ if(AfxMessageBox("Do you want to remove this configuration?",
+ MB_YESNO) == IDNO)
+ return; // don't want to
+ CCommandSequence *pSeq = (CCommandSequence*)
+ m_cConfigurations.GetItemDataPtr(iSel);
+
+ // find it in the app's array
+ for(int i = 0; i < m_pApp->m_CmdSequences.GetSize(); i++)
+ {
+ if(pSeq == m_pApp->m_CmdSequences[i])
+ {
+ delete pSeq;
+ m_pApp->m_CmdSequences.RemoveAt(i);
+ m_cConfigurations.DeleteString(iSel);
+ return; // done
+ }
+ }
+
+ // shouldn't reach here -
+ Assert(0);
+}
+
+void CRunMapCfgDlg::OnRename()
+{
+ int iSel = m_cConfigurations.GetCurSel();
+ if(iSel == LB_ERR)
+ return; // nothing selected
+ CCommandSequence *pSeq = (CCommandSequence*)
+ m_cConfigurations.GetItemDataPtr(iSel);
+
+ CStrDlg dlg(0, pSeq->m_szName, "Name:", "Rename Configuration");
+ if(dlg.DoModal() == IDCANCEL)
+ return;
+
+ strcpy(pSeq->m_szName, dlg.m_string);
+
+ m_cConfigurations.DeleteString(iSel);
+ AddSequenceToList(iSel, pSeq);
+}
+
+BOOL CRunMapCfgDlg::OnInitDialog()
+{
+ CDialog::OnInitDialog();
+
+ // add the configurations into the list
+ int iSize = m_pApp->m_CmdSequences.GetSize();
+ for(int i = 0; i < iSize; i++)
+ {
+ CCommandSequence *pSeq = m_pApp->m_CmdSequences[i];
+ int iIndex = m_cConfigurations.AddString(pSeq->m_szName);
+ m_cConfigurations.SetItemDataPtr(iIndex, PVOID(pSeq));
+ }
+
+ return TRUE;
+}
+
+void CRunMapCfgDlg::OnCopy()
+{
+ int iSel = m_cConfigurations.GetCurSel();
+ if(iSel == LB_ERR)
+ return; // nothing selected
+
+ // add a new sequence
+ CStrDlg dlg(0, "", "Name:", "Copy Configuration");
+ if(dlg.DoModal() == IDCANCEL)
+ return;
+
+ // add it to the list in the app
+ CCommandSequence *pSeq = new CCommandSequence;
+ strcpy(pSeq->m_szName, dlg.m_string);
+ m_pApp->m_CmdSequences.Add(pSeq);
+
+ CCommandSequence *pSrcSeq = (CCommandSequence*)
+ m_cConfigurations.GetItemDataPtr(iSel);
+
+ pSeq->m_Commands.Append(pSrcSeq->m_Commands);
+
+ AddSequenceToList(-1, pSeq);
+}