// DlgStart.cpp : implementation file // #include "stdafx.h" #include "WorldCreator.h" #include "DlgStart.h" #include "RenderOption.h" #include "BaseDataDefine.h" #include #include ".\dlgstart.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgStart dialog CDlgStart::CDlgStart(CWnd* pParent /*=NULL*/) : CDialog(CDlgStart::IDD, pParent) { //{{AFX_DATA_INIT(CDlgStart) m_bBuildingLightmap = TRUE; m_bBSPLightmap = FALSE; m_bBSPTerrainRendering = FALSE; m_CharacterBuildingLighting = TRUE; m_bCharacterLigting = TRUE; m_bCharacterShadow = FALSE; m_bCharacterSpecular = FALSE; m_bFullSceneGlare = FALSE; m_bGrassRendering = TRUE; m_bMultiDetailTexture = TRUE; m_bRangeGrass = FALSE; m_bSpecularGlare = FALSE; m_bTreeAnimation = TRUE; m_bWaterBumpEnv = FALSE; m_nGrassRange = 0; m_nTerrainLSizeX = 0; m_nTerrainLSizeY = 0; m_nTextureSkipLevel = 0; m_CharacterBuildingShadow = TRUE; m_bAllObjectBump = FALSE; m_bGF3OPTION = FALSE; m_bRain = FALSE; m_bWaterBump = FALSE; m_bFullSceneEffect = FALSE; //}}AFX_DATA_INIT m_nSelectDevice=1; } void CDlgStart::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgStart) DDX_Control(pDX, IDC_COMBOZONE, m_ZoneSelect); DDX_Control(pDX, IDC_COMBO_ADAPTER, m_adapter); DDX_Control(pDX, IDC_COMBO_DEVICE, m_device); DDX_Check(pDX, IDC_CHECK_BLDLIGHTMAP_OPTION, m_bBuildingLightmap); DDX_Check(pDX, IDC_CHECK_BSPLIGHTMAP_OPTION, m_bBSPLightmap); DDX_Check(pDX, IDC_CHECK_BSPTERRAIN_OPTION, m_bBSPTerrainRendering); DDX_Check(pDX, IDC_CHECK_CHRBLDLIGHT_OPTION, m_CharacterBuildingLighting); DDX_Check(pDX, IDC_CHECK_CHRLIGHTING_OPTION, m_bCharacterLigting); DDX_Check(pDX, IDC_CHECK_CHRSHADOW_OPTION, m_bCharacterShadow); DDX_Check(pDX, IDC_CHECK_CHRSPECULAR_OPTION, m_bCharacterSpecular); DDX_Check(pDX, IDC_CHECK_GLARE_OPTION, m_bFullSceneGlare); DDX_Check(pDX, IDC_CHECK_GRASS_OPTION, m_bGrassRendering); DDX_Check(pDX, IDC_CHECK_MULTIDETAIL_OPTION, m_bMultiDetailTexture); DDX_Check(pDX, IDC_CHECK_RANGEGRASS_OPTION, m_bRangeGrass); DDX_Check(pDX, IDC_CHECK_SPECULARGLARE_OPTION, m_bSpecularGlare); DDX_Check(pDX, IDC_CHECK_TREEANI_OPTION, m_bTreeAnimation); DDX_Check(pDX, IDC_CHECK_WATERBUMPENV_OPTION, m_bWaterBumpEnv); DDX_Text(pDX, IDC_EDIT_GRASSRANGE, m_nGrassRange); DDX_Text(pDX, IDC_EDIT_LSIZEX, m_nTerrainLSizeX); DDX_Text(pDX, IDC_EDIT_LSIZEY, m_nTerrainLSizeY); DDX_Text(pDX, IDC_EDIT_TEXTURESKIPLEVEL, m_nTextureSkipLevel); DDX_Check(pDX, IDC_CHECK_CHRINBLDSHADOW_OPTION, m_CharacterBuildingShadow); DDX_Check(pDX, IDC_CHECK_PerPixelLight, m_bAllObjectBump); DDX_Check(pDX, IDC_CHECK_GF3OPTION, m_bGF3OPTION); DDX_Check(pDX, IDC_RAIN, m_bRain); DDX_Check(pDX, IDC_WATER, m_bWaterBump); DDX_Check(pDX, IDC_FULLSCENEEFFECT, m_bFullSceneEffect); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgStart, CDialog) //{{AFX_MSG_MAP(CDlgStart) ON_CBN_SELCHANGE(IDC_COMBO_DEVICE, OnSelchangeComboDevice) ON_EN_CHANGE(IDC_EDIT_TEXTURESKIPLEVEL, OnChangeEditTextureskiplevel) ON_BN_CLICKED(IDC_CHECK_GF3OPTION, OnCheckGf3option) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_RAIN, OnBnClickedRain) ON_BN_CLICKED(IDC_CHECK_PerPixelLight, OnBnClickedCheckPerpixellight) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgStart message handlers BOOL CDlgStart::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here CEnumD3D::Enum(); /* m_device.AddString(); CEnumD3D::m_Adapters[0].d3dAdapterIdentifier */ m_adapter.AddString(CEnumD3D::m_Adapters[0].d3dAdapterIdentifier.Description); m_device.AddString(CEnumD3D::m_Adapters[0].devices[0].strDesc); m_device.AddString(CEnumD3D::m_Adapters[0].devices[1].strDesc); SetZoneList(); /* for(int i=0;istrDesc); } */ m_adapter.SetCurSel(0); m_device.SetCurSel(0); m_ZoneSelect.SetCurSel(0); //m_ZoneValue = 0; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgStart::SetZoneList() { char buf[50] = {0}; char path[256]; GetCurrentDirectory(256,path); sprintf(path,"%s\\ZoneList.dat",path); FILE *fp; fp = fopen(path,"rt"); if(fp) { while(!feof(fp)) { memset(buf,0,sizeof(char) * 50); fscanf(fp,"%s",buf); m_ZoneSelect.AddString(buf); } fclose(fp); } else { MessageBox(path,"Error",MB_OK); m_ZoneSelect.AddString("Default"); } GetCurrentDirectory(256,path); sprintf(path,"%s\\CHRPATH.dat",path); fp = fopen(path,"rt"); if(fp) { fscanf(fp,"%s",WORLDCHRDIFF); fscanf(fp,"%s",WORLDCHRBUM); fscanf(fp,"%s",WORLDCHRENV); fclose(fp); } } void CDlgStart::OnSelchangeComboDevice() { UpdateData(); m_nSelectDevice=m_device.GetCurSel(); // TODO: Add your control notification handler code here } void CDlgStart::OnOK() { // TODO: Add extra validation here UpdateData(); CRenderOption::m_AllObjectBump=m_bAllObjectBump; CRenderOption::m_CharacterPerPixelLighting=m_bCharacterLigting; CRenderOption::m_CharacterPerPixelSpecularLighting=m_bCharacterSpecular; CRenderOption::m_BuildingLightmap=m_bBuildingLightmap; CRenderOption::m_FullSceneGlare=m_bFullSceneGlare; CRenderOption::m_FullSceneSpecularGlare=m_bSpecularGlare; CRenderOption::m_RangeGrassRender=m_bRangeGrass; CRenderOption::m_WaterBumpEnvRendering=m_bWaterBumpEnv; CRenderOption::m_GrassRendering=m_bGrassRendering; CRenderOption::m_TerrainMultiDetalTexture=m_bMultiDetailTexture; CRenderOption::m_CharacterProjectShadowTerrain=m_CharacterBuildingShadow; CRenderOption::m_CharacterProjectShadowBuilding=m_CharacterBuildingShadow; CRenderOption::m_CharacterSelfShadow=m_bCharacterShadow; CRenderOption::m_bRain = (bool)m_bRain; CRenderOption::m_bWaterBump = m_bWaterBump; CRenderOption::m_bFullSceneEffect = (bool)m_bFullSceneEffect; char strZoneString[7] = {0}; int k = m_ZoneSelect.GetCurSel(); if(k == 0) //default strcpy(CRenderOption::m_strBaseGraphicsDataPath,""); else { sprintf(strZoneString,"Zone%d",k); strcpy(CRenderOption::m_strBaseGraphicsDataPath,strZoneString); } CDialog::OnOK(); } void CDlgStart::OnChangeEditTextureskiplevel() { UpdateData(); // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here } void CDlgStart::OnCheckGf3option() { // TODO: Add your control notification handler code here UpdateData(); if(m_bGF3OPTION) { m_bCharacterLigting = TRUE; m_bCharacterSpecular = TRUE; m_bFullSceneGlare = TRUE; m_bRangeGrass = TRUE; m_bSpecularGlare = TRUE; m_bWaterBumpEnv = TRUE; m_bAllObjectBump = TRUE; m_bCharacterShadow = TRUE; } else { m_bCharacterLigting = FALSE; m_bCharacterSpecular = FALSE; m_bFullSceneGlare = FALSE; m_bRangeGrass = FALSE; m_bSpecularGlare = FALSE; m_bWaterBumpEnv = FALSE; m_bAllObjectBump = FALSE; m_bCharacterShadow = FALSE; } UpdateData(FALSE); } void CDlgStart::OnBnClickedRain() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. } void CDlgStart::OnBnClickedCheckPerpixellight() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. }