summaryrefslogtreecommitdiff
path: root/cheat/tf2/chams.h
blob: 4fdc74bc6200cbfac013438a2dda19ce7c4b1fe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once

#include "sdk.h"

namespace features
{
	enum ChamBufferType_t {
		TYPE_NORMAL,
		TYPE_FLAT,
		TYPE_SHINE
	};

	class c_material {
	public:
		c_material( ) = default;

		void init( const char* mat, const char* buf );
		void destroy( );

		operator IMaterial*( ) {
			return m_mat;
		}

	public:
		IMaterial * m_mat;
		KeyValues* m_keyvalues;
	};

	class c_materials {
	public:
		c_material m_chams{ };
		c_material m_chams_flat{ };

		void make_cham_buffer( char* buf, int len, int type ); //type, 0 = normal, 1 = flat, 2 = shine
	public:
		void initialize_materials( );
		void destroy_materials( );
		void force_material( IMaterial* material, fclr_t color );
		void update_materials( );
		bool m_initialized{ };
	};

	class c_chams {
	public:
		c_materials m_materials;
		void d3d_render_textures( );
		void d3d_render_chams( c_base_player* ent, int type, int v_index, uint32_t min_index, uint32_t num_vert, uint32_t start_index, uint32_t prim_count );
	};
}