Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
3.1 KiB

#ifndef _INCLUDED_TILEGEN_PAGES_H
#define _INCLUDED_TILEGEN_PAGES_H
#ifdef _WIN32
#pragma once
#endif
#include <vgui_controls/EditablePanel.h>
class CScrollingWindow;
class CMapLayoutPanel;
class CKV_Editor;
class CTilegenMissionPreprocessor;
class CLayoutSystemKVEditor;
class CASW_KeyValuesDatabase;
namespace vgui
{
class PanelListPanel;
class TreeView;
class Label;
class Button;
};
// ==============================================================================================
class CTileGenLayoutPage : public vgui::EditablePanel
{
DECLARE_CLASS_SIMPLE( CTileGenLayoutPage, vgui::EditablePanel );
public:
CTileGenLayoutPage( Panel *parent, const char *name );
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
CScrollingWindow* m_pScrollingWindow;
CMapLayoutPanel* m_pMapLayoutPanel;
};
// ==============================================================================================
class CTilegenKVEditorPage : public vgui::EditablePanel
{
DECLARE_CLASS_SIMPLE( CTilegenKVEditorPage, vgui::EditablePanel );
public:
CTilegenKVEditorPage( Panel *pParent, const char *pName );
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
virtual void OnCommand( const char *command );
virtual void UpdateList() = 0;
MESSAGE_FUNC_INT( OnTreeViewItemSelected, "TreeViewItemSelected", itemIndex ) = 0;
virtual void OnFileSelected( const char *fullpath ) = 0;
MESSAGE_FUNC_PARAMS( OnCheckOutFromP4, "CheckOutFromP4", pKV );
DECLARE_PANELMAP();
protected:
int RecursiveCreateFolderNodes( int iParentIndex, char *szFilename );
void UpdateListHelper( CASW_KeyValuesDatabase *pMissionDatabase, const char *pFolderName );
virtual void SaveNew() = 0;
virtual KeyValues *GetKeyValues() = 0;
vgui::TreeView *m_pTree;
vgui::Label* m_pFilenameLabel;
vgui::Button* m_pNewButton;
vgui::Button* m_pSaveButton;
char m_szFilename[MAX_PATH];
};
// ==============================================================================================
class CTilegenLayoutSystemPage : public CTilegenKVEditorPage
{
DECLARE_CLASS_SIMPLE( CTilegenLayoutSystemPage, CTilegenKVEditorPage );
public:
CTilegenLayoutSystemPage( Panel *pParent, const char *pName );
virtual ~CTilegenLayoutSystemPage();
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
virtual void OnCommand( const char *pCommand );
virtual void OnTreeViewItemSelected( int nItemIndex );
virtual void OnFileSelected( const char *pFullPath );
MESSAGE_FUNC_PARAMS( OnAddToP4, "AddToP4", pKV );
virtual void UpdateList();
CLayoutSystemKVEditor *GetEditor() { return m_pEditor; }
CTilegenMissionPreprocessor *GetPreprocessor() { return m_pPreprocessor; }
protected:
virtual void SaveNew();
virtual KeyValues *GetKeyValues();
void AddRuleFile( const char *pRuleFilename );
CTilegenMissionPreprocessor *m_pPreprocessor;
CLayoutSystemKVEditor *m_pEditor;
vgui::Button* m_pGenerateButton;
vgui::Button* m_pReloadMissionButton;
vgui::Button* m_pReloadRulesButton;
CASW_KeyValuesDatabase *m_pNewMissionDatabase;
CASW_KeyValuesDatabase *m_pRulesDatabase;
};
// ==============================================================================================
#endif // _INCLUDED_TILEGEN_PAGES_H