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++

// 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: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
}
void CDlgStart::OnBnClickedCheckPerpixellight()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
}