aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/items.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2018-03-24 10:46:45 +0100
committerEugene Sandulenko2018-03-24 10:47:07 +0100
commitf153da7f850dd8cdf82e0e9e96b02f84e3996e7e (patch)
tree5eb7c318829197a1f2e55244c7d031c1f3a56e9c /engines/bladerunner/items.cpp
parentc3d6dcfae0cf39812fef3959e7f276b27868bcb5 (diff)
downloadscummvm-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.cpp40
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) {