aboutsummaryrefslogtreecommitdiff
path: root/engines/access/scripts.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-08-09 17:57:34 -0400
committerPaul Gilbert2014-08-09 17:57:34 -0400
commitd04a6d2d7a9bfc3bcfd3ad94c48f878d1143ee32 (patch)
tree3686e18c4aae7358a0405f94b3231b0257bd927c /engines/access/scripts.cpp
parent00633b94be93bd80fc8d1244f59647002f12fbe1 (diff)
downloadscummvm-rg350-d04a6d2d7a9bfc3bcfd3ad94c48f878d1143ee32.tar.gz
scummvm-rg350-d04a6d2d7a9bfc3bcfd3ad94c48f878d1143ee32.tar.bz2
scummvm-rg350-d04a6d2d7a9bfc3bcfd3ad94c48f878d1143ee32.zip
ACCESS: Beginnings of inventory management
Diffstat (limited to 'engines/access/scripts.cpp')
-rw-r--r--engines/access/scripts.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp
index bc86e09fcb..66b16e9826 100644
--- a/engines/access/scripts.cpp
+++ b/engines/access/scripts.cpp
@@ -87,7 +87,7 @@ void Scripts::executeCommand(int commandIndex) {
&Scripts::cmdJumpUse, &Scripts::cmdJumpTalk, &Scripts::cmdNull,
&Scripts::CMDPRINT, &Scripts::cmdRetPos, &Scripts::CMDANIM,
&Scripts::cmdSetFlag, &Scripts::CMDCHECKFLAG, &Scripts::cmdGoto,
- &Scripts::CMDSETINV, &Scripts::CMDSETINV, &Scripts::CMDCHECKINV,
+ &Scripts::cmdSetInventory, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory,
&Scripts::CMDSETTEX, &Scripts::CMDNEWROOM, &Scripts::CMDCONVERSE,
&Scripts::CMDCHECKFRAME, &Scripts::CMDCHECKANIM, &Scripts::CMDSND,
&Scripts::CMDRETNEG, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc,
@@ -175,7 +175,7 @@ void Scripts::CMDANIM() { }
void Scripts::cmdSetFlag() {
int flagNum = _data->readByte();
byte flagVal = _data->readByte();
- assert(flagNum < 100);
+
_vm->_flags[flagNum] = flagVal;
}
@@ -195,8 +195,26 @@ void Scripts::cmdGoto() {
searchForSequence();
}
-void Scripts::CMDSETINV() { }
-void Scripts::CMDCHECKINV() { }
+void Scripts::cmdSetInventory() {
+ int itemId = _data->readByte();
+ int itemVal = _data->readByte();
+
+ (*_vm->_inventory)[itemId] = itemVal;
+ _vm->_inventory->_startInvItem = 0;
+ _vm->_inventory->_startInvBox = 0;
+ _vm->_inventory->_invChangeFlag = true;
+}
+
+void Scripts::cmdCheckInventory() {
+ int itemId = _data->readUint16LE();
+ int itemVal = _data->readUint16LE();
+
+ if ((*_vm->_inventory)[itemId] == itemVal)
+ cmdGoto();
+ else
+ _data->skip(2);
+}
+
void Scripts::CMDSETTEX() { }
void Scripts::CMDNEWROOM() { }
void Scripts::CMDCONVERSE() { }