[Scummvm-git-logs] scummvm master -> 0193472e96db166c9f399da07cb18053261a7a62
sev-
sev at scummvm.org
Wed Jul 1 16:17:01 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
888e80c9b0 DIRECTOR: LINGO: Reduce header dependency
0193472e96 DIRECTOR: LINGO: Reduce remaining include dependencies
Commit: 888e80c9b0875cb776a657537c392e8affed6a30
https://github.com/scummvm/scummvm/commit/888e80c9b0875cb776a657537c392e8affed6a30
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-01T18:05:05+02:00
Commit Message:
DIRECTOR: LINGO: Reduce header dependency
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-funcs.cpp
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
engines/director/lingo/xlibs/fileio.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 703a2afb45..dfedb52411 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -22,12 +22,12 @@
#include "common/system.h"
+#include "graphics/macgui/macwindowmanager.h"
+#include "graphics/macgui/macmenu.h"
+
#include "director/director.h"
#include "director/cast.h"
#include "director/castmember.h"
-#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-builtins.h"
-#include "director/lingo/lingo-code.h"
#include "director/frame.h"
#include "director/movie.h"
#include "director/score.h"
@@ -36,9 +36,10 @@
#include "director/stage.h"
#include "director/stxt.h"
#include "director/util.h"
-
-#include "graphics/macgui/macwindowmanager.h"
-#include "graphics/macgui/macmenu.h"
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-builtins.h"
+#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 8b1fa42985..04448c8f4f 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -34,6 +34,7 @@
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-bytecode.h"
#include "director/lingo/lingo-the.h"
+#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 7a80ba82ec..e4646dd935 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -53,6 +53,7 @@
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-the.h"
+#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 26fe0d4723..61e3d6c642 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -43,15 +43,17 @@
// ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
// THIS SOFTWARE.
+#include "common/endian.h"
+
#include "director/director.h"
#include "director/castmember.h"
#include "director/score.h"
+#include "director/types.h"
+#include "director/util.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
-#include "director/types.h"
-
-#include "director/util.h"
+#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index d54819b881..0318b3eb76 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -20,6 +20,7 @@
*
*/
+#include "audio/audiostream.h"
#include "audio/decoders/wave.h"
#include "common/file.h"
#include "common/macresman.h"
@@ -28,13 +29,16 @@
#include "graphics/macgui/macwindowmanager.h"
#include "director/director.h"
-#include "director/lingo/lingo.h"
#include "director/castmember.h"
#include "director/movie.h"
#include "director/score.h"
#include "director/sound.h"
#include "director/util.h"
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-gr.h"
+
+
namespace Director {
enum MCITokenType {
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 1806695834..046f406f77 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -20,10 +20,13 @@
*
*/
+#include "common/endian.h"
+
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-gr.h"
#include "director/lingo/xlibs/fileio.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 75c0bb5200..13b5a85f11 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -38,7 +38,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-the.h"
-
+#include "director/lingo/lingo-gr.h"
namespace Director {
class Sprite;
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 8f420d9a20..3242b04403 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -25,9 +25,9 @@
#include "common/str.h"
#include "common/str-array.h"
+#include "graphics/macgui/macwindowmanager.h"
+
#include "director/director.h"
-#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-code.h"
#include "director/cast.h"
#include "director/castmember.h"
#include "director/frame.h"
@@ -36,7 +36,9 @@
#include "director/sprite.h"
#include "director/util.h"
-#include "graphics/macgui/macwindowmanager.h"
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-gr.h"
namespace Director {
@@ -288,7 +290,7 @@ void Lingo::addCode(const char *code, int archiveIndex, ScriptType type, uint16
contextName = Common::String(scriptName);
else
contextName = Common::String::format("%d", id);
-
+
ScriptContext *sc = compileLingo(code, archiveIndex, type, id, contextName);
_archives[_assemblyArchive].scriptContexts[type][id] = sc;
}
@@ -296,7 +298,7 @@ void Lingo::addCode(const char *code, int archiveIndex, ScriptType type, uint16
ScriptContext *Lingo::compileAnonymous(const char *code) {
debugC(1, kDebugCompile, "Compiling anonymous lingo\n"
"***********\n%s\n\n***********", code);
-
+
return compileLingo(code, kArchNone, kNoneScript, 0, "[anonymous]");
}
@@ -693,6 +695,65 @@ int Lingo::getAlignedType(Datum &d1, Datum &d2) {
return opType;
}
+Datum::Datum() {
+ u.s = nullptr;
+ type = VOID;
+ lazy = false;
+ refCount = new int;
+ *refCount = 1;
+}
+
+Datum::Datum(const Datum &d) {
+ type = d.type;
+ lazy = d.lazy;
+ u = d.u;
+ refCount = d.refCount;
+ *refCount += 1;
+}
+
+Datum& Datum::operator=(const Datum &d) {
+ if (this != &d) {
+ reset();
+ type = d.type;
+ u = d.u;
+ refCount = d.refCount;
+ *refCount += 1;
+ }
+ return *this;
+}
+
+Datum::Datum(int val) {
+ u.i = val;
+ type = INT;
+ lazy = false;
+ refCount = new int;
+ *refCount = 1;
+}
+
+Datum::Datum(double val) {
+ u.f = val;
+ type = FLOAT;
+ lazy = false;
+ refCount = new int;
+ *refCount = 1;
+}
+
+Datum::Datum(const Common::String &val) {
+ u.s = new Common::String(val);
+ type = STRING;
+ lazy = false;
+ refCount = new int;
+ *refCount = 1;
+}
+
+Datum::Datum(Object *val) {
+ u.obj = val;
+ type = OBJECT;
+ lazy = false;
+ refCount = new int;
+ *refCount = 1;
+}
+
void Datum::reset() {
if (!refCount)
return;
@@ -1120,6 +1181,10 @@ void Lingo::printAllVars() {
debugN("\n");
}
+int Lingo::getInt(uint pc) {
+ return (int)READ_UINT32(&((*_currentScript)[pc]));
+}
+
int Lingo::castIdFetch(Datum &var) {
Movie *movie = _vm->getCurrentMovie();
if (!movie) {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 7a98e97270..321d74619c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -23,17 +23,14 @@
#ifndef DIRECTOR_LINGO_LINGO_H
#define DIRECTOR_LINGO_LINGO_H
-#include "audio/audiostream.h"
#include "common/hash-ptr.h"
#include "common/hash-str.h"
-#include "common/endian.h"
-#include "common/str-array.h"
-
-#include "director/types.h"
-#include "director/lingo/lingo-gr.h"
+namespace Audio {
+class AudioStream;
+}
namespace Common {
- class SeekableSubReadStreamEndian;
+class SeekableSubReadStreamEndian;
}
namespace Director {
@@ -120,59 +117,13 @@ struct Datum { /* interpreter stack type */
int *refCount;
- Datum() {
- u.s = nullptr;
- type = VOID;
- lazy = false;
- refCount = new int;
- *refCount = 1;
- }
- Datum(const Datum &d) {
- type = d.type;
- lazy = d.lazy;
- u = d.u;
- refCount = d.refCount;
- *refCount += 1;
- }
- Datum& operator=(const Datum &d) {
- if (this != &d) {
- reset();
- type = d.type;
- u = d.u;
- refCount = d.refCount;
- *refCount += 1;
- }
- return *this;
- }
- Datum(int val) {
- u.i = val;
- type = INT;
- lazy = false;
- refCount = new int;
- *refCount = 1;
- }
- Datum(double val) {
- u.f = val;
- type = FLOAT;
- lazy = false;
- refCount = new int;
- *refCount = 1;
- }
- Datum(const Common::String &val) {
- u.s = new Common::String(val);
- type = STRING;
- lazy = false;
- refCount = new int;
- *refCount = 1;
- }
- Datum(Object *val) {
- u.obj = val;
- type = OBJECT;
- lazy = false;
- refCount = new int;
- *refCount = 1;
- }
-
+ Datum();
+ Datum(const Datum &d);
+ Datum& operator=(const Datum &d);
+ Datum(int val);
+ Datum(double val);
+ Datum(const Common::String &val);
+ Datum(Object *val);
void reset();
~Datum() {
@@ -453,7 +404,7 @@ public:
inst readInst() { return getInst(_pc++); }
inst getInst(uint pc) { return (*_currentScript)[pc]; }
int readInt() { return getInt(_pc++); }
- int getInt(uint pc) { return (int)READ_UINT32(&((*_currentScript)[pc])); }
+ int getInt(uint pc);
double readFloat() { double d = getFloat(_pc); _pc += calcCodeAlignment(sizeof(double)); return d; }
double getFloat(uint pc) { return *(double *)(&((*_currentScript)[pc])); }
char *readString() { char *s = getString(_pc); _pc += calcStringAlignment(s); return s; }
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 468e10bd2d..e548168a7d 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -26,9 +26,10 @@
#include "common/savefile.h"
#include "director/director.h"
+#include "director/types.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-gr.h"
#include "director/lingo/xlibs/fileio.h"
-#include "director/types.h"
namespace Director {
Commit: 0193472e96db166c9f399da07cb18053261a7a62
https://github.com/scummvm/scummvm/commit/0193472e96db166c9f399da07cb18053261a7a62
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-01T18:16:21+02:00
Commit Message:
DIRECTOR: LINGO: Reduce remaining include dependencies
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/xlibs/fileio.cpp
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 04448c8f4f..4c8eef38a1 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -27,7 +27,6 @@
#include "director/director.h"
#include "director/cast.h"
#include "director/castmember.h"
-#include "director/score.h"
#include "director/util.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-code.h"
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index e4646dd935..d5be25d086 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -44,13 +44,10 @@
// THIS SOFTWARE.
#include "director/director.h"
-#include "director/castmember.h"
#include "director/movie.h"
#include "director/score.h"
-#include "director/sprite.h"
#include "director/util.h"
#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-the.h"
#include "director/lingo/lingo-gr.h"
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 61e3d6c642..19f10d0924 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -46,12 +46,7 @@
#include "common/endian.h"
#include "director/director.h"
-#include "director/castmember.h"
-#include "director/score.h"
-#include "director/types.h"
-#include "director/util.h"
#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-gr.h"
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 13b5a85f11..e6b5024095 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -20,16 +20,11 @@
*
*/
-#include "common/system.h"
-#include "common/events.h"
-
-#include "graphics/macgui/macwindowmanager.h"
#include "graphics/macgui/macbutton.h"
#include "director/director.h"
#include "director/cast.h"
#include "director/castmember.h"
-#include "director/frame.h"
#include "director/movie.h"
#include "director/sound.h"
#include "director/sprite.h"
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 3242b04403..842e6ff603 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -22,8 +22,6 @@
#include "common/file.h"
#include "common/config-manager.h"
-#include "common/str.h"
-#include "common/str-array.h"
#include "graphics/macgui/macwindowmanager.h"
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index e548168a7d..8adb3a1762 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -26,7 +26,6 @@
#include "common/savefile.h"
#include "director/director.h"
-#include "director/types.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/xlibs/fileio.h"
More information about the Scummvm-git-logs
mailing list