diff --git a/animator.cpp b/animator.cpp index bf97fba..d69f9be 100644 --- a/animator.cpp +++ b/animator.cpp @@ -1,2 +1,18 @@ #include "animator.hpp" #include "constants.hpp" + +void Animator::step(sf::Sprite& sprite, int rect_x, int rect_y, int rect_w, int rect_h) { + if(playing) { + count++; + frame = ((count / 4) % max_frames); + playing = frame != 0; + } + + sprite.setTextureRect(sf::IntRect({ + {rect_x + frame * width, rect_y}, + {rect_w, rect_h}})); +} + +void Animator::play() { + playing = true; +} diff --git a/animator.hpp b/animator.hpp index b1c9810..f0add4e 100644 --- a/animator.hpp +++ b/animator.hpp @@ -1,5 +1,5 @@ #pragma once -#include +#include struct Animator { int width = 0; @@ -9,19 +9,7 @@ struct Animator { int frame = 0; bool playing = false; - inline void step(sf::Sprite& sprite, int rect_x, int rect_y, int rect_w, int rect_h) { - if(playing) { - count++; - frame = ((count / 4) % max_frames); - playing = frame != 0; - } + void step(sf::Sprite& sprite, int rect_x, int rect_y, int rect_w, int rect_h); - sprite.setTextureRect(sf::IntRect({ - {rect_x + frame * width, rect_y}, - {rect_w, rect_h}})); - } - - inline void play() { - playing = true; - } + void play(); }; diff --git a/meson.build b/meson.build index 56d8485..49bff9d 100644 --- a/meson.build +++ b/meson.build @@ -50,6 +50,7 @@ executable('zedcaster', [ 'config.cpp', 'texture.cpp', 'raycaster.cpp', + 'animator.cpp', 'stats.cpp', 'main.cpp' ],