Files
firestorm/Gameleap/code/mw4/Tools/TCTb/ExportOptions.cpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

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--;
}