aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/script.cpp')
-rw-r--r--engines/bladerunner/script/script.cpp575
1 files changed, 499 insertions, 76 deletions
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index c93c5db4e4..e9f9b602e3 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -33,6 +33,7 @@
#include "bladerunner/combat.h"
#include "bladerunner/gameflags.h"
#include "bladerunner/gameinfo.h"
+#include "bladerunner/movement_track.h"
#include "bladerunner/settings.h"
#include "bladerunner/set_effects.h"
#include "bladerunner/scene.h"
@@ -72,12 +73,57 @@ void Script::SceneLoaded() {
_inScriptCounter--;
}
-bool Script::ClickedOn3DObject(const char *objectName) {
+bool Script::MouseClick(int x, int y) {
+ if (_inScriptCounter > 0)
+ return true;
+
+ _inScriptCounter++;
+ //MouseX = x;
+ //MouseY = y;
+ bool result = _currentScript->MouseClick(x, y);
+ //SelectedEntity = -1;
+ _inScriptCounter--;
+ //MouseX = -1;
+ //MouseY = -1;
+ return result;
+}
+
+bool Script::ClickedOn3DObject(const char *objectName, bool a2) {
+ if (_inScriptCounter > 0)
+ return true;
+
+ _inScriptCounter++;
+ bool result = _currentScript->ClickedOn3DObject(objectName, a2);
+ _inScriptCounter--;
+ return result;
+}
+
+bool Script::ClickedOnActor(int actorId) {
if (_inScriptCounter > 0)
return true;
_inScriptCounter++;
- bool result = _currentScript->ClickedOn3DObject(objectName);
+ bool result = _currentScript->ClickedOnActor(actorId);
+ _inScriptCounter--;
+ return result;
+}
+
+bool Script::ClickedOnItem(int itemId, bool a2) {
+ if (_inScriptCounter > 0)
+ return true;
+
+ _inScriptCounter++;
+ bool result = _currentScript->ClickedOnItem(itemId, a2);
+ _inScriptCounter--;
+ return result;
+}
+
+bool Script::ClickedOnExit(int exitId) {
+ if (_inScriptCounter > 0)
+ return true;
+
+ _inScriptCounter++;
+ bool result = _currentScript->ClickedOnExit(exitId);
_inScriptCounter--;
return result;
}
@@ -98,9 +144,9 @@ void Script::SceneFrameAdvanced(int frame) {
_inScriptCounter--;
}
-void Script::SceneActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
+void Script::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
_inScriptCounter++;
- _currentScript->SceneActorChangedGoal(actorId, newGoal, oldGoal, currentSet);
+ _currentScript->ActorChangedGoal(actorId, newGoal, oldGoal, currentSet);
_inScriptCounter--;
}
@@ -110,6 +156,18 @@ void Script::PlayerWalkedIn() {
_inScriptCounter--;
}
+void Script::PlayerWalkedOut() {
+ _inScriptCounter++;
+ _currentScript->PlayerWalkedOut();
+ _inScriptCounter--;
+}
+
+void Script::DialogueQueueFlushed(int a1) {
+ _inScriptCounter++;
+ _currentScript->DialogueQueueFlushed(a1);
+ _inScriptCounter--;
+}
+
void ScriptBase::Preload(int animationId) {
_vm->_sliceRenderer->preload(animationId);
}
@@ -128,6 +186,7 @@ void ScriptBase::Actor_Set_At_Waypoint(int actorId, int waypointId, int angle) {
bool ScriptBase::Region_Check(int left, int top, int right, int down) {
//TODO: return _vm->_mouse.x >= left && _vm->_mouse.y >= top && _vm->_mouse.x <= right && _vm->_mouse.y <= down;
+ warning("Region_Check(%d, %d, %d, %d)", left, top, right, down);
return false;
}
@@ -171,7 +230,7 @@ void ScriptBase::Actor_Face_Current_Camera(int actorId, bool animate) {
_vm->_actors[actorId]->faceCurrentCamera(animate);
}
-void ScriptBase::Actor_Face_Heading(int actorId, int heading) {
+void ScriptBase::Actor_Face_Heading(int actorId, int heading, bool animate) {
_vm->_actors[actorId]->faceHeading(heading, true);
}
@@ -471,10 +530,19 @@ int ScriptBase::Actor_Query_Animation_Mode(int actorId) {
return _vm->_actors[actorId]->getAnimationMode();
}
-// ScriptBase::Loop_Actor_Walk_To_Actor
-// ScriptBase::Loop_Actor_Walk_To_Item
+bool ScriptBase::Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int a3, int a4, bool running) {
+ //TODO
+ warning("Loop_Actor_Walk_To_Actor(%d, %d, %d, %d, %d)", actorId, otherActorId, a3, a4, running);
+ return false;
+}
+
+bool ScriptBase::Loop_Actor_Walk_To_Item(int actorId, int itemId, int a3, int a4, bool running) {
+ //TODO
+ warning("Loop_Actor_Walk_To_Item(%d, %d, %d, %d, %d)", actorId, itemId, a3, a4, running);
+ return false;
+}
-bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *objectName, int distance, int a4, int a5) {
+bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *objectName, int distance, int a4, bool running) {
_vm->gameWaitForActive();
_vm->_actors[actorId]->loopWalkToSceneObject(objectName);
@@ -482,17 +550,46 @@ bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *object
return false;
}
-// ScriptBase::Loop_Actor_Walk_To_Waypoint
+bool ScriptBase::Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int a3, int a4, bool running) {
+ //TODO
+ warning("Loop_Actor_Walk_To_Waypoint(%d, %d, %d, %d, %d)", actorId, waypointId, a3, a4, running);
+ return false;
+}
+
+bool ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z, int a4, int a5, bool running, int a7) {
+ _vm->gameWaitForActive();
+
+ _vm->_actors[actorId]->loopWalkToXYZ(x, y, z, a4, a5, running, 1);
+
+ return false;
+}
+
+void ScriptBase::Async_Actor_Walk_To_Waypoint(int actorId, int waypointId, int a3, int running) {
+ //TODO
+ warning("Async_Actor_Walk_To_Waypoint(%d, %d, %d, %d)", actorId, a3, running);
+}
-void ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z, int a4, int a5, int a6, int a7) {
- _vm->loopActorWalkToXYZ(actorId, x, y, z, a4, a5, a6, a7);
+void ScriptBase::Async_Actor_Walk_To_XYZ(int actorId, float x, float y, float z, int a5, bool running) {
+ //TODO
+ warning("Async_Actor_Walk_To_XYZ(%d, %f, %f, %f, %d, %d)", actorId, x, y, z, a5, running);
}
-// ScriptBase::Async_Actor_Walk_To_Waypoint
-// ScriptBase::Async_Actor_Walk_To_XYZ
-// ScriptBase::Actor_Force_Stop_Walking
-// ScriptBase::Loop_Actor_Travel_Stairs
-// ScriptBase::Loop_Actor_Travel_Ladder
+void ScriptBase::Actor_Force_Stop_Walking(int actorId) {
+ //TODO
+ warning("Loop_Actor_Travel_Stairs(%d)", actorId);
+}
+
+bool ScriptBase::Loop_Actor_Travel_Stairs(int actorId, int a2, int a3, int a4) {
+ //TODO
+ warning("Loop_Actor_Travel_Stairs(%d, %d, %d, %d)", actorId, a2, a3, a4);
+ return false;
+}
+
+bool ScriptBase::Loop_Actor_Travel_Ladder(int actorId, int a2, int a3, int a4) {
+ //TODO
+ warning("Loop_Actor_Travel_Ladder(%d, %d, %d, %d)", actorId,a2,a3,a4);
+ return false;
+}
void ScriptBase::Actor_Clue_Add_To_Database(int actorId, int clueId, int unknown, bool clueAcquired, bool unknownFlag, int fromActorId) {
_vm->_actors[actorId]->addClueToDatabase(clueId, unknown, clueAcquired, unknownFlag, fromActorId);
@@ -526,12 +623,32 @@ void ScriptBase::Actor_Set_Immunity_To_Obstacles(int actorId, bool isImmune) {
_vm->_actors[actorId]->setImmunityToObstacles(isImmune);
}
-// ScriptBase::Item_Add_To_World
-// ScriptBase::Item_Remove_From_World
-// ScriptBase::Item_Spin_In_World
-// ScriptBase::Item_Flag_As_Target
-// ScriptBase::Item_Flag_As_Non_Target
-// ScriptBase::Item_Pickup_Spin_Effect
+void ScriptBase::Item_Add_To_World(int itemId, int animationId, int sceneIndex, float x, float y, float z, signed int angle, int height, int width, bool isTargetable, bool isObstacle, bool isPoliceMazeEnemy, bool updateOnly) {
+ //TODO
+ warning("Item_Add_To_World(%d, %d, %d, %f, %f, %f, %d, %d, %d, %d, %d, %d, %d)", itemId, animationId, sceneIndex, x, y, z, angle, height, width, isTargetable, isObstacle, isPoliceMazeEnemy, updateOnly);
+}
+
+void ScriptBase::Item_Remove_From_World(int itemId) {
+ //TODO
+ warning("Item_Remove_From_World(%d)", itemId);
+}
+
+void ScriptBase::Item_Spin_In_World(int itemId) {
+ warning("Item_Spin_In_World(%d)", itemId);
+}
+
+void ScriptBase::Item_Flag_As_Target(int itemId) {
+ warning("Item_Flag_As_Target(%d)", itemId);
+}
+
+void ScriptBase::Item_Flag_As_Non_Target(int itemId) {
+ warning("Item_Flag_As_Non_Target(%d)", itemId);
+}
+
+void ScriptBase::Item_Pickup_Spin_Effect(int a1, int a2, int a3) {
+ //TODO
+ warning("Item_Pickup_Spin_Effect(%d, %d, %d)", a1, a2, a3);
+}
int ScriptBase::Animation_Open() {
//This is not implemented in game
@@ -667,21 +784,62 @@ void ScriptBase::Sound_Play(int id, int volume, int panFrom, int panTo, int prio
_vm->_audioPlayer->playAud(name, volume, panFrom, panTo, priority);
}
-// ScriptBase::Sound_Play_Speech_Line
+void ScriptBase::Sound_Play_Speech_Line(int actorId, int speechId, int a3, int a4, int a5) {
+ //TODO
+ warning("Sound_Play_Speech_Line(%d, %d, %d, %d, %d)", actorId, speechId, a3, a4, a5);
+}
// ScriptBase::Sound_Left_Footstep_Walk
// ScriptBase::Sound_Right_Footstep_Walk
// ScriptBase::Sound_Left_Footstep_Run
// ScriptBase::Sound_Right_Footstep_Run
// ScriptBase::Sound_Walk_Shuffle_Stop
-// ScriptBase::Footstep_Sounds_Set
-// ScriptBase::Footstep_Sound_Override_On
-// ScriptBase::Footstep_Sound_Override_Off
-// ScriptBase::Music_Play
-// ScriptBase::Music_Adjust
-// ScriptBase::Music_Stop
-// ScriptBase::Music_Is_Playing
-// ScriptBase::Overlay_Play
-// ScriptBase::Overlay_Remove
+
+void ScriptBase::Footstep_Sounds_Set(int walkboxId, int stepSound) {
+ //TODO
+ warning("Footstep_Sounds_Set(%d, %d)", walkboxId, stepSound);
+}
+
+void ScriptBase::Footstep_Sound_Override_On(int footstepSoundOverride) {
+ //TODO
+ warning("Footstep_Sound_Override_On(%d)", footstepSoundOverride);
+}
+
+void ScriptBase::Footstep_Sound_Override_Off() {
+ //TODO
+ warning("Footstep_Sound_Override_Off()");
+}
+
+bool ScriptBase::Music_Play(int a1, int a2, int a3, int a4, int a5, int a6, int a7) {
+ //TODO
+ warning("Music_Play(%d, %d, %d, %d, %d, %d, %d)", a1, a2, a3, a4, a5, a6, a7);
+ return false;
+}
+
+void ScriptBase::Music_Adjust(int a1, int a2, int a3) {
+ //TODO
+ warning("Music_Adjust(%d, %d, %d)", a1, a2, a3);
+}
+
+void ScriptBase::Music_Stop(int a1) {
+ //TODO
+ warning("Music_Stop(%d)", a1);
+}
+
+bool ScriptBase::Music_Is_Playing() {
+ //TODO
+ warning("Music_Is_Playing()");
+ return false;
+}
+
+void ScriptBase::Overlay_Play(const char *overlay, int a2, int a3, int a4, int a5) {
+ //TODO
+ warning("Overlay_Play(%s, %d, %d, %d, %d)", overlay, a2, a3, a4, a5);
+}
+
+void ScriptBase::Overlay_Remove(const char *overlay) {
+ //TODO
+ warning("Overlay_Remove(%s)", overlay);
+}
void ScriptBase::Scene_Loop_Set_Default(int a) {
// debug("Scene_Loop_Set_Default(%d)", a);
@@ -705,10 +863,24 @@ void ScriptBase::Ambient_Sounds_Add_Sound(int id, int time1, int time2, int volu
_vm->_ambientSounds->addSound(id, time1, time2, volume1, volume2, pan1begin, pan1end, pan2begin, pan2end, priority, unk);
}
-// ScriptBase::Ambient_Sounds_Remove_Sound
-// ScriptBase::Ambient_Sounds_Add_Speech_Sound
+void ScriptBase::Ambient_Sounds_Remove_Sound(int id, bool a2) {
+ //TODO
+ warning("Ambient_Sounds_Remove_Sound(%d, %d)", id, a2);
+}
+
+void ScriptBase::Ambient_Sounds_Add_Speech_Sound(int id, int unk1, int time1, int time2, int volume1, int volume2, int pan1begin, int pan1end, int pan2begin, int pan2end, int priority, int unk2){
+ //TODO
+ warning("Ambient_Sounds_Add_Speech_Sound(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", id, unk1, time1, time2, volume1, volume2, pan1begin, pan1end, pan2begin, pan2end, priority, unk2);
+}
+
// ScriptBase::Ambient_Sounds_Remove_Speech_Sound
-// ScriptBase::Ambient_Sounds_Play_Sound
+
+int ScriptBase::Ambient_Sounds_Play_Sound(int a1, int a2, int a3, int a4, int a5) {
+ //TODO
+ warning("Ambient_Sounds_Remove_Sound(%d, %d, %d, %d, %d)", a1, a2, a3, a4, a5);
+ return -1;
+}
+
// ScriptBase::Ambient_Sounds_Play_Speech_Sound
void ScriptBase::Ambient_Sounds_Remove_All_Non_Looping_Sounds(int time) {
@@ -719,8 +891,15 @@ void ScriptBase::Ambient_Sounds_Add_Looping_Sound(int id, int volume, int pan, i
_vm->_ambientSounds->addLoopingSound(id, volume, pan, fadeInTime);
}
-// ScriptBase::Ambient_Sounds_Adjust_Looping_Sound
-// ScriptBase::Ambient_Sounds_Remove_Looping_Sound
+void ScriptBase::Ambient_Sounds_Adjust_Looping_Sound(int id, int panBegin, int panEnd, int a4) {
+ //TODO
+ warning("Ambient_Sounds_Adjust_Looping_Sound(%d, %d, %d, %d)", id, panBegin, panEnd, a4);
+}
+
+void ScriptBase::Ambient_Sounds_Remove_Looping_Sound(int id, bool a2){
+ //TODO
+ warning("Ambient_Sounds_Remove_Looping_Sound(%d, %d)", id, a2);
+}
void ScriptBase::Ambient_Sounds_Remove_All_Looping_Sounds(int time) {
// _vm->_ambientSounds->removeAllLoopingSounds(time);
@@ -730,17 +909,66 @@ void ScriptBase::Setup_Scene_Information(float actorX, float actorY, float actor
_vm->_scene->setActorStart(Vector3(actorX, actorY, actorZ), actorFacing);
}
-// ScriptBase::Dialogue_Menu_Appear
-// ScriptBase::Dialogue_Menu_Disappear
-// ScriptBase::Dialogue_Menu_Clear_List
-// ScriptBase::Dialogue_Menu_Add_To_List
-// ScriptBase::Dialogue_Menu_Add_DONE_To_List
-// ScriptBase::Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected
-// ScriptBase::DM_Add_To_List
-// ScriptBase::DM_Add_To_List_Never_Repeat_Once_Selected
-// ScriptBase::Dialogue_Menu_Remove_From_List
-// ScriptBase::Dialogue_Menu_Query_Input
-// ScriptBase::Dialogue_Menu_Query_List_Size
+bool ScriptBase::Dialogue_Menu_Appear(int x, int y) {
+ //TODO
+ warning("Dialogue_Menu_Appear(%d, %d)", x, y);
+ return false;
+}
+
+bool ScriptBase::Dialogue_Menu_Disappear() {
+ //TODO
+ warning("Dialogue_Menu_Disappear()");
+ return false;
+}
+
+bool ScriptBase::Dialogue_Menu_Clear_List() {
+ //TODO
+ warning("Dialogue_Menu_Clear_List()");
+ return false;
+}
+
+bool ScriptBase::Dialogue_Menu_Add_To_List(int answer) {
+ //TODO
+ warning("Dialogue_Menu_Add_To_List(%d)", answer);
+ return false;
+}
+
+bool ScriptBase::Dialogue_Menu_Add_DONE_To_List(int answerValue) {
+ //TODO
+ warning("Dialogue_Menu_Add_DONE_To_List(%d)", answerValue);
+ return false;
+}
+
+// Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected
+
+bool ScriptBase::DM_Add_To_List(int answer, int a2, int a3, int a4) {
+ //TODO
+ warning("DM_Add_To_List(%d, %d, %d, %d)", answer, a2, a3, a4);
+ return false;
+}
+
+bool ScriptBase::DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int a2, int a3, int a4) {
+ //TODO
+ warning("DM_Add_To_List_Never_Repeat_Once_Selected(%d, %d, %d, %d)", answer, a2, a3, a4);
+ return false;
+}
+
+void ScriptBase::Dialogue_Menu_Remove_From_List(int answer) {
+ //TODO
+ warning("Dialogue_Menu_Remove_From_List(%d)", answer);
+}
+
+int ScriptBase::Dialogue_Menu_Query_Input() {
+ //TODO
+ warning("Dialogue_Menu_Query_Input()");
+ return 0;
+}
+
+int ScriptBase::Dialogue_Menu_Query_List_Size() {
+ //TODO
+ warning("Dialogue_Menu_Query_List_Size()");
+ return 0;
+}
void ScriptBase::Scene_Exit_Add_2D_Exit(int index, int left, int top, int right, int down, int type) {
_vm->_scene->_exits->add(index, Common::Rect(left, top, right, down), type);
@@ -765,39 +993,154 @@ void ScriptBase::Scene_2D_Region_Remove(int index) {
_vm->_scene->_regions->remove(index);
}
-// ScriptBase::World_Waypoint_Set
+void ScriptBase::World_Waypoint_Set(int waypointId, int sceneId, float x, float y, float z) {
+ //TODO
+ warning("World_Waypoint_Set(%d, %d, %f, %f, %f)", waypointId, sceneId, x, y, z);
+}
// ScriptBase::World_Waypoint_Reset
-// ScriptBase::World_Waypoint_Query_X
-// ScriptBase::World_Waypoint_Query_Y
-// ScriptBase::World_Waypoint_Query_Z
-// ScriptBase::Combat_Cover_Waypoint_Set_Data
-// ScriptBase::Combat_Flee_Waypoint_Set_Data
-// ScriptBase::Police_Maze_Target_Track_Add
+
+float ScriptBase::World_Waypoint_Query_X(int waypointId) {
+ //TODO
+ warning("World_Waypoint_Query_X(%d)", waypointId);
+ return 0.0f;
+}
+
+float ScriptBase::World_Waypoint_Query_Y(int waypointId) {
+ //TODO
+ warning("World_Waypoint_Query_Y(%d)", waypointId);
+ return 0.0f;
+}
+
+float ScriptBase::World_Waypoint_Query_Z(int waypointId) {
+ //TODO
+ warning("World_Waypoint_Query_Z(%d)", waypointId);
+ return 0.0f;
+}
+
+void ScriptBase::Combat_Cover_Waypoint_Set_Data(int combatCoverId, int a2, int sceneId, int a4, float x, float y, float z) {
+ //TODO
+ warning("Combat_Cover_Waypoint_Set_Data(%d, %d, %d, %d, %f, %f, %f)", combatCoverId, a2, sceneId, a4, x, y, z);
+}
+
+void ScriptBase::Combat_Flee_Waypoint_Set_Data(int combatFleeWaypointId, int a2, int sceneId, int a4, float x, float y, float z, int a8) {
+ //TODO
+ warning("Combat_Cover_Waypoint_Set_Data(%d, %d, %d, %d, %f, %f, %f, %d)", combatFleeWaypointId, a2, sceneId, a4, x, y, z, a8);
+}
+
+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, %x, %d)", itemId, startX, startY, startZ, endX, endY, endZ, steps, data, a10);
+
+}
+
// 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
-// ScriptBase::Police_Maze_Set_Pause_State
-// ScriptBase::CDB_Set_Crime
-// ScriptBase::CDB_Set_Clue_Asset_Type
-// ScriptBase::SDB_Set_Actor
-// ScriptBase::SDB_Add_Photo_Clue
-// ScriptBase::SDB_Set_Name
-// ScriptBase::SDB_Set_Sex
-// ScriptBase::SDB_Add_Identity_Clue
-// ScriptBase::SDB_Add_MO_Clue
-// ScriptBase::SDB_Add_Whereabouts_Clue
-// ScriptBase::SDB_Add_Replicant_Clue
-// ScriptBase::SDB_Add_Non_Replicant_Clue
-// ScriptBase::SDB_Add_Other_Clue
+
+void ScriptBase::Police_Maze_Set_Pause_State(int a1) {
+ //TODO
+ warning("Police_Maze_Set_Pause_State(%d)", a1);
+}
+
+void ScriptBase::CDB_Set_Crime(int crimeId, int value) {
+ //TODO
+ warning("CDB_Set_Crime(%d, %d)", crimeId, value);
+}
+
+void ScriptBase::CDB_Set_Clue_Asset_Type(int assetId, int type) {
+ //TODO
+ warning("CDB_Set_Clue_Asset_Type(%d, %d)", assetId, type);
+}
+
+void ScriptBase::SDB_Set_Actor(int actorId, int a2) {
+ //TODO
+ warning("SDB_Set_Actor(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Photo_Clue(int actorId, int a2, int a3) {
+ //TODO
+ warning("SDB_Add_Photo_Clue(%d, %d, %d)", actorId, a2, a3);
+}
+
+void ScriptBase::SDB_Set_Name(int actorId) {
+ // not implemented in game
+}
+
+void ScriptBase::SDB_Set_Sex(int actorId, int a2) {
+ //TODO
+ warning("SDB_Set_Sex(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Identity_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_Identity_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_MO_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_MO_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Whereabouts_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_Whereabouts_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Replicant_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_Replicant_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Non_Replicant_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_Non_Replicant_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::SDB_Add_Other_Clue(int actorId, int a2) {
+ //TODO
+ warning("SDB_Add_Other_Clue(%d, %d)", actorId, a2);
+}
+
+void ScriptBase::Spinner_Set_Selectable_Destination_Flag(int a1, int a2) {
+ //TODO
+ warning("Spinner_Set_Selectable_Destination_Flag(%d, %d)", a1, a2);
+}
+
+// ScriptBase::Spinner_Query_Selectable_Destination_Flag
+
+int ScriptBase::Spinner_Interface_Choose_Dest(int a1, int a2) {
+ //TODO
+ warning("Spinner_Interface_Choose_Dest(%d, %d)", a1, a2);
+ return -1;
+}
+
// ScriptBase::Spinner_Set_Selectable_Destination_Flag
// ScriptBase::Spinner_Query_Selectable_Destination_Flag
// ScriptBase::Spinner_Interface_Choose_Dest
-// ScriptBase::ESPER_Flag_To_Activate
-// ScriptBase::Voight_Kampff_Activate
-// ScriptBase::Elevator_Activate
-// ScriptBase::View_Score_Board
+
+void ScriptBase::ESPER_Flag_To_Activate() {
+ //TODO
+ warning("ESPER_Flag_To_Activate()");
+}
+
+bool ScriptBase::Voight_Kampff_Activate(int a1, int a2){
+ //TODO
+ warning("Voight_Kampff_Activate(%d, %d)", a1, a2);
+ return false;
+}
+
+int ScriptBase::Elevator_Activate(int elevator) {
+ //TODO
+ warning("Elevator_Activate(%d)", elevator);
+ return 0;
+}
+
+void ScriptBase::View_Score_Board() {
+ //TODO
+ warning("View_Score_Board()");
+}
// ScriptBase::Query_Score
void ScriptBase::Set_Score(int a0, int a1) {
@@ -820,7 +1163,7 @@ void ScriptBase::Assign_Player_Gun_Miss_Sounds(int row, int soundId1, int soundI
_vm->_combat->setMissSoundId(row, 2, soundId3);
}
-void ScriptBase::Disable_Shadows(int *animationsIdsList, int listSize) {
+void ScriptBase::Disable_Shadows(int animationsIdsList[], int listSize) {
_vm->_sliceRenderer->disableShadows(animationsIdsList, listSize);
}
@@ -899,9 +1242,20 @@ void ScriptBase::Set_Fog_Density(char* fogName, float density) {
_vm->_scene->_set->_effects->setFogDensity(fogName, density);
}
-// ScriptBase::ADQ_Flush
-// ScriptBase::ADQ_Add
-// ScriptBase::ADQ_Add_Pause
+void ScriptBase::ADQ_Flush() {
+ //TODO
+ warning("ADQ_Flush()");
+}
+
+void ScriptBase::ADQ_Add(int a1, int a2, int a3) {
+ //TODO
+ warning("ADQ_Add(%d, %d, %d)", a1, a2, a3);
+}
+
+void ScriptBase::ADQ_Add_Pause(int delay) {
+ //TODO
+ warning("ADQ_Add_Pause(%d)", delay);
+}
bool ScriptBase::Game_Over() {
_vm->_gameIsRunning = false;
@@ -917,6 +1271,75 @@ void ScriptBase::I_Sez(const char *str) {
_vm->ISez(str);
}
+void ScriptBase::AI_Countdown_Timer_Start(int actorId, signed int timer, int seconds) {
+// if (timer >= 0 && timer <= 2)
+// _vm->_actors[actorId]->timerSet(timer, 1000 * seconds);
+}
+
+void ScriptBase::AI_Countdown_Timer_Reset(int actorId, int timer) {
+// if (timer >= 0 && timer <= 2)
+// _vm->_actors[actorId]->timerReset(timer);
+}
+
+void ScriptBase::AI_Movement_Track_Unpause(int actorId) {
+ //_vm->_actors[actorId]->movementTrackUnpause();
+}
+
+void ScriptBase::AI_Movement_Track_Pause(int actorId) {
+ //_vm->_actors[actorId]->movementTrackPause();
+}
+
+void ScriptBase::AI_Movement_Track_Repeat(int actorId) {
+ _vm->_actors[actorId]->_movementTrack->repeat();
+ //_vm->_actors[actorId]->movementTrackRepeat(1);
+}
+
+void ScriptBase::AI_Movement_Track_Append_Run_With_Facing(int actorId, int waypointId, int delay, int angle) {
+ _vm->_actors[actorId]->_movementTrack->append(waypointId, delay, angle, 1);
+}
+
+void ScriptBase::AI_Movement_Track_Append_With_Facing(int actorId, int waypointId, int delay, int angle) {
+ _vm->_actors[actorId]->_movementTrack->append(waypointId, delay, angle, 0);
+}
+
+void ScriptBase::AI_Movement_Track_Append_Run(int actorId, int waypointId, int delay) {
+ _vm->_actors[actorId]->_movementTrack->append(waypointId, delay, 1);
+}
+
+void ScriptBase::AI_Movement_Track_Append(int actorId, int waypointId, int delay) {
+ _vm->_actors[actorId]->_movementTrack->append(waypointId, delay, 0);
+}
+
+void ScriptBase::AI_Movement_Track_Flush(int actorId) {
+ _vm->_actors[actorId]->_movementTrack->flush();
+ _vm->_actors[actorId]->stopWalking(false);
+}
+
+void ScriptBase::KIA_Play_Actor_Dialogue(int a1, int a2) {
+ //TODO
+ warning("KIA_Play_Actor_Dialogue(%d, %d)", a1, a2);
+}
+
+void ScriptBase::KIA_Play_Slice_Model(int a1) {
+ //TODO
+ warning("KIA_Play_Slice_Model(%d)", a1);
+}
+
+void ScriptBase::KIA_Play_Photograph(int a1) {
+ //TODO
+ warning("KIA_Play_Photograph(%d)", a1);
+}
+
+void ScriptBase::ESPER_Add_Photo(const char* fileName, int a2, int a3) {
+ //TODO
+ warning("ESPER_Add_Photo(%s, %d, %d)", fileName, a2, a3);
+}
+
+void ScriptBase::ESPER_Define_Special_Region(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, const char *name) {
+ //TODO
+ warning("ESPER_Define_Special_Region(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %s)", a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, name);
+}
+
AIScripts::AIScripts(BladeRunnerEngine *vm)
: _vm(vm),
_inScriptCounter(0)