// PageDuengunAObject.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "PageDuengunAObject.h" #include "MainFrm.h" #include "WorldCreatorView.h" #include "DlgDuenAObject.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPageDuengunAObject property page IMPLEMENT_DYNCREATE(CPageDuengunAObject, CPropertyPage) CPageDuengunAObject::CPageDuengunAObject() : CPropertyPage(CPageDuengunAObject::IDD) { //{{AFX_DATA_INIT(CPageDuengunAObject) m_bToggle = FALSE; m_bPick = FALSE; //}}AFX_DATA_INIT } CPageDuengunAObject::~CPageDuengunAObject() { } void CPageDuengunAObject::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPageDuengunAObject) DDX_Control(pDX, IDC_LIST1, m_ctrlAObjectList); DDX_Check(pDX, IDC_CHECK1, m_bToggle); DDX_Check(pDX, IDC_PICK, m_bPick); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPageDuengunAObject, CPropertyPage) //{{AFX_MSG_MAP(CPageDuengunAObject) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_PICK, OnPick) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPageDuengunAObject message handlers // 96 : Ani Object /*void CPageDuengunAObject::OnAniobject() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(m_BInsert) { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->ChangeMouseInterface(96); } else { CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->ChangeMouseInterface(-1); } } */ BOOL CPageDuengunAObject::OnInitDialog() { CPropertyPage::OnInitDialog(); // TODO: Add extra initialization here DWORD dwStyle; dwStyle = m_ctrlAObjectList.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0 ,0); dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ; m_ctrlAObjectList.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0,dwStyle ); m_ctrlAObjectList.InsertColumn(0,"±Í¼Ó Leaf",LVCFMT_LEFT,70); m_ctrlAObjectList.InsertColumn(1,"Object Name", LVCFMT_LEFT,70); m_ctrlAObjectList.InsertColumn(2,"Loop Num", LVCFMT_LEFT,70); m_ctrlAObjectList.InsertColumn(3,"Delay Time",LVCFMT_LEFT,70); return TRUE; } void CPageDuengunAObject::OnCheck1() { // TODO: Add your control notification handler code here m_bToggle = (m_bToggle == TRUE) ? FALSE : TRUE; CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_bVisAObjectBox = (m_bToggle == TRUE) ? true : false; UpdateData(FALSE); } void CPageDuengunAObject::OnButton1() { // TODO: Add your control notification handler code here if((CSceneManager::m_RBspSceneManager.m_pCurrentBspScene != NULL) && (CSceneManager::m_RBspSceneManager.m_pCurrentBspScene->m_iRBspLeafIndex != -1)) { CDlgDuenAObject EditDialog; 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_iLeaf = 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); //InputEventSound((EditDialog.m_strEffectName.LockBuffer()),vecEffect,EditDialog.m_fDelay); pScene->m_pLeafExs[iLeaf].InputEventObject(NULL,EditDialog.m_iLoopNum,EditDialog.m_fDelay); // Insert Item LV_ITEM item; item.iItem = m_ctrlAObjectList.GetItemCount(); item.mask = LVIF_TEXT; item.iSubItem = 0; CString Tmp; Tmp.Format("%d",iLeaf); item.pszText = Tmp.LockBuffer(); m_ctrlAObjectList.InsertItem(&item); m_ctrlAObjectList.SetItemText(item.iItem,1,EditDialog.m_strObject); Tmp.Format("%d",EditDialog.m_iLoopNum); m_ctrlAObjectList.SetItemText(item.iItem,2,Tmp); Tmp.Format("%f",EditDialog.m_fDelay); m_ctrlAObjectList.SetItemText(item.iItem,3,Tmp); } else { MessageBox("Bsp ³»ºÎ°¡ ¾Æ´Ï°Å³ª Leaf ³ëµå°¡ À߸øµÇ¾ú½À´Ï´Ù."); } } void CPageDuengunAObject::OnPick() { // 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 = 96; } else { mf->m_PickMode = -1; } }