Opened 20 years ago

Closed 19 years ago

#1195 closed defect (fixed)

COMI: wrong text position

Reported by: SF/logicdeluxe Owned by: eriktorbjorn
Priority: normal Component: Engine: SCUMM
Version: 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 20 years ago.

Download all attachments as: .zip

Change History (15)

by SF/logicdeluxe, 20 years ago

Attachment: added

comment:1 by fingolfin, 20 years ago

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 by fingolfin, 20 years ago

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

comment:3 by fingolfin, 20 years ago

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

comment:4 by fingolfin, 20 years ago

Owner: set to eriktorbjorn

comment:5 by fingolfin, 20 years ago

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 by SF/monkeybutter, 19 years ago

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 by fingolfin, 19 years ago

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

comment:8 by fingolfin, 19 years ago

Might be related to bug #929242

comment:9 by eriktorbjorn, 19 years ago

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 by fingolfin, 19 years ago

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 by eriktorbjorn, 19 years ago

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 by fingolfin, 19 years ago

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 by eriktorbjorn, 19 years ago

Resolution: fixed
Status: newclosed

comment:14 by eriktorbjorn, 19 years ago

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.