Opened 21 years ago

Closed 21 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
Version: 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 21 years ago.
A saved game selected at random
loomstaff.png (33.9 KB ) - added by SF/dfabulich 21 years ago.
Screen shot of the problem

Download all attachments as: .zip

Change History (12)

by SF/dfabulich, 21 years ago

Attachment: loom.s01 added

A saved game selected at random

by SF/dfabulich, 21 years ago

Attachment: loomstaff.png added

Screen shot of the problem

comment:1 by Kirben, 21 years ago

Owner: set to Kirben
Resolution: duplicate
Status: newclosed

comment:2 by Kirben, 21 years ago

Closed as duplicate of #609723

comment:3 by SF/dfabulich, 21 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, 21 years ago

Owner: Kirben removed
Status: closednew

comment:5 by Kirben, 21 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, 21 years ago

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

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

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

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

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