diff options
author | Eugene Sandulenko | 2018-03-23 22:14:03 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-24 02:45:26 +0100 |
commit | 05144ab3cae69dd2438dd3442c0157ae3a07deaf (patch) | |
tree | 1f6afd2cca2246c49ec934cf17c531fbe9e75b27 | |
parent | da2c7142ce2513b8464c30ed4872eeff69987d6e (diff) | |
download | scummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.tar.gz scummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.tar.bz2 scummvm-rg350-05144ab3cae69dd2438dd3442c0157ae3a07deaf.zip |
BLADERUNNER: Implement setting items as target
-rw-r--r-- | engines/bladerunner/item.h | 2 | ||||
-rw-r--r-- | engines/bladerunner/items.cpp | 9 | ||||
-rw-r--r-- | engines/bladerunner/items.h | 1 | ||||
-rw-r--r-- | engines/bladerunner/script/script.cpp | 4 |
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) { |