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.
130 lines
4.0 KiB
C++
130 lines
4.0 KiB
C++
// ProfilePanel.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "pixelwhippro.h"
|
|
#include "ProfilePanel.h"
|
|
|
|
extern CPixelWhipProApp theApp;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CProfilePanel dialog
|
|
|
|
|
|
CProfilePanel::CProfilePanel(CWnd* pParent /*=NULL*/)
|
|
: CDynaPanel(CProfilePanel::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CProfilePanel)
|
|
m_PrfPan = -1;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CProfilePanel::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDynaPanel::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CProfilePanel)
|
|
DDX_CBIndex(pDX, IDC_PRF, m_PrfPan);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CProfilePanel, CDynaPanel)
|
|
//{{AFX_MSG_MAP(CProfilePanel)
|
|
ON_CBN_SELCHANGE(IDC_PRF, OnSelchangePrf)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CProfilePanel message handlers
|
|
void CProfilePanel::Set(void *dat)
|
|
{
|
|
gosFX::Effect::Specification *espec=(gosFX::Effect::Specification *)dat;
|
|
tspec=NULL;
|
|
bspec=NULL;
|
|
|
|
switch(espec->GetClassID())
|
|
{
|
|
case gosFX::TubeClassID:
|
|
tspec=(gosFX::Tube__Specification *)dat;
|
|
break;
|
|
|
|
case gosFX::BeamClassID:
|
|
bspec=(gosFX::Beam__Specification *)dat;
|
|
break;
|
|
}
|
|
|
|
if(tspec)
|
|
switch(tspec->m_profileType)
|
|
{
|
|
case gosFX::Tube__Specification::e_Ribbon : m_PrfPan=0; break;
|
|
case gosFX::Tube__Specification::e_VerticalRibbon : m_PrfPan=1; break;
|
|
case gosFX::Tube__Specification::e_Triangle: m_PrfPan=2; break;
|
|
case gosFX::Tube__Specification::e_Square: m_PrfPan=3; break;
|
|
case gosFX::Tube__Specification::e_Cross: m_PrfPan=4; break;
|
|
case gosFX::Tube__Specification::e_Pentagon: m_PrfPan=5; break;
|
|
case gosFX::Tube__Specification::e_Hexagon: m_PrfPan=6; break;
|
|
case gosFX::Tube__Specification::e_AlignedRibbon: m_PrfPan=7; break;
|
|
|
|
}
|
|
|
|
if(bspec)
|
|
switch(bspec->m_profileType)
|
|
{
|
|
case gosFX::Beam__Specification::e_Ribbon : m_PrfPan=0; break;
|
|
case gosFX::Beam__Specification::e_VerticalRibbon : m_PrfPan=1; break;
|
|
case gosFX::Beam__Specification::e_Triangle: m_PrfPan=2; break;
|
|
case gosFX::Beam__Specification::e_Square: m_PrfPan=3; break;
|
|
case gosFX::Beam__Specification::e_Cross: m_PrfPan=4; break;
|
|
case gosFX::Beam__Specification::e_Pentagon: m_PrfPan=5; break;
|
|
case gosFX::Beam__Specification::e_Hexagon: m_PrfPan=6; break;
|
|
case gosFX::Beam__Specification::e_AlignedRibbon: m_PrfPan=7; break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
void CProfilePanel::OnSelchangePrf()
|
|
{
|
|
UpdateData(TRUE);
|
|
theApp.StopEffects();
|
|
|
|
if(tspec)
|
|
{
|
|
switch(m_PrfPan)
|
|
{
|
|
case 0: tspec->m_profileType=gosFX::Tube__Specification::e_Ribbon ; break;
|
|
case 1: tspec->m_profileType=gosFX::Tube__Specification::e_VerticalRibbon ; break;
|
|
case 2: tspec->m_profileType=gosFX::Tube__Specification::e_Triangle; break;
|
|
case 3: tspec->m_profileType=gosFX::Tube__Specification::e_Square; break;
|
|
case 4: tspec->m_profileType=gosFX::Tube__Specification::e_Cross; break;
|
|
case 5: tspec->m_profileType=gosFX::Tube__Specification::e_Pentagon; break;
|
|
case 6: tspec->m_profileType=gosFX::Tube__Specification::e_Hexagon; break;
|
|
case 7: tspec->m_profileType=gosFX::Tube__Specification::e_AlignedRibbon; break;
|
|
|
|
}
|
|
tspec->BuildTemplate();
|
|
}
|
|
|
|
if(bspec)
|
|
{
|
|
switch(m_PrfPan)
|
|
{
|
|
case 0: bspec->m_profileType=gosFX::Beam__Specification::e_Ribbon ; break;
|
|
case 1: bspec->m_profileType=gosFX::Beam__Specification::e_VerticalRibbon ; break;
|
|
case 2: bspec->m_profileType=gosFX::Beam__Specification::e_Triangle; break;
|
|
case 3: bspec->m_profileType=gosFX::Beam__Specification::e_Square; break;
|
|
case 4: bspec->m_profileType=gosFX::Beam__Specification::e_Cross; break;
|
|
case 5: bspec->m_profileType=gosFX::Beam__Specification::e_Pentagon; break;
|
|
case 6: bspec->m_profileType=gosFX::Beam__Specification::e_Hexagon; break;
|
|
case 7: bspec->m_profileType=gosFX::Beam__Specification::e_AlignedRibbon; break;
|
|
|
|
}
|
|
bspec->BuildTemplate();
|
|
}
|
|
|
|
theApp.StartEffects();
|
|
|
|
}
|