Opened 16 months ago

Closed 6 months ago

#11484 closed defect (wontfix)

ZVISION: ZGI: Can no longer examine items

Reported by: vocaab Owned by: bluegr
Priority: high Component: Engine: ZVision
Version: Keywords: Zork, Grand Inquisitor, examine, bug
Cc: Game: Zork Grand Inquisitor

Description

Hi, I am playing the gog version of Zork: Grand Inquisitor on version 2.0 and the ability to examine items no longer functions which means the game is unwinnable because you need to examine and combine items. The only way to fix this problem was to reload an earlier save and replay through everything I did to restore functionality to an important mechanic of the game. I can highlight the board and magnifying glass, but the script to pull it up just doesn't work any more. I will upload a save with this issue.

Attachments (1)

zgi-dvd.016 (23.0 KB ) - added by vocaab 16 months ago.

Download all attachments as: .zip

Change History (6)

by vocaab, 16 months ago

Attachment: zgi-dvd.016 added

comment:1 by vocaab, 16 months ago

Component: --Unset--Engine: ZVision

comment:2 by sev-, 9 months ago

Priority: normalhigh
Summary: Zork: Grand Inquisitor Can no longer examine itemsZVISION: ZGI: Can no longer examine items

comment:3 by bluegr, 9 months ago

Owner: set to bluegr
Resolution: pending
Status: newpending

I tried your saved game. The problem is that a timer that is supposed to start when closing the magnify screen (06110) is not properly reset, so the magnify screen refuses to open.

I'm not sure how you managed to achieve this, and I have tried opening and closing the magnify screen very quickly, but couldn't replicate the issue. It looks to be a race condition in the game scripts, but I couldn't replicate it and break the timer like this.

You can fix your saved game by opening the console with Control-Alt-D and typing "statevalue 6110 0"

The relevant script which starts the timer is this part in gjiv.scr:

puzzle:06105 { # gjiv_put_item_away_then_go

criteria {

[00008] = 32 # KeyPress
[04512] ! 0 # gjiv_item_in_magnify_spot

}
criteria {

[06106] = 1 # gjiv_return_arrow
[04512] ! 0 # gjiv_item_in_magnify_spot

}
results {

action:stop(06107) # universe_magic_timer
action:assign(06107, 0) # universe_magic_timer
action:assign(06108, 0) # gjiv_magic_spell_miscast_timer
action:assign(06109, 1) # gjiv_can_put_object_away
action:timer:06110(10) # gjiv_put_item_away_timer

}
flags {

once_per_inst

}

}

If you can remember how you managed to break the saved game, it would help a lot in debugging the issue. Setting the issue as pending, awaiting further feedback. If no feedback is provided by next weekend, the issue shall be closed, as it hasn't been possible to replicate the problem.

As mentioned, the saved game can be easily fixed, but that fixes the symptom, not the possible underlying issue, which seems to be a race condition in the original game scripts.

comment:4 by vocaab, 8 months ago

Hi, thanks for the detailed response on the issue, and a workaround that doesn't require restarting the game. I don't remember any specific steps to reproduce the issue to break the save, however, I remember fondly messing around with the double fps option at times saving a bunch when its on and off. I'm not sure if that can break the save or possibly manipulate any script or internal timers.

comment:5 by bluegr, 6 months ago

Resolution: pendingwontfix
Status: pendingclosed

Thanks for the explanation. I have not encountered this bug during the playthroughs I made during development, so the most likely explanation is an unexpected timing bug from the usage of the double FPS option.

There's not much that can be done here, as this is a rare timing bug with the game scripts themselves, so I'm closing this

Note: See TracTickets for help on using tickets.