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.
107 lines
2.2 KiB
C++
107 lines
2.2 KiB
C++
// LightPanel.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "mw4gameed2.h"
|
|
#include "LightPanel.h"
|
|
#include "GUILight.h"
|
|
#include "refresher.h"
|
|
#include "ColorDlgProDlg.h"
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CLightPanel dialog
|
|
|
|
|
|
CLightPanel::CLightPanel(GUILight *gobj,UndoCommand **cmd,CWnd* pParent)
|
|
: CPanelDlg(CLightPanel::IDD, pParent)
|
|
{
|
|
MyObj=gobj;
|
|
CmdLst=cmd;
|
|
OldIntensity=MyObj->GetIntensity();
|
|
OldColor=MyObj->GetColor();
|
|
ColDlg=NULL;
|
|
//{{AFX_DATA_INIT(CLightPanel)
|
|
m_Intensity = 0.0f;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CLightPanel::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CPanelDlg::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CLightPanel)
|
|
DDX_Control(pDX, IDC_LIGHTCOLOR, m_ColBut);
|
|
DDX_Text(pDX, IDC_INTENSITY, m_Intensity);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CLightPanel, CPanelDlg)
|
|
//{{AFX_MSG_MAP(CLightPanel)
|
|
ON_BN_CLICKED(IDC_LIGHTCOLOR, OnLightcolor)
|
|
ON_EN_CHANGE(IDC_INTENSITY, OnChangeIntensity)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CLightPanel message handlers
|
|
|
|
void CLightPanel::OnOK()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
MyObj->SetIntensity(m_Intensity);
|
|
MyObj->SetColor(m_ColBut.GetRGBColor());
|
|
|
|
}
|
|
|
|
void CLightPanel::OnCancel()
|
|
{
|
|
MyObj->SetIntensity(OldIntensity);
|
|
MyObj->SetColor(OldColor);
|
|
}
|
|
|
|
|
|
BOOL CLightPanel::OnInitDialog()
|
|
{
|
|
CPanelDlg::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
m_ColBut.SetColor(MyObj->GetColor());
|
|
m_Intensity=MyObj->GetIntensity();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CLightPanel::OnLightcolor()
|
|
{
|
|
ColDlg=new CColorDlgProDlg(&m_ColBut.Color,this);
|
|
|
|
if(ColDlg->DoModal()==IDOK)
|
|
{
|
|
m_ColBut.SetColor(ColDlg->m_Color);
|
|
}
|
|
UpdateGame();
|
|
delete ColDlg;
|
|
ColDlg=NULL;
|
|
}
|
|
|
|
void CLightPanel::UpdateGame()
|
|
{
|
|
UpdateData(TRUE);
|
|
MyObj->SetColor(m_ColBut.GetRGBColor());
|
|
MyObj->SetIntensity(OldIntensity);
|
|
Refresher::Instance->View3DRefresh();
|
|
}
|
|
|
|
|
|
void CLightPanel::OnChangeIntensity()
|
|
{
|
|
UpdateGame();
|
|
|
|
}
|