#ifndef STAR_INSPECTABLE_ENTITY_HPP #define STAR_INSPECTABLE_ENTITY_HPP #include "StarEntity.hpp" namespace Star { STAR_CLASS(InspectableEntity); class InspectableEntity : public virtual Entity { public: // Default implementation returns true virtual bool inspectable() const; // If this entity can be entered into the player log, will return the log // identifier. virtual Maybe<String> inspectionLogName() const; // Long description to display when inspected, if any virtual Maybe<String> inspectionDescription(String const& species) const; }; inline bool InspectableEntity::inspectable() const { return true; } inline Maybe<String> InspectableEntity::inspectionLogName() const { return {}; } inline Maybe<String> InspectableEntity::inspectionDescription(String const&) const { return {}; } } #endif