[Scummvm-git-logs] scummvm master -> 6e727d58a1972dd3204ae7af58f63c5acea2230e

djsrv dservilla at gmail.com
Wed Jul 8 19:21:39 UTC 2020


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a56f400e32 DIRECTOR: Add main stage
191ed3bc19 DIRECTOR: LINGO: Implement window list
27c02f3646 DIRECTOR: LINGO: c_open -> b_open
6e727d58a1 DIRECTOR: LINGO: Add missing include


Commit: a56f400e3298343ac347efef6fbaa5dbae71b99d
    https://github.com/scummvm/scummvm/commit/a56f400e3298343ac347efef6fbaa5dbae71b99d
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-08T15:19:04-04:00

Commit Message:
DIRECTOR: Add main stage

Changed paths:
    engines/director/castmember.cpp
    engines/director/director.cpp
    engines/director/director.h
    engines/director/events.cpp
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-funcs.cpp
    engines/director/lingo/lingo-the.cpp
    engines/director/movie.h
    engines/director/score.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index c5e4b6c8f3..54275597c3 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -156,7 +156,7 @@ void BitmapCastMember::createWidget() {
 		return;
 	}
 
-	_widget = new Graphics::MacWidget(g_director->getStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, false);
+	_widget = new Graphics::MacWidget(g_director->getCurrentStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, false);
 	_widget->getSurface()->blitFrom(*_img->getSurface());
 }
 
@@ -470,13 +470,13 @@ void TextCastMember::createWidget() {
 
 	switch (_type) {
 	case kCastText:
-		_widget = new Graphics::MacText(g_director->getStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), getBackColor(), _initialRect.width(), getAlignment(), 0, _borderSize, _gutterSize, _boxShadow, _textShadow);
+		_widget = new Graphics::MacText(g_director->getCurrentStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), getBackColor(), _initialRect.width(), getAlignment(), 0, _borderSize, _gutterSize, _boxShadow, _textShadow);
 
 		((Graphics::MacText *)_widget)->draw();
 		break;
 
 	case kCastButton:
-		_widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), 0xff);
+		_widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getCurrentStage(), 0, 0, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), 0xff);
 		((Graphics::MacButton *)_widget)->draw();
 		_widget->_focusable = true;
 
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 264ed8b2ec..18436b2f20 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -81,6 +81,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 	_soundManager = nullptr;
 	_currentPalette = nullptr;
 	_currentPaletteLength = 0;
+	_mainStage = nullptr;
 	_currentStage = nullptr;
 	_lingo = nullptr;
 
@@ -133,16 +134,18 @@ Common::Error DirectorEngine::run() {
 	_wm = new Graphics::MacWindowManager(wmMode, &_director3QuickDrawPatterns);
 	_wm->setEngine(this);
 
-	_currentStage = new Stage(_wm->getNextId(), false, false, false, _wm, this);
-	*_currentStage->_refCount += 1;
+	
+	_mainStage = new Stage(_wm->getNextId(), false, false, false, _wm, this);
+	*_mainStage->_refCount += 1;
 
 	if (!debugChannelSet(-1, kDebugDesktop))
-		_currentStage->disableBorder();
+		_mainStage->disableBorder();
 
 	_surface = new Graphics::ManagedSurface;
 	_wm->setScreen(_surface);
-	_wm->addWindowInitialized(_currentStage);
-	_wm->setActiveWindow(_currentStage->getId());
+	_wm->addWindowInitialized(_mainStage);
+	_wm->setActiveWindow(_mainStage->getId());
+	_currentStage = _mainStage;
 
 	_lingo = new Lingo(this);
 	_soundManager = new DirectorSound(this);
diff --git a/engines/director/director.h b/engines/director/director.h
index 4cad6fb065..6b50e2e2db 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -142,7 +142,8 @@ public:
 	Graphics::MacWindowManager *getMacWindowManager() const { return _wm; }
 	Archive *getMainArchive() const;
 	Lingo *getLingo() const { return _lingo; }
-	Stage *getStage() const { return _currentStage; }
+	Stage *getMainStage() const { return _mainStage; }
+	Stage *getCurrentStage() const { return _currentStage; }
 	Movie *getCurrentMovie() const;
 	Common::String getCurrentPath() const;
 	void setPalette(int id);
@@ -194,6 +195,7 @@ private:
 	uint16 _currentPaletteLength;
 	Lingo *_lingo;
 
+	Stage *_mainStage;
 	Stage *_currentStage;
 
 	Graphics::MacPatterns _director3Patterns;
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index c46e8b07b2..0444f17a28 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -87,7 +87,7 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
 				if (_draggingSprite) {
 					Sprite *draggedSprite = sc->getSpriteById(_draggingSpriteId);
 					if (draggedSprite->_moveable) {
-						pos = getStage()->getMousePos();
+						pos = getCurrentStage()->getMousePos();
 
 						sc->_channels[_draggingSpriteId]->addDelta(pos - _draggingSpritePos);
 						_draggingSpritePos = pos;
@@ -107,7 +107,7 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
 				m->_currentClickOnSpriteId = spriteId;
 
 				if (spriteId > 0 && sc->_channels[spriteId]->_sprite->shouldHilite())
-					g_director->getStage()->invertChannel(sc->_channels[spriteId]);
+					g_director->getCurrentStage()->invertChannel(sc->_channels[spriteId]);
 
 				m->_lastEventTime = g_director->getMacTicks();
 				m->_lastClickTime = m->_lastEventTime;
@@ -129,7 +129,7 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
 					m->_currentMouseDownSpriteId = 0;
 
 				if (spriteId > 0 && sc->_channels[spriteId]->_sprite->shouldHilite())
-					g_director->getStage()->invertChannel(sc->_channels[spriteId]);
+					g_director->getCurrentStage()->invertChannel(sc->_channels[spriteId]);
 
 				if (!(g_director->_wm->_mode & Graphics::kWMModeButtonDialogStyle))
 					m->_currentMouseDownSpriteId = spriteId;
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index ba81da1e89..f6dbd6e53f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1743,7 +1743,7 @@ void LB::b_puppetTempo(int nargs) {
 
 void LB::b_puppetTransition(int nargs) {
 	// puppetTransition whichTransition [, time] [, chunkSize] [, changeArea]
-	Stage *stage = g_director->getStage();
+	Stage *stage = g_director->getCurrentStage();
 	uint16 duration = 250, area = 1, chunkSize = 1, type = 0;
 	if (nargs == 4) {
 		area = g_lingo->pop().asInt();
@@ -1798,7 +1798,7 @@ void LB::b_rollOver(int nargs) {
 		return;
 	}
 
-	Common::Point pos = g_director->getStage()->getMousePos();
+	Common::Point pos = g_director->getCurrentStage()->getMousePos();
 
 	if (score->checkSpriteIntersection(arg, pos))
 		res.u.i = 1; // TRUE
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index c12e86ea04..6d27020a4a 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -227,7 +227,7 @@ void Lingo::func_goto(Datum &frame, Datum &movie) {
 			return;
 		}
 
-		Stage *stage = _vm->getStage();
+		Stage *stage = _vm->getCurrentStage();
 
 		stage->_nextMovie.movie = cleanedFilename;
 		stage->getCurrentMovie()->getScore()->_stopPlay = true;
@@ -292,7 +292,7 @@ void Lingo::func_gotoprevious() {
 
 void Lingo::func_play(Datum &frame, Datum &movie) {
 	MovieReference ref;
-	Stage *stage = _vm->getStage();
+	Stage *stage = _vm->getCurrentStage();
 
 
 	// play #done
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index e824f7c58e..a9271d86d3 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -470,7 +470,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		break;
 	case kTheMouseCast:
 		{
-			Common::Point pos = g_director->getStage()->getMousePos();
+			Common::Point pos = g_director->getCurrentStage()->getMousePos();
 			Score *sc = _vm->getCurrentMovie()->getScore();
 			uint16 spriteId = sc->getSpriteIDFromPos(pos);
 			d.type = INT;
@@ -492,11 +492,11 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		break;
 	case kTheMouseH:
 		d.type = INT;
-		d.u.i = g_director->getStage()->getMousePos().x;
+		d.u.i = g_director->getCurrentStage()->getMousePos().x;
 		break;
 	case kTheMouseV:
 		d.type = INT;
-		d.u.i = g_director->getStage()->getMousePos().y;
+		d.u.i = g_director->getCurrentStage()->getMousePos().y;
 		break;
 	case kTheMouseUp:
 		d.type = INT;
@@ -548,7 +548,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		d = getTheSprite(id, field);
 		break;
 	case kTheStage:
-		d = _vm->getStage();
+		d = _vm->getMainStage();
 		break;
 	case kTheStageBottom:
 		d.type = INT;
@@ -654,7 +654,7 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 		}
 		break;
 	case kTheStageColor:
-		g_director->getStage()->setStageColor(d.asInt());
+		g_director->getCurrentStage()->setStageColor(d.asInt());
 		break;
 	case kTheSprite:
 		setTheSprite(id, field, d);
@@ -839,7 +839,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheCastNum:
 		if (d.asInt() != sprite->_castId) {
-			g_director->getStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
 			sprite->setCast(d.asInt());
 		}
 		break;
@@ -862,7 +862,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheHeight:
 		if (sprite->_puppet && sprite->_stretch) {
-			g_director->getStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
 			sprite->_height = d.asInt();
 		}
 		break;
@@ -936,7 +936,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheWidth:
 		if (sprite->_puppet && sprite->_stretch) {
-			g_director->getStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
 			sprite->_width = d.asInt();
 		}
 		break;
diff --git a/engines/director/movie.h b/engines/director/movie.h
index f98cf2c15d..d76188e49f 100644
--- a/engines/director/movie.h
+++ b/engines/director/movie.h
@@ -53,7 +53,7 @@ public:
 	void setArchive(Archive *archive);
 	Archive *getArchive() const { return _movieArchive; };
 	Common::String getMacName() const { return _macName; }
-	Stage *getStage() const { return _stage; }
+	Stage *getCurrentStage() const { return _stage; }
 	DirectorEngine *getVM() const { return _vm; }
 	Cast *getCast() const { return _cast; }
 	Cast *getSharedCast() const { return _sharedCast; }
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 37c605c941..1374ed6737 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -49,7 +49,7 @@ namespace Director {
 
 Score::Score(Movie *movie) {
 	_movie = movie;
-	_stage = movie->getStage();
+	_stage = movie->getCurrentStage();
 	_vm = _movie->getVM();
 	_lingo = _vm->getLingo();
 


Commit: 191ed3bc19f91f8ac903e88a19ac6370f3c63caf
    https://github.com/scummvm/scummvm/commit/191ed3bc19f91f8ac903e88a19ac6370f3c63caf
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-08T15:19:04-04:00

Commit Message:
DIRECTOR: LINGO: Implement window list

Changed paths:
    engines/director/director.cpp
    engines/director/director.h
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-the.cpp
    engines/director/lingo/lingo.cpp
    engines/director/lingo/lingo.h


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 18436b2f20..fc5cf43061 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -82,6 +82,9 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 	_currentPalette = nullptr;
 	_currentPaletteLength = 0;
 	_mainStage = nullptr;
+	_windowList = new Datum;
+	_windowList->type = ARRAY;
+	_windowList->u.farr = new DatumArray;
 	_currentStage = nullptr;
 	_lingo = nullptr;
 
diff --git a/engines/director/director.h b/engines/director/director.h
index 6b50e2e2db..1fd8de0aa1 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -196,6 +196,7 @@ private:
 	Lingo *_lingo;
 
 	Stage *_mainStage;
+	Datum *_windowList; // Lingo list
 	Stage *_currentStage;
 
 	Graphics::MacPatterns _director3Patterns;
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f6dbd6e53f..d10a5f4b49 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2175,10 +2175,25 @@ void LB::b_script(int nargs) {
 
 void LB::b_window(int nargs) {
 	Datum d = g_lingo->pop();
+	Common::String windowName = d.asString();
+	DatumArray *windowList = g_lingo->_windowList.u.farr;
 
-	warning("STUB: b_window");
+	for (uint i = 0; i < windowList->size(); i++) {
+		if ((*windowList)[i].type != OBJECT || (*windowList)[i].u.obj->getObjType() != kWindowObj)
+			continue;
+		
+		Stage *window = static_cast<Stage *>((*windowList)[i].u.obj);
+		if (window->getName().equalsIgnoreCase(windowName)) {
+			g_lingo->push(window);
+			return;
+		}
+	}
 
-	g_lingo->push(Datum());
+	Graphics::MacWindowManager *wm = g_director->getMacWindowManager();
+	Stage *window = new Stage(wm->getNextId(), false, false, false, wm, g_director);
+	window->setName(windowName);
+	windowList->push_back(window);
+	g_lingo->push(window);
 }
 
 void LB::b_numberofchars(int nargs) {
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index a9271d86d3..9fb5c9a1b7 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -577,6 +577,9 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		d.type = INT;
 		d.u.i = _vm->getMacTicks() - _vm->getCurrentMovie()->_lastTimerReset;
 		break;
+	case kTheWindowList:
+		d = g_lingo->_windowList;
+		break;
 	case kTheTimeoutScript:
 		d.type = STRING;
 		if (mainArchive->primaryEventHandlers.contains(kEventTimeout))
@@ -662,6 +665,13 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 	case kTheTimeoutScript:
 		setPrimaryEventHandler(kEventTimeout, d.asString());
 		break;
+	case kTheWindowList:
+		if (d.type == ARRAY) {
+			g_lingo->_windowList = d;
+		} else {
+			warning("Lingo::setTheEntity(): kTheWindowList must be a list");
+		}
+		break;
 	default:
 		warning("Lingo::setTheEntity(): Unprocessed setting field \"%s\" of entity %s", field2str(field), entity2str(entity));
 	}
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 262422018f..836336173d 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -175,6 +175,9 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
 	_passEvent = false;
 	_perFrameHook = Datum();
 
+	_windowList.type = ARRAY;
+	_windowList.u.farr = new DatumArray;
+
 	initEventHandlerTypes();
 
 	initBuiltIns();
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 196af0244d..b1f9c171b8 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -464,6 +464,8 @@ public:
 	bool _passEvent;
 	Datum _perFrameHook;
 
+	Datum _windowList;
+
 public:
 	void executeImmediateScripts(Frame *frame);
 	void executePerFrameHook(int frame, int subframe);


Commit: 27c02f364679665a266237adfb03b6b830a8923d
    https://github.com/scummvm/scummvm/commit/27c02f364679665a266237adfb03b6b830a8923d
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-08T15:19:04-04:00

Commit Message:
DIRECTOR: LINGO: c_open -> b_open

open needs to be compiled to c_call for the open window method to work.

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-builtins.h
    engines/director/lingo/lingo-code.cpp
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index d10a5f4b49..03f7878345 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -133,7 +133,7 @@ static struct BuiltinProto {
 	{ "closeResFile",	LB::b_closeResFile,	0, 1, false, 2, BLTIN },	// D2 c
 	{ "closeXlib",		LB::b_closeXlib,	0, 1, false, 2, BLTIN },	// D2 c
 	{ "getNthFileNameInFolder",LB::b_getNthFileNameInFolder,2,2,true,4,FBLTIN },//	D4 f
-		// open															// D2 c
+	{ "open",			LB::b_open,			1, 2, false, 2, BLTIN },	// D2 c
 	{ "openDA",	 		LB::b_openDA, 		1, 1, false, 2, BLTIN },	// D2 c
 	{ "openResFile",	LB::b_openResFile,	1, 1, false, 2, BLTIN },	// D2 c
 	{ "openXlib",		LB::b_openXlib,		1, 1, false, 2, BLTIN },	// D2 c
@@ -1039,6 +1039,12 @@ void LB::b_getNthFileNameInFolder(int nargs) {
 	g_lingo->push(Datum(0));
 }
 
+void LB::b_open(int nargs) {
+	g_lingo->printSTUBWithArglist("b_open", nargs);
+
+	g_lingo->dropStack(nargs);
+}
+
 void LB::b_openDA(int nargs) {
 	Datum d = g_lingo->pop();
 
diff --git a/engines/director/lingo/lingo-builtins.h b/engines/director/lingo/lingo-builtins.h
index e63f632432..a8abf9bb61 100644
--- a/engines/director/lingo/lingo-builtins.h
+++ b/engines/director/lingo/lingo-builtins.h
@@ -149,6 +149,7 @@ namespace LB {
 	void b_closeResFile(int nargs);
 	void b_closeXlib(int nargs);
 	void b_getNthFileNameInFolder(int nargs);
+	void b_open(int nargs);
 	void b_openDA(int nargs);
 	void b_openResFile(int nargs);
 	void b_openXlib(int nargs);
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 57a9986ec8..7eefcf88a2 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -107,7 +107,6 @@ static struct FuncDescr {
 	{ LC::c_objectpropassign,"c_objectpropassign","ss" }, // object, prop
 	{ LC::c_objectproppush,	"c_objectproppush","ss" }, // object, prop
 	{ LC::c_of,				"c_of",				"" },
-	{ LC::c_open,			"c_open",			"" },
 	{ LC::c_or,				"c_or",				"" },
 	{ LC::c_play,			"c_play",			"" },
 	{ LC::c_printtop,		"c_printtop",		""  },
@@ -1525,13 +1524,6 @@ void LC::c_procret() {
 	}
 }
 
-void LC::c_open() {
-	Datum d2 = g_lingo->pop();
-	Datum d1 = g_lingo->pop();
-
-	warning("STUB: c_open(%s, %s)", d1.asString().c_str(), d2.asString().c_str());
-}
-
 void LC::c_hilite() {
 	Datum first_char = g_lingo->pop();
 	Datum last_char = g_lingo->pop();
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 78c0eed3b4..b897f33f21 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -891,13 +891,13 @@ static const yytype_int16 yyrline[] =
      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
      633,   634,   635,   636,   638,   639,   640,   641,   642,   643,
      644,   645,   647,   650,   652,   653,   654,   655,   663,   664,
-     664,   665,   665,   666,   666,   667,   670,   673,   674,   676,
-     679,   683,   686,   690,   693,   704,   705,   706,   707,   711,
-     715,   720,   721,   723,   727,   731,   735,   735,   765,   765,
-     771,   772,   772,   778,   786,   792,   792,   794,   795,   796,
-     798,   799,   800,   802,   804,   812,   813,   814,   816,   817,
-     819,   821,   822,   823,   824,   826,   827,   829,   830,   832,
-     836,   840
+     664,   665,   665,   666,   666,   667,   670,   673,   676,   680,
+     683,   687,   690,   694,   697,   708,   709,   710,   711,   715,
+     719,   724,   725,   727,   731,   735,   739,   739,   769,   769,
+     775,   776,   776,   782,   790,   796,   796,   798,   799,   800,
+     802,   803,   804,   806,   808,   816,   817,   818,   820,   821,
+     823,   825,   826,   827,   828,   830,   831,   833,   834,   836,
+     840,   844
 };
 #endif
 
@@ -3241,191 +3241,195 @@ yyreduce:
 
   case 127:
 #line 673 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_open); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+                                        {
+		Common::String open("open");
+		g_lingo->codeFunc(&open, 2); }
+#line 3248 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 128:
-#line 674 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code2(LC::c_voidpush, LC::c_open); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 676 "engines/director/lingo/lingo-gr.y"
+                                                {
+		Common::String open("open");
+		g_lingo->codeFunc(&open, 1); }
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 129:
-#line 676 "engines/director/lingo/lingo-gr.y"
+#line 680 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3260 "engines/director/lingo/lingo-gr.cpp"
+#line 3264 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 130:
-#line 679 "engines/director/lingo/lingo-gr.y"
+#line 683 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3268 "engines/director/lingo/lingo-gr.cpp"
+#line 3272 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 131:
-#line 683 "engines/director/lingo/lingo-gr.y"
+#line 687 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3280 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 132:
-#line 686 "engines/director/lingo/lingo-gr.y"
+#line 690 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3284 "engines/director/lingo/lingo-gr.cpp"
+#line 3288 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 133:
-#line 690 "engines/director/lingo/lingo-gr.y"
+#line 694 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3292 "engines/director/lingo/lingo-gr.cpp"
+#line 3296 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 134:
-#line 693 "engines/director/lingo/lingo-gr.y"
+#line 697 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3300 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 135:
-#line 704 "engines/director/lingo/lingo-gr.y"
+#line 708 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 3306 "engines/director/lingo/lingo-gr.cpp"
+#line 3310 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 136:
-#line 705 "engines/director/lingo/lingo-gr.y"
+#line 709 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 3312 "engines/director/lingo/lingo-gr.cpp"
+#line 3316 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 137:
-#line 706 "engines/director/lingo/lingo-gr.y"
+#line 710 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 138:
-#line 707 "engines/director/lingo/lingo-gr.y"
+#line 711 "engines/director/lingo/lingo-gr.y"
                                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3327 "engines/director/lingo/lingo-gr.cpp"
+#line 3331 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 139:
-#line 711 "engines/director/lingo/lingo-gr.y"
+#line 715 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 140:
-#line 715 "engines/director/lingo/lingo-gr.y"
+#line 719 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3345 "engines/director/lingo/lingo-gr.cpp"
+#line 3349 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 143:
-#line 723 "engines/director/lingo/lingo-gr.y"
+#line 727 "engines/director/lingo/lingo-gr.y"
                                         { // "play #done" is also caught by this
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3354 "engines/director/lingo/lingo-gr.cpp"
+#line 3358 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 144:
-#line 727 "engines/director/lingo/lingo-gr.y"
+#line 731 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3363 "engines/director/lingo/lingo-gr.cpp"
+#line 3367 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 145:
-#line 731 "engines/director/lingo/lingo-gr.y"
+#line 735 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3372 "engines/director/lingo/lingo-gr.cpp"
+#line 3376 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 146:
-#line 735 "engines/director/lingo/lingo-gr.y"
+#line 739 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3378 "engines/director/lingo/lingo-gr.cpp"
+#line 3382 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 147:
-#line 735 "engines/director/lingo/lingo-gr.y"
+#line 739 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3391 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 148:
-#line 765 "engines/director/lingo/lingo-gr.y"
+#line 769 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3393 "engines/director/lingo/lingo-gr.cpp"
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 149:
-#line 766 "engines/director/lingo/lingo-gr.y"
+#line 770 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3407 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 150:
-#line 771 "engines/director/lingo/lingo-gr.y"
+#line 775 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3413 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 151:
-#line 772 "engines/director/lingo/lingo-gr.y"
+#line 776 "engines/director/lingo/lingo-gr.y"
                   { startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3419 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 152:
-#line 773 "engines/director/lingo/lingo-gr.y"
+#line 777 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3425 "engines/director/lingo/lingo-gr.cpp"
+#line 3429 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 153:
-#line 778 "engines/director/lingo/lingo-gr.y"
+#line 782 "engines/director/lingo/lingo-gr.y"
                                                                    {	// D3
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
@@ -3434,69 +3438,69 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3438 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 154:
-#line 786 "engines/director/lingo/lingo-gr.y"
+#line 790 "engines/director/lingo/lingo-gr.y"
                                                {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3448 "engines/director/lingo/lingo-gr.cpp"
+#line 3452 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 155:
-#line 792 "engines/director/lingo/lingo-gr.y"
+#line 796 "engines/director/lingo/lingo-gr.y"
          { startDef(); }
-#line 3454 "engines/director/lingo/lingo-gr.cpp"
+#line 3458 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 156:
-#line 792 "engines/director/lingo/lingo-gr.y"
+#line 796 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = (yyvsp[0].s); }
-#line 3460 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 157:
-#line 794 "engines/director/lingo/lingo-gr.y"
+#line 798 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3466 "engines/director/lingo/lingo-gr.cpp"
+#line 3470 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 158:
-#line 795 "engines/director/lingo/lingo-gr.y"
+#line 799 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3472 "engines/director/lingo/lingo-gr.cpp"
+#line 3476 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 159:
-#line 796 "engines/director/lingo/lingo-gr.y"
+#line 800 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3478 "engines/director/lingo/lingo-gr.cpp"
+#line 3482 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 161:
-#line 799 "engines/director/lingo/lingo-gr.y"
+#line 803 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 3484 "engines/director/lingo/lingo-gr.cpp"
+#line 3488 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 162:
-#line 800 "engines/director/lingo/lingo-gr.y"
+#line 804 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 3490 "engines/director/lingo/lingo-gr.cpp"
+#line 3494 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 163:
-#line 802 "engines/director/lingo/lingo-gr.y"
+#line 806 "engines/director/lingo/lingo-gr.y"
                                         { inDef(); }
-#line 3496 "engines/director/lingo/lingo-gr.cpp"
+#line 3500 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 164:
-#line 804 "engines/director/lingo/lingo-gr.y"
+#line 808 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_call);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
@@ -3504,122 +3508,122 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3508 "engines/director/lingo/lingo-gr.cpp"
+#line 3512 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 165:
-#line 812 "engines/director/lingo/lingo-gr.y"
+#line 816 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3514 "engines/director/lingo/lingo-gr.cpp"
+#line 3518 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 166:
-#line 813 "engines/director/lingo/lingo-gr.y"
+#line 817 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.narg) = 1; }
-#line 3520 "engines/director/lingo/lingo-gr.cpp"
+#line 3524 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 167:
-#line 814 "engines/director/lingo/lingo-gr.y"
+#line 818 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3526 "engines/director/lingo/lingo-gr.cpp"
+#line 3530 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 168:
-#line 816 "engines/director/lingo/lingo-gr.y"
+#line 820 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 3532 "engines/director/lingo/lingo-gr.cpp"
+#line 3536 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 169:
-#line 817 "engines/director/lingo/lingo-gr.y"
+#line 821 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3538 "engines/director/lingo/lingo-gr.cpp"
+#line 3542 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 170:
-#line 819 "engines/director/lingo/lingo-gr.y"
+#line 823 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[-1].code); }
-#line 3544 "engines/director/lingo/lingo-gr.cpp"
+#line 3548 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 171:
-#line 821 "engines/director/lingo/lingo-gr.y"
+#line 825 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3550 "engines/director/lingo/lingo-gr.cpp"
+#line 3554 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 172:
-#line 822 "engines/director/lingo/lingo-gr.y"
+#line 826 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3556 "engines/director/lingo/lingo-gr.cpp"
+#line 3560 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 173:
-#line 823 "engines/director/lingo/lingo-gr.y"
+#line 827 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3562 "engines/director/lingo/lingo-gr.cpp"
+#line 3566 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 174:
-#line 824 "engines/director/lingo/lingo-gr.y"
+#line 828 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3568 "engines/director/lingo/lingo-gr.cpp"
+#line 3572 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 175:
-#line 826 "engines/director/lingo/lingo-gr.y"
+#line 830 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3574 "engines/director/lingo/lingo-gr.cpp"
+#line 3578 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 176:
-#line 827 "engines/director/lingo/lingo-gr.y"
+#line 831 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3580 "engines/director/lingo/lingo-gr.cpp"
+#line 3584 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 177:
-#line 829 "engines/director/lingo/lingo-gr.y"
+#line 833 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3586 "engines/director/lingo/lingo-gr.cpp"
+#line 3590 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 178:
-#line 830 "engines/director/lingo/lingo-gr.y"
+#line 834 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3592 "engines/director/lingo/lingo-gr.cpp"
+#line 3596 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 179:
-#line 832 "engines/director/lingo/lingo-gr.y"
+#line 836 "engines/director/lingo/lingo-gr.y"
                           {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3601 "engines/director/lingo/lingo-gr.cpp"
+#line 3605 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 180:
-#line 836 "engines/director/lingo/lingo-gr.y"
+#line 840 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3610 "engines/director/lingo/lingo-gr.cpp"
+#line 3614 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 181:
-#line 840 "engines/director/lingo/lingo-gr.y"
+#line 844 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3619 "engines/director/lingo/lingo-gr.cpp"
+#line 3623 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3623 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -3818,7 +3822,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 846 "engines/director/lingo/lingo-gr.y"
+#line 850 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 14a5c655e0..7d1f224ddb 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -670,8 +670,12 @@ proc: tPUT expr					{ g_lingo->code1(LC::c_printtop); }
 	| BLTIN arglist				{
 		g_lingo->codeFunc($BLTIN, $arglist);
 		delete $BLTIN; }
-	| tOPEN expr tWITH expr		{ g_lingo->code1(LC::c_open); }
-	| tOPEN expr 				{ g_lingo->code2(LC::c_voidpush, LC::c_open); }
+	| tOPEN expr tWITH expr		{
+		Common::String open("open");
+		g_lingo->codeFunc(&open, 2); }
+	| tOPEN expr 				{
+		Common::String open("open");
+		g_lingo->codeFunc(&open, 1); }
 
 globallist: ID					{
 		mVar($ID, kVarGlobal);


Commit: 6e727d58a1972dd3204ae7af58f63c5acea2230e
    https://github.com/scummvm/scummvm/commit/6e727d58a1972dd3204ae7af58f63c5acea2230e
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-08T15:21:13-04:00

Commit Message:
DIRECTOR: LINGO: Add missing include

Changed paths:
    engines/director/lingo/lingo-the.cpp


diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 9fb5c9a1b7..3f07ca94b6 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -25,6 +25,7 @@
 #include "director/director.h"
 #include "director/cast.h"
 #include "director/castmember.h"
+#include "director/channel.h"
 #include "director/movie.h"
 #include "director/sound.h"
 #include "director/sprite.h"




More information about the Scummvm-git-logs mailing list