Opened 7 months ago

Closed 3 months ago

#13114 closed defect (fixed)

SQ3: v1.018 "COURSE ALREADY ACHIEVED" not displaying

Reported by: Thpwg Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords:
Cc: Game: Space Quest 3

Description

Hi !

During operation of the navigation map. If I click on SET COURSE "even though I am already on site". I do not have the message COURSE ALREADY ACHIEVED. On DOSBox, it flies by too quickly! On ScummVM, it is impossible to see.

To view the message, pause at 00:12 seconds with VCL:
https://e1.pcloud.link/publink/show?code=XZCnlJZKVDeK6MP9ERLPr4F3LrXgbA5ig7k

It's a little problem, but I wanted to point this out.

Best regard,
Thpwg

Attachments (1)

2021-11-29_211215.png (52.9 KB ) - added by Thpwg 7 months ago.

Download all attachments as: .zip

Change History (8)

by Thpwg, 7 months ago

Attachment: 2021-11-29_211215.png added

comment:1 by sluicebox, 7 months ago

Summary: Space Quest III v1.018 Report a BugSQ3: v1.018 "COURSE ALREADY ACHIEVED" not displaying

Hello! This is interesting, thanks for reporting it and including the version number. This is the result of a script change that's in later versions which prevents something confusing but the change is a little hacky.

To restate the problem: In 1.018, on the navigation screen (room 19) when setting a course to the sector you're already in, the original displays the text "COURSE ALREADY ACHIEVED" in the upper right corner *very briefly* as the screen transitions back to the main control panel (room 17). In ScummVM that text never appears.

courseScript:changeState(1) displays the text with kDisplay and then immediately changes rooms, so this all happens on the same game cycle and there's no opportunity for ScummVM to update the screen. The reason it briefly appears in DOS is that kDisplay immediately writes to the screen so you get a glimpse before the room transition blows everything away. This was never the right thing for a script to do, but it might have looked okay at the time on a very slow DOS machine.

The behavior they were fixing from earlier versions was "COURSE ALREADY ACHIEVED" displaying for three seconds during which all the buttons looked enabled but you couldn't do anything. Nothing worked during those three seconds and then things worked again with no visual cues.

It looks to me like there's room to patch this script to introduce a formal delay so that the text appears for a short but reasonable moment before the room transition. I'll give that a shot later. There are a lot of versions of this game and this is a minor thing so if we can do a universal patch then great and if it's more complicated than that, well, at least we'll know what's going on. =)

comment:2 by Thpwg, 7 months ago

I'm glad to help. I am a Sierra fan ;)

There is another small bug in version 1.018 only.
Tape PUMP SHARK and then TP. Enter coordinate 52.
You arrive on Phleebhut in front of a cave with a monster.
If you type (SEE PODS). Line 4 of text.052 does not appear:
"For a brief moment, you could swear they were just a bunch of dancing raisins. But, a closer look indicates otherwise. The leech-like creatures appear to have connected themselves to this overhang with a gelatinous adhesive secretion. YUCK!"

Threepwang

Last edited 7 months ago by Thpwg (previous) (diff)

comment:3 by sluicebox, 7 months ago

WOW... that's no small bug at all, congratulations you just fixed over 100 input commands!
https://github.com/scummvm/scummvm/commit/1de4c13dfb744631f13fc47bd27d6396525a98c9

I'm happy to temporarily hijack this ticket because this is way more interesting than the navigation message =)

That workaround shouldn't interfere with your French translation but let me know if it does and I'll help. (Discord is a good place for that if you're available.) Either way, once you've finished your translation, if you want to add a detection entry so that ScummVM recognizes it as French that will absolutely prevent any conflict since I've limited the workaround to English with vocab "scout" at 1.018's location.

comment:4 by Thpwg, 7 months ago

Hi sluicebox!
You guessed it: I translate SQ3 in French with SCI Companion.
*Once I finished, OK for add detection! Many thanks and they encourage me.

It's a great news, but I don't understand how to apply your fix?
Please, Would you be so kind as to give me the link of your fix?
Because I do not know enough about it.
My best.

Last edited 7 months ago by Thpwg (previous) (diff)

comment:5 by Thpwg, 7 months ago

Hi again sluicebox, I think I get it now. Your fix will be integrated into ScummVM. It is not a file. But, if it's possible, I would like to have your fix? Because, this is for DOSBox players. Sorry, but I don't have access to Discord or others. Just forums and email. (PS: I would have finished my translation before Christmas.) Thank you for being patient.

Last edited 7 months ago by Thpwg (previous) (diff)

comment:6 by Thpwg, 7 months ago

COURSE ALREADY ACHIEVED bug. That is a separate bug from the vocab issues.
We can fix the bug by changing just a few lines of code :

In rm19.sc I modified state 1 in the couseScript changeState method:
...
(if (== temp0 {COURSE ALREADY ACHIEVED})

;(scanBut state: 0)
;(global2 newRoom: 17)
(scanBut state: 0 cel: 2 draw:)
(courseBut state: 0 cel: 1 draw:)
(returnBut state: 0 cel: 1 draw:)
(= state 5)

)
...

Then added a state 6:

(6

(global2 newRoom: 17)

)

https://i.ibb.co/PxJppKg/patch.png

A very special thanks to doomlazer.

Last edited 7 months ago by Thpwg (previous) (diff)

comment:7 by sluicebox, 3 months ago

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