[Scummvm-tracker] [ScummVM] #10604: ZVISION: ZGI: Unresponsive black screen in Jack's shop

Torbjörn Andersson trac at scummvm.org
Sat Jun 30 15:37:06 CEST 2018


#10604: ZVISION: ZGI: Unresponsive black screen in Jack's shop
------------------------------------+-----------------------------
  Reporter:  Kurufinwe21            |      Owner:  (none)
      Type:  defect                 |     Status:  new
  Priority:  normal                 |  Component:  Engine: ZVision
Resolution:                         |   Keywords:
      Game:  Zork Grand Inquisitor  |
------------------------------------+-----------------------------

Comment (by eriktorbjorn):

 I could be wrong, but I ''think'' this is a script bug that happens if you
 are looking at the cigar box when Jack returns to examine the lantern
 closer.

 There are three scenes to consider:

 pp1f - The table with the lantern and the cigar box.
 pp1g - The close-up of the cigar box.
 pp1h - A "dummy" room that starts the cutscene where Jack is examining the
 latern.

 The pp1f scene can move you to pp1h like this:

 {{{
 puzzle:10826 {  # pp1f_talk_start
     criteria {
         [10803] = 1     # pp1f_video_flag
     }
     results {
         action:assign(01001, 15)        # universe_sound_controller
         action:assign(10803, 0) # pp1f_video_flag
     }
 }

 puzzle:10827 {  # pp1f_unleash_the_dm
     criteria {
         [10826] = 1     # pp1f_talk_start
         [01001] = 0     # universe_sound_controller
     }
     results {
         action:assign(10803, 0) # pp1f_video_flag
         action:dissolve()
         action:change_location(p, p, 1h, 0)
     }
 }
 }}}

 And pp1g can move you to pp1h like this:

 {{{
 puzzle:10836 {  # pp1g_times_up
     criteria {
         [10803] = 1     # pp1f_video_flag
         [00009] ! 5     # Inventory
     }
     results {
         action:dissolve()
         action:change_location(p, p, 1h, 0)
     }
     flags {
         once_per_inst
     }
 }
 }}}

 And the cutscene plays like this i pp1h:

 {{{
 puzzle:19870 {  # pp1h_play_the_movie
     criteria {
     }
     results {
         action:crossfade(10262 01012 -1 0 55 0 1000)    # NULL
         action:stop(10262)      # p_radio_playing
         action:streamvideo(pp1em022.avi 0 0 639 343 0 0)
         action:assign(10250, 0) # p_listen_to_the_music
         action:dissolve()
         action:change_location(p, e, 10, 721)
     }
 }
 }}}

 Now, I'm a bit fuzzy on the script syntax, but I ''think'' what happens in
 the "normal" case is:

 1. The player enters scene pp1f. Puzzle 10826 gets triggered. (I assume
 [01001] controls the sound effect that's playing while Jack is rummaging
 around, or something like that.) As a result, [10826] is set to 1, and
 this puzzle is never run again.

 2. Puzzle 10827 is triggered. The player gets moved to pp1h. [10827] is
 set to 1, and never run again.

 3. In pp1h, puzzle 19870 is triggered, which starts the cutscene. [19870]
 gets set to 1, so the puzzle - and thus the cutscene - is never triggered
 again.

 So the next time you enter the shop, you will not be taken to pp1h. You'll
 stay in pp1f, where you can pick up the lantern.

 But if you're looking at the cigar box at the time...

 1. The player enters scene pp1f. Puzzle 10826 gets triggered. (I assume
 [01001] controls the sound effect that's playing while Jack is rummaging
 around, or something like that.) As a result, [10826] is set to 1, and
 this puzzle is never run again.

 2. The player looks at the cigar box, so he enters scene pp1g. Puzle 10836
 triggers instead of 10827 . The player is moved to pp1g, [10836] is set to
 1, and the puzzle is never run again.

 3. In pp1h, puzzle 19870 is triggered, which starts the cutscene. [19870]
 gets set to 1, so the puzzle - and thus the cutscene - is never triggered
 again.

 4. The next time the player enters pp1f, puzzle 10827 gets triggered and
 moves the player to pp1h, but this time the cutscene will not be
 triggered. That's probably where you get a black screen instead.

 It seems to me like puzzle 10836 should also clear [10803]. It won't fix
 old savegames, but it's the fix that seems the most consistent with the
 rest of the scripts. So you can probably fix the invalid state by

 1. Pressing Ctrl+D to open the console
 2. (Optional) Type "statevalue 10803" and press Enter. You'' probably see
 the reply "[10803] = 1".
 3. Type "statevalue 10803 0" and press Enter.
 3. Type "exit" and press Enter.

 before you walk forward in the attached savegame.

--
Ticket URL: <https://bugs.scummvm.org/ticket/10604#comment:1>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list