summary refs log tree commit diff stats
path: root/src/animation_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/animation_system.cpp')
-rw-r--r--src/animation_system.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/animation_system.cpp b/src/animation_system.cpp index 3f3f22a..c43d0ca 100644 --- a/src/animation_system.cpp +++ b/src/animation_system.cpp
@@ -65,7 +65,7 @@ void AnimationSystem::initSprite(int spriteId, std::string_view filename) {
65 std::string animLine; 65 std::string animLine;
66 std::getline(datafile, animLine); // blank 66 std::getline(datafile, animLine); // blank
67 while (std::getline(datafile, animLine)) { 67 while (std::getline(datafile, animLine)) {
68 std::regex re(R"(([a-z!]+)\[([a-z_]+)\]: ([0-9,]+))"); 68 std::regex re(R"(([a-z!_]+)\[([a-z_]+)\]: ([0-9,]+))");
69 std::smatch m; 69 std::smatch m;
70 std::regex_match(animLine, m, re); 70 std::regex_match(animLine, m, re);
71 71
@@ -96,14 +96,13 @@ void AnimationSystem::tick(double dt) {
96 for (Sprite& sprite : game_.getSprites() | game_.spriteView()) { 96 for (Sprite& sprite : game_.getSprites() | game_.spriteView()) {
97 if (sprite.isAnimated && !sprite.animFinished) { 97 if (sprite.isAnimated && !sprite.animFinished) {
98 sprite.animationFrame++; 98 sprite.animationFrame++;
99 if (sprite.animations[sprite.animationId].looping) { 99
100 if (sprite.animationFrame >= sprite.animations[sprite.animationId].frameIndices.size()) { 100 if (sprite.animationFrame >= sprite.animations[sprite.animationId].frameIndices.size()) {
101 if (sprite.animations[sprite.animationId].looping) {
101 sprite.animationFrame = 0; 102 sprite.animationFrame = 0;
102 } 103 } else {
103 } else {
104 if (sprite.animationFrame >= sprite.animations[sprite.animationId].frameIndices.size() - 1) {
105 sprite.animationFrame = sprite.animations[sprite.animationId].frameIndices.size() - 1;
106 sprite.animFinished = true; 104 sprite.animFinished = true;
105 sprite.animationFrame = sprite.animations[sprite.animationId].frameIndices.size() - 1;
107 } 106 }
108 } 107 }
109 } 108 }