summaryrefslogtreecommitdiff
path: root/tools/vcdblock/vcdblockdoc.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /tools/vcdblock/vcdblockdoc.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'tools/vcdblock/vcdblockdoc.h')
-rw-r--r--tools/vcdblock/vcdblockdoc.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/tools/vcdblock/vcdblockdoc.h b/tools/vcdblock/vcdblockdoc.h
new file mode 100644
index 0000000..51d6293
--- /dev/null
+++ b/tools/vcdblock/vcdblockdoc.h
@@ -0,0 +1,108 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//===========================================================================//
+
+#ifndef VCDBLOCKDOC_H
+#define VCDBLOCKDOC_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "dme_controls/inotifyui.h"
+#include "datamodel/dmehandle.h"
+#include "datamodel/dmelement.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+class IVcdBlockDocCallback;
+class CVcdBlockDoc;
+class CDmeVMFEntity;
+
+
+//-----------------------------------------------------------------------------
+// Contains all editable state
+//-----------------------------------------------------------------------------
+class CVcdBlockDoc : public IDmNotify
+{
+public:
+ CVcdBlockDoc( IVcdBlockDocCallback *pCallback );
+ ~CVcdBlockDoc();
+
+ // Inherited from INotifyUI
+ virtual void NotifyDataChanged( const char *pReason, int nNotifySource, int nNotifyFlags );
+
+ // Sets/Gets the file name
+ const char *GetBSPFileName();
+ const char *GetVMFFileName();
+ const char *GetEditFileName();
+ void SetVMFFileName( const char *pFileName );
+ void SetEditFileName( const char *pFileName );
+
+ // Dirty bits (has it changed since the last time it was saved?)
+ void SetDirty( bool bDirty );
+ bool IsDirty() const;
+
+ // Saves/loads from file
+ bool LoadFromFile( const char *pFileName );
+ void SaveToFile( );
+
+ // Returns the root object
+ CDmElement *GetRootObject();
+
+ // Called when data changes (see INotifyUI for flags)
+ void OnDataChanged( const char *pReason, int nNotifySource, int nNotifyFlags );
+
+ // Create a text block the engine can parse containing the entity data to spawn
+ void ServerLevelInitPostEntity( void );
+
+ // Returns the entity list
+ CDmAttribute *GetEntityList();
+
+ // Adds a new info_target
+ void AddNewInfoTarget( void );
+ void AddNewInfoTarget( const Vector &vecOrigin, const QAngle &angAngles );
+
+ // Deletes a commentary node
+ void DeleteInfoTarget( CDmeVMFEntity *pNode );
+
+ // Returns the commentary node at the specified location
+ CDmeVMFEntity *GetInfoTargetForLocation( Vector &vecOrigin, QAngle &angAbsAngles );
+
+ // Returns the info target that's closest to this line
+ CDmeVMFEntity *GetInfoTargetForLocation( Vector &vecStart, Vector &vecEnd );
+
+ // For element choice lists. Return false if it's an unknown choice list type
+ virtual bool GetStringChoiceList( const char *pChoiceListType, CDmElement *pElement,
+ const char *pAttributeName, bool bArrayElement, StringChoiceList_t &list );
+ virtual bool GetElementChoiceList( const char *pChoiceListType, CDmElement *pElement,
+ const char *pAttributeName, bool bArrayElement, ElementChoiceList_t &list );
+
+
+ void VerifyAllEdits( const CDmrElementArray<> &entityList );
+ void InitializeFromServer( CDmrElementArray<> &entityList );
+
+ bool CopyEditsToVMF( void );
+
+ bool RememberPlayerPosition( void );
+
+private:
+ IVcdBlockDocCallback *m_pCallback;
+ CDmeHandle< CDmElement > m_hVMFRoot; // VMF file
+ CDmeHandle< CDmElement > m_hEditRoot; // VMF Edits file
+ char m_pBSPFileName[512];
+ char m_pVMFFileName[512];
+ char m_pEditFileName[512];
+ bool m_bDirty;
+};
+
+
+
+#endif // VCDBLOCKDOC_H