aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorEugene Sandulenko2018-03-23 22:14:03 +0100
committerEugene Sandulenko2018-03-24 02:45:26 +0100
commit05144ab3cae69dd2438dd3442c0157ae3a07deaf (patch)
tree1f6afd2cca2246c49ec934cf17c531fbe9e75b27 /engines/bladerunner
parentda2c7142ce2513b8464c30ed4872eeff69987d6e (diff)
downloadscummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.tar.gz
scummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.tar.bz2
scummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.zip
BLADERUNNER: Implement setting items as target
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/item.h2
-rw-r--r--engines/bladerunner/items.cpp9
-rw-r--r--engines/bladerunner/items.h1
-rw-r--r--engines/bladerunner/script/script.cpp4
4 files changed, 14 insertions, 2 deletions
diff --git a/engines/bladerunner/item.h b/engines/bladerunner/item.h
index baabdb8890..6842df12ba 100644
--- a/engines/bladerunner/item.h
+++ b/engines/bladerunner/item.h
@@ -65,6 +65,8 @@ public:
void setXYZ(Vector3 position);
void getWidthHeight(int *width, int *height) const;
+ void setIsTarget(bool isTarget) { _isTarget = isTarget; }
+
bool isTarget() const;
bool isPoliceMazeEnemy() const;
void spinInWorld();
diff --git a/engines/bladerunner/items.cpp b/engines/bladerunner/items.cpp
index d526477b1f..81164e31a0 100644
--- a/engines/bladerunner/items.cpp
+++ b/engines/bladerunner/items.cpp
@@ -118,6 +118,15 @@ bool Items::remove(int itemId) {
return true;
}
+void Items::setIsTarget(int itemId, bool isTarget) {
+ int itemIndex = findItem(itemId);
+ if (itemIndex == -1) {
+ return;
+ }
+ _items[itemIndex]->setIsTarget(isTarget);
+ _vm->_sceneObjects->setIsTarget(itemId + kSceneObjectOffsetItems, isTarget);
+}
+
bool Items::isTarget(int itemId) const {
int itemIndex = findItem(itemId);
if (itemIndex == -1) {
diff --git a/engines/bladerunner/items.h b/engines/bladerunner/items.h
index 20f51b93b3..1c68eb66a5 100644
--- a/engines/bladerunner/items.h
+++ b/engines/bladerunner/items.h
@@ -47,6 +47,7 @@ public:
bool addToSet(int itemId);
bool remove(int itemId);
+ void setIsTarget(int itemId, bool isTarget);
bool isTarget(int itemId) const;
bool isPoliceMazeEnemy(int itemId) const;
int findTargetUnderMouse(int mouseX, int mouseY) const;
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index 26e87cb497..3c1f041d57 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -690,11 +690,11 @@ void ScriptBase::Item_Spin_In_World(int itemId) {
}
void ScriptBase::Item_Flag_As_Target(int itemId) {
- warning("Item_Flag_As_Target(%d)", itemId);
+ _vm->_items->setIsTarget(itemId, true);
}
void ScriptBase::Item_Flag_As_Non_Target(int itemId) {
- warning("Item_Flag_As_Non_Target(%d)", itemId);
+ _vm->_items->setIsTarget(itemId, false);
}
void ScriptBase::Item_Pickup_Spin_Effect(int animationId, int x, int y) {