Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
379
GameTools/EffectEditor/KeyPage.cpp
Normal file
379
GameTools/EffectEditor/KeyPage.cpp
Normal file
@@ -0,0 +1,379 @@
|
||||
// KeyPage.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
#include "KeyPage.h"
|
||||
|
||||
#include "MainFrm.h"
|
||||
#include "EffectEditorDoc.h"
|
||||
#include "EffectEditorView.h"
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
#undef THIS_FILE
|
||||
static char BASED_CODE THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
IMPLEMENT_DYNCREATE(CKeyPage, CPropertyPage)
|
||||
IMPLEMENT_DYNCREATE(CScenarioPage, CPropertyPage)
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CKeyPage property page
|
||||
|
||||
CKeyPage::CKeyPage() : CPropertyPage(CKeyPage::IDD)
|
||||
{
|
||||
float fFrameTick;
|
||||
CMainFrame *mf = (CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
//{{AFX_DATA_INIT(CKeyPage)
|
||||
m_dwPreFrame = 1;
|
||||
m_dwTotalFrame = 30;
|
||||
m_fFrameSec = 40.0f;
|
||||
|
||||
m_bLoop = FALSE;
|
||||
m_cBlue = 0;
|
||||
m_cGreen = 0;
|
||||
m_cRed = 0;
|
||||
m_fIncFrame = 1.0f;
|
||||
m_WavName.Empty();
|
||||
m_pSbuffer = NULL;
|
||||
m_pSmanager = NULL;
|
||||
//}}AFX_DATA_INIT
|
||||
fFrameTick = 1000 / m_fFrameSec;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrameTick((unsigned long) fFrameTick);
|
||||
}
|
||||
|
||||
CKeyPage::~CKeyPage()
|
||||
{
|
||||
}
|
||||
|
||||
void CKeyPage::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CPropertyPage::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CKeyPage)
|
||||
DDX_Control(pDX, IDC_POINTSLIDER, m_sldPoint);
|
||||
DDX_Control(pDX, IDC_KEYSLIDER, m_sldKeyFrame);
|
||||
DDX_Text(pDX, IDC_PREFRAME, m_dwPreFrame);
|
||||
DDX_Text(pDX, IDC_TOTALFRAME, m_dwTotalFrame);
|
||||
DDX_Text(pDX, IDC_FRAMESEC, m_fFrameSec);
|
||||
DDX_Check(pDX, IDC_LOOP, m_bLoop);
|
||||
DDX_Text(pDX, IDC_BLUE, m_cBlue);
|
||||
DDV_MinMaxByte(pDX, m_cBlue, 0, 255);
|
||||
DDX_Text(pDX, IDC_GREEN, m_cGreen);
|
||||
DDV_MinMaxByte(pDX, m_cGreen, 0, 255);
|
||||
DDX_Text(pDX, IDC_RED, m_cRed);
|
||||
DDV_MinMaxByte(pDX, m_cRed, 0, 255);
|
||||
DDX_Text(pDX, IDC_INCFRAME, m_fIncFrame);
|
||||
DDX_Text(pDX, IDC_WAVNAME, m_WavName);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CKeyPage, CPropertyPage)
|
||||
//{{AFX_MSG_MAP(CKeyPage)
|
||||
ON_WM_HSCROLL()
|
||||
ON_BN_CLICKED(IDC_PLAY, OnPlay)
|
||||
ON_BN_CLICKED(IDC_LOOP, OnLoop)
|
||||
ON_BN_CLICKED(IDC_STOP, OnStop)
|
||||
ON_BN_CLICKED(IDC_WAV, OnWav)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CScenarioPage property page
|
||||
|
||||
CScenarioPage::CScenarioPage() : CPropertyPage(CScenarioPage::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CScenarioPage)
|
||||
m_fPrePro = 1.0f;
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
CScenarioPage::~CScenarioPage()
|
||||
{
|
||||
}
|
||||
|
||||
void CScenarioPage::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CPropertyPage::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CScenarioPage)
|
||||
DDX_Control(pDX, IDC_KEYSLIDER, m_sldKeyFrame);
|
||||
DDX_Text(pDX, IDC_PREPRO, m_fPrePro);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CScenarioPage, CPropertyPage)
|
||||
//{{AFX_MSG_MAP(CScenarioPage)
|
||||
ON_WM_HSCROLL()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
||||
BOOL CKeyPage::OnInitDialog()
|
||||
{
|
||||
CPropertyPage::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
m_sldKeyFrame.SetRange(0, 29);
|
||||
m_sldKeyFrame.SetPos(0);
|
||||
|
||||
m_sldPoint.Init(0, 29, 30, NULL, MLTSLD_DISPLAY_TOOLTIPS | MLTSLD_INTEGERS);
|
||||
|
||||
// CSoundManager & smanager = CSoundManager::GetInstance();
|
||||
// m_pSmanager = &smanager;
|
||||
// m_pSmanager->Create(GetSafeHwnd());
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CKeyPage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
if(pScrollBar == (CScrollBar *)&m_sldKeyFrame)
|
||||
{
|
||||
nPos = m_sldKeyFrame.GetPos();
|
||||
m_sldKeyFrame.SetPos(nPos);
|
||||
|
||||
m_dwPreFrame = nPos + 1;
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
|
||||
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
|
||||
{
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||||
switch(pEffect->GetEffectKind())
|
||||
{
|
||||
case EFFECT_PARTICLE:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case EFFECT_BILLBOARD:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page2.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case EFFECT_CYLINDER:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page3.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case EFFECT_PLANE:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page4.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case EFFECT_SPHERE:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page5.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case EFFECT_MESH:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page6.SetKeyInfo();
|
||||
break;
|
||||
}
|
||||
}
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
BOOL CKeyPage::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
// TODO: Add your specialized code here and/or call the base class
|
||||
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
|
||||
{
|
||||
CMainFrame *mf = (CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
float fFrameTick;
|
||||
unsigned long temp;
|
||||
|
||||
UpdateData();
|
||||
switch(::GetDlgCtrlID(pMsg->hwnd))
|
||||
{
|
||||
case IDC_TOTALFRAME:
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetMaxFrame(m_dwTotalFrame);
|
||||
|
||||
temp = m_sldKeyFrame.GetPos();
|
||||
m_sldKeyFrame.SetRange(0, m_dwTotalFrame - 1);
|
||||
m_sldPoint.SetRanges(0, m_dwTotalFrame - 1);
|
||||
if(temp > (m_dwTotalFrame - 1))
|
||||
{
|
||||
m_sldKeyFrame.SetPos(0);
|
||||
m_dwPreFrame = m_sldKeyFrame.GetPos() + 1;
|
||||
UpdateData(FALSE);
|
||||
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
|
||||
}
|
||||
UpdateData(FALSE);
|
||||
break;
|
||||
|
||||
case IDC_FRAMESEC:
|
||||
fFrameTick = 1000 / m_fFrameSec;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrameTick((unsigned long) fFrameTick);
|
||||
break;
|
||||
|
||||
case IDC_INCFRAME:
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetIncFrame(m_fIncFrame);
|
||||
break;
|
||||
|
||||
case IDC_RED:
|
||||
case IDC_GREEN:
|
||||
case IDC_BLUE:
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_cBackRed = m_cRed;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_cBackGreen = m_cGreen;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_cBackBlue = m_cBlue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return CPropertyPage::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CKeyPage::OnPlay()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_fPlayFrame = 0.0f;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_dwOldTick = GetTickCount() - 33;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrame(0.0f);
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetPlay(TRUE);
|
||||
// ((CEffectEditorView*)mf->GetActiveView())->m_pChr->SetMotion(((CEffectEditorView*)mf->GetActiveView())->m_strMotion);
|
||||
// ((CEffectEditorView*)mf->GetActiveView())->m_pChr->SetMotionSheet(((CEffectEditorView*)mf->GetActiveView())->m_strWeaponSeet);
|
||||
//wav file name input
|
||||
/* if(!m_WavName.IsEmpty()) {
|
||||
|
||||
CSoundBuffer & sbuffer = m_pSmanager->GetBuffer(m_WavName,false,false);
|
||||
m_pSbuffer = &sbuffer;
|
||||
|
||||
sbuffer.Play((bool)m_bLoop);
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
void CKeyPage::OnLoop()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
UpdateData();
|
||||
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetLoop(m_bLoop);
|
||||
}
|
||||
|
||||
void CKeyPage::OnStop()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetPlay(FALSE);
|
||||
if(m_pSbuffer) {
|
||||
m_pSbuffer->Destroy();
|
||||
m_pSbuffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CScenarioPage::OnInitDialog()
|
||||
{
|
||||
CPropertyPage::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
m_sldKeyFrame.SetRange(0, 99);
|
||||
m_sldKeyFrame.SetPos(0);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CScenarioPage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
if(pScrollBar == (CScrollBar *)&m_sldKeyFrame)
|
||||
{
|
||||
nPos = m_sldKeyFrame.GetPos();
|
||||
m_sldKeyFrame.SetPos(nPos);
|
||||
|
||||
m_fPrePro = nPos + 1;
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
|
||||
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
|
||||
{
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||||
switch(pEffect->GetEffectKind())
|
||||
{
|
||||
case 0:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
|
||||
break;
|
||||
}
|
||||
}
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
void CKeyPage::SetKeyFrame(unsigned long dwFrame)
|
||||
{
|
||||
m_sldKeyFrame.SetPos(dwFrame);
|
||||
|
||||
m_dwPreFrame = dwFrame + 1;
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
|
||||
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
|
||||
{
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||||
switch(pEffect->GetEffectKind())
|
||||
{
|
||||
case 0:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page2.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page3.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page4.SetKeyInfo();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mf->m_EffectBar.m_lpEffectSheet->m_Page5.SetKeyInfo();
|
||||
break;
|
||||
}
|
||||
}
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CKeyPage::SetMaxFrame(unsigned long dwTotalFrame)
|
||||
{
|
||||
m_dwTotalFrame = dwTotalFrame;
|
||||
m_sldPoint.SetRanges(0, m_dwTotalFrame - 1);
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CKeyPage::SetMarker(unsigned long dwMarker)
|
||||
{
|
||||
m_sldPoint.SetMaker(dwMarker);
|
||||
}
|
||||
|
||||
void CKeyPage::ClearMarker()
|
||||
{
|
||||
m_sldPoint.ResetMarkers();
|
||||
}
|
||||
|
||||
void CKeyPage::OnWav()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CString strFilter = "Wave Files (*.wav)|*.wav|All Files (*.*)|*.*||";
|
||||
|
||||
CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this);
|
||||
|
||||
filedia.DoModal();
|
||||
m_WavName=filedia.GetFileName();
|
||||
UpdateData(false);
|
||||
}
|
||||
Reference in New Issue
Block a user