[Scummvm-tracker] [ScummVM] #10765: QFG4 floppy: Assertion Error celobj32.cpp:179 at the swamp

Vhati trac at scummvm.org
Sun Dec 9 09:41:36 CET 2018


#10765: QFG4 floppy: Assertion Error celobj32.cpp:179 at the swamp
--------------------------------+-------------------------
  Reporter:  Vhati              |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  high               |  Component:  Engine: SCI
Resolution:                     |   Keywords:  SCI32
      Game:  Quest for Glory 4  |
--------------------------------+-------------------------

Comment (by Vhati):

 Investigated a bit.

 * Walk to the swamp shore west of the goo.
 * Find the plane with ~24 screen items.
   * vpl
 * List the screen items on that plane.
   * vpi 0012:0003
 * send {every 'hands' address} hide
 * send {one 'hands' address} show

 All but one sank and rose without problems.

 One hand near the back (0012:05a5, x:48 y:108 view:535 loop:5
 cycler:cueEndLoop) was throwing assertion errors repeatedly the whole time
 it was submerged. It was fine while it was up. No where near the edge of
 the screen.

 Hands are positioned with randomly chosen values from lists and given a
 randomly chosen loop. (script 10 - Swamp::init())

 All the possible hand loops have a submerged cell 0 with dimensions: 1x1.
 \\
 \\
 I brought the hand closer to the foreground ("send 0012:05a5 y 150"), and
 it stopped throwing errors.

 I moved it far away ("send 0012:05a5 y 100"), and it threw errors again.
 \\
 \\
 I can't set a good breakpoint for the error and don't know how to check
 its width.
 I'm guessing the scaler is reducing the 1x1 dimensions to 0.

 [https://github.com/scummvm/scummvm/blob/b9a99a897d6e669c43b9faa39300db5a5efac118/engines/sci/graphics/celobj32.cpp#L170
 Source]: celobj32.cpp
 {{{
 _minX(targetRect.left),
 _maxX(targetRect.right - 1),
 [...]
 assert(_minX <= _maxX);
 }}}

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


More information about the Scummvm-tracker mailing list