#pragma once
#include <SFML/Graphics/Sprite.hpp>
#include <SFML/Audio.hpp>
#include <string>

struct Animator {
  int width = 0;
  int height = 0;
  int max_frames = 0;
  sf::SoundBuffer buffer;
  sf::Sound sound;
  size_t count = 0;
  int frame = 0;
  bool playing = false;

  Animator(int w, int h, int max, std::string sound_file) :
    width(w), height(h), max_frames(max),
    buffer(sound_file),
    sound(buffer)
  {
  }

  void step(sf::Sprite& sprite, int rect_x, int rect_y, int rect_w, int rect_h);
  void play(bool sound_too=true);
};
