You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
548 B
C++

#ifndef ACTOR_H
#define ACTOR_H
#include <memory>
#include <list>
class Location;
class Item;
class Actor
{
public:
explicit Actor();
virtual ~Actor() = 0;
virtual void commitAction() = 0;
virtual void moveToLocation(const std::shared_ptr<Location>& location) = 0;
virtual void giveItem(const std::shared_ptr<Item>& item) = 0;
virtual void useItem(const std::shared_ptr<Item>& item) = 0;
protected:
std::shared_ptr<Location> _current_location;
std::list<std::shared_ptr<Item>> _inventory;
};
#endif // ACTOR_H