diff options
author | Christoph Mallon | 2011-08-06 13:08:42 +0200 |
---|---|---|
committer | Christoph Mallon | 2011-08-07 15:19:08 +0200 |
commit | 0e6751372a80716cadddd926eeb6965ae6c00a44 (patch) | |
tree | d8a7b936dfe41109738db53d4b94199f81d3ff74 | |
parent | f3afb32ee6039f69f3b3616989cc26fd4a0dca95 (diff) | |
download | scummvm-rg350-0e6751372a80716cadddd926eeb6965ae6c00a44.tar.gz scummvm-rg350-0e6751372a80716cadddd926eeb6965ae6c00a44.tar.bz2 scummvm-rg350-0e6751372a80716cadddd926eeb6965ae6c00a44.zip |
SCI: Simplify allocation of ResourceManager.
-rw-r--r-- | engines/sci/detection.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp index b04c1a69f3..82f762e3db 100644 --- a/engines/sci/detection.cpp +++ b/engines/sci/detection.cpp @@ -285,7 +285,7 @@ static const OldNewIdTableEntry s_oldNewTable[] = { * @param[in] gameFlags The game's flags, which are adjusted accordingly for demos * @return The equivalent ScummVM game id */ -Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, ResourceManager *resMan) { +Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, ResourceManager &resMan) { // Convert the id to lower case, so that we match all upper/lower case variants. sierraId.toLowercase(); @@ -301,7 +301,7 @@ Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, R if (sierraId == "fp" || sierraId == "gk" || sierraId == "pq4") demoThreshold = 150; - Common::ScopedPtr<Common::List<ResourceId> > resources(resMan->listResources(kResourceTypeScript, -1)); + Common::ScopedPtr<Common::List<ResourceId> > resources(resMan.listResources(kResourceTypeScript, -1)); if (resources->size() < demoThreshold) { *gameFlags |= ADGF_DEMO; @@ -337,7 +337,7 @@ Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, R // This could either be qfg1 VGA, qfg3 or qfg4 demo (all SCI1.1), // or qfg4 full (SCI2) // qfg1 VGA doesn't have view 1 - if (!resMan->testResource(ResourceId(kResourceTypeView, 1))) + if (!resMan.testResource(ResourceId(kResourceTypeView, 1))) return "qfg1vga"; // qfg4 full is SCI2 @@ -480,10 +480,9 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, return 0; } - Common::ScopedPtr<ResourceManager> resMan(new ResourceManager()); - assert(resMan); - resMan->addAppropriateSources(fslist); - resMan->init(true); + ResourceManager resMan; + resMan.addAppropriateSources(fslist); + resMan.init(true); // TODO: Add error handling. #ifndef ENABLE_SCI32 @@ -494,7 +493,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, } #endif - ViewType gameViews = resMan->getViewType(); + ViewType gameViews = resMan.getViewType(); // Have we identified the game views? If not, stop here // Can't be SCI (or unsupported SCI views). Pinball Creep by sierra also uses resource.map/resource.000 files @@ -508,7 +507,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, s_fallbackDesc.platform = Common::kPlatformAmiga; // Determine the game id - Common::String sierraGameId = resMan->findSierraGameId(); + Common::String sierraGameId = resMan.findSierraGameId(); // If we don't have a game id, the game is not SCI if (sierraGameId.empty()) { @@ -530,7 +529,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles, // As far as we know, these games store the messages of each language in separate // resources, and it's not possible to detect that easily // Also look for "%J" which is used in japanese games - Resource *text = resMan->findResource(ResourceId(kResourceTypeText, 0), 0); + Resource *text = resMan.findResource(ResourceId(kResourceTypeText, 0), 0); uint seeker = 0; if (text) { while (seeker < text->size) { |