// PageDuengunEffect.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "PageDuengunEffect.h" #include "MainFrm.h" #include "WorldCreatorView.h" #include "DlgDuenEffect.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPageDuengunEffect property page IMPLEMENT_DYNCREATE(CPageDuengunEffect, CPropertyPage) CPageDuengunEffect::CPageDuengunEffect() : CPropertyPage(CPageDuengunEffect::IDD) { //{{AFX_DATA_INIT(CPageDuengunEffect) m_bToggle = TRUE; m_bPick = FALSE; //}}AFX_DATA_INIT } CPageDuengunEffect::~CPageDuengunEffect() { } void CPageDuengunEffect::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPageDuengunEffect) DDX_Control(pDX, IDC_LIST1, m_ctrlEffectList); DDX_Check(pDX, IDC_CHECK1, m_bToggle); DDX_Check(pDX, IDC_CHECK2, m_bPick); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPageDuengunEffect, CPropertyPage) //{{AFX_MSG_MAP(CPageDuengunEffect) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_CHECK1, OnToggle) ON_BN_CLICKED(IDC_CHECK2, OnCheck2) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPageDuengunEffect message handlers /* void CPageDuengunEffect::OnEffectsave() { // TODO: Add your control notification handler code here } */ BOOL CPageDuengunEffect::OnInitDialog() { CPropertyPage::OnInitDialog(); DWORD dwStyle; dwStyle = m_ctrlEffectList.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0 ,0); dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ; m_ctrlEffectList.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0,dwStyle ); m_ctrlEffectList.InsertColumn(0,"±Í¼Ó Leaf",LVCFMT_LEFT,70); m_ctrlEffectList.InsertColumn(1,"Effect Name", LVCFMT_LEFT,70); m_ctrlEffectList.InsertColumn(2,"Delay Time",LVCFMT_LEFT,70); // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } // MouseInterface : 97 ->Duengun Effect /* void CPageDuengunEffect::OnCheck1() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(m_BInput) { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->ChangeMouseInterface(97); } else { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->ChangeMouseInterface(-1); } } */ void CPageDuengunEffect::OnButton1() { // TODO: Add your control notification handler code here if((CSceneManager::m_RBspSceneManager.m_pCurrentBspScene != NULL) && (CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_iRBspLeafIndex != -1)) { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); D3DXMATRIX matView; av->m_SceneManager->GetDevice()->GetTransform(D3DTS_VIEW,&matView); D3DXMatrixInverse(&matView,NULL,&matView); vector3 vecPos = vector3(matView._41,matView._42,matView._43); EditDialog.m_strPosition.Format("X : %f Y : %f Z : %f",vecPos.x,vecPos.y,vecPos.z); EditDialog.m_iLeafIndex = CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_iRBspLeafIndex; EditDialog.DoModal(); RBspScene *pScene = CSceneManager::m_RBspSceneManager.m_pCurrentBspScene; int iLeaf = CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_iRBspLeafIndex; D3DXVECTOR3 vecEffect = D3DXVECTOR3(vecPos.x,vecPos.y,vecPos.z); pScene->m_pLeafExs[iLeaf].InputEventEffect((EditDialog.m_strEffectName.LockBuffer()),vecEffect,EditDialog.m_fDelay); // Insert Item LV_ITEM item; item.iItem = m_ctrlEffectList.GetItemCount(); item.mask = LVIF_TEXT; item.iSubItem = 0; CString Tmp; Tmp.Format("%d",iLeaf); item.pszText = Tmp.LockBuffer(); m_ctrlEffectList.InsertItem(&item); m_ctrlEffectList.SetItemText(item.iItem,1,EditDialog.m_strEffectName); Tmp.Format("%f",EditDialog.m_fDelay); m_ctrlEffectList.SetItemText(item.iItem,2,Tmp); } else { MessageBox("Bsp ³»ºÎ°¡ ¾Æ´Ï°Å³ª Leaf ³ëµå°¡ À߸øµÇ¾ú½À´Ï´Ù."); } } void CPageDuengunEffect::OnToggle() { // TODO: Add your control notification handler code here m_bToggle = (m_bToggle == TRUE) ? FALSE : TRUE; CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_bVisEffectBox = (m_bToggle == TRUE) ? true : false; UpdateData(FALSE); } void CPageDuengunEffect::OnCheck2() { // TODO: Add your control notification handler code here m_bPick = (m_bPick == TRUE) ? FALSE : TRUE; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; if(m_bPick == TRUE) { mf->m_PickMode = 97; } else { mf->m_PickMode = -1; } }