aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2017-01-27 10:15:54 +0100
committerEugene Sandulenko2017-01-27 10:15:54 +0100
commit01133310c4c909333b5ebc1c0a78b701e5932312 (patch)
treeedd61d7ca701a7978b010da9e085ddb244fc6835
parent399f5b9be55f61d8b7650d77af8db9fbf43bde73 (diff)
downloadscummvm-rg350-01133310c4c909333b5ebc1c0a78b701e5932312.tar.gz
scummvm-rg350-01133310c4c909333b5ebc1c0a78b701e5932312.tar.bz2
scummvm-rg350-01133310c4c909333b5ebc1c0a78b701e5932312.zip
GRAPHICS: Overload loadFonts() method in MacResMnager
-rw-r--r--engines/director/resource.cpp8
-rw-r--r--graphics/macgui/macfontmanager.cpp23
-rw-r--r--graphics/macgui/macfontmanager.h5
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();