[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