[Scummvm-git-logs] scummvm master -> c9baa9867c31e5d60e5a7691ed3e3aa5102a5baa
antoniou79
antoniou at cti.gr
Thu Jul 11 06:31:59 CEST 2019
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:
9f89ade437 BLADERUNNER: Fix Clovis goal 513 stuck in bed bug
c9baa9867c BLADERUNNER: Possible fix for facing angle assertion fault
Commit: 9f89ade437021e5f22fd9dd3087e3da3151c5e58
https://github.com/scummvm/scummvm/commit/9f89ade437021e5f22fd9dd3087e3da3151c5e58
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-11T07:26:33+03:00
Commit Message:
BLADERUNNER: Fix Clovis goal 513 stuck in bed bug
Changed paths:
engines/bladerunner/script/ai/clovis.cpp
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 3c63244..c5b29d9 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -404,6 +404,12 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
} else {
Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800);
Actor_Face_Heading(kActorClovis, 1022, false);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ // same as kGoalClovisKP07LayDown
+ // Actor_Set_Targetable(kActorClovis, true) is already done above
+ Game_Flag_Set(kFlagClovisLyingDown);
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
someAnim();
return true;
@@ -525,7 +531,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
}
return true;
- case 518:
+ case kGoalClovisKP07LayDown:
Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800);
Actor_Face_Heading(kActorClovis, 1022, false);
Actor_Set_Targetable(kActorClovis, true);
Commit: c9baa9867c31e5d60e5a7691ed3e3aa5102a5baa
https://github.com/scummvm/scummvm/commit/c9baa9867c31e5d60e5a7691ed3e3aa5102a5baa
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-11T07:26:33+03:00
Commit Message:
BLADERUNNER: Possible fix for facing angle assertion fault
Changed paths:
engines/bladerunner/actor.cpp
engines/bladerunner/actor_walk.cpp
diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index 5a46439..62ffd6f 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -1298,9 +1298,17 @@ bool Actor::findEmptyPositionAround(const Vector3 &startPosition, const Vector3
}
} else { // looks like a bug as it might not find anything when there is no walkbox at this angle
facingLeft += 20;
+#if BLADERUNNER_ORIGINAL_BUGS
if (facingLeft > 1024) {
facingLeft -= 1024;
}
+#else
+ // if facingLeft + 20 == 1024 then it could cause the assertion fault
+ // in common/sinetables.cpp for SineTable::at(int index) -> assert((index >= 0) && (index < _nPoints))
+ if (facingLeft >= 1024) {
+ facingLeft -= 1024;
+ }
+#endif
facingLeftCounter += 20;
}
diff --git a/engines/bladerunner/actor_walk.cpp b/engines/bladerunner/actor_walk.cpp
index 1c91ce0..536893c 100644
--- a/engines/bladerunner/actor_walk.cpp
+++ b/engines/bladerunner/actor_walk.cpp
@@ -211,6 +211,18 @@ bool ActorWalk::tick(int actorId, float stepDistance, bool mustReachWalkDestinat
}
}
+#if !BLADERUNNER_ORIGINAL_BUGS
+ // safety-guard / validator check
+ if (_facing >= 1024) {
+ _facing = (_facing % 1024);
+ } else if (_facing < 0) {
+ _facing = (-1) * _facing;
+ _facing = (_facing % 1024);
+ if (_facing > 0) {
+ _facing = 1024 - _facing; // this will always be in [1, 1023]
+ }
+ }
+#endif
_current.x += stepDistance * _vm->_sinTable1024->at(_facing);
_current.z -= stepDistance * _vm->_cosTable1024->at(_facing);
_current.y = _vm->_scene->_set->getAltitudeAtXZ(_current.x, _current.z, &walkboxFound);
More information about the Scummvm-git-logs
mailing list