[Scummvm-git-logs] scummvm master -> 9c537a87445c65e7579d251c6aeb175669064b9b

djsrv dservilla at gmail.com
Wed Aug 5 03:54:49 UTC 2020


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

Summary:
9c537a8744 DIRECTOR: Rename Stage to more general Window


Commit: 9c537a87445c65e7579d251c6aeb175669064b9b
    https://github.com/scummvm/scummvm/commit/9c537a87445c65e7579d251c6aeb175669064b9b
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-04T23:54:09-04:00

Commit Message:
DIRECTOR: Rename Stage to more general Window

The stage and windows are the same type of thing, but the stage only
refers to one particular window.

Changed paths:
  A engines/director/window.cpp
  A engines/director/window.h
  R engines/director/stage.cpp
  R engines/director/stage.h
    engines/director/castmember.cpp
    engines/director/director.cpp
    engines/director/director.h
    engines/director/events.cpp
    engines/director/frame.h
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-code.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/module.mk
    engines/director/movie.cpp
    engines/director/movie.h
    engines/director/resource.cpp
    engines/director/score.cpp
    engines/director/score.h
    engines/director/tests.cpp
    engines/director/transitions.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 7c3945f95a..ae331bea05 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -27,7 +27,7 @@
 #include "director/director.h"
 #include "director/castmember.h"
 #include "director/movie.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/stxt.h"
 
 namespace Director {
@@ -169,7 +169,7 @@ Graphics::MacWidget *BitmapCastMember::createWidget(Common::Rect &bbox) {
 		return nullptr;
 	}
 
-	Graphics::MacWidget *widget = new Graphics::MacWidget(g_director->getCurrentStage(), bbox.left, bbox.top, bbox.width(), bbox.height(), g_director->_wm, false);
+	Graphics::MacWidget *widget = new Graphics::MacWidget(g_director->getCurrentWindow(), bbox.left, bbox.top, bbox.width(), bbox.height(), g_director->_wm, false);
 	widget->getSurface()->blitFrom(*_img->getSurface());
 	return widget;
 }
@@ -482,7 +482,7 @@ Graphics::MacWidget *TextCastMember::createWidget(Common::Rect &bbox) {
 
 	switch (_type) {
 	case kCastText:
-		widget = new Graphics::MacText(g_director->getCurrentStage(), bbox.left, bbox.top, bbox.width(), bbox.height(), g_director->_wm, _ftext, macFont, getForeColor(), getBackColor(), bbox.width(), getAlignment(), 0, _borderSize, _gutterSize, _boxShadow, _textShadow);
+		widget = new Graphics::MacText(g_director->getCurrentWindow(), bbox.left, bbox.top, bbox.width(), bbox.height(), g_director->_wm, _ftext, macFont, getForeColor(), getBackColor(), bbox.width(), getAlignment(), 0, _borderSize, _gutterSize, _boxShadow, _textShadow);
 		((Graphics::MacText *)widget)->draw();
 		((Graphics::MacText *)widget)->_focusable = _editable;
 		((Graphics::MacText *)widget)->setEditable(_editable);
@@ -492,7 +492,7 @@ Graphics::MacWidget *TextCastMember::createWidget(Common::Rect &bbox) {
 	case kCastButton:
 		// note that we use _initialRect for the dimensions of the button;
 		// the values provided in the sprite bounding box are ignored
-		widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getCurrentStage(), bbox.left, bbox.top, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), 0xff);
+		widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getCurrentWindow(), bbox.left, bbox.top, _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 2c7f7885dc..fc2a2a1b20 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -33,7 +33,7 @@
 #include "director/movie.h"
 #include "director/score.h"
 #include "director/sound.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/lingo/lingo.h"
 
 namespace Director {
@@ -80,11 +80,11 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 	_soundManager = nullptr;
 	_currentPalette = nullptr;
 	_currentPaletteLength = 0;
-	_mainStage = nullptr;
+	_stage = nullptr;
 	_windowList = new Datum;
 	_windowList->type = ARRAY;
 	_windowList->u.farr = new DatumArray;
-	_currentStage = nullptr;
+	_currentWindow = nullptr;
 	_lingo = nullptr;
 	_version = getDescriptionVersion();
 
@@ -122,14 +122,14 @@ DirectorEngine::~DirectorEngine() {
 	clearPalettes();
 }
 
-Archive *DirectorEngine::getMainArchive() const { return _currentStage->getMainArchive(); }
-Movie *DirectorEngine::getCurrentMovie() const { return _currentStage->getCurrentMovie(); }
-Common::String DirectorEngine::getCurrentPath() const { return _currentStage->getCurrentPath(); }
+Archive *DirectorEngine::getMainArchive() const { return _currentWindow->getMainArchive(); }
+Movie *DirectorEngine::getCurrentMovie() const { return _currentWindow->getCurrentMovie(); }
+Common::String DirectorEngine::getCurrentPath() const { return _currentWindow->getCurrentPath(); }
 
 static void buildbotErrorHandler(const char *msg) { }
 
 void DirectorEngine::setCurrentMovie(Movie *movie) {
-	_currentStage = movie->getStage();
+	_currentWindow = movie->getWindow();
 }
 
 Common::Error DirectorEngine::run() {
@@ -152,30 +152,30 @@ Common::Error DirectorEngine::run() {
 	_wm->setEngine(this);
 
 
-	_mainStage = new Stage(_wm->getNextId(), false, false, false, _wm, this);
-	*_mainStage->_refCount += 1;
+	_stage = new Window(_wm->getNextId(), false, false, false, _wm, this);
+	*_stage->_refCount += 1;
 
 	if (debugChannelSet(-1, kDebugDesktop))
-		_mainStage->setBorderType(3);
+		_stage->setBorderType(3);
 	else
-		_mainStage->disableBorder();
+		_stage->disableBorder();
 
 	_surface = new Graphics::ManagedSurface;
 	_wm->setScreen(_surface);
-	_wm->addWindowInitialized(_mainStage);
-	_wm->setActiveWindow(_mainStage->getId());
+	_wm->addWindowInitialized(_stage);
+	_wm->setActiveWindow(_stage->getId());
 	setPalette(-1);
 
-	_currentStage = _mainStage;
+	_currentWindow = _stage;
 
 	_lingo = new Lingo(this);
 	_soundManager = new DirectorSound(this);
 
 	if (getGameGID() == GID_TEST) {
-		_currentStage->runTests();
+		_currentWindow->runTests();
 		return Common::kNoError;
 	} else if (getGameGID() == GID_TESTALL) {
-		_currentStage->enqueueAllMovies();
+		_currentWindow->enqueueAllMovies();
 	}
 
 	if (getPlatform() == Common::kPlatformWindows)
@@ -195,18 +195,18 @@ Common::Error DirectorEngine::run() {
 		_sharedCastFile = "Shared.dir";
 	}
 
-	Common::Error err = _currentStage->loadInitialMovie();
+	Common::Error err = _currentWindow->loadInitialMovie();
 	if (err.getCode() != Common::kNoError)
 		return err;
 
 	bool loop = true;
 
 	while (loop) {
-		if (_mainStage->getCurrentMovie())
+		if (_stage->getCurrentMovie())
 			processEvents();
 
-		_currentStage = _mainStage;
-		loop = _currentStage->step();
+		_currentWindow = _stage;
+		loop = _currentWindow->step();
 
 		if (loop) {
 			DatumArray *windowList = g_lingo->_windowList.u.farr;
@@ -214,8 +214,8 @@ Common::Error DirectorEngine::run() {
 				if ((*windowList)[i].type != OBJECT || (*windowList)[i].u.obj->getObjType() != kWindowObj)
 					continue;
 
-				_currentStage = static_cast<Stage *>((*windowList)[i].u.obj);
-				_currentStage->step();
+				_currentWindow = static_cast<Window *>((*windowList)[i].u.obj);
+				_currentWindow->step();
 			}
 		}
 
diff --git a/engines/director/director.h b/engines/director/director.h
index c3e41bc17f..78a8467c87 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -63,7 +63,7 @@ struct DirectorGameDescription;
 class DirectorSound;
 class Lingo;
 class Movie;
-class Stage;
+class Window;
 class Score;
 class Channel;
 class CastMember;
@@ -182,9 +182,9 @@ public:
 	Graphics::MacWindowManager *getMacWindowManager() const { return _wm; }
 	Archive *getMainArchive() const;
 	Lingo *getLingo() const { return _lingo; }
-	Stage *getMainStage() const { return _mainStage; }
-	Stage *getCurrentStage() const { return _currentStage; }
-	void setCurrentStage(Stage *stage) { _currentStage = stage; };
+	Window *getStage() const { return _stage; }
+	Window *getCurrentWindow() const { return _currentWindow; }
+	void setCurrentWindow(Window *window) { _currentWindow = window; };
 	Movie *getCurrentMovie() const;
 	void setCurrentMovie(Movie *movie);
 	Common::String getCurrentPath() const;
@@ -245,9 +245,9 @@ private:
 	Lingo *_lingo;
 	uint16 _version;
 
-	Stage *_mainStage;
+	Window *_stage;
 	Datum *_windowList; // Lingo list
-	Stage *_currentStage;
+	Window *_currentWindow;
 
 	Graphics::MacPatterns _director3Patterns;
 	Graphics::MacPatterns _director3QuickDrawPatterns;
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 2723cd070c..c4d71b283a 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -30,7 +30,7 @@
 #include "director/cursor.h"
 #include "director/channel.h"
 #include "director/sprite.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/castmember.h"
 #include "director/lingo/lingo.h"
 
@@ -74,7 +74,7 @@ void DirectorEngine::processEvents() {
 
 			switch (event.type) {
 			case Common::EVENT_QUIT:
-				_mainStage->getCurrentMovie()->getScore()->_playState = kPlayStopped;
+				_stage->getCurrentMovie()->getScore()->_playState = kPlayStopped;
 				break;
 			default:
 				break;
@@ -85,7 +85,7 @@ void DirectorEngine::processEvents() {
 	}
 }
 
-bool Stage::processEvent(Common::Event &event) {
+bool Window::processEvent(Common::Event &event) {
 	if (MacWindow::processEvent(event))
 		return true;
 
@@ -107,7 +107,7 @@ bool Movie::processEvent(Common::Event &event) {
 
 	switch (event.type) {
 	case Common::EVENT_MOUSEMOVE:
-		pos = _stage->getMousePos();
+		pos = _window->getMousePos();
 
 		_lastEventTime = g_director->getMacTicks();
 		_lastRollTime =	 _lastEventTime;
@@ -116,7 +116,7 @@ bool Movie::processEvent(Common::Event &event) {
 
 		if (_currentDraggedChannel) {
 			if (_currentDraggedChannel->_sprite->_moveable) {
-				pos = _stage->getMousePos();
+				pos = _window->getMousePos();
 
 				_currentDraggedChannel->addDelta(pos - _draggingSpritePos);
 				_draggingSpritePos = pos;
@@ -131,7 +131,7 @@ bool Movie::processEvent(Common::Event &event) {
 			sc->_waitForClick = false;
 			_vm->setCursor(kCursorDefault);
 		} else {
-			pos = _stage->getMousePos();
+			pos = _window->getMousePos();
 
 			// D3 doesn't have both mouse up and down.
 			// But we still want to know if the mouse is down for press effects.
@@ -139,7 +139,7 @@ bool Movie::processEvent(Common::Event &event) {
 			_currentClickOnSpriteId = sc->getActiveSpriteIDFromPos(pos);
 
 			if (spriteId > 0 && sc->_channels[spriteId]->_sprite->shouldHilite())
-				g_director->getCurrentStage()->invertChannel(sc->_channels[spriteId]);
+				g_director->getCurrentWindow()->invertChannel(sc->_channels[spriteId]);
 
 			_lastEventTime = g_director->getMacTicks();
 			_lastClickTime = _lastEventTime;
@@ -149,7 +149,7 @@ bool Movie::processEvent(Common::Event &event) {
 			registerEvent(kEventMouseDown, spriteId);
 
 			if (sc->_channels[spriteId]->_sprite->_moveable) {
-				_draggingSpritePos = _stage->getMousePos();
+				_draggingSpritePos = _window->getMousePos();
 				_currentDraggedChannel = sc->_channels[spriteId];
 			}
 		}
@@ -157,13 +157,13 @@ bool Movie::processEvent(Common::Event &event) {
 		return true;
 
 	case Common::EVENT_LBUTTONUP:
-		pos = _stage->getMousePos();
+		pos = _window->getMousePos();
 
 		spriteId = sc->getMouseSpriteIDFromPos(pos);
 		_currentClickOnSpriteId = sc->getActiveSpriteIDFromPos(pos);
 
 		if (spriteId > 0 && sc->_channels[spriteId]->_sprite->shouldHilite())
-			g_director->getCurrentStage()->invertChannel(sc->_channels[spriteId]);
+			g_director->getCurrentWindow()->invertChannel(sc->_channels[spriteId]);
 
 		debugC(3, kDebugEvents, "event: Button Up @(%d, %d), movie '%s', sprite id: %d", pos.x, pos.y, _macName.c_str(), spriteId);
 
diff --git a/engines/director/frame.h b/engines/director/frame.h
index 75d3ba7e38..ddc3e9862f 100644
--- a/engines/director/frame.h
+++ b/engines/director/frame.h
@@ -103,7 +103,7 @@ public:
 	byte _channelData[kChannelDataSize];
 	uint16 _actionId;
 	uint16 _transDuration;
-	uint8 _transArea; // 1 - Whole Stage, 0 - Changing Area
+	uint8 _transArea; // 1 - Whole Window, 0 - Changing Area
 	uint8 _transChunkSize;
 	TransitionType _transType;
 	PaletteInfo _palette;
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f55f89c811..6a2bdaebf0 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -35,7 +35,7 @@
 #include "director/sprite.h"
 #include "director/cursor.h"
 #include "director/channel.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/stxt.h"
 #include "director/util.h"
 #include "director/lingo/lingo.h"
@@ -1053,7 +1053,7 @@ void LB::b_closeDA(int nargs) {
 
 void LB::b_closeResFile(int nargs) {
 	Datum d = g_lingo->pop();
-	Common::String resFileName = g_director->getCurrentStage()->getCurrentPath() + d.asString();
+	Common::String resFileName = g_director->getCurrentWindow()->getCurrentPath() + d.asString();
 
 	g_director->_openResFiles.erase(resFileName);
 }
@@ -1086,7 +1086,7 @@ void LB::b_openDA(int nargs) {
 
 void LB::b_openResFile(int nargs) {
 	Datum d = g_lingo->pop();
-	Common::String resPath = g_director->getCurrentStage()->getCurrentPath() + d.asString();
+	Common::String resPath = g_director->getCurrentWindow()->getCurrentPath() + d.asString();
 
 	if (g_director->getPlatform() == Common::kPlatformWindows) {
 		warning("STUB: BUILDBOT: b_openResFile(%s) on Windows", d.asString().c_str());
@@ -1862,7 +1862,7 @@ void LB::b_puppetTempo(int nargs) {
 
 void LB::b_puppetTransition(int nargs) {
 	// puppetTransition whichTransition [, time] [, chunkSize] [, changeArea]
-	Stage *stage = g_director->getCurrentStage();
+	Window *stage = g_director->getCurrentWindow();
 	uint16 duration = 250, area = 1, chunkSize = 1, type = 0;
 
 	switch (nargs) {
@@ -1918,7 +1918,7 @@ void LB::b_rollOver(int nargs) {
 		return;
 	}
 
-	Common::Point pos = g_director->getCurrentStage()->getMousePos();
+	Common::Point pos = g_director->getCurrentWindow()->getMousePos();
 
 	if (score->checkSpriteIntersection(arg, pos))
 		res.u.i = 1; // TRUE
@@ -1939,7 +1939,7 @@ void LB::b_spriteBox(int nargs) {
 	if (!channel)
 		return;
 
-	g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
+	g_director->getCurrentWindow()->addDirtyRect(channel->getBbox());
 	channel->setBbox(l, t, r, b);
 	channel->_dirty = true;
 }
@@ -2035,7 +2035,7 @@ void LB::b_updateStage(int nargs) {
 	}
 
 	Score *score = movie->getScore();
-	if (movie->getStage()->render())
+	if (movie->getWindow()->render())
 		g_director->draw();
 
 	if (debugChannelSet(-1, kDebugFewFramesOnly)) {
@@ -2335,7 +2335,7 @@ void LB::b_window(int nargs) {
 		if ((*windowList)[i].type != OBJECT || (*windowList)[i].u.obj->getObjType() != kWindowObj)
 			continue;
 
-		Stage *window = static_cast<Stage *>((*windowList)[i].u.obj);
+		Window *window = static_cast<Window *>((*windowList)[i].u.obj);
 		if (window->getName().equalsIgnoreCase(windowName)) {
 			g_lingo->push(window);
 			return;
@@ -2343,7 +2343,7 @@ void LB::b_window(int nargs) {
 	}
 
 	Graphics::MacWindowManager *wm = g_director->getMacWindowManager();
-	Stage *window = new Stage(wm->getNextId(), false, false, false, wm, g_director);
+	Window *window = new Window(wm->getNextId(), false, false, false, wm, g_director);
 	window->setName(windowName);
 	window->setTitle(windowName);
 	window->resize(1, 1, true);
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index e74e3d73ae..98f9d30979 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -47,7 +47,7 @@
 #include "director/movie.h"
 #include "director/score.h"
 #include "director/sprite.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/cursor.h"
 #include "director/channel.h"
 #include "director/util.h"
@@ -1406,18 +1406,18 @@ void LC::c_whencode() {
 }
 
 void LC::c_tell() {
-	// swap out current stage
+	// swap out current window
 	Datum window = g_lingo->pop();
-	g_lingo->push(g_director->getCurrentStage());
+	g_lingo->push(g_director->getCurrentWindow());
 	if (window.type != OBJECT || window.u.obj->getObjType() != kWindowObj) {
 		warning("LC::c_tell(): wrong argument type: %s", window.type2str());
 		return;
 	}
-	if (static_cast<Stage *>(window.u.obj)->getCurrentMovie() == nullptr) {
+	if (static_cast<Window *>(window.u.obj)->getCurrentMovie() == nullptr) {
 		warning("LC::c_tell(): window has no movie");
 		return;
 	}
-	g_director->setCurrentStage(static_cast<Stage *>(window.u.obj));
+	g_director->setCurrentWindow(static_cast<Window *>(window.u.obj));
 
 }
 
@@ -1427,7 +1427,7 @@ void LC::c_telldone() {
 		warning("LC::c_telldone(): wrong return window type: %s", returnWindow.type2str());
 		return;
 	}
-	g_director->setCurrentStage(static_cast<Stage *>(returnWindow.u.obj));
+	g_director->setCurrentWindow(static_cast<Window *>(returnWindow.u.obj));
 }
 
 
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index 427103f18a..df986a7946 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -34,7 +34,7 @@
 #include "director/movie.h"
 #include "director/score.h"
 #include "director/sound.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/util.h"
 
 #include "director/lingo/lingo.h"
@@ -190,7 +190,7 @@ void Lingo::func_goto(Datum &frame, Datum &movie) {
 
 	if (movie.type != VOID) {
 		Common::String movieFilenameRaw = movie.asString();
-		Stage *stage = _vm->getCurrentStage();
+		Window *stage = _vm->getCurrentWindow();
 
 		if (!stage->setNextMovie(movieFilenameRaw))
 			return;
@@ -257,7 +257,7 @@ void Lingo::func_gotoprevious() {
 
 void Lingo::func_play(Datum &frame, Datum &movie) {
 	MovieReference ref;
-	Stage *stage = _vm->getCurrentStage();
+	Window *stage = _vm->getCurrentWindow();
 
 
 	// play #done
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index d3b89ac141..0af98b5212 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -23,7 +23,7 @@
 #include "common/endian.h"
 
 #include "director/director.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/util.h"
 #include "director/lingo/lingo.h"
 #include "director/lingo/lingo-code.h"
@@ -89,7 +89,7 @@ void Lingo::initMethods() {
 		sym.u.bltin = mtd->func;
 		_methods[mtd->name] = sym;
 	}
-	Stage::initMethods(windowMethods);
+	Window::initMethods(windowMethods);
 }
 
 static struct XLibProto {
@@ -331,36 +331,36 @@ void LM::m_respondsTo(int nargs) {
 
 // Window
 
-Common::String Stage::asString() {
+Common::String Window::asString() {
 	return "window \"" + getName() + "\"";
 }
 
-bool Stage::hasProp(const Common::String &propName) {
+bool Window::hasProp(const Common::String &propName) {
 	Common::String fieldName = Common::String::format("%d%s", kTheWindow, propName.c_str());
 	return g_lingo->_theEntityFields.contains(fieldName);
 }
 
-Datum Stage::getProp(const Common::String &propName) {
+Datum Window::getProp(const Common::String &propName) {
 	Common::String fieldName = Common::String::format("%d%s", kTheWindow, propName.c_str());
 	if (g_lingo->_theEntityFields.contains(fieldName)) {
 		return getField(g_lingo->_theEntityFields[fieldName]->field);
 	}
 
-	warning("Stage::getProp: unknown property '%s'", propName.c_str());
+	warning("Window::getProp: unknown property '%s'", propName.c_str());
 	return Datum();
 }
 
-bool Stage::setProp(const Common::String &propName, const Datum &value) {
+bool Window::setProp(const Common::String &propName, const Datum &value) {
 	Common::String fieldName = Common::String::format("%d%s", kTheWindow, propName.c_str());
 	if (g_lingo->_theEntityFields.contains(fieldName)) {
 		return setField(g_lingo->_theEntityFields[fieldName]->field, value);
 	}
 
-	warning("Stage::setProp: unknown property '%s'", propName.c_str());
+	warning("Window::setProp: unknown property '%s'", propName.c_str());
 	return false;
 }
 
-Datum Stage::getField(int field) {
+Datum Window::getField(int field) {
 	switch (field) {
 	case kTheTitle:
 		return getTitle();
@@ -369,12 +369,12 @@ Datum Stage::getField(int field) {
 	case kTheVisible:
 		return isVisible();
 	default:
-		warning("Stage::getField: unhandled field '%s'", g_lingo->field2str(field));
+		warning("Window::getField: unhandled field '%s'", g_lingo->field2str(field));
 		return Datum();
 	}
 }
 
-bool Stage::setField(int field, const Datum &value) {
+bool Window::setField(int field, const Datum &value) {
 	switch (field) {
 	case kTheTitle:
 		setTitle(value.asString());
@@ -386,18 +386,18 @@ bool Stage::setField(int field, const Datum &value) {
 		setVisible(value.asInt());
 		return true;
 	default:
-		warning("Stage::setField: unhandled field '%s'", g_lingo->field2str(field));
+		warning("Window::setField: unhandled field '%s'", g_lingo->field2str(field));
 		return false;
 	}
 }
 
 void LM::m_close(int nargs) {
-	Stage *me = static_cast<Stage *>(g_lingo->_currentMe.u.obj);
+	Window *me = static_cast<Window *>(g_lingo->_currentMe.u.obj);
 	me->setVisible(false);
 }
 
 void LM::m_forget(int nargs) {
-	Stage *me = static_cast<Stage *>(g_lingo->_currentMe.u.obj);
+	Window *me = static_cast<Window *>(g_lingo->_currentMe.u.obj);
 	DatumArray *windowList = g_lingo->_windowList.u.farr;
 
 	uint i;
@@ -405,7 +405,7 @@ void LM::m_forget(int nargs) {
 		if ((*windowList)[i].type != OBJECT || (*windowList)[i].u.obj->getObjType() != kWindowObj)
 			continue;
 
-		Stage *window = static_cast<Stage *>((*windowList)[i].u.obj);
+		Window *window = static_cast<Window *>((*windowList)[i].u.obj);
 		if (window == me)
 			break;
 	}
@@ -418,14 +418,14 @@ void LM::m_forget(int nargs) {
 		if (it->_value.type != OBJECT || it->_value.u.obj->getObjType() != kWindowObj)
 			continue;
 
-		Stage *window = static_cast<Stage *>((*windowList)[i].u.obj);
+		Window *window = static_cast<Window *>((*windowList)[i].u.obj);
 		if (window == me)
 			g_lingo->_globalvars[it->_key] = 0;
 	}
 }
 
 void LM::m_open(int nargs) {
-	Stage *me = static_cast<Stage *>(g_lingo->_currentMe.u.obj);
+	Window *me = static_cast<Window *>(g_lingo->_currentMe.u.obj);
 	me->setVisible(true);
 }
 
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 3f9a5eadc7..9bebc592ab 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -31,7 +31,7 @@
 #include "director/sound.h"
 #include "director/sprite.h"
 #include "director/score.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/lingo/lingo.h"
 #include "director/lingo/lingo-builtins.h"
 #include "director/lingo/lingo-code.h"
@@ -566,7 +566,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		break;
 	case kTheMouseCast:
 		{
-			Common::Point pos = g_director->getCurrentStage()->getMousePos();
+			Common::Point pos = g_director->getCurrentWindow()->getMousePos();
 			uint16 spriteId = score->getSpriteIDFromPos(pos);
 			d.type = INT;
 			d.u.i = score->getSpriteById(spriteId)->_castId;
@@ -590,7 +590,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		break;
 	case kTheMouseH:
 		d.type = INT;
-		d.u.i = g_director->getCurrentStage()->getMousePos().x;
+		d.u.i = g_director->getCurrentWindow()->getMousePos().x;
 		break;
 	case kTheMouseItem:
 		getTheEntitySTUB(kTheMouseItem);
@@ -611,7 +611,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		break;
 	case kTheMouseV:
 		d.type = INT;
-		d.u.i = g_director->getCurrentStage()->getMousePos().y;
+		d.u.i = g_director->getCurrentWindow()->getMousePos().y;
 		break;
 	case kTheMouseWord:
 		getTheEntitySTUB(kTheMouseWord);
@@ -743,7 +743,7 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		d = getTheSprite(id, field);
 		break;
 	case kTheStage:
-		d = _vm->getMainStage();
+		d = _vm->getStage();
 		break;
 	case kTheStageBottom:
 		d.type = INT;
@@ -998,7 +998,7 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 		setTheEntitySTUB(kTheStage);
 		break;
 	case kTheStageColor:
-		g_director->getCurrentStage()->setStageColor(d.asInt());
+		g_director->getCurrentWindow()->setStageColor(d.asInt());
 
 		// Queue an immediate update of the stage
 		if (!score->getNextFrame())
@@ -1258,7 +1258,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheCastNum:
 		if (d.asInt() != sprite->_castId) {
-			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentWindow()->addDirtyRect(channel->getBbox());
 			channel->setCast(d.asInt());
 			channel->_dirty = true;
 		}
@@ -1296,7 +1296,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheHeight:
 		if (d.asInt() != channel->_height) {
-			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentWindow()->addDirtyRect(channel->getBbox());
 			channel->setHeight(d.asInt());
 			channel->_dirty = true;
 		}
@@ -1321,14 +1321,14 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheLocH:
 		if (d.asInt() != channel->_currentPoint.x) {
-			g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentMovie()->getWindow()->addDirtyRect(channel->getBbox());
 			channel->_currentPoint.x = d.asInt();
 			channel->_dirty = true;
 		}
 		break;
 	case kTheLocV:
 		if (d.asInt() != channel->_currentPoint.y) {
-			g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentMovie()->getWindow()->addDirtyRect(channel->getBbox());
 			channel->_currentPoint.y = d.asInt();
 			channel->_dirty = true;
 		}
@@ -1367,7 +1367,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 			channel->_dirty = true;
 
 			if (sprite->_stretch) {
-				g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
+				g_director->getCurrentWindow()->addDirtyRect(channel->getBbox());
 
 				channel->_width = sprite->_width;
 				channel->_height = sprite->_height;
@@ -1396,7 +1396,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheWidth:
 		if (d.asInt() != channel->_width) {
-			g_director->getCurrentStage()->addDirtyRect(channel->getBbox());
+			g_director->getCurrentWindow()->addDirtyRect(channel->getBbox());
 			channel->setWidth(d.asInt());
 			channel->_dirty = true;
 		}
@@ -1406,7 +1406,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 	}
 
 	if (channel->_dirty && g_director->getCurrentMovie())
-		g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
+		g_director->getCurrentMovie()->getWindow()->addDirtyRect(channel->getBbox());
 }
 
 Datum Lingo::getTheCast(Datum &id1, int field) {
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 9191801676..d58996950d 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -32,7 +32,7 @@
 #include "director/movie.h"
 #include "director/score.h"
 #include "director/sprite.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/util.h"
 
 #include "director/lingo/lingo.h"
@@ -795,7 +795,7 @@ void Datum::reset() {
 			break;
 		case OBJECT:
 			if (u.obj->getObjType() == kWindowObj) {
-				Stage *window = static_cast<Stage *>(u.obj);
+				Window *window = static_cast<Window *>(u.obj);
 				g_director->_wm->removeWindow(window);
 				g_director->_wm->removeMarked();
 			} else {
diff --git a/engines/director/module.mk b/engines/director/module.mk
index bb1e6d2619..5bba39a0b0 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -14,7 +14,6 @@ MODULE_OBJS = \
 	images.o \
 	movie.o \
 	resource.o \
-	stage.o \
 	score.o \
 	sound.o \
 	sprite.o \
@@ -23,6 +22,7 @@ MODULE_OBJS = \
 	transitions.o \
 	util.o \
 	video.o \
+	window.o \
 	lingo/lingo.o \
 	lingo/lingo-builtins.o \
 	lingo/lingo-bytecode.o \
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 5d43f4bfd3..945f0b262a 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -30,15 +30,15 @@
 #include "director/cast.h"
 #include "director/movie.h"
 #include "director/score.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/lingo/lingo.h"
 #include "director/lingo/lingo-object.h"
 
 namespace Director {
 
-Movie::Movie(Stage *stage) {
-	_stage = stage;
-	_vm = _stage->getVM();
+Movie::Movie(Window *window) {
+	_window = window;
+	_vm = _window->getVM();
 	_lingo = _vm->getLingo();
 
 	_flags = 0;
@@ -110,11 +110,11 @@ bool Movie::loadArchive() {
 
 	// If the stage dimensions are different, delete it and start again.
 	// Otherwise, do not clear it so there can be a nice transition.
-	if (_stage->getSurface()->w != _movieRect.width() || _stage->getSurface()->h != _movieRect.height()) {
-		_stage->resize(_movieRect.width(), _movieRect.height(), true);
+	if (_window->getSurface()->w != _movieRect.width() || _window->getSurface()->h != _movieRect.height()) {
+		_window->resize(_movieRect.width(), _movieRect.height(), true);
 	}
 	// TODO: Add more options for desktop dimensions
-	if (_stage == _vm->getMainStage()) {
+	if (_window == _vm->getStage()) {
 		uint16 windowWidth = debugChannelSet(-1, kDebugDesktop) ? 1024 : _movieRect.width();
 		uint16 windowHeight = debugChannelSet(-1, kDebugDesktop) ? 768 : _movieRect.height();
 		if (_vm->_surface->w != windowWidth || _vm->_surface->h != windowHeight) {
@@ -124,7 +124,7 @@ bool Movie::loadArchive() {
 		initGraphics(windowWidth, windowHeight);
 	}
 
-	_stage->setStageColor(_stageColor);
+	_window->setStageColor(_stageColor);
 
 	// Score
 	if (!_movieArchive->hasResource(MKTAG('V', 'W', 'S', 'C'), -1)) {
diff --git a/engines/director/movie.h b/engines/director/movie.h
index 6a8d75000a..cca70445f4 100644
--- a/engines/director/movie.h
+++ b/engines/director/movie.h
@@ -40,7 +40,7 @@ class Lingo;
 struct LingoArchive;
 struct LingoEvent;
 class ScriptContext;
-class Stage;
+class Window;
 struct Symbol;
 
 struct InfoEntry {
@@ -83,7 +83,7 @@ struct InfoEntries {
 
 class Movie {
 public:
-	Movie(Stage *stage);
+	Movie(Window *window);
 	~Movie();
 
 	static Common::Rect readRect(Common::ReadStreamEndian &stream);
@@ -93,7 +93,7 @@ public:
 	void setArchive(Archive *archive);
 	Archive *getArchive() const { return _movieArchive; };
 	Common::String getMacName() const { return _macName; }
-	Stage *getStage() const { return _stage; }
+	Window *getWindow() const { return _window; }
 	DirectorEngine *getVM() const { return _vm; }
 	Cast *getCast() const { return _cast; }
 	Cast *getSharedCast() const { return _sharedCast; }
@@ -152,7 +152,7 @@ public:
 	byte _keyFlags;
 
 private:
-	Stage *_stage;
+	Window *_window;
 	DirectorEngine *_vm;
 	Lingo *_lingo;
 	Cast *_cast;
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index a723a29e90..25df8fd339 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -31,7 +31,7 @@
 #include "director/cast.h"
 #include "director/castmember.h"
 #include "director/movie.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/lingo/lingo.h"
 #include "director/util.h"
 
@@ -51,7 +51,7 @@ Archive *DirectorEngine::createArchive() {
 	}
 }
 
-Common::Error Stage::loadInitialMovie() {
+Common::Error Window::loadInitialMovie() {
 	debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
 	debug(0, "@@@@   Loading initial movie");
 	debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
@@ -77,7 +77,7 @@ Common::Error Stage::loadInitialMovie() {
 	return Common::kNoError;
 }
 
-void Stage::probeProjector(const Common::String &movie) {
+void Window::probeProjector(const Common::String &movie) {
 	if (g_director->getPlatform() == Common::kPlatformWindows)
 		return;
 
@@ -144,7 +144,7 @@ void Stage::probeProjector(const Common::String &movie) {
 	delete archive;
 }
 
-Archive *Stage::openMainArchive(const Common::String movie) {
+Archive *Window::openMainArchive(const Common::String movie) {
 	debug(1, "openMainArchive(\"%s\")", movie.c_str());
 
 	_mainArchive = g_director->createArchive();
@@ -160,7 +160,7 @@ Archive *Stage::openMainArchive(const Common::String movie) {
 	return _mainArchive;
 }
 
-void Stage::loadEXE(const Common::String movie) {
+void Window::loadEXE(const Common::String movie) {
 	Common::SeekableReadStream *iniStream = SearchMan.createReadStreamForMember("LINGO.INI");
 	if (iniStream) {
 		char *script = (char *)calloc(iniStream->size() + 1, 1);
@@ -236,7 +236,7 @@ void Stage::loadEXE(const Common::String movie) {
 		_mainArchive->setPathName(movie);
 }
 
-void Stage::loadEXEv3(Common::SeekableReadStream *stream) {
+void Window::loadEXEv3(Common::SeekableReadStream *stream) {
 	uint16 entryCount = stream->readUint16LE();
 	if (entryCount != 1)
 		error("Unhandled multiple entry v3 EXE");
@@ -266,7 +266,7 @@ void Stage::loadEXEv3(Common::SeekableReadStream *stream) {
 
 
 			if (!out.open(fname.c_str(), true)) {
-				warning("Stage::loadEXEv3(): Can not open dump file %s", fname.c_str());
+				warning("Window::loadEXEv3(): Can not open dump file %s", fname.c_str());
 			} else {
 				out.write(buf, mmmSize);
 
@@ -289,7 +289,7 @@ void Stage::loadEXEv3(Common::SeekableReadStream *stream) {
 	openMainArchive(mmmFileName);
 }
 
-void Stage::loadEXEv4(Common::SeekableReadStream *stream) {
+void Window::loadEXEv4(Common::SeekableReadStream *stream) {
 	if (stream->readUint32BE() != MKTAG('P', 'J', '9', '3'))
 		error("Invalid projector tag found in v4 EXE");
 
@@ -307,7 +307,7 @@ void Stage::loadEXEv4(Common::SeekableReadStream *stream) {
 	loadEXERIFX(stream, rifxOffset);
 }
 
-void Stage::loadEXEv5(Common::SeekableReadStream *stream) {
+void Window::loadEXEv5(Common::SeekableReadStream *stream) {
 	uint32 ver = stream->readUint32LE();
 
 	if (ver != MKTAG('P', 'J', '9', '5'))
@@ -329,7 +329,7 @@ void Stage::loadEXEv5(Common::SeekableReadStream *stream) {
 	loadEXERIFX(stream, rifxOffset);
 }
 
-void Stage::loadEXEv7(Common::SeekableReadStream *stream) {
+void Window::loadEXEv7(Common::SeekableReadStream *stream) {
 	if (stream->readUint32LE() != MKTAG('P', 'J', '0', '0'))
 		error("Invalid projector tag found in v7 EXE");
 
@@ -343,14 +343,14 @@ void Stage::loadEXEv7(Common::SeekableReadStream *stream) {
 	loadEXERIFX(stream, rifxOffset);
 }
 
-void Stage::loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset) {
+void Window::loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset) {
 	_mainArchive = new RIFXArchive();
 
 	if (!_mainArchive->openStream(stream, offset))
 		error("Failed to load RIFX from EXE");
 }
 
-void Stage::loadMac(const Common::String movie) {
+void Window::loadMac(const Common::String movie) {
 	if (g_director->getVersion() < 4) {
 		// The data is part of the resource fork of the executable
 		openMainArchive(movie);
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 0d14f7e55a..9a1c401d86 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -41,7 +41,7 @@
 #include "director/cursor.h"
 #include "director/channel.h"
 #include "director/sprite.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/util.h"
 #include "director/lingo/lingo.h"
 
@@ -49,7 +49,7 @@ namespace Director {
 
 Score::Score(Movie *movie) {
 	_movie = movie;
-	_stage = movie->getStage();
+	_window = movie->getWindow();
 	_vm = _movie->getVM();
 	_lingo = _vm->getLingo();
 
@@ -391,9 +391,9 @@ void Score::update() {
 		// TODO: Director 6 step: send prepareFrame event to all sprites and the script channel in upcoming frame
 	}
 
-	// Stage is drawn between the prepareFrame and enterFrame events (Lingo in a Nutshell, p.100)
+	// Window is drawn between the prepareFrame and enterFrame events (Lingo in a Nutshell, p.100)
 	renderFrame(_currentFrame);
-	_stage->_newMovieStarted = false;
+	_window->_newMovieStarted = false;
 
 	// Enter and exit from previous frame
 	if (!_vm->_playbackPaused) {
@@ -457,7 +457,7 @@ void Score::renderFrame(uint16 frameId, RenderMode mode) {
 		g_director->setPalette(resolvePaletteId(currentPalette));
 	}
 
-	_stage->render();
+	_window->render();
 
 	if (_frames[frameId]->_sound1 || _frames[frameId]->_sound2)
 		playSoundChannel(frameId);
@@ -465,16 +465,16 @@ void Score::renderFrame(uint16 frameId, RenderMode mode) {
 
 bool Score::renderTransition(uint16 frameId) {
 	Frame *currentFrame = _frames[frameId];
-	TransParams *tp = _stage->_puppetTransition;
+	TransParams *tp = _window->_puppetTransition;
 
 	if (tp) {
-		_stage->playTransition(tp->duration, tp->area, tp->chunkSize, tp->type, frameId);
+		_window->playTransition(tp->duration, tp->area, tp->chunkSize, tp->type, frameId);
 
-		delete _stage->_puppetTransition;;
-		_stage->_puppetTransition = nullptr;
+		delete _window->_puppetTransition;;
+		_window->_puppetTransition = nullptr;
 		return true;
 	} else if (currentFrame->_transType) {
-		_stage->playTransition(currentFrame->_transDuration, currentFrame->_transArea, currentFrame->_transChunkSize, currentFrame->_transType, frameId);
+		_window->playTransition(currentFrame->_transDuration, currentFrame->_transArea, currentFrame->_transChunkSize, currentFrame->_transType, frameId);
 		return true;
 	} else {
 		return false;
@@ -482,7 +482,7 @@ bool Score::renderTransition(uint16 frameId) {
 }
 
 void Score::renderSprites(uint16 frameId, RenderMode mode) {
-	if (_stage->_newMovieStarted)
+	if (_window->_newMovieStarted)
 		mode = kRenderForceUpdate;
 
 	for (uint16 i = 0; i < _channels.size(); i++) {
@@ -499,10 +499,10 @@ void Score::renderSprites(uint16 frameId, RenderMode mode) {
 
 		if (channel->isDirty(nextSprite) || widgetRedrawn || mode == kRenderForceUpdate) {
 			if (!currentSprite->_trails)
-				_stage->addDirtyRect(channel->getBbox());
+				_window->addDirtyRect(channel->getBbox());
 
 			channel->setClean(nextSprite, i);
-			_stage->addDirtyRect(channel->getBbox());
+			_window->addDirtyRect(channel->getBbox());
 			debugC(2, kDebugImages, "Score::renderSprites(): CH: %-3d castId: %03d(%s) [ink: %x, puppet: %d, moveable: %d, visible: %d] [bbox: %d,%d,%d,%d] [type: %d fg: %d bg: %d] [script: %d]", i, currentSprite->_castId, numToCastNum(currentSprite->_castId), currentSprite->_ink, currentSprite->_puppet, currentSprite->_moveable, channel->_visible, PRINT_RECT(channel->getBbox()), currentSprite->_spriteType, currentSprite->_foreColor, currentSprite->_backColor, currentSprite->_scriptId);
 		} else {
 			channel->setClean(nextSprite, i, true);
@@ -533,7 +533,7 @@ void Score::renderCursor(uint spriteId) {
 }
 
 void Score::screenShot() {
-	Graphics::Surface rawSurface = _stage->getSurface()->rawSurface();
+	Graphics::Surface rawSurface = _window->getSurface()->rawSurface();
 	const Graphics::PixelFormat requiredFormat_4byte(4, 8, 8, 8, 8, 0, 8, 16, 24);
 	Graphics::Surface *newSurface = rawSurface.convertTo(requiredFormat_4byte, _vm->getPalette());
 	Common::String currentPath = _vm->getCurrentPath().c_str();
diff --git a/engines/director/score.h b/engines/director/score.h
index a1155ec64c..b1c6239c74 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -40,7 +40,7 @@ namespace Common {
 
 namespace Director {
 
-class Stage;
+class Window;
 class Archive;
 class DirectorEngine;
 class DirectorSound;
@@ -148,7 +148,7 @@ private:
 	DirectorEngine *_vm;
 	Lingo *_lingo;
 	Movie *_movie;
-	Stage *_stage;
+	Window *_window;
 
 	uint16 _currentFrame;
 	uint16 _nextFrame;
diff --git a/engines/director/tests.cpp b/engines/director/tests.cpp
index 5967e16214..5e54cbe865 100644
--- a/engines/director/tests.cpp
+++ b/engines/director/tests.cpp
@@ -36,7 +36,7 @@
 #include "director/director.h"
 #include "director/archive.h"
 #include "director/movie.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/lingo/lingo.h"
 
 namespace Director {
@@ -44,7 +44,7 @@ namespace Director {
 //////////////////////
 // Graphics tests
 //////////////////////
-void Stage::testFontScaling() {
+void Window::testFontScaling() {
 	int x = 10;
 	int y = 10;
 	int w = g_system->getWidth();
@@ -111,7 +111,7 @@ void Stage::testFontScaling() {
 	}
 }
 
-void Stage::testFonts() {
+void Window::testFonts() {
 	Common::String fontName("Helvetica");
 
 	Common::MacResManager *fontFile = new Common::MacResManager();
@@ -137,7 +137,7 @@ void Stage::testFonts() {
 //////////////////////
 // Movie iteration
 //////////////////////
-Common::HashMap<Common::String, Movie *> *Stage::scanMovies(const Common::String &folder) {
+Common::HashMap<Common::String, Movie *> *Window::scanMovies(const Common::String &folder) {
 	Common::FSNode directory(folder);
 	Common::FSList movies;
 	const char *sharedMMMname;
@@ -178,7 +178,7 @@ Common::HashMap<Common::String, Movie *> *Stage::scanMovies(const Common::String
 	return nameMap;
 }
 
-void Stage::enqueueAllMovies() {
+void Window::enqueueAllMovies() {
 	Common::FSNode dir(ConfMan.get("path"));
 	Common::FSList files;
 	if (!dir.getChildren(files, Common::FSNode::kListFilesOnly)) {
@@ -194,7 +194,7 @@ void Stage::enqueueAllMovies() {
 	debug(1, "=========> Enqueued %d movies", _movieQueue.size());
 }
 
-MovieReference Stage::getNextMovieFromQueue() {
+MovieReference Window::getNextMovieFromQueue() {
 	MovieReference res;
 
 	if (_movieQueue.empty())
@@ -272,7 +272,7 @@ const byte testMovie[] = {
 	0x00, 0x00
 };
 
-void Stage::runTests() {
+void Window::runTests() {
 	Common::MemoryReadStream *movie = new Common::MemoryReadStream(testMovie, ARRAYSIZE(testMovie));
 	Common::SeekableReadStream *stream = Common::wrapCompressedReadStream(movie);
 
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index a8135d6b88..52aae17314 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -28,7 +28,7 @@
 #include "director/director.h"
 #include "director/movie.h"
 #include "director/score.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/util.h"
 #include "director/lingo/lingo.h"
 
@@ -131,12 +131,12 @@ struct {
 	TRANS(kTransDissolveBits,			kTransAlgoDissolve,	kTransDirNone)
 };
 
-void Stage::exitTransition(Graphics::ManagedSurface *nextFrame, Common::Rect clipRect) {
+void Window::exitTransition(Graphics::ManagedSurface *nextFrame, Common::Rect clipRect) {
 	_composeSurface->blitFrom(*nextFrame, clipRect, Common::Point(clipRect.left, clipRect.top));
 	g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, clipRect.left, clipRect.top, clipRect.width(), clipRect.height());
 }
 
-void Stage::playTransition(uint16 transDuration, uint8 transArea, uint8 transChunkSize, TransitionType transType, uint frame) {
+void Window::playTransition(uint16 transDuration, uint8 transArea, uint8 transChunkSize, TransitionType transType, uint frame) {
 	// Play a transition and return the number of subframes rendered
 	TransParams t;
 
@@ -551,7 +551,7 @@ static uint32 randomSeed[33] = {
 	0x14000000UL, 0x32800000UL, 0x48000000UL, 0xa3000000UL
 };
 
-void Stage::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
+void Window::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
 	uint w = clipRect.width();
 	uint h = clipRect.height();
 	uint realw = w, realh = h;
@@ -783,7 +783,7 @@ static byte dissolvePatterns[][8] = {
 	{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }
 };
 
-void Stage::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
+void Window::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
 	t.steps = 64;
 	t.stepDuration = t.duration / t.steps;
 
@@ -820,7 +820,7 @@ void Stage::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graphi
 	}
 }
 
-void Stage::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
+void Window::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
 	Common::Rect rto;
 	uint w = clipRect.width();
 	uint h = clipRect.height();
@@ -996,7 +996,7 @@ void Stage::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::Man
 	}
 }
 
-void Stage::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
+void Window::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *nextFrame) {
 	Common::Rect r = clipRect;
 	uint w = clipRect.width();
 	uint h = clipRect.height();
@@ -1045,7 +1045,7 @@ void Stage::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::ManagedS
 	}
 }
 
-void Stage::initTransParams(TransParams &t, Common::Rect &clipRect) {
+void Window::initTransParams(TransParams &t, Common::Rect &clipRect) {
 	int w = clipRect.width();
 	int h = clipRect.height();
 	int m = MIN(w, h);
diff --git a/engines/director/stage.cpp b/engines/director/window.cpp
similarity index 90%
rename from engines/director/stage.cpp
rename to engines/director/window.cpp
index 31348167f7..473e3801e6 100644
--- a/engines/director/stage.cpp
+++ b/engines/director/window.cpp
@@ -31,7 +31,7 @@
 #include "director/cast.h"
 #include "director/lingo/lingo.h"
 #include "director/movie.h"
-#include "director/stage.h"
+#include "director/window.h"
 #include "director/score.h"
 #include "director/castmember.h"
 #include "director/cursor.h"
@@ -41,8 +41,8 @@
 
 namespace Director {
 
-Stage::Stage(int id, bool scrollable, bool resizable, bool editable, Graphics::MacWindowManager *wm, DirectorEngine *vm)
-	: MacWindow(id, scrollable, resizable, editable, wm), Object<Stage>("Stage") {
+Window::Window(int id, bool scrollable, bool resizable, bool editable, Graphics::MacWindowManager *wm, DirectorEngine *vm)
+	: MacWindow(id, scrollable, resizable, editable, wm), Object<Window>("Window") {
 	_vm = vm;
 	_stageColor = 0;
 	_puppetTransition = nullptr;
@@ -57,7 +57,7 @@ Stage::Stage(int id, bool scrollable, bool resizable, bool editable, Graphics::M
 	_startFrame = _vm->getStartMovie().startFrame;
 }
 
-Stage::~Stage() {
+Window::~Window() {
 	delete _currentMovie;
 	if (_macBinary) {
 		delete _macBinary;
@@ -65,7 +65,7 @@ Stage::~Stage() {
 	}
 }
 
-void Stage::invertChannel(Channel *channel) {
+void Window::invertChannel(Channel *channel) {
 	const Graphics::Surface *mask = channel->getMask(true);
 	Common::Rect destRect = channel->getBbox();
 
@@ -79,7 +79,7 @@ void Stage::invertChannel(Channel *channel) {
 	}
 }
 
-bool Stage::render(bool forceRedraw, Graphics::ManagedSurface *blitTo) {
+bool Window::render(bool forceRedraw, Graphics::ManagedSurface *blitTo) {
 	if (!_currentMovie)
 		return false;
 
@@ -113,7 +113,7 @@ bool Stage::render(bool forceRedraw, Graphics::ManagedSurface *blitTo) {
 	return true;
 }
 
-void Stage::setStageColor(uint stageColor) {
+void Window::setStageColor(uint stageColor) {
 	if (stageColor != _stageColor) {
 		_stageColor = stageColor;
 		reset();
@@ -121,12 +121,12 @@ void Stage::setStageColor(uint stageColor) {
 	}
 }
 
-void Stage::reset() {
+void Window::reset() {
 	_composeSurface->clear(_stageColor);
 	_contentIsDirty = true;
 }
 
-void Stage::addDirtyRect(const Common::Rect &r) {
+void Window::addDirtyRect(const Common::Rect &r) {
 	if (!r.isValidRect())
 		return;
 
@@ -137,12 +137,12 @@ void Stage::addDirtyRect(const Common::Rect &r) {
 		_dirtyRects.push_back(bounds);
 }
 
-void Stage::markAllDirty() {
+void Window::markAllDirty() {
 	_dirtyRects.clear();
 	_dirtyRects.push_back(Common::Rect(_composeSurface->w, _composeSurface->h));
 }
 
-void Stage::mergeDirtyRects() {
+void Window::mergeDirtyRects() {
 	Common::List<Common::Rect>::iterator rOuter, rInner;
 
 	// Process the dirty rect list to find any rects to merge
@@ -164,7 +164,7 @@ void Stage::mergeDirtyRects() {
 	}
 }
 
-void Stage::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::ManagedSurface *blitTo) {
+void Window::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::ManagedSurface *blitTo) {
 	Common::Rect srcRect = channel->getBbox();
 	destRect.clip(srcRect);
 
@@ -182,11 +182,11 @@ void Stage::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::Manag
 			inkBlitSurface(&pd, srcRect, channel->getMask());
 		}
 	} else {
-		warning("Stage::inkBlitFrom: No source surface");
+		warning("Window::inkBlitFrom: No source surface");
 	}
 }
 
-void Stage::inkBlitShape(DirectorPlotData *pd, Common::Rect &srcRect) {
+void Window::inkBlitShape(DirectorPlotData *pd, Common::Rect &srcRect) {
 	if (!pd->ms)
 		return;
 
@@ -246,11 +246,11 @@ void Stage::inkBlitShape(DirectorPlotData *pd, Common::Rect &srcRect) {
 		Graphics::drawLine(strokeRect.left, strokeRect.top, strokeRect.right, strokeRect.bottom, pd->ms->foreColor, inkDrawPixel, pd);
 		break;
 	default:
-		warning("Stage::inkBlitFrom: Expected shape type but got type %d", pd->ms->spriteType);
+		warning("Window::inkBlitFrom: Expected shape type but got type %d", pd->ms->spriteType);
 	}
 }
 
-void Stage::inkBlitSurface(DirectorPlotData *pd, Common::Rect &srcRect, const Graphics::Surface *mask) {
+void Window::inkBlitSurface(DirectorPlotData *pd, Common::Rect &srcRect, const Graphics::Surface *mask) {
 	if (!pd->srf)
 		return;
 
@@ -272,7 +272,7 @@ void Stage::inkBlitSurface(DirectorPlotData *pd, Common::Rect &srcRect, const Gr
 	}
 }
 
-void Stage::inkBlitStretchSurface(DirectorPlotData *pd, Common::Rect &srcRect, const Graphics::Surface *mask) {
+void Window::inkBlitStretchSurface(DirectorPlotData *pd, Common::Rect &srcRect, const Graphics::Surface *mask) {
 	if (!pd->srf)
 		return;
 
@@ -298,7 +298,7 @@ void Stage::inkBlitStretchSurface(DirectorPlotData *pd, Common::Rect &srcRect, c
 	}
 }
 
-int Stage::preprocessColor(DirectorPlotData *p, int src) {
+int Window::preprocessColor(DirectorPlotData *p, int src) {
 	// HACK: Right now this method is just used for adjusting the colourization on text
 	// sprites, as it would be costly to colourize the chunks on the fly each
 	// time a section needs drawing. It's ugly but mostly works.
@@ -333,11 +333,11 @@ int Stage::preprocessColor(DirectorPlotData *p, int src) {
 	return src;
 }
 
-Common::Point Stage::getMousePos() {
+Common::Point Window::getMousePos() {
 	return g_system->getEventManager()->getMousePos() - Common::Point(_innerDims.left, _innerDims.top);
 }
 
-void Stage::setVisible(bool visible, bool silent) {
+void Window::setVisible(bool visible, bool silent) {
 	// setting visible triggers movie load
 	if (!_currentMovie && !silent) {
 		Common::String movieName = getName();
@@ -347,7 +347,7 @@ void Stage::setVisible(bool visible, bool silent) {
 	BaseMacWindow::setVisible(visible);
 }
 
-bool Stage::setNextMovie(Common::String &movieFilenameRaw) {
+bool Window::setNextMovie(Common::String &movieFilenameRaw) {
 	Common::String movieFilename = pathMakeRelative(movieFilenameRaw);
 	Common::String cleanedFilename;
 
@@ -378,7 +378,7 @@ bool Stage::setNextMovie(Common::String &movieFilenameRaw) {
 		}
 	}
 
-	debug(1, "Stage::setNextMovie: '%s' -> '%s' -> '%s' -> '%s'", movieFilenameRaw.c_str(), convertPath(movieFilenameRaw).c_str(),
+	debug(1, "Window::setNextMovie: '%s' -> '%s' -> '%s' -> '%s'", movieFilenameRaw.c_str(), convertPath(movieFilenameRaw).c_str(),
 			movieFilename.c_str(), cleanedFilename.c_str());
 
 	if (!fileExists) {
@@ -390,7 +390,7 @@ bool Stage::setNextMovie(Common::String &movieFilenameRaw) {
 	return true;
 }
 
-bool Stage::step() {
+bool Window::step() {
 	// finish last movie
 	if (_currentMovie && _currentMovie->getScore()->_playState == kPlayStopped) {
 		debugC(3, kDebugEvents, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
diff --git a/engines/director/stage.h b/engines/director/window.h
similarity index 96%
rename from engines/director/stage.h
rename to engines/director/window.h
index 8a434d688b..9dd803c029 100644
--- a/engines/director/stage.h
+++ b/engines/director/window.h
@@ -86,10 +86,10 @@ struct TransParams {
 	}
 };
 
-class Stage : public Graphics::MacWindow, public Object<Stage> {
+class Window : public Graphics::MacWindow, public Object<Window> {
  public:
-	Stage(int id, bool scrollable, bool resizable, bool editable, Graphics::MacWindowManager *wm, DirectorEngine *vm);
-	~Stage();
+	Window(int id, bool scrollable, bool resizable, bool editable, Graphics::MacWindowManager *wm, DirectorEngine *vm);
+	~Window();
 
 	bool render(bool forceRedraw = false, Graphics::ManagedSurface *blitTo = nullptr);
 	void invertChannel(Channel *channel);




More information about the Scummvm-git-logs mailing list