diff options
author | Matthew Hoops | 2011-03-07 01:07:53 -0500 |
---|---|---|
committer | Matthew Hoops | 2011-03-07 01:10:01 -0500 |
commit | ad7400524b8e024577169f7dd4cb4d586ee37fa0 (patch) | |
tree | 505324966b7675a277b5d14cb37b138f61e5829c /engines/mohawk/riven.cpp | |
parent | d49f3a8a781b28ba46e22e8f8a2c486a146b7e8c (diff) | |
download | scummvm-rg350-ad7400524b8e024577169f7dd4cb4d586ee37fa0.tar.gz scummvm-rg350-ad7400524b8e024577169f7dd4cb4d586ee37fa0.tar.bz2 scummvm-rg350-ad7400524b8e024577169f7dd4cb4d586ee37fa0.zip |
MOHAWK: Make Riven use original executables for cursors
It will try both Windows and Macintosh executables. The hardcoded cursors have been removed.
Diffstat (limited to 'engines/mohawk/riven.cpp')
-rw-r--r-- | engines/mohawk/riven.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp index abc7f5304e..19adf3fe2f 100644 --- a/engines/mohawk/riven.cpp +++ b/engines/mohawk/riven.cpp @@ -120,7 +120,15 @@ Common::Error MohawkEngine_Riven::run() { _externalScriptHandler = new RivenExternal(this); _optionsDialog = new RivenOptionsDialog(this); _scriptMan = new RivenScriptManager(this); - _cursor = new RivenCursorManager(); + + // Create the cursor manager + // TODO: Error handling when none can be found + if (Common::File::exists("rivendmo.exe")) + _cursor = new PECursorManager("rivendmo.exe"); + else if (Common::File::exists("riven.exe")) + _cursor = new PECursorManager("riven.exe"); + else // last resort: try the Mac executable + _cursor = new MacCursorManager("Riven"); _rnd = new Common::RandomSource(); g_eventRec.registerRandomSource(*_rnd, "riven"); @@ -135,6 +143,7 @@ Common::Error MohawkEngine_Riven::run() { // Start at main cursor _cursor->setCursor(kRivenMainCursor); + _system->updateScreen(); // Let's begin, shall we? if (getFeatures() & GF_DEMO) { @@ -488,10 +497,12 @@ void MohawkEngine_Riven::checkHotspotChange() { if (_curHotspot != hotspotIndex) { _curHotspot = hotspotIndex; _cursor->setCursor(_hotspots[_curHotspot].mouse_cursor); + _system->updateScreen(); } } else { _curHotspot = -1; _cursor->setCursor(kRivenMainCursor); + _system->updateScreen(); } } |