Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
287 lines
6.4 KiB
C++
287 lines
6.4 KiB
C++
// ExportOptions.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "TCTb.h"
|
|
#include "ExportOptions.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExportOptions dialog
|
|
|
|
|
|
CExportOptions::CExportOptions(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CExportOptions::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CExportOptions)
|
|
m_dxtext = 0.0f;
|
|
m_dytext = 0.0f;
|
|
m_showexport = FALSE;
|
|
m_voff = 0.0f;
|
|
m_xstext = 0.0f;
|
|
m_zstext = 0.0f;
|
|
m_dztext = 0.0f;
|
|
//}}AFX_DATA_INIT
|
|
NoUpdate=0;
|
|
}
|
|
|
|
|
|
void CExportOptions::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CExportOptions)
|
|
DDX_Control(pDX, IDC_ZSTEXT, m_zstctrl);
|
|
DDX_Control(pDX, IDC_XSTEXT, m_xstctrl);
|
|
DDX_Control(pDX, IDC_DZTEXT, m_dztctrl);
|
|
DDX_Control(pDX, IDC_DYTEXT, m_dytctrl);
|
|
DDX_Control(pDX, IDC_DXTEXT, m_dxtctrl);
|
|
DDX_Control(pDX, IDC_ZSSLI, m_zssli);
|
|
DDX_Control(pDX, IDC_XSSLI, m_xssli);
|
|
DDX_Control(pDX, IDC_DZSLI, m_dzsli);
|
|
DDX_Control(pDX, IDC_DYSLI, m_dysli);
|
|
DDX_Control(pDX, IDC_DXSLI, m_dxsli);
|
|
DDX_Text(pDX, IDC_DXTEXT, m_dxtext);
|
|
DDX_Text(pDX, IDC_DYTEXT, m_dytext);
|
|
DDX_Check(pDX, IDC_SHOWEXPORT, m_showexport);
|
|
DDX_Text(pDX, IDC_VOFFTEXT, m_voff);
|
|
DDX_Text(pDX, IDC_XSTEXT, m_xstext);
|
|
DDX_Text(pDX, IDC_ZSTEXT, m_zstext);
|
|
DDX_Text(pDX, IDC_DZTEXT, m_dztext);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CExportOptions, CDialog)
|
|
//{{AFX_MSG_MAP(CExportOptions)
|
|
ON_WM_HSCROLL()
|
|
ON_BN_CLICKED(IDC_FREESTYLE, OnFreestyle)
|
|
ON_BN_CLICKED(IDC_GRIDSIZE, OnGridsize)
|
|
ON_BN_CLICKED(IDC_SETCONVERSION, OnSetconversion)
|
|
ON_EN_CHANGE(IDC_ZSTEXT, OnChangeZstext)
|
|
ON_EN_CHANGE(IDC_XSTEXT, OnChangeXstext)
|
|
ON_EN_CHANGE(IDC_DZTEXT, OnChangeDztext)
|
|
ON_EN_CHANGE(IDC_DYTEXT, OnChangeDytext)
|
|
ON_EN_CHANGE(IDC_DXTEXT, OnChangeDxtext)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExportOptions message handlers
|
|
|
|
BOOL CExportOptions::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
|
|
m_dxsli.SetRange(1,50);
|
|
m_dysli.SetRange(0,40);
|
|
m_dzsli.SetRange(1,50);
|
|
|
|
m_xssli.SetRange(1,50);
|
|
m_zssli.SetRange(1,50);
|
|
|
|
NoUpdate++;
|
|
m_dxsli.SetPos((int)m_dxtext);
|
|
m_dysli.SetPos((int)m_dxtext);
|
|
m_dzsli.SetPos((int)m_dxtext);
|
|
m_xssli.SetPos((int)m_xstext);
|
|
m_zssli.SetPos((int)m_zstext);
|
|
NoUpdate--;
|
|
UpdateControls();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CExportOptions::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
|
{
|
|
if(NoUpdate) return;
|
|
|
|
CSliderCtrl *ctrl=(CSliderCtrl *)pScrollBar;
|
|
if(ctrl==&m_dxsli)
|
|
{
|
|
m_dxtext=(float)m_dxsli.GetPos();
|
|
}
|
|
|
|
if(ctrl==&m_dysli)
|
|
{
|
|
m_dytext=((float)m_dysli.GetPos())*0.25f;
|
|
}
|
|
|
|
if(ctrl==&m_dzsli)
|
|
{
|
|
m_dztext=(float)m_dzsli.GetPos();
|
|
}
|
|
|
|
if(ctrl==&m_xssli)
|
|
{
|
|
m_xstext=(float)m_xssli.GetPos();
|
|
}
|
|
|
|
if(ctrl==&m_zssli)
|
|
{
|
|
m_zstext=(float)m_zssli.GetPos();
|
|
}
|
|
UpdateData(FALSE);
|
|
UpdateTextFields();
|
|
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
|
|
}
|
|
|
|
void CExportOptions::OnFreestyle() { EInfo.BType=ExportInfo::BT_FREESTYLE; UpdateControls(); }
|
|
void CExportOptions::OnGridsize() { EInfo.BType=ExportInfo::BT_GSIZE; UpdateControls(); }
|
|
void CExportOptions::OnSetconversion() { EInfo.BType=ExportInfo::BT_SETCON; UpdateControls(); }
|
|
|
|
void CExportOptions::SetData(const ExportInfo &einf)
|
|
{
|
|
EInfo = einf;
|
|
|
|
EInfo.GetSizeKM(&m_xstext,&m_zstext);
|
|
|
|
EInfo.GetScale_Offset(&m_dxtext, &m_dytext, &m_dztext, &m_voff);
|
|
|
|
m_showexport=EInfo.Display;
|
|
}
|
|
|
|
void CExportOptions::UpdateControls()
|
|
{
|
|
|
|
m_dxsli.EnableWindow(TRUE);
|
|
m_dxtctrl.EnableWindow(TRUE);
|
|
m_dysli.EnableWindow(TRUE);
|
|
m_dytctrl.EnableWindow(TRUE);
|
|
m_dzsli.EnableWindow(TRUE);
|
|
m_dztctrl.EnableWindow(TRUE);
|
|
|
|
m_zssli.EnableWindow(TRUE);
|
|
m_xssli.EnableWindow(TRUE);
|
|
m_zstctrl.EnableWindow(TRUE);
|
|
m_xstctrl.EnableWindow(TRUE);
|
|
|
|
|
|
CheckDlgButton(IDC_SETCONVERSION,FALSE);
|
|
CheckDlgButton(IDC_GRIDSIZE,FALSE);
|
|
CheckDlgButton(IDC_FREESTYLE,FALSE);
|
|
|
|
switch(EInfo.BType)
|
|
{
|
|
case ExportInfo::BT_SETCON: CheckDlgButton(IDC_SETCONVERSION,TRUE); break;
|
|
case ExportInfo::BT_GSIZE: CheckDlgButton(IDC_GRIDSIZE,TRUE); break;
|
|
case ExportInfo::BT_FREESTYLE: CheckDlgButton(IDC_FREESTYLE,TRUE); break;
|
|
}
|
|
|
|
|
|
if(IsDlgButtonChecked(IDC_SETCONVERSION))
|
|
{
|
|
m_dxsli.EnableWindow(FALSE);
|
|
m_dzsli.EnableWindow(FALSE);
|
|
m_dxtctrl.EnableWindow(FALSE);
|
|
m_dztctrl.EnableWindow(FALSE);
|
|
}
|
|
|
|
if(IsDlgButtonChecked(IDC_GRIDSIZE))
|
|
{
|
|
m_zssli.EnableWindow(FALSE);
|
|
m_xssli.EnableWindow(FALSE);
|
|
m_zstctrl.EnableWindow(FALSE);
|
|
m_xstctrl.EnableWindow(FALSE);
|
|
}
|
|
|
|
}
|
|
|
|
void CExportOptions::GetData(ExportInfo *einf)
|
|
{
|
|
einf->BType=EInfo.BType;
|
|
einf->Display=m_showexport;
|
|
|
|
einf->SetScale_Offset(m_dxtext, m_dytext, m_dztext, m_voff);
|
|
einf->SetSizeKM(m_xstext,m_zstext);
|
|
}
|
|
|
|
void CExportOptions::OnChangeZstext()
|
|
{
|
|
if(NoUpdate) return;
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
m_zssli.SetPos((int)m_zstext);
|
|
|
|
UpdateTextFields();
|
|
NoUpdate--;
|
|
}
|
|
|
|
|
|
void CExportOptions::OnChangeXstext()
|
|
{
|
|
if(NoUpdate) return;
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
m_xssli.SetPos((int)m_xstext);
|
|
|
|
UpdateTextFields();
|
|
NoUpdate--;
|
|
}
|
|
|
|
void CExportOptions::OnChangeDztext()
|
|
{
|
|
if(NoUpdate) return;
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
m_dzsli.SetPos((int)m_dztext);
|
|
|
|
|
|
UpdateTextFields();
|
|
NoUpdate--;
|
|
}
|
|
|
|
void CExportOptions::OnChangeDytext()
|
|
{
|
|
if(NoUpdate) return;
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
m_dysli.SetPos((int)(m_dytext*4));
|
|
|
|
UpdateTextFields();
|
|
NoUpdate--;
|
|
}
|
|
|
|
void CExportOptions::OnChangeDxtext()
|
|
{
|
|
if(NoUpdate) return;
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
m_dxsli.SetPos((int)(m_dxtext));
|
|
|
|
|
|
UpdateTextFields();
|
|
NoUpdate--;
|
|
}
|
|
|
|
void CExportOptions::UpdateTextFields()
|
|
{
|
|
NoUpdate++;
|
|
UpdateData(TRUE);
|
|
|
|
EInfo.SetScale_Offset(m_dxtext, m_dytext, m_dztext, m_voff);
|
|
|
|
EInfo.SetSizeKM(m_xstext,m_zstext);
|
|
|
|
EInfo.GetSizeKM(&m_xstext,&m_zstext);
|
|
|
|
EInfo.GetScale_Offset(&m_dxtext, &m_dytext, &m_dztext, &m_voff);
|
|
|
|
UpdateData(FALSE);
|
|
m_dxsli.SetPos((int)m_dxtext);
|
|
m_dysli.SetPos((int)m_dytext);
|
|
m_dzsli.SetPos((int)m_dztext);
|
|
m_xssli.SetPos((int)m_xstext);
|
|
m_zssli.SetPos((int)m_zstext);
|
|
NoUpdate--;
|
|
}
|