diff options
Diffstat (limited to 'internal_rewrite/movement_recorder.hpp')
| -rw-r--r-- | internal_rewrite/movement_recorder.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/internal_rewrite/movement_recorder.hpp b/internal_rewrite/movement_recorder.hpp new file mode 100644 index 0000000..03bcf8c --- /dev/null +++ b/internal_rewrite/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 |
