aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene
diff options
context:
space:
mode:
authorPeter Kohaut2018-03-08 23:12:53 +0100
committerPeter Kohaut2018-03-08 23:15:21 +0100
commitae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec (patch)
treeb37345b37cbc6d6c3a50a5da20fe80661aed5176 /engines/bladerunner/script/scene
parent9e6883bb228ea642bd45ba2177e77bbf58a5da0e (diff)
downloadscummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.tar.gz
scummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.tar.bz2
scummvm-rg350-ae95bcf31f0a4558b7f7dd96a2afcfcf52cf45ec.zip
BLADERUNNER: Fixed Hysteria Iall door & rotating floor
Diffstat (limited to 'engines/bladerunner/script/scene')
-rw-r--r--engines/bladerunner/script/scene/nr05.cpp17
1 files changed, 9 insertions, 8 deletions
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;