Opened 2 years ago

Closed 2 years ago

#13815 closed feature request (fixed)

GROOVIE video fast playback stop capability & solution

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

Description (last modified by lolovo)

Hi,

It will be convenient to make stop video fast playback capability (new feature in 2.6.0, in groovie engine) because sometimes 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 (2)

comment:1 by lolovo, 2 years ago

Component: --Unset--Engine: Groovie
Description: modified (diff)

comment:2 by Die4Ever, 2 years ago

Owner: set to Die4Ever
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.