Files
Client/GameTools/WORLDCREATOR/DlgStart.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

264 lines
7.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// DlgStart.cpp : implementation file
//
#include "stdafx.h"
#include "WorldCreator.h"
#include "DlgStart.h"
#include "RenderOption.h"
#include "BaseDataDefine.h"
#include <EnumD3D.h>
#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;i<CEnumD3D::m_deviceinfo.num;i++)
{
m_device.AddString(CEnumD3D::m_deviceinfo[i]->strDesc);
}
*/
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: <20><><EFBFBD><20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
void CDlgStart::OnBnClickedCheckPerpixellight()
{
// TODO: <20><><EFBFBD><20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}