aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/script.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2018-03-23 21:44:37 +0100
committerEugene Sandulenko2018-03-24 02:45:26 +0100
commita284213aa0d54dda9677aac4f1d6946ddd4b3a3b (patch)
tree15d6f3e68694a5f16b2b147eadfc2204209629f1 /engines/bladerunner/script/script.cpp
parentf4a34b58f9b6eefe41f1b1896ddefd9f3bff62c9 (diff)
downloadscummvm-rg350-a284213aa0d54dda9677aac4f1d6946ddd4b3a3b.tar.gz
scummvm-rg350-a284213aa0d54dda9677aac4f1d6946ddd4b3a3b.tar.bz2
scummvm-rg350-a284213aa0d54dda9677aac4f1d6946ddd4b3a3b.zip
BLADERUNNER: Implement PoliceMaze hooks
Diffstat (limited to 'engines/bladerunner/script/script.cpp')
-rw-r--r--engines/bladerunner/script/script.cpp33
1 files changed, 23 insertions, 10 deletions
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index fc595bc3de..f4818b1e0f 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -39,6 +39,7 @@
#include "bladerunner/movement_track.h"
#include "bladerunner/music.h"
#include "bladerunner/overlays.h"
+#include "bladerunner/police_maze.h"
#include "bladerunner/regions.h"
#include "bladerunner/set.h"
#include "bladerunner/settings.h"
@@ -1100,20 +1101,32 @@ void ScriptBase::Combat_Flee_Waypoint_Set_Data(int fleeWaypointId, int type, int
}
void ScriptBase::Police_Maze_Target_Track_Add(int itemId, float startX, float startY, float startZ, float endX, float endY, float endZ, int steps, signed int data[], bool a10) {
- //TODO
- warning("Police_Maze_Target_Track_Add(%d, %f, %f, %f, %f, %f, %f, %d, %p, %d)", itemId, startX, startY, startZ, endX, endY, endZ, steps, (void *)data, a10);
+ _vm->_policeMaze->_tracks[itemId]->add(itemId, startX, startY, startZ, endX, endY, endZ, steps, data, a10);
+ _vm->_policeMaze->activate();
+}
+int ScriptBase::Police_Maze_Query_Score() {
+ return Global_Variable_Query(kVariablePoliceMazeScore);
}
-// ScriptBase::Police_Maze_Query_Score
-// ScriptBase::Police_Maze_Zero_Score
-// ScriptBase::Police_Maze_Increment_Score
-// ScriptBase::Police_Maze_Decrement_Score
-// ScriptBase::Police_Maze_Set_Score
+void ScriptBase::Police_Maze_Zero_Score() {
+ Global_Variable_Reset(kVariablePoliceMazeScore);
+}
-void ScriptBase::Police_Maze_Set_Pause_State(int a1) {
- //TODO
- warning("Police_Maze_Set_Pause_State(%d)", a1);
+void ScriptBase::Police_Maze_Increment_Score(int delta) {
+ Global_Variable_Set(kVariablePoliceMazeScore, Global_Variable_Query(kVariablePoliceMazeScore) + delta);
+}
+
+void ScriptBase::Police_Maze_Decrement_Score(int delta) {
+ Global_Variable_Set(kVariablePoliceMazeScore, Global_Variable_Query(kVariablePoliceMazeScore) - delta);
+}
+
+void ScriptBase::Police_Maze_Set_Score(int value) {
+ Global_Variable_Set(kVariablePoliceMazeScore, value);
+}
+
+void ScriptBase::Police_Maze_Set_Pause_State(bool state) {
+ _vm->_policeMaze->setPauseState(state);
}
void ScriptBase::CDB_Set_Crime(int clueId, int crimeId) {