[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