diff options
author | Eugene Sandulenko | 2018-03-24 10:46:45 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-24 10:47:07 +0100 |
commit | f153da7f850dd8cdf82e0e9e96b02f84e3996e7e (patch) | |
tree | 5eb7c318829197a1f2e55244c7d031c1f3a56e9c /engines/bladerunner/items.cpp | |
parent | c3d6dcfae0cf39812fef3959e7f276b27868bcb5 (diff) | |
download | scummvm-rg350-f153da7f850dd8cdf82e0e9e96b02f84e3996e7e.tar.gz scummvm-rg350-f153da7f850dd8cdf82e0e9e96b02f84e3996e7e.tar.bz2 scummvm-rg350-f153da7f850dd8cdf82e0e9e96b02f84e3996e7e.zip |
BLADERUNNER: Finished PoliceMaze implementation
Diffstat (limited to 'engines/bladerunner/items.cpp')
-rw-r--r-- | engines/bladerunner/items.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/engines/bladerunner/items.cpp b/engines/bladerunner/items.cpp index 7de1300bff..f18ed720b4 100644 --- a/engines/bladerunner/items.cpp +++ b/engines/bladerunner/items.cpp @@ -46,6 +46,13 @@ void Items::getXYZ(int itemId, float *x, float *y, float *z) const { _items[itemIndex]->getXYZ(x, y, z); } +void Items::setXYZ(int itemId, Vector3 position) { + int itemIndex = findItem(itemId); + assert(itemIndex != -1); + + _items[itemIndex]->setXYZ(position); +} + void Items::getWidthHeight(int itemId, int *width, int *height) const { int itemIndex = findItem(itemId); assert(itemIndex != -1); @@ -151,6 +158,23 @@ bool Items::isPoliceMazeEnemy(int itemId) const { return _items[itemIndex]->isTarget(); } +void Items::setPoliceMazeEnemy(int itemId, bool val) { + int itemIndex = findItem(itemId); + if (itemIndex == -1) { + return; + } + _items[itemIndex]->setPoliceMazeEnemy(val); +} + +void Items::setIsObstacle(int itemId, bool val) { + int itemIndex = findItem(itemId); + if (itemIndex == -1) { + return; + } + _items[itemIndex]->setVisible(val); + _vm->_sceneObjects->setIsClickable(itemId + kSceneObjectOffsetItems, val); +} + BoundingBox *Items::getBoundingBox(int itemId) { int itemIndex = findItem(itemId); if (itemIndex == -1) { @@ -167,6 +191,22 @@ Common::Rect *Items::getScreenRectangle(int itemId) { return _items[itemIndex]->getScreenRectangle(); } +int Items::getFacing(int itemId) const { + int itemIndex = findItem(itemId); + if (itemIndex == -1) { + return 0; + } + return _items[itemIndex]->getFacing(); +} + +void Items::setFacing(int itemId, int facing) { + int itemIndex = findItem(itemId); + if (itemIndex == -1) { + return; + } + _items[itemIndex]->setFacing(facing); +} + void Items::spinInWorld(int itemId) { int itemIndex = findItem(itemId); if (itemIndex == -1) { |