summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-26 19:08:49 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-26 19:08:49 -0500
commitc304defdd7b0c5a8bea83f2540c009ededd450cb (patch)
treef959d12fe879c7d1d20eeb8689ee62a0aa073990 /src
parentc1fc60c5a2a4b96b830afc29942648714944b9d7 (diff)
downloadtanetane-c304defdd7b0c5a8bea83f2540c009ededd450cb.tar.gz
tanetane-c304defdd7b0c5a8bea83f2540c009ededd450cb.tar.bz2
tanetane-c304defdd7b0c5a8bea83f2540c009ededd450cb.zip
Added animation slowdown effect (for Lucas underwater)
Diffstat (limited to 'src')
-rw-r--r--src/animation_system.cpp11
-rw-r--r--src/script_system.cpp3
-rw-r--r--src/sprite.h2
3 files changed, 15 insertions, 1 deletions
diff --git a/src/animation_system.cpp b/src/animation_system.cpp index 5892f64..997b53a 100644 --- a/src/animation_system.cpp +++ b/src/animation_system.cpp
@@ -120,6 +120,16 @@ void AnimationSystem::tick(double dt) {
120 sprite.animations[sprite.animationId].timerNum == timerNum && 120 sprite.animations[sprite.animationId].timerNum == timerNum &&
121 !sprite.animFinished && 121 !sprite.animFinished &&
122 !sprite.animPaused) { 122 !sprite.animPaused) {
123 if (sprite.animSlowdown > 1) {
124 sprite.animSlowdownProgress++;
125
126 if (sprite.animSlowdownProgress == sprite.animSlowdown) {
127 sprite.animSlowdownProgress = 0;
128 } else {
129 continue;
130 }
131 }
132
123 sprite.animationFrame++; 133 sprite.animationFrame++;
124 134
125 if (sprite.animationFrame >= sprite.animations[sprite.animationId].frameIndices.size()) { 135 if (sprite.animationFrame >= sprite.animations[sprite.animationId].frameIndices.size()) {
@@ -177,4 +187,5 @@ void AnimationSystem::updateAnimation(int spriteId) {
177 sprite.animationFrame = 0; 187 sprite.animationFrame = 0;
178 sprite.animFinished = false; 188 sprite.animFinished = false;
179 sprite.animPaused = false; 189 sprite.animPaused = false;
190 sprite.animSlowdownProgress = 0;
180} 191}
diff --git a/src/script_system.cpp b/src/script_system.cpp index e218969..18a4e39 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp
@@ -41,7 +41,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) {
41 "paused", &Sprite::paused, 41 "paused", &Sprite::paused,
42 "clipping", &Sprite::clipping, 42 "clipping", &Sprite::clipping,
43 "cantCrouch", &Sprite::cantCrouch, 43 "cantCrouch", &Sprite::cantCrouch,
44 "bobsWhenNormal", &Sprite::bobsWhenNormal); 44 "bobsWhenNormal", &Sprite::bobsWhenNormal,
45 "animSlowdown", &Sprite::animSlowdown);
45 46
46 engine_.new_usertype<MessageSystem>( 47 engine_.new_usertype<MessageSystem>(
47 "message", 48 "message",
diff --git a/src/sprite.h b/src/sprite.h index 570a906..733c792 100644 --- a/src/sprite.h +++ b/src/sprite.h
@@ -78,11 +78,13 @@ public:
78 bool hasShadow = false; 78 bool hasShadow = false;
79 int bobAmount = 0; 79 int bobAmount = 0;
80 bool bobbingDown = false; 80 bool bobbingDown = false;
81 int animSlowdownProgress = 0;
81 82
82 // Animation (controls) 83 // Animation (controls)
83 bool normallyHasShadow = false; 84 bool normallyHasShadow = false;
84 bool animPaused = false; 85 bool animPaused = false;
85 bool bobbing = false; 86 bool bobbing = false;
87 int animSlowdown = 1; // Animation will only advance every X frames (so, 1 means it's disabled)
86 88
87 // Character 89 // Character
88 bool orientable = false; 90 bool orientable = false;