[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