[Scummvm-git-logs] scummvm master -> 0e95929b0162cb7ffc1e09f1ae3feb640f288013
ysj1173886760
42030331+ysj1173886760 at users.noreply.github.com
Sat Aug 7 11:19:44 UTC 2021
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2e1f5e18a2 DIRECTOR: implement b_do
ea3e911669 DIRECTOR: fix the implementation of b_do
0e95929b01 DIRECTOR: use startUp event to execute initial scripts.
Commit: 2e1f5e18a22d5e1a5256b36db7de11edb63dd04a
https://github.com/scummvm/scummvm/commit/2e1f5e18a22d5e1a5256b36db7de11edb63dd04a
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-08-07T19:11:55+08:00
Commit Message:
DIRECTOR: implement b_do
Changed paths:
engines/director/lingo/lingo-builtins.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index d039a43acc..d6769cf38f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1194,7 +1194,18 @@ void LB::b_delay(int nargs) {
void LB::b_do(int nargs) {
Datum d = g_lingo->pop();
- warning("STUB: b_do(%s)", d.asString().c_str());
+
+ // FIXME: correct way for finding the script id
+ // movie script 65535 is for startup scripts currently
+ // i think we don't find to find the empty slot. Maybe finding a constant slot for "do" command is ok. e.g. 65534.
+ // And we can always overwrite the script we add while executing "do" command
+ LingoArchive *mainArchive = g_director->getCurrentMovie()->getMainLingoArch();
+ int counter = 65535;
+ while (mainArchive->getScriptContext(kMovieScript, counter))
+ counter--;
+
+ mainArchive->addCode(Common::U32String(d.asString(), Common::kMacRoman), kMovieScript, 65535);
+ g_lingo->executeScript(kMovieScript, CastMemberID(counter, 0));
}
void LB::b_go(int nargs) {
Commit: ea3e911669a61d08e60df2f57c0a73d3b0283615
https://github.com/scummvm/scummvm/commit/ea3e911669a61d08e60df2f57c0a73d3b0283615
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-08-07T19:11:55+08:00
Commit Message:
DIRECTOR: fix the implementation of b_do
Changed paths:
engines/director/lingo/lingo-builtins.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index d6769cf38f..974ad60441 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1204,7 +1204,7 @@ void LB::b_do(int nargs) {
while (mainArchive->getScriptContext(kMovieScript, counter))
counter--;
- mainArchive->addCode(Common::U32String(d.asString(), Common::kMacRoman), kMovieScript, 65535);
+ mainArchive->addCode(Common::U32String(d.asString(), Common::kMacRoman), kMovieScript, counter);
g_lingo->executeScript(kMovieScript, CastMemberID(counter, 0));
}
Commit: 0e95929b0162cb7ffc1e09f1ae3feb640f288013
https://github.com/scummvm/scummvm/commit/0e95929b0162cb7ffc1e09f1ae3feb640f288013
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-08-07T19:11:55+08:00
Commit Message:
DIRECTOR: use startUp event to execute initial scripts.
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 7d10575392..4b44d6d0f1 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -87,6 +87,7 @@ Common::Error Window::loadInitialMovie() {
LingoArchive *mainArchive = g_director->getCurrentMovie()->getMainLingoArch();
mainArchive->addCode(Common::U32String(script, Common::kMacRoman), kMovieScript, 65535);
+ _currentMovie->processEvent(kEventStartUp);
free(script);
} else {
More information about the Scummvm-git-logs
mailing list