aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/police_maze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/police_maze.cpp')
-rw-r--r--engines/bladerunner/police_maze.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/engines/bladerunner/police_maze.cpp b/engines/bladerunner/police_maze.cpp
index 11eeb869fe..395804d626 100644
--- a/engines/bladerunner/police_maze.cpp
+++ b/engines/bladerunner/police_maze.cpp
@@ -22,8 +22,10 @@
#include "bladerunner/bladerunner.h"
#include "bladerunner/game_constants.h"
+#include "bladerunner/items.h"
#include "bladerunner/police_maze.h"
#include "bladerunner/scene.h"
+#include "bladerunner/scene_objects.h"
#include "bladerunner/script/scene_script.h"
namespace BladeRunner {
@@ -34,7 +36,7 @@ PoliceMaze::PoliceMaze(BladeRunnerEngine *vm) {
reset();
for (int i = 0; i < kNumMazeTracks; i++) {
- _tracks[i] = new PoliceMazeTargetTrack;
+ _tracks[i] = new PoliceMazeTargetTrack(vm);
}
}
@@ -116,7 +118,9 @@ void PoliceMaze::tick() {
}
}
-PoliceMazeTargetTrack::PoliceMazeTargetTrack() {
+PoliceMazeTargetTrack::PoliceMazeTargetTrack(BladeRunnerEngine *vm) {
+ _vm = vm;
+
reset();
}
@@ -154,4 +158,16 @@ void PoliceMazeTargetTrack::add(int trackId, float startX, float startY, float s
void PoliceMazeTargetTrack::tick() {
}
+void PoliceMazeTargetTrack::readdObject(int itemId) {
+ if (_vm->_sceneObjects->remove(itemId + kSceneObjectOffsetItems)) {
+ BoundingBox *boundingBox = _vm->_items->getBoundingBox(itemId);
+ Common::Rect *screenRect = _vm->_items->getScreenRectangle(itemId);
+ bool targetable = _vm->_items->isTarget(itemId);
+ bool obstacle = _vm->_items->isVisible(itemId);
+
+ _vm->_sceneObjects->addItem(itemId + kSceneObjectOffsetItems, boundingBox, screenRect, targetable, obstacle);
+ }
+}
+
+
} // End of namespace BladeRunner