DragonNest/Client/EtWorldPainter/RandomDungeonDefaultPaneView.cpp

168 lines
4.7 KiB
C++
Raw Normal View History

2024-12-19 09:48:26 +08:00
// RandomDungeonDefaultPaneView.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "EtWorldPainter.h"
#include "RandomDungeonDefaultPaneView.h"
#include "UserMessage.h"
#include "TEtRandomDungeon.h"
#include "EtMaze.h"
PropertyGridBaseDefine g_DungeonDefaultPropertyDefine[] = {
{ "Default", "Width", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|5|200|1", TRUE },
{ "Default", "Height", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|5|200|1", TRUE },
{ "Default", "Level", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD> <20><>|1|10|1", TRUE },
{ "Default", "Sparseness", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD> <20><><EFBFBD>⵵ ( 0:<3A><><EFBFBD><EFBFBD>, 100:<3A><><EFBFBD><EFBFBD>)|0|100|1|1", TRUE },
{ "Default", "Randomness", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>|0|100|1", TRUE },
{ "Default", "Deadends Remove", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>̾<EFBFBD><CCBE><EFBFBD> Ȯ<><C8AE>|0|100|1", TRUE },
{ "Default", "Seed", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>õ<EFBFBD> ( 0<><30> <20><><EFBFBD><EFBFBD> )", TRUE },
{ "Default", "Current Seed", CUnionValueProperty::Integer, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>õ<EFBFBD>", FALSE },
{ NULL },
};
// CRandomDungeonDefaultPaneView
IMPLEMENT_DYNCREATE(CRandomDungeonDefaultPaneView, CFormView)
CRandomDungeonDefaultPaneView::CRandomDungeonDefaultPaneView()
: CFormView(CRandomDungeonDefaultPaneView::IDD)
{
m_bActivate = false;
}
CRandomDungeonDefaultPaneView::~CRandomDungeonDefaultPaneView()
{
ResetPropertyGrid();
}
void CRandomDungeonDefaultPaneView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CRandomDungeonDefaultPaneView, CFormView)
ON_MESSAGE( UM_REFRESH_PANE_VIEW, OnRefresh )
ON_MESSAGE( XTPWM_PROPERTYGRID_NOTIFY, OnNotifyGrid )
ON_WM_SIZE()
END_MESSAGE_MAP()
// CRandomDungeonDefaultPaneView <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
#ifdef _DEBUG
void CRandomDungeonDefaultPaneView::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CRandomDungeonDefaultPaneView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// CRandomDungeonDefaultPaneView <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
LRESULT CRandomDungeonDefaultPaneView::OnRefresh( WPARAM wParam, LPARAM lParam )
{
RefreshPropertyGrid( g_DungeonDefaultPropertyDefine );
return S_OK;
}
LRESULT CRandomDungeonDefaultPaneView::OnNotifyGrid( WPARAM wParam, LPARAM lParam )
{
return ProcessNotifyGrid( wParam, lParam );
}
void CRandomDungeonDefaultPaneView::OnSize(UINT nType, int cx, int cy)
{
__super::OnSize(nType, cx, cy);
// TODO: <20><><EFBFBD><20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
if( m_PropertyGrid ) {
CRect rcRect;
GetClientRect( &rcRect );
m_PropertyGrid.MoveWindow( &rcRect );
}
}
void CRandomDungeonDefaultPaneView::OnInitialUpdate()
{
__super::OnInitialUpdate();
// TODO: <20><><EFBFBD>⿡ Ư<><C6AF>ȭ<EFBFBD><C8AD> <20>ڵ带 <20>߰<EFBFBD> <20><>/<2F>Ǵ<EFBFBD> <20>⺻ Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
if( m_bActivate == true ) return;
m_bActivate = true;
CRect rcRect;
GetClientRect( &rcRect );
m_PropertyGrid.Create( rcRect, this, 0 );
m_PropertyGrid.SetCustomColors( RGB(200, 200, 200), 0, RGB(182, 210, 189), RGB(247, 243, 233), 0);
SendMessage( UM_REFRESH_PANE_VIEW );
}
void CRandomDungeonDefaultPaneView::OnSetValue( CUnionValueProperty *pVariable, DWORD dwIndex )
{
switch( dwIndex ) {
case 0:
pVariable->SetVariable( CGlobalValue::GetInstance().m_DungeonSize.nX );
break;
case 1:
pVariable->SetVariable( CGlobalValue::GetInstance().m_DungeonSize.nY );
break;
case 2:
pVariable->SetVariable( CGlobalValue::GetInstance().m_DungeonSize.nZ );
break;
case 3:
pVariable->SetVariable( CGlobalValue::GetInstance().m_nDungeonSparseness );
break;
case 4:
pVariable->SetVariable( CGlobalValue::GetInstance().m_nDungeonRandomness );
break;
case 5:
pVariable->SetVariable( CGlobalValue::GetInstance().m_nDungeonDeadendRemove );
break;
case 6:
pVariable->SetVariable( CGlobalValue::GetInstance().m_nDungeonSeed );
break;
case 7:
if( CTEtRandomDungeon::GetInstance().GetMaze() )
pVariable->SetVariable( CTEtRandomDungeon::GetInstance().GetCurSeed() );
break;
}
}
void CRandomDungeonDefaultPaneView::OnChangeValue( CUnionValueProperty *pVariable, DWORD dwIndex )
{
switch( dwIndex ) {
case 0:
CGlobalValue::GetInstance().m_DungeonSize.nX = pVariable->GetVariableInt();
break;
case 1:
CGlobalValue::GetInstance().m_DungeonSize.nY = pVariable->GetVariableInt();
break;
case 2:
CGlobalValue::GetInstance().m_DungeonSize.nZ = pVariable->GetVariableInt();
break;
case 3:
CGlobalValue::GetInstance().m_nDungeonSparseness = pVariable->GetVariableInt();
break;
case 4:
CGlobalValue::GetInstance().m_nDungeonRandomness = pVariable->GetVariableInt();
break;
case 5:
CGlobalValue::GetInstance().m_nDungeonDeadendRemove = pVariable->GetVariableInt();
break;
case 6:
CGlobalValue::GetInstance().m_nDungeonSeed = pVariable->GetVariableInt();
break;
}
}