/* ** 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 */ // MobileSpeaksPage.cpp : implementation file // #include "stdafx.h" #include "AreaEditor.h" #include "AreaEditorDoc.h" #include "MobileSpeaksPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMobileSpeaksPage dialog CMobileSpeaksPage::CMobileSpeaksPage(CWnd* pParent /*=NULL*/) : CDialog(CMobileSpeaksPage::IDD, pParent) { //{{AFX_DATA_INIT(CMobileSpeaksPage) m_ancient = FALSE; m_clan = FALSE; m_common = FALSE; m_dragon = FALSE; m_dwarven = FALSE; m_elven = FALSE; m_gith = FALSE; m_goblin = FALSE; m_god = FALSE; m_halfling = FALSE; m_insectoid = FALSE; m_magical = FALSE; m_mammal = FALSE; m_ogre = FALSE; m_orcish = FALSE; m_pixie = FALSE; m_reptile = FALSE; m_rodent = FALSE; m_spiritual = FALSE; m_trollish = FALSE; m_spk_ancient = FALSE; m_spk_clan = FALSE; m_spk_common = FALSE; m_spk_dragon = FALSE; m_spk_dwarven = FALSE; m_spk_elven = FALSE; m_spk_gith = FALSE; m_spk_goblin = FALSE; m_spk_god = FALSE; m_spk_halfling = FALSE; m_spk_insectoid = FALSE; m_spk_magical = FALSE; m_spk_mammal = FALSE; m_spk_ogre = FALSE; m_spk_orcish = FALSE; m_spk_pixie = FALSE; m_spk_reptile = FALSE; m_spk_rodent = FALSE; m_spk_spiritual = FALSE; m_spk_trollish = FALSE; //}}AFX_DATA_INIT m_mob = NULL; } #undef LOAD_SPEAKS_FLAG #define LOAD_SPEAKS_FLAG(field, flag) \ field = IS_SET (m_mob->speaks, flag); #undef LOAD_SPEAKING_FLAG #define LOAD_SPEAKING_FLAG(field, flag) \ field = IS_SET (m_mob->speaking, flag); #undef UNLOAD_SPEAKS_FLAG #define UNLOAD_SPEAKS_FLAG(field, flag) \ if (field != IS_SET (m_mob->speaks, flag)) bChanged = true; \ if (field) \ SET_BIT (m_mob->speaks, flag);\ else \ REMOVE_BIT (m_mob->speaks, flag) #undef UNLOAD_SPEAKING_FLAG #define UNLOAD_SPEAKING_FLAG(field, flag) \ if (field != IS_SET (m_mob->speaking, flag)) bChanged = true; \ if (field) \ SET_BIT (m_mob->speaking, flag);\ else \ REMOVE_BIT (m_mob->speaking, flag) void CMobileSpeaksPage::DoDataExchange(CDataExchange* pDX) { bool bChanged = false; if (!pDX->m_bSaveAndValidate) { LOAD_SPEAKS_FLAG (m_spk_ancient, LANG_ANCIENT); LOAD_SPEAKS_FLAG (m_spk_clan, LANG_CLAN); LOAD_SPEAKS_FLAG (m_spk_common, LANG_COMMON); LOAD_SPEAKS_FLAG (m_spk_dragon, LANG_DRAGON); LOAD_SPEAKS_FLAG (m_spk_dwarven, LANG_DWARVEN); LOAD_SPEAKS_FLAG (m_spk_elven, LANG_ELVEN); LOAD_SPEAKS_FLAG (m_spk_gith, LANG_GITH); LOAD_SPEAKS_FLAG (m_spk_goblin, LANG_GOBLIN); LOAD_SPEAKS_FLAG (m_spk_god, LANG_GOD); LOAD_SPEAKS_FLAG (m_spk_halfling, LANG_HALFLING); LOAD_SPEAKS_FLAG (m_spk_insectoid, LANG_INSECTOID); LOAD_SPEAKS_FLAG (m_spk_magical, LANG_MAGICAL); LOAD_SPEAKS_FLAG (m_spk_mammal, LANG_MAMMAL); LOAD_SPEAKS_FLAG (m_spk_ogre, LANG_OGRE); LOAD_SPEAKS_FLAG (m_spk_orcish, LANG_ORCISH); LOAD_SPEAKS_FLAG (m_spk_pixie, LANG_PIXIE); LOAD_SPEAKS_FLAG (m_spk_reptile, LANG_REPTILE); LOAD_SPEAKS_FLAG (m_spk_rodent, LANG_RODENT); LOAD_SPEAKS_FLAG (m_spk_spiritual, LANG_SPIRITUAL); LOAD_SPEAKS_FLAG (m_spk_trollish, LANG_TROLLISH); LOAD_SPEAKING_FLAG (m_ancient, LANG_ANCIENT); LOAD_SPEAKING_FLAG (m_clan, LANG_CLAN); LOAD_SPEAKING_FLAG (m_common, LANG_COMMON); LOAD_SPEAKING_FLAG (m_dragon, LANG_DRAGON); LOAD_SPEAKING_FLAG (m_dwarven, LANG_DWARVEN); LOAD_SPEAKING_FLAG (m_elven, LANG_ELVEN); LOAD_SPEAKING_FLAG (m_gith, LANG_GITH); LOAD_SPEAKING_FLAG (m_goblin, LANG_GOBLIN); LOAD_SPEAKING_FLAG (m_god, LANG_GOD); LOAD_SPEAKING_FLAG (m_halfling, LANG_HALFLING); LOAD_SPEAKING_FLAG (m_insectoid, LANG_INSECTOID); LOAD_SPEAKING_FLAG (m_magical, LANG_MAGICAL); LOAD_SPEAKING_FLAG (m_mammal, LANG_MAMMAL); LOAD_SPEAKING_FLAG (m_ogre, LANG_OGRE); LOAD_SPEAKING_FLAG (m_orcish, LANG_ORCISH); LOAD_SPEAKING_FLAG (m_pixie, LANG_PIXIE); LOAD_SPEAKING_FLAG (m_reptile, LANG_REPTILE); LOAD_SPEAKING_FLAG (m_rodent, LANG_RODENT); LOAD_SPEAKING_FLAG (m_spiritual, LANG_SPIRITUAL); LOAD_SPEAKING_FLAG (m_trollish, LANG_TROLLISH); } CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMobileSpeaksPage) DDX_Check(pDX, IDC_ANCIENT, m_ancient); DDX_Check(pDX, IDC_CLAN, m_clan); DDX_Check(pDX, IDC_COMMON, m_common); DDX_Check(pDX, IDC_DRAGON, m_dragon); DDX_Check(pDX, IDC_DWARVEN, m_dwarven); DDX_Check(pDX, IDC_ELVEN, m_elven); DDX_Check(pDX, IDC_GITH, m_gith); DDX_Check(pDX, IDC_GOBLIN, m_goblin); DDX_Check(pDX, IDC_GOD, m_god); DDX_Check(pDX, IDC_HALFLING, m_halfling); DDX_Check(pDX, IDC_INSECTOID, m_insectoid); DDX_Check(pDX, IDC_MAGICAL, m_magical); DDX_Check(pDX, IDC_MAMMAL, m_mammal); DDX_Check(pDX, IDC_OGRE, m_ogre); DDX_Check(pDX, IDC_ORCISH, m_orcish); DDX_Check(pDX, IDC_PIXIE, m_pixie); DDX_Check(pDX, IDC_REPTILE, m_reptile); DDX_Check(pDX, IDC_RODENT, m_rodent); DDX_Check(pDX, IDC_SPIRITUAL, m_spiritual); DDX_Check(pDX, IDC_TROLLISH, m_trollish); DDX_Check(pDX, IDC_ANCIENT2, m_spk_ancient); DDX_Check(pDX, IDC_CLAN2, m_spk_clan); DDX_Check(pDX, IDC_COMMON2, m_spk_common); DDX_Check(pDX, IDC_DRAGON2, m_spk_dragon); DDX_Check(pDX, IDC_DWARVEN2, m_spk_dwarven); DDX_Check(pDX, IDC_ELVEN2, m_spk_elven); DDX_Check(pDX, IDC_GITH2, m_spk_gith); DDX_Check(pDX, IDC_GOBLIN2, m_spk_goblin); DDX_Check(pDX, IDC_GOD2, m_spk_god); DDX_Check(pDX, IDC_HALFLING2, m_spk_halfling); DDX_Check(pDX, IDC_INSECTOID2, m_spk_insectoid); DDX_Check(pDX, IDC_MAGICAL2, m_spk_magical); DDX_Check(pDX, IDC_MAMMAL2, m_spk_mammal); DDX_Check(pDX, IDC_OGRE2, m_spk_ogre); DDX_Check(pDX, IDC_ORCISH2, m_spk_orcish); DDX_Check(pDX, IDC_PIXIE2, m_spk_pixie); DDX_Check(pDX, IDC_REPTILE2, m_spk_reptile); DDX_Check(pDX, IDC_RODENT2, m_spk_rodent); DDX_Check(pDX, IDC_SPIRITUAL2, m_spk_spiritual); DDX_Check(pDX, IDC_TROLLISH2, m_spk_trollish); //}}AFX_DATA_MAP if (pDX->m_bSaveAndValidate) { UNLOAD_SPEAKS_FLAG (m_spk_ancient, LANG_ANCIENT); UNLOAD_SPEAKS_FLAG (m_spk_clan, LANG_CLAN); UNLOAD_SPEAKS_FLAG (m_spk_common, LANG_COMMON); UNLOAD_SPEAKS_FLAG (m_spk_dragon, LANG_DRAGON); UNLOAD_SPEAKS_FLAG (m_spk_dwarven, LANG_DWARVEN); UNLOAD_SPEAKS_FLAG (m_spk_elven, LANG_ELVEN); UNLOAD_SPEAKS_FLAG (m_spk_gith, LANG_GITH); UNLOAD_SPEAKS_FLAG (m_spk_goblin, LANG_GOBLIN); UNLOAD_SPEAKS_FLAG (m_spk_god, LANG_GOD); UNLOAD_SPEAKS_FLAG (m_spk_halfling, LANG_HALFLING); UNLOAD_SPEAKS_FLAG (m_spk_insectoid, LANG_INSECTOID); UNLOAD_SPEAKS_FLAG (m_spk_magical, LANG_MAGICAL); UNLOAD_SPEAKS_FLAG (m_spk_mammal, LANG_MAMMAL); UNLOAD_SPEAKS_FLAG (m_spk_ogre, LANG_OGRE); UNLOAD_SPEAKS_FLAG (m_spk_orcish, LANG_ORCISH); UNLOAD_SPEAKS_FLAG (m_spk_pixie, LANG_PIXIE); UNLOAD_SPEAKS_FLAG (m_spk_reptile, LANG_REPTILE); UNLOAD_SPEAKS_FLAG (m_spk_rodent, LANG_RODENT); UNLOAD_SPEAKS_FLAG (m_spk_spiritual, LANG_SPIRITUAL); UNLOAD_SPEAKS_FLAG (m_spk_trollish, LANG_TROLLISH); UNLOAD_SPEAKING_FLAG (m_ancient, LANG_ANCIENT); UNLOAD_SPEAKING_FLAG (m_clan, LANG_CLAN); UNLOAD_SPEAKING_FLAG (m_common, LANG_COMMON); UNLOAD_SPEAKING_FLAG (m_dragon, LANG_DRAGON); UNLOAD_SPEAKING_FLAG (m_dwarven, LANG_DWARVEN); UNLOAD_SPEAKING_FLAG (m_elven, LANG_ELVEN); UNLOAD_SPEAKING_FLAG (m_gith, LANG_GITH); UNLOAD_SPEAKING_FLAG (m_goblin, LANG_GOBLIN); UNLOAD_SPEAKING_FLAG (m_god, LANG_GOD); UNLOAD_SPEAKING_FLAG (m_halfling, LANG_HALFLING); UNLOAD_SPEAKING_FLAG (m_insectoid, LANG_INSECTOID); UNLOAD_SPEAKING_FLAG (m_magical, LANG_MAGICAL); UNLOAD_SPEAKING_FLAG (m_mammal, LANG_MAMMAL); UNLOAD_SPEAKING_FLAG (m_ogre, LANG_OGRE); UNLOAD_SPEAKING_FLAG (m_orcish, LANG_ORCISH); UNLOAD_SPEAKING_FLAG (m_pixie, LANG_PIXIE); UNLOAD_SPEAKING_FLAG (m_reptile, LANG_REPTILE); UNLOAD_SPEAKING_FLAG (m_rodent, LANG_RODENT); UNLOAD_SPEAKING_FLAG (m_spiritual, LANG_SPIRITUAL); UNLOAD_SPEAKING_FLAG (m_trollish, LANG_TROLLISH); if (bChanged) m_mob->m_pDoc->SetModifiedFlag (); } } BEGIN_MESSAGE_MAP(CMobileSpeaksPage, CDialog) //{{AFX_MSG_MAP(CMobileSpeaksPage) // NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMobileSpeaksPage message handlers