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

sev- sev at scummvm.org
Thu Mar 15 23:45:19 CET 2018


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

Summary:
c65a6930cb BLADERUNNER: Added mssing method for Lucy
a656480092 BLADERUNNER: Added Izo actor (incomplete)


Commit: c65a6930cbfaa19a4f6e20e1b1aa03e70f497a97
    https://github.com/scummvm/scummvm/commit/c65a6930cbfaa19a4f6e20e1b1aa03e70f497a97
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-15T22:45:00+01:00

Commit Message:
BLADERUNNER: Added mssing method for Lucy

Changed paths:
    engines/bladerunner/script/ai/lucy.cpp


diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index 4b9cc7b..aebeac7 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -785,7 +785,13 @@ bool AIScriptLucy::ReachedMovementTrackWaypoint(int waypointId) {
 }
 
 void AIScriptLucy::FledCombat() {
-	// return false;
+	if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorLucy) == 450) {
+		Actor_Put_In_Set(kActorLucy, kSetFreeSlotG);
+		Actor_Set_At_Waypoint(kActorLucy, 39, 0);
+		Actor_Set_Goal_Number(kActorLucy, 599);
+	}
+
+	return; //true;
 }
 
 void AIScriptLucy::voightKempTest() {


Commit: a656480092f515c269f2eed993379fb58039f37c
    https://github.com/scummvm/scummvm/commit/a656480092f515c269f2eed993379fb58039f37c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-15T23:44:53+01:00

Commit Message:
BLADERUNNER: Added Izo actor (incomplete)

Changed paths:
  A engines/bladerunner/script/ai/izo.cpp
    engines/bladerunner/module.mk
    engines/bladerunner/script/ai_script.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/script.cpp
    engines/bladerunner/script/script.h


diff --git a/engines/bladerunner/module.mk b/engines/bladerunner/module.mk
index 3dfdd81..00df334 100644
--- a/engines/bladerunner/module.mk
+++ b/engines/bladerunner/module.mk
@@ -78,6 +78,7 @@ MODULE_OBJS = \
 	script/ai/hysteria_patron3.o \
 	script/ai/insect_dealer.o \
 	script/ai/isabella.o \
+	script/ai/izo.o \
 	script/ai/klein.o \
 	script/ai/lance.o \
 	script/ai/leon.o \
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
new file mode 100644
index 0000000..5282ce6
--- /dev/null
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -0,0 +1,576 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "bladerunner/script/ai_script.h"
+
+namespace BladeRunner {
+
+AIScriptIzo::AIScriptIzo(BladeRunnerEngine *vm) : AIScriptBase(vm) {
+	_flag = 0;
+	_var1 = 6;
+	_var2 = 1;
+	_var3 = 0;
+	_var4 = 0;
+}
+
+void AIScriptIzo::Initialize() {
+	_animationFrame = 0;
+	_animationState = 0;
+	_animationStateNext = 0;
+	_animationNext = 0;
+
+	_flag = 0;
+	_var1 = 6;
+	_var2 = 1;
+	_var3 = 0;
+	_var4 = 0;
+
+	Actor_Set_Goal_Number(kActorIzo, 0);
+	Actor_Put_In_Set(kActorIzo, kSetHC01_HC02_HC03_HC04);
+	Actor_Set_At_XYZ(kActorIzo, 591.0f, 0.14f, 25.0f, 540);
+	World_Waypoint_Set(349, 70, -14.7f, -4.01f, 224.5f);
+}
+
+bool AIScriptIzo::Update() {
+	if (Actor_Query_Goal_Number(kActorIzo) == 100 && Player_Query_Current_Scene() == kSceneUG02) {
+		Actor_Set_Targetable(kActorIzo, 1);
+		Actor_Set_Goal_Number(kActorIzo, 101);
+		return true;
+	}
+
+	if (Global_Variable_Query(kVariableChapter) == 3
+			&& Actor_Query_Goal_Number(kActorIzo) == 599
+			&& Actor_Query_Which_Set_In(kActorIzo) == 70) {
+		Actor_Put_In_Set(kActorIzo, kSetFreeSlotI);
+		Actor_Set_At_Waypoint(kActorIzo, 41, 0);
+	}
+	if (!Actor_Query_Goal_Number(kActorIzo) && Player_Query_Current_Scene() == kSceneTB02) {
+		Actor_Set_Goal_Number(kActorIzo, 155);
+	}
+	if (Global_Variable_Query(kVariableChapter) == 4
+			&& Actor_Query_Goal_Number(kActorIzo) < 599
+			&& Actor_Query_Goal_Number(kActorIzo) < 300
+			&& Actor_Query_Goal_Number(kActorIzo) != 180) {
+		Actor_Set_Goal_Number(kActorIzo, 300);
+	}
+	if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorIzo) < 400) {
+		Actor_Set_Goal_Number(kActorIzo, 400);
+	}
+
+	return false;
+}
+
+void AIScriptIzo::TimerExpired(int timer) {
+	//return false;
+}
+
+void AIScriptIzo::CompletedMovementTrack() {
+	switch (Actor_Query_Goal_Number(kActorIzo)) {
+	case 3:
+		Actor_Set_Goal_Number(kActorIzo, 101);
+		Player_Gains_Control();
+		return; //true;
+
+	case 101:
+		Actor_Set_Goal_Number(kActorIzo, 102);
+		return; //true;
+
+	case 110:
+	case 111:
+		Actor_Set_Goal_Number(kActorIzo, 114);
+		Actor_Set_Goal_Number(kActorSteele, 100);
+		Scene_Exits_Enable();
+		return; //true;
+
+	case 114:
+		Scene_Exits_Enable();
+		return; //true;
+
+	case 120:
+		Game_Flag_Set(164);
+		Actor_Set_Goal_Number(kActorIzo, 180);
+		Scene_Exits_Enable();
+		return; //true;
+
+	case 150:
+		Actor_Set_Goal_Number(kActorIzo, 155);
+		return; //true;
+
+	case 155:
+		Actor_Set_Goal_Number(kActorIzo, 150);
+		return; //true;
+
+	case 300:
+		Actor_Set_Goal_Number(kActorIzo, 301);
+		return; //true;
+
+	case 301:
+		Actor_Set_Goal_Number(kActorIzo, 300);
+		return; //true;
+	}
+
+	return; //false;
+}
+
+void AIScriptIzo::ReceivedClue(int clueId, int fromActorId) {
+	//return false;
+}
+
+void AIScriptIzo::ClickedByPlayer() {
+	if (Actor_Query_Goal_Number(kActorIzo) > 500) {
+		Actor_Face_Actor(kActorMcCoy, kActorIzo, 1);
+		Actor_Says(kActorMcCoy, 8585, 13);
+		return; //true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorIzo) == 101 && Player_Query_Current_Set() == 75) {
+		Player_Loses_Control();
+		Actor_Set_Goal_Number(kActorIzo, 100);
+		Actor_Face_Actor(kActorMcCoy, kActorIzo, 1);
+		Actor_Says(kActorMcCoy, 5460, 16);
+		Actor_Face_Actor(kActorIzo, kActorMcCoy, 1);
+		Actor_Says(kActorIzo, 700, 17);
+		Actor_Says(kActorMcCoy, 5465, 14);
+		someDialog();
+	}
+
+	if (Actor_Query_Goal_Number(kActorIzo) == 110) {
+		Actor_Face_Actor(kActorMcCoy, kActorIzo, 1);
+		Actor_Says(kActorMcCoy, 2715, 14);
+		Actor_Set_Goal_Number(kActorIzo, 111);
+		Actor_Says(kActorMcCoy, 1800, 14);
+		Actor_Set_Goal_Number(kActorSteele, 100);
+		return; //true;
+	}
+
+	return; //false;
+}
+
+void AIScriptIzo::EnteredScene(int sceneId) {
+	// return false;
+}
+
+void AIScriptIzo::OtherAgentEnteredThisScene(int otherActorId) {
+	// return false;
+}
+
+void AIScriptIzo::OtherAgentExitedThisScene(int otherActorId) {
+	// return false;
+}
+
+void AIScriptIzo::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
+	if (Actor_Query_Goal_Number(kActorIzo) == 110) {
+		Game_Flag_Query(44);
+	}
+	return; //false;
+}
+
+void AIScriptIzo::ShotAtAndMissed() {
+	if (Actor_Query_Goal_Number(kActorIzo) != 110) {
+		return; //false;
+	}
+
+	Actor_Set_Goal_Number(kActorIzo, 111);
+
+	return; //true;
+}
+
+bool AIScriptIzo::ShotAtAndHit() {
+	if (Actor_Query_Goal_Number(kActorIzo) == 110
+			|| Actor_Query_Goal_Number(kActorIzo) == 111
+			|| Actor_Query_Goal_Number(kActorIzo) == 114) {
+		Actor_Set_Health(kActorIzo, 50, 50);
+
+		if (Actor_Query_Goal_Number(kActorIzo) == 110) {
+			Actor_Set_Goal_Number(kActorIzo, 111);
+		}
+		return true;
+	} else {
+		AI_Movement_Track_Flush(kActorIzo);
+		Global_Variable_Increment(19, 1);
+		if (!Game_Flag_Query(444) && Global_Variable_Query(19) == 1) {
+			Game_Flag_Set(444);
+			_animationFrame = 0;
+			_animationState = 19;
+			Actor_Retired_Here(kActorIzo, 36, 12, 1, -1);
+			Actor_Set_Goal_Number(kActorIzo, 199);
+		}
+		return false;
+	}
+}
+
+void AIScriptIzo::Retired(int byActorId) {
+	if (!Actor_Query_In_Set(kActorIzo, kSetKP07)) {
+		return; //false;
+	}
+
+	Global_Variable_Decrement(51, 1);
+	Actor_Set_Goal_Number(kActorIzo, 599);
+
+	if (Global_Variable_Query(51)) {
+		return; //false;
+	}
+
+	Player_Loses_Control();
+	Delay(2000);
+	Player_Set_Combat_Mode(0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, 1, 0, 0);
+	Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+	Ambient_Sounds_Remove_All_Looping_Sounds(1);
+	Game_Flag_Set(579);
+	Game_Flag_Reset(653);
+	Set_Enter(kSetKP05_KP06, kSetKP03);
+
+	return; //true;
+}
+
+int AIScriptIzo::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
+	return 0;
+}
+
+bool AIScriptIzo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
+	if (newGoalNumber == 200
+		|| newGoalNumber == 199
+		|| newGoalNumber == 198
+		|| newGoalNumber == 180
+		|| newGoalNumber == 103) {
+			Spinner_Set_Selectable_Destination_Flag(6, 1);
+		}
+
+	switch (newGoalNumber) {
+	case 0:
+		AI_Movement_Track_Flush(kActorIzo);
+		return true;
+
+	case 1:
+		AI_Movement_Track_Flush(kActorIzo);
+		Actor_Face_Heading(kActorIzo, 520, 0);
+		_animationState = 32;
+		_animationFrame = -1;
+		return true;
+
+	case 2:
+		_animationState = 34;
+		_animationFrame = -1;
+		return true;
+
+	case 3:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append_Run(kActorIzo, 149, 0);
+		AI_Movement_Track_Append_Run(kActorIzo, 152, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		Scene_Exit_Add_2D_Exit(1, 394, 229, 485, 371, 1);
+		Game_Flag_Set(402);
+		return true;
+
+	case 100:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 101:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append_Run(kActorIzo, 153, 0);
+		AI_Movement_Track_Append(kActorIzo, 154, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 102:
+		return true;
+
+	case 103:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 153, 0);
+		AI_Movement_Track_Append(kActorIzo, 39, 120);
+		AI_Movement_Track_Append(kActorIzo, 33, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return 1;
+
+	case 110:
+		Game_Flag_Set(486);
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 349, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 111:
+		Game_Flag_Set(486);
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append_Run(kActorIzo, 349, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 114:
+		Game_Flag_Set(486);
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append_Run(kActorIzo, 174, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 115:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 39, 60);
+		if (Game_Flag_Query(44)) {
+			AI_Movement_Track_Append(kActorIzo, 33, 0);
+		} else {
+			AI_Movement_Track_Append(kActorIzo, 34, 0);
+		}
+		AI_Movement_Track_Repeat(kActorIzo);
+		Game_Flag_Set(486);
+		return true;
+
+	case 120:
+		Actor_Set_Targetable(kActorIzo, 0);
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 174, 0);
+		AI_Movement_Track_Append(kActorIzo, 33, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 150:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 39, Random_Query(15, 30));
+		AI_Movement_Track_Append(kActorIzo, 149, 0);
+		AI_Movement_Track_Append(kActorIzo, 323, Random_Query(90, 120));
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 155:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 149, 0);
+		if (Game_Flag_Query(44)) {
+			AI_Movement_Track_Append(kActorIzo, 39, 5);
+			AI_Movement_Track_Append(kActorIzo, 34, Random_Query(10, 20));
+			AI_Movement_Track_Append(kActorIzo, 39, 5);
+			AI_Movement_Track_Append(kActorIzo, 33, Random_Query(10, 20));
+		} else {
+			AI_Movement_Track_Append(kActorIzo, 39, Random_Query(5, 15));
+			AI_Movement_Track_Append(kActorIzo, 34, Random_Query(20, 40));
+		}
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 160:
+		AI_Movement_Track_Flush(kActorIzo);
+		return true;
+
+	case 180:
+		Game_Flag_Set(486);
+		Actor_Put_In_Set(kActorIzo, kSetFreeSlotA);
+		Actor_Set_At_Waypoint(kActorIzo, 33, 0);
+		return true;
+
+	case 198:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 41, 0);
+		AI_Movement_Track_Repeat(kActorIzo);
+		Actor_Set_Goal_Number(kActorIzo, 999);
+		return true;
+
+	case 199:
+		Game_Flag_Set(486);
+		AI_Movement_Track_Flush(kActorIzo);
+		Ambient_Sounds_Play_Speech_Sound(kActorIzo, 9000, 100, 0, 0, 0);
+		Actor_Change_Animation_Mode(kActorIzo, 48);
+		Actor_Set_Goal_Number(kActorIzo, 999);
+		Scene_Exits_Enable();
+		Actor_Retired_Here(kActorIzo, 36, 12, 1, -1);
+		return true;
+
+	case 200:
+		Game_Flag_Set(486);
+		return true;
+
+	case 300:
+		AI_Movement_Track_Flush(kActorIzo);
+		modifyWaypoints();
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 301:
+		AI_Movement_Track_Flush(kActorIzo);
+		AI_Movement_Track_Append(kActorIzo, 34, 1);
+		AI_Movement_Track_Repeat(kActorIzo);
+		return true;
+
+	case 400:
+		AI_Movement_Track_Flush(kActorIzo);
+		Actor_Put_In_Set(kActorIzo, kSetFreeSlotA);
+		Actor_Set_At_Waypoint(kActorIzo, 33, 0);
+		return true;
+
+	case 999:
+		Actor_Set_Goal_Number(kActorIzo, 599);
+		return true;
+
+	case 9999:
+		return true;
+
+	}
+
+	return false;
+}
+
+bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
+	return true;
+}
+
+bool AIScriptIzo::ChangeAnimationMode(int mode) {
+	return true;
+}
+
+void AIScriptIzo::QueryAnimationState(int *animationState, int *animationFrame, int *animationStateNext, int *animationNext) {
+	*animationState     = _animationState;
+	*animationFrame     = _animationFrame;
+	*animationStateNext = _animationStateNext;
+	*animationNext      = _animationNext;
+}
+
+void AIScriptIzo::SetAnimationState(int animationState, int animationFrame, int animationStateNext, int animationNext) {
+	_animationState     = animationState;
+	_animationFrame     = animationFrame;
+	_animationStateNext = animationStateNext;
+	_animationNext      = animationNext;
+}
+
+bool AIScriptIzo::ReachedMovementTrackWaypoint(int waypointId) {
+	return true;
+}
+
+void AIScriptIzo::FledCombat() {
+	// return false;
+}
+
+void AIScriptIzo::someDialog() {
+	int input;
+
+	Dialogue_Menu_Clear_List();
+	DM_Add_To_List_Never_Repeat_Once_Selected(0, 7, 4, -1);
+
+	if (Actor_Clue_Query(0, 179)) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(10, 8, -1, -1);
+	}
+
+	DM_Add_To_List_Never_Repeat_Once_Selected(20, 3, 7, 4);
+	DM_Add_To_List_Never_Repeat_Once_Selected(30, -1, 3, 7);
+	Dialogue_Menu_Appear(320, 240);
+
+	input = Dialogue_Menu_Query_Input();
+
+	Dialogue_Menu_Disappear();
+
+	switch (input) {
+	case 0:
+		Actor_Says(kActorMcCoy, 5470, 15);
+		Actor_Says(kActorMcCoy, 710, 13);
+		Actor_Set_Goal_Number(kActorIzo, 103);
+		Player_Gains_Control();
+		break;
+
+	case 10:
+		if (Game_Flag_Query(44) == 1) {
+			Actor_Says(kActorMcCoy, 5475, 18);
+			Actor_Says(kActorIzo, 720, 12);
+			Actor_Says(kActorMcCoy, 5485, 13);
+			Actor_Says(kActorIzo, 740, 14);
+			Actor_Says(kActorMcCoy, 5495, 12);
+			Actor_Says(kActorIzo, 750, 15);
+			Actor_Says(kActorIzo, 760, 17);
+			Actor_Says(kActorMcCoy, 5500, 12);
+			Actor_Says(kActorIzo, 770, 15);
+			Actor_Says(kActorIzo, 780, 15);
+			Actor_Says(kActorMcCoy, 5505, 12);
+			Actor_Says(kActorIzo, 790, 15);
+		} else {
+			Actor_Says(kActorMcCoy, 5510, 15);
+			Actor_Says(kActorIzo, 820, 13);
+			Actor_Says(kActorMcCoy, 5520, 13);
+			Actor_Says(kActorIzo, 830, 13);
+			Actor_Says(kActorIzo, 840, 13);
+		}
+		Actor_Set_Goal_Number(kActorIzo, 103);
+		Player_Gains_Control();
+		break;
+
+	case 20:
+		Actor_Says(kActorMcCoy, 5480, 18);
+		Actor_Set_Goal_Number(kActorIzo, 103);
+		Player_Gains_Control();
+		break;
+
+	case 30:
+		Player_Set_Combat_Mode(kActorSteele);
+		Actor_Set_Goal_Number(kActorIzo, 103);
+		Player_Gains_Control();
+		break;
+	}
+}
+
+void AIScriptIzo::modifyWaypoints() {
+	switch (Random_Query(1, 10) - 1) {
+	case 0:
+		World_Waypoint_Set(484, 54, -212.58f, 23.38f, -1859.45f);
+		World_Waypoint_Set(485, 54, 355.49f, 31.66f, -859.81f);
+		World_Waypoint_Set(486, 11, -323.89f, -24.0f, 35.58f);
+		World_Waypoint_Set(487, 11, -211.89f, -24.0f, 35.58f);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		AI_Movement_Track_Append(kActorIzo, 485, 10);
+		AI_Movement_Track_Append(kActorIzo, 486, 1);
+		AI_Movement_Track_Append(kActorIzo, 487, 15);
+		AI_Movement_Track_Append(kActorIzo, 486, 1);
+		AI_Movement_Track_Append(kActorIzo, 485, 1);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		break;
+
+	case 1:
+		World_Waypoint_Set(484, 13, -1335.0f, 0.0f, -542.0f);
+		World_Waypoint_Set(485, 13, -1027.0f, 0.0f, -542.0f);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		AI_Movement_Track_Append(kActorIzo, 485, 20);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		break;
+
+	case 2:
+		World_Waypoint_Set(484, 37, -352.16f, 8.0f, -379.24f);
+		World_Waypoint_Set(485, 37, 108.2f, 8.0f, -934.80f);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		AI_Movement_Track_Append(kActorIzo, 485, 1);
+		break;
+
+	case 3:
+		World_Waypoint_Set(484, 39, 589.59f, 47.76f, -1153.76f);
+		World_Waypoint_Set(485, 39, 481.59f, 47.76f, -429.76f);
+		World_Waypoint_Set(486, 38, 524.0f, 47.76f, -562.0f);
+		World_Waypoint_Set(487, 38, -10.0f, 47.76f, -327.0f);
+		AI_Movement_Track_Append(kActorIzo, 484, 1);
+		AI_Movement_Track_Append(kActorIzo, 485, 1);
+		AI_Movement_Track_Append(kActorIzo, 486, 1);
+		AI_Movement_Track_Append(kActorIzo, 487, 1);
+		break;
+
+	default:
+		AI_Movement_Track_Append(kActorIzo, 34, 60);
+		break;
+	}
+}
+
+} // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/ai_script.cpp b/engines/bladerunner/script/ai_script.cpp
index e5eb779..06f4685 100644
--- a/engines/bladerunner/script/ai_script.cpp
+++ b/engines/bladerunner/script/ai_script.cpp
@@ -46,6 +46,7 @@ AIScripts::AIScripts(BladeRunnerEngine *vm, int actorCount) {
 	_AIScripts[kActorGuzza] = new AIScriptGuzza(_vm);                     //  4
 	_AIScripts[kActorClovis] = new AIScriptClovis(_vm);                   //  5
 	_AIScripts[kActorLucy] = new AIScriptLucy(_vm);                       //  6
+	_AIScripts[kActorIzo] = new AIScriptIzo(_vm);                         //  7
 	_AIScripts[kActorCrazylegs] = new AIScriptCrazylegs(_vm);             //  9
 	_AIScripts[kActorGrigorian] = new AIScriptGrigorian(_vm);             // 11
 	_AIScripts[kActorTransient] = new AIScriptTransient(_vm);             // 12
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index 6a13ac3..f9ee6f3 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -178,6 +178,17 @@ DECLARE_SCRIPT(Lucy)
 	void checkCombat();
 END_SCRIPT
 
+DECLARE_SCRIPT(Izo)
+	int _var1;
+	int _var2;
+	int _var3;
+	int _var4;
+	bool _flag;
+
+	void someDialog();
+	void modifyWaypoints();
+END_SCRIPT
+
 DECLARE_SCRIPT(Crazylegs)
 	bool _flag;
 END_SCRIPT
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index 76526b5..2aca6db 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -952,7 +952,9 @@ void ScriptBase::Ambient_Sounds_Play_Sound(int sfxId, int volume, int panStart,
 	_vm->_ambientSounds->playSound(sfxId, volume, panStart, panEnd, priority);
 }
 
-// ScriptBase::Ambient_Sounds_Play_Speech_Sound
+void ScriptBase::Ambient_Sounds_Play_Speech_Sound(int actorId, int sfxId, int volume, int panStart, int panEnd, int priority) {
+	warning("STIB: Ambient_Sounds_Play_Speech_Sound()");
+}
 
 void ScriptBase::Ambient_Sounds_Remove_All_Non_Looping_Sounds(bool stopPlaying) {
 	_vm->_ambientSounds->removeAllNonLoopingSounds(stopPlaying);
diff --git a/engines/bladerunner/script/script.h b/engines/bladerunner/script/script.h
index 90266df..7faf388 100644
--- a/engines/bladerunner/script/script.h
+++ b/engines/bladerunner/script/script.h
@@ -176,7 +176,7 @@ protected:
 	void Ambient_Sounds_Add_Speech_Sound(int actorId, int sentenceId, int timeMin, int timeMax, int volumeMin, int volumeMax, int panStartMin, int panStartMax, int panEndMin, int panEndMax, int priority, int unk);
 	// Ambient_Sounds_Remove_Speech_Sound
 	void Ambient_Sounds_Play_Sound(int sfxId, int volume, int panStart, int panEnd, int priority);
-	// Ambient_Sounds_Play_Speech_Sound
+	void Ambient_Sounds_Play_Speech_Sound(int actorId, int sfxId, int volume, int panStart, int panEnd, int priority);
 	void Ambient_Sounds_Remove_All_Non_Looping_Sounds(bool stopPlaying);
 	void Ambient_Sounds_Add_Looping_Sound(int sfxId, int volume, int pan, int delay);
 	void Ambient_Sounds_Adjust_Looping_Sound(int sfxId, int volume, int pan, int delay);





More information about the Scummvm-git-logs mailing list