This changes the starview manual camera movement using semicolon.
Before it slowed down the ship. To make it more like the original
game it now adds negative velocity so that it slows down then
speeds up in the backward direction.
The functions were renamed accordingly.
The original updated the camera during the general scene drawing,
which was done at a much higher rate than I wanted for the ScummVM
implementation. So I've added this workaround to update the camera
every 10ms when the player is in the star control scene. This gives
it a comparible rate of movement to the original.
The scene has an unused right turn link that wasn't used, and is
covered by the starview. Since movement now uses simulated mouse
clicks, the worst result of clicking right arrow is simply that
a star may be accidentally selected. But for cleanliness, it was
best to fix it. It also allowed the creation of code that other
objects in the view can use to override default movement logic,
just in case it's needed.
New semantics is as follows:
[-p <dir>] --add adds all games in <dir> or
working dir
[-p <dir>] --detect enumerates dectected games in
<dir> with their ids
[-p <dir>] --game <id> --add adds just game <id> if found
in <dir> and not already added
[-p <dir>] --recursive --add adds all games in <dir> and
subdirs if not already added
[-p <dir>] --recursive --game <id> --add
adds just game <id> if found
in <dir> or its subdirs and
not already added
[-p <dir>] --recursive --detect enumerates games in <dir>
and subdirs
[-p <dir>] --auto-detect launches the first game
found in <dir>
[-p <dir>] --recursive --auto-detect
displays error message
The reason for the displaying an error message when attempting to do
autodetection on a whole tree is mainly one of UX, IMO it *might* get
confusing on a sufficiently large/deep tree.
The relevant if() can be removed safely if it's concluded that's not the
case.
This implements the behaviour as discussed in PR926:
https://github.com/scummvm/scummvm/pull/926#discussion_r126132411
Essentially:
[-p <dir>] --add adds all games in <dir> or working dir
[-p <dir>] --detect enumerates dectected games with their
ids
[-p <dir>] --game <id> --add adds just game <id>
Use snprintf() instead of sprintf() to limit how much is written
to the buffer. Note that there are other places where it looks
like it could overflow, but they did not trigger warnings and I'm
guessing that it doesn't overflow in reality.