#pragma once // 4J - this WeighedRandomItem class was a nested static class within // WeighedRandom, but we need to be able to refer to it externally class WeighedRandomItem { friend class WeighedRandom; protected: int randomWeight; public: WeighedRandomItem(int randomWeight) { this->randomWeight = randomWeight; } }; class WeighedRandom { public: // 4J - vectors here were Collection static int getTotalWeight(std::vector* items); static WeighedRandomItem* getRandomItem( Random* random, std::vector* items, int totalWeight); static WeighedRandomItem* getRandomItem( Random* random, std::vector* items); static int getTotalWeight(WeighedRandomItemArray items); static WeighedRandomItem* getRandomItem(Random* random, WeighedRandomItemArray items, int totalWeight); static WeighedRandomItem* getRandomItem(Random* random, WeighedRandomItemArray items); };