/* ** AreaEditor - a program for editing SMAUG and ROM area files. ** Author: Nick Gammon ** http://www.gammon.com.au/ ** See Copyright Notice at the end of AreaEditor.h */ // RenumberDlg.cpp : implementation file // #include "stdafx.h" #include "AreaEditor.h" #include "RenumberDlg.h" #include "defaults.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRenumberDlg dialog CRenumberDlg::CRenumberDlg(CWnd* pParent /*=NULL*/) : CDialog(CRenumberDlg::IDD, pParent) { //{{AFX_DATA_INIT(CRenumberDlg) m_bMobCompact = FALSE; m_iMobCount = 0; m_iMobHighVnum = 0; m_iMobLowVnum = 0; m_iNewHighMobVnum = 0; m_iNewHighObjVnum = 0; m_iNewHighRoomVnum = 0; m_iNewLowMobVnum = 0; m_iNewLowObjVnum = 0; m_iNewLowRoomVnum = 0; m_bObjCompact = FALSE; m_iObjCount = 0; m_iObjHighVnum = 0; m_iObjLowVnum = 0; m_bRoomCompact = FALSE; m_iRoomCount = 0; m_iRoomHighVnum = 0; m_iRoomLowVnum = 0; //}}AFX_DATA_INIT } void CRenumberDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRenumberDlg) DDX_Control(pDX, IDC_NEW_HIGH_ROOM_VNUM, m_ctlNewHighRoomVnum); DDX_Control(pDX, IDC_NEW_HIGH_OBJECT_VNUM, m_ctlNewHighObjVnum); DDX_Control(pDX, IDC_NEW_HIGH_MOB_VNUM, m_ctlNewHighMobVnum); DDX_Control(pDX, IDC_NEW_LOW_MOB_VNUM, m_ctlNewLowMobVnum); DDX_Control(pDX, IDC_NEW_LOW_ROOM_VNUM, m_ctlNewLowRoomVnum); DDX_Control(pDX, IDC_NEW_LOW_OBJECT_VNUM, m_ctlNewLowObjVnum); DDX_Check(pDX, IDC_MOB_COMPACT, m_bMobCompact); DDX_Text(pDX, IDC_MOB_COUNT, m_iMobCount); DDX_Text(pDX, IDC_MOB_HIGH_VNUM, m_iMobHighVnum); DDX_Text(pDX, IDC_MOB_LOW_VNUM, m_iMobLowVnum); DDX_Text(pDX, IDC_NEW_HIGH_MOB_VNUM, m_iNewHighMobVnum); DDX_Text(pDX, IDC_NEW_HIGH_OBJECT_VNUM, m_iNewHighObjVnum); DDX_Text(pDX, IDC_NEW_HIGH_ROOM_VNUM, m_iNewHighRoomVnum); DDX_Check(pDX, IDC_OBJECT_COMPACT, m_bObjCompact); DDX_Text(pDX, IDC_OBJECT_COUNT, m_iObjCount); DDX_Text(pDX, IDC_OBJECT_HIGH_VNUM, m_iObjHighVnum); DDX_Text(pDX, IDC_OBJECT_LOW_VNUM, m_iObjLowVnum); DDX_Check(pDX, IDC_ROOM_COMPACT, m_bRoomCompact); DDX_Text(pDX, IDC_ROOM_COUNT, m_iRoomCount); DDX_Text(pDX, IDC_ROOM_HIGH_VNUM, m_iRoomHighVnum); DDX_Text(pDX, IDC_ROOM_LOW_VNUM, m_iRoomLowVnum); //}}AFX_DATA_MAP DDX_Text(pDX, IDC_NEW_LOW_MOB_VNUM, m_iNewLowMobVnum); DDV_MinMaxInt(pDX, m_iNewLowMobVnum, 1, iMaxVnum); DDX_Text(pDX, IDC_NEW_LOW_OBJECT_VNUM, m_iNewLowObjVnum); DDV_MinMaxInt(pDX, m_iNewLowObjVnum, 1, iMaxVnum); DDX_Text(pDX, IDC_NEW_LOW_ROOM_VNUM, m_iNewLowRoomVnum); DDV_MinMaxInt(pDX, m_iNewLowRoomVnum, 1, iMaxVnum); if (!pDX->m_bSaveAndValidate) { OnChangeNewLowMobVnum (); OnChangeNewLowObjectVnum (); OnChangeNewLowRoomVnum (); } } BEGIN_MESSAGE_MAP(CRenumberDlg, CDialog) //{{AFX_MSG_MAP(CRenumberDlg) ON_EN_CHANGE(IDC_NEW_LOW_MOB_VNUM, OnChangeNewLowMobVnum) ON_EN_CHANGE(IDC_NEW_LOW_OBJECT_VNUM, OnChangeNewLowObjectVnum) ON_EN_CHANGE(IDC_NEW_LOW_ROOM_VNUM, OnChangeNewLowRoomVnum) ON_BN_CLICKED(IDC_MOB_COMPACT, OnMobCompact) ON_BN_CLICKED(IDC_OBJECT_COMPACT, OnObjectCompact) ON_BN_CLICKED(IDC_ROOM_COMPACT, OnRoomCompact) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRenumberDlg message handlers void CRenumberDlg::OnChangeNewLowMobVnum() { CString strVnum; BOOL bCompact = IsDlgButtonChecked (IDC_MOB_COMPACT); int iNewLowVnum; int iDifference; int iNewHighVnum; // get amended text of window m_ctlNewLowMobVnum.GetWindowText(strVnum); iNewLowVnum = atoi (strVnum); iDifference = iNewLowVnum - m_iMobLowVnum; if (bCompact) iNewHighVnum = iNewLowVnum + m_iMobCount - 1; else iNewHighVnum = m_iMobHighVnum + iDifference; m_ctlNewHighMobVnum.SetWindowText (CFormat ("%i", iNewHighVnum)); } void CRenumberDlg::OnChangeNewLowObjectVnum() { CString strVnum; BOOL bCompact = IsDlgButtonChecked (IDC_OBJECT_COMPACT); int iNewLowVnum; int iDifference; int iNewHighVnum; // get amended text of window m_ctlNewLowObjVnum.GetWindowText(strVnum); iNewLowVnum = atoi (strVnum); iDifference = iNewLowVnum - m_iObjLowVnum; if (bCompact) iNewHighVnum = iNewLowVnum + m_iObjCount - 1; else iNewHighVnum = m_iObjHighVnum + iDifference; m_ctlNewHighObjVnum.SetWindowText (CFormat ("%i", iNewHighVnum)); } void CRenumberDlg::OnChangeNewLowRoomVnum() { CString strVnum; BOOL bCompact = IsDlgButtonChecked (IDC_ROOM_COMPACT); int iNewLowVnum; int iDifference; int iNewHighVnum; // get amended text of window m_ctlNewLowRoomVnum.GetWindowText(strVnum); iNewLowVnum = atoi (strVnum); iDifference = iNewLowVnum - m_iRoomLowVnum; if (bCompact) iNewHighVnum = iNewLowVnum + m_iRoomCount - 1; else iNewHighVnum = m_iRoomHighVnum + iDifference; m_ctlNewHighRoomVnum.SetWindowText (CFormat ("%i", iNewHighVnum)); } void CRenumberDlg::OnMobCompact() { OnChangeNewLowMobVnum (); } void CRenumberDlg::OnObjectCompact() { OnChangeNewLowObjectVnum (); } void CRenumberDlg::OnRoomCompact() { OnChangeNewLowRoomVnum (); }