LOOM: Distaff not properly erased (regression)
|Reported by:||eriktorbjorn||Owned by:||eriktorbjorn|
This bug has been listed on the ScummVM regressions page for some time now, but I figured it'd be a good idea to have it in the tracker as well since we're nearing 0.4.0.
As the subject line says, the distaff is not properly erased. There's a screenshot of this at http://users.bigpond.net.au/tgray2/loombug.png
Since it happens so early in the game, I haven't bothered to provide a savegame.
I believe this bug was introduced when Fingolfin fixed a graphics glitch with the MonkeyVGA scroll arrows by removing a "right++;" from restoreBG(). But since it calculates the width as right - left, that probably makes it one pixel too narrow. Another thing that looks suspicious in this function is that it checks if right > _realWidth. Surely that should be _realWidth - 1?
The same reasoning also applies to the height calculation and check. Note however that whenever I've tried to "fix" this, I've ended up introducing new graphics glitches.
Maybe we should justrevert the bugfix and work around the problem like we do for Indy 3 and Zak256 in CharsetRendererOld256::getCharWidth(). At least I assume that FIXME code is for a similar bug.
Ticket imported from: #706178. Ticket imported from: bugs/720.