aboutsummaryrefslogtreecommitdiff
path: root/engines/macventure/world.cpp
diff options
context:
space:
mode:
authorBorja Lorente2016-06-18 23:14:17 +0200
committerBorja Lorente2016-08-14 18:29:11 +0200
commit96f9910c79849c980a09ff733f4710ba9d414dc9 (patch)
tree61d9aea54d5ea51933bd6a4f60c2cd27d6736dd7 /engines/macventure/world.cpp
parent9b052d0a973971a50b4f0df918489e0fc6dd9fdb (diff)
downloadscummvm-rg350-96f9910c79849c980a09ff733f4710ba9d414dc9.tar.gz
scummvm-rg350-96f9910c79849c980a09ff733f4710ba9d414dc9.tar.bz2
scummvm-rg350-96f9910c79849c980a09ff733f4710ba9d414dc9.zip
MACVENTURE: Add opcodes for script engine
Diffstat (limited to 'engines/macventure/world.cpp')
-rw-r--r--engines/macventure/world.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/engines/macventure/world.cpp b/engines/macventure/world.cpp
index 2cd50ff82a..2f603c5ddc 100644
--- a/engines/macventure/world.cpp
+++ b/engines/macventure/world.cpp
@@ -102,6 +102,56 @@ Common::Array<ObjID> World::getChildren(ObjID objID, bool recursive) {
return Common::Array<ObjID>();
}
+WindowReference World::getObjWindow(ObjID objID) {
+ switch (objID) {
+ case 0xfffc: return kExitsWindow;
+ case 0xfffd: return kSelfWindow;
+ case 0xfffe: return kOutConsoleWindow;
+ case 0xffff: return kCommandsWindow;
+ }
+
+ return findObjWindow(objID);
+}
+
+WindowReference World::findObjWindow(ObjID objID) {
+ return kMainGameWindow;
+}
+
+Attribute World::getGlobal(uint32 attrID) {
+ return _saveGame->getGlobals()[attrID];
+}
+
+void World::setGlobal(uint32 attrID, Attribute value) {
+ _saveGame->setGlobal(attrID, value);
+}
+
+void World::updateObj(ObjID objID) {
+ WindowReference win;
+ if (getObjAttr(1, kAttrParentObject) == objID) {
+ win = kMainGameWindow;
+ } else {
+ win = getObjWindow(objID);
+ }
+ if (win) {
+ //focusObjWin(objID);
+ _engine->runObjQueue();
+ //_engine->updateWindow(win);
+ }
+}
+
+void World::captureChildren(ObjID objID) {
+}
+
+void World::releaseChildren(ObjID objID) {
+}
+
+Common::String World::getText(ObjID objID) {
+ TextAsset text = TextAsset(objID, _gameText, _engine->isOldText(), _engine->getDecodingHuffman());
+
+ return *text.decode();
+}
+
+
bool World::loadStartGameFileName() {
Common::SeekableReadStream *res;
@@ -186,6 +236,10 @@ const AttributeGroup * SaveGame::getGroup(uint32 groupID) {
return &(_groups[groupID]);
}
+void SaveGame::setGlobal(uint32 attrID, Attribute value) {
+ _globals[attrID] = value;
+}
+
const Common::Array<uint16>& MacVenture::SaveGame::getGlobals() {
return _globals;
}