diff options
author | Eugene Sandulenko | 2018-03-23 21:44:37 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-24 02:45:26 +0100 |
commit | a284213aa0d54dda9677aac4f1d6946ddd4b3a3b (patch) | |
tree | 15d6f3e68694a5f16b2b147eadfc2204209629f1 /engines/bladerunner/script/script.cpp | |
parent | f4a34b58f9b6eefe41f1b1896ddefd9f3bff62c9 (diff) | |
download | scummvm-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.cpp | 33 |
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) { |