This is the high-level story object. More...
|virtual||~Story (void) throw ()|
|virtual const char *||getUuid (void) const =0 throw ()|
|every story must have a universally unique ID |
|virtual const char *||getTitle (void) const =0 throw ()|
|short title (preferably 16 characters or less!) |
|virtual const char *||getStartingMapId (void) const =0 throw ()|
|return the ID of the starting map (game starts here) |
|virtual std::string||getObjectPath (const char *objectType, const char *objectId) const =0|
|Given an object ID, and type of object, return the path. |
|virtual smart_ptr< i18n::Manager >||getI18nManager (const char *path)=0|
|given the locale-relative path, return an i18n::Manager object Example: getI18nManager("converse/system.txt") |
|static smart_ptr< Story >||create (const char *locale, const char *story_dir)|
This is the high-level story object.
Story objects exist to help get IDs and absolute paths to local persisted objects relevant to the story being told. The goal is that a story object is pointed at a local directory (containing the full story files), and the Story object handles all the details where objects are persisted within that directory structure. The Story object also understands (and exposes) some Story-level concepts.
The Story object can NOT:
The story library should never depend on any aesop libraries. This should be a simple leaf library.
All methods must be threadsafe! This should be no big deal since all methods are typically const anyway.