diff options
| -rw-r--r-- | engines/tsage/core.cpp | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 49abf293e0..aef949283f 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2072,6 +2072,7 @@ void SceneObject::animate(AnimateMode animMode, ...) {  		break;  	case ANIM_MODE_8: +	case ANIM_MODE_9:  		_field68 = va_arg(va, int);  		_endAction = va_arg(va, Action *);  		_frameChange = 1; @@ -2258,7 +2259,23 @@ void SceneObject::dispatch() {  			} else {  				setFrame(changeFrame());  			} +			break; +		case ANIM_MODE_9: +			if (_frame == _endFrame) { +				if (_frameChange != -1) { +					_frameChange = -1; +					_strip = (_strip - 1) ^ 1 + 1; +					_endFrame = 1; +				} else if ((_field68 == 0) || (--_field68 != 0)) { +					_frameChange = 1; +					_endFrame = getFrameCount(); + +					setFrame(changeFrame()); +				} +			} else { +				setFrame(changeFrame()); +			}  			break;  		default: | 
