From 3d412a4b30a9f7c7f51ea6562e694315948bd3da Mon Sep 17 00:00:00 2001 From: boris Date: Wed, 28 Nov 2018 16:00:02 +1300 Subject: cleaned up in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever. i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64 --- cheat/tf2/GlowObject.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 cheat/tf2/GlowObject.h (limited to 'cheat/tf2/GlowObject.h') diff --git a/cheat/tf2/GlowObject.h b/cheat/tf2/GlowObject.h new file mode 100644 index 0000000..00dce81 --- /dev/null +++ b/cheat/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