[Scummvm-git-logs] scummvm master -> f3cdbd2ea9bf65ab50bfa8bb6d0ea66c22704e5d

antoniou79 antoniou at cti.gr
Sat Jun 22 10:14:54 CEST 2019


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f3cdbd2ea9 BLADERUNNER: _playerActorIdle should affect McCoy only


Commit: f3cdbd2ea9bf65ab50bfa8bb6d0ea66c22704e5d
    https://github.com/scummvm/scummvm/commit/f3cdbd2ea9bf65ab50bfa8bb6d0ea66c22704e5d
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-22T11:01:39+03:00

Commit Message:
BLADERUNNER: _playerActorIdle should affect McCoy only

Should be set or cleared only when McCoy is the actor who is walking and affect only McCoy

Changed paths:
    engines/bladerunner/actor.cpp
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/script.cpp


diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index dd5650c..5a46439 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -493,9 +493,18 @@ bool Actor::loopWalk(const Vector3 &destination, int proximity, bool interruptib
 		_vm->playerGainsControl();
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (!wasInterrupted && proximity == 0 && !_vm->_playerActorIdle) {
 		setAtXYZ(destination, _facing, true, false, false);
 	}
+#else
+	if (!wasInterrupted && proximity == 0
+	    && (_id == kActorMcCoy && !_vm->_playerActorIdle)
+	    && !isRetired()
+	) {
+		setAtXYZ(destination, _facing, true, false, false);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	if (_id != kActorMcCoy) {
 		_vm->_mouse->enable();
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 4d476f4..f054ce3 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -353,8 +353,13 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		} else {
 			Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
 		}
+#if BLADERUNNER_ORIGINAL_BUGS
 		Delay(3000);
 		Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
+#else
+		Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
+		Delay(3000);
+#endif // BLADERUNNER_ORIGINAL_BUGS
 		return true;
 
 	case kGoalClovisStartChapter5:
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index c65fb03..a98a5ec 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -489,15 +489,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int pro
 		run = true;
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	_vm->_playerActorIdle = false;
+#else
+	if (actorId == kActorMcCoy) {
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	bool isRunning;
 	bool result = _vm->_actors[actorId]->loopWalkToActor(otherActorId, proximity, interruptible, run, true, &isRunning);
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (_vm->_playerActorIdle) {
 		result = true;
 		_vm->_playerActorIdle = false;
 	}
+#else
+	if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
+		result = true;
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (isRunning) {
 		_vm->_runningActorId = actorId;
 	}
@@ -514,15 +528,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Item(int actorId, int itemId, int proximity,
 		run = true;
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	_vm->_playerActorIdle = false;
+#else
+	if (actorId == kActorMcCoy) {
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	bool isRunning;
 	bool result = _vm->_actors[actorId]->loopWalkToItem(itemId, proximity, interruptible, run, true, &isRunning);
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (_vm->_playerActorIdle) {
 		result = true;
 		_vm->_playerActorIdle = false;
 	}
+#else
+	if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
+		result = true;
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (isRunning) {
 		_vm->_runningActorId = actorId;
 	}
@@ -539,15 +567,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *object
 		run = true;
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	_vm->_playerActorIdle = false;
+#else
+	if (actorId == kActorMcCoy) {
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	bool isRunning;
 	bool result = _vm->_actors[actorId]->loopWalkToSceneObject(objectName, proximity, interruptible, run, true, &isRunning);
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (_vm->_playerActorIdle) {
 		result = true;
 		_vm->_playerActorIdle = false;
 	}
+#else
+	if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
+		result = true;
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (isRunning) {
 		_vm->_runningActorId = actorId;
 	}
@@ -564,15 +606,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int pr
 		run = true;
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	_vm->_playerActorIdle = false;
+#else
+	if (actorId == kActorMcCoy) {
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	bool isRunning;
 	bool result = _vm->_actors[actorId]->loopWalkToWaypoint(waypointId, proximity, interruptible, run, true, &isRunning);
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (_vm->_playerActorIdle) {
 		result = true;
 		_vm->_playerActorIdle = false;
 	}
+#else
+	if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
+		result = true;
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (isRunning) {
 		_vm->_runningActorId = actorId;
 	}
@@ -592,15 +648,30 @@ bool ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z,
 			run = true;
 		}
 	}
+
+#if BLADERUNNER_ORIGINAL_BUGS
 	_vm->_playerActorIdle = false;
+#else
+	if (actorId == kActorMcCoy) {
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 
 	bool isRunning;
 	bool result = _vm->_actors[actorId]->loopWalkToXYZ(Vector3(x, y, z), proximity, interruptible, run, true, &isRunning);
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (_vm->_playerActorIdle) {
 		result = true;
 		_vm->_playerActorIdle = false;
 	}
+#else
+	if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
+		result = true;
+		_vm->_playerActorIdle = false;
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (isRunning) {
 		_vm->_runningActorId = actorId;
 	}





More information about the Scummvm-git-logs mailing list