aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-code.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo-code.cpp')
-rw-r--r--engines/director/lingo/lingo-code.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 82640f85db..21cfef735d 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -674,13 +674,21 @@ void Lingo::c_mciwait() {
}
void Lingo::c_goto() {
- Common::String frame((char *)&(*g_lingo->_currentScript)[g_lingo->_pc]);
- g_lingo->_pc += g_lingo->calcStringAlignment(frame.c_str());
+ Datum mode = g_lingo->pop();
+ Datum frame, movie;
- Common::String movie((char *)&(*g_lingo->_currentScript)[g_lingo->_pc]);
- g_lingo->_pc += g_lingo->calcStringAlignment(movie.c_str());
+ if (mode.u.i == 1 || mode.u.i == 3)
+ frame = g_lingo->pop();
+
+ if (mode.u.i == 2 || mode.u.i == 3)
+ movie = g_lingo->pop();
+
+ frame.toString();
+ movie.toString();
+
+ warning("c_goto(%s, %s)", frame.u.s->c_str(), movie.u.s->c_str());
- g_lingo->func_goto(frame, movie);
+ //g_lingo->func_goto(frame, movie);
}
void Lingo::c_gotoloop() {