[Scummvm-tracker] [ScummVM] #9666: SCI: Hoyle5: crash due to kList w/Sort subop signature mismatch

Omer Mor trac at scummvm.org
Sat Dec 10 22:26:44 CET 2016


#9666: SCI: Hoyle5: crash due to kList w/Sort subop signature mismatch
---------------------+-----------------------
Reporter:  Omer Mor  |      Owner:  (none)
    Type:  defect    |     Status:  new
Priority:  normal    |  Component:  --Unset--
Keywords:            |       Game:
---------------------+-----------------------
 After starting a game of Hearts, the game will deal the cards and then
 crash due to mismatched kList/sort signature in `Hand::sort()`.

 The current signature is `"ooo"`.
 The expected signature appears to be `"li(i)"` which I guess stands for
 something like this:
 `List_Sort(List elements, int prop_to_sort_by, int order = 0);`

 Here's the decompiled script:
 {{{
 (method (sort param1)
    (if
       (and
          (not (Dealer script?))
          (or faceUp (and argc param1))
       )
       (switch gGNewStr_2AsInteger_8
          (1
             (List 22 (self elements?) 756 0)
          )
          (2
             (List 22 (self elements?) 756 1)
          )
          (3
             (self convertSuit: 3)
             (List 22 (self elements?) 756 0)
             (List 22 (self elements?) 755 0)
             (self revertSuit: 3)
          )
          (4
             (self convertSuit: 4)
             (List 22 (self elements?) 756 1)
             (List 22 (self elements?) 755 1)
             (self revertSuit: 4)
          )
          (5
             (List 22 self sortedList ascendingBySuitCode)
          )
          (6
             (List 22 self sortedList descendingBySuitCode)
          )
          (else  (self posn:) (return))
       )
       (self update: gCrazy8sSortCode)
    )
 )
 }}}

 This bug can be reproduced using the Hoyle5 demo from here:
 [http://www.sierrahelp.com/Files/Demos/HoyleClassicGames5InteractiveDemo.zip].

--
Ticket URL: <https://bugs.scummvm.org/ticket/9666>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list