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:
231
GameTools/WORLDCREATOR/pEffect.cpp
Normal file
231
GameTools/WORLDCREATOR/pEffect.cpp
Normal file
@@ -0,0 +1,231 @@
|
||||
// pEffect.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "worldcreator.h"
|
||||
#include "pEffect.h"
|
||||
#include "MainFrm.h"
|
||||
#include "WorldCreatorView.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CpEffect property page
|
||||
|
||||
IMPLEMENT_DYNCREATE(CpEffect, CPropertyPage)
|
||||
|
||||
CpEffect::CpEffect() : CPropertyPage(CpEffect::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CpEffect)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_bEffectLoad = TRUE;
|
||||
m_LogFile = NULL;
|
||||
|
||||
}
|
||||
|
||||
CpEffect::~CpEffect()
|
||||
{
|
||||
int i;
|
||||
if(m_LogFile != NULL) {
|
||||
fclose(m_LogFile);
|
||||
|
||||
}
|
||||
m_LogFile = fopen("c:\\WorldEffectList.log","wb+");
|
||||
|
||||
for(i=0;i<m_EffectListNode.num;i++) {
|
||||
char tmp_buf[256] = {0};
|
||||
strcpy(tmp_buf,m_EffectListNode[i].m_filename);
|
||||
fwrite((char *)tmp_buf,sizeof(char),256,m_LogFile);
|
||||
}
|
||||
fclose(m_LogFile);
|
||||
m_LogFile = NULL;
|
||||
}
|
||||
|
||||
void CpEffect::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CPropertyPage::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CpEffect)
|
||||
DDX_Control(pDX, IDC_LIST1, m_EffectControl);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CpEffect, CPropertyPage)
|
||||
//{{AFX_MSG_MAP(CpEffect)
|
||||
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
|
||||
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkEffectList)
|
||||
ON_COMMAND(MENU_EFFECT_LOAD, OnEffectLoad)
|
||||
ON_NOTIFY(LVN_BEGINDRAG, IDC_LIST1, OnBegindragList1)
|
||||
ON_COMMAND(MENU_EFFECT_DELETE, OnEffectDelete)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CpEffect message handlers
|
||||
|
||||
void CpEffect::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CPoint point;
|
||||
GetCursorPos(&point);
|
||||
CMenu menu;
|
||||
menu.LoadMenu(IDR_MENU_EFFECT);
|
||||
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
|
||||
*pResult = 0;
|
||||
|
||||
}
|
||||
|
||||
void CpEffect::OnDblclkEffectList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
int SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED);
|
||||
if(SelectCur==-1)
|
||||
return;
|
||||
|
||||
CDlgEffectLoad dlgEffectLoad;
|
||||
// dlgEffectLoad.m_name =
|
||||
/* dlgObjectLoad.m_strObjectName=m_ObjectListNode[SelectCur].m_strObjectName;
|
||||
dlgObjectLoad.m_strObjectFilename=m_ObjectListNode[SelectCur].m_strObjectFilename;
|
||||
dlgObjectLoad.m_isAlpha=m_ObjectListNode[SelectCur].m_IsAlpha;
|
||||
dlgObjectLoad.m_isLight=m_ObjectListNode[SelectCur].m_IsLight;
|
||||
|
||||
if(dlgObjectLoad.DoModal()!=IDOK)
|
||||
return;
|
||||
|
||||
CString strText;
|
||||
strcpy(m_ObjectListNode[SelectCur].m_strObjectName,dlgObjectLoad.m_strObjectName.LockBuffer());
|
||||
strcpy(m_ObjectListNode[SelectCur].m_strObjectFilename,dlgObjectLoad.m_strObjectFilename.LockBuffer());
|
||||
|
||||
if(dlgObjectLoad.m_isAlpha)
|
||||
m_ObjectListNode[SelectCur].m_IsAlpha=true;
|
||||
else
|
||||
m_ObjectListNode[SelectCur].m_IsAlpha=false;
|
||||
|
||||
if(dlgObjectLoad.m_isLight)
|
||||
m_ObjectListNode[SelectCur].m_IsLight=true;
|
||||
else
|
||||
m_ObjectListNode[SelectCur].m_IsLight=false;
|
||||
|
||||
m_ObjectList.SetItemText(SelectCur,0,dlgObjectLoad.m_strObjectName);
|
||||
m_ObjectList.SetItemText(SelectCur,1,dlgObjectLoad.m_strObjectFilename);
|
||||
|
||||
if(dlgObjectLoad.m_isAlpha)
|
||||
m_ObjectList.SetItemText(SelectCur,2,"Yes");
|
||||
else
|
||||
m_ObjectList.SetItemText(SelectCur,2,"No");
|
||||
|
||||
if(dlgObjectLoad.m_isLight)
|
||||
m_ObjectList.SetItemText(SelectCur,3,"Yes");
|
||||
else
|
||||
m_ObjectList.SetItemText(SelectCur,3,"No"); */
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CpEffect::OnEffectLoad()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
|
||||
|
||||
CString strFilter = EFFFILE;
|
||||
CFileDialog filedia(TRUE,EFFECTPATH,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this);
|
||||
filedia.m_ofn.lpstrInitialDir = EFFECTPATH;
|
||||
filedia.DoModal();
|
||||
CString filename=filedia.GetFileName();
|
||||
if(filename!="")
|
||||
{
|
||||
m_EffectFileName=filename;
|
||||
add_filename(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bEffectLoad=FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CpEffect::add_filename(int value)
|
||||
{
|
||||
EffectListNode tmp;
|
||||
if(!value) { // <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> effect
|
||||
/*
|
||||
*/
|
||||
}
|
||||
m_EffectControl.InsertItem(m_EffectControl.GetItemCount(),m_EffectFileName);
|
||||
strcpy(tmp.m_filename,m_EffectFileName);
|
||||
m_EffectListNode.Add(tmp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL CpEffect::OnInitDialog()
|
||||
{
|
||||
CPropertyPage::OnInitDialog();
|
||||
|
||||
DWORD dwStyle;
|
||||
dwStyle = m_EffectControl.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0 ,0);
|
||||
dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ;
|
||||
m_EffectControl.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0,dwStyle );
|
||||
|
||||
m_EffectControl.InsertColumn(0,"<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>",LVCFMT_LEFT,260);
|
||||
|
||||
m_LogFile = fopen("c:\\WorldEffectList.log","rb");
|
||||
|
||||
if(m_LogFile != NULL) {
|
||||
while(!feof(m_LogFile)) {
|
||||
char tmp_buf[256] = {0};
|
||||
fread((char *)tmp_buf,sizeof(char),256,m_LogFile);
|
||||
m_EffectFileName.Format("%s",tmp_buf);
|
||||
add_filename(1);
|
||||
}
|
||||
fclose(m_LogFile);
|
||||
m_LogFile = NULL;
|
||||
}
|
||||
|
||||
// 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 CpEffect::OnBegindragList1(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
||||
// TODO: Add your control notification handler code here
|
||||
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
|
||||
CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView();
|
||||
SelectObject();
|
||||
av->m_effect_drag = TRUE;
|
||||
av->ChangeMouseInterface(70);
|
||||
av->m_Select_Effect.Format("%s",m_Select_Effect);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CpEffect::SelectObject()
|
||||
{
|
||||
int m_SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED);
|
||||
if(m_SelectCur<0)
|
||||
return;
|
||||
m_Select_Effect=m_EffectListNode[m_SelectCur].m_filename;
|
||||
|
||||
}
|
||||
|
||||
void CpEffect::OnEffectDelete()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
int m_SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED);
|
||||
if(m_SelectCur<0)
|
||||
return;
|
||||
m_EffectControl.DeleteItem(m_SelectCur);
|
||||
m_EffectListNode.DelIndex(m_SelectCur);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user