diff options
author | Peter Kohaut | 2018-03-08 23:12:53 +0100 |
---|---|---|
committer | Peter Kohaut | 2018-03-08 23:15:21 +0100 |
commit | ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec (patch) | |
tree | b37345b37cbc6d6c3a50a5da20fe80661aed5176 /engines | |
parent | 9e6883bb228ea642bd45ba2177e77bbf58a5da0e (diff) | |
download | scummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.tar.gz scummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.tar.bz2 scummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.zip |
BLADERUNNER: Fixed Hysteria Iall door & rotating floor
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/script/ai/mccoy.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/nr05.cpp | 17 | ||||
-rw-r--r-- | engines/bladerunner/script/scene_script.h | 4 |
3 files changed, 12 insertions, 11 deletions
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp index add613e299..554de0cd80 100644 --- a/engines/bladerunner/script/ai/mccoy.cpp +++ b/engines/bladerunner/script/ai/mccoy.cpp @@ -588,7 +588,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) { if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(41) - 1) { _animationFrame++; } - return true; + break; case 59: *animation = 48; _animationFrame++; diff --git a/engines/bladerunner/script/scene/nr05.cpp b/engines/bladerunner/script/scene/nr05.cpp index e8608f4230..9552734544 100644 --- a/engines/bladerunner/script/scene/nr05.cpp +++ b/engines/bladerunner/script/scene/nr05.cpp @@ -148,8 +148,8 @@ void SceneScriptNR05::SceneFrameAdvanced(int frame) { if (frame == 86) { Sound_Play(353, 62, 70, 70, 50); } - sub_402A48(48); - sub_402A48(0); + rotateActorOnGround(kActorHysteriaPatron2); + rotateActorOnGround(kActorMcCoy); if (Actor_Query_Goal_Number(kActorEarlyQ) == 224) { Actor_Set_Goal_Number(kActorEarlyQ, 225); if (Player_Query_Current_Scene() == 58) { @@ -157,7 +157,7 @@ void SceneScriptNR05::SceneFrameAdvanced(int frame) { } } if (frame > 77 && frame <= 134) { - sub_401F74(frame - 13); + rotateActorOnTable(frame - 13); if (frame == 134 && !Game_Flag_Query(537)) { Actor_Set_Goal_Number(kActorMcCoy, 200); } @@ -167,7 +167,6 @@ void SceneScriptNR05::SceneFrameAdvanced(int frame) { //return false; return; } - } void SceneScriptNR05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) { @@ -193,7 +192,7 @@ void SceneScriptNR05::PlayerWalkedOut() { void SceneScriptNR05::DialogueQueueFlushed(int a1) { } -void SceneScriptNR05::sub_401F74(int frame) { +void SceneScriptNR05::rotateActorOnTable(int frame) { float angle = cos((frame - 65) * (M_PI / 57.0f)) * M_PI_2; float invertedAngle = M_PI - angle; if (!Game_Flag_Query(537)) { @@ -329,14 +328,16 @@ void SceneScriptNR05::sub_4022DC() { } } -void SceneScriptNR05::sub_402A48(int actorId) { +void SceneScriptNR05::rotateActorOnGround(int actorId) { int animationMode = Actor_Query_Animation_Mode(actorId); - if (animationMode == 1 || animationMode == 2 || animationMode == 7 || animationMode == 8) { + if (animationMode == kAnimationModeWalk || animationMode == kAnimationModeRun || animationMode == kAnimationModeCombatWalk || animationMode == kAnimationModeCombatRun) { return; } float x, y, z; Actor_Query_XYZ(actorId, &x, &y, &z); - if ((x - -542.0f) * (x - -542.0f) + (z - -195.0f) * (z - -195.0f) < 8464.0f) { + x -= -542.0f; + z -= -195.0f; + if (x * x + z * z < 92.0f * 92.0f) { float s = sin(M_PI / 128.0f); float c = cos(M_PI / 128.0f); float newX = x * c - z * s + -542.0f; diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h index 1c0d95fbf8..54047ed8a8 100644 --- a/engines/bladerunner/script/scene_script.h +++ b/engines/bladerunner/script/scene_script.h @@ -313,10 +313,10 @@ DECLARE_SCRIPT(NR04) END_SCRIPT DECLARE_SCRIPT(NR05) - void sub_401F74(int frame); + void rotateActorOnTable(int frame); void sub_4020B4(); void sub_4022DC(); - void sub_402A48(int actorId); + void rotateActorOnGround(int actorId); void sub_402B9C(); END_SCRIPT |