summaryrefslogtreecommitdiff
path: root/cheat/internal_rewrite/KeyValues.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cheat/internal_rewrite/KeyValues.hpp')
-rw-r--r--cheat/internal_rewrite/KeyValues.hpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/cheat/internal_rewrite/KeyValues.hpp b/cheat/internal_rewrite/KeyValues.hpp
new file mode 100644
index 0000000..94eb6ca
--- /dev/null
+++ b/cheat/internal_rewrite/KeyValues.hpp
@@ -0,0 +1,43 @@
+#pragma once
+#include "util.hpp"
+
+class IKeyValuesSystem {
+public:
+ void FreeKeyValuesMemory( void* memory );
+ int GetSymbolForString( const char* string, bool create );
+ const char* GetStringForSymbol( int symbol );
+};
+
+class KeyValues
+{
+public:
+ KeyValues( const char *setName );
+ ~KeyValues( );
+
+ bool LoadFromBuffer( char const *resourceName, const char *pBuffer, void* pFileSystem = nullptr, const char *pPathID = nullptr, bool( *unknown )( const char* ) = nullptr );
+
+ const char* get_string( const char* name, const char* value );
+
+ int m_iKeyName;
+
+ char *m_sValue;
+ wchar_t *m_wsValue;
+
+ // we don't delete these
+ union {
+ int m_iValue;
+ float m_flValue;
+ void *m_pValue;
+ unsigned char m_Color[ 4 ];
+ };
+
+ char m_iDataType;
+ char m_bHasEscapeSequences;
+ char m_bEvaluateConditionals;
+
+ KeyValues* FindKey( const char* key_name );
+
+ KeyValues *m_pPeer; // pointer to next key in list
+ KeyValues *m_pSub; // pointer to Start of a new sub key list
+ KeyValues *m_pChain;// Search here if it's not in our list
+}; \ No newline at end of file