summaryrefslogtreecommitdiff
path: root/gmod/visual.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gmod/visual.hpp')
-rw-r--r--gmod/visual.hpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/gmod/visual.hpp b/gmod/visual.hpp
new file mode 100644
index 0000000..748497f
--- /dev/null
+++ b/gmod/visual.hpp
@@ -0,0 +1,51 @@
+#pragma once
+#include <vector>
+#include "interface.hpp"
+#include "vector.hpp"
+#include "color.hpp"
+#include "d3d.hpp"
+#include <unordered_map>
+#include "strings.hpp"
+#include "IVRenderView.hpp"
+
+class c_base_player;
+
+namespace features
+{
+ class c_visuals
+ {
+ void draw_line( const vec2_t& a, const vec2_t& b, const clr_t& clr );
+ void draw_line( int x, int y, int x1, int y1, const clr_t& clr );
+ void draw_rect( int x, int y, int w, int h, const clr_t& clr );
+ void draw_filled_rect( int x, int y, int w, int h, const clr_t& clr );
+ void draw_circle( int x, int y, int r, const clr_t& clr, int res = 48 );
+
+ void draw_really_big_string( int x, int y, const clr_t& clr, const char* msg, ... );
+ void draw_string( int x, int y, int align, bool big, const clr_t& clr, const char* msg, ... );
+
+ struct stored_player_data_t
+ {
+ std::string m_rank{ };
+ clr_t m_team_color{ };
+ matrix3x4 m_matrix[ 128 ]{ };
+ vec3_t m_pos{ };
+ matrix3x4 m_coordinate_frame{ };
+ };
+
+ struct stored_data_t
+ {
+ std::array< stored_player_data_t, 256 > m_player{ };
+ VMatrix m_matrix{ };
+ };
+
+ stored_data_t m_data{ };
+
+ void spectator_list( );
+ void draw_players( );
+
+ public:
+ void operator( )( );
+ void store_data( );
+ VMatrix& get_matrix( );
+ };
+} \ No newline at end of file