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

Description

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)

Comi7.zip (59.7 KB ) - added by SF/logicdeluxe 16 years ago.

Download all attachments as: .zip

Change History (15)

by SF/logicdeluxe, 16 years ago

Attachment: Comi7.zip added

comment:1 by fingolfin, 16 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, 16 years ago

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

comment:3 by fingolfin, 16 years ago

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

comment:4 by fingolfin, 16 years ago

Owner: set to eriktorbjorn

comment:5 by fingolfin, 16 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, 16 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, 16 years ago

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

comment:8 by fingolfin, 16 years ago

Might be related to bug #929242

comment:9 by eriktorbjorn, 15 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, 15 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, 15 years ago

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

The bug:
https://sourceforge.net/tracker/index.php?func=detail&aid=778060&group_id=37116&atid=418820

The patch:
https://sourceforge.net/tracker/index.php?func=detail&aid=778442&group_id=37116&atid=418822

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, 15 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, 15 years ago

Resolution: fixed
Status: newclosed

comment:14 by eriktorbjorn, 15 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.