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>
502 lines
14 KiB
C++
502 lines
14 KiB
C++
// meshpage.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "effecteditor.h"
|
||
#include "meshpage.h"
|
||
|
||
#include "MainFrm.h"
|
||
#include "EffectEditorDoc.h"
|
||
#include "EffectEditorView.h"
|
||
|
||
#include "Z3DMath.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CMeshPage property page
|
||
|
||
IMPLEMENT_DYNCREATE(CMeshPage, CPropertyPage)
|
||
|
||
CMeshPage::CMeshPage() : CPropertyPage(CMeshPage::IDD)
|
||
{
|
||
//{{AFX_DATA_INIT(CMeshPage)
|
||
m_strMesh = _T("");
|
||
m_dwEndFrame = 0;
|
||
m_dwStartFrame = 0;
|
||
m_dwObjectMax = 0;
|
||
m_dwObjectNum = 0;
|
||
m_fTexFrame = 0.0f;
|
||
m_fStartTexFrame = 0.0f;
|
||
//}}AFX_DATA_INIT
|
||
}
|
||
|
||
CMeshPage::~CMeshPage()
|
||
{
|
||
}
|
||
|
||
void CMeshPage::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CPropertyPage::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CMeshPage)
|
||
DDX_Control(pDX, IDC_COLR, m_edtColR);
|
||
DDX_Control(pDX, IDC_COLG, m_edtColG);
|
||
DDX_Control(pDX, IDC_COLB, m_edtColB);
|
||
DDX_Control(pDX, IDC_ALPHA, m_edtAlpha);
|
||
DDX_Control(pDX, IDC_CBSRC, m_cbSrc);
|
||
DDX_Control(pDX, IDC_CBDEST, m_cbDest);
|
||
DDX_Text(pDX, IDC_MESH, m_strMesh);
|
||
DDX_Text(pDX, IDC_ENDFRAME, m_dwEndFrame);
|
||
DDX_Text(pDX, IDC_STARTFRAME, m_dwStartFrame);
|
||
DDX_Text(pDX, IDC_OBECJTMAX, m_dwObjectMax);
|
||
DDX_Text(pDX, IDC_OBJECTNUM, m_dwObjectNum);
|
||
DDX_Text(pDX, IDC_TEXFRAME, m_fTexFrame);
|
||
DDX_Text(pDX, IDC_STARTTEXFRAME, m_fStartTexFrame);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CMeshPage, CPropertyPage)
|
||
//{{AFX_MSG_MAP(CMeshPage)
|
||
ON_BN_CLICKED(IDC_CREATE, OnCreate)
|
||
ON_BN_CLICKED(IDC_DELETE, OnDelete)
|
||
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
|
||
ON_CBN_SELCHANGE(IDC_CBSRC, OnSelchangeCbsrc)
|
||
ON_CBN_SELCHANGE(IDC_CBDEST, OnSelchangeCbdest)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CMeshPage message handlers
|
||
void CMeshPage::Redo(CCommand *RedoCommand)
|
||
{
|
||
}
|
||
|
||
void CMeshPage::InitValue(void)
|
||
{
|
||
m_strMesh = _T("");
|
||
m_dwEndFrame = 30;
|
||
m_dwStartFrame = 1;
|
||
m_dwObjectMax = 0;
|
||
m_dwObjectNum = 0;
|
||
m_fTexFrame = 1.0f;
|
||
m_fStartTexFrame = 0.0f;
|
||
|
||
m_edtAlpha.SetValue((unsigned char)255);
|
||
m_edtAlpha.DisableBkColor();
|
||
m_edtColB.SetValue((unsigned char)255);
|
||
m_edtColB.DisableBkColor();
|
||
m_edtColG.SetValue((unsigned char)255);
|
||
m_edtColG.DisableBkColor();
|
||
m_edtColR.SetValue((unsigned char)255);
|
||
m_edtColR.DisableBkColor();
|
||
}
|
||
|
||
void CMeshPage::Undo(CCommand *UndoCommand)
|
||
{
|
||
}
|
||
|
||
void CMeshPage::SetKeyInfo(void)
|
||
{
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
unsigned long dwFrame = mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwPreFrame - 1;
|
||
|
||
if(pMesh)
|
||
{
|
||
pMesh->Interpolation(dwFrame);
|
||
|
||
// m_strTexture = pMesh->GetTextureFileName();
|
||
|
||
m_dwObjectMax = pMesh->m_dwObjectNum;
|
||
m_dwEndFrame = pMesh->GetEndFrame();
|
||
m_dwStartFrame = pMesh->GetStartFrame();
|
||
if(m_dwObjectNum < m_dwObjectMax)
|
||
{
|
||
m_fTexFrame = pMesh->GetTexFrame(m_dwObjectNum);
|
||
m_fStartTexFrame = pMesh->GetStartTexFrame(m_dwObjectNum);
|
||
m_edtAlpha = pMesh->GetObjectAlpha(dwFrame, m_dwObjectNum);
|
||
m_edtColB = pMesh->GetObjectBColor(dwFrame, m_dwObjectNum);
|
||
m_edtColG = pMesh->GetObjectGColor(dwFrame, m_dwObjectNum);
|
||
m_edtColR = pMesh->GetObjectRColor(dwFrame, m_dwObjectNum);
|
||
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame))
|
||
{
|
||
m_edtAlpha.SetBkColor(0x000000FF, 0x00FFFFFF);
|
||
m_edtColB.SetBkColor(0x000000FF, 0x00FFFFFF);
|
||
m_edtColG.SetBkColor(0x000000FF, 0x00FFFFFF);
|
||
m_edtColR.SetBkColor(0x000000FF, 0x00FFFFFF);
|
||
} else
|
||
{
|
||
m_edtAlpha.DisableBkColor();
|
||
m_edtColB.DisableBkColor();
|
||
m_edtColG.DisableBkColor();
|
||
m_edtColR.DisableBkColor();
|
||
}
|
||
} else
|
||
{
|
||
/* m_fTexFrame = 0.0f;
|
||
m_fStartTexFrame = 0.0f;
|
||
m_edtAlpha = (char)0;
|
||
m_edtColB = (char)0;
|
||
m_edtColG = (char)0;
|
||
m_edtColR = (char)0;
|
||
m_edtAlpha.DisableBkColor();
|
||
m_edtColB.DisableBkColor();
|
||
m_edtColG.DisableBkColor();
|
||
m_edtColR.DisableBkColor();*/
|
||
}
|
||
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
|
||
mf->m_KeyBar.m_lpKeySheet->m_Page1.ClearMarker();
|
||
for(int i = 0; i < mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwTotalFrame; i++)
|
||
{
|
||
if(m_dwObjectNum < m_dwObjectMax) {
|
||
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(i))
|
||
{
|
||
if(!mf->m_KeyBar.m_lpKeySheet->m_Page1.m_sldPoint.FindMarker(i))
|
||
{
|
||
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMarker(i);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
m_cbSrc.SetCurSel(pMesh->GetSrcBlending() - D3DBLEND_ZERO);
|
||
m_cbDest.SetCurSel(pMesh->GetDestBlending() - D3DBLEND_ZERO);
|
||
|
||
UpdateData(FALSE);
|
||
Invalidate(FALSE);
|
||
}
|
||
}
|
||
|
||
BOOL CMeshPage::OnInitDialog()
|
||
{
|
||
CPropertyPage::OnInitDialog();
|
||
|
||
// TODO: Add extra initialization here
|
||
m_cbSrc.AddString("ZERO");
|
||
m_cbSrc.AddString("ONE");
|
||
m_cbSrc.AddString("SRCCOLOR");
|
||
m_cbSrc.AddString("INVSRCCOLOR");
|
||
m_cbSrc.AddString("SRCALPHA");
|
||
m_cbSrc.AddString("INVSRCALPHA");
|
||
m_cbSrc.AddString("DESTALPHA");
|
||
m_cbSrc.AddString("INVDESTALPHA");
|
||
m_cbSrc.AddString("DESTCOLOR");
|
||
m_cbSrc.AddString("INVDESTCOLOR");
|
||
m_cbSrc.AddString("SRCALPHASAT");
|
||
m_cbSrc.AddString("BOTHSRCALPHA");
|
||
m_cbSrc.AddString("BOTHINVSRCALPHA");
|
||
m_cbSrc.SetCurSel(4);
|
||
|
||
m_cbDest.AddString("ZERO");
|
||
m_cbDest.AddString("ONE");
|
||
m_cbDest.AddString("SRCCOLOR");
|
||
m_cbDest.AddString("INVSRCCOLOR");
|
||
m_cbDest.AddString("SRCALPHA");
|
||
m_cbDest.AddString("INVSRCALPHA");
|
||
m_cbDest.AddString("DESTALPHA");
|
||
m_cbDest.AddString("INVDESTALPHA");
|
||
m_cbDest.AddString("DESTCOLOR");
|
||
m_cbDest.AddString("INVDESTCOLOR");
|
||
m_cbDest.AddString("SRCALPHASAT");
|
||
m_cbDest.AddString("BOTHSRCALPHA");
|
||
m_cbDest.AddString("BOTHINVSRCALPHA");
|
||
m_cbDest.SetCurSel(1);
|
||
|
||
InitValue();
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
void CMeshPage::OnCreate()
|
||
{
|
||
// TODO: Add your control notification handler code here
|
||
UpdateData();
|
||
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame > m_dwStartFrame)
|
||
{
|
||
m_dwStartFrame = ((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame;
|
||
}
|
||
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame > m_dwEndFrame)
|
||
{
|
||
m_dwEndFrame = ((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame;
|
||
}
|
||
if(((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() < m_dwStartFrame)
|
||
{
|
||
m_dwStartFrame = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() + 1;
|
||
}
|
||
if(((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() < m_dwEndFrame)
|
||
{
|
||
m_dwEndFrame = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() + 1;
|
||
}
|
||
|
||
CX3DEffectEditMesh *pMesh;
|
||
pMesh = new CX3DEffectEditMesh;
|
||
unsigned long dwStartFrame = m_dwStartFrame - 1;
|
||
unsigned long dwEndFrame = m_dwEndFrame - 1;
|
||
|
||
pMesh->Create(dwStartFrame, dwEndFrame);
|
||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->AddEffect(pMesh);
|
||
((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->AddEditObject(pMesh);
|
||
{
|
||
pMesh->LoadFile(m_strMesh.GetBuffer(m_strMesh.GetLength()));
|
||
|
||
for(long i = 0; i < pMesh->m_dwObjectNum; i++)
|
||
{
|
||
SetKey(dwStartFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
pMesh->SetTexFrame(i, 1.0f);
|
||
pMesh->SetStartTexFrame(i, 0.0f);
|
||
}
|
||
|
||
pMesh->SetSrcBlending(D3DBLEND_ZERO + m_cbSrc.GetCurSel());
|
||
pMesh->SetDestBlending(D3DBLEND_ZERO + m_cbDest.GetCurSel());
|
||
pMesh->SetEffectKind(EFFECT_MESH);
|
||
|
||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetMaxFrame(pMesh->GetMaxFrame());
|
||
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMaxFrame(pMesh->GetMaxFrame());
|
||
mf->m_KeyBar.m_lpKeySheet->m_Page1.m_sldKeyFrame.SetRange(0, pMesh->GetMaxFrame() - 1);
|
||
|
||
SetKeyInfo();
|
||
}
|
||
}
|
||
|
||
void CMeshPage::OnDelete()
|
||
{
|
||
// TODO: Add your control notification handler code here
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect != 0xFFFFFFFF)
|
||
{
|
||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->DeleteEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->DeleteEditObject(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
}
|
||
((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect = 0xFFFFFFFF;
|
||
|
||
InitValue();
|
||
UpdateData(FALSE);
|
||
}
|
||
|
||
void CMeshPage::OnBrowse()
|
||
{
|
||
// TODO: Add your control notification handler code here
|
||
char strFilter[50] = "GEM <20><><EFBFBD><EFBFBD>(*.gem)|*.gem||";
|
||
|
||
CFileDialog dlg(TRUE, "*.gem", "", OFN_HIDEREADONLY | OFN_LONGNAMES, strFilter);
|
||
if(dlg.DoModal() == IDOK)
|
||
{
|
||
m_strMesh = dlg.GetPathName();
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
if(pMesh)
|
||
{
|
||
pMesh->LoadFile(m_strMesh.GetBuffer(m_strMesh.GetLength()));
|
||
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMaxFrame(pMesh->GetMaxFrame());
|
||
}
|
||
|
||
UpdateData(FALSE);
|
||
}
|
||
}
|
||
|
||
void CMeshPage::OnSelchangeCbsrc()
|
||
{
|
||
// TODO: Add your control notification handler code here
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
|
||
if(pMesh)
|
||
{
|
||
pMesh->SetSrcBlending(D3DBLEND_ZERO + m_cbSrc.GetCurSel());
|
||
}
|
||
}
|
||
|
||
void CMeshPage::OnSelchangeCbdest()
|
||
{
|
||
// TODO: Add your control notification handler code here
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
|
||
if(pMesh)
|
||
{
|
||
pMesh->SetDestBlending(D3DBLEND_ZERO + m_cbDest.GetCurSel());
|
||
}
|
||
}
|
||
|
||
BOOL CMeshPage::PreTranslateMessage(MSG* pMsg)
|
||
{
|
||
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
|
||
{
|
||
UpdateData();
|
||
|
||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
|
||
unsigned long dwFrame = mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwPreFrame - 1;
|
||
|
||
switch(::GetDlgCtrlID(pMsg->hwnd))
|
||
{
|
||
/* case IDC_TEXTURE:
|
||
if(pMesh)
|
||
{
|
||
pMesh->LoadTexture(m_strTexture);
|
||
}
|
||
break;
|
||
*/
|
||
case IDC_ALPHA:
|
||
case IDC_COLR:
|
||
case IDC_COLG:
|
||
case IDC_COLB:
|
||
if(pMesh)
|
||
{
|
||
color lData;
|
||
|
||
if(m_dwObjectNum >= m_dwObjectMax)
|
||
{
|
||
for(int i = 0; i < m_dwObjectMax; i++)
|
||
{
|
||
if(!strcmp(m_edtColR, "") || !strcmp(m_edtColG, "") || !strcmp(m_edtColB, "") || !strcmp(m_edtAlpha, ""))
|
||
{
|
||
if(pMesh->m_moMesh[i].m_lstColor.Find(dwFrame, lData))
|
||
{
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_DELKEY, 2, lData);
|
||
pMesh->m_moMesh[i].m_lstColor.Erase(dwFrame);
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(pMesh->m_moMesh[i].m_lstColor.Find(dwFrame, lData))
|
||
{
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_OLDDATA, 2, lData);
|
||
SetKey(dwFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_NEWDATA, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
} else
|
||
{
|
||
SetKey(dwFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_INSERT, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
}
|
||
}
|
||
|
||
break;
|
||
}
|
||
|
||
if(!strcmp(m_edtColR, "") || !strcmp(m_edtColG, "") || !strcmp(m_edtColB, "") || !strcmp(m_edtAlpha, ""))
|
||
{
|
||
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame, lData))
|
||
{
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_DELKEY, 2, lData);
|
||
pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Erase(dwFrame);
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame, lData))
|
||
{
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_OLDDATA, 2, lData);
|
||
SetKey(dwFrame, pMesh->m_moMesh[m_dwObjectNum].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_NEWDATA, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
} else
|
||
{
|
||
SetKey(dwFrame, pMesh->m_moMesh[m_dwObjectNum].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_INSERT, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IDC_OBJECTNUM:
|
||
if(pMesh)
|
||
{
|
||
if(m_dwObjectNum >= m_dwObjectMax)
|
||
{
|
||
break;
|
||
}
|
||
|
||
pMesh->SetObjectColor(m_dwObjectNum);
|
||
}
|
||
break;
|
||
|
||
case IDC_TEXFRAME:
|
||
if(pMesh)
|
||
{
|
||
if(m_dwObjectNum >= m_dwObjectMax)
|
||
{
|
||
if(m_fTexFrame < 1.0f)
|
||
{
|
||
MessageBox("1.0 <20><><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||
break;
|
||
}
|
||
|
||
for(int i = 0; i < m_dwObjectMax; i++)
|
||
{
|
||
pMesh->SetTexFrame(i, m_fTexFrame);
|
||
}
|
||
|
||
break;
|
||
}
|
||
|
||
if(m_fTexFrame < 1.0f)
|
||
{
|
||
MessageBox("1.0 <20><><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||
break;
|
||
}
|
||
|
||
pMesh->SetTexFrame(m_dwObjectNum, m_fTexFrame);
|
||
}
|
||
break;
|
||
|
||
case IDC_STARTTEXFRAME:
|
||
if(pMesh)
|
||
{
|
||
if(m_dwObjectNum >= m_dwObjectMax)
|
||
{
|
||
for(int i = 0; i < m_dwObjectMax; i++)
|
||
{
|
||
pMesh->SetStartTexFrame(i, m_fStartTexFrame);
|
||
}
|
||
|
||
break;
|
||
}
|
||
|
||
pMesh->SetStartTexFrame(m_dwObjectNum, m_fStartTexFrame);
|
||
}
|
||
break;
|
||
/*
|
||
case IDC_STARTFRAME:
|
||
if(pParticle)
|
||
{
|
||
// pParticle->EditFrame(pParticle->GetStartFrame(), m_dwStartFrame);
|
||
pParticle->SetStartFrame(m_dwStartFrame);
|
||
if(pParticle->GetEndFrame() < m_dwStartFrame)
|
||
{
|
||
pParticle->SetEndFrame(m_dwStartFrame);
|
||
m_dwEndFrame = m_dwStartFrame;
|
||
UpdateData(FALSE);
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IDC_ENDFRAME:
|
||
if(pParticle)
|
||
{
|
||
if(pParticle->GetStartFrame() > m_dwEndFrame)
|
||
{
|
||
m_dwEndFrame = pParticle->GetStartFrame();
|
||
UpdateData(FALSE);
|
||
}
|
||
pParticle->SetEndFrame(m_dwEndFrame);
|
||
}
|
||
break;*/
|
||
}
|
||
|
||
SetKeyInfo();
|
||
}
|
||
return CPropertyPage::PreTranslateMessage(pMsg);
|
||
}
|