#72 closed defect (fixed)
DOTT: dialogue outline colour bug
Reported by: | zeldin | Owned by: | SF/ender |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Day of the Tentacle |
Description
In Day of the Tentacle, if you ask Nurse Edna "What's wrong with sleepwalking?" then afterwards the outline colour of all dialogue is wrong (instead of black it becomes another colour, different in each room).
Ticket imported from: #519646. Ticket imported from: bugs/72.
Change History (10)
comment:1 by , 23 years ago
comment:2 by , 23 years ago
Owner: | set to |
---|---|
Resolution: | → worksforme |
Status: | new → closed |
comment:3 by , 23 years ago
Status: | closed → new |
---|
comment:4 by , 23 years ago
Yes, I'm building from newset CVS, and the bug still exists. Dunno, maybe my datafiles are botched somehow? Here are the md5 checksums of the files I use (floppy version):
MD5 (MONSTER.SOU) = ec46c029ec58596485b221dac0c55d7a MD5 (TENTACLE.000) = acad97ab1c6fc2a5b2d98abf6db4a190 MD5 (TENTACLE.001) = 51c4a97f3479bb49855bf1795269d767 MD5 (TENTACLE.002) = 645033736055b983fcb82289b28cecc4 MD5 (TENTACLE.EXE) = ad3bb485e0a74e0e5117ea6e16eae765
Or it might be that the bug only exists in the Dreamcast version, although I frankly don't see how, as the dialogue graphics is generated entirely by the platform-independant stuff...
I'll try to dig a little deeper into it later tonight.
comment:5 by , 23 years ago
Looking a little closer, the reason that the colours get screwed up is that _charsetData[2] gets overwritten by the string "bination since he works it so fast", which is the last part of Edna's line. Looks like there is a buffer overrun somewhere...
comment:6 by , 23 years ago
Oh yes. Edna's entire line is:
Ordinarily nothing, but when Fred sleepwalks, he remembers the combination to the safe.I'd find him in the office, opening it, screaming like a cat in the oven, and slamming it again^^something about what's in there really scares him.Unfortunately, I was never able to catch the combination since he works it so fast.
That's 320 characters. This string gets passed to addMessageToStack(), which copies it into charset._buffer, which is 256 characters big.
When will people learn not to allocate buffers of static size for things they can't control the size of...
comment:7 by , 23 years ago
Not suprising, I'm trying to track down another similar overrun for Indy3.
I was using the CD talkie version, which must have shorter dialouge or something - I never noticed the problem there.
I'll just up the buffer in scumm.h, I see you've already added an assert.
comment:8 by , 23 years ago
Resolution: | worksforme → fixed |
---|---|
Status: | new → closed |
comment:9 by , 23 years ago
Well, works well enough for now. Until some game wants to do a talk that's 520 characters long. :-)
comment:10 by , 6 years ago
Component: | → Engine: SCUMM |
---|---|
Game: | → Day of the Tentacle |
Can't replicate this bug. Closing report - make sure your using a build from the newest CVS.