From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- tf2/GlowObject.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tf2/GlowObject.h (limited to 'tf2/GlowObject.h') diff --git a/tf2/GlowObject.h b/tf2/GlowObject.h new file mode 100644 index 0000000..00dce81 --- /dev/null +++ b/tf2/GlowObject.h @@ -0,0 +1,43 @@ +#pragma once +#include "UtlMem.h" +#include +#include "color.hpp" + +static const int END_OF_FREE_LIST = -1; +static const int ENTRY_IN_USE = -2; + +struct GlowObject_t { + uintptr_t ent_ptr; + fclr_t glow_color; + + bool render_when_occluded; + bool render_when_unoccluded; + int pad; + + int next_free_slot; +}; + +struct GlowObjectManager_t { + CUtlVector< GlowObject_t > data; + int first_slot; + + int RegisterGlowObject( IClientEntity* ent ) { + for( int i{ }; i < data.Count( ); i++ ) { + if( data[ i ].ent_ptr == ent->get_ehandle( ) ) return 0; + } + int index{ }; + if( first_slot == -1 ) index = data.AddToTail( ); + else { + index = first_slot; + first_slot = data[ index ].next_free_slot; + } + data[ index ].ent_ptr = ent->get_ehandle( ); + data[ index ].glow_color = clr_t( 255, 255, 255, 255 ).to_fclr( ); + data[ index ].render_when_occluded = true; + data[ index ].render_when_unoccluded = true; + data[ index ].pad = -1; + data[ index ].next_free_slot = -2; + + return index; + } +}; \ No newline at end of file -- cgit v1.2.3