Check for the end of the movie resource before buffering more audio chunks.
This avoids reading past the end of the movie resource. Also, clean up some
movie related checks
Before, the main updateInput() might swallow attempts at aborting
movies. Now all events are handled by the movie player's own
handleInput(). As a side effect, it's no longer necessary to check
if a movie is playing before removing subtitles when pressing space.
I don't know how often the original shook the screen (perhaps as
often as it could?), but at least we now have the opportunity to
shake the screen more than once per movie frame.
At least on my computer, the sound would stall frequently after a
while because the delay between frame was calculated from frame to
frame. Now it's calculated from the start of the sound instead.
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'
This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
- Save scene parameters before playing a movie and restore them afterwards (fixes crash)
- Fix text disappearing too fast
- Implement script function sfGetCameraChanged
- Replace nop script functions with stubs which print debug info when called
- Some cleanup, remove obsolete TODOs
This change also unveiled a serious problem: the same include files are used EVERYWHERE (e.g. code manipulating the screen is using sound includes). Added a FIXME concerning this
- Added a warning for the yet unimplemented palette transparency code
- Removed "debug" calls from script, they weren't that useful
- Removed unneccessary delete in the MoviePlayer
- Fixed the renderer (hopefully?)
- Hooked up the movie player; movies can be aborted with Escape (not with mouse clicks at the moment because I was too lazy to implement it; funny, writing this explanation probably took longer :))
- Added movie player (still incomplete, sound is not yet implemented)
Both are not yet hooked to the engine.
- Added code for microtile arrays (from the SEL - Simple DirectMedia Layer Extension Library project), under the LGPL
This will be used as dirty rectangle "manager". This is experimental for now, it may be removed later.