From 442f725a5d2d36183fdc41d7b050beb4aa4fd8fa Mon Sep 17 00:00:00 2001 From: whiterandrek Date: Sat, 2 Jun 2018 22:22:56 +0300 Subject: PINK: add loadTxt to ResourceMgr --- engines/pink/resource_mgr.cpp | 40 ++++++++++++++++++++++++---------------- engines/pink/resource_mgr.h | 6 ++++-- 2 files changed, 28 insertions(+), 18 deletions(-) (limited to 'engines') diff --git a/engines/pink/resource_mgr.cpp b/engines/pink/resource_mgr.cpp index d81c98b1f4..98792d23f7 100644 --- a/engines/pink/resource_mgr.cpp +++ b/engines/pink/resource_mgr.cpp @@ -48,14 +48,37 @@ void ResourceMgr::init(PinkEngine *game, Page *page) { _resDescTable = orb->getResDescTable(objDesc); } +void ResourceMgr::clear() { + delete[] _resDescTable; + _resDescTable = nullptr; +} + +CelDecoder *ResourceMgr::loadCEL(Common::String &name) { + CelDecoder *decoder = new CelDecoder(); + decoder->loadStream(getResourceStream(name)); + return decoder; +} + Sound *ResourceMgr::loadSound(Common::String &name) { return new Sound(_game->_mixer, getResourceStream(name)); } +Common::String ResourceMgr::loadText(Common::String &name) { + Common::SeekableReadStream *stream = getResourceStream(name); + char *txt = new char[stream->size()]; + Common::String str(txt, stream->size()); + delete txt; + return str; +} + static int resDescComp(const void *a, const void *b) { return scumm_stricmp((char *) a, (char *) b); } +PinkEngine *ResourceMgr::getGame() const { + return _game; +} + Common::SafeSeekableSubReadStream *ResourceMgr::getResourceStream(Common::String &name) { Common::SeekableReadStream *stream; @@ -69,22 +92,7 @@ Common::SafeSeekableSubReadStream *ResourceMgr::getResourceStream(Common::String stream->seek(desc->offset); return new Common::SafeSeekableSubReadStream(stream, desc->offset, - desc->offset + desc->size); -} - -PinkEngine *ResourceMgr::getGame() const { - return _game; -} - -CelDecoder *ResourceMgr::loadCEL(Common::String &name) { - CelDecoder *decoder = new CelDecoder(); - decoder->loadStream(getResourceStream(name)); - return decoder; -} - -void ResourceMgr::clear() { - delete[] _resDescTable; - _resDescTable = nullptr; + desc->offset + desc->size); } } // End of namespace Pink diff --git a/engines/pink/resource_mgr.h b/engines/pink/resource_mgr.h index 7cd3dc33a1..4b050eb3ae 100644 --- a/engines/pink/resource_mgr.h +++ b/engines/pink/resource_mgr.h @@ -47,11 +47,13 @@ public: ~ResourceMgr(); void init(PinkEngine *game, Page *page); + void clear(); - //Common::String loadText(Common::String &name); - Sound *loadSound(Common::String &name); CelDecoder *loadCEL(Common::String &name); + Sound *loadSound(Common::String &name); + Common::String loadText(Common::String &name); + PinkEngine *getGame() const; private: -- cgit v1.2.3