[Scummvm-git-logs] scummvm master -> f4fed91a3eb1f8324fb591d34540d19d41c3ffb2
antoniou79
a.antoniou79 at gmail.com
Sun May 30 23:03:19 UTC 2021
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:
f4fed91a3e BLADERUNNER: Don't upload intangible clues to Mainframe
Commit: f4fed91a3eb1f8324fb591d34540d19d41c3ffb2
https://github.com/scummvm/scummvm/commit/f4fed91a3eb1f8324fb591d34540d19d41c3ffb2
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-31T02:03:11+03:00
Commit Message:
BLADERUNNER: Don't upload intangible clues to Mainframe
Change only for Restored Content mode
If KIA hacking is to be important, the player must be able to control exactly what is uploaded to Mainframe.
Intangible clues do not show up in KIA, so the player cannot control sharing them with Mainframe.
Most of them are supposed to not be shared anyway (or some are wrongly set as Intangible and will be fixed in a future bug fix).
Also in Restored Content mode, the mainframe reports (with voiced quote) if clues have been transfered,
so the player would be confused if intangible clues were transfered, since they won't appear in the KIA.
Changed paths:
engines/bladerunner/actor.cpp
engines/bladerunner/crimes_database.cpp
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 8898eb3431..9598043384 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -28,6 +28,7 @@
#include "bladerunner/audio_speech.h"
#include "bladerunner/bladerunner.h"
#include "bladerunner/boundingbox.h"
+#include "bladerunner/crimes_database.h"
#include "bladerunner/game_info.h"
#include "bladerunner/items.h"
#include "bladerunner/mouse.h"
@@ -1377,12 +1378,21 @@ bool Actor::hasClue(int clueId) const {
return _clues->isAcquired(clueId);
}
+// This method is used exclusively for transfers from and to Mainframe
+// see: ScriptBase::Actor_Clues_Transfer_New_From_Mainframe()
+// ScriptBase::Actor_Clues_Transfer_New_To_Mainframe()
+// In Restored Content it will skip transfering clues that are Intangible (default clue type)
+// since those clues do not actually show up in McCoy's KIA
bool Actor::copyClues(int actorId) {
bool newCluesAcquired = false;
Actor *otherActor = _vm->_actors[actorId];
for (int i = 0; i < (int)_vm->_gameInfo->getClueCount(); ++i) {
int clueId = i;
- if (hasClue(clueId) && !_clues->isPrivate(clueId) && otherActor->canAcquireClue(clueId) && !otherActor->hasClue(clueId)) {
+ if (hasClue(clueId)
+ && !_clues->isPrivate(clueId)
+ && (!_vm->_cutContent || _vm->_crimesDatabase->getAssetType(clueId) != kClueTypeIntangible)
+ && otherActor->canAcquireClue(clueId)
+ && !otherActor->hasClue(clueId)) {
int fromActorId = _id;
if (_id == BladeRunnerEngine::kActorVoiceOver) {
fromActorId = _clues->getFromActorId(clueId);
diff --git a/engines/bladerunner/crimes_database.cpp b/engines/bladerunner/crimes_database.cpp
index 91def98aba..2695ef064f 100644
--- a/engines/bladerunner/crimes_database.cpp
+++ b/engines/bladerunner/crimes_database.cpp
@@ -26,6 +26,7 @@
#include "bladerunner/savefile.h"
#include "bladerunner/text_resource.h"
+#include "bladerunner/game_constants.h"
namespace BladeRunner {
@@ -42,8 +43,8 @@ CrimesDatabase::CrimesDatabase(BladeRunnerEngine *vm, const Common::String &clue
}
for (int i = 0; i != _crimeCount; ++i) {
- _crimes[i] = -1;
- _assetTypes[i] = -1;
+ _crimes[i] = -1;
+ _assetTypes[i] = kClueTypeIntangible;
}
}
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index fd196fd074..14f8e8654c 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -369,7 +369,7 @@ enum Clues {
kClueKingstonKitchenBox2 = 263, // Photograph - ESPER hard-copy
kClueCrystalsCigarette = 264, // Object
kClueSpinnerKeys = 265, // Object
- kClueAct2Ended = 266, // (Intangible) - Acquired by McCoy - Identity Reveal for Clovis and Sadik
+ kClueAct2Ended = 266, // (Intangible) - Acquired by McCoy - Not checked in KIA - Identity Reveal for Clovis and Sadik
kClueAct3Ended = 267, // UNUSED
kClueAct4Ended = 268, // UNUSED
kClueExpertBomber = 269, // Audio Recording - When Sadik is Replicant
diff --git a/engines/bladerunner/ui/kia_section_clues.cpp b/engines/bladerunner/ui/kia_section_clues.cpp
index 81472b8e02..08caf31cc3 100644
--- a/engines/bladerunner/ui/kia_section_clues.cpp
+++ b/engines/bladerunner/ui/kia_section_clues.cpp
@@ -146,7 +146,7 @@ void KIASectionClues::draw(Graphics::Surface &surface) {
_vm->_mainFont->drawString(&surface, text, 490, 442, surface.w, surface.format.RGBToColor(136, 168, 255));
int assetType = _vm->_crimesDatabase->getAssetType(clueId);
- if (assetType != -1) {
+ if (assetType != kClueTypeIntangible) {
text = _vm->_textClueTypes->getText(assetType);
} else {
text.clear();
@@ -287,7 +287,7 @@ void KIASectionClues::populateFilters() {
if (_clues->isAcquired(clueId)) {
int assetType = _vm->_crimesDatabase->getAssetType(clueId);
int crimeId = _vm->_crimesDatabase->getCrime(clueId);
- if (_debugIntangible || assetType != -1) {
+ if (_debugIntangible || assetType != kClueTypeIntangible) {
availableFilters[getLineIdForAssetType(assetType)] = true;
availableFilters[getLineIdForCrimeId(crimeId)] = true;
}
@@ -387,7 +387,7 @@ void KIASectionClues::populateClues() {
if (_clues->isAcquired(clueId)) {
int assetType = _vm->_crimesDatabase->getAssetType(clueId);
int crimeId = _vm->_crimesDatabase->getCrime(clueId);
- if (assetType != -1 || _debugIntangible) {
+ if (assetType != kClueTypeIntangible || _debugIntangible) {
if (_filters[getLineIdForAssetType(assetType)] && _filters[getLineIdForCrimeId(crimeId)]) {
int flags = 0x30;
#if BLADERUNNER_ORIGINAL_BUGS
diff --git a/engines/bladerunner/ui/kia_section_crimes.cpp b/engines/bladerunner/ui/kia_section_crimes.cpp
index 774ca6f404..88ab6a580d 100644
--- a/engines/bladerunner/ui/kia_section_crimes.cpp
+++ b/engines/bladerunner/ui/kia_section_crimes.cpp
@@ -376,7 +376,7 @@ void KIASectionCrimes::populateVisibleClues() {
if (_crimeSelected != -1) {
for (int i = 0; i < kClueCount; ++i) {
int clueId = i;
- if (_vm->_crimesDatabase->getAssetType(clueId) != -1
+ if (_vm->_crimesDatabase->getAssetType(clueId) != kClueTypeIntangible
&& _vm->_crimesDatabase->getCrime(clueId) == _crimeSelected
&& _clues->isAcquired(clueId)
) {
diff --git a/engines/bladerunner/ui/kia_section_suspects.cpp b/engines/bladerunner/ui/kia_section_suspects.cpp
index 3bf8113e21..90342b28b4 100644
--- a/engines/bladerunner/ui/kia_section_suspects.cpp
+++ b/engines/bladerunner/ui/kia_section_suspects.cpp
@@ -424,7 +424,7 @@ void KIASectionSuspects::populateVisibleClues() {
for (int i = 0; i < _acquiredClueCount; ++i) {
int clueId = _acquiredClues[i].clueId;
- if (_vm->_crimesDatabase->getAssetType(clueId) != -1) {
+ if (_vm->_crimesDatabase->getAssetType(clueId) != kClueTypeIntangible) {
SuspectDatabaseEntry *suspect = _vm->_suspectsDatabase->get(_suspectSelected);
bool showClue = false;
More information about the Scummvm-git-logs
mailing list