Opened 16 years ago

Closed 16 years ago

#986 closed defect (fixed)

LOOM: Distaff looks bizarre when restoring from save

Reported by: SF/dfabulich Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Loom

Description

Restore from any saved game. The distaff will be
missing all of its letters and it will look like every
active note is on at the same time, making the staff
look like a rainbow. Clicking on individual notes can
correct this.

Win2K, ScummVM 0.5.0pre-cvs Built on Jul 10 2003 20:29:19.

Ticket imported from: #770041. Ticket imported from: bugs/986.

Attachments (2)

loom.s01 (58.0 KB ) - added by SF/dfabulich 16 years ago.
A saved game selected at random
loomstaff.png (33.9 KB ) - added by SF/dfabulich 16 years ago.
Screen shot of the problem

Download all attachments as: .zip

Change History (12)

by SF/dfabulich, 16 years ago

Attachment: loom.s01 added

A saved game selected at random

by SF/dfabulich, 16 years ago

Attachment: loomstaff.png added

Screen shot of the problem

comment:1 by Kirben, 16 years ago

Owner: set to Kirben
Resolution: duplicate
Status: newclosed

comment:2 by Kirben, 16 years ago

Closed as duplicate of #609723

comment:3 by SF/dfabulich, 16 years ago

This bug is different from the note letter problem in Loom
CD. The LoomCD note letter problem occurs b/c the notes are
created as dialogue; they disappear when you bring up the
Save Game screen and hit cancel. But in Loom EGA the note
letters are not generated using dialogue; this bug only
occurs on Restore. It also is visually plainly different
from the other bug. Look at the screenshot to see what I mean.

So, I think these bugs are different. Do you have some
special reason to think that these bugs are due to the same
root cause or something?

comment:4 by Kirben, 16 years ago

Owner: Kirben removed
Status: closednew

comment:5 by Kirben, 16 years ago

OK I closed a bit too quickly, reopening.
Are you using non-English version of Loom EGA ? your Loom
EGA save games crash ScummVM (Latest CVS) under
Windows XP here.

comment:6 by SF/dfabulich, 16 years ago

Nope, plain English. I'll try updating to latest ScummVM
sometime later this weekend.

comment:7 by eriktorbjorn, 16 years ago

I looked briefly at this once. This is all from memory, so I
may have gotten some details wrong.

The glittering of the distaff is implemented by activating
and drawing a new verb image in place of the old one.

Problem is, these new verbs are never deactivated and when
you load an old save game all active verbs are drawn in verb
number order. The "glitter" verbs all have higher number
than the normal ones, so they are all drawn last.

In the CD version, by the way, the "glitter" verbs are
deactivated as soon as they are used.

Knowing this, it would be trivial to add a hack to fix the
bug, but as far as I know this is not what the original
interpreter does. I don't know how to fix it properly.

comment:8 by fingolfin, 16 years ago

Summary: Loom EGA: Distaff looks bizarre when restoring from saveLOOM: Distaff looks bizarre when restoring from save

comment:9 by eriktorbjorn, 16 years ago

To elaborate slightly, here are script fragments from
script-31 (the script that makes the distaff glitter) for
both EGA Loom and CD Loom:

EGA Loom

[02A3] (9A) Local[4] = Var[152 + Local[3]];
[02AA] (9A) Local[5] = Var[142 + Local[3]];
[02B1] (FA)
VerbOps(Local[4],[SetXY(Local[1],Local[2]),Image(Local[5]),On()])
[02BE] (9A) Var[134 + Local[0]] = Local[4];

CD Loom:

[0337] (9A) Local[5] = Var[202 + Local[4]];
[033E] (9A) Local[6] = Var[192 + Local[4]];
[0345] (44) if (Local[4] > 0) {
[034C] (AC) Exprmode Local[10] = (Local[4] - 1);
[0357] (9A) Local[10] = Var[202 + Local[10]];
[035E] (FA) VerbOps(Local[10],[Off()])
[0363] (**) }
[0363] (FA)
VerbOps(Local[5],[SetXY(Local[2],Local[3]),Image(Local[6]),On()])
[0370] (9A) Var[184 + Local[0]] = Local[5];

Both scripts traverse a list of verbs, each representing an
animation frame for the distaff. However, CD Loom explicitly
turns off the previous verb while EGA Loom leaves it on. My
guess is that the save/restore dialog in EGA Loom only
redraws the "standard" parts of the distaff, rather than
every active verb. But I don't know for sure.

comment:10 by Kirben, 16 years ago

Owner: set to Kirben
Resolution: duplicatefixed
Status: newclosed
Note: See TracTickets for help on using tickets.