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:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View 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);
}