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,286 @@
// PageDuengunContainer.cpp : implementation file
//
#include "stdafx.h"
#include "worldcreator.h"
#include "PageDuengunContainer.h"
#include "SceneManager.h"
#include "worldcreatorView.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPageDuengunContainer property page
IMPLEMENT_DYNCREATE(CPageDuengunContainer, CPropertyPage)
CPageDuengunContainer::CPageDuengunContainer() : CPropertyPage(CPageDuengunContainer::IDD)
{
//{{AFX_DATA_INIT(CPageDuengunContainer)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pEditName = NULL;
m_pDuengunTriggerDlg = NULL;
}
CPageDuengunContainer::~CPageDuengunContainer()
{
delete m_pEditName;
m_pEditName = NULL;
}
void CPageDuengunContainer::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPageDuengunContainer)
DDX_Control(pDX, IDC_TREE1, m_ctrlDuengunTree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPageDuengunContainer, CPropertyPage)
//{{AFX_MSG_MAP(CPageDuengunContainer)
ON_NOTIFY(NM_RCLICK, IDC_TREE1, OnRclickTree1)
ON_COMMAND(ID_MENUITEM_DUNGUENINSERT, OnMenu_DunguenInsert)
ON_COMMAND(ID_MENUITEM_DUENGUNDELETE, OnMenu_DuengunDelete)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
ON_NOTIFY(NM_DBLCLK, IDC_TREE1, OnDblclkTree1)
ON_MESSAGE(WM_CHILD_CLOSE, OnChildClose)
ON_NOTIFY(TVN_BEGINDRAG, IDC_TREE1, OnBegindragTree1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPageDuengunContainer message handlers
void CPageDuengunContainer::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CPoint point;
GetCursorPos(&point);
CMenu menu;
menu.LoadMenu(IDR_MENU_DUENGUN);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
*pResult = 0;
}
void CPageDuengunContainer::OnMenu_DunguenInsert()
{
// TODO: Add your command handler code here
m_pEditName = new CDlgEditName;
m_pEditName->DoModal();
// Bsp <20≯<EFBFBD><CCB8><EFBFBD> <20>Էµ<D4B7><C2B5><EFBFBD> <20>ʾҴٸ<D2B4>..
if( m_pEditName->m_EditName.GetLength() < 2)
return;
float fScale = m_pEditName->m_fScale;
TV_INSERTSTRUCT tvInsert;
tvInsert.hParent = m_Root;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.state = 0;
tvInsert.item.stateMask = 0;
tvInsert.item.cchTextMax = 50;
tvInsert.item.iSelectedImage = 1;
tvInsert.item.cChildren = 0;
tvInsert.item.pszText = m_pEditName->m_EditName.LockBuffer();
tvInsert.item.iImage = 1;
char *pChr = strrchr(tvInsert.item.pszText,'.');
pChr++;
pChr++;
pChr++;
//pChr == 'e' || pChr == 'p'
if((*pChr) == 'p' || (*pChr) == 'P')
CSceneManager::m_RBspSceneManager.InsertBspScene(tvInsert.item.pszText,fScale);
else
{
CSceneManager::m_RBspSceneManager.InsertBseScene(tvInsert.item.pszText,fScale);
RBspScene *pScene = CSceneManager::m_RBspSceneManager.SearchBspScene(tvInsert.item.pszText);
pScene->m_bVisible = true;
vector3 vecPos = vector3(pScene->m_vecZeroPos.x,
pScene->m_vecZeroPos.y,
pScene->m_vecZeroPos.z);
matrix *ViewPos=CSceneManager::GetCamera()->GetMatPosition();
ViewPos->_41=vecPos.x;
ViewPos->_42=vecPos.y;
ViewPos->_43=vecPos.z;
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
av->m_SceneManager->UpdateScene(0.0f);
}
m_ctrlDuengunTree.Expand(m_ctrlDuengunTree.InsertItem(&tvInsert),TVE_EXPAND);
m_ctrlDuengunTree.Expand(m_Root,TVE_EXPAND);
delete m_pEditName;
m_pEditName = NULL;
}
void CPageDuengunContainer::OnMenu_DuengunDelete()
{
TVITEM tvitem;
char szStr[50];
memset(szStr,0,sizeof(char) * 50);
tvitem.hItem = m_ctrlDuengunTree.GetSelectedItem();
tvitem.mask = TVIF_TEXT;
tvitem.pszText = szStr;
tvitem.cchTextMax = 50;
m_ctrlDuengunTree.GetItem(&tvitem );
if(strcmp(tvitem.pszText,"Root"))
{
CSceneManager::m_RBspSceneManager.DeleteBspScene(tvitem.pszText);
m_ctrlDuengunTree.DeleteItem(m_ctrlDuengunTree.GetSelectedItem());
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
av->Invalidate(TRUE);
}
else
{
MessageBox("Root Node<64><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.");
}
// TODO: Add your command handler code here
}
/*
BOOL CPageDuengunContainer::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}
*/
BOOL CPageDuengunContainer::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_imgIcon.Create(IDB_TREEICON,16,2,RGB(0,128,128));
m_ctrlDuengunTree.SetImageList(&m_imgIcon,TVSIL_NORMAL);
TV_INSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.state = 0;
tvInsert.item.stateMask = 0;
tvInsert.item.cchTextMax = 50;
tvInsert.item.iSelectedImage = 1;
tvInsert.item.cChildren = 0;
tvInsert.item.pszText = "Root";
tvInsert.item.iImage = 0;
m_Root = m_ctrlDuengunTree.InsertItem(&tvInsert);
m_ctrlDuengunTree.Expand(m_Root,TVE_EXPAND);
// TODO: Add extra initialization here
m_pDuengunTriggerDlg = new CDlgDuengunTrigger;
m_pDuengunTriggerDlg->Create(this);
m_pDuengunTriggerDlg->ShowWindow(SW_HIDE);
m_pDuengunTriggerDlg->SetWindowPos( NULL, 0, 500, 0, 0, SWP_NOSIZE | SWP_NOZORDER );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPageDuengunContainer::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
HTREEITEM hItem = pNMTreeView->itemNew.hItem;
*pResult = 0;
}
void CPageDuengunContainer::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
BeginDuengunTrigger();
*pResult = 0;
}
void CPageDuengunContainer::BeginDuengunTrigger()
{
TVITEM tvitem;
char szStr[50];
memset(szStr,0,sizeof(char) * 50);
tvitem.hItem = m_ctrlDuengunTree.GetSelectedItem();
tvitem.mask = TVIF_TEXT;
tvitem.pszText = szStr;
tvitem.cchTextMax = 50;
m_ctrlDuengunTree.GetItem(&tvitem );
if(strcmp(tvitem.pszText,"Root")) {
CSceneManager::m_RBspSceneManager.SetPickIndex(tvitem.pszText);
m_pDuengunTriggerDlg->SetBspFile(tvitem.pszText);
m_pDuengunTriggerDlg->ShowWindow(SW_SHOW);
m_ctrlDuengunTree.EnableWindow(FALSE);
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
av->Invalidate(TRUE);
}
else // Root Node Select
{
MessageBox("Root Node <20>Դϴ<D4B4>.(<28><><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.)");
}
}
LRESULT CPageDuengunContainer::OnChildClose(WPARAM wParam, LPARAM lParam)
{
/*if( (CDlgEditGCMDS*)wParam == m_pDlgEditGCMDS )
{
EndGCMDSEdit();
}
*/
m_pDuengunTriggerDlg->ShowWindow(SW_HIDE);
m_ctrlDuengunTree.EnableWindow(TRUE);
CSceneManager::m_RBspSceneManager.SetPickIndex("");
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
av->Invalidate(TRUE);
return 0;
}
void CPageDuengunContainer::OnBegindragTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
av->m_bSelectBsp = true;
av->ChangeMouseInterface(95);
TVITEM tvitem;
char szStr[50];
memset(szStr,0,sizeof(char) * 50);
tvitem.hItem = m_ctrlDuengunTree.GetSelectedItem();
tvitem.mask = TVIF_TEXT;
tvitem.pszText = szStr;
tvitem.cchTextMax = 50;
m_ctrlDuengunTree.GetItem(&tvitem );
// Select <20><> bsp <20≯<EFBFBD>
av->m_strSelectBspScene.Format("%s",tvitem.pszText);
////
*pResult = 0;
}