Adds convenience functions to freebies.

This commit is contained in:
2023-04-25 11:32:18 -07:00
parent 2efe940300
commit 5f3bf98f03
2 changed files with 27 additions and 1 deletions

View File

@@ -5,6 +5,7 @@
namespace SBF { namespace SBF {
namespace { namespace {
using std::ostream; using std::ostream;
using std::vector;
} // End namespace } // End namespace
ostream& operator<<(ostream& os, const FreebieType& freebie) { ostream& operator<<(ostream& os, const FreebieType& freebie) {
@@ -28,10 +29,31 @@ FreebieType GetFreebie(int freebie_id) {
return kFreebieUnknown; return kFreebieUnknown;
} }
void FillFreebies(std::vector<FreebieType>& freebies) { void FillFreebies(vector<FreebieType>& freebies) {
freebies.clear(); freebies.clear();
for (int id = 1; id <= kFreebiesCount; id++) { for (int id = 1; id <= kFreebiesCount; id++) {
freebies.push_back(GetFreebie(id)); freebies.push_back(GetFreebie(id));
} }
} }
vector<FreebieType> GetFreebies() {
vector<FreebieType> freebies;
FillFreebies(freebies);
return freebies;
}
vector<FreebieType> GetAvailableFreebies(int freebie_points) {
vector<FreebieType> 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 } // End namespace SBF

View File

@@ -148,6 +148,10 @@ FreebieType GetFreebie(int freebie_id);
/// @param freebies The vector to fill. It will be cleared first. /// @param freebies The vector to fill. It will be cleared first.
void FillFreebies(std::vector<FreebieType>& freebies); void FillFreebies(std::vector<FreebieType>& freebies);
std::vector<FreebieType> GetFreebies();
std::vector<FreebieType> GetAvailableFreebies(int freebie_points);
} // End namespace SBF } // End namespace SBF
#endif #endif