Level

This class is nested in the levels class and contain a single level

class Level {
public:
    class EntityEvents
    {
    private:
        std::vector<std::pair<size_t, std::vector<size_t>>> _spawns;
        unsigned char _entity;
        std::vector<std::pair<size_t, std::vector<size_t>>>::iterator _it;
        bool _init = true;
    public:
        EntityEvents(unsigned char entity);
        ~EntityEvents();
        std::vector<size_t> getSpawns(size_t currentTimecode);
        void addSpawn(size_t timecode, size_t pos);
        unsigned char getEntity() const;
        void sort();
        bool isFinished() const;
        void setInit(bool init);
    };

    class StrobeEvent
    {
    private:
        std::vector<std::tuple<size_t, unsigned char, bool>> _strobe;
        std::vector<std::tuple<size_t, unsigned char, bool>>::iterator _it;
        bool _init = true;
    public:
        StrobeEvent();
        ~StrobeEvent();
        std::vector<std::tuple<size_t, unsigned char, bool>> getEvents(size_t currentTimecode);
        void addColor(size_t timecode, unsigned char color, size_t duration);
        void sort();
        bool isFinished() const;
        void setInit(bool init);
    };

    Level(const std::string &path);
    ~Level();
    std::vector<EntityEvents> &getEvents();
    StrobeEvent &getStrobes();
    unsigned char getSong() const;
    bool isEnded() const;
private:
    void parsSong(const std::string &line, const std::string &path, size_t line_nb);
    void parsEvents(const std::string &line, const std::string &path, size_t line_nb);
    std::vector<EntityEvents> _events;
    StrobeEvent _strobes;
    unsigned char _song = 0;
    char _parserEntity = -1;
};

Construcor

parameters

  • A string that contain the file path of the level script

Get

The Getter function are used to get the differents events of the level like spawn entities or spawn strobes

isEnded

This function check if the level is finished

Last updated