aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanasis Antoniou2019-07-14 15:52:25 +0300
committerThanasis Antoniou2019-07-14 15:53:10 +0300
commit491adeb656a65db03050ad40da44c53131b6ec3e (patch)
treea1d73762bfedd33fb7c0690b4a69403f92130ed9
parentda15a38b66b0b1a6b7fd4022997beec1decbbcf8 (diff)
downloadscummvm-rg350-491adeb656a65db03050ad40da44c53131b6ec3e.tar.gz
scummvm-rg350-491adeb656a65db03050ad40da44c53131b6ec3e.tar.bz2
scummvm-rg350-491adeb656a65db03050ad40da44c53131b6ec3e.zip
BLADERUNNER: Fix Rats resurrecting
-rw-r--r--engines/bladerunner/actor.h1
-rw-r--r--engines/bladerunner/bladerunner.cpp1
-rw-r--r--engines/bladerunner/combat.cpp5
3 files changed, 7 insertions, 0 deletions
diff --git a/engines/bladerunner/actor.h b/engines/bladerunner/actor.h
index 9d84e57593..5f4884fa4e 100644
--- a/engines/bladerunner/actor.h
+++ b/engines/bladerunner/actor.h
@@ -128,6 +128,7 @@ public:
void setAtXYZ(const Vector3 &pos, int facing, bool setFacing = true, bool moving = false, bool retired = false);
void setAtWaypoint(int waypointId, int angle, int unknown, bool retired);
+ int getId() const { return _id; };
float getX() const;
float getY() const;
float getZ() const;
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 8c729a7b36..ecb4048233 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -374,6 +374,7 @@ Common::Error BladeRunnerEngine::run() {
// else {
// newGame(kGameDifficultyMedium);
// }
+
gameLoop();
_mouse->disable();
diff --git a/engines/bladerunner/combat.cpp b/engines/bladerunner/combat.cpp
index afe339c5e5..f62e91dfd1 100644
--- a/engines/bladerunner/combat.cpp
+++ b/engines/bladerunner/combat.cpp
@@ -158,6 +158,11 @@ void Combat::shoot(int actorId, Vector3 &to, int screenX) {
if (actor->inCombat()) {
actor->combatModeOff();
}
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ // make sure the dead enemy won't pick a pending movement track and re-spawn
+ actor->_movementTrack->flush();
+#endif
actor->stopWalking(false);
actor->changeAnimationMode(kAnimationModeDie, false);