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