aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Animator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api/Animator.cpp')
-rw-r--r--src/crepe/api/Animator.cpp17
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;
+}