// // Created by Syméon on 17/08/2017. // // // Un objet marker contient les différentes textures d'un marker choisi // #ifndef FEIS_MARKER_H #define FEIS_MARKER_H #include #include #include #include #include #include #include #include enum MarkerEndingState { MarkerEndingState_MISS, MarkerEndingState_EARLY, MarkerEndingState_GOOD, MarkerEndingState_GREAT, MarkerEndingState_PERFECT }; struct MarkerStatePreview { MarkerEndingState state; std::string textureName; std::string printName; }; namespace Markers { static std::vector markerStatePreviews{ {MarkerEndingState_PERFECT,"h402","PERFECT"}, {MarkerEndingState_GREAT,"h302","GREAT"}, {MarkerEndingState_GOOD,"h202","GOOD"}, {MarkerEndingState_EARLY,"h102","EARLY / LATE"}, {MarkerEndingState_MISS,"ma17","MISS"} }; } /* * Holds the textures associated with a given marker folder from the assets folder */ class Marker { public: Marker(); explicit Marker(std::filesystem::path folder); std::optional> getSprite(MarkerEndingState state, float seconds); const std::map &getTextures() const; private: std::map textures; std::filesystem::path path; bool validMarkerFolder(std::filesystem::path folder); void initFromFolder(std::filesystem::path folder); }; #endif //FEIS_MARKER_H