DragonNest/Client/EtEffect2Tool/ParticlePaneView.h
2024-12-19 09:48:26 +08:00

95 lines
2.4 KiB
C++

#pragma once
#include "afxcmn.h"
// CParticlePaneView form view
#include "TreeCtrlEx.h"
class CParticlePaneView : public CFormView
{
DECLARE_DYNCREATE(CParticlePaneView)
protected:
CParticlePaneView(); // protected constructor used by dynamic creation
virtual ~CParticlePaneView();
public:
enum { IDD = IDD_PARTICLEEDIT };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
public:
CTreeCtrlEx m_TreeCtrl;
CImageList m_ImageList;
bool m_bActivate;
HTREEITEM m_ptcRootItem;
HTREEITEM m_meshRootItem;
CMenu *m_pContextMenu;
struct ParticleFile {
int nRenderIndex;
char szFullPath[ MAX_PATH ];
std::vector< CEtBillboardEffectEmitter* > m_EmitterList;
HTREEITEM treeItem;
bool bIterate;
bool bLoop;
};
struct MeshFile {
HTREEITEM treeItem;
char szFullPath[MAX_PATH];
int nTemp;
};
std::map< std::string, ParticleFile > m_ParticleFiles; // Áߺ¹ÆÄÀÏ Ã¼Å©
std::map< std::string, MeshFile > m_MeshFiles;
EtBillboardEffectHandle m_hParticle;
int m_nClipBoared;
public:
virtual void OnInitialUpdate();
HTREEITEM GetCurrentItem();
int GetCurrentDepth();
int GetCurrentPeerOrder();
bool IsMeshSelect();
void CheckUpdateRenderView();
void OnSelected();
void OnValueChange();
void RenameTexture( char *szName );
void Reset(bool bDeleteTreeItems=true);
void AddParticleFile( CString str );
void AddMeshFile( CString str );
void RemoveParticle( HTREEITEM hti);
void SetDefaultEmitterParam( SEmitter *Param );
//char *GetCurrentParticleName() {return m_szSelectParticleName;}
afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnAddParticle();
afx_msg void OnCreateParticle();
afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnSaveParticle();
afx_msg void OnAddEmitter();
afx_msg void OnRemoveParticle();
afx_msg void OnEmitterRemove();
afx_msg void OnLoadMesh();
afx_msg void OnMeshRemove();
afx_msg void OnEmitterCopy();
afx_msg void OnEmitterPaste();
afx_msg void OnMeshReload();
afx_msg void OnMeshReloadAll();
afx_msg void OnSaveasparticle();
afx_msg void OnEmitterReloadTexture();
afx_msg void OnEmitterUp();
afx_msg void OnEmitterDown();
};