aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise/function.cpp
diff options
context:
space:
mode:
authorVincent Hamm2007-11-11 19:33:25 +0000
committerVincent Hamm2007-11-11 19:33:25 +0000
commit43437e6d749e3a95f6f23a265b399e08f86203ad (patch)
tree98881deb4cf0d8e8d0bffbe71beb9daa6eaeff27 /engines/cruise/function.cpp
parent6e6a864c17403a99ee866c2330061d6e31506bbe (diff)
downloadscummvm-rg350-43437e6d749e3a95f6f23a265b399e08f86203ad.tar.gz
scummvm-rg350-43437e6d749e3a95f6f23a265b399e08f86203ad.tar.bz2
scummvm-rg350-43437e6d749e3a95f6f23a265b399e08f86203ad.zip
Menu display fix
Linked objects implementation (barman) The gameplay is now kind of working and it is possible to play at least the first part of the game svn-id: r29478
Diffstat (limited to 'engines/cruise/function.cpp')
-rw-r--r--engines/cruise/function.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/cruise/function.cpp b/engines/cruise/function.cpp
index 46d938b849..d63f362c62 100644
--- a/engines/cruise/function.cpp
+++ b/engines/cruise/function.cpp
@@ -1533,6 +1533,23 @@ int16 Op_DialogOff(void) {
return 0;
}
+int16 Op_LinkObjects(void) {
+ int type = popVar();
+ int obj2 = popVar();
+ int ovl2 = popVar();
+ int obj = popVar();
+ int ovl = popVar();
+
+ if(!ovl)
+ ovl = currentScriptPtr->overlayNumber;
+ if(!ovl2)
+ ovl2 = currentScriptPtr->overlayNumber;
+
+ linkCell(&cellHead, ovl, obj, type, ovl2, obj2);
+
+ return 0;
+}
+
void setupOpcodeTable(void) {
int i;
@@ -1600,6 +1617,7 @@ void setupOpcodeTable(void) {
opcodeTablePtr[0x41] = Op_isFileLoaded2;
opcodeTablePtr[0x43] = Op_songExist;
opcodeTablePtr[0x45] = Op_45;
+ opcodeTablePtr[0x4B] = Op_LinkObjects;
opcodeTablePtr[0x54] = Op_SetFontFileIndex;
opcodeTablePtr[0x56] = Op_changeCutSceneState;
opcodeTablePtr[0x57] = Op_GetMouseX;