Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#5080 closed defect (fixed)

PQ2 : Restoring in Scuba Van causes Parser Issues

Reported by: digitall Owned by: bluegr
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: Police Quest 2

Description

Restoring a game in Scuba Van at Cotton Cove (Room 66), after taking a tank:
Enter "Examine Tank" or "Drop Tank" i.e. the currently held Tank 1 results in a "Command Not Recognised" type of response, instead of the expected
display of tank level or return of tank to rack. "Drop Tank 1" does still work however.

Have compared this with the original and this does not happen there.

ScummVM 1.2.0svn51543 (Jul 31 2010 17:38:42)
Features compiled in: Vorbis FLAC MP3 ALSA SEQ RGB zLib FluidSynth
on Linux 2.4.34 x86_32

Ticket imported from: #3037618. Ticket imported from: bugs/5080.

Attachments (3)

pq2.014 (36.0 KB ) - added by digitall 9 years ago.
ScummVM Savegame for Replication
PQSG.008 (40.4 KB ) - added by digitall 9 years ago.
Original Interpreter Savegame for Comparison
pq2.006 (27.7 KB ) - added by digitall 9 years ago.
ScummVM Savegame from 1.3.0svn54143 prior to entering van at Cotton Cove

Download all attachments as: .zip

Change History (10)

by digitall, 9 years ago

Attachment: pq2.014 added

ScummVM Savegame for Replication

by digitall, 9 years ago

Attachment: PQSG.008 added

Original Interpreter Savegame for Comparison

comment:1 by wjp, 9 years ago

Forgot to comment on this: this is caused by the synonyms not working at that time. Haven't looked into why that is yet.

comment:2 by bluegr, 9 years ago

Do you have a saved game before entering this room?

by digitall, 9 years ago

Attachment: pq2.006 added

ScummVM Savegame from 1.3.0svn54143 prior to entering van at Cotton Cove

comment:3 by digitall, 9 years ago

Savegame attached...

comment:4 by bluegr, 9 years ago

The problem lies in kSetSynonyms. It's called with a list outside the van, and a different list inside the van. When loading inside the van, kSetSynonyms is called with the list outside the van...

I don't know why this happens, as we save the local variables for each script. Seems like something is not preserved in the save/load code

comment:5 by bluegr, 9 years ago

Update: kSetSynonyms is called from Game::newRoom (script 994)

This doesn't get called when the saved game is restored (i.e. there is no kSetSynonyms() call in Game::replay()), thus the synonym list from the previous room where the game was loaded from is used instead.

This is a more generic problem, especially for PQ2. Perhaps we can just store the list of synonyms in the saved game, and call kSetSynonyms explicitly. Or, we can call Game::newRoom which could however reset the state of the current room, depending on the game

comment:6 by bluegr, 9 years ago

Fixed in rev #55017

comment:7 by bluegr, 9 years ago

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