[Scummvm-git-logs] scummvm master -> f153da7f850dd8cdf82e0e9e96b02f84e3996e7e

sev- sev at scummvm.org
Sat Mar 24 10:47:23 CET 2018


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f153da7f85 BLADERUNNER: Finished PoliceMaze implementation


Commit: f153da7f850dd8cdf82e0e9e96b02f84e3996e7e
    https://github.com/scummvm/scummvm/commit/f153da7f850dd8cdf82e0e9e96b02f84e3996e7e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-24T10:47:07+01:00

Commit Message:
BLADERUNNER: Finished PoliceMaze implementation

Changed paths:
    engines/bladerunner/item.h
    engines/bladerunner/items.cpp
    engines/bladerunner/items.h
    engines/bladerunner/script/police_maze.cpp


diff --git a/engines/bladerunner/item.h b/engines/bladerunner/item.h
index fcb2f22..2c0ce97 100644
--- a/engines/bladerunner/item.h
+++ b/engines/bladerunner/item.h
@@ -67,12 +67,16 @@ public:
 
 	BoundingBox *getBoundingBox() { return &_boundingBox; }
 	Common::Rect *getScreenRectangle() { return &_screenRectangle; }
+	int getFacing() const { return _facing; }
+	void setFacing(int facing) { _facing = facing; }
 
 	void setIsTarget(bool isTarget) { _isTarget = isTarget; }
 
 	bool isTarget() const;
 	bool isVisible() const { return _isVisible; }
+	void setVisible(bool val) { _isVisible = val; }
 	bool isPoliceMazeEnemy() const;
+	void setPoliceMazeEnemy(bool val) { _isPoliceMazeEnemy = val; }
 	void spinInWorld();
 	bool tick(Common::Rect *screenRect, bool special);
 
diff --git a/engines/bladerunner/items.cpp b/engines/bladerunner/items.cpp
index 7de1300..f18ed72 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) {
diff --git a/engines/bladerunner/items.h b/engines/bladerunner/items.h
index 1c6f488..ddb94cd 100644
--- a/engines/bladerunner/items.h
+++ b/engines/bladerunner/items.h
@@ -40,6 +40,7 @@ public:
 	~Items();
 
 	void getXYZ(int itemId, float *x, float *y, float *z) const;
+	void setXYZ(int itemId, Vector3 position);
 	void getWidthHeight(int itemId, int *width, int *height) const;
 
 	void tick();
@@ -50,11 +51,15 @@ public:
 	void setIsTarget(int itemId, bool isTarget);
 	bool isTarget(int itemId) const;
 	bool isPoliceMazeEnemy(int itemId) const;
+	void setPoliceMazeEnemy(int itemId, bool val);
+	void setIsObstacle(int itemId, bool val);
 	bool isVisible(int itemId) const;
 	int findTargetUnderMouse(int mouseX, int mouseY) const;
 
 	BoundingBox *getBoundingBox(int itemId);
 	Common::Rect *getScreenRectangle(int itemId);
+	int getFacing(int itemId) const;
+	void setFacing(int itemId, int facing);
 
 	void spinInWorld(int itemId);
 
diff --git a/engines/bladerunner/script/police_maze.cpp b/engines/bladerunner/script/police_maze.cpp
index 41a33ff..78c8076 100644
--- a/engines/bladerunner/script/police_maze.cpp
+++ b/engines/bladerunner/script/police_maze.cpp
@@ -182,8 +182,6 @@ bool PoliceMazeTargetTrack::tick() {
 		return false;
 	}
 
-#if 0
-
 	uint32 oldTime = _time;
 	_time = _vm->getTotalPlayTime();
 	int32 timeDiff = _time - oldTime;
@@ -248,7 +246,7 @@ bool PoliceMazeTargetTrack::tick() {
 	}
 
 	if (advancePoint) {
-		_vm->_items->setXYZ(_itemId, _points[_pointIndex].x, _points[_pointIndex].y, _points[_pointIndex].z);
+		_vm->_items->setXYZ(_itemId, _points[_pointIndex]);
 		readdObject(_itemId);
 
 		return true;
@@ -284,7 +282,7 @@ bool PoliceMazeTargetTrack::tick() {
 			_dataIndex++;
 
 			if (_vm->_items->isTarget(_itemId)) {
-				Sound_Play(var1, 90, 0, 0, 50, 0);
+				Sound_Play(var1, 90, 0, 0, 50);
 				Police_Maze_Decrement_Score(1);
 				Actor_Force_Stop_Walking(0);
 
@@ -406,7 +404,7 @@ bool PoliceMazeTargetTrack::tick() {
 		case 16:
 			var1 = _data[_dataIndex++];
 			var2 = _data[_dataIndex++];
-			Sound_Play(var1, var2, 0, 0, 50, 0);
+			Sound_Play(var1, var2, 0, 0, 50);
 			break;
 
 		case 17:
@@ -464,7 +462,7 @@ bool PoliceMazeTargetTrack::tick() {
 		case 25:
 			_pointIndex = _data[_dataIndex++];
 			_pmt_var4 = 0;
-			_vm->_items->setXYZ(_itemId, _points[_pointIndex].x, _points[_pointIndex].y, _points[_pointIndex].z);
+			_vm->_items->setXYZ(_itemId, _points[_pointIndex]);
 			readdObject(_itemId);
 			break;
 
@@ -476,7 +474,6 @@ bool PoliceMazeTargetTrack::tick() {
 			cont = false;
 		}
 	}
-#endif
 
 	return true;
 }





More information about the Scummvm-git-logs mailing list