diff --git a/include/Enums/GameObjectState.h b/include/Enums/GameObjectState.h index b59c3fb2..a2a71cca 100644 --- a/include/Enums/GameObjectState.h +++ b/include/Enums/GameObjectState.h @@ -2,6 +2,7 @@ // this enum is used for animations and used by all game objects enum class GameObjectState { + VOID, Idle, // used by nearly every game object Idle_up, // used by map main character Idle_down, // used by map main character diff --git a/include/GameObject.h b/include/GameObject.h index cf57162a..10f0c086 100644 --- a/include/GameObject.h +++ b/include/GameObject.h @@ -66,7 +66,7 @@ class GameObject { virtual void setDebugBoundingBox(const sf::Color &debugColor); protected: - GameObjectState m_state; + GameObjectState m_state = GameObjectState::VOID; Screen* m_screen = nullptr; sf::RectangleShape m_debugBox; diff --git a/src/TileMap.cpp b/src/TileMap.cpp index cd16129e..fd3ac3a4 100644 --- a/src/TileMap.cpp +++ b/src/TileMap.cpp @@ -62,11 +62,6 @@ bool TileMap::load(const WorldData& data, const std::vector >& m_layers.push_back(layer); } - for (int i = 0; i < m_layers.size(); i++) { - for (auto& tile : m_animatedTiles.at(i)) { - tile->setState(GameObjectState::Idle); - } - } return true; } @@ -99,6 +94,7 @@ void TileMap::readAnimatedTile(int tileNumber, int layerNr, int i, int j, const animatedTile->playCurrentAnimation(true); animatedTile->setPosition(position); animatedTile->setState(GameObjectState::Idle); + animatedTile->setCurrentAnimation(animatedTile->getAnimation(GameObjectState::Idle), false); m_animatedTiles[layerNr].push_back(animatedTile);