/* ** 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 */ // MobileDefensesPage.cpp : implementation file // #include "stdafx.h" #include "AreaEditor.h" #include "AreaEditorDoc.h" #include "MobileDefensesPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMobileDefensesPage dialog CMobileDefensesPage::CMobileDefensesPage(CWnd* pParent /*=NULL*/) : CDialog(CMobileDefensesPage::IDD, pParent) { //{{AFX_DATA_INIT(CMobileDefensesPage) m_bless = FALSE; m_curecritical = FALSE; m_curelight = FALSE; m_cureserious = FALSE; m_disarm = FALSE; m_dispelevil = FALSE; m_dispelmagic = FALSE; m_dodge = FALSE; m_fireshield = FALSE; m_grip = FALSE; m_heal = FALSE; m_iceshield = FALSE; m_monsum1 = FALSE; m_monsum2 = FALSE; m_monsum4 = FALSE; m_monsum3 = FALSE; m_parry = FALSE; m_sanctuary = FALSE; m_shield = FALSE; m_shockshield = FALSE; m_stoneskin = FALSE; m_teleport = FALSE; //}}AFX_DATA_INIT m_mob = NULL; } #undef LOAD_FLAG #define LOAD_FLAG(field, flag) \ field = IS_SET (m_mob->defenses, flag); #undef UNLOAD_FLAG #define UNLOAD_FLAG(field, flag) \ if (field != IS_SET (m_mob->defenses, flag)) bChanged = true; \ if (field) \ SET_BIT (m_mob->defenses, flag);\ else \ REMOVE_BIT (m_mob->defenses, flag) void CMobileDefensesPage::DoDataExchange(CDataExchange* pDX) { bool bChanged = false; if (!pDX->m_bSaveAndValidate) { LOAD_FLAG (m_bless, DFND_BLESS); LOAD_FLAG (m_curecritical, DFND_CURECRITICAL); LOAD_FLAG (m_curelight, DFND_CURELIGHT); LOAD_FLAG (m_cureserious, DFND_CURESERIOUS); LOAD_FLAG (m_disarm, DFND_DISARM); LOAD_FLAG (m_dispelevil, DFND_DISPELEVIL); LOAD_FLAG (m_dispelmagic, DFND_DISPELMAGIC); LOAD_FLAG (m_dodge, DFND_DODGE); LOAD_FLAG (m_fireshield, DFND_FIRESHIELD); LOAD_FLAG (m_grip, DFND_GRIP); LOAD_FLAG (m_heal, DFND_HEAL); LOAD_FLAG (m_iceshield, DFND_ICESHIELD); LOAD_FLAG (m_monsum1, DFND_MONSUM1); LOAD_FLAG (m_monsum2, DFND_MONSUM2); LOAD_FLAG (m_monsum4, DFND_MONSUM4); LOAD_FLAG (m_monsum3, DFND_MONSUM3); LOAD_FLAG (m_parry, DFND_PARRY); LOAD_FLAG (m_sanctuary, DFND_SANCTUARY); LOAD_FLAG (m_shield, DFND_SHIELD); LOAD_FLAG (m_shockshield, DFND_SHOCKSHIELD); LOAD_FLAG (m_stoneskin, DFND_STONESKIN); LOAD_FLAG (m_teleport, DFND_TELEPORT); } CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMobileDefensesPage) DDX_Check(pDX, IDC_BLESS, m_bless); DDX_Check(pDX, IDC_CURECRITICAL, m_curecritical); DDX_Check(pDX, IDC_CURELIGHT, m_curelight); DDX_Check(pDX, IDC_CURESERIOUS, m_cureserious); DDX_Check(pDX, IDC_DISARM, m_disarm); DDX_Check(pDX, IDC_DISPELEVIL, m_dispelevil); DDX_Check(pDX, IDC_DISPELMAGIC, m_dispelmagic); DDX_Check(pDX, IDC_DODGE, m_dodge); DDX_Check(pDX, IDC_FIRESHIELD, m_fireshield); DDX_Check(pDX, IDC_GRIP, m_grip); DDX_Check(pDX, IDC_HEAL, m_heal); DDX_Check(pDX, IDC_ICESHIELD, m_iceshield); DDX_Check(pDX, IDC_MONSUM1, m_monsum1); DDX_Check(pDX, IDC_MONSUM2, m_monsum2); DDX_Check(pDX, IDC_MONSUM4, m_monsum4); DDX_Check(pDX, IDC_MONSUM3, m_monsum3); DDX_Check(pDX, IDC_PARRY, m_parry); DDX_Check(pDX, IDC_SANCTUARY, m_sanctuary); DDX_Check(pDX, IDC_SHIELD, m_shield); DDX_Check(pDX, IDC_SHOCKSHIELD, m_shockshield); DDX_Check(pDX, IDC_STONESKIN, m_stoneskin); DDX_Check(pDX, IDC_TELEPORT, m_teleport); //}}AFX_DATA_MAP if (pDX->m_bSaveAndValidate) { UNLOAD_FLAG (m_bless, DFND_BLESS); UNLOAD_FLAG (m_curecritical, DFND_CURECRITICAL); UNLOAD_FLAG (m_curelight, DFND_CURELIGHT); UNLOAD_FLAG (m_cureserious, DFND_CURESERIOUS); UNLOAD_FLAG (m_disarm, DFND_DISARM); UNLOAD_FLAG (m_dispelevil, DFND_DISPELEVIL); UNLOAD_FLAG (m_dispelmagic, DFND_DISPELMAGIC); UNLOAD_FLAG (m_dodge, DFND_DODGE); UNLOAD_FLAG (m_fireshield, DFND_FIRESHIELD); UNLOAD_FLAG (m_grip, DFND_GRIP); UNLOAD_FLAG (m_heal, DFND_HEAL); UNLOAD_FLAG (m_iceshield, DFND_ICESHIELD); UNLOAD_FLAG (m_monsum1, DFND_MONSUM1); UNLOAD_FLAG (m_monsum2, DFND_MONSUM2); UNLOAD_FLAG (m_monsum4, DFND_MONSUM4); UNLOAD_FLAG (m_monsum3, DFND_MONSUM3); UNLOAD_FLAG (m_parry, DFND_PARRY); UNLOAD_FLAG (m_sanctuary, DFND_SANCTUARY); UNLOAD_FLAG (m_shield, DFND_SHIELD); UNLOAD_FLAG (m_shockshield, DFND_SHOCKSHIELD); UNLOAD_FLAG (m_stoneskin, DFND_STONESKIN); UNLOAD_FLAG (m_teleport, DFND_TELEPORT); if (bChanged) m_mob->m_pDoc->SetModifiedFlag (); } } BEGIN_MESSAGE_MAP(CMobileDefensesPage, CDialog) //{{AFX_MSG_MAP(CMobileDefensesPage) // NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMobileDefensesPage message handlers