diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/game_constants.h | 16 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/gordo.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/hanoi.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/holloway.cpp | 125 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/lucy.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/nr01.cpp | 4 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/nr07.cpp | 2 |
7 files changed, 91 insertions, 66 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index 2096a6261c..73d0a9d2aa 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -922,7 +922,7 @@ enum Flags { kFlagTB07toTB02 = 608, kFlagTB07RachaelTalk = 612, kFlagHF03LucyTalk = 613, - kFlagMcCoyCapturedByBaker = 616, + kFlagMcCoyCapturedByHolloway = 616, kFlagSpinnerMissing = 617, kFlagTB07TyrellMeeting = 625, kFlagCT11DogWrapperTaken = 645, @@ -1525,6 +1525,7 @@ enum GoalSteele { kGoalSteeleLeaveRC03 = 130, kGoalSteeleWalkAroundRestart = 190, // chapter 3 + kGoalSteeleNR01WaitForMcCoy = 230, kGoalSteeleHF03ApproachLucy = 233, kGoalSteeleHF03McCoyChasingLucy = 234, kGoalSteeleHF02ConfrontLucy = 240, @@ -1630,7 +1631,6 @@ enum GoalIzo { kGoalIzoGoToHC03 = 155, kGoalIzoDieHidden = 198, kGoalIzoDie = 199, - kGoalIzoDead = 599 }; @@ -1699,6 +1699,18 @@ enum GoalDeskClerk { kGoalDeskClerkGone = 400 }; +enum GoalHolloway { + kGoalHollowayDefault = 0, + kGoalHollowayGoToNR07 = 240, + kGoalHollowayGoToNR02 = 241, + kGoalHollowayGoToHF03 = 242, + kGoalHollowayApproachMcCoy = 250, + kGoalHollowayTalkToMcCoy = 251, + kGoalHollowayKnockOutMcCoy = 255, + kGoalHollowayPrepareCaptureMcCoy = 256, + kGoalHollowayCaptureMcCoy = 257 +}; + enum GoalMoraji { kGoalMorajiDefault = 0, kGoalMorajiShot = 5, diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp index 5508512546..8bc03eaa30 100644 --- a/engines/bladerunner/script/ai/gordo.cpp +++ b/engines/bladerunner/script/ai/gordo.cpp @@ -517,7 +517,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) { Actor_Says(kActorGordo, 870, 16); Sound_Play(576, 50, 0, 0, 50); Sound_Play(319, 50, 0, 0, 50); - Actor_Set_Goal_Number(33, 241); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayGoToNR02); Actor_Says(kActorGordo, 880, 17); Actor_Set_Goal_Number(kActorGordo, 211); Player_Loses_Control(); diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp index f735694b9f..91be365379 100644 --- a/engines/bladerunner/script/ai/hanoi.cpp +++ b/engines/bladerunner/script/ai/hanoi.cpp @@ -46,7 +46,7 @@ void AIScriptHanoi::Initialize() { } bool AIScriptHanoi::Update() { - if (Actor_Query_Goal_Number(kActorHolloway) == 240) { + if (Actor_Query_Goal_Number(kActorHolloway) == kGoalHollowayGoToNR07) { AI_Countdown_Timer_Reset(kActorHanoi, 0); } if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorHanoi) < 200) { diff --git a/engines/bladerunner/script/ai/holloway.cpp b/engines/bladerunner/script/ai/holloway.cpp index e9f162e906..a64183b7c1 100644 --- a/engines/bladerunner/script/ai/holloway.cpp +++ b/engines/bladerunner/script/ai/holloway.cpp @@ -25,7 +25,7 @@ namespace BladeRunner { AIScriptHolloway::AIScriptHolloway(BladeRunnerEngine *vm) : AIScriptBase(vm) { - _flag = 0; + _flag = false; } void AIScriptHolloway::Initialize() { @@ -34,32 +34,35 @@ void AIScriptHolloway::Initialize() { _animationStateNext = 0; _animationNext = 0; - _flag = 0; + _flag = false; - Actor_Set_Goal_Number(kActorHolloway, 0); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayDefault); } bool AIScriptHolloway::Update() { - if (Actor_Query_Goal_Number(kActorHolloway) == 256) - Actor_Set_Goal_Number(kActorHolloway, 257); + if (Actor_Query_Goal_Number(kActorHolloway) == kGoalHollowayPrepareCaptureMcCoy) { + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayCaptureMcCoy); + } return false; } void AIScriptHolloway::TimerExpired(int timer) { - if (!timer) { + if (timer == 0) { AI_Countdown_Timer_Reset(kActorHolloway, 0); if (Global_Variable_Query(kVariableBehavior) == 1) { Player_Gains_Control(); } - Actor_Set_Goal_Number(kActorHolloway, 251); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayTalkToMcCoy); } } void AIScriptHolloway::CompletedMovementTrack() { - if (Actor_Query_Goal_Number(kActorHolloway) < 245 && Actor_Query_Goal_Number(kActorHolloway) > 239) { - Loop_Actor_Walk_To_Actor(kActorHolloway, 0, 24, 0, 0); - Actor_Set_Goal_Number(kActorHolloway, 250); + if (Actor_Query_Goal_Number(kActorHolloway) < 245 + && Actor_Query_Goal_Number(kActorHolloway) > 239 + ) { + Loop_Actor_Walk_To_Actor(kActorHolloway, kActorMcCoy, 24, false, false); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayApproachMcCoy); } } @@ -84,9 +87,11 @@ void AIScriptHolloway::OtherAgentExitedThisScene(int otherActorId) { } void AIScriptHolloway::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) { - if (otherActorId == kActorMcCoy && Actor_Query_Goal_Number(kActorHolloway) == 250) { + if (otherActorId == kActorMcCoy + && Actor_Query_Goal_Number(kActorHolloway) == kGoalHollowayApproachMcCoy + ) { AI_Countdown_Timer_Reset(kActorHolloway, 0); - Actor_Set_Goal_Number(kActorHolloway, 255); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayKnockOutMcCoy); } } @@ -108,7 +113,7 @@ int AIScriptHolloway::GetFriendlinessModifierIfGetsClue(int otherActorId, int cl bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { - case 240: + case kGoalHollowayGoToNR07: Actor_Put_In_Set(kActorHolloway, kSetNR07); Actor_Set_At_XYZ(kActorHolloway, -102.0f, -73.5f, -233.0f, 0); Player_Loses_Control(); @@ -117,7 +122,7 @@ bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) { AI_Movement_Track_Repeat(kActorHolloway); break; - case 241: + case kGoalHollowayGoToNR02: Player_Loses_Control(); AI_Movement_Track_Flush(kActorHolloway); AI_Movement_Track_Append(kActorHolloway, 375, 0); @@ -125,64 +130,67 @@ bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) { AI_Movement_Track_Repeat(kActorHolloway); break; - case 242: + case kGoalHollowayGoToHF03: Player_Loses_Control(); AI_Movement_Track_Flush(kActorHolloway); AI_Movement_Track_Append(kActorHolloway, 372, 0); AI_Movement_Track_Repeat(kActorHolloway); break; - case 250: + case kGoalHollowayApproachMcCoy: Scene_Exits_Disable(); - Actor_Says(kActorHolloway, 20, 3); - Actor_Face_Actor(kActorHolloway, 0, 1); - if (Player_Query_Combat_Mode() == 1) { - Actor_Set_Goal_Number(kActorHolloway, 255); + Actor_Says(kActorHolloway, 20, kAnimationModeTalk); + Actor_Face_Actor(kActorHolloway, kActorMcCoy, true); + if (Player_Query_Combat_Mode()) { + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayKnockOutMcCoy); } else { - Actor_Says(kActorHolloway, 30, 3); - Actor_Face_Actor(kActorMcCoy, kActorHolloway, 1); + Actor_Says(kActorHolloway, 30, kAnimationModeTalk); + Actor_Face_Actor(kActorMcCoy, kActorHolloway, true); AI_Countdown_Timer_Reset(kActorHolloway, 0); AI_Countdown_Timer_Start(kActorHolloway, 0, 1); } break; - case 251: - Actor_Face_Actor(kActorMcCoy, kActorHolloway, 1); + case kGoalHollowayTalkToMcCoy: + Actor_Face_Actor(kActorMcCoy, kActorHolloway, true); Actor_Says(kActorMcCoy, 6130, 15); - Actor_Says(kActorHolloway, 40, 3); + Actor_Says(kActorHolloway, 40, kAnimationModeTalk); Actor_Says(kActorMcCoy, 6135, 13); - Actor_Says(kActorHolloway, 50, 3); + Actor_Says(kActorHolloway, 50, kAnimationModeTalk); Actor_Says(kActorMcCoy, 6140, 16); - Actor_Says(kActorHolloway, 60, 3); + Actor_Says(kActorHolloway, 60, kAnimationModeTalk); Actor_Says(kActorMcCoy, 6145, 12); - Actor_Says(kActorHolloway, 70, 3); - Actor_Set_Goal_Number(kActorHolloway, 255); + Actor_Says(kActorHolloway, 70, kAnimationModeTalk); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayKnockOutMcCoy); break; - case 255: + case kGoalHollowayKnockOutMcCoy: Player_Loses_Control(); - Actor_Change_Animation_Mode(kActorHolloway, 6); + Actor_Change_Animation_Mode(kActorHolloway, kAnimationModeCombatAttack); break; - case 257: + case kGoalHollowayCaptureMcCoy: Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Player_Gains_Control(); + Outtake_Play(kOuttakeInterrogation, 0, 1); + if (Global_Variable_Query(kVariableBehavior) == 1) { Actor_Set_Goal_Number(kActorDektora, 245); Actor_Change_Animation_Mode(kActorDektora, kAnimationModeIdle); } Player_Gains_Control(); - Game_Flag_Set(kFlagMcCoyCapturedByBaker); + Game_Flag_Set(kFlagMcCoyCapturedByHolloway); Scene_Exits_Enable(); - Actor_Set_Goal_Number(kActorSteele, 230); + Actor_Set_Goal_Number(kActorSteele, kGoalSteeleNR01WaitForMcCoy); Actor_Put_In_Set(kActorHolloway, kSetFreeSlotI); Actor_Set_At_Waypoint(kActorHolloway, 41, 0); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle); if (Global_Variable_Query(kVariableBehavior) != 1) { Player_Gains_Control(); } + Game_Flag_Set(kFlagUG03toUG04); Set_Enter(kSetUG04, kSceneUG04); break; @@ -199,7 +207,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 0: *animation = 717; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(717) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(717)) { _animationFrame = 0; } break; @@ -207,29 +215,34 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 1: *animation = 719; _animationFrame++; + if (_animationFrame == 9) { Ambient_Sounds_Play_Sound(222, 90, 99, 0, 0); } + if (_animationFrame == 10) { - Actor_Change_Animation_Mode(kActorMcCoy, 48); + Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); } - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(719) - 1) { - Actor_Change_Animation_Mode(kActorHolloway, 0); + + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(719)) { + Actor_Change_Animation_Mode(kActorHolloway, kAnimationModeIdle); _animationFrame = 0; _animationState = 0; *animation = 717; - Actor_Set_Goal_Number(kActorHolloway, 256); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayPrepareCaptureMcCoy); } break; case 2: - if (!_animationFrame && _flag) { + if (_animationFrame == 0 + && _flag + ) { *animation = 717; _animationState = 0; } else { *animation = 720; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(720) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(720)) { _animationFrame = 0; } } @@ -238,7 +251,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 3: *animation = 721; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(721) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(721)) { _animationFrame = 0; _animationState = 2; *animation = 720; @@ -248,7 +261,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 4: *animation = 721; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(721) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(721)) { _animationFrame = 0; _animationState = 2; *animation = 720; @@ -258,7 +271,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 5: *animation = 721; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(721) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(721)) { _animationFrame = 0; _animationState = 2; *animation = 720; @@ -268,7 +281,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 6: *animation = 721; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(721) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(721)) { _animationFrame = 0; _animationState = 2; *animation = 720; @@ -278,7 +291,7 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { case 7: *animation = 716; _animationFrame++; - if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(716) - 1) { + if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(716)) { _animationFrame = 0; } break; @@ -293,27 +306,27 @@ bool AIScriptHolloway::UpdateAnimation(int *animation, int *frame) { bool AIScriptHolloway::ChangeAnimationMode(int mode) { switch (mode) { - case 0: + case kAnimationModeIdle: if (_animationState > 6) { _animationState = 0; _animationFrame = 0; } else { - _flag = 1; + _flag = true; } break; - case 1: + case kAnimationModeWalk: _animationState = 7; _animationFrame = 0; break; - case 3: + case kAnimationModeTalk: _animationState = 2; _animationFrame = 0; - _flag = 0; + _flag = false; break; - case 6: + case kAnimationModeCombatAttack: _animationState = 1; _animationFrame = 0; break; @@ -321,25 +334,25 @@ bool AIScriptHolloway::ChangeAnimationMode(int mode) { case 12: _animationState = 3; _animationFrame = 0; - _flag = 0; + _flag = false; break; case 13: _animationState = 4; _animationFrame = 0; - _flag = 0; + _flag = false; break; case 14: _animationState = 5; _animationFrame = 0; - _flag = 0; + _flag = false; break; case 15: _animationState = 6; _animationFrame = 0; - _flag = 0; + _flag = false; break; default: diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp index 8b16f11136..c35510299a 100644 --- a/engines/bladerunner/script/ai/lucy.cpp +++ b/engines/bladerunner/script/ai/lucy.cpp @@ -70,7 +70,7 @@ bool AIScriptLucy::Update() { } } - if (Game_Flag_Query(kFlagMcCoyCapturedByBaker) + if (Game_Flag_Query(kFlagMcCoyCapturedByHolloway) && Actor_Query_Goal_Number(kActorLucy) == kGoalLucyWillReturnToHF03 ) { Actor_Put_In_Set(kActorLucy, kSetHF03); @@ -126,7 +126,7 @@ void AIScriptLucy::TimerExpired(int timer) { void AIScriptLucy::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorLucy)) { case kGoalLucyGoToHF03: - if (Game_Flag_Query(kFlagMcCoyCapturedByBaker) + if (Game_Flag_Query(kFlagMcCoyCapturedByHolloway) && Global_Variable_Query(kVariableBehavior) == 3 ) { Actor_Set_Goal_Number(kActorLucy, kGoalLucyReturnToHF03); @@ -346,7 +346,7 @@ bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) { case kGoalLucyRunAwayWithHelp1: Actor_Says(kActorLucy, 320, 16); - Actor_Set_Goal_Number(kActorHolloway, 242); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayGoToHF03); Actor_Set_Immunity_To_Obstacles(kActorLucy, true); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 378, 0); diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp index 496d277577..611a18a930 100644 --- a/engines/bladerunner/script/scene/nr01.cpp +++ b/engines/bladerunner/script/scene/nr01.cpp @@ -71,7 +71,7 @@ void SceneScriptNR01::InitializeScene() { Ambient_Sounds_Add_Sound(377, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0); if (Game_Flag_Query(643) - && Actor_Query_Goal_Number(kActorSteele) == 230 + && Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleNR01WaitForMcCoy ) { Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtHF01); @@ -326,7 +326,7 @@ void SceneScriptNR01::PlayerWalkedIn() { if (Game_Flag_Query(kFlagUG06toNR01)) { Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle); Game_Flag_Reset(kFlagUG06toNR01); - if (Actor_Query_Goal_Number(kActorSteele) == 230) { + if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleNR01WaitForMcCoy) { Actor_Face_Actor(kActorSteele, kActorMcCoy, true); Actor_Says(kActorSteele, 1440, 13); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, false, true); diff --git a/engines/bladerunner/script/scene/nr07.cpp b/engines/bladerunner/script/scene/nr07.cpp index aa70aa3f3a..1f081313d5 100644 --- a/engines/bladerunner/script/scene/nr07.cpp +++ b/engines/bladerunner/script/scene/nr07.cpp @@ -209,7 +209,7 @@ void SceneScriptNR07::sub_401A10() { Actor_Voice_Over(1710, kActorVoiceOver); Actor_Voice_Over(1720, kActorVoiceOver); Actor_Voice_Over(1730, kActorVoiceOver); - Actor_Set_Goal_Number(kActorHolloway, 240); + Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayGoToNR07); } void SceneScriptNR07::sub_401C60() { |