[Scummvm-tracker] [ScummVM] #7060: DIG: Crash with 'Unable to find Steam executable from detection pattern'

Willem Jan Palenstijn trac at scummvm.org
Sat Oct 1 00:06:21 CEST 2016


#7060: DIG: Crash with 'Unable to find Steam executable from detection pattern'
-------------------------------+---------------------------
  Reporter:  SF/jamiemarchant  |      Owner:
      Type:  defect            |     Status:  new
  Priority:  normal            |  Component:  Engine: SCUMM
Resolution:                    |   Keywords:
      Game:  The Dig           |
-------------------------------+---------------------------

Comment (by wjp):

 Aha, that's very interesting. The `SteamIndexFile` is making the detector
 jump between different filename patterns, which the variant order doesn't
 keep into account.

 These are the entries for The Dig:
 {{{
         { "dig", "dig.la%d", kGenDiskNum, UNK_LANG, UNK, 0 },
         { "dig", "dig.la%d", kGenDiskNumSteam, UNK_LANG,
 Common::kPlatformWindows, "Steam" },
         { "dig", "dig.la%d", kGenDiskNumSteam, UNK_LANG,
 Common::kPlatformMacintosh, "Steam" },
         { "dig", "thedig.la%d", kGenDiskNum, UNK_LANG, UNK, "Demo" }, //
 Used by an alternate version of the demo
         { "dig", "The Dig Data", kGenUnchanged, UNK_LANG,
 Common::kPlatformMacintosh, 0 },
         { "dig", "The Dig Demo Data", kGenUnchanged, UNK_LANG,
 Common::kPlatformMacintosh, "Demo" },
 }}}

 I expected the first variant (`dig.la%d` with unknown platform and without
 Steam) would always be found *too* if one of the Steam variants was found
 (and so the first variant would get picked if there were multiple
 options.)

 However, in this case the Steam variant changes the file used for
 detection from the `dig.la%d` pattern to a file called `The Dig`, which
 makes this Steam variant show up _before_ the real variant with the `The
 Dig Data`, _without_ the non-Steam `dig.la%d` also being found.

 So maybe the fix is to reorder the variants into the following?
 {{{
         { "dig", "dig.la%d", kGenDiskNum, UNK_LANG, UNK, 0 },
         { "dig", "thedig.la%d", kGenDiskNum, UNK_LANG, UNK, "Demo" }, //
 Used by an alternate version of the demo
         { "dig", "The Dig Data", kGenUnchanged, UNK_LANG,
 Common::kPlatformMacintosh, 0 },
         { "dig", "The Dig Demo Data", kGenUnchanged, UNK_LANG,
 Common::kPlatformMacintosh, "Demo" },
         { "dig", "dig.la%d", kGenDiskNumSteam, UNK_LANG,
 Common::kPlatformWindows, "Steam" },
         { "dig", "dig.la%d", kGenDiskNumSteam, UNK_LANG,
 Common::kPlatformMacintosh, "Steam" },
 }}}

 I can't quite judge if that also has negative consequences, though.

--
Ticket URL: <https://bugs.scummvm.org/ticket/7060#comment:11>
ScummVM <https://bugs.scummvm.org>
ScummVM



More information about the Scummvm-tracker mailing list