From a925d0fa2f814eeb2e780d304e89972c67171c92 Mon Sep 17 00:00:00 2001 From: coco875 <59367621+coco875@users.noreply.github.com> Date: Sat, 20 Dec 2025 00:14:29 +0100 Subject: make id of cup more robust and fix a mistake (#604) * fix id koopa troopa beach * make id of cup more robust --- src/engine/Cup.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/engine/Cup.cpp') diff --git a/src/engine/Cup.cpp b/src/engine/Cup.cpp index cc85ebca8..89088189f 100644 --- a/src/engine/Cup.cpp +++ b/src/engine/Cup.cpp @@ -45,3 +45,22 @@ void Cup::ShuffleTracks() { // std::mt19937 g(rd()); //std::shuffle(mTracks.begin(), mTracks.end(), g); } + +void Cup::ValidateTrackIds(const Registry& registry) const { + std::vector invalidTracks; + + for (const auto& trackId : mTracks) { + if (!registry.Find(trackId)) { + invalidTracks.push_back(trackId); + } + } + + if (!invalidTracks.empty()) { + std::string errorMsg = "Cup '" + Id + "' contains invalid track IDs: "; + for (size_t i = 0; i < invalidTracks.size(); ++i) { + if (i > 0) errorMsg += ", "; + errorMsg += "'" + invalidTracks[i] + "'"; + } + throw std::invalid_argument(errorMsg); + } +} -- cgit v1.2.3