Opened 16 years ago

Closed 15 years ago

#1195 closed defect (fixed)

COMI: wrong text position

Reported by: SF/logicdeluxe Owned by: eriktorbjorn
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 3


ScummVM 0.5.3cvs (Aug 27 2003 16:57:28)
When the screen switches from the overview to the
beach, the first subtitle line is cut off at the left
end. Load the savegame and see this happen three times!

Ticket imported from: #795938. Ticket imported from: bugs/1195.

Attachments (1) (59.7 KB) - added by SF/logicdeluxe 16 years ago.

Download all attachments as: .zip

Change History (15)

Changed 16 years ago by SF/logicdeluxe

Attachment: added

comment:1 Changed 16 years ago by fingolfin

The text is cut off becasuse it is drawn at the wrong position. That
is, it is drawn off to the left side, partially outside the visible
screen area.

comment:2 Changed 16 years ago by fingolfin

Summary: COMI: glitch when back on Blood IslandCOMI: wrong text position

comment:3 Changed 16 years ago by fingolfin

The "cutoff" only happens immediately after the room was loaded,
it seems. Odd

comment:4 Changed 16 years ago by fingolfin

Owner: set to eriktorbjorn

comment:5 Changed 16 years ago by fingolfin

Ah, using some printf's, I found at least the immediate reason: the
text is off because xstart is not yet setup at the point the text is
drawn: it's still at 0.
I tried to insert calls to cameraMoved() and/or moveCamera() at
he end of startScene(), but that didn't really help. I then inserted a
call into CHARSET_1, which does make the text be positioned at
the right spot, but only a tiny fraction of it is visible anyway, and
this seems like an evil evil hack....

Hey Erik, maybe you have an idea?

comment:6 Changed 15 years ago by SF/monkeybutter

I can't replicate this bug under 20040222 on a debian linux build,
where as it was occuring in 20040131 (there was also a bug in the
way that the ocean waves could be seen over the gold statue of
governer Marley in the earlier version that's disappeared, too).

Nice work :-)

comment:7 Changed 15 years ago by fingolfin

Hmm? Problem still occurs for me with latest CVS...

comment:8 Changed 15 years ago by fingolfin

Might be related to bug #929242

comment:9 Changed 15 years ago by eriktorbjorn

Adding cameraMoved() to the end of setCameraAt() seems to
fix the problem for me. Would this be an acceptable solution?

I have this vague feeling that we used to have a similar
glitch in DOTT when Bernard tried to send an object to
Laverne, when she wasn't able to receive it. For the life of
me, I can't remember exactly what we did about it, though...

comment:10 Changed 15 years ago by fingolfin

Erik, while I don't recall that error you describe, maybe you can find the
relevant bug tracker item. From that it should be possible to determine
the fix (either by comments on the tracker item, or by comparing with
the CVS logs).

comment:11 Changed 15 years ago by eriktorbjorn

I tried finding them yesterday, but failed. I finally found
them today, though:

The bug:

The patch:

So the bug was somewhat similar: cameraMoved() wasn't called
early enough, and we fixed it by calling it manually;
something we already did for more recent games anyway.

However, it doesn't really tell us what to do for this bug,
does it? What did you think about adding cameraMoved() to
the functions that set the camera position?

comment:12 Changed 15 years ago by fingolfin

Well, I see no fundamental harm in adding the cameraMoved() call there;
however, it still would be nice if somebody could investigate this based
on the assembly :-)

So from my POV, feel free to commit the fix, just mark it with a
comment pointing to this bug report.

comment:13 Changed 15 years ago by eriktorbjorn

Resolution: fixed
Status: newclosed

comment:14 Changed 15 years ago by eriktorbjorn

I've made the change, and added a comment pointing to this
bug report and #929242 which, as you said, was apparently
caused by the same thing.

Let's hope there are no regressions. :-)

Note: See TracTickets for help on using tickets.