From aac6c9695a5007b5027df8686b257d9a923a2099 Mon Sep 17 00:00:00 2001 From: Dmitry Iskrich Date: Tue, 28 Jun 2016 17:09:46 +0300 Subject: DIRECTOR: Execute goto scripts --- engines/director/lingo/lingo-code.cpp | 6 +++--- engines/director/lingo/lingo-funcs.cpp | 12 ++++++++++++ engines/director/lingo/lingo.h | 3 +++ 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'engines/director') diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index 4407bb8829..7555af839f 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -371,15 +371,15 @@ void Lingo::c_goto() { } void Lingo::c_gotoloop() { - warning("STUB: c_gotoloop()"); + g_lingo->func_gotoLoop(); } void Lingo::c_gotonext() { - warning("STUB: c_gotonext()"); + g_lingo->func_gotoNext(); } void Lingo::c_gotoprevious() { - warning("STUB: c_gotoprevious()"); + g_lingo->func_gotoPrev(); } void Lingo::c_call() { diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp index eca6641a31..eae253db89 100644 --- a/engines/director/lingo/lingo-funcs.cpp +++ b/engines/director/lingo/lingo-funcs.cpp @@ -208,4 +208,16 @@ void Lingo::func_goto(Common::String &frame, Common::String &movie) { _vm->_currentScore->setCurrentFrame(strtol(frame.c_str(), 0, 10)); } +void Lingo::func_gotoLoop() { + _vm->_currentScore->goToLoop(); +} + +void Lingo::func_gotoNext() { + _vm->_currentScore->goToNext(); +} + +void Lingo::func_gotoPrev() { + _vm->_currentScore->goToPrevious(); +} + } diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index cfa25d71f1..bb613ab72a 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -175,6 +175,9 @@ public: void func_mci(Common::String &s); void func_mciwait(Common::String &s); void func_goto(Common::String &frame, Common::String &movie); + void func_gotoLoop(); + void func_gotoNext(); + void func_gotoPrev(); public: ScriptData *_currentScript; -- cgit v1.2.3