#ifndef LOCATION_H #define LOCATION_H #include #include #include class Controller; class Location { public: struct Initializer { const std::string& message; const std::list>& interactive_controllers; }; explicit Location(Initializer &&initializer); virtual const std::string& interact(); const std::list>& controllers(); void removeControllers(const std::list>& controllers); void setInteractionMessage(const std::string& message); private: std::string _interaction_message; std::list> _interactive_controllers; std::shared_ptr _current_user_location; }; #endif // LOCATION_H