From f153da7f850dd8cdf82e0e9e96b02f84e3996e7e Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 24 Mar 2018 10:46:45 +0100 Subject: BLADERUNNER: Finished PoliceMaze implementation --- engines/bladerunner/items.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'engines/bladerunner/items.cpp') 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) { -- cgit v1.2.3