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:
202
GameTools/WORLDCREATOR/PageWideContainer.cpp
Normal file
202
GameTools/WORLDCREATOR/PageWideContainer.cpp
Normal file
@@ -0,0 +1,202 @@
|
||||
// PageWideContainer.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "worldcreator.h"
|
||||
#include "PageWideContainer.h"
|
||||
#include "DlgWideLoad.h"
|
||||
|
||||
#include "MainFrm.h"
|
||||
#include "WorldCreatorView.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPageWideContainer property page
|
||||
|
||||
IMPLEMENT_DYNCREATE(CPageWideContainer, CPropertyPage)
|
||||
|
||||
CPageWideContainer::CPageWideContainer() : CPropertyPage(CPageWideContainer::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPageWideContainer)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_SelectCur=-1;
|
||||
}
|
||||
|
||||
CPageWideContainer::~CPageWideContainer()
|
||||
{
|
||||
}
|
||||
|
||||
void CPageWideContainer::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CPropertyPage::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPageWideContainer)
|
||||
DDX_Control(pDX, IDC_LIST_WIDETEXTURE, m_WideTextureListview);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPageWideContainer, CPropertyPage)
|
||||
//{{AFX_MSG_MAP(CPageWideContainer)
|
||||
ON_COMMAND(MENU_WIDETEXUTRELOAD, OnWidetexutreload)
|
||||
ON_NOTIFY(NM_RCLICK, IDC_LIST_WIDETEXTURE, OnRclickListWidetexture)
|
||||
ON_NOTIFY(HDN_BEGINDRAG, IDC_LIST_WIDETEXTURE, OnBegindragListWidetexture)
|
||||
ON_NOTIFY(LVN_BEGINDRAG, IDC_LIST_WIDETEXTURE, OnBegindragListWidetexture)
|
||||
ON_COMMAND(MENU_WIDEMAPDELETE, OnWidemapdelete)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPageWideContainer message handlers
|
||||
|
||||
void CPageWideContainer::OnWidetexutreload()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
CDlgWideLoad dlgWideLoad;
|
||||
|
||||
if( dlgWideLoad.DoModal()!=IDOK || dlgWideLoad.m_strWideTextureName[0]=="")
|
||||
return;
|
||||
|
||||
int nInsertItem=m_WideTextureListview.GetItemCount();
|
||||
|
||||
WideTextureListNode AddNode;
|
||||
strcpy(AddNode.m_strWideTextureFileName[0],dlgWideLoad.m_strWideTextureName[0].LockBuffer());
|
||||
strcpy(AddNode.m_strWideTextureFileName[1],dlgWideLoad.m_strWideTextureName[1].LockBuffer());
|
||||
strcpy(AddNode.m_strWideTextureFileName[2],dlgWideLoad.m_strWideTextureName[2].LockBuffer());
|
||||
|
||||
strcpy(AddNode.m_strDetailTextureFileName[0],dlgWideLoad.m_strDetailTextureName[0].LockBuffer());
|
||||
strcpy(AddNode.m_strDetailTextureFileName[1],dlgWideLoad.m_strDetailTextureName[1].LockBuffer());
|
||||
strcpy(AddNode.m_strDetailTextureFileName[2],dlgWideLoad.m_strDetailTextureName[2].LockBuffer());
|
||||
|
||||
if(dlgWideLoad.m_strWideName=="")
|
||||
{
|
||||
strcpy(AddNode.m_strWideTextureName,dlgWideLoad.m_strWideTextureName[0].LockBuffer());
|
||||
m_WideTextureListview.InsertItem(nInsertItem,dlgWideLoad.m_strWideTextureName[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(AddNode.m_strWideTextureName,dlgWideLoad.m_strWideName.LockBuffer());
|
||||
m_WideTextureListview.InsertItem(nInsertItem,dlgWideLoad.m_strWideTextureName[0]);
|
||||
}
|
||||
m_WideTextureListNode.Add(AddNode);
|
||||
|
||||
m_WideTextureListview.SetItemText(nInsertItem,1,dlgWideLoad.m_strWideTextureName[0]);
|
||||
|
||||
}
|
||||
|
||||
BOOL CPageWideContainer::OnInitDialog()
|
||||
{
|
||||
CPropertyPage::OnInitDialog();
|
||||
|
||||
DWORD dwStyle;
|
||||
dwStyle = m_WideTextureListview.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0 ,0);
|
||||
dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ;
|
||||
m_WideTextureListview.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0,dwStyle );
|
||||
|
||||
m_WideTextureListview.InsertColumn(0,"<EFBFBD≯<EFBFBD>",LVCFMT_LEFT,140);
|
||||
m_WideTextureListview.InsertColumn(1,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>",LVCFMT_LEFT,180);
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CPageWideContainer::OnRclickListWidetexture(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CPoint point;
|
||||
GetCursorPos(&point);
|
||||
CMenu menu;
|
||||
menu.LoadMenu(IDR_MENU_WIDETEXTURE);
|
||||
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CPageWideContainer::OnBegindragListWidetexture(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
HD_NOTIFY * phdn = (HD_NOTIFY *) pNMHDR;
|
||||
// TODO: Add your control notification handler code here
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
|
||||
SelectWideTexture();
|
||||
av->ChangeMouseInterface(10);
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CPageWideContainer::SelectWideTexture()
|
||||
{
|
||||
m_SelectCur=m_WideTextureListview.GetNextItem(-1,LVNI_SELECTED);
|
||||
if(m_SelectCur<0)
|
||||
return;
|
||||
m_strWideName[0]=m_WideTextureListNode[m_SelectCur].m_strWideTextureFileName[0];
|
||||
m_strWideName[1]=m_WideTextureListNode[m_SelectCur].m_strWideTextureFileName[1];
|
||||
m_strWideName[2]=m_WideTextureListNode[m_SelectCur].m_strWideTextureFileName[2];
|
||||
|
||||
m_strDetailName[0]=m_WideTextureListNode[m_SelectCur].m_strDetailTextureFileName[0];
|
||||
m_strDetailName[1]=m_WideTextureListNode[m_SelectCur].m_strDetailTextureFileName[1];
|
||||
m_strDetailName[2]=m_WideTextureListNode[m_SelectCur].m_strDetailTextureFileName[2];
|
||||
}
|
||||
|
||||
void CPageWideContainer::AddWideTexture(float fXp, float fYp, float fZp)
|
||||
{
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
|
||||
|
||||
av->m_SceneManager->m_MapStorage.AddWideMap(fXp,fYp,fZp,m_strWideName[0].GetBuffer(0),m_strDetailName[0].GetBuffer(0),m_strWideName[1].GetBuffer(0),m_strDetailName[1].GetBuffer(0),m_strWideName[2].GetBuffer(0),m_strDetailName[2].GetBuffer(0));
|
||||
//CMapStorage::AddWideMap(fXp,fYp,fZp,m_strWideName.LockBuffer());
|
||||
}
|
||||
|
||||
void CPageWideContainer::UpdateList()
|
||||
{
|
||||
m_WideTextureListview.DeleteAllItems();
|
||||
for(int i=0;i<m_WideTextureListNode.num;i++)
|
||||
{
|
||||
m_WideTextureListview.InsertItem(i,m_WideTextureListNode[i].m_strWideTextureName);
|
||||
m_WideTextureListview.SetItemText(i,1,m_WideTextureListNode[i].m_strWideTextureFileName[0]);
|
||||
}
|
||||
}
|
||||
|
||||
void CPageWideContainer::Save(FILE *fp)
|
||||
{
|
||||
fwrite(&m_WideTextureListNode.num,sizeof(int),1,fp);
|
||||
for(int cWide=0;cWide<m_WideTextureListNode.num;cWide++)
|
||||
{
|
||||
fwrite(m_WideTextureListNode[cWide].m_strWideTextureName,sizeof(char)*MAX_NAMEBUFFER,1,fp);
|
||||
fwrite(m_WideTextureListNode[cWide].m_strWideTextureFileName,sizeof(char)*MAX_NAMEBUFFER,1,fp);
|
||||
}
|
||||
}
|
||||
|
||||
void CPageWideContainer::Load(FILE *fp,int iType)
|
||||
{
|
||||
if(!iType)
|
||||
DeleteListData();
|
||||
int cSavedWideTexture;
|
||||
fread(&cSavedWideTexture,sizeof(int),1,fp);
|
||||
for(int cWide=0;cWide<cSavedWideTexture;cWide++)
|
||||
{
|
||||
WideTextureListNode AddNode;
|
||||
fread(AddNode.m_strWideTextureName,sizeof(char)*MAX_NAMEBUFFER,1,fp);
|
||||
fread(AddNode.m_strWideTextureFileName,sizeof(char)*MAX_NAMEBUFFER,1,fp);
|
||||
m_WideTextureListNode.Add(AddNode);
|
||||
}
|
||||
}
|
||||
|
||||
void CPageWideContainer::DeleteListData()
|
||||
{
|
||||
m_WideTextureListview.DeleteAllItems();
|
||||
m_WideTextureListNode.num=0;
|
||||
}
|
||||
|
||||
void CPageWideContainer::OnWidemapdelete()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
SelectWideTexture();
|
||||
m_WideTextureListNode.DelIndex(m_SelectCur);
|
||||
UpdateList();
|
||||
}
|
||||
Reference in New Issue
Block a user