From 8a38699f399103d4ee003e6eb63dd62656115be2 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 30 Jan 2021 14:43:41 -0500 Subject: Sprite animations are more generic than still/walk now --- src/sprite.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'src/sprite.cpp') diff --git a/src/sprite.cpp b/src/sprite.cpp index cc196ae..c52807a 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -38,12 +38,7 @@ Sprite::Sprite(std::string_view filename, Renderer& renderer) { animations_.push_back(std::move(frames)); Direction dir = directionFromString(std::string(m[2])); - - if (m[1] == "still") { - stillAnims_[dir] = animId; - } else { - walkingAnims_[dir] = animId; - } + stateDirToAnim_[m[1]][dir] = animId; } updateAnimation(); @@ -56,19 +51,15 @@ void Sprite::setDirection(Direction dir) { } } -void Sprite::setWalking(bool walking) { - if (isWalking_ != walking) { - isWalking_ = walking; +void Sprite::setState(std::string state) { + if (state_ != state) { + state_ = state; updateAnimation(); } } void Sprite::updateAnimation() { - if (isWalking_) { - curAnim_ = walkingAnims_[curDir_]; - } else { - curAnim_ = stillAnims_[curDir_]; - } + curAnim_ = stateDirToAnim_[state_][curDir_]; curFrame_ = 0; } -- cgit 1.4.1