[Scummvm-tracker] [ScummVM] #10750: QFG4: Wrong voice from Franz at the inn, introducing himself
Vhati
trac at scummvm.org
Tue Nov 20 22:58:19 CET 2018
#10750: QFG4: Wrong voice from Franz at the inn, introducing himself
--------------------------------+----------------------------
Reporter: Vhati | Owner: (none)
Type: defect | Status: new
Priority: low | Component: Engine: SCI
Resolution: | Keywords: SCI32 original
Game: Quest for Glory 4 |
--------------------------------+----------------------------
Comment (by Vhati):
@m-kiewitz:
> somehow warp to this location and try to get the dialog
The room inits itself differently with each arrival as the story
progresses. Unless there's a way to directly call script procedures from
the debugger, setting specific plot flags to time travel would be really
cumbersome.
They're stored across a range of globals, referenced together as an array.
Each global integer is a bitmask representing several flags mashed
together.
* "proc0_2(n)", "proc0_3(n)"
* Not clear on what they each do, but definitely setters.
* "proc0_4(n)"
* Tests the given flag.
\\
\\
script 0
{{{
(procedure (proc0_2 param1)
(= [global500 (/ param1 16)]
(|
[global500 (/ param1 16)]
(>> $8000 (mod param1 16))
)
)
)
(procedure (proc0_3 param1)
(= [global500 (/ param1 16)]
(&
[global500 (/ param1 16)]
(~ (>> $8000 (mod param1 16)))
)
)
)
(procedure (proc0_4 param1)
(return
(&
[global500 (/ param1 16)]
(>> $8000 (mod param1 16))
)
)
)
}}}
The debugger CAN set a global. What's complicated is choosing the value to
set the desired bits. I'll see if I can determine the magic numbers
driving their dialogue.
Of course, if digitall can open my savegame, well, they'd be there
already. :)
--
Ticket URL: <https://bugs.scummvm.org/ticket/10750#comment:14>
ScummVM <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list