diff options
| -rw-r--r-- | engines/director/resource.cpp | 8 | ||||
| -rw-r--r-- | graphics/macgui/macfontmanager.cpp | 23 | ||||
| -rw-r--r-- | graphics/macgui/macfontmanager.h | 5 | 
3 files changed, 22 insertions, 14 deletions
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp index f2a44d5e69..cb870d2c61 100644 --- a/engines/director/resource.cpp +++ b/engines/director/resource.cpp @@ -219,13 +219,7 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {  	if (shardcst->hasResource(MKTAG('F', 'O', 'N', 'D'), -1)) {  		debug("Shared cast has fonts. Loading...."); -		Common::File file; - -		if (!file.open(filename)) { -			warning("Oops, cannot open file"); -		} else { -			_wm->_fontMan->loadFontsFromStream(&file); -		} +		_wm->_fontMan->loadFonts(filename);  	}  	castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024)); diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp index 9d66e495ad..1b664d53b0 100644 --- a/graphics/macgui/macfontmanager.cpp +++ b/graphics/macgui/macfontmanager.cpp @@ -158,7 +158,7 @@ void MacFontManager::loadFonts() {  	for (Common::ArchiveMemberList::iterator it = list.begin(); it != list.end(); ++it) {  		Common::SeekableReadStream *stream = dat->createReadStreamForMember((*it)->getName()); -		loadFontsFromStream(stream); +		loadFonts(stream);  	}  	_builtInFonts = false; @@ -166,12 +166,25 @@ void MacFontManager::loadFonts() {  	delete dat;  } -void MacFontManager::loadFontsFromStream(Common::SeekableReadStream *stream) { -	Common::MacResManager *fontFile = new Common::MacResManager(); +void MacFontManager::loadFonts(Common::SeekableReadStream *stream) { +	Common::MacResManager fontFile; -	if (!fontFile->loadFromMacBinary(*stream)) +	if (!fontFile.loadFromMacBinary(*stream))  		return; +	loadFonts(&fontFile); +} + +void MacFontManager::loadFonts(const Common::String &fileName) { +	Common::MacResManager fontFile; + +	if (!fontFile.open(fileName)) +		return; + +	loadFonts(&fontFile); +} + +void MacFontManager::loadFonts(Common::MacResManager *fontFile) {  	Common::MacResIDArray fonds = fontFile->getResIDArray(MKTAG('F','O','N','D'));  	if (fonds.size() > 0) {  		for (Common::Array<uint16>::iterator iterator = fonds.begin(); iterator != fonds.end(); ++iterator) { @@ -222,8 +235,6 @@ void MacFontManager::loadFontsFromStream(Common::SeekableReadStream *stream) {  			delete fond;  		}  	} - -	delete fontFile;  }  const Font *MacFontManager::getFont(MacFont macFont) { diff --git a/graphics/macgui/macfontmanager.h b/graphics/macgui/macfontmanager.h index 6d6122e2e7..2743f8b550 100644 --- a/graphics/macgui/macfontmanager.h +++ b/graphics/macgui/macfontmanager.h @@ -27,6 +27,7 @@  namespace Common {  	class SeekableReadStream; +	class MacResManager;  }  namespace Graphics { @@ -126,7 +127,9 @@ public:  	const char *getFontName(MacFont &font);  	int getFontIdByName(Common::String name); -	void loadFontsFromStream(Common::SeekableReadStream *stream); +	void loadFonts(Common::SeekableReadStream *stream); +	void loadFonts(const Common::String &fileName); +	void loadFonts(Common::MacResManager *fontFile);  private:  	void loadFontsBDF();  | 
