From 75297759ee906b103ff9714dad17e683f1757b7f Mon Sep 17 00:00:00 2001 From: MegaMech Date: Sat, 5 Oct 2024 15:31:31 -0600 Subject: [modding] Course Mod Support (#104) * Course Manager * Course * Test * Render * That escalated quickly * update * properties * Properties * test * Fix compile * Add World * skycolours * Skybox Colours done * Cleanup * test * Game runs again * update * Game run again * Cup Works * continue * Add Courses * clouds * changes * fixes * update * Fix compile * update * A few changes * More Updates * More refactors * Fixes * Fix ai behaviour * Changes * Fix courses * test course test not working * CUSTOM * TestCourse works kinda * fixes * test course works * cleanup --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> --- src/engine/Cup.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/engine/Cup.cpp (limited to 'src/engine/Cup.cpp') diff --git a/src/engine/Cup.cpp b/src/engine/Cup.cpp new file mode 100644 index 000000000..0e77ac9b8 --- /dev/null +++ b/src/engine/Cup.cpp @@ -0,0 +1,38 @@ +#include "Cup.h" +#include "courses/Course.h" + +Cup::Cup(const char* name, std::vector courses) { + this->Name = name; + this->Courses = courses; + + if (Courses.size() != 4) { + throw std::invalid_argument("A cup must contain exactly 4 courses."); + } +} + +void Cup::Next() { + if (CursorPosition < Courses.size() - 1) { + CursorPosition++; + } +} + +void Cup::Previous() { + if (CursorPosition > 0) { + CursorPosition--; + } +} + +Course* Cup::GetCourse() { + return Courses[CursorPosition]; +} + +size_t Cup::GetSize() { + return Courses.size(); +} + +// Function to shuffle the courses randomly +void Cup::ShuffleCourses() { + // std::random_device rd; + // std::mt19937 g(rd()); + //std::shuffle(Courses.begin(), Courses.end(), g); +} -- cgit v1.2.3