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.
120 lines
2.7 KiB
C++
120 lines
2.7 KiB
C++
// ScaleOpt.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "pixelwhippro.h"
|
|
#include "ScaleOpt.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CScaleOpt dialog
|
|
|
|
|
|
CScaleOpt::CScaleOpt(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CScaleOpt::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CScaleOpt)
|
|
m_Recurse = FALSE;
|
|
m_SFact = 1.0f;
|
|
//}}AFX_DATA_INIT
|
|
ScaleAll=false;
|
|
LastFact=m_SFact;
|
|
}
|
|
|
|
|
|
void CScaleOpt::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CScaleOpt)
|
|
DDX_Control(pDX, IDC_RECURSE, m_RBut);
|
|
DDX_Control(pDX, IDC_SCOPE, m_ScopeBut);
|
|
DDX_Control(pDX, IDC_SCALESPIN, m_ScaleSpin);
|
|
DDX_Check(pDX, IDC_RECURSE, m_Recurse);
|
|
DDX_Text(pDX, IDC_SFACT, m_SFact);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CScaleOpt, CDialog)
|
|
//{{AFX_MSG_MAP(CScaleOpt)
|
|
ON_NOTIFY(UDN_DELTAPOS, IDC_SCALESPIN, OnDeltaposScalespin)
|
|
ON_EN_CHANGE(IDC_SFACT, OnChangeSfact)
|
|
ON_BN_CLICKED(IDC_SCOPE, OnScope)
|
|
ON_BN_CLICKED(IDC_SELEFFECT, OnSeleffect)
|
|
ON_BN_CLICKED(IDC_ALLEFF, OnAlleff)
|
|
ON_EN_KILLFOCUS(IDC_SFACT, OnKillfocusSfact)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CScaleOpt message handlers
|
|
|
|
void CScaleOpt::OnDeltaposScalespin(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
UpdateData(TRUE);
|
|
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
|
|
// TODO: Add your control notification handler code here
|
|
m_SFact*=(float)pow(2,-pNMUpDown->iDelta);
|
|
if(m_SFact<=0.0f)
|
|
{
|
|
m_SFact=0.001f;
|
|
}
|
|
UpdateData(FALSE);
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CScaleOpt::OnChangeSfact()
|
|
{
|
|
// 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
|
|
}
|
|
|
|
BOOL CScaleOpt::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
CheckDlgButton(IDC_SELEFFECT,1);
|
|
CheckDlgButton(IDC_TYPE_SIZE,1);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CScaleOpt::OnScope()
|
|
{
|
|
|
|
}
|
|
|
|
void CScaleOpt::OnSeleffect()
|
|
{
|
|
ScaleAll=false;
|
|
CheckDlgButton(IDC_SELEFFECT,1);
|
|
m_RBut.EnableWindow(TRUE);
|
|
|
|
}
|
|
|
|
void CScaleOpt::OnAlleff()
|
|
{
|
|
ScaleAll=true;
|
|
m_RBut.EnableWindow(FALSE);
|
|
}
|
|
|
|
void CScaleOpt::OnKillfocusSfact()
|
|
{
|
|
UpdateData(TRUE);
|
|
if(m_SFact<=0.0f)
|
|
{
|
|
m_SFact=LastFact;
|
|
UpdateData(FALSE);
|
|
}
|
|
LastFact=m_SFact;
|
|
|
|
|
|
}
|
|
|
|
void CScaleOpt::OnOK()
|
|
{
|
|
Brightness=IsDlgButtonChecked(IDC_BRIGHTNESS)?true:false;
|
|
CDialog::OnOK();
|
|
}
|