I would guess it's a script bug (unless it's a bug in sky.cpt like the Blount animation in bug #1507756, but I have no idea how to tell the difference). At least for me, the travel agent doesn't react at all when I try to give him the shades. For every other object I try, there is a brief exchange where Robert offers him the object and he - usually - declines.
In either case, it hits the Logic::fnTheyStartSub() function, where cpt->mode is increased by 4 and it sets some "magic" values to the Compact object depending on what the mode is. My guess is that it's supposed to set cpt->actionSub and cpt->actionSub_off to tell it to run some script, and when the script is finished it's supposed to decrease cpt->mode again; see Logic::logicScript().
But for the shades, this never happens so the next time cpt->mode gets increased again. Eventually, it reaches an undefined value.
Unfortunately, since I don't know enough about how the sky engine works all I can do is quote The Nightmare Before Christmas and say, "Interesting reaction... but what does it mean?!"
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Information for replication taken from Debian Bug :
Version: 0.0372-3
Giving the dark glasses to the man in the travel agency 4 times in a row
leads to an invalid mode, turning on the debugger and exiting the
debugger ends the program. Here are steps to reproduce this:
0) Backup your own .scummvm directory and put the saved-state files I am
(SKY-VM.SAV and SKY-VM.013) attaching into .scummvm directory.
1) start game with command `sky`
2) restore following game with F5:
14: restarted, almost with ticket
3) Give dark glasses to the man (travel agent). Nothing will happen.
4) Give glasses to the man 3 more times.
5) Upon the fourth attempt, The debugger starts automatically, saying
...
Debugger started, type 'exit' to return to the game.
...
ERROR: Invalid Mode (16)
...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This bug seems to derive from a corrupt gamestate given by the attached savegame.
In more plain English, it should not be possible IMHO to have the "Dark Glasses" i.e. Shades when you get to the Travel Agent.
You get them from Reich's corpse when leaving the Recycling Centre on the top level, but to get to the Travel Agent which is at the right of the middle level, you need to power the Elevator.
To do this, you need to enable the power, which requires the Plastic Explosive from the Factory Storeroom.
However, upon leaving the Factory Storeroom, Potts will search you and take a liking to the Dark Glasses which you
gladly give him.
This is based on Original Interpreter 0.0372CD.
Will check in latest ScummVM HEAD.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ah, I am incorrect. It is possible, though not the most direct game path.
You need to not search Reich's Corpse in the Furnace Room until after you have got the Plastic Explosive and thus been searched by Potts. This allows you to retain the Dark Glasses.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Replicated in Original Interpreter 0.0372 under DOSBox.
Though this takes about 10-12 offers of the Dark Glasses to the Travel Agent to crash the interpreter with :
Fatal System Error
cs:eip = 2b:be010e
Sorry!
Am attaching Original Interpreter savegame for replication. Will look at implementing a workaround...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I would guess it's a script bug (unless it's a bug in sky.cpt like the Blount animation in bug #1507756, but I have no idea how to tell the difference). At least for me, the travel agent doesn't react at all when I try to give him the shades. For every other object I try, there is a brief exchange where Robert offers him the object and he - usually - declines.
In either case, it hits the Logic::fnTheyStartSub() function, where cpt->mode is increased by 4 and it sets some "magic" values to the Compact object depending on what the mode is. My guess is that it's supposed to set cpt->actionSub and cpt->actionSub_off to tell it to run some script, and when the script is finished it's supposed to decrease cpt->mode again; see Logic::logicScript().
But for the shades, this never happens so the next time cpt->mode gets increased again. Eventually, it reaches an undefined value.
Unfortunately, since I don't know enough about how the sky engine works all I can do is quote The Nightmare Before Christmas and say, "Interesting reaction... but what does it mean?!"
Savegame for Replication taken from Debian Bug
Information for replication taken from Debian Bug :
Version: 0.0372-3
Giving the dark glasses to the man in the travel agency 4 times in a row
leads to an invalid mode, turning on the debugger and exiting the
debugger ends the program. Here are steps to reproduce this:
0) Backup your own .scummvm directory and put the saved-state files I am
(SKY-VM.SAV and SKY-VM.013) attaching into .scummvm directory.
1) start game with command `sky`
2) restore following game with F5:
14: restarted, almost with ticket
3) Give dark glasses to the man (travel agent). Nothing will happen.
4) Give glasses to the man 3 more times.
5) Upon the fourth attempt, The debugger starts automatically, saying
...
Debugger started, type 'exit' to return to the game.
...
ERROR: Invalid Mode (16)
...
This bug seems to derive from a corrupt gamestate given by the attached savegame.
In more plain English, it should not be possible IMHO to have the "Dark Glasses" i.e. Shades when you get to the Travel Agent.
You get them from Reich's corpse when leaving the Recycling Centre on the top level, but to get to the Travel Agent which is at the right of the middle level, you need to power the Elevator.
To do this, you need to enable the power, which requires the Plastic Explosive from the Factory Storeroom.
However, upon leaving the Factory Storeroom, Potts will search you and take a liking to the Dark Glasses which you
gladly give him.
This is based on Original Interpreter 0.0372CD.
Will check in latest ScummVM HEAD.
Ah, I am incorrect. It is possible, though not the most direct game path.
You need to not search Reich's Corpse in the Furnace Room until after you have got the Plastic Explosive and thus been searched by Potts. This allows you to retain the Dark Glasses.
Replicated in Original Interpreter 0.0372 under DOSBox.
Though this takes about 10-12 offers of the Dark Glasses to the Travel Agent to crash the interpreter with :
Fatal System Error
cs:eip = 2b:be010e
Sorry!
Am attaching Original Interpreter savegame for replication. Will look at implementing a workaround...
Original Interpreter Savegame for Replication
Original Interpreter Save Index for Replication
This bug is nice to get fixed before the release. Raising priority for keeping the track.
Should be fixed in 2eb624b