#pragma once #include #include #include "difficulties.h" namespace Beatsaber { //fwd class BeatSet; class BeatMap; class BeatLevel { public: virtual ~BeatLevel() {} virtual Difficulty::Difficulty getDifficulty() const = 0; virtual int32_t getDifficultyRank() const = 0; virtual std::string getFilename() const = 0; virtual double getNoteJumpSpeed() const = 0; // in m virtual double getNoteStartOffset() const = 0; virtual std::string getCustomData() const = 0; //TODO: get level content virtual std::shared_ptr getBeatSet() const = 0; // parent virtual std::shared_ptr getBeatMap() const = 0; // grandparent }; }