From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- tf2/CAttribute.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tf2/CAttribute.h (limited to 'tf2/CAttribute.h') diff --git a/tf2/CAttribute.h b/tf2/CAttribute.h new file mode 100644 index 0000000..a7dd944 --- /dev/null +++ b/tf2/CAttribute.h @@ -0,0 +1,41 @@ +#pragma once +#include "UtlMem.h" + +class c_attribute { +private: + void* vtable; +public: + uint16_t m_attribute_definition_index; + float m_value; +private: + uint32_t unk; + +public: + __forceinline c_attribute( unsigned short index, float value ) { + m_attribute_definition_index = index; + m_value = value; + } +}; + +class c_attribute_list { +private: + uint32_t unk; +public: + CUtlVector< c_attribute, CUtlMemory< c_attribute > > m_attributes; + + __forceinline void add_attribute( int index, float value ) { + if ( m_attributes.Count( ) >= 15 ) return; //setting this above 15 will crash + if ( has_attrib( index ) ) return; + + c_attribute attribute( index, value ); + m_attributes.AddToTail( attribute ); + } + + __forceinline bool has_attrib( int index ) { + for ( int i{ }; i < m_attributes.Count( ); i++ ) { + if ( !m_attributes ) continue; + if ( m_attributes[ i ].m_attribute_definition_index == index ) return true; + } + return false; + } +}; \ No newline at end of file -- cgit v1.2.3