summaryrefslogtreecommitdiff
path: root/gmod/movement_recorder.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gmod/movement_recorder.hpp')
-rw-r--r--gmod/movement_recorder.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/gmod/movement_recorder.hpp b/gmod/movement_recorder.hpp
new file mode 100644
index 0000000..dcfe511
--- /dev/null
+++ b/gmod/movement_recorder.hpp
@@ -0,0 +1,29 @@
+#pragma once
+#include "sdk.hpp"
+#include "vector.hpp"
+
+namespace features
+{
+ class c_move_recorder {
+ public:
+ void play_back( );
+ void stop_playback( );
+ void clear_recording( );
+
+ bool is_recording( ) const { return m_recording; }
+ bool is_playing( ) const { return m_playing; }
+ int get_record_count( ) const { return m_move_data.size( ); }
+ auto get_current_record( ) const { return m_record_index; }
+
+ void operator()( user_cmd_t* );
+ private:
+ void record_cmd( user_cmd_t* cmd );
+ void start_recording( );
+ void stop_recording( );
+
+ bool m_recording = false;
+ bool m_playing = false;
+ size_t m_record_index = 0;
+ std::vector< user_cmd_t > m_move_data;
+ };
+} \ No newline at end of file