[Scummvm-tracker] [ScummVM] #9689: SCI: PQ4: Endgame is difficult to navigate due to lack of mouse capture (was: SCI: PQ4: Endgame is difficult to navigate due to loss of mouse capture)

Colin Snover trac at scummvm.org
Thu Jan 12 21:03:30 CET 2017


#9689: SCI: PQ4: Endgame is difficult to navigate due to lack of mouse capture
-----------------------------+-------------------------
  Reporter:  csnover         |      Owner:  (none)
      Type:  defect          |     Status:  new
  Priority:  normal          |  Component:  Engine: SCI
Resolution:                  |   Keywords:  sci32
      Game:  Police Quest 4  |
-----------------------------+-------------------------
Description changed by csnover:

Old description:

> At the end of the game in the dark room (save game attached), a pseudo-VR
> mode is used where moving the mouse to the left or right edge of the game
> screen will cause the view to “rotate” to the left or right, then move
> the mouse to the opposite edge of the screen (having “rotated” one full
> screen).
>
> This works OK in the original interpreter because it was impossible to
> move the mouse away from the game screen, but in ScummVM (especially in
> windowed mode) moving the cursor to the edge of the screen will often
> cause the mouse to move a bit outside of the window.
>
> Once the cursor is outside the window, it will not be moved to the
> opposite edge of the game screen. Returning the mouse to the game screen
> from the edge that it just exited will cause the cursor to jump from the
> (correct) opposite edge of the screen back to the (wrong) edge that it
> just left, causing the game to rotate again. This confusing behaviour
> continues on and on until the user manages to keep the cursor within the
> ScummVM window long enough for the transition to finish and the mouse to
> successfully warp to the opposite side of the screen.
>
> The problem also exists in fullscreen mode if you have more than one
> monitor, since the mouse is still not captured and can move off to
> another screen.
>
> I am not sure what a good solution here is. Modifying the game script to
> set up a cursor restrict rect may or may not work OK, probably depending
> upon how close to the edge the hotspots are and whether there is enough
> room in the game script to add such a thing. Maybe someone else has a
> better idea of what to do?

New description:

 At the end of the game in the dark room (save game attached), a pseudo-VR
 mode is used where moving the mouse to the left or right edge of the game
 screen will cause the view to “rotate” to the left or right, then move the
 mouse to the opposite edge of the screen (having “rotated” one full
 screen).

 This works OK in the original interpreter because it was impossible to
 move the mouse away from the game screen, but in ScummVM (especially in
 windowed mode) moving the cursor to the edge of the screen will often
 cause the mouse to move a bit outside of the window.

 Once the cursor is outside the window, it will not be moved to the
 opposite edge of the game screen. Returning the mouse to the game screen
 from the edge that it just exited will cause the cursor to jump from the
 (correct) opposite edge of the screen back to the (wrong) edge that it
 just left, causing the game to rotate again. This confusing behaviour
 continues on and on until the user manages to keep the cursor within the
 ScummVM window long enough for the transition to finish and the mouse to
 successfully warp to the opposite side of the screen.

 The problem also exists in fullscreen mode if you have more than one
 monitor, since the mouse is still not captured and can move off to another
 screen.

 I am not sure what a good solution here is. Modifying the game script to
 set up a cursor restrict rect may or may not work OK, probably depending
 upon how close to the edge the hotspots are and whether there is enough
 room in the game script to add such a thing. Maybe someone else has a
 better idea of what to do?

 Reproduction:
 1. Load save game
 2. Open inventory
 3. Use hand icon on case (2nd inventory item)
 4. Select flashlight (4th inventory item)
 5. Click OK
 6. Click anywhere to illuminate flashlight
 7. Move mouse cursor off the right edge of the screen

 Expected: Mouse cursor is warped to the left edge of the screen
 Actual: Mouse cursor is off the screen and the game keeps rotating to the
 right

--

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


More information about the Scummvm-tracker mailing list