1 #pragma once 2 3 #include <vector> 4 5 #include "ItemModel.h" 6 7 class ItemSystem; 8 9 class IMPPolicy 10 { 11 public: 12 virtual bool isCodeAccepted(const ST::string& code) const = 0; 13 virtual uint8_t getStartingLevel() const = 0; 14 virtual const std::vector<const ItemModel *> & getInventory() const = 0; 15 virtual const std::vector<const ItemModel *> & getGoodShooterItems() const = 0; 16 virtual const std::vector<const ItemModel *> & getNormalShooterItems() const = 0; 17 // this could be defaulted in C++11 ~IMPPolicy()18 virtual ~IMPPolicy() {} 19 }; 20