From 5f3bf98f032c764c3278c90f37cc84314a04acd3 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Tue, 25 Apr 2023 11:32:18 -0700 Subject: [PATCH] Adds convenience functions to freebies. --- sbf-cpp/Freebies.cpp | 24 +++++++++++++++++++++++- sbf-cpp/Freebies.h | 4 ++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/sbf-cpp/Freebies.cpp b/sbf-cpp/Freebies.cpp index aa761e4..9aeddbc 100644 --- a/sbf-cpp/Freebies.cpp +++ b/sbf-cpp/Freebies.cpp @@ -5,6 +5,7 @@ namespace SBF { namespace { using std::ostream; +using std::vector; } // End namespace ostream& operator<<(ostream& os, const FreebieType& freebie) { @@ -28,10 +29,31 @@ FreebieType GetFreebie(int freebie_id) { return kFreebieUnknown; } -void FillFreebies(std::vector& freebies) { +void FillFreebies(vector& freebies) { freebies.clear(); for (int id = 1; id <= kFreebiesCount; id++) { freebies.push_back(GetFreebie(id)); } } + +vector GetFreebies() { + vector freebies; + + FillFreebies(freebies); + + return freebies; +} + +vector GetAvailableFreebies(int freebie_points) { + vector freebies; + + for (int id = 1; id <= kFreebiesCount; id++) { + FreebieType freebie = GetFreebie(id); + if (freebie.cost <= freebie_points) { + freebies.push_back(freebie); + } + } + + return freebies; +} } // End namespace SBF diff --git a/sbf-cpp/Freebies.h b/sbf-cpp/Freebies.h index 68ec00d..1c16553 100644 --- a/sbf-cpp/Freebies.h +++ b/sbf-cpp/Freebies.h @@ -148,6 +148,10 @@ FreebieType GetFreebie(int freebie_id); /// @param freebies The vector to fill. It will be cleared first. void FillFreebies(std::vector& freebies); +std::vector GetFreebies(); + +std::vector GetAvailableFreebies(int freebie_points); + } // End namespace SBF #endif