diff options
Diffstat (limited to 'engines/titanic/true_talk/tt_scripts.h')
-rw-r--r-- | engines/titanic/true_talk/tt_scripts.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/engines/titanic/true_talk/tt_scripts.h b/engines/titanic/true_talk/tt_scripts.h index e47a7b2f87..5934eb3625 100644 --- a/engines/titanic/true_talk/tt_scripts.h +++ b/engines/titanic/true_talk/tt_scripts.h @@ -31,19 +31,33 @@ namespace Titanic { class CTitleEngine; -PTR_LIST_ITEM(TTNamedScript); +class TTNamedScriptListItem : public ListItem { +public: + TTNamedScript *_script; + TTUnnamedScript *_unnamedScript; +public: + TTNamedScriptListItem() : _script(nullptr), _unnamedScript(nullptr) {} + TTNamedScriptListItem(TTNamedScript *script, TTUnnamedScript *unnamedScript) : + _script(script), _unnamedScript(unnamedScript) {} + virtual ~TTNamedScriptListItem() { delete _script; } +}; + PTR_LIST_ITEM(TTUnnamedScript); class TTNamedScriptList : public List<TTNamedScriptListItem> { +public: + TTNamedScript *findById(int charId) const; }; -class TTUnamedScriptList : public List<TTUnnamedScriptListItem> { +class TTUnnamedScriptList : public List<TTUnnamedScriptListItem> { +public: + TTUnnamedScript *findById(int scriptId) const; }; class TTScripts { private: TTNamedScriptList _namedScripts; - TTUnamedScriptList _unnamedScripts; + TTUnnamedScriptList _unnamedScripts; CTitleEngine *_titleEngine; int _field24; int _field28; @@ -51,7 +65,7 @@ private: /** * Add a named script to the named scripts list */ - void addScript(TTNamedScript *script); + void addScript(TTNamedScript *script, int charId); /** * Add an unnamed script to the unnamed scripts list @@ -59,6 +73,16 @@ private: void addScript(TTUnnamedScript *script); public: TTScripts(CTitleEngine *titleEngine); + + /** + * Return a pointer to the specified script + */ + TTUnnamedScript *getUnnamedScript(int scriptId) const; + + /** + * Return a pointer to the specified named character script + */ + TTNamedScript *getNamedScript(int charId) const; }; } // End of namespace Titanic |