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:
501
GameTools/EffectEditor/meshpage.cpp
Normal file
501
GameTools/EffectEditor/meshpage.cpp
Normal file
@@ -0,0 +1,501 @@
|
||||
// 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);
|
||||
}
|
||||
Reference in New Issue
Block a user