aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorJames Brown2002-11-02 08:18:21 +0000
committerJames Brown2002-11-02 08:18:21 +0000
commit1c975ba92ed9bec19de6f2652888aa1df9808a94 (patch)
treebc320794f211b2263bfdd10406fc497c73cb4b82 /scumm
parent35678731d91410c60a9f00bce0d037b252e45044 (diff)
downloadscummvm-rg350-1c975ba92ed9bec19de6f2652888aa1df9808a94.tar.gz
scummvm-rg350-1c975ba92ed9bec19de6f2652888aa1df9808a94.tar.bz2
scummvm-rg350-1c975ba92ed9bec19de6f2652888aa1df9808a94.zip
Correct that FT opcode - it's bitwise or, not logical
svn-id: r5373
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v2.cpp24
-rw-r--r--scumm/scumm.h4
2 files changed, 22 insertions, 6 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 838fb0dff6..df5c0cb286 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -302,8 +302,8 @@ void Scumm::setupOpcodes2()
/* D4 */
&Scumm::o6_invalid,
&Scumm::o6_jumpToScript,
- &Scumm::o6_land,
- &Scumm::o6_lor,
+ &Scumm::o6_band,
+ &Scumm::o6_bor,
/* D8 */
&Scumm::o6_isRoomScriptRunning,
&Scumm::o6_invalid,
@@ -625,8 +625,8 @@ void Scumm::setupOpcodes2()
/* D4 */
"o6_invalid",
"o6_jumpToScript",
- "o6_land",
- "o6_lor",
+ "o6_band",
+ "o6_bor",
/* D8 */
"o6_isRoomScriptRunning",
"o6_invalid",
@@ -889,18 +889,30 @@ void Scumm::o6_div()
push(pop() / a);
}
-void Scumm::o6_land()
+void Scumm::o6_land() // Logical And
{
int a = pop();
push(pop() && a);
}
-void Scumm::o6_lor()
+void Scumm::o6_lor() // Logical Or
{
int a = pop();
push(pop() || a);
}
+void Scumm::o6_bor() // Bitwise Or
+{
+ int a = pop();
+ push(pop() | a);
+}
+
+void Scumm::o6_band() // Bitwise And
+{
+ int a = pop();
+ push(pop() | a);
+}
+
void Scumm::o6_kill()
{
pop();
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 9117c44d7a..f800ceb2b7 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -541,6 +541,7 @@ public:
void runAllScripts();
void setupOpcodes();
void setupOpcodes2();
+ //void setupOpcodes3();
void cutscene(int16 *args);
void endCutscene();
void exitCutscene();
@@ -1224,6 +1225,9 @@ public:
void o6_drawBlastObject();
void o6_getActorPriority();
void o6_unknownCD();
+ void o6_bor();
+ void o6_band();
+ // void o7_userfaceOps();
/* Scumm Vars */
byte VAR_EGO;