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.
124 lines
2.7 KiB
C++
124 lines
2.7 KiB
C++
// CamInfoTab.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "TCTb.h"
|
|
#include "CamInfoTab.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CCamInfoTab property page
|
|
|
|
IMPLEMENT_DYNCREATE(CCamInfoTab, CPropertyPage)
|
|
|
|
CCamInfoTab::CCamInfoTab() : CCamInfoPage(CCamInfoTab::IDD)
|
|
{
|
|
//{{AFX_DATA_INIT(CCamInfoTab)
|
|
m_CamLocX = 0.0f;
|
|
m_CamLocY = 0.0f;
|
|
m_CamLocZ = 0.0f;
|
|
m_CamTrkAlt = 0.0f;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
CCamInfoTab::~CCamInfoTab()
|
|
{
|
|
}
|
|
|
|
void CCamInfoTab::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CCamInfoPage::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CCamInfoTab)
|
|
DDX_Control(pDX, IDC_CAMTALT, m_CTAlt);
|
|
DDX_Text(pDX, IDC_CAMLOCX, m_CamLocX);
|
|
DDX_Text(pDX, IDC_CAMLOCY, m_CamLocY);
|
|
DDX_Text(pDX, IDC_CAMLOCZ, m_CamLocZ);
|
|
DDX_Text(pDX, IDC_CAMTALT, m_CamTrkAlt);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCamInfoTab, CCamInfoPage)
|
|
//{{AFX_MSG_MAP(CCamInfoTab)
|
|
ON_EN_CHANGE(IDC_CAMLOCX, OnChangeCamlocx)
|
|
ON_EN_CHANGE(IDC_CAMLOCY, OnChangeCamlocy)
|
|
ON_EN_CHANGE(IDC_CAMLOCZ, OnChangeCamlocz)
|
|
ON_BN_CLICKED(IDC_CLOCTT, OnCloctt)
|
|
ON_BN_CLICKED(IDC_FREE, OnFree)
|
|
ON_BN_CLICKED(IDC_TRACK, OnTrack)
|
|
ON_EN_CHANGE(IDC_CAMTALT, OnChangeCamtalt)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CCamInfoTab message handlers
|
|
|
|
void CCamInfoTab::DataIn()
|
|
{
|
|
m_CamLocX=CamInfo->Loc.x;
|
|
m_CamLocY=CamInfo->Loc.y;
|
|
m_CamLocZ=CamInfo->Loc.z;
|
|
m_CamTrkAlt=CamInfo->CamTrackAlt;
|
|
CheckDlgButton(IDC_CLOCTT,CamInfo->CamATrkFlg);
|
|
}
|
|
|
|
void CCamInfoTab::DataOut()
|
|
{
|
|
CamInfo->Loc.x=m_CamLocX;
|
|
CamInfo->Loc.y=m_CamLocY;
|
|
CamInfo->Loc.z=m_CamLocZ;
|
|
CamInfo->CamTrackAlt=m_CamTrkAlt;
|
|
}
|
|
|
|
void CCamInfoTab::UpdateControlStates()
|
|
{
|
|
m_CTAlt.EnableWindow(IsDlgButtonChecked(IDC_CLOCTT));
|
|
CheckRadioButton(IDC_FREE,IDC_TRACK,CamInfo->GetMode()==CameraInfo::CM_TRACK?IDC_TRACK:IDC_FREE);
|
|
}
|
|
|
|
void CCamInfoTab::OnChangeCamlocx()
|
|
{
|
|
DelayedValidate();
|
|
CamInfo->SetMode(CameraInfo::CM_FREE);
|
|
}
|
|
|
|
void CCamInfoTab::OnChangeCamlocy()
|
|
{
|
|
DelayedValidate();
|
|
CamInfo->CamATrkFlg=false;
|
|
CheckDlgButton(IDC_CLOCTT,FALSE);
|
|
UpdateControlStates();
|
|
}
|
|
|
|
void CCamInfoTab::OnChangeCamlocz()
|
|
{
|
|
DelayedValidate();
|
|
CamInfo->SetMode(CameraInfo::CM_FREE);
|
|
}
|
|
|
|
void CCamInfoTab::OnCloctt()
|
|
{
|
|
UpdateControlStates();
|
|
CamInfo->CamATrkFlg=IsDlgButtonChecked(IDC_CLOCTT)?true:false;
|
|
}
|
|
|
|
void CCamInfoTab::OnFree()
|
|
{
|
|
CamInfo->SetMode(CameraInfo::CM_FREE);
|
|
}
|
|
|
|
void CCamInfoTab::OnTrack()
|
|
{
|
|
CamInfo->SetMode(CameraInfo::CM_TRACK);
|
|
}
|
|
|
|
void CCamInfoTab::OnChangeCamtalt()
|
|
{
|
|
DelayedValidate();
|
|
}
|