summaryrefslogtreecommitdiff
path: root/src/engine/Cup.h
blob: a38563bb0b0a777ab0fd3f416a631452eac8f9d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

// Base Cup class
#include <vector>
#include <memory>
#include "courses/Course.h"

class Course; // <-- Forward declare

class Cup {
public:
    std::string Id;
    const char* Name;
    u8 *Thumbnail;
    size_t CursorPosition = 0; // Course index in cup
    std::vector<std::shared_ptr<Course>> Courses;

    explicit Cup(std::string id, const char* name, std::vector<std::shared_ptr<Course>> courses);

    virtual void ShuffleCourses();

    virtual void Next();
    virtual void Previous();
    virtual void SetCourse(size_t position);
    virtual std::shared_ptr<Course> GetCourse();
    virtual size_t GetSize();
};