[Scummvm-git-logs] scummvm master -> 5941ab78584147a751602b4a90061899fb63e0b2

antoniou79 antoniou at cti.gr
Thu Sep 5 09:43:03 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:
b04be6f9e1 BLADERUNNER: Add comment for redundancy in actor's health init
5941ab7858 BLADERUNNER: Fix displaying of clues in KIA


Commit: b04be6f9e1e50f93fb9a57471907d5789c93e120
    https://github.com/scummvm/scummvm/commit/b04be6f9e1e50f93fb9a57471907d5789c93e120
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-05T10:39:51+03:00

Commit Message:
BLADERUNNER: Add comment for redundancy in actor's health init

Changed paths:
    engines/bladerunner/script/init_script.cpp


diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index d13251d..2ba4b96 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -2983,6 +2983,11 @@ void InitScript::Init_Actor_Health() {
 	Actor_Set_Health(kActorGenwalkerA, 50, 50);
 	Actor_Set_Health(kActorGenwalkerB, 50, 50);
 	Actor_Set_Health(kActorGenwalkerC, 50, 50);
+
+	// A bug? The health for some actors is set again here
+	// with different values except for Izo and kActorOfficerGrayford
+	// rendering the initial setting redundant.
+	// The health of all who can be Replicants will again be set further below (including Izo)
 	Actor_Set_Health(kActorZuben, 80, 80);
 	Actor_Set_Health(kActorGordo, 40, 40);
 	Actor_Set_Health(kActorLucy, 20, 20);
@@ -2993,6 +2998,7 @@ void InitScript::Init_Actor_Health() {
 	Actor_Set_Health(kActorClovis, 90, 90);
 	Actor_Set_Health(kActorOfficerLeary, 40, 40);
 	Actor_Set_Health(kActorOfficerGrayford, 50, 50);
+
 	Actor_Set_Health(kActorMutant1, 30, 30);
 	Actor_Set_Health(kActorMutant2, 50, 50);
 	Actor_Set_Health(kActorMutant3, 20, 20);


Commit: 5941ab78584147a751602b4a90061899fb63e0b2
    https://github.com/scummvm/scummvm/commit/5941ab78584147a751602b4a90061899fb63e0b2
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-05T10:39:51+03:00

Commit Message:
BLADERUNNER: Fix displaying of clues in KIA

Fixes bug where clues with no type would appear in KIA sections

"End of Act 2" would appear in Sadik's and Clovis' suspect pages, and in Bradbury crime page, whereas Sadik's photo would not appear in Sadik's page.

Changed paths:
    engines/bladerunner/actor.cpp
    engines/bladerunner/actor_clues.cpp
    engines/bladerunner/actor_clues.h
    engines/bladerunner/game_constants.h
    engines/bladerunner/ui/kia_section_clues.cpp
    engines/bladerunner/ui/kia_section_crimes.cpp
    engines/bladerunner/ui/kia_section_suspects.cpp


diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index e5933f6..e1ecefd 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -1254,12 +1254,13 @@ bool Actor::copyClues(int actorId) {
 	bool newCluesAcquired = false;
 	Actor *otherActor = _vm->_actors[actorId];
 	for (int i = 0; i < (int)_vm->_gameInfo->getClueCount(); i++) {
-		if (hasClue(i) && !_clues->isPrivate(i) && otherActor->canAcquireClue(i) && !otherActor->hasClue(i)) {
+		int clueId = _clues->getClueIdByIndex(i);
+		if (hasClue(clueId) && !_clues->isPrivate(clueId) && otherActor->canAcquireClue(clueId) && !otherActor->hasClue(clueId)) {
 			int fromActorId = _id;
 			if (_id == BladeRunnerEngine::kActorVoiceOver) {
-				fromActorId = _clues->getFromActorId(i);
+				fromActorId = _clues->getFromActorId(clueId);
 			}
-			otherActor->acquireClue(i, false, fromActorId);
+			otherActor->acquireClue(clueId, false, fromActorId);
 			newCluesAcquired = true;
 		}
 	}
diff --git a/engines/bladerunner/actor_clues.cpp b/engines/bladerunner/actor_clues.cpp
index 63dbbbf..4946113 100644
--- a/engines/bladerunner/actor_clues.cpp
+++ b/engines/bladerunner/actor_clues.cpp
@@ -39,7 +39,7 @@ ActorClues::ActorClues(BladeRunnerEngine *vm, int cluesLimit) {
 	_maxCount = 0;
 	switch (cluesLimit) {
 	case 4:
-		_maxCount = _vm->_gameInfo->getClueCount();
+		_maxCount = kClueCount;
 		break;
 	case 3:
 		_maxCount = 100;
@@ -318,6 +318,9 @@ int ActorClues::getCount() const {
 }
 
 int ActorClues::getClueIdByIndex(int index) const {
+	if (index < 0) {
+		return -1;
+	}
 	return _clues[index].clueId;
 }
 
diff --git a/engines/bladerunner/actor_clues.h b/engines/bladerunner/actor_clues.h
index 88af222..8de4190 100644
--- a/engines/bladerunner/actor_clues.h
+++ b/engines/bladerunner/actor_clues.h
@@ -32,6 +32,7 @@ class SaveFileReadStream;
 class SaveFileWriteStream;
 
 class ActorClues {
+	// _vm->_gameInfo->getClueCount()
 	static const int kClueCount = 288;
 
 	struct Clue {
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 36c6ab6..19af4ce 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -369,9 +369,9 @@ enum Clues {
 	kClueKingstonKitchenBox2               = 263, // ESPER hard-copy
 	kClueCrystalsCigarette                 = 264,
 	kClueSpinnerKeys                       = 265,
-	kClueAct2Ended                         = 266,
-	kClueAct3Ended                         = 267,
-	kClueAct4Ended                         = 268,
+	kClueAct2Ended                         = 266, // is acquired but never checked. Has no type and seems like a placeholder
+	kClueAct3Ended                         = 267, // unused
+	kClueAct4Ended                         = 268, // unused
 	kClueExpertBomber                      = 269,
 	kClueAmateurBomber                     = 270,
 	kClueVKLucyReplicant                   = 271,
diff --git a/engines/bladerunner/ui/kia_section_clues.cpp b/engines/bladerunner/ui/kia_section_clues.cpp
index d4437f7..9b9f6b7 100644
--- a/engines/bladerunner/ui/kia_section_clues.cpp
+++ b/engines/bladerunner/ui/kia_section_clues.cpp
@@ -57,7 +57,7 @@ KIASectionClues::KIASectionClues(BladeRunnerEngine *vm, ActorClues *clues) : KIA
 
 	_buttons = new UIImagePicker(_vm, 2);
 
-	_cluesScrollBox = new UIScrollBox(_vm, scrollBoxCallback, this, _vm->_gameInfo->getClueCount(), 1, false, Common::Rect(312, 172, 500, 376), Common::Rect(506, 160, 506, 394));
+	_cluesScrollBox = new UIScrollBox(_vm, scrollBoxCallback, this, kClueCount, 1, false, Common::Rect(312, 172, 500, 376), Common::Rect(506, 160, 506, 394));
 	_uiContainer->add(_cluesScrollBox);
 
 	_filterScrollBox = new UIScrollBox(_vm, scrollBoxCallback, this, 128, 1, false, Common::Rect(142, 162, 291, 376), Common::Rect(120, 160, 120, 370));
@@ -283,9 +283,10 @@ void KIASectionClues::populateFilters() {
 	};
 
 	for (int i = 0; i < kClueCount; ++i) {
-		if (_clues->isAcquired(i)) {
-			int assetType = _vm->_crimesDatabase->getAssetType(i);
-			int crimeId = _vm->_crimesDatabase->getCrime(i);
+		int clueId = _clues->getClueIdByIndex(i);
+		if (_clues->isAcquired(clueId)) {
+			int assetType = _vm->_crimesDatabase->getAssetType(clueId);
+			int crimeId = _vm->_crimesDatabase->getCrime(clueId);
 			if (_debugIntangible || assetType != -1) {
 				availableFilters[getLineIdForAssetType(assetType)] = true;
 				availableFilters[getLineIdForCrimeId(crimeId)] = true;
@@ -382,18 +383,19 @@ void KIASectionClues::populateFilters() {
 void KIASectionClues::populateClues() {
 	_cluesScrollBox->clearLines();
 	for (int i = 0; i < kClueCount; ++i) {
-		if (_clues->isAcquired(i)) {
-			int assetType = _vm->_crimesDatabase->getAssetType(i);
-			int crimeId = _vm->_crimesDatabase->getCrime(i);
+		int clueId = _clues->getClueIdByIndex(i);
+		if (_clues->isAcquired(clueId)) {
+			int assetType = _vm->_crimesDatabase->getAssetType(clueId);
+			int crimeId = _vm->_crimesDatabase->getCrime(clueId);
 			if (assetType != -1 || _debugIntangible) {
 				if (_filters[getLineIdForAssetType(assetType)] && _filters[getLineIdForCrimeId(crimeId)]) {
 					int flags = 0x30;
-					if (_clues->isPrivate(i)) {
+					if (_clues->isPrivate(clueId)) {
 						flags = 0x08;
-					} else if (_clues->isViewed(i)) {
+					} else if (_clues->isViewed(clueId)) {
 						flags = 0x10;
 					}
-					_cluesScrollBox->addLine(_vm->_crimesDatabase->getClueText(i), i, flags);
+					_cluesScrollBox->addLine(_vm->_crimesDatabase->getClueText(clueId), clueId, flags);
 				}
 			}
 		}
diff --git a/engines/bladerunner/ui/kia_section_crimes.cpp b/engines/bladerunner/ui/kia_section_crimes.cpp
index 6369a8f..9061fff 100644
--- a/engines/bladerunner/ui/kia_section_crimes.cpp
+++ b/engines/bladerunner/ui/kia_section_crimes.cpp
@@ -287,9 +287,10 @@ void KIASectionCrimes::onButtonPressed(int buttonId) {
 void KIASectionCrimes::populateAcquiredClues() {
 	_acquiredClueCount = 0;
 	for (int i = 0; i < kClueCount; ++i) {
-		if (_clues->isAcquired(i)) {
-			_acquiredClues[_acquiredClueCount].clueId = i;
-			_acquiredClues[_acquiredClueCount].actorId = _clues->getFromActorId(i);
+		int clueId = _clues->getClueIdByIndex(i);
+		if (_clues->isAcquired(clueId)) {
+			_acquiredClues[_acquiredClueCount].clueId = clueId;
+			_acquiredClues[_acquiredClueCount].actorId = _clues->getFromActorId(clueId);
 			++_acquiredClueCount;
 		}
 	}
@@ -375,18 +376,19 @@ void KIASectionCrimes::populateSuspects() {
 void KIASectionCrimes::populateVisibleClues() {
 	_cluesScrollBox->clearLines();
 	if (_crimeSelected != -1) {
-		for (uint i = 0; i < _vm->_gameInfo->getClueCount(); ++i) {
-			if (_vm->_crimesDatabase->getAssetType(i) != -1
-			 && _vm->_crimesDatabase->getCrime(i) == _crimeSelected
-			 && _clues->isAcquired(i)
+		for (uint i = 0; i < kClueCount; ++i) {
+			int clueId = _clues->getClueIdByIndex(i);
+			if (_vm->_crimesDatabase->getAssetType(clueId) != -1
+			 && _vm->_crimesDatabase->getCrime(clueId) == _crimeSelected
+			 && _clues->isAcquired(clueId)
 			) {
 				int flags = 0x30;
-				if (_clues->isPrivate(i)) {
+				if (_clues->isPrivate(clueId)) {
 					flags = 0x08;
-				} else if (_clues->isViewed(i)) {
+				} else if (_clues->isViewed(clueId)) {
 					flags = 0x10;
 				}
-				_cluesScrollBox->addLine(_vm->_crimesDatabase->getClueText(i), i, flags);
+				_cluesScrollBox->addLine(_vm->_crimesDatabase->getClueText(clueId), clueId, flags);
 			}
 		}
 		_cluesScrollBox->sortLines();
diff --git a/engines/bladerunner/ui/kia_section_suspects.cpp b/engines/bladerunner/ui/kia_section_suspects.cpp
index cfe3fc3..ba1f6a5 100644
--- a/engines/bladerunner/ui/kia_section_suspects.cpp
+++ b/engines/bladerunner/ui/kia_section_suspects.cpp
@@ -66,7 +66,7 @@ KIASectionSuspects::KIASectionSuspects(BladeRunnerEngine *vm, ActorClues *clues)
 	_replicantCheckBox    = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(142, 338, 275, 348), 1, _replicantFilter);
 	_nonReplicantCheckBox = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(142, 348, 275, 358), 1, _nonReplicantFilter);
 	_othersCheckBox       = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(142, 358, 275, 368), 1, _othersFilter);
-	_cluesScrollBox       = new UIScrollBox(_vm, scrollBoxCallback, this,_vm->_gameInfo->getClueCount(), 1, false, Common::Rect(312, 172, 500, 376), Common::Rect(506, 160, 506, 394));
+	_cluesScrollBox       = new UIScrollBox(_vm, scrollBoxCallback, this, kClueCount, 1, false, Common::Rect(312, 172, 500, 376), Common::Rect(506, 160, 506, 394));
 	_crimesScrollBox      = new UIScrollBox(_vm, scrollBoxCallback, this, 50, 1, false, Common::Rect(154, 258, 291, 298), Common::Rect(120, 249, 120, 297));
 	_uiContainer->add(_whereaboutsCheckBox);
 	_uiContainer->add(_MOCheckBox);
@@ -380,9 +380,10 @@ void KIASectionSuspects::onButtonPressed(int buttonId) {
 void KIASectionSuspects::populateAcquiredClues() {
 	_acquiredClueCount = 0;
 	for (int i = 0; i < kClueCount; ++i) {
-		if (_clues->isAcquired(i)) {
-			_acquiredClues[_acquiredClueCount].clueId = i;
-			_acquiredClues[_acquiredClueCount].actorId = _clues->getFromActorId(i);
+		int clueId = _clues->getClueIdByIndex(i);
+		if (_clues->isAcquired(clueId)) {
+			_acquiredClues[_acquiredClueCount].clueId = clueId;
+			_acquiredClues[_acquiredClueCount].actorId = _clues->getFromActorId(clueId);
 			++_acquiredClueCount;
 		}
 	}
@@ -453,7 +454,7 @@ void KIASectionSuspects::populateVisibleClues() {
 		for (int i = 0; i < _acquiredClueCount; ++i) {
 			int clueId = _acquiredClues[i].clueId;
 
-			if (_vm->_crimesDatabase->getAssetType(i) != -1) {
+			if (_vm->_crimesDatabase->getAssetType(clueId) != -1) {
 				SuspectDatabaseEntry *suspect = _vm->_suspectsDatabase->get(_suspectSelected);
 
 				bool showClue = false;





More information about the Scummvm-git-logs mailing list