Opened 20 years ago
Closed 20 years ago
#2043 closed defect (fixed)
COMI: Verb regression during sword fights
Reported by: | Kirben | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Monkey Island 3 |
Description
Latest ScummVM cvs version. English version of Curse of Monkey Island. Compiled under mingw with GCC 3.4.2 and running under Windows XP.
When scrolling through verb options during the insult sword fighting verb glitches can be seen briefly as their backgrounds are cleared.
The last few lines of some letters (ie g) are cut off, in verb options during conversations.
Saved game attached, just scroll through verb options to see both verb glitches.
These issues occur since scumm/verbs.cpp revision 1.136. The current verb redraw order is correct though, according to COMI disasm.
Ticket imported from: #1208956. Ticket imported from: bugs/2043.
Attachments (1)
Change History (8)
by , 20 years ago
comment:1 by , 20 years ago
Hrm, I can't load that savegame, it says: WARNING: Can not load thumbnail!
Maybe the new thumbnails aren't as endian safe as we thought after all? <sigh>
comment:2 by , 20 years ago
I fixed the savegame issue in CVS.
Anyway, the issue in this report is trivial to fix (see verbs.cpp revision 1.21, <http://cvs.sourceforge.net/viewcvs.py/scummvm/scummvm/scumm /verbs.cpp?r1=1.20&r2=1.21>); but of course that fix (which simply makes COMI not redraw the verb background) then causes verb scrolling to be broken.
There are multiple hypothetically possible ways to solve this. At the very least the following two come to mind. In both cases, we would re-apply 1.21. (Maybe somebody can check the disasm of drawVerb in COMI to verify this?). In either case we would then have to restore the background in some other place.
1) Modify redrawVerbs() to first loop and call restoreVerbBG() for each verb as appropriate, and only after that do the current loop which calls drawVerb for each verb
2) I wonder if the verbs in FT, Dig, Comi are handled like the blast text/objects; that would kinda make a lot of sense: these, two, are all redrawn every time scummLoop runs. For the blast stuff, we first draw them, then render them, and in the end, remove them from the screen. So maybe we simply should add a 'removeVerbsFromScreen' phase after drawDirtyScreenParts() ? Of cour
comment:3 by , 20 years ago
FT, Dig and COMI all use blastTexts for verbs, if that is any help. They don't clear the previous verb in drawVerb() but elsewhere (Not sure where). Dig and COMI originally called redrawVerbs() right after 'palMultipliate()' in the main loop too. But that caused problems when I previously applied it to ScummVM too.
comment:4 by , 20 years ago
Uhm, you are confusing me... :-) If they used blastText for verbs, then they didn't have to clear the verbs somewhere else; blastTexts are already always cleared...
comment:5 by , 20 years ago
Your right, verbs are cleared my removeBlastTexts() later in main loop. Just ignore my last confusing comment.
comment:6 by , 20 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Scoll through verb options