Opened 20 months ago

Last modified 18 months ago

#13815 closed feature request

GROOVIE video fast playback stop capability & solution — at Initial Version

Reported by: lolovo Owned by:
Priority: normal Component: Engine: Groovie
Version: Keywords: groovie
Cc: Game: 7th Guest

Description

Hi,

It will be convenient to make stop video fast playback capability (new feature in 2.6.0, in groovie engine) because sometime you need to skip only some part, not the whole video playback as well as situation when you skip slow movement during the game process but want to stop on some video scene to watch it (for example, now if you make fast playback by clicking right mouse button during movement to skip slow movement animation you also skip video scenes with ghosts in the house and this is not right).

The solution is the following - when you got second right mouse button click and already did fast playback, then just stop it :

groovie/script.cpp (patch starts from /*patch*/ line):

...
bool Script::playvideofromref(uint32 fileref, bool loopUntilAudioDone) {
...
	// Check if the user wants to skip the video
	if (_eventMouseClicked == 2 || _eventKbdChar == Common::KEYCODE_ESCAPE || _eventKbdChar == Common::KEYCODE_SPACE) {
		// we don't want to clear a left click here, that would eat the input
		if (_eventMouseClicked == 2)
			_eventMouseClicked = 0;
		_eventKbdChar = 0;
		if (_videoSkipAddress != 0) {
			// Jump to the given address
			_currentInstruction = _videoSkipAddress;

			// Reset the skip address
			_videoSkipAddress = 0;

			_bitflags = 0;

			// End the playback
			return true;
		}
		/*patch*/
		if(_fastForwarding == true) 
		{
			resetFastForward();
			_vm->_videoPlayer->setOverrideSpeed(false);
		}else {
			_vm->_videoPlayer->fastForward();
			_fastForwarding = true;
		}
	} else if (_fastForwarding) {
		_vm->_videoPlayer->fastForward();
	}
...
}
...

groovie/video/player.h (setOverrideSpeed should be public not protected in this case):

public:
...
	void setOverrideSpeed(bool isOverride);
protected:
...

With this fix all works fine. You just can click by right mouse when you like to stop fast playback and you start watch video playback with sound from this point (without calling setOverrideSpeed fast playback stops only from next video scene, in this case you skip ghost scenes after movement). Please verify this , it will be very useful and convenient capability.

Change History (0)

Note: See TracTickets for help on using tickets.