From ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Thu, 8 Mar 2018 23:12:53 +0100 Subject: BLADERUNNER: Fixed Hysteria Iall door & rotating floor --- engines/bladerunner/script/scene/nr05.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'engines/bladerunner/script/scene') 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; -- cgit v1.2.3