// DlgEffect.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "DlgEffect.h" #include "MainFrm.h" #include "WorldCreatorView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgEffect dialog CDlgEffect::CDlgEffect(CWnd* pParent /*=NULL*/) : CDialog(CDlgEffect::IDD, pParent) { //{{AFX_DATA_INIT(CDlgEffect) m_FadeIn = 0.0f; m_FadeOut = 0.0f; m_FadeInSpeed = 0.0f; m_A1 = 0.0f; m_A2 = 0.0f; m_A3 = 0.0f; m_A4 = 0.0f; m_B1 = 0.0f; m_B2 = 0.0f; m_B3 = 0.0f; m_B4 = 0.0f; m_G1 = 0.0f; m_G2 = 0.0f; m_G3 = 0.0f; m_G4 = 0.0f; m_Gx = 0.0f; m_Gy = 0.0f; m_Gz = 0.0f; m_ImX = 0.0f; m_ImY = 0.0f; m_ImZ = 0.0f; m_R1 = 0.0f; m_R2 = 0.0f; m_R3 = 0.0f; m_R4 = 0.0f; m_Rad = 0.0f; m_ParNum = 0; m_Size = 0.0; m_Center = 0.0; m_switch = FALSE; m_SwitchRad = 0.0; m_Vot = 0.0; m_Loop = FALSE; m_Fix = FALSE; m_RandAni = FALSE; m_RandMax = 0.0; m_RandMin = 0.0; m_EffName = _T(""); m_BoidName = _T(""); m_BoidNum = 0; m_BoidSpeed = 0.0f; m_BoidRange = 0.0f; m_WavePointNum = 0; m_WaveLayerUpNum = 0; m_WaveLayerDownNum = 0; m_WaveSpeed = 0.0f; m_WaveHigh = 0.0f; m_BoidRange2 = 0.0f; m_BoidRange3 = 0.0f; m_BoidVot = 0.0f; m_BoidAct = -1; m_WaterHeight = 20; m_WaterWHeight = 0.0f; m_WaterQuadSize = 10.0f; m_WaterChop = -8.0f; m_WaterWWidth = 20; m_BoidLimitHeight = 0.0f; m_bObjectCulling = FALSE; m_BoidKind = -1; //}}AFX_DATA_INIT } void CDlgEffect::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgEffect) DDX_Control(pDX, IDC_CHECK_EFFECTADD, m_CheckEffect); DDX_Control(pDX, IDC_LIST_EFFECTMETHOD, m_Effect); DDX_Text(pDX, IDC_FADEIN, m_FadeIn); DDV_MinMaxFloat(pDX, m_FadeIn, 0.f, 1.f); DDX_Text(pDX, IDC_FADEOUT, m_FadeOut); DDX_Text(pDX, IDC_FADEINSPEED, m_FadeInSpeed); DDX_Text(pDX, IDC_A1, m_A1); DDX_Text(pDX, IDC_A2, m_A2); DDX_Text(pDX, IDC_A3, m_A3); DDX_Text(pDX, IDC_A4, m_A4); DDX_Text(pDX, IDC_B1, m_B1); DDX_Text(pDX, IDC_B2, m_B2); DDX_Text(pDX, IDC_B3, m_B3); DDX_Text(pDX, IDC_B4, m_B4); DDX_Text(pDX, IDC_G1, m_G1); DDX_Text(pDX, IDC_G2, m_G2); DDX_Text(pDX, IDC_G3, m_G3); DDX_Text(pDX, IDC_G4, m_G4); DDX_Text(pDX, IDC_GX, m_Gx); DDX_Text(pDX, IDC_GY, m_Gy); DDX_Text(pDX, IDC_GZ, m_Gz); DDX_Text(pDX, IDC_IMPRESSX, m_ImX); DDX_Text(pDX, IDC_IMPRESSY, m_ImY); DDX_Text(pDX, IDC_IMPRESSZ, m_ImZ); DDX_Text(pDX, IDC_R1, m_R1); DDX_Text(pDX, IDC_R2, m_R2); DDX_Text(pDX, IDC_R3, m_R3); DDX_Text(pDX, IDC_R4, m_R4); DDX_Text(pDX, IDC_RAD, m_Rad); DDX_Text(pDX, IDC_PARNUM, m_ParNum); DDX_Text(pDX, IDC_PARSIZE, m_Size); DDX_Text(pDX, IDC_CENTER, m_Center); DDX_Check(pDX, IDC_SWITCH, m_switch); DDX_Text(pDX, IDC_SWITCHRAD, m_SwitchRad); DDX_Text(pDX, IDC_VOT, m_Vot); DDX_Check(pDX, IDC_LOOP, m_Loop); DDX_Check(pDX, IDC_FIX, m_Fix); DDX_Check(pDX, IDC_RANDANI, m_RandAni); DDX_Text(pDX, IDC_RANDMAX, m_RandMax); DDX_Text(pDX, IDC_RANDMIN, m_RandMin); DDX_Text(pDX, IDC_EFFNAME, m_EffName); DDX_Text(pDX, IDC_BOIDNAME, m_BoidName); DDX_Text(pDX, IDC_BOIDNUM, m_BoidNum); DDX_Text(pDX, IDC_BOIDSPEED, m_BoidSpeed); DDX_Text(pDX, IDC_BOIDRANGE, m_BoidRange); DDX_Text(pDX, IDC_WAVENUM, m_WavePointNum); DDX_Text(pDX, IDC_WAVEUP, m_WaveLayerUpNum); DDX_Text(pDX, IDC_WAVEDOWN, m_WaveLayerDownNum); DDX_Text(pDX, IDC_WAVESPEED, m_WaveSpeed); DDX_Text(pDX, IDC_WAVEHIGH, m_WaveHigh); DDX_Text(pDX, IDC_BOIDRANGE2, m_BoidRange2); DDX_Text(pDX, IDC_BOIDRANGE3, m_BoidRange3); DDX_Text(pDX, IDC_BOIDVOT, m_BoidVot); DDX_Radio(pDX, IDC_RADIO1, m_BoidAct); DDX_Text(pDX, IDC_WATERWHEIGHT, m_WaterHeight); DDX_Text(pDX, IDC_WATERWDEFAULT, m_WaterWHeight); DDX_Text(pDX, IDC_WATERQUADSIZE, m_WaterQuadSize); DDX_Text(pDX, IDC_WATERCHOP, m_WaterChop); DDX_Text(pDX, IDC_WATERWWIDTH, m_WaterWWidth); DDX_Text(pDX, IDC_LIMITHEIGHT, m_BoidLimitHeight); DDX_Check(pDX, IDC_MESHOBJECT, m_bObjectCulling); DDX_Radio(pDX, IDC_RADIO3, m_BoidKind); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgEffect, CDialog) //{{AFX_MSG_MAP(CDlgEffect) ON_LBN_DBLCLK(IDC_LIST_EFFECTMETHOD, OnDblclkListEffectmethod) ON_BN_CLICKED(IDC_CHECK_EFFECTADD, OnCheckEffectadd) ON_LBN_SELCHANGE(IDC_LIST_EFFECTMETHOD, OnSelchangeListEffectmethod) ON_BN_CLICKED(IDC_EFFGET, OnEffget) ON_BN_CLICKED(IDC_WAVECREAT, OnWavecreat) ON_BN_CLICKED(IDC_WAVEPOINTCLICK, OnWavepointclick) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgEffect message handlers BOOL CDlgEffect::OnInitDialog() { CDialog::OnInitDialog(); CString strEffectName; strEffectName="Vol-Fog"; m_Effect.AddString(strEffectName); strEffectName="Boid"; m_Effect.AddString(strEffectName); strEffectName="Mesh-ani"; m_Effect.AddString(strEffectName); strEffectName="ÆÄµµ"; m_Effect.AddString(strEffectName); strEffectName="°ÝÀÚ ¹°"; m_Effect.AddString(strEffectName); m_A1 = 255; m_A2 = 255; m_A3 = 255; m_A4 = 255; m_B1 = 255; m_B2 = 255; m_B3 = 255; m_B4 = 255; m_R1 = 255; m_R2 = 255; m_R3 = 255; m_R4 = 255; m_G1 = 255; m_G2 = 255; m_G3 = 255; m_G4 = 255; m_ImX = 1.0; m_ImY = 0.0; m_ImZ = 1.0; m_Loop = true; m_FadeIn = 1.0; m_FadeOut = 0.0; m_FadeInSpeed = 3.0; m_ParNum = 10; m_Size = 500; m_Center = 1000; m_BoidNum = 10; m_BoidRange = 2000.0f; m_BoidSpeed = 3.0f; m_WaveLayerDownNum = 0; m_WaveLayerUpNum = 0; m_WavePointNum = 0; m_WaveSpeed = 1.0f; UpdateData(FALSE); return TRUE; } void CDlgEffect::OnDblclkListEffectmethod() { long EffectKind = m_Effect.GetCurSel(); m_Select = EffectKind; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_MouseInterface=100+m_Select; // TODO: Add your control notification handler code here } void CDlgEffect::OnCheckEffectadd() { UpdateData(TRUE); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_LandscapeEffectValue.m_A1 = m_A1 / 255.0f; av->m_LandscapeEffectValue.m_A2 = m_A2 / 255.0f; av->m_LandscapeEffectValue.m_A3 = m_A3 / 255.0f; av->m_LandscapeEffectValue.m_A4 = m_A4 / 255.0f; av->m_LandscapeEffectValue.m_B1 = m_B1 / 255.0f; av->m_LandscapeEffectValue.m_B2 = m_B2 / 255.0f; av->m_LandscapeEffectValue.m_B3 = m_B3 / 255.0f; av->m_LandscapeEffectValue.m_B4 = m_B4 / 255.0f; av->m_LandscapeEffectValue.m_R1 = m_R1 / 255.0f; av->m_LandscapeEffectValue.m_R2 = m_R2 / 255.0f; av->m_LandscapeEffectValue.m_R3 = m_R3 / 255.0f; av->m_LandscapeEffectValue.m_R4 = m_R4 / 255.0f; av->m_LandscapeEffectValue.m_G1 = m_G1 / 255.0f; av->m_LandscapeEffectValue.m_G2 = m_G2 / 255.0f; av->m_LandscapeEffectValue.m_G3 = m_G3 / 255.0f; av->m_LandscapeEffectValue.m_G4 = m_G4 / 255.0f; av->m_LandscapeEffectValue.m_Center = m_Center; av->m_LandscapeEffectValue.m_Num = m_ParNum; av->m_LandscapeEffectValue.m_FadeIn = m_FadeIn; av->m_LandscapeEffectValue.m_FadeInSpeed = m_FadeInSpeed; av->m_LandscapeEffectValue.m_FadeOut = m_FadeOut; av->m_LandscapeEffectValue.m_Gx = m_Gx; av->m_LandscapeEffectValue.m_Gy = m_Gy; av->m_LandscapeEffectValue.m_Gz = m_Gz; av->m_LandscapeEffectValue.m_ImX = m_ImX; av->m_LandscapeEffectValue.m_ImY = m_ImY; av->m_LandscapeEffectValue.m_ImZ = m_ImZ; av->m_LandscapeEffectValue.m_Rad = m_Rad; av->m_LandscapeEffectValue.m_Size = m_Size; //¸Þ½¬ av->m_LandscapeEffectValue.m_switch = (m_switch) ? 1 : 0; av->m_LandscapeEffectValue.m_switchRad = m_SwitchRad; av->m_LandscapeEffectValue.m_Vot = m_Vot; av->m_LandscapeEffectValue.m_loop = (m_Loop) ? 1 : 0; av->m_LandscapeEffectValue.m_Fix = (m_Fix) ? 1 : 0; av->m_LandscapeEffectValue.m_RandAni = (m_RandAni) ? 1 : 0; av->m_LandscapeEffectValue.m_RandMax = m_RandMax; av->m_LandscapeEffectValue.m_RandMin = m_RandMin; av->m_LandscapeEffectValue.m_EffName = m_EffName; av->m_LandscapeEffectValue.m_ObjectCulling = (m_bObjectCulling) ? 1 : 0; // boid av->m_LandscapeEffectValue.m_BoidNum = m_BoidNum; av->m_LandscapeEffectValue.m_BoidRange = m_BoidRange; av->m_LandscapeEffectValue.m_BoidRange2 = m_BoidRange2; av->m_LandscapeEffectValue.m_BoidRange3 = m_BoidRange3; av->m_LandscapeEffectValue.m_BoidLimitHeight = m_BoidLimitHeight; av->m_LandscapeEffectValue.m_BoidKind = m_BoidKind; av->m_LandscapeEffectValue.m_BoidSpeed = m_BoidSpeed; av->m_LandscapeEffectValue.m_BoidVot = m_BoidVot; av->m_LandscapeEffectValue.m_BoidName = m_BoidName; av->m_LandscapeEffectValue.m_BoidAct = m_BoidAct; // water space av->m_LandscapeEffectValue.m_WaterHeight = m_WaterHeight; av->m_LandscapeEffectValue.m_WaterWidth = m_WaterWWidth; // limit height av->m_LandscapeEffectValue.m_WaterWHeight = m_WaterWHeight; av->m_LandscapeEffectValue.m_WaterWQuadSize = m_WaterQuadSize; av->m_LandscapeEffectValue.m_WaterWChop = m_WaterChop; /* static int click = 0; // TODO: Add your control notification handler code here long EffectKind = m_Effect.GetCurSel(); if(click == 1) { m_CheckEffect.SetCheck(0); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_MouseInterface=-1; } else { m_CheckEffect.SetCheck(1); m_Select = EffectKind; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_MouseInterface=70+m_Select; } click = m_CheckEffect.GetCheck(); */ } void CDlgEffect::OnSelchangeListEffectmethod() { // TODO: Add your control notification handler code here long EffectKind = m_Effect.GetCurSel(); m_Select = EffectKind; CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_MouseInterface=100+m_Select; } void CDlgEffect::OnCancel() { // TODO: Add extra cleanup here CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_MouseInterface=-1; CDialog::OnCancel(); } void CDlgEffect::OnEffget() { // TODO: Add your control notification handler code here CString strFilter = "Effect Files (*.eff)|*.eff|All Files (*.*)|*.*||"; CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_EffName=filedia.GetFileName(); UpdateData(false); } void CDlgEffect::OnWavecreat() { // TODO: Add your control notification handler code here UpdateData(TRUE); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_LandscapeEffectValue.m_UpLayerNum = m_WaveLayerUpNum; av->m_LandscapeEffectValue.m_DownLayerNum = m_WaveLayerDownNum; av->m_LandscapeEffectValue.m_WaveCreate = true; } void CDlgEffect::OnWavepointclick() { // TODO: Add your control notification handler code here UpdateData(TRUE); CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); av->m_LandscapeEffectValue.m_WaveCreate = false; av->m_LandscapeEffectValue.m_WavePointNum = 0; av->m_LandscapeEffectValue.m_WaveHigh = m_WaveHigh; } void CDlgEffect::OnButton1() { // TODO: Add your control notification handler code here UpdateData(TRUE); char str[] = "GEM ÆÄÀÏ(*.Gem) |*.gem| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CString t_name; CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_BoidName = filedia.GetFileName(); UpdateData(FALSE); }