diff options
Diffstat (limited to 'src/crepe/api/Animator.cpp')
-rw-r--r-- | src/crepe/api/Animator.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/crepe/api/Animator.cpp b/src/crepe/api/Animator.cpp index c558d86..f9a283e 100644 --- a/src/crepe/api/Animator.cpp +++ b/src/crepe/api/Animator.cpp @@ -1,4 +1,3 @@ - #include "util/dbg.h" #include "Animator.h" @@ -6,6 +5,7 @@ #include "Sprite.h" using namespace crepe; +using namespace std; Animator::Animator( game_object_id_t id, Sprite & spritesheet, const ivec2 & single_frame_size, @@ -57,3 +57,18 @@ void Animator::next_anim() { ctx.row = ++ctx.row % this->grid_size.x; this->spritesheet.mask.x = ctx.row * this->spritesheet.mask.w; } + +unique_ptr<Component> Animator::save() const { + return unique_ptr<Component>(new Animator(*this)); +} + +void Animator::restore(const Component & snapshot) { + *this = static_cast<const Animator &>(snapshot); +} + +Animator & Animator::operator=(const Animator & snapshot) { + this->data = snapshot.data; + this->elapsed_time = snapshot.elapsed_time; + this->frame = snapshot.frame; + return *this; +} |