[Scummvm-git-logs] scummvm master -> 5e2fb6fb2672137f9dbcf6f17b8de9c312b236e6

peterkohaut peterkohaut at users.noreply.github.com
Sat Jan 19 23:16:37 CET 2019


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

Summary:
3ac69d40a6 BLADERUNNER: Fixed save selection in the load screen
e45aad9136 BLADERUNNER: Fixed rotation animation
f7754012dd BLADERUNNER: Added "clue" debugger command
5e2fb6fb26 BLADERUNNER: More variable names in the game scripts


Commit: 3ac69d40a6f6cf8d7a657dbf70df1bce234ebe8e
    https://github.com/scummvm/scummvm/commit/3ac69d40a6f6cf8d7a657dbf70df1bce234ebe8e
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-19T23:15:41+01:00

Commit Message:
BLADERUNNER: Fixed save selection in the load screen

If there was a empty slot in save game list, game would load wrong save
file.

Changed paths:
    engines/bladerunner/ui/kia_section_load.cpp


diff --git a/engines/bladerunner/ui/kia_section_load.cpp b/engines/bladerunner/ui/kia_section_load.cpp
index bada5a1..9b37f5e 100644
--- a/engines/bladerunner/ui/kia_section_load.cpp
+++ b/engines/bladerunner/ui/kia_section_load.cpp
@@ -150,7 +150,7 @@ void KIASectionLoad::scrollBoxCallback(void *callbackData, void *source, int lin
 		} else if (lineData == self->_newGameHardLineId) {
 			self->_vm->newGame(2);
 		} else {
-			self->_vm->loadGameState(lineData);
+			self->_vm->loadGameState(self->_saveList[lineData].getSaveSlot());
 		}
 
 		self->_vm->_audioPlayer->playAud(self->_vm->_gameInfo->getSfxTrack(513), 90, 0, 0, 50, 0);


Commit: e45aad9136400e124cff5f2f803fb145f85547d7
    https://github.com/scummvm/scummvm/commit/e45aad9136400e124cff5f2f803fb145f85547d7
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-19T23:15:41+01:00

Commit Message:
BLADERUNNER: Fixed rotation animation

Animated rotation wasnt checking for angle boundaries properly.

Changed paths:
    engines/bladerunner/actor.cpp


diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index 974cfdc..aa49d79 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -608,12 +608,12 @@ bool Actor::tick(bool forceDraw, Common::Rect *screenRect) {
 				int facingChange = angleChange * (512.0f / M_PI);
 				if (facingChange != 0) {
 					_facing = _facing - facingChange;
-					if (_facing < 0) {
+					while (_facing < 0) {
 						_facing += 1024;
 					}
 
-					if (_facing >= 1024) {
-						_facing = _facing - 1024;
+					while (_facing >= 1024) {
+						_facing -= 1024;
 					}
 				}
 			}
@@ -760,7 +760,15 @@ void Actor::setFacing(int facing, bool halfOrSet) {
 		}
 	}
 
-	_facing = (_facing + offset) % 1024;
+	_facing += offset;
+
+	while (_facing < 0) {
+		_facing += 1024;
+	}
+
+	while (_facing >= 1024) {
+		_facing -= 1024;
+	}
 }
 
 void Actor::setBoundingBox(const Vector3 &position, bool retired) {


Commit: f7754012dd1766959aaf4eca8ad3028afab5d7d0
    https://github.com/scummvm/scummvm/commit/f7754012dd1766959aaf4eca8ad3028afab5d7d0
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-19T23:15:41+01:00

Commit Message:
BLADERUNNER: Added "clue" debugger command

Changed paths:
    engines/bladerunner/debugger.cpp


diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index 58994b8..5c3346d 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -71,6 +71,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 	registerCmd("say", WRAP_METHOD(Debugger, cmdSay));
 	registerCmd("scene", WRAP_METHOD(Debugger, cmdScene));
 	registerCmd("var", WRAP_METHOD(Debugger, cmdVariable));
+	registerCmd("clue", WRAP_METHOD(Debugger, cmdClue));
 	registerCmd("load", WRAP_METHOD(Debugger, cmdLoad));
 	registerCmd("save", WRAP_METHOD(Debugger, cmdSave));
 }
@@ -490,6 +491,42 @@ bool Debugger::cmdVariable(int argc, const char **argv) {
 	return true;
 }
 
+bool Debugger::cmdClue(int argc, const char **argv) {
+	if (argc != 3 && argc != 4) {
+		debugPrintf("Get or changes clue for an actor.\n");
+		debugPrintf("Usage: %s <actorId> <clueId> [<value>]\n", argv[0]);
+		return true;
+	}
+
+	int actorId = atoi(argv[1]);
+
+	Actor *actor = nullptr;
+	if ((actorId >= 0 && actorId < (int)_vm->_gameInfo->getActorCount()) || (actorId == kActorVoiceOver)) {
+		actor = _vm->_actors[actorId];
+	}
+
+	if (actor == nullptr) {
+		debugPrintf("Unknown actor %i\n", actorId);
+		return true;
+	}
+
+	int clueId = atoi(argv[2]);
+
+	// TODO: check clueId
+
+	if (argc == 4) {
+		int value = atoi(argv[3]);
+		if (value != 0) {
+			actor->acquireClue(clueId, true, -1);
+		} else {
+			actor->loseClue(clueId);
+		}
+	}
+	debugPrintf("actorClue(%i, %i) = %i\n", actorId, clueId, actor->hasClue(clueId));
+
+	return true;
+}
+
 bool Debugger::cmdLoad(int argc, const char **argv) {
 	if (argc != 2) {
 		debugPrintf("Loads a save game from original format.\n");


Commit: 5e2fb6fb2672137f9dbcf6f17b8de9c312b236e6
    https://github.com/scummvm/scummvm/commit/5e2fb6fb2672137f9dbcf6f17b8de9c312b236e6
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-19T23:15:41+01:00

Commit Message:
BLADERUNNER: More variable names in the game scripts

Fixed some errors as well

Changed paths:
    engines/bladerunner/actor.cpp
    engines/bladerunner/actor_clues.cpp
    engines/bladerunner/debugger.h
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/bullet_bob.cpp
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/ai/crazylegs.cpp
    engines/bladerunner/script/ai/dektora.cpp
    engines/bladerunner/script/ai/gaff.cpp
    engines/bladerunner/script/ai/generic_walker_a.cpp
    engines/bladerunner/script/ai/gordo.cpp
    engines/bladerunner/script/ai/guzza.cpp
    engines/bladerunner/script/ai/hanoi.cpp
    engines/bladerunner/script/ai/holloway.cpp
    engines/bladerunner/script/ai/howie_lee.cpp
    engines/bladerunner/script/ai/izo.cpp
    engines/bladerunner/script/ai/klein.cpp
    engines/bladerunner/script/ai/mccoy.cpp
    engines/bladerunner/script/ai/moraji.cpp
    engines/bladerunner/script/ai/officer_leary.cpp
    engines/bladerunner/script/ai/photographer.cpp
    engines/bladerunner/script/ai/runciter.cpp
    engines/bladerunner/script/ai/sadik.cpp
    engines/bladerunner/script/ai/sebastian.cpp
    engines/bladerunner/script/ai/sergeant_walls.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/ai/zuben.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/esper_script.cpp
    engines/bladerunner/script/scene/ar01.cpp
    engines/bladerunner/script/scene/ar02.cpp
    engines/bladerunner/script/scene/bb02.cpp
    engines/bladerunner/script/scene/bb03.cpp
    engines/bladerunner/script/scene/bb04.cpp
    engines/bladerunner/script/scene/bb05.cpp
    engines/bladerunner/script/scene/bb07.cpp
    engines/bladerunner/script/scene/bb10.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/ct02.cpp
    engines/bladerunner/script/scene/ct04.cpp
    engines/bladerunner/script/scene/ct05.cpp
    engines/bladerunner/script/scene/ct06.cpp
    engines/bladerunner/script/scene/ct08.cpp
    engines/bladerunner/script/scene/ct10.cpp
    engines/bladerunner/script/scene/ct11.cpp
    engines/bladerunner/script/scene/ct12.cpp
    engines/bladerunner/script/scene/ct51.cpp
    engines/bladerunner/script/scene/dr01.cpp
    engines/bladerunner/script/scene/dr03.cpp
    engines/bladerunner/script/scene/dr04.cpp
    engines/bladerunner/script/scene/dr05.cpp
    engines/bladerunner/script/scene/dr06.cpp
    engines/bladerunner/script/scene/hc01.cpp
    engines/bladerunner/script/scene/hc02.cpp
    engines/bladerunner/script/scene/hc03.cpp
    engines/bladerunner/script/scene/hc04.cpp
    engines/bladerunner/script/scene/hf01.cpp
    engines/bladerunner/script/scene/hf03.cpp
    engines/bladerunner/script/scene/hf04.cpp
    engines/bladerunner/script/scene/hf05.cpp
    engines/bladerunner/script/scene/hf06.cpp
    engines/bladerunner/script/scene/hf07.cpp
    engines/bladerunner/script/scene/kp05.cpp
    engines/bladerunner/script/scene/kp06.cpp
    engines/bladerunner/script/scene/ma01.cpp
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/nr02.cpp
    engines/bladerunner/script/scene/nr04.cpp
    engines/bladerunner/script/scene/nr06.cpp
    engines/bladerunner/script/scene/nr07.cpp
    engines/bladerunner/script/scene/nr08.cpp
    engines/bladerunner/script/scene/nr11.cpp
    engines/bladerunner/script/scene/ps01.cpp
    engines/bladerunner/script/scene/ps03.cpp
    engines/bladerunner/script/scene/ps04.cpp
    engines/bladerunner/script/scene/ps06.cpp
    engines/bladerunner/script/scene/ps07.cpp
    engines/bladerunner/script/scene/ps09.cpp
    engines/bladerunner/script/scene/ps14.cpp
    engines/bladerunner/script/scene/ps15.cpp
    engines/bladerunner/script/scene/rc01.cpp
    engines/bladerunner/script/scene/rc02.cpp
    engines/bladerunner/script/scene/rc03.cpp
    engines/bladerunner/script/scene/rc04.cpp
    engines/bladerunner/script/scene/rc51.cpp
    engines/bladerunner/script/scene/tb02.cpp
    engines/bladerunner/script/scene/tb05.cpp
    engines/bladerunner/script/scene/tb06.cpp
    engines/bladerunner/script/scene/tb07.cpp
    engines/bladerunner/script/scene/ug02.cpp
    engines/bladerunner/script/scene/ug03.cpp
    engines/bladerunner/script/scene/ug05.cpp
    engines/bladerunner/script/scene/ug06.cpp
    engines/bladerunner/script/scene/ug08.cpp
    engines/bladerunner/script/scene/ug10.cpp
    engines/bladerunner/script/scene/ug13.cpp
    engines/bladerunner/script/scene/ug14.cpp
    engines/bladerunner/script/scene/ug16.cpp
    engines/bladerunner/script/scene/ug18.cpp
    engines/bladerunner/script/scene_script.h
    engines/bladerunner/script/vk_script.cpp


diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index aa49d79..66f2e7a 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -562,6 +562,10 @@ bool Actor::tick(bool forceDraw, Common::Rect *screenRect) {
 		int newAnimation = 0, newFrame = 0;
 		_vm->_aiScripts->updateAnimation(_id, &newAnimation, &newFrame);
 
+		if (newFrame < 0) {
+			assert(newFrame >= 0);
+		}
+
 		if (_animationId != newAnimation) {
 			if (_fps != 0 && _fps != -1) {
 				_animationId = newAnimation;
diff --git a/engines/bladerunner/actor_clues.cpp b/engines/bladerunner/actor_clues.cpp
index 07df81e..d7833d7 100644
--- a/engines/bladerunner/actor_clues.cpp
+++ b/engines/bladerunner/actor_clues.cpp
@@ -110,14 +110,16 @@ int ActorClues::getModifier(int actorId, int otherActorId, int clueId) {
 	} else {
 		modifier1 = 0;
 	}
-	modifier2 = 0;
-	modifier3 = _vm->_aiScripts->callGetFriendlinessModifierIfGetsClue(otherActorId, actorId, clueId);
 
+	modifier2 = 0;
 	for (int i = 0; i < (int)_vm->_gameInfo->getActorCount(); i++) {
 		if (i != actorId && i != otherActorId) {
 			modifier2 += (friendliness - 50) * _vm->_aiScripts->callGetFriendlinessModifierIfGetsClue(i, otherActorId, clueId) / 100;
 		}
 	}
+
+	modifier3 = _vm->_aiScripts->callGetFriendlinessModifierIfGetsClue(otherActorId, actorId, clueId);
+
 	modifier4 = _vm->_rnd.getRandomNumberRng(0, (100 - actor->getIntelligence()) / 10);
 
 	if (_vm->_rnd.getRandomNumberRng(0, 1) == 1) {
@@ -160,14 +162,14 @@ void ActorClues::acquireCluesByRelations(int actorId, int otherActorId) {
 		uint avgParameters = (otherActor->getHonesty() + otherActor->getIntelligence() + actor->getFriendlinessToOther(otherActorId)) / 3;
 		int clue1count = avgParameters * count1 / 100;
 
-		if (avgParameters >= 50 && !clue1count && count1 == 1) {
+		if (avgParameters >= 50 && clue1count == 0 && count1 == 1) {
 			clue1count = 1;
 		}
 
 		avgParameters = (actor->getHonesty() + actor->getIntelligence() + otherActor->getFriendlinessToOther(actorId)) / 3;
 		int clue2count = avgParameters * count2 / 100;
 
-		if (avgParameters >= 50 && !clue2count && count2 == 1) {
+		if (avgParameters >= 50 && clue2count == 0 && count2 == 1) {
 			clue2count = 1;
 		}
 
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index fef545e..f801aee 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -59,6 +59,7 @@ public:
 	bool cmdSay(int argc, const char **argv);
 	bool cmdScene(int argc, const char **argv);
 	bool cmdVariable(int argc, const char **argv);
+	bool cmdClue(int argc, const char **argv);
 	bool cmdLoad(int argc, const char **argv);
 	bool cmdSave(int argc, const char **argv);
 
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 98dc5fa..31851c9 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -143,7 +143,7 @@ enum Clues {
 	kClueLicensePlate = 37,
 	kClueLicensePlateMatch = 38,
 	kClueLabPaintTransfer = 39,
-	kClueDispatchHitAndRun = 40,
+	kClueDispatchHitAndRun = 40, // is never acquired
 	kClueInceptShotRoy = 41,
 	kClueInceptShotsLeon = 42,
 	kCluePhoneCallGuzza = 43,
@@ -501,7 +501,6 @@ enum Flags {
 	kFlagCT02ZubenTalk = 59,
 	kFlagMA02MaggieIntroduced = 60,
 	kFlagChapter1Ended = 61,
-	// 61 is never used
 	kFlagMA04toMA05 = 62,
 	kFlagMA05toMA04 = 63,
 	kFlagGaffApproachedMcCoyAboutZuben = 64,
@@ -539,8 +538,11 @@ enum Flags {
 	kFlagTB02toTB05 = 96, // is never checked
 	kFlagTB05toTB06 = 97, // is never checked
 	kFlagTB06toTB05 = 98,
-
-	// 103 is never set
+	kFlagTB05MonitorIntro = 99,
+	kFlagTB05MonitorUnlockAttempt = 100,
+	kFlagTB05MonitorDone = 101,
+	kFlagTB06Visited = 102,
+	kFlagNotUsed103 = 103, // is never set
 	kFlagKleinTalkPaintTransfer = 104,
 	kFlagKleinTalkChromeDebris = 105,
 	kFlagIsabellaIntroduced = 105,
@@ -571,9 +573,12 @@ enum Flags {
 	kFlagPS02toPS07 = 131,
 	kFlagPS02toPS03 = 132,
 	kFlagPS02toPS09 = 133,
+	kFlagPS03toPS14 = 134,
+	kFlagPS14toPS03 = 135,
 	kFlagPS05toPS06 = 136,
 	kFlagHomelessTalkedTo = 137,
 	kFlagKleinInsulted = 138,
+	// 139 is never used
 	// 140 is never used
 	kFlagRC02LucyDeskAvailable = 141,
 	kFlagNotUsed142 = 142, // is never checked
@@ -583,7 +588,7 @@ enum Flags {
 	kFlagChapter1Ending = 146,
 	kFlagChopstickWrapperTaken = 147,
 	kFlagCandyTaken = 148,
-	kFlagDogTaken = 149,
+	kFlagToyDogTaken = 149,
 	kFlagNotUsed150 = 150, // has no use
 	kFlagRC03UnlockedToUG01 = 151,
 	kFlagUG15toUG16 = 152,
@@ -592,7 +597,7 @@ enum Flags {
 	kFlagTB03toTB02 = 155,
 	kFlagKleinInsultedTalk = 156,
 	// 157 is never used
-
+	kFlagSergeantWallsBuzzInDone = 158,
 	kFlagGuzzaTalkZubenRetired = 159,
 	kFlagGuzzaTalkZubenEscaped = 160,
 	kFlagGuzzaTalk1 = 161,
@@ -618,15 +623,32 @@ enum Flags {
 	kFlagMcCoyAtNRxx = 181,
 	kFlagMcCoyAtRCxx = 182,
 
+
+
 	kFlagRC01PoliceDone = 186,
 	kFlagRC02TalkedToRunciter = 187,
-
+	// 188 is never used
+	// 189 is never used
 	kFlagShellCasingsTaken = 190,
 	// 191 is never used
 	kFlagBoughtHowieLeeFood = 192,
-
+	// 193 is never used
+	// 194 is never used
+	// 195 is never used
+	kFlagKleinAnimation1 = 196,
+	kFlagKleinAnimation2 = 197,
+	kFlagKleinAnimation3 = 198,
+	kFlagOfficerLearyTakingNotes = 199,
+	// 200 is never used
+	// 201 is never used
+	// 202 is never used
+	// 203 is never used
 	kFlagPS15toPS05 = 204,
-
+	// 205 is never used
+	kFlagSergeantWallsBuzzInRequest = 206, // is never set
+	// 207 is never used
+	// 208 is never used
+	// 209 is never used
 	kFlagCT02ZubenFled = 210,
 	kFlagPS09Entered = 211,
 	kFlagNotUsed212 = 212, // is never checked
@@ -645,10 +667,26 @@ enum Flags {
 	kFlagDR02toDR01 = 225,
 	kFlagDR02toDR03 = 226,
 	kFlagDR03toDR02 = 227,
-
+	kFlagDR04toDR05 = 228, // is never checked
+	kFlagDR05toDR04 = 229,
+	kFlagDR04toDR06 = 230,
+	kFlagDR06toDR04 = 231,
+	kFlagNotUsed232 = 232,
+	// 233 is never used
 	kFlagCT02toCT01walk = 234,
-
-	kFlagArrivedFromSpinner = 247,
+	// 235 is never used
+	kFlagMcCoyAnimation1 = 236,
+	// 237 is never used
+	// 238 is never used
+	kFlagHowieLeeAnimation1 = 239,
+	// 240 is never used
+	// 241 is never used
+	// 242 is never used
+	// 243 is never used
+	// 244 is never used
+	// 245 is never used
+	// 246 is never used
+	kFlagArrivedFromSpinner1 = 247,
 	kFlagSpinnerAtCT01 = 248,
 	kFlagSpinnerAtRC01 = 249,
 	kFlagSpinnerAtMA01 = 250,
@@ -667,9 +705,41 @@ enum Flags {
 	kFlagBB02toBB01 = 263,
 	kFlagBB01toDR02 = 264,
 	kFlagDR02toBB01 = 265,
-
+	kFlagMorajiExploded = 266,
+	kFlagDR03ChewTalk1 = 267,
+	kFlagDR06JesterActive = 268,
+	kFlagDR05BombActivated = 269,
+	kFlagDR05ChainShot = 270,
+	kFlagDR05BombWillExplode = 271,
+	kFlagDR05BombExploded = 272,
+	kFlagArrivedFromSpinner2 = 273,
+	kFlagDR05MorajiTalk = 274,
+	// 275 is never used
+	kFlagNotUsed276 = 276, // is never set
+	// 277 is never used
+	kFlagDR06KeyboardChecked = 278,
+	// 279 is never used
+	kFlagDR06VidphoneChecked = 280,
+	kFlagBB03toBB02 = 281,
+	kFlagBB02toBB03 = 282, // is never checked
+	kFlagBB03toBB04 = 283,
+	kFlagBB04toBB03 = 284,
+	kFlagBB03toBB05 = 285, // is never checked
+	kFlagBB05toBB03 = 286,
+	kFlagRC04Entered = 287,
+	// 288 is never used
+	kFlagRC04McCoyShotBob = 289,
+	kFlagRC04BobTalk1 = 290,
+	// 291 is never used
+	kFlagRC04BobTalk2 = 292,
 	kFlagCT02PotTipped = 293,
 	kFlagGaffSpinnerCT12 = 294,
+	kFlagRC04BobShootMcCoy = 295,
+	kFlagRC04McCoyCombatMode = 296,
+
+	kFlagRC04McCoyWarned =  303,
+	kFlagRC04BobTalkAmmo = 305,
+	kFlagNotUsed306 = 306, // is never set
 	kFlagSpinnerAtTB02 = 307,
 	kFlagHF01toHF02 = 308,
 	kFlagHF02toHF01 = 309,
@@ -693,11 +763,27 @@ enum Flags {
 	kFlagUG09toCT12 = 432,
 	kFlagCT12ToUG09 = 433,
 	kFlagGenericWalkerWaiting = 443,
+	kFlagTB02ElevatorToTB05 = 450,
+	kFlagTB05Entered = 451,
+	kFlagTB02GuardTalk1 = 453,
+	kFlagTB02GuardTalk2 = 455,
+	kFlagTB02SteeleTalk = 456,
+	kFlagTB02SteeleEnter = 457,
+	kFlagSteeleWalkingAround = 460,
 	kFlagMaggieIsHurt = 461,
+	kFlagPS04GuzzaLeft = 462,
 	kFlagMcCoyArrested = 465,
+	kFlagMcCoyAtPS03 = 478, // has no use
+	kFlagMcCoyAtHCxx = 479,
+	kFlagTB06Introduction = 483,
+	kFlagPhotographerToTB06 = 485,
 	kFlagKIAPrivacyAddon = 487,
 	kFlagCT04HomelessTrashFinish = 492,
+	kFlagDR05ExplodedEntered = 511,
+	kFlagDR05BombExplosionView = 515,
 	kFlagCT07ZubenAttack = 516,
+	kFlagTB06DogCollarTaken = 519,
+	kFlagTB06KitchenBoxTaken = 520,
 	kFlagKIAPrivacyAddonIntro = 599,
 	kFlagTB07toTB02 = 608,
 	kFlagMcCoySleeping = 647,
@@ -709,12 +795,16 @@ enum Flags {
 	kFlagPS05TV2 = 690,
 	kFlagPS05TV3 = 691,
 	kFlagPS05TV4 = 692,
+	kFlagRC04Locked = 702,
+	kFlagTB06PhotographTalk1 = 707,
 	kFlagRC51Discovered = 709,
 	kFlagMA04WatchedTV = 711,
 	kFlagMcCoyShotAtZuben = 712,
+	kFlagRC04BobTalk3 = 717,
 	kFlagCT02McCoyFell = 719,
 	kFlagCT02McCoyCombatReady = 720,
-	kFlagZubenBountyPaid = 723
+	kFlagZubenBountyPaid = 723,
+	kFlagPS04WeaponsOrderForm = 727
 };
 
 enum Variables {
@@ -722,6 +812,8 @@ enum Variables {
 	kVariableChinyen = 2,
 	kVariablePoliceMazeScore = 9,
 	kVariablePoliceMazePS10TargetCounter = 10,
+	kVariableMcCoyEvidenceMissed = 14,
+	kVariableBobShot = 24, // has no use
 	kVariableGenericWalkerAModel = 32,
 	kVariableGenericWalkerBModel = 33,
 	kVariableGenericWalkerCModel = 34,
@@ -790,6 +882,9 @@ enum AnimationModes {
 	kAnimationModeCombatRun = 8,
 	kAnimationModeHit = 21,
 	kAnimationModeCombatHit = 22,
+	kAnimationModeSpinnerGetIn = 41,
+	kAnimationModeSpinnerGetOut = 42,
+	// 43 - taking photo/using cellphone
 	kAnimationModeWalkUp = 44,
 	kAnimationModeWalkDown = 45,
 	kAnimationModeCombatWalkUp = 46,
@@ -844,9 +939,9 @@ enum Scenes {
 	kSceneDR04 = 28,
 	kSceneDR05 = 29,
 	kSceneDR06 = 30,
-	kSceneHC01 = 31,
-	kSceneHC02 = 32,
-	kSceneHC03 = 33,
+	kSceneHC01 = 31, // Hawker's circle - Green pawn
+	kSceneHC02 = 32, // Hawker's circle - China bar
+	kSceneHC03 = 33, // Hawker's circle -
 	kSceneHF01 = 34,
 	kSceneHF02 = 35,
 	kSceneHF03 = 36,
@@ -893,12 +988,12 @@ enum Scenes {
 	kScenePS14 = 77,
 	kSceneRC01 = 78, // Runciter - Outside
 	kSceneRC02 = 79, // Runciter - Inside
-	kSceneRC03 = 80,
-	kSceneRC04 = 81,
-	kSceneTB02 = 82,
+	kSceneRC03 = 80, // Bullet Bob - outside
+	kSceneRC04 = 81, // Bullet Bob - inside
+	kSceneTB02 = 82, // Tyrell Building - reception
 	kSceneTB03 = 83,
-	kSceneTB05 = 84,
-	kSceneTB06 = 85,
+	kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - outside
+	kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - inside
 	kSceneUG01 = 86,
 	kSceneUG02 = 87,
 	kSceneUG03 = 88,
@@ -919,10 +1014,10 @@ enum Scenes {
 	kSceneUG19 = 103,
 	kSceneBB51 = 104,
 	kSceneCT51 = 105,
-	kSceneHC04 = 106,
+	kSceneHC04 = 106, // Hawker's circle - Kingston kitchen
 	kSceneRC51 = 107, // Runciter - Lucy's desk
 	kSceneTB07 = 108,
-	kScenePS15 = 119,
+	kScenePS15 = 119, // Police Station - Armory
 	kSceneBB12 = 120
 };
 
@@ -1044,12 +1139,21 @@ enum GameItems {
 	kItemPoliceMazeTarget8 = 7,
 	kItemPoliceMazeTarget9 = 8,
 	kItemChromeDebris = 66,
+	kItemDragonflyEarring = 76,
 	kItemCandy = 79,
 	kItemChopstickWrapper = 82,
+	kItemDogCollar = 84,
 	kItemToyDog = 98,
 	kItemShellCasingA = 100,
 	kItemShellCasingB = 101,
-	kItemShellCasingC = 102
+	kItemShellCasingC = 102,
+	kItemDeadDogA = 103,
+	kItemDeadDogB = 104,
+	kItemDeadDogC = 105,
+	kItemKitchenBox = 108,
+	kItemWeaponsCrate = 110,
+	kItemWeaponsOrderForm = 111,
+	kItemTyrellSalesPamphlet = 119
 };
 
 enum Elevators {
@@ -1127,11 +1231,33 @@ enum GoalMcCoy {
 	kGoalMcCoyDodge = 1
 };
 
+enum GoalSteele {
+	kGoalSteeleGoToTB02 = 110,
+	kGoalSteeleLeaveTB02 = 111,
+	kGoalSteeleGoToPoliceStation = 112,
+	kGoalSteeleWalkAround = 113,
+	kGoalSteeleWalkAroundRestart = 190
+};
+
+enum GoalGuzza {
+	kGoalGuzzaLeaveOffice = 100,
+	kGoalGuzzaGoToHawkersCircle = 101,
+	kGoalGuzzaGoToOffice = 102
+};
+
 enum GoalTransient {
 	kGoalTransientDefault = 0,
 	kGoalTransientCT04Leave = 2
 };
 
+enum GoalBulletBob {
+	kGoalBulletBobDefault = 0,
+	kGoalBulletBobWarningMcCoy = 1,
+	kGoalBulletBobShootMcCoy = 2,
+	kGoalBulletBobShotMcCoy = 3, // has no use
+	kGoalBulletBobDead = 4
+};
+
 enum GoalZuben {
 	kGoalZubenDefault = 0,
 	kGoalZubenCT01Leave = 1,
@@ -1154,7 +1280,8 @@ enum GoalZuben {
 
 enum GoalOfficerLeary {
 	kGoalOfficerLearyDefault = 0,
-	kGoalOfficerLearyCrowdInterrogation = 1
+	kGoalOfficerLearyRC01WalkToCrowd = 1,
+	kGoalOfficerLearyRC01CrowdInterrogation = 2
 };
 
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/ai/bullet_bob.cpp b/engines/bladerunner/script/ai/bullet_bob.cpp
index 87394fa..439431d 100644
--- a/engines/bladerunner/script/ai/bullet_bob.cpp
+++ b/engines/bladerunner/script/ai/bullet_bob.cpp
@@ -42,56 +42,68 @@ void AIScriptBulletBob::Initialize() {
 	_var3 = 1;
 	_var4 = 0;
 
-	Actor_Set_Goal_Number(kActorBulletBob, 0);
-	Actor_Set_Targetable(kActorBulletBob, 1);
+	Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobDefault);
+	Actor_Set_Targetable(kActorBulletBob, true);
 }
 
 bool AIScriptBulletBob::Update() {
-	if (Game_Flag_Query(289) && Actor_Query_Goal_Number(kActorBulletBob) != 4) {
-		Actor_Set_Goal_Number(kActorBulletBob, 4);
+	if (Game_Flag_Query(kFlagRC04McCoyShotBob)
+	 && Actor_Query_Goal_Number(kActorBulletBob) != kGoalBulletBobDead
+	) {
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobDead);
 	}
-	if (Player_Query_Combat_Mode() != 1
-			|| Player_Query_Current_Scene() != kSceneRC04
-			|| Game_Flag_Query(296)
-			|| Global_Variable_Query(kVariableChapter) >= 4) {
-		if (Actor_Query_Goal_Number(kActorBulletBob) == 1 && !Player_Query_Combat_Mode()) {
-			AI_Countdown_Timer_Reset(kActorBulletBob, 2);
-			Game_Flag_Reset(296);
-			Game_Flag_Set(303);
-			Actor_Set_Goal_Number(kActorBulletBob, 0);
-		}
-	} else {
+
+	if ( Player_Query_Combat_Mode()
+	 &&  Player_Query_Current_Scene() == kSceneRC04
+	 && !Game_Flag_Query(kFlagRC04McCoyCombatMode)
+	 &&  Global_Variable_Query(kVariableChapter) < 4
+	) {
 		AI_Countdown_Timer_Reset(kActorBulletBob, 2);
 		AI_Countdown_Timer_Start(kActorBulletBob, 2, 10);
-		Actor_Set_Goal_Number(kActorBulletBob, 1);
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobWarningMcCoy);
 		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -15);
-		Game_Flag_Set(296);
+		Game_Flag_Set(kFlagRC04McCoyCombatMode);
+	} else if ( Actor_Query_Goal_Number(kActorBulletBob) == kGoalBulletBobWarningMcCoy
+	        && !Player_Query_Combat_Mode()
+	) {
+		AI_Countdown_Timer_Reset(kActorBulletBob, 2);
+		Game_Flag_Reset(kFlagRC04McCoyCombatMode);
+		Game_Flag_Set(kFlagRC04McCoyWarned);
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobDefault);
 	}
-	if (Actor_Query_Goal_Number(kActorBulletBob) != 2 || Game_Flag_Query(295) || _animationState) {
-		if (Game_Flag_Query(303) == 1 && Player_Query_Combat_Mode() == 1 && Actor_Query_Goal_Number(kActorBulletBob) != 4) {
-			Actor_Set_Goal_Number(kActorBulletBob, 2);
-		} else {
-			return false;
-		}
-	} else {
-		Actor_Face_Heading(kActorBulletBob, 208, 0);
+
+	if ( Actor_Query_Goal_Number(kActorBulletBob) == kGoalBulletBobShootMcCoy
+	 && !Game_Flag_Query(kFlagRC04BobShootMcCoy)
+	 &&  _animationState == 0
+	) {
+		Actor_Face_Heading(kActorBulletBob, 208, false);
 		_animationFrame = 0;
 		_animationState = 2;
-		Actor_Set_Goal_Number(kActorBulletBob, 3);
-		Game_Flag_Set(295);
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobShotMcCoy);
+		Game_Flag_Set(kFlagRC04BobShootMcCoy);
+		return true;
 	}
 
-	return true;
+	if (Game_Flag_Query(kFlagRC04McCoyWarned)
+	 && Player_Query_Combat_Mode()
+	 && Actor_Query_Goal_Number(kActorBulletBob) != kGoalBulletBobDead
+	) {
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobShootMcCoy);
+		return true;
+	}
+
+	return false;
 }
 
 void AIScriptBulletBob::TimerExpired(int timer) {
-	if (timer != 2 || Actor_Query_Goal_Number(kActorBulletBob) != 1)
-		return; //false;
-
-	Actor_Set_Goal_Number(kActorBulletBob, 2);
-	AI_Countdown_Timer_Reset(kActorBulletBob, 2);
-
-	return; //true;
+	if (timer == 2
+	 && Actor_Query_Goal_Number(kActorBulletBob) == kGoalBulletBobWarningMcCoy
+	) {
+		Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobShootMcCoy);
+		AI_Countdown_Timer_Reset(kActorBulletBob, 2);
+		return; //true;
+	}
+	return; //false;
 }
 
 void AIScriptBulletBob::CompletedMovementTrack() {
@@ -127,14 +139,14 @@ void AIScriptBulletBob::ShotAtAndMissed() {
 }
 
 bool AIScriptBulletBob::ShotAtAndHit() {
-	Global_Variable_Increment(24, 1);
-	if (Global_Variable_Query(24) > 0) {
-		Actor_Set_Targetable(kActorBulletBob, 0);
+	Global_Variable_Increment(kVariableBobShot, 1);
+	if (Global_Variable_Query(kVariableBobShot) > 0) {
+		Actor_Set_Targetable(kActorBulletBob, false);
 		Actor_Set_Goal_Number(kActorBulletBob, 99);
 		_animationFrame = 0;
  		_animationState = 3;
 		Ambient_Sounds_Play_Speech_Sound(2, 9000, 100, 0, 0, 0);
-		Actor_Face_Heading(kActorBulletBob, 281, 0);
+		Actor_Face_Heading(kActorBulletBob, 281, false);
 	}
 
 	return false;
@@ -149,35 +161,45 @@ int AIScriptBulletBob::GetFriendlinessModifierIfGetsClue(int otherActorId, int c
 }
 
 bool AIScriptBulletBob::GoalChanged(int currentGoalNumber, int newGoalNumber) {
-	if (newGoalNumber || Game_Flag_Query(303) != 1 || Player_Query_Current_Scene() != kSceneRC04) {
-		if (newGoalNumber == 1 && !Game_Flag_Query(303) && Player_Query_Current_Scene() == kSceneRC04) {
-			Actor_Says(kActorBulletBob, 120, 37);
-			Actor_Says(kActorMcCoy, 4915, 13);
-			return true;
-		}
-		if (newGoalNumber == 6) {
-			Scene_Exits_Disable();
-			Actor_Force_Stop_Walking(kActorMcCoy);
-			Ambient_Sounds_Play_Speech_Sound(kActorMcCoy, 9900, 100, 0, 0, 0);
-			Actor_Change_Animation_Mode(kActorMcCoy, 48);
-			Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
-			Scene_Exits_Enable();
-		}
-		if (newGoalNumber != 4) {
-			return false;
-		}
-		if (Actor_Clue_Query(kActorMcCoy, 164) != 1) {
-			Delay(2000);
-			Actor_Voice_Over(2100, kActorVoiceOver);
-			Actor_Voice_Over(2110, kActorVoiceOver);
-			Actor_Voice_Over(2120, kActorVoiceOver);
-			Actor_Voice_Over(2130, kActorVoiceOver);
-		}
-	} else {
+	if (newGoalNumber == kGoalBulletBobDefault
+	 && Game_Flag_Query(kFlagRC04McCoyWarned)
+	 && Player_Query_Current_Scene() == kSceneRC04
+	) {
 		Actor_Says(kActorBulletBob, 140, 16);
+		return true;
 	}
 
-	return true;
+	if ( newGoalNumber == kGoalBulletBobWarningMcCoy
+	 && !Game_Flag_Query(kFlagRC04McCoyWarned)
+	 &&  Player_Query_Current_Scene() == kSceneRC04
+	) {
+		Actor_Says(kActorBulletBob, 120, 37);
+		Actor_Says(kActorMcCoy, 4915, 13);
+		return true;
+	}
+
+	if (newGoalNumber == kGoalBulletBobDead
+	 && !Actor_Clue_Query(kActorMcCoy, kClueVKBobGorskyReplicant)
+	) {
+		Delay(2000);
+		Actor_Voice_Over(2100, kActorVoiceOver);
+		Actor_Voice_Over(2110, kActorVoiceOver);
+		Actor_Voice_Over(2120, kActorVoiceOver);
+		Actor_Voice_Over(2130, kActorVoiceOver);
+		return true;
+	}
+
+	if (newGoalNumber == 6) {
+		Scene_Exits_Disable();
+		Actor_Force_Stop_Walking(kActorMcCoy);
+		Ambient_Sounds_Play_Speech_Sound(kActorMcCoy, 9900, 100, 0, 0, 0);
+		Actor_Change_Animation_Mode(kActorMcCoy, 48);
+		Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
+		Scene_Exits_Enable();
+		return true;
+	}
+
+	return false;
 }
 
 bool AIScriptBulletBob::UpdateAnimation(int *animation, int *frame) {
@@ -256,7 +278,7 @@ bool AIScriptBulletBob::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(510) - 1) {
 			_animationFrame = Slice_Animation_Query_Number_Of_Frames(510) - 1;
 			_animationState = 16;
-			Game_Flag_Set(289);
+			Game_Flag_Set(kFlagRC04McCoyShotBob);
 		}
 		break;
 
@@ -414,14 +436,14 @@ bool AIScriptBulletBob::UpdateAnimation(int *animation, int *frame) {
 
 bool AIScriptBulletBob::ChangeAnimationMode(int mode) {
 	switch (mode) {
-	case 0:
+	case kAnimationModeIdle:
 		if (_animationState > 4 || _animationState) {
 			_animationState = 0;
 			_animationFrame = 0;
 		}
 		break;
 
-	case 3:
+	case kAnimationModeTalk:
 	case 9:
 	case 30:
 		if (_animationState < 6 || _animationState > 13) {
@@ -431,14 +453,14 @@ bool AIScriptBulletBob::ChangeAnimationMode(int mode) {
 		}
 		break;
 
-	case 4:
+	case kAnimationModeCombatIdle:
 		if (_animationState <= 4 && !_animationState) {
 			_animationState = 14;
 			_animationFrame = 0;
 		}
 		break;
 
-	case 6:
+	case kAnimationModeCombatAttack:
 		_animationState = 2;
 		_animationFrame = 0;
 		break;
@@ -461,8 +483,8 @@ bool AIScriptBulletBob::ChangeAnimationMode(int mode) {
 		}
 		break;
 
-	case 21:
-	case 22:
+	case kAnimationModeHit:
+	case kAnimationModeCombatHit:
 		_animationState = 3;
 		_animationFrame = 0;
 		break;
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 04fd7cd..a47a4bb 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -178,7 +178,7 @@ void AIScriptClovis::Retired(int byActorId) {
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
 				Game_Flag_Set(579);
 				Game_Flag_Reset(653);
-				Set_Enter(kSetKP05_KP06, kSetKP03);
+				Set_Enter(kSetKP05_KP06, kSceneKP06);
 			}
 		}
 	}
@@ -273,14 +273,14 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorClovis, 100, 17);
 		Delay(1000);
 		if (!Game_Flag_Query(48)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueStaggeredbyPunches, 1, kActorSadik);
+			Actor_Clue_Acquire(kActorMcCoy, kClueStaggeredbyPunches, true, kActorSadik);
 		}
 		Game_Flag_Set(383);
 		Game_Flag_Reset(509);
 		Global_Variable_Set(kVariableChapter, 3);
 		Actor_Set_Goal_Number(kActorClovis, 200);
 		Actor_Set_Goal_Number(kActorSadik, 200);
-		Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1);
 		Player_Gains_Control();
 		Chapter_Enter(3, 6, 20);
 		Game_Flag_Set(550);
diff --git a/engines/bladerunner/script/ai/crazylegs.cpp b/engines/bladerunner/script/ai/crazylegs.cpp
index f7141b5..4766efe 100644
--- a/engines/bladerunner/script/ai/crazylegs.cpp
+++ b/engines/bladerunner/script/ai/crazylegs.cpp
@@ -117,22 +117,25 @@ int AIScriptCrazylegs::GetFriendlinessModifierIfGetsClue(int otherActorId, int c
 }
 
 bool AIScriptCrazylegs::GoalChanged(int currentGoalNumber, int newGoalNumber) {
-	if (newGoalNumber > 2)
-		return false;
-
-	if (newGoalNumber) {
-		if (newGoalNumber != 1) {
-			AI_Movement_Track_Flush(kActorCrazylegs);
-			AI_Movement_Track_Append(kActorCrazylegs, 360, 0);
-			AI_Movement_Track_Append(kActorCrazylegs, 40, 0);
-			AI_Movement_Track_Repeat(kActorCrazylegs);
-			return true;
-		}
+	if (newGoalNumber == 0) {
+		return true;
+	}
+
+	if (newGoalNumber == 1) {
 		AI_Movement_Track_Flush(kActorCrazylegs);
 		Actor_Set_Targetable(kActorCrazylegs, 0);
+		return true;
 	}
 
-	return true;
+	if (newGoalNumber == 2) {
+		AI_Movement_Track_Flush(kActorCrazylegs);
+		AI_Movement_Track_Append(kActorCrazylegs, 360, 0);
+		AI_Movement_Track_Append(kActorCrazylegs, 40, 0);
+		AI_Movement_Track_Repeat(kActorCrazylegs);
+		return true;
+	}
+
+	return false;
 }
 
 bool AIScriptCrazylegs::UpdateAnimation(int *animation, int *frame) {
@@ -378,19 +381,6 @@ bool AIScriptCrazylegs::ChangeAnimationMode(int mode) {
 		_animationState = 4;
 		_animationFrame = 0;
 		break;
-	case 2:
-	case 4:
-	case 5:
-	case 6:
-	case 7:
-	case 8:
-	case 9:
-	case 10:
-	case 11:
-	case 20:
-	case 21:
-	case 22:
-		return true;
 	case 3:
 		if (_animationState == 2) {
 			_animationState = 15;
@@ -444,8 +434,8 @@ bool AIScriptCrazylegs::ChangeAnimationMode(int mode) {
 		_animationState = 3;
 		_animationFrame = 0;
 		break;
-	default:
-		if (mode == 43 && _animationState != 2) {
+	case 43:
+		if (_animationState != 2) {
 			_animationState = 18;
 			_animationFrame = Slice_Animation_Query_Number_Of_Frames(469) - 1;
 		}
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index f2de729..b7268c0 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -296,7 +296,7 @@ void AIScriptDektora::Retired(int byActorId) {
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(579);
 			Game_Flag_Reset(653);
-			Set_Enter(kSetKP05_KP06, kSetKP03);
+			Set_Enter(kSetKP05_KP06, kSceneKP06);
 
 			return; //true;
 		}
@@ -422,7 +422,7 @@ bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_XYZ(kActorDektora, -177.0f, 23.88f, -373.0f, 300);
 		_animationState = 36;
 		_animationFrame = 0;
-		Set_Enter(kSetNR01, kSetNR01);
+		Set_Enter(kSetNR01, kSceneNR01);
 		break;
 
 	case 279:
diff --git a/engines/bladerunner/script/ai/gaff.cpp b/engines/bladerunner/script/ai/gaff.cpp
index 0db6539..6eaa5b9 100644
--- a/engines/bladerunner/script/ai/gaff.cpp
+++ b/engines/bladerunner/script/ai/gaff.cpp
@@ -73,13 +73,13 @@ void AIScriptGaff::CompletedMovementTrack() {
 			Actor_Says(kActorGaff, 60, kAnimationModeTalk);
 			Actor_Says(kActorMcCoy, 700, kAnimationModeTalk);
 			Actor_Says(kActorGaff, 70, kAnimationModeTalk);
-			Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, 1, -1);
+			Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, true, -1);
 		} else {
 			Actor_Says(kActorGaff, 80, kAnimationModeTalk);
 			Actor_Says(kActorGaff, 90, kAnimationModeTalk);
 			Actor_Says(kActorMcCoy, 705, kAnimationModeTalk);
 			Actor_Says(kActorGaff, 100, kAnimationModeTalk);
-			Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, 1, -1);
+			Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, true, -1);
 		}
 		Actor_Says(kActorGaff, 20, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 680, kAnimationModeTalk);
@@ -87,9 +87,9 @@ void AIScriptGaff::CompletedMovementTrack() {
 		Actor_Says(kActorMcCoy, 685, kAnimationModeTalk);
 		Actor_Says(kActorGaff, 40, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 690, kAnimationModeTalk);
-		Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, 1, kActorGaff);
+		Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, true, kActorGaff);
 		CDB_Set_Crime(kClueZuben, kCrimeMoonbusHijacking);
-		Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, 1, -1);
+		Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, true, -1);
 		Game_Flag_Set(kFlagGaffApproachedMcCoyAboutZuben);
 		Player_Gains_Control();
 		Actor_Set_Goal_Number(kActorGaff, 4);
diff --git a/engines/bladerunner/script/ai/generic_walker_a.cpp b/engines/bladerunner/script/ai/generic_walker_a.cpp
index 0ba4881..c747251 100644
--- a/engines/bladerunner/script/ai/generic_walker_a.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_a.cpp
@@ -58,7 +58,7 @@ bool AIScriptGenericWalkerA::Update() {
 				movingUpdate();
 			}
 			break;
-		case 200:
+		case 200: // Automatic gun at Bullet Bob
 			Actor_Face_Actor(kActorGenwalkerA, kActorMcCoy, true);
 			break;
 	}
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 3cf6850..2f48f90 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -102,7 +102,9 @@ void AIScriptGordo::TimerExpired(int timer) {
 }
 
 void AIScriptGordo::CompletedMovementTrack() {
-	if (Actor_Query_Goal_Number(kActorGordo) == 1 || Actor_Query_Goal_Number(kActorGordo) == 91) {
+	if (Actor_Query_Goal_Number(kActorGordo) == 1
+	 || Actor_Query_Goal_Number(kActorGordo) == 91
+	) {
 		Actor_Set_Goal_Number(kActorGordo, 2);
 		return;// true;
 	}
@@ -120,7 +122,7 @@ void AIScriptGordo::CompletedMovementTrack() {
 			Player_Set_Combat_Mode(false);
 			Player_Gains_Control();
 		}
-		Actor_Clue_Acquire(kActorGordo, kClueMcCoyRetiredZuben, 1, -1);
+		Actor_Clue_Acquire(kActorGordo, kClueMcCoyRetiredZuben, true, -1);
 		Actor_Set_Goal_Number(kActorGordo, 4);
 		return;// true;
 	}
@@ -1408,7 +1410,10 @@ void AIScriptGordo::sub_40FD00() {
 	Player_Loses_Control();
 	Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
 	if (Game_Flag_Query(543)) {
-		if (!Game_Flag_Query(272) || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1) || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)) {
+		if (!Game_Flag_Query(kFlagDR05BombExploded)
+		 ||  Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
+		 ||  Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
+		) {
 			if (Game_Flag_Query(544)) {
 				switch(Random_Query(1, 4)) {
 					case 1:
@@ -1447,7 +1452,7 @@ void AIScriptGordo::sub_40FD00() {
 				Actor_Says(kActorGordo, 1020, 13);
 				Actor_Says(kActorMcCoy, 6500, 14);
 				Actor_Says(kActorGordo, 1030, 15);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, 0, kActorGordo);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, false, kActorGordo);
 			} else {
 				Actor_Says(kActorGordo, 1040, 12);
 				Actor_Says(kActorGordo, 1050, 13);
@@ -1456,7 +1461,7 @@ void AIScriptGordo::sub_40FD00() {
 				Actor_Says(kActorGordo, 1070, 14);
 				Actor_Says(kActorMcCoy, 6510, 16);
 				Actor_Says(kActorGordo, 1080, 15);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, 0, kActorGordo);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo);
 			}
 			AI_Movement_Track_Unpause(kActorGordo);
 		}
@@ -1543,7 +1548,7 @@ void AIScriptGordo::sub_410590() {
 			Actor_Says(kActorGordo, 260, 18);
 			Actor_Says(kActorMcCoy, 3115, 14);
 			Actor_Says(kActorGordo, 270, 15);
-			Actor_Clue_Acquire(kActorGordo, kClueMcCoyHelpedGordo, 1, -1);
+			Actor_Clue_Acquire(kActorGordo, kClueMcCoyHelpedGordo, true, -1);
 		} else {
 			Delay(1000);
 			Actor_Says(kActorGordo, 570, 13);
@@ -1596,7 +1601,7 @@ void AIScriptGordo::sub_41090C() {
 		if (Game_Flag_Query(kFlagGordoIsReplicant)) {
 			Actor_Says(kActorGordo, 450, 17);
 			Actor_Says(kActorMcCoy, 3280, 15);
-			Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview3, 0, kActorGordo);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview3, false, kActorGordo);
 		}
 		Actor_Says(kActorGordo, 460, 15);
 		break;
@@ -1637,7 +1642,7 @@ void AIScriptGordo::sub_41090C() {
 		Actor_Says(kActorGordo, 560, 13);
 		Actor_Says(kActorMcCoy, 3315, 15);
 		Actor_Says(kActorGordo, 570, 14);
-		Actor_Clue_Acquire(kActorMcCoy, kClueGordoConfession, 0, kActorGordo);
+		Actor_Clue_Acquire(kActorMcCoy, kClueGordoConfession, false, kActorGordo);
 		break;
 	case 810:
 		Actor_Says(kActorMcCoy, 3255, kAnimationModeTalk);
diff --git a/engines/bladerunner/script/ai/guzza.cpp b/engines/bladerunner/script/ai/guzza.cpp
index 5a44595..62267be 100644
--- a/engines/bladerunner/script/ai/guzza.cpp
+++ b/engines/bladerunner/script/ai/guzza.cpp
@@ -44,14 +44,18 @@ void AIScriptGuzza::Initialize() {
 
 bool AIScriptGuzza::Update() {
 	if (Global_Variable_Query(kVariableChapter) == 2) {
-		if (!Game_Flag_Query(462)) {
-			Game_Flag_Set(462);
+		if (!Game_Flag_Query(kFlagPS04GuzzaLeft)) {
+			Game_Flag_Set(kFlagPS04GuzzaLeft);
 			Actor_Put_In_Set(kActorGuzza, kSetFreeSlotC);
 			Actor_Set_At_Waypoint(kActorGuzza, 35, 0);
-			Actor_Set_Goal_Number(kActorGuzza, 100);
+			Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeaveOffice);
 			return true;
 		}
-		if (Actor_Query_Goal_Number(kActorGuzza) != 101 && !Game_Flag_Query(463) && Game_Flag_Query(464)) {
+
+		if ( Actor_Query_Goal_Number(kActorGuzza) != kGoalGuzzaGoToHawkersCircle
+		 && !Game_Flag_Query(463)
+		 &&  Game_Flag_Query(464)
+		) {
 			Game_Flag_Set(463);
 			Actor_Set_Goal_Number(kActorGuzza, 103);
 			return true;
@@ -66,26 +70,30 @@ void AIScriptGuzza::TimerExpired(int timer) {
 
 void AIScriptGuzza::CompletedMovementTrack() {
 	switch (Actor_Query_Goal_Number(kActorGuzza)) {
-	case 100:
-		Actor_Set_Goal_Number(kActorGuzza, 102);
+	case kGoalGuzzaLeaveOffice:
+		Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaGoToOffice);
 		// return true;
 		break;
-	case 102:
+
+	case kGoalGuzzaGoToOffice:
 		if (Random_Query(1, 2) == 1) {
-			Actor_Set_Goal_Number(kActorGuzza, 101);
+			Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaGoToHawkersCircle);
 		} else {
 			Actor_Set_Goal_Number(kActorGuzza, 104);
 		}
 		// return true;
 		break;
+
 	case 103:
-		Actor_Set_Goal_Number(kActorGuzza, 100);
+		Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeaveOffice);
 		// return true;
 		break;
+
 	case 105:
-		Actor_Set_Goal_Number(kActorGuzza, 100);
+		Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeaveOffice);
 		// return true;
 		break;
+
 	}
 	// return false;
 }
@@ -95,7 +103,9 @@ void AIScriptGuzza::ReceivedClue(int clueId, int fromActorId) {
 }
 
 void AIScriptGuzza::ClickedByPlayer() {
-	if (Global_Variable_Query(kVariableChapter) == 2 && Game_Flag_Query(462) == 1) {
+	if (Global_Variable_Query(kVariableChapter) == 2
+	 && Game_Flag_Query(kFlagPS04GuzzaLeft)
+	) {
 		Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
 		if (Actor_Query_Friendliness_To_Other(kActorGordo, kActorMcCoy) < 48) {
 			Actor_Says(kActorMcCoy, 3970, 13);
@@ -164,14 +174,15 @@ int AIScriptGuzza::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
 
 bool AIScriptGuzza::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
-	case 100:
+	case kGoalGuzzaLeaveOffice:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append_With_Facing(kActorGuzza, 263, 0, 150);
 		AI_Movement_Track_Append_With_Facing(kActorGuzza, 263, 5, 150);
 		AI_Movement_Track_Append(kActorGuzza, 35, 90);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
-	case 101:
+
+	case kGoalGuzzaGoToHawkersCircle:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append(kActorGuzza, 258, 0);
 		AI_Movement_Track_Append(kActorGuzza, 260, 8);
@@ -179,12 +190,14 @@ bool AIScriptGuzza::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorGuzza, 262, 0);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
-	case 102:
+
+	case kGoalGuzzaGoToOffice:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append_With_Facing(kActorGuzza, 263, 600, 150);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
+
 	case 103:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append(kActorGuzza, 258, 0);
@@ -192,16 +205,19 @@ bool AIScriptGuzza::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorGuzza, 258, 0);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
+
 	case 104:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append(kActorGuzza, 34, 60);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
+
 	case 105:
 		AI_Movement_Track_Flush(kActorGuzza);
 		AI_Movement_Track_Append(kActorGuzza, 39, 120);
 		AI_Movement_Track_Repeat(kActorGuzza);
 		return true;
+
 	case 201:
 		Actor_Change_Animation_Mode(kActorGuzza, 53);
 		_animationState = 1;
@@ -209,19 +225,23 @@ bool AIScriptGuzza::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Put_In_Set(kActorGuzza, kSetNR03);
 		Actor_Set_At_XYZ(kActorGuzza, -229.0f, -70.19f, -469.0f, 400);
 		return true;
+
 	case 300:
 		Actor_Put_In_Set(kActorGuzza, kSetUG18);
 		Actor_Set_At_XYZ(kActorGuzza, 10.79f, 0.0f, -354.17f, 400);
 		Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeIdle);
 		return true;
+
 	case 301:
 		Actor_Set_Targetable(kActorGuzza, true);
 		return true;
+
 	case 302:
 	case 303:
 	case 304:
 		Actor_Set_Targetable(kActorGuzza, false);
 		return true;
+
 	case 305:
 	case 306:
 	case 307:
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index aba139a..f735694 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -280,7 +280,7 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Put_In_Set(kActorHanoi, kSetNR01);
 		Actor_Set_At_XYZ(kActorHanoi, -444.0f, 24.0f, -845.0f, 512);
 		Actor_Change_Animation_Mode(kActorHanoi, 78);
-		Set_Enter(kSetNR01, kSetNR01);
+		Set_Enter(kSetNR01, kSceneNR01);
 		break;
 
 	case 230:
diff --git a/engines/bladerunner/script/ai/holloway.cpp b/engines/bladerunner/script/ai/holloway.cpp
index 5c5f7f8..7b5fd1d 100644
--- a/engines/bladerunner/script/ai/holloway.cpp
+++ b/engines/bladerunner/script/ai/holloway.cpp
@@ -184,7 +184,7 @@ bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Player_Gains_Control();
 		}
 		Game_Flag_Set(334);
-		Set_Enter(kSetUG04, kSetUG18);
+		Set_Enter(kSetUG04, kSceneUG04);
 		break;
 
 	default:
diff --git a/engines/bladerunner/script/ai/howie_lee.cpp b/engines/bladerunner/script/ai/howie_lee.cpp
index a321ce1..2291d5a 100644
--- a/engines/bladerunner/script/ai/howie_lee.cpp
+++ b/engines/bladerunner/script/ai/howie_lee.cpp
@@ -41,24 +41,36 @@ void AIScriptHowieLee::Initialize() {
 }
 
 bool AIScriptHowieLee::Update() {
-	if (Actor_Query_Goal_Number(kActorHowieLee) < 100 && Global_Variable_Query(kVariableChapter) == 2) {
+	if (Actor_Query_Goal_Number(kActorHowieLee) < 100
+	 && Global_Variable_Query(kVariableChapter) == 2
+	) {
 		Actor_Set_Goal_Number(kActorHowieLee, 100);
 	}
+
 	if (Global_Variable_Query(kVariableChapter) > 1) {
 		return true;
 	}
+
 	if (Actor_Query_Goal_Number(kActorHowieLee) == 0) {
 		Actor_Set_Goal_Number(kActorHowieLee, 1);
 	}
-	if (Game_Flag_Query(kFlagMcCoyAtCTxx) && !Actor_Query_In_Set(kActorHowieLee, kSetCT01_CT12)) {
+
+	if ( Game_Flag_Query(kFlagMcCoyAtCTxx)
+	 && !Actor_Query_In_Set(kActorHowieLee, kSetCT01_CT12)
+	) {
 		AI_Movement_Track_Flush(kActorHowieLee);
 		AI_Movement_Track_Append(kActorHowieLee, 67, 0);
 		Actor_Set_Goal_Number(kActorHowieLee, 0);
 	}
-	if (Actor_Query_Goal_Number(kActorHowieLee) == 1 && Game_Flag_Query(kFlagBoughtHowieLeeFood) && !Game_Flag_Query(kFlagMcCoyAtCTxx)) {
+
+	if ( Actor_Query_Goal_Number(kActorHowieLee) == 1
+	 &&  Game_Flag_Query(kFlagBoughtHowieLeeFood)
+	 && !Game_Flag_Query(kFlagMcCoyAtCTxx)
+	) {
 		Actor_Set_Goal_Number(kActorHowieLee, 4);
 		return true;
 	}
+
 	return false;
 }
 
@@ -69,23 +81,33 @@ void AIScriptHowieLee::TimerExpired(int timer) {
 void AIScriptHowieLee::CompletedMovementTrack() {
 	if (Actor_Query_Goal_Number(kActorHowieLee) == 1) {
 		Actor_Set_Goal_Number(kActorHowieLee, 2);
-		// return true;
-	} else if (Actor_Query_Goal_Number(kActorHowieLee) == 2) {
+		return; // true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorHowieLee) == 2) {
 		Actor_Set_Goal_Number(kActorHowieLee, 3);
-		// return true;
-	} else if (Actor_Query_Goal_Number(kActorHowieLee) == 3) {
+		return; // true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorHowieLee) == 3) {
 		Actor_Set_Goal_Number(kActorHowieLee, 0);
-		// return true;
-	} else if (Actor_Query_Goal_Number(kActorHowieLee) == 3) {
-		// Bug/intentional in original game
+		return; // true;
+	}
+
+	// Bug/intentional in original game?
+	if (Actor_Query_Goal_Number(kActorHowieLee) == 3) {
 		Actor_Set_Goal_Number(kActorHowieLee, 4);
-		// return true;
-	} else if (Actor_Query_Goal_Number(kActorHowieLee) == 4) {
+		return; // true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorHowieLee) == 4) {
 		Actor_Set_Goal_Number(kActorHowieLee, 5);
-		// return true;
-	} else if (Actor_Query_Goal_Number(kActorHowieLee) == 5) {
+		return; // true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorHowieLee) == 5) {
 		Actor_Set_Goal_Number(kActorHowieLee, 0);
-		// return true;
+		return; // true;
 	}
 	// return false;
 }
@@ -238,7 +260,7 @@ bool AIScriptHowieLee::UpdateAnimation(int *animation, int *frame) {
 				_animationFrame = 0;
 				var_45DFB8 = Random_Query(0, 1);
 			} else {
-				Game_Flag_Set(239);
+				Game_Flag_Set(kFlagHowieLeeAnimation1);
 			}
 			*animation = 673;
 		}
@@ -251,8 +273,8 @@ bool AIScriptHowieLee::UpdateAnimation(int *animation, int *frame) {
 		}
 		break;
 	case 3:
-		if (Game_Flag_Query(239)) {
-			Game_Flag_Reset(239);
+		if (Game_Flag_Query(kFlagHowieLeeAnimation1)) {
+			Game_Flag_Reset(kFlagHowieLeeAnimation1);
 			_animationState = 0;
 			_animationFrame = 0;
 			var_45DFB8 = Random_Query(0, 1);
@@ -326,7 +348,7 @@ bool AIScriptHowieLee::ChangeAnimationMode(int mode) {
 			_animationFrame = 0;
 			var_45DFB8 = Random_Query(0, 1);
 		} else {
-			Game_Flag_Set(239);
+			Game_Flag_Set(kFlagHowieLeeAnimation1);
 		}
 		break;
 	case kAnimationModeWalk:
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index eb0342f..06966ef 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -235,7 +235,7 @@ void AIScriptIzo::Retired(int byActorId) {
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Game_Flag_Set(579);
 		Game_Flag_Reset(653);
-		Set_Enter(kSetKP05_KP06, kSetKP03);
+		Set_Enter(kSetKP05_KP06, kSceneKP06);
 		return; //true;
 	}
 
@@ -446,16 +446,17 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 			} else {
 				_animationFrame += _var2;
 				if (_animationFrame < 0) {
-					_animationFrame--;
+					_animationFrame = Slice_Animation_Query_Number_Of_Frames(297) - 1;
 				} else if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(297)) {
 					_animationFrame = 0;
 				}
-				if (!--_var1) {
+				--_var1;
+				if (_var1 == 0) {
 					_var2 = 2 * Random_Query(0, 1) - 1;
 					_var1 = Random_Query(6, 14);
 					_var3 = Random_Query(0, 2);
 				}
-				if (!_animationFrame) {
+				if (_animationFrame == 0) {
 					if (!Random_Query(0, 5)) {
 						_var4 = 1;
 					}
diff --git a/engines/bladerunner/script/ai/klein.cpp b/engines/bladerunner/script/ai/klein.cpp
index 8e63352..955150c 100644
--- a/engines/bladerunner/script/ai/klein.cpp
+++ b/engines/bladerunner/script/ai/klein.cpp
@@ -224,23 +224,29 @@ bool AIScriptKlein::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptKlein::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (Actor_Query_Goal_Number(kActorKlein) == 1 || Actor_Query_Goal_Number(kActorKlein) == 2) {
+		if (Actor_Query_Goal_Number(kActorKlein) == 1
+		 || Actor_Query_Goal_Number(kActorKlein) == 2
+		) {
 			*animation = 691;
 			_animationFrame++;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(691)) {
 				_animationFrame = 0;
 			}
-		} else if (!Game_Flag_Query(196) && Actor_Query_Goal_Number(kActorKlein) == 3) {
+		} else if (!Game_Flag_Query(kFlagKleinAnimation1)
+		        &&  Actor_Query_Goal_Number(kActorKlein) == 3
+		) {
 			*animation = 689;
 			_animationFrame++;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(689)) {
 				_animationFrame = 0;
 				if (Random_Query(1, 10) == 1) {
-					Game_Flag_Set(196);
+					Game_Flag_Set(kFlagKleinAnimation1);
 				}
 			}
 		} else {
-			if (Game_Flag_Query(198) && Actor_Query_Goal_Number(kActorKlein) == 3) {
+			if (Game_Flag_Query(kFlagKleinAnimation3)
+			 && Actor_Query_Goal_Number(kActorKlein) == 3
+			) {
 				_animationFrame--;
 				if (_animationFrame < 0) {
 					_animationFrame = 0;
@@ -251,24 +257,24 @@ bool AIScriptKlein::UpdateAnimation(int *animation, int *frame) {
 
 			*animation = 690;
 			if (_animationFrame <= 9) {
-				if (Game_Flag_Query(198)) {
-					Game_Flag_Reset(198);
+				if (Game_Flag_Query(kFlagKleinAnimation3)) {
+					Game_Flag_Reset(kFlagKleinAnimation3);
 				}
 			}
 			if (_animationFrame == 14) {
 				if (Random_Query(1, 5) == 1) {
-					Game_Flag_Set(197);
+					Game_Flag_Set(kFlagKleinAnimation2);
 				}
 			}
 			if (_animationFrame == 15) {
-				if (Game_Flag_Query(197) == 1) {
-					Game_Flag_Reset(197);
-					Game_Flag_Set(198);
+				if (Game_Flag_Query(kFlagKleinAnimation2)) {
+					Game_Flag_Reset(kFlagKleinAnimation2);
+					Game_Flag_Set(kFlagKleinAnimation3);
 				}
 			}
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(690)) {
 				_animationFrame = 0;
-				Game_Flag_Reset(196);
+				Game_Flag_Reset(kFlagKleinAnimation1);
 			}
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index 96cb04a..2f514ca 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -194,7 +194,7 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) {
 			Actor_Voice_Over(3420, kActorVoiceOver);
 			break;
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueGuzzaFramedMcCoy, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueGuzzaFramedMcCoy, true, -1);
 		if (clueId == kClueFolder) {
 			Actor_Voice_Over(2780, kActorVoiceOver);
 			Actor_Voice_Over(2800, kActorVoiceOver);
@@ -1156,14 +1156,14 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 		break;
 	case 3:
 	case 4:
-		if (_animationFrame == 0 && !Game_Flag_Query(236)) {
+		if (_animationFrame == 0 && !Game_Flag_Query(kFlagMcCoyAnimation1)) {
 			_animationFrame = 1;
 			_animationState = dword_45A0F0;
 			*animation = dword_45A0F4;
 			dword_45A0F0 = 4;
 			dword_45A0F4 = 20;
-		} else if (_animationFrame <= 4 && Game_Flag_Query(236)) {
-			Game_Flag_Reset(236);
+		} else if (_animationFrame <= 4 && Game_Flag_Query(kFlagMcCoyAnimation1)) {
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			*animation = 19;
 			_animationFrame = 0;
 			_animationState = 0;
@@ -1241,7 +1241,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			case 10:
 			case 11:
 			case 12:
-				Game_Flag_Set(236);
+				Game_Flag_Set(kFlagMcCoyAnimation1);
 				dword_45A0D8 = 0;
 				dword_45A0DC = 30;
 				dword_45A0E4 = 0;
@@ -1319,7 +1319,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 3;
 			_animationNext = 20;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 4;
 			dword_45A0F4 = 20;
 		}
@@ -1405,7 +1405,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 5;
 			_animationNext = 21;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 5;
 			dword_45A0F4 = 21;
 		}
@@ -1417,7 +1417,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 6;
 			_animationNext = 27;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 6;
 			dword_45A0F4 = 27;
 		}
@@ -1429,7 +1429,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 7;
 			_animationNext = 22;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 7;
 			dword_45A0F4 = 22;
 		}
@@ -1440,7 +1440,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 8;
 			_animationNext = 23;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 8;
 			dword_45A0F4 = 23;
 		}
@@ -1451,7 +1451,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 9;
 			_animationNext = 24;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 9;
 			dword_45A0F4 = 24;
 		}
@@ -1462,7 +1462,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 10;
 			_animationNext = 25;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 10;
 			dword_45A0F4 = 25;
 		}
@@ -1473,7 +1473,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 11;
 			_animationNext = 26;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 11;
 			dword_45A0F4 = 26;
 		}
@@ -1484,7 +1484,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
 			_animationStateNext = 12;
 			_animationNext = 27;
 		} else {
-			Game_Flag_Reset(236);
+			Game_Flag_Reset(kFlagMcCoyAnimation1);
 			dword_45A0F0 = 12;
 			dword_45A0F4 = 27;
 		}
@@ -1719,25 +1719,6 @@ void AIScriptMcCoy::sub_405660() {
 		return;
 	}
 	switch (_animationState) {
-	case 17:
-	case 20:
-	case 21:
-	case 36:
-		_animationState = 16;
-		_animationFrame = 0;
-		break;
-	case 16:
-	case 25:
-	case 26:
-		break;
-	case 15:
-		_animationState = 16;
-		_animationFrame = 16 - 16 * _animationFrame / 12;
-		break;
-	case 14:
-		_animationState = 16;
-		_animationFrame = 0;
-		break;
 	case 3:
 	case 4:
 	case 5:
@@ -1748,13 +1729,32 @@ void AIScriptMcCoy::sub_405660() {
 	case 10:
 	case 11:
 	case 12:
-		Game_Flag_Set(236);
+		Game_Flag_Set(kFlagMcCoyAnimation1);
 		dword_45A0D8 = 0;
 		dword_45A0DC = 30;
 		dword_45A0E4 = 0;
 		_animationFrameDelta = 1;
 		dword_45A0E8 = 3;
 		break;
+	case 14:
+		_animationState = 16;
+		_animationFrame = 0;
+		break;
+	case 15:
+		_animationState = 16;
+		_animationFrame = 16 - 16 * _animationFrame / 12;
+		break;
+	case 17:
+	case 20:
+	case 21:
+	case 36:
+		_animationState = 16;
+		_animationFrame = 0;
+		break;
+	case 16:
+	case 25:
+	case 26:
+		break;
 	case 60:
 		_animationState = 61;
 		break;
diff --git a/engines/bladerunner/script/ai/moraji.cpp b/engines/bladerunner/script/ai/moraji.cpp
index a1896b0..067b566 100644
--- a/engines/bladerunner/script/ai/moraji.cpp
+++ b/engines/bladerunner/script/ai/moraji.cpp
@@ -42,46 +42,49 @@ void AIScriptMoraji::Initialize() {
 }
 
 bool AIScriptMoraji::Update() {
-	if (Actor_Query_Goal_Number(kActorMoraji) || Player_Query_Current_Scene() != 29 || Game_Flag_Query(269)) {
-		if (Actor_Query_Goal_Number(kActorMoraji) == 19) {
-			Actor_Says(kActorMoraji, 80, 13);
-			_animationState = 9;
-			_animationFrame = -1;
-			Actor_Set_Goal_Number(kActorMoraji, 18);
-		}
-		return false;
-	} else {
+	if ( Actor_Query_Goal_Number(kActorMoraji) == 0
+	 &&  Player_Query_Current_Scene() == kSceneDR05
+	 && !Game_Flag_Query(kFlagDR05BombActivated)
+	) {
 		AI_Countdown_Timer_Reset(kActorMoraji, 2);
 		AI_Countdown_Timer_Start(kActorMoraji, 2, 30);
-		Game_Flag_Set(269);
+		Game_Flag_Set(kFlagDR05BombActivated);
 		return true;
 	}
 
+	if (Actor_Query_Goal_Number(kActorMoraji) == 19) {
+		Actor_Says(kActorMoraji, 80, 13);
+		_animationState = 9;
+		_animationFrame = -1;
+		Actor_Set_Goal_Number(kActorMoraji, 18);
+	}
+	return false;
 }
 
 void AIScriptMoraji::TimerExpired(int timer) {
-	if (timer != 2) {
-		return; //false;
+	if (timer == 2) {
+		AI_Countdown_Timer_Reset(kActorMoraji, 2);
+		if (Actor_Query_Goal_Number(kActorMoraji) != 20
+		 && Actor_Query_Goal_Number(kActorMoraji) != 21
+		 && Actor_Query_Goal_Number(kActorMoraji) != 99
+		) {
+			Game_Flag_Set(kFlagDR05BombWillExplode);
+		}
+		return; //true;
 	}
 
-	AI_Countdown_Timer_Reset(kActorMoraji, 2);
-	if (Actor_Query_Goal_Number(kActorMoraji) != 20
-			&& Actor_Query_Goal_Number(kActorMoraji) != 21
-			&& Actor_Query_Goal_Number(kActorMoraji) != 99) {
-		Game_Flag_Set(271);
-	}
-	return; //true;
+	return; //false;
 }
 
 void AIScriptMoraji::CompletedMovementTrack() {
-	if (Actor_Query_Goal_Number(kActorMoraji) != 11)
-		return; //false
-
-	AI_Countdown_Timer_Reset(kActorMoraji, 2);
-	Game_Flag_Set(271);
-	_animationState = 3;
+	if (Actor_Query_Goal_Number(kActorMoraji) == 11) {
+		AI_Countdown_Timer_Reset(kActorMoraji, 2);
+		Game_Flag_Set(kFlagDR05BombWillExplode);
+		_animationState = 3;
 
-	return; //true;
+		return; //true;
+	}
+	return; //false
 }
 
 void AIScriptMoraji::ReceivedClue(int clueId, int fromActorId) {
@@ -184,16 +187,16 @@ bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return true;
 		break;
 	case 30:
-		if (Player_Query_Current_Scene() == 29) {
-			Game_Flag_Set(515);
-			Set_Enter(kSetDR01_DR02_DR04, kSetCT05);
+		if (Player_Query_Current_Scene() == kSceneDR05) {
+			Game_Flag_Set(kFlagDR05BombExplosionView);
+			Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
 		} else {
 			if (Actor_Query_In_Set(kActorMoraji, kSetDR05)) {
 				Actor_Set_Goal_Number(kActorMoraji, 99);
 			} else {
 				Actor_Set_Goal_Number(kActorMoraji, 20);
 			}
-			Game_Flag_Set(266);
+			Game_Flag_Set(kFlagMorajiExploded);
 		}
 		return true;
 	case 99:
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index ccc2851..19aa6b5 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -49,46 +49,73 @@ bool AIScriptOfficerLeary::Update() {
 	) {
 		AI_Movement_Track_Flush(kActorOfficerLeary);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 300);
-	} else if (Global_Variable_Query(kVariableChapter) == 5
-	        && Actor_Query_Goal_Number(kActorOfficerLeary) < 400
+		return false;
+	}
+
+	if (Global_Variable_Query(kVariableChapter) == 5
+	 && Actor_Query_Goal_Number(kActorOfficerLeary) < 400
 	) {
 		AI_Movement_Track_Flush(kActorOfficerLeary);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 400);
-	} else if (!Game_Flag_Query(kFlagMcCoyAtRCxx)
-	        &&  Game_Flag_Query(kFlagChopstickWrapperTaken)
-	        &&  Game_Flag_Query(kFlagChromeDebrisTaken)
-	        &&  Player_Query_Current_Scene() != kSceneRC01
-	        &&  Global_Variable_Query(kVariableChapter) < 3
+		return false;
+	}
+
+	if (!Game_Flag_Query(kFlagMcCoyAtRCxx)
+	 &&  Game_Flag_Query(kFlagChopstickWrapperTaken)
+	 &&  Game_Flag_Query(kFlagChromeDebrisTaken)
+	 &&  Player_Query_Current_Scene() != kSceneRC01
+	 &&  Global_Variable_Query(kVariableChapter) < 3
 	) {
 		Game_Flag_Set(kFlagRC01PoliceDone);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 3);
-	} else if (Actor_Query_Goal_Number(kActorOfficerLeary) != kGoalOfficerLearyCrowdInterrogation
-	        && Actor_Query_Goal_Number(kActorOfficerLeary) != 2
-	        && Game_Flag_Query(199)
+		return false;
+	}
+
+	if (Actor_Query_Goal_Number(kActorOfficerLeary) != kGoalOfficerLearyRC01WalkToCrowd
+	 && Actor_Query_Goal_Number(kActorOfficerLeary) != kGoalOfficerLearyRC01CrowdInterrogation
+	 && Game_Flag_Query(kFlagOfficerLearyTakingNotes)
 	) {
-		Game_Flag_Reset(199);
-	} else if ( Global_Variable_Query(15) > 4
-	        && !Actor_Clue_Query(kActorOfficerLeary, kClueMcCoyIsStupid)
+		Game_Flag_Reset(kFlagOfficerLearyTakingNotes);
+		return false;
+	}
+
+	if ( Global_Variable_Query(15) > 4
+	 && !Actor_Clue_Query(kActorOfficerLeary, kClueMcCoyIsStupid)
 	) {
-		Actor_Clue_Acquire(kActorOfficerLeary, kClueMcCoyIsStupid, 1, -1);
-	} else if (Game_Flag_Query(629)) {
+		Actor_Clue_Acquire(kActorOfficerLeary, kClueMcCoyIsStupid, true, -1);
+		return false;
+	}
+
+	if (Game_Flag_Query(629)) {
 		Game_Flag_Reset(629);
-	} else if ( Game_Flag_Query(623)
-	        && !Game_Flag_Query(664)
+		return false;
+	}
+
+	if ( Game_Flag_Query(623)
+	 && !Game_Flag_Query(664)
 	) {
 		Game_Flag_Set(664);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 305);
-	} else if (Actor_Query_Goal_Number(kActorOfficerLeary) == 310
-	        && Actor_Query_Which_Set_In(kActorOfficerLeary) != Player_Query_Current_Set()
+		return false;
+	}
+
+	if (Actor_Query_Goal_Number(kActorOfficerLeary) == 310
+	 && Actor_Query_Which_Set_In(kActorOfficerLeary) != Player_Query_Current_Set()
 	) {
 		Non_Player_Actor_Combat_Mode_Off(kActorOfficerLeary);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 305);
-	} else if (Actor_Query_Goal_Number(kActorOfficerLeary) == 599
-	        && Actor_Query_Which_Set_In(kActorOfficerLeary) != Player_Query_Current_Set()
+		return false;
+	}
+
+	if (Actor_Query_Goal_Number(kActorOfficerLeary) == 599
+	 && Actor_Query_Which_Set_In(kActorOfficerLeary) != Player_Query_Current_Set()
 	) {
 		Actor_Set_Health(kActorOfficerLeary, 40, 40);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 305);
-	} else if (Actor_Query_Goal_Number(kActorOfficerLeary) == 305) {
+		return false;
+	}
+
+	if (Actor_Query_Goal_Number(kActorOfficerLeary) == 305) {
 		switch (Actor_Query_Which_Set_In(kActorOfficerLeary)) {
 		case kSetDR01_DR02_DR04:
 			if (Actor_Query_Which_Set_In(kActorOfficerLeary) == Player_Query_Current_Set()) {
@@ -180,37 +207,31 @@ void AIScriptOfficerLeary::TimerExpired(int timer) {
 		}
 	} else if (timer == 2) {
 		AI_Countdown_Timer_Reset(kActorOfficerLeary, 2);
-		sub_431420();
+		Game_Flag_Reset(kFlagOfficerLearyTakingNotes);
 	}
 }
 
 void AIScriptOfficerLeary::CompletedMovementTrack() {
-	int v0;
-	unsigned int v1;
-
-	v0 = Actor_Query_Goal_Number(kActorOfficerLeary);
-	if (v0 == 1) {
-		Actor_Set_Goal_Number(kActorOfficerLeary, 2);
+	int goal = Actor_Query_Goal_Number(kActorOfficerLeary);
+	if (goal == kGoalOfficerLearyRC01WalkToCrowd) {
+		Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyRC01CrowdInterrogation);
 		return;
 	}
-	//todo: tidyup
-	v1 = v0 - 305;
-	if (v1 > 3) {
+	if (goal > 308) {
 		return;
 	}
-	if (!v1) {
+	if (goal == 305) {
 		Actor_Set_Goal_Number(kActorOfficerLeary, 306);
 		return;
 	}
-	if (v1 != 2) {
-		if (v1 == 3) {
-			Actor_Change_Animation_Mode(kActorOfficerLeary, 4);
-			Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
-			Actor_Set_Goal_Number(kActorOfficerLeary, 309);
-		}
-		return;
+	if (goal == 307) {
+		Non_Player_Actor_Combat_Mode_On(kActorOfficerLeary, 0, 1, kActorMcCoy, 12, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, 0);
+	}
+	if (goal == 308) {
+		Actor_Change_Animation_Mode(kActorOfficerLeary, 4);
+		Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
+		Actor_Set_Goal_Number(kActorOfficerLeary, 309);
 	}
-	Non_Player_Actor_Combat_Mode_On(kActorOfficerLeary, 0, 1, kActorMcCoy, 12, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, 0);
 }
 
 void AIScriptOfficerLeary::ReceivedClue(int clueId, int fromActorId) {
@@ -279,7 +300,7 @@ int AIScriptOfficerLeary::GetFriendlinessModifierIfGetsClue(int otherActorId, in
 
 bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
-	case 1:
+	case kGoalOfficerLearyRC01WalkToCrowd:
 		AI_Movement_Track_Flush(kActorOfficerLeary);
 		if (Random_Query(1, 2) == 1) {
 			AI_Movement_Track_Append(kActorOfficerLeary, 57, 7);
@@ -290,19 +311,23 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
 		}
 		AI_Movement_Track_Repeat(kActorOfficerLeary);
 		return true;
-	case 2:
+	case kGoalOfficerLearyRC01CrowdInterrogation:
 		if (Random_Query(1, 3) == 1) {
-			if (Random_Query(1, 2) == 1 && !Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA)) {
-				Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewA, 0, -1);
+			if ( Random_Query(1, 2) == 1
+			 && !Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA)
+			) {
+				Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewA, false, -1);
 			} else if (!Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB)) {
-				Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewB, 0, -1);
+				Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewB, false, -1);
 			}
 		}
 		if (Game_Flag_Query(kFlagMcCoyAtRCxx)) {
-			if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) && Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB)) {
+			if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA)
+			 && Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB)
+			) {
 				Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault);
 			} else {
-				Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyCrowdInterrogation);
+				Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyRC01WalkToCrowd);
 			}
 		} else {
 			Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault);
@@ -827,11 +852,11 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		*frame = _animationFrame;
 		return true;
 	case 2:
-		if (Game_Flag_Query(199)) {
+		if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 			*animation = 603;
 			_animationFrame++;
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(603) - 1) {
-				Game_Flag_Reset(199);
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(603)) {
+				Game_Flag_Reset(kFlagOfficerLearyTakingNotes);
 				_animationFrame = 0;
 				_animationState = _animationStateNext;
 				*animation = _animationNext;
@@ -872,7 +897,7 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(601)) {
 			_animationFrame = 0;
 		}
-		if (!Game_Flag_Query(199)) {
+		if (!Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 			_animationState = 32;
 			_animationFrame = 0;
 			*animation = 603;
@@ -880,7 +905,8 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		*frame = _animationFrame;
 		return true;
 	case 0:
-		if (Game_Flag_Query(199) && !Game_Flag_Query(KFlagMcCoyAndOfficerLearyTalking)) {
+		if ( Game_Flag_Query(kFlagOfficerLearyTakingNotes)
+		 && !Game_Flag_Query(KFlagMcCoyAndOfficerLearyTalking)) {
 			_animationState = 31;
 			_animationFrame = 0;
 			*animation = 604;
@@ -928,7 +954,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			break;
 		case 20:
 			v1 = _animationFrame;
-			Actor_Change_Animation_Mode(kActorOfficerLeary, 4);
+			Actor_Change_Animation_Mode(kActorOfficerLeary, kAnimationModeCombatIdle);
 			_animationFrame = v1;
 			_animationState = 21;
 			break;
@@ -966,7 +992,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 11;
 			_animationNext = 592;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		}
@@ -1016,11 +1042,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 12;
 			_animationNext = 593;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 12;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1031,11 +1056,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 13;
 			_animationNext = 594;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 13;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1046,11 +1070,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 14;
 			_animationNext = 595;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 14;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1061,11 +1084,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 15;
 			_animationNext = 596;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 15;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1076,11 +1098,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 16;
 			_animationNext = 597;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 16;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1091,11 +1112,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 17;
 			_animationNext = 598;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
-		}
-		else if (_animationState > 19) {
+		} else if (_animationState > 19) {
 			_animationState = 17;
 			_animationFrame = 0;
 			var_45D5BC = 0;
@@ -1106,7 +1126,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 18;
 			_animationNext = 599;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
@@ -1120,7 +1140,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 			_animationState = 2;
 			_animationStateNext = 19;
 			_animationNext = 600;
-			if (Game_Flag_Query(199) == 1) {
+			if (Game_Flag_Query(kFlagOfficerLearyTakingNotes)) {
 				_animationFrame = 0;
 			}
 		} else if (_animationState > 19) {
@@ -1155,10 +1175,10 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		_animationFrame = 0;
 		break;
 	case 27:
-		Game_Flag_Reset(199);
+		Game_Flag_Reset(kFlagOfficerLearyTakingNotes);
 		break;
 	case 28:
-		Game_Flag_Set(199);
+		Game_Flag_Set(kFlagOfficerLearyTakingNotes);
 		break;
 	case kAnimationModeWalkUp:
 		_animationState = 5;
@@ -1176,7 +1196,7 @@ bool AIScriptOfficerLeary::ChangeAnimationMode(int mode) {
 		_animationState = 10;
 		_animationFrame = 0;
 		break;
-	case 48:
+	case kAnimationModeDie:
 		if (_animationState == 24) {
 			_animationState = 28;
 			_animationFrame = 0;
@@ -1209,7 +1229,7 @@ void AIScriptOfficerLeary::SetAnimationState(int animationState, int animationFr
 
 bool AIScriptOfficerLeary::ReachedMovementTrackWaypoint(int waypointId) {
 	if (waypointId == 57 || waypointId == 58) {
-		sub_431408();
+		Game_Flag_Set(kFlagOfficerLearyTakingNotes);
 		AI_Countdown_Timer_Reset(kActorOfficerLeary, 2);
 		AI_Countdown_Timer_Start(kActorOfficerLeary, 2, 6);
 	}
@@ -1220,13 +1240,4 @@ void AIScriptOfficerLeary::FledCombat() {
 	Actor_Set_Goal_Number(kActorOfficerLeary, 300);
 }
 
-bool AIScriptOfficerLeary::sub_431408() {
-	Game_Flag_Set(199);
-	return true;
-}
-
-bool AIScriptOfficerLeary::sub_431420() {
-	Game_Flag_Reset(199);
-	return true;
-}
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/ai/photographer.cpp b/engines/bladerunner/script/ai/photographer.cpp
index dbe443b..2b082e8 100644
--- a/engines/bladerunner/script/ai/photographer.cpp
+++ b/engines/bladerunner/script/ai/photographer.cpp
@@ -42,15 +42,18 @@ void AIScriptPhotographer::Initialize() {
 }
 
 bool AIScriptPhotographer::Update() {
-	if (Game_Flag_Query(450) != 1 || Game_Flag_Query(485))
-		return false;
+	if ( Game_Flag_Query(kFlagTB02ElevatorToTB05)
+	 && !Game_Flag_Query(kFlagPhotographerToTB06)
+	) {
+		Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC);
+		Actor_Set_At_Waypoint(kActorPhotographer, 35, 0);
+		Game_Flag_Set(kFlagPhotographerToTB06);
+		Actor_Set_Goal_Number(kActorPhotographer, 100);
 
-	Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC);
-	Actor_Set_At_Waypoint(kActorPhotographer, 35, 0);
-	Game_Flag_Set(485);
-	Actor_Set_Goal_Number(kActorPhotographer, 100);
+		return true;
+	}
 
-	return true;
+	return false;
 }
 
 void AIScriptPhotographer::TimerExpired(int timer) {
@@ -83,22 +86,25 @@ void AIScriptPhotographer::ReceivedClue(int clueId, int fromActorId) {
 }
 
 void AIScriptPhotographer::ClickedByPlayer() {
-	if (Actor_Clue_Query(kActorMcCoy, 44) != 1 || Actor_Clue_Query(kActorMcCoy, 50) || Game_Flag_Query(707)) {
-		AI_Movement_Track_Pause(37);
-		Actor_Face_Actor(kActorMcCoy, kActorPhotographer, 1);
-		Actor_Face_Actor(kActorPhotographer, kActorMcCoy, 1);
-		Actor_Says(kActorMcCoy, 5310, 11);
-		Actor_Says(kActorPhotographer, 40, 3);
-		AI_Movement_Track_Unpause(37);
-	} else {
-		AI_Movement_Track_Pause(37);
-		Actor_Face_Actor(kActorMcCoy, kActorPhotographer, 1);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueVictimInformation)
+	 && !Game_Flag_Query(kFlagTB06PhotographTalk1)
+	) {
+		AI_Movement_Track_Pause(kActorPhotographer);
+		Actor_Face_Actor(kActorMcCoy, kActorPhotographer, true);
 		Actor_Says(kActorMcCoy, 5300, 14);
-		Actor_Face_Actor(kActorPhotographer, kActorMcCoy, 1);
-		Actor_Says(kActorPhotographer, 20, 3);
+		Actor_Face_Actor(kActorPhotographer, kActorMcCoy, true);
+		Actor_Says(kActorPhotographer, 20, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 5305, 15);
-		Game_Flag_Set(707);
-		AI_Movement_Track_Unpause(37);
+		Game_Flag_Set(kFlagTB06PhotographTalk1);
+		AI_Movement_Track_Unpause(kActorPhotographer);
+	} else {
+		AI_Movement_Track_Pause(kActorPhotographer);
+		Actor_Face_Actor(kActorMcCoy, kActorPhotographer, true);
+		Actor_Face_Actor(kActorPhotographer, kActorMcCoy, true);
+		Actor_Says(kActorMcCoy, 5310, 11);
+		Actor_Says(kActorPhotographer, 40, kAnimationModeTalk);
+		AI_Movement_Track_Unpause(kActorPhotographer);
 	}
 }
 
@@ -140,55 +146,49 @@ bool AIScriptPhotographer::GoalChanged(int currentGoalNumber, int newGoalNumber)
 		AI_Movement_Track_Flush(kActorPhotographer);
 		AI_Movement_Track_Append(kActorPhotographer, 35, 0);
 		AI_Movement_Track_Repeat(kActorPhotographer);
-
 		return true;
 
 	case 101:
 		AI_Movement_Track_Flush(kActorPhotographer);
-		switch (Random_Query(1, 3) - 1) {
-		case 0:
+		switch (Random_Query(1, 3)) {
+		case 1:
 			AI_Movement_Track_Append(kActorPhotographer, 280, 4);
 			break;
 
-		case 1:
+		case 2:
 			AI_Movement_Track_Append(kActorPhotographer, 279, 8);
 			break;
 
-		case 2:
+		case 3:
 			AI_Movement_Track_Append(kActorPhotographer, 280, 3);
 			break;
 		}
-
 		AI_Movement_Track_Repeat(kActorPhotographer);
-
 		return false;
 
 	case 102:
 		AI_Movement_Track_Flush(kActorPhotographer);
 		AI_Movement_Track_Append(kActorPhotographer, 279, 5);
 		AI_Movement_Track_Repeat(kActorPhotographer);
-		return 1;
+		return true;
 
 	case 199:
 		Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC);
 		Actor_Set_At_Waypoint(kActorPhotographer, 35, 0);
 		Actor_Put_In_Set(kActorMarcus, kSetFreeSlotI);
 		Actor_Set_At_Waypoint(kActorMarcus, 41, 0);
-
-		if (Game_Flag_Query(102)) {
-			Item_Remove_From_World(103);
-			Item_Remove_From_World(104);
-			Item_Remove_From_World(105);
+		if (Game_Flag_Query(kFlagTB06Visited)) {
+			Item_Remove_From_World(kItemDeadDogA);
+			Item_Remove_From_World(kItemDeadDogB);
+			Item_Remove_From_World(kItemDeadDogC);
 		}
-
-		if (!Actor_Clue_Query(kActorMcCoy, 65)) {
-			Actor_Clue_Acquire(kActorSteele, kClueDogCollar1, 1, -1);
-			if (Game_Flag_Query(102)) {
-				Item_Remove_From_World(84);
+		if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar1)) {
+			Actor_Clue_Acquire(kActorSteele, kClueDogCollar1, true, -1);
+			if (Game_Flag_Query(kFlagTB06Visited)) {
+				Item_Remove_From_World(kItemDogCollar);
 			}
-			Global_Variable_Increment(14, 1);
+			Global_Variable_Increment(kVariableMcCoyEvidenceMissed, 1);
 		}
-
 		return true;
 
 	default:
@@ -216,11 +216,13 @@ bool AIScriptPhotographer::UpdateAnimation(int *animation, int *frame) {
 
 	case 2:
 		*animation = 747;
-		if (!_animationFrame && _flag) {
+		if (_animationFrame == 0
+		 && _flag
+		) {
 			*animation = 745;
 			_animationState = 0;
 			_var2 = 0;
-			_flag = 0;
+			_flag = false;
 		} else {
 			_animationFrame++;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(747)) {
@@ -275,7 +277,7 @@ bool AIScriptPhotographer::UpdateAnimation(int *animation, int *frame) {
 				*animation = 745;
 				_animationState = 0;
 				_animationFrame = 0;
-				Actor_Change_Animation_Mode(kActorPhotographer, 0);
+				Actor_Change_Animation_Mode(kActorPhotographer, kAnimationModeIdle);
 			}
 		}
 		break;
@@ -290,48 +292,48 @@ bool AIScriptPhotographer::UpdateAnimation(int *animation, int *frame) {
 
 bool AIScriptPhotographer::ChangeAnimationMode(int mode) {
 	switch (mode) {
-	case 0:
-		if (_animationState > 5) {
+	case kAnimationModeIdle:
+		if (_animationState < 2 || _animationState > 5) {
 			_animationState = 0;
 			_var2 = 0;
 			_animationFrame = 0;
 		} else {
-			_flag = 1;
+			_flag = true;
 		}
 		break;
 
-	case 1:
+	case kAnimationModeWalk:
 		_animationState = 1;
 		_var2 = 0;
 		_animationFrame = 0;
 		break;
 
-	case 3:
+	case kAnimationModeTalk:
 		_animationState = 2;
 		_var2 = 0;
 		_animationFrame = 0;
-		_flag = 0;
+		_flag = false;
 		break;
 
 	case 12:
 		_animationState = 3;
 		_var2 = 0;
 		_animationFrame = 0;
-		_flag = 0;
+		_flag = false;
 		break;
 
 	case 13:
 		_animationState = 4;
 		_var2 = 0;
 		_animationFrame = 0;
-		_flag = 0;
+		_flag = false;
 		break;
 
 	case 14:
 		_animationState = 5;
 		_var2 = 0;
 		_animationFrame = 0;
-		_flag = 0;
+		_flag = false;
 		break;
 
 	case 43:
@@ -360,8 +362,12 @@ void AIScriptPhotographer::SetAnimationState(int animationState, int animationFr
 }
 
 bool AIScriptPhotographer::ReachedMovementTrackWaypoint(int waypointId) {
-	if (waypointId == 276 || waypointId == 278 || waypointId == 280)
+	if (waypointId == 276
+	 || waypointId == 278
+	 || waypointId == 280
+	) {
 		ChangeAnimationMode(43);
+	}
 
 	return true;
 }
diff --git a/engines/bladerunner/script/ai/runciter.cpp b/engines/bladerunner/script/ai/runciter.cpp
index 8c52a9c..19e1598 100644
--- a/engines/bladerunner/script/ai/runciter.cpp
+++ b/engines/bladerunner/script/ai/runciter.cpp
@@ -120,7 +120,7 @@ void AIScriptRunciter::OtherAgentEnteredCombatMode(int otherActorId, int combatM
 				Actor_Says(kActorMcCoy, 4790, -1);
 				Actor_Says(kActorRunciter, 650, 18);
 				Actor_Says(kActorRunciter, 660, 19);
-				Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersConfession1, 1, kActorRunciter);
+				Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersConfession1, true, kActorRunciter);
 			} else {
 				Actor_Says(kActorRunciter, 670, 18);
 				Actor_Says(kActorMcCoy, 4795, -1);
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index b5aabc2..d66609f 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -196,7 +196,7 @@ void AIScriptSadik::Retired(int byActorId) {
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(579);
 			Game_Flag_Reset(653);
-			Set_Enter(kSetKP05_KP06, kSetKP03);
+			Set_Enter(kSetKP05_KP06, kSceneKP06);
 			return; //true;
 		}
 	}
diff --git a/engines/bladerunner/script/ai/sebastian.cpp b/engines/bladerunner/script/ai/sebastian.cpp
index 4a52f3c..b6a9b50 100644
--- a/engines/bladerunner/script/ai/sebastian.cpp
+++ b/engines/bladerunner/script/ai/sebastian.cpp
@@ -472,7 +472,7 @@ void AIScriptSebastian::dialogue() {
 }
 
 void AIScriptSebastian::setMcCoyIsABladeRunner() {
-	Actor_Clue_Acquire(kActorSebastian, kClueMcCoyIsABladeRunner, 1, 0);
+	Actor_Clue_Acquire(kActorSebastian, kClueMcCoyIsABladeRunner, true, 0);
 	Actor_Modify_Friendliness_To_Other(kActorSebastian, kActorMcCoy, -5);
 	Actor_Says(kActorSebastian, 560, 15);
 	Actor_Says(kActorMcCoy, 7200, 14);
diff --git a/engines/bladerunner/script/ai/sergeant_walls.cpp b/engines/bladerunner/script/ai/sergeant_walls.cpp
index 2c2ae2b..d657f31 100644
--- a/engines/bladerunner/script/ai/sergeant_walls.cpp
+++ b/engines/bladerunner/script/ai/sergeant_walls.cpp
@@ -35,8 +35,10 @@ void AIScriptSergeantWalls::Initialize() {
 }
 
 bool AIScriptSergeantWalls::Update() {
-	if (Game_Flag_Query(206) && Game_Flag_Query(158)) {
-		Game_Flag_Reset(206);
+	if (Game_Flag_Query(kFlagSergeantWallsBuzzInRequest)
+	 && Game_Flag_Query(kFlagSergeantWallsBuzzInDone)
+	) {
+		Game_Flag_Reset(kFlagSergeantWallsBuzzInRequest);
 	}
 	return false;
 }
@@ -97,11 +99,13 @@ bool AIScriptSergeantWalls::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
 		_animationFrame++;
-		if (Game_Flag_Query(206) && !Game_Flag_Query(158)) {
+		if ( Game_Flag_Query(kFlagSergeantWallsBuzzInRequest)
+		 && !Game_Flag_Query(kFlagSergeantWallsBuzzInDone)
+		) {
 			*animation = 724;
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(724)) {
 				_animationFrame = 0;
-				Game_Flag_Set(158);
+				Game_Flag_Set(kFlagSergeantWallsBuzzInDone);
 			}
 		} else {
 			*animation = 722;
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 348443f..e1f8fee 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -43,140 +43,178 @@ void AIScriptSteele::Initialize() {
 	Actor_Put_In_Set(kActorSteele, kSetFreeSlotG);
 	Actor_Set_At_Waypoint(kActorSteele, 39, 0);
 	Actor_Set_Goal_Number(kActorSteele, 0);
-	Actor_Clue_Acquire(kActorSteele, kClueCrimeSceneNotes, 1, -1);
+	Actor_Clue_Acquire(kActorSteele, kClueCrimeSceneNotes, true, -1);
 }
 
 bool AIScriptSteele::Update() {
-	if (Global_Variable_Query(14) <= 5 || Actor_Clue_Query(kActorSteele, 239)) {
-		switch (Global_Variable_Query(kVariableChapter)) {
-		case 1:
-			if (Game_Flag_Query(kFlagMcCoyAtRCxx) && Game_Flag_Query(kFlagMcCoyAtRCxx)) {
-				Actor_Set_Goal_Number(kActorSteele, 3);
-				return true;
-			} else if (Game_Flag_Query(kFlagMcCoyAtCTxx) && Game_Flag_Query(184)) {
-				Actor_Set_Goal_Number(kActorSteele, 6);
-				return true;
-			} else if (Game_Flag_Query(kFlagMcCoyAtPSxx) && Game_Flag_Query(185)) {
-				Actor_Set_Goal_Number(kActorSteele, 10);
-				return true;
-			} else if (Actor_Query_Goal_Number(kActorSteele)
-			        || Game_Flag_Query(kFlagMcCoyAtRCxx)
-			        || Player_Query_Current_Scene() == kSceneRC01
-			) {
-				if (Actor_Query_Goal_Number(kActorSteele) != 11) {
-					break; // go to after switch
-				}
-				Actor_Set_Goal_Number(kActorSteele, 0);
-				return true;
-			} else {
-				Actor_Set_Goal_Number(kActorSteele, 1);
-				Game_Flag_Set(183);
-				return true;
-			}
+	if ( Global_Variable_Query(kVariableMcCoyEvidenceMissed) > 5
+	 && !Actor_Clue_Query(kActorSteele, kClueMcCoyIsStupid)
+	) {
+		Actor_Clue_Acquire(kActorSteele, kClueMcCoyIsStupid, true, -1);
+		return true;
+	}
 
-		case 2:
-			if (Game_Flag_Query(451) != 1 || Game_Flag_Query(457)) {
-				if (Actor_Query_Goal_Number(kActorSteele) == 110 && Game_Flag_Query(456) == 1) {
-					Actor_Set_Goal_Number(kActorSteele, 111);
-					return true;
-				} else if (Game_Flag_Query(460) || Actor_Query_Goal_Number(kActorSteele) != 112) {
-					if (Actor_Query_Goal_Number(kActorSteele) != 190) {
-						break; // go to after switch
-					}
-					Game_Flag_Reset(460);
-					Actor_Set_Goal_Number(kActorSteele, 112);
-					return true;
-				} else {
-					Actor_Set_Goal_Number(kActorSteele, 113);
-					Game_Flag_Set(460);
-					return true;
-				}
-			} else {
-				Actor_Set_Goal_Number(kActorSteele, 110);
-				Game_Flag_Set(457);
-				return true;
-			}
+	switch (Global_Variable_Query(kVariableChapter)) {
+	case 1:
+		if (Game_Flag_Query(kFlagMcCoyAtRCxx)
+		 && Game_Flag_Query(183)
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 3);
+			return true;
+		}
 
-		case 3:
-			if (Global_Variable_Query(kVariableChapter) != 3) {
-				break; // go to after switch
-			}
-			if (Actor_Query_Goal_Number(kActorSteele) < 205)
-				Actor_Set_Goal_Number(kActorSteele, 205);
+		if (Game_Flag_Query(kFlagMcCoyAtCTxx)
+		 && Game_Flag_Query(184)
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 6);
+			return true;
+		}
 
-			if (Actor_Query_Goal_Number(kActorSteele) == 251
-					&& Player_Query_Current_Scene() == kSceneNR01
-					&& Actor_Query_In_Between_Two_Actors(0, 1, 2)) {
-				Actor_Set_Goal_Number(kActorSteele, 255);
-			}
-			if (Actor_Query_Goal_Number(kActorSteele) == 213) {
-				Actor_Set_Goal_Number(kActorSteele, 214);
-				return true;
-			} else if (Actor_Query_Goal_Number(kActorSteele) == 261) {
-				Actor_Set_Goal_Number(kActorSteele, 262);
-				return true;
-			} else {
-				if (Actor_Query_Goal_Number(kActorSteele) != 271) {
-					break; // go to after switch
-				}
-				Actor_Set_Goal_Number(kActorSteele, 270);
-				return true;
-			}
+		if (Game_Flag_Query(kFlagMcCoyAtPSxx)
+		 && Game_Flag_Query(185)
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 10);
+			return true;
+		}
 
-		case 4:
-			if (Actor_Query_Goal_Number(kActorSteele) < 300) {
-				Actor_Set_Goal_Number(kActorSteele, 300);
-			}
-			break; // go to after switch
+		if ( Actor_Query_Goal_Number(kActorSteele) == 0
+		 && !Game_Flag_Query(kFlagMcCoyAtRCxx)
+		 &&  Player_Query_Current_Scene() != kSceneRC01
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 1);
+			Game_Flag_Set(183);
+			return true;
+		}
 
-		case 5:
-			if (Game_Flag_Query(653) != 1 || Actor_Query_Goal_Number(kActorSteele) >= 400) {
-				break; // go to after switch
-			}
-			Actor_Set_Goal_Number(kActorSteele, 400);
+		if (Actor_Query_Goal_Number(kActorSteele) == 11) {
+			Actor_Set_Goal_Number(kActorSteele, 0);
 			return true;
+		}
 
-		default:
-			break; // go to after switch
+		break;
+
+	case 2:
+		if ( Game_Flag_Query(kFlagTB05Entered)
+		 && !Game_Flag_Query(kFlagTB02SteeleEnter)
+		) {
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleGoToTB02);
+			Game_Flag_Set(kFlagTB02SteeleEnter);
+			return true;
 		}
 
-		if (Actor_Query_Goal_Number(kActorSteele) == 599 && !Actor_Query_In_Set(kActorSteele, kSetFreeSlotI)) {
-			if (Actor_Query_Which_Set_In(kActorMcCoy) != Actor_Query_Which_Set_In(kActorSteele)) {
-				AI_Movement_Track_Flush(kActorSteele);
-				AI_Movement_Track_Append(kActorSteele, 41, 100);
-				AI_Movement_Track_Repeat(kActorSteele);
-			}
+		if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleGoToTB02
+		 && Game_Flag_Query(kFlagTB02SteeleTalk)) {
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleLeaveTB02);
+			return true;
+		 }
+
+		if (!Game_Flag_Query(kFlagSteeleWalkingAround)
+		 && Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleGoToPoliceStation
+		) {
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleWalkAround);
+			Game_Flag_Set(kFlagSteeleWalkingAround);
+			return true;
 		}
-		return false;
-	} else {
-		Actor_Clue_Acquire(kActorSteele, 239, 1, -1);
-		return true;
+
+		if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleWalkAroundRestart) {
+			Game_Flag_Reset(kFlagSteeleWalkingAround);
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleGoToPoliceStation);
+			return true;
+		}
+
+		break;
+
+	case 3:
+		if (Global_Variable_Query(kVariableChapter) != 3) { // why is this here? double check?
+			break;
+		}
+
+		if (Actor_Query_Goal_Number(kActorSteele) < 205) {
+			Actor_Set_Goal_Number(kActorSteele, 205);
+		}
+
+		if (Actor_Query_Goal_Number(kActorSteele) == 251
+		 && Player_Query_Current_Scene() == kSceneNR01
+		 && Actor_Query_In_Between_Two_Actors(kActorMcCoy, kActorSteele, kActorGordo)
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 255);
+		}
+
+		if (Actor_Query_Goal_Number(kActorSteele) == 213) {
+			Actor_Set_Goal_Number(kActorSteele, 214);
+			return true;
+		}
+
+		if (Actor_Query_Goal_Number(kActorSteele) == 261) {
+			Actor_Set_Goal_Number(kActorSteele, 262);
+			return true;
+		}
+
+		if (Actor_Query_Goal_Number(kActorSteele) != 271) {
+			Actor_Set_Goal_Number(kActorSteele, 270);
+		}
+
+		break;
+
+	case 4:
+		if (Actor_Query_Goal_Number(kActorSteele) < 300) {
+			Actor_Set_Goal_Number(kActorSteele, 300);
+		}
+
+		break;
+
+	case 5:
+		if (Game_Flag_Query(653)
+		 && Actor_Query_Goal_Number(kActorSteele) < 400
+		) {
+			Actor_Set_Goal_Number(kActorSteele, 400);
+			return true;
+		}
+
+		break;
+
+	default:
+		break;
 	}
-}
 
-void AIScriptSteele::TimerExpired(int timer) {
-	if (Actor_Query_Goal_Number(kActorSteele) != 210 || timer || Player_Query_Current_Scene() != kSceneNR11) {
-		if (Actor_Query_Goal_Number(kActorSteele) != 210 || timer) {
-			if (timer == 1) {
-				int goal = Actor_Query_Goal_Number(kActorSteele);
+	if ( Actor_Query_Goal_Number(kActorSteele) == 599
+		&& !Actor_Query_In_Set(kActorSteele, kSetFreeSlotI)
+	) {
+		if (Actor_Query_Which_Set_In(kActorMcCoy) != Actor_Query_Which_Set_In(kActorSteele)) {
+			AI_Movement_Track_Flush(kActorSteele);
+			AI_Movement_Track_Append(kActorSteele, 41, 100);
+			AI_Movement_Track_Repeat(kActorSteele);
+		}
+	}
+	return false;
 
-				AI_Countdown_Timer_Reset(kActorSteele, 1);
+}
 
-				if (goal == 415) {
-					Actor_Set_Goal_Number(kActorSteele, 416);
-				} else if (goal == 416) {
-					Actor_Set_Goal_Number(kActorSteele, 419);
-				}
-			}
-			return; // false;
+void AIScriptSteele::TimerExpired(int timer) {
+	if (timer == 0
+	 && Actor_Query_Goal_Number(kActorSteele) == 210
+	 && Player_Query_Current_Scene() == kSceneNR11
+	) {
+		if (Player_Query_Current_Scene() == kSceneNR11) {
+			Actor_Set_Goal_Number(kActorSteele, 212);
 		} else {
 			Actor_Set_Goal_Number(kActorSteele, 211);
-			return; // true;
 		}
-	} else {
-		Actor_Set_Goal_Number(kActorSteele, 212);
 		return; // true;
 	}
+
+	if (timer == 1) {
+		int goal = Actor_Query_Goal_Number(kActorSteele);
+
+		AI_Countdown_Timer_Reset(kActorSteele, 1);
+
+		if (goal == 415) {
+			Actor_Set_Goal_Number(kActorSteele, 416);
+		} else if (goal == 416) {
+			Actor_Set_Goal_Number(kActorSteele, 419);
+		}
+	}
+	return; // false;
 }
 
 void AIScriptSteele::CompletedMovementTrack() {
@@ -195,8 +233,11 @@ void AIScriptSteele::CompletedMovementTrack() {
 			Actor_Clues_Transfer_New_From_Mainframe(kActorSteele);
 		}
 
-		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75)
+		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele)
+		 && Query_Score(kActorMcCoy) < 75
+		) {
 			Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy));
+		}
 
 		Actor_Set_Goal_Number(kActorSteele, 4);
 		break;
@@ -238,7 +279,7 @@ void AIScriptSteele::CompletedMovementTrack() {
 		break;
 
 	case 100:
-		if (Actor_Query_Goal_Number(kActorSteele) == 100) {
+		if (Actor_Query_Goal_Number(kActorSteele) == 100) { //why is this here? double check?
 			Player_Set_Combat_Mode(kActorMcCoy);
 
 			if (Actor_Query_Goal_Number(kActorIzo) != 199) {
@@ -253,12 +294,12 @@ void AIScriptSteele::CompletedMovementTrack() {
 		}
 		break;
 
-	case 111:
-		Actor_Set_Goal_Number(kActorSteele, 112);
+	case kGoalSteeleLeaveTB02:
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleGoToPoliceStation);
 		break;
 
-	case 113:
-		Actor_Set_Goal_Number(kActorSteele, 190);
+	case kGoalSteeleWalkAround:
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleWalkAroundRestart);
 		break;
 
 	case 241:
@@ -290,11 +331,11 @@ void AIScriptSteele::CompletedMovementTrack() {
 		Actor_Says(kActorSteele, 670, 59);
 		Actor_Set_Goal_Number(kActorSteele, 433);
 		Player_Set_Combat_Mode(kActorSteele);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 0, 0, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, false, false, 0);
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Game_Flag_Set(578);
-		Set_Enter(kSetKP07, kSetKP04);
+		Set_Enter(kSetKP07, kSceneKP07);
 		break;
 
 	default:
@@ -358,29 +399,42 @@ void AIScriptSteele::ClickedByPlayer() {
 
 void AIScriptSteele::EnteredScene(int sceneId) {
 	if (Actor_Query_Goal_Number(kActorSteele) == 2) {
-		if (!Game_Flag_Query(147) && Random_Query(1, 3) == 1) {
-			Actor_Clue_Acquire(kActorSteele, 8, 1, -1);
-			Game_Flag_Set(147);
-
-			if (Game_Flag_Query(709)) {
-				Item_Remove_From_World(82);
+		if (!Game_Flag_Query(kFlagChopstickWrapperTaken)
+		 &&  Random_Query(1, 3) == 1
+		) {
+			Actor_Clue_Acquire(kActorSteele, kClueChopstickWrapper, true, -1);
+			Game_Flag_Set(kFlagChopstickWrapperTaken);
+
+			if (Game_Flag_Query(kFlagRC51Discovered)) {
+				Item_Remove_From_World(kItemChopstickWrapper);
 			}
 
-			Global_Variable_Increment(14, 1);
-		} else if (!Game_Flag_Query(148) && Random_Query(1, 3) == 1) {
-			Actor_Clue_Acquire(kActorSteele, 6, 1, -1);
-			Game_Flag_Set(148);
+			Global_Variable_Increment(kVariableMcCoyEvidenceMissed, 1);
+			return;  //true;
+		}
+
+		if (!Game_Flag_Query(kFlagCandyTaken)
+		 &&  Random_Query(1, 3) == 1
+		) {
+			Actor_Clue_Acquire(kActorSteele, kClueCandy, true, -1);
+			Game_Flag_Set(kFlagCandyTaken);
 
-			if (Game_Flag_Query(709)) {
-				Item_Remove_From_World(79);
+			if (Game_Flag_Query(kFlagRC51Discovered)) {
+				Item_Remove_From_World(kItemCandy);
 			}
-		} else if (!Game_Flag_Query(149) && Random_Query(1, 20) == 1) {
-			Actor_Clue_Acquire(kActorSteele, 7, 1, -1);
-			Game_Flag_Set(149);
+			return; //true;
+		}
+
+		if (!Game_Flag_Query(kFlagToyDogTaken)
+		 &&  Random_Query(1, 20) == 1
+		) {
+			Actor_Clue_Acquire(kActorSteele, kClueToyDog, true, -1);
+			Game_Flag_Set(kFlagToyDogTaken);
 
-			if (Game_Flag_Query(709)) {
-				Item_Remove_From_World(98);
+			if (Game_Flag_Query(kFlagRC51Discovered)) {
+				Item_Remove_From_World(kItemToyDog);
 			}
+			return; //true;
 		}
 	}
 
@@ -406,7 +460,9 @@ void AIScriptSteele::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptSteele::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (!otherActorId && Actor_Query_Goal_Number(kActorSteele) == 410)
+	if (otherActorId == kActorMcCoy
+	 && Actor_Query_Goal_Number(kActorSteele) == 410
+	)
 		Actor_Set_Goal_Number(kActorSteele, 418);
 }
 
@@ -415,8 +471,9 @@ void AIScriptSteele::ShotAtAndMissed() {
 }
 
 bool AIScriptSteele::ShotAtAndHit() {
-	if (Actor_Query_Goal_Number(kActorSteele) == 251)
+	if (Actor_Query_Goal_Number(kActorSteele) == 251) {
 		Actor_Set_Goal_Number(kActorSteele, 271);
+	}
 
 	if (/* !a1 && */ Actor_Query_In_Set(kActorSteele, kSetHF06))
 		Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false);
@@ -439,43 +496,44 @@ void AIScriptSteele::Retired(int byActorId) {
 }
 
 int AIScriptSteele::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
-	if (otherActorId != kActorMcCoy)
+	if (otherActorId != kActorMcCoy) {
 		return 0;
+	}
 
 	switch (clueId) {
-	case 202:
-	case 223:
-	case 224:
-	case 226:
-	case 227:
-	case 228:
-	case 231:
-	case 241:
-	case 242:
+	case kClueMcCoyRecoveredHoldensBadge:
+	case kClueMcCoyRetiredLucy:
+	case kClueMcCoyRetiredDektora:
+	case kClueMcCoyRetiredSadik:
+	case kClueMcCoyShotZubenInTheBack:
+	case kClueMcCoyRetiredLutherLance:
+	case kClueClovisOrdersMcCoysDeath:
+	case kClueMcCoyIsKind:
+	case kClueMcCoyIsInsane:
 		return 5;
 
-	case 212:
-	case 221:
-	case 230:
+	case kClueMcCoyKilledRunciter1:
+	case kClueMcCoyShotGuzza:
+	case kClueMcCoyKilledRunciter2:
 		return 0;
 
-	case 215:
+	case kClueMcCoyLetZubenEscape:
 		return -4;
 
-	case 216:
-	case 217:
-	case 218:
-	case 219:
-	case 220:
+	case kClueMcCoyWarnedIzo:
+	case kClueMcCoyHelpedIzoIzoIsAReplicant:
+	case kClueMcCoyHelpedDektora:
+	case kClueMcCoyHelpedLucy:
+	case kClueMcCoyHelpedGordo:
 		return -5;
 
-	case 222:
+	case kClueMcCoyRetiredZuben:
 		return 4;
 
-	case 239:
+	case kClueMcCoyIsStupid:
 		return -3;
 
-	case 240:
+	case kClueMcCoyIsAnnoying:
 		return -2;
 	}
 
@@ -501,16 +559,19 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorSteele, 12, 5);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 2:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 61, 30);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 3:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 35, 45);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 4:
 		AI_Movement_Track_Flush(kActorSteele);
 		Game_Flag_Set(184);
@@ -518,6 +579,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorSteele, 39, 45);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 5:
 		AI_Movement_Track_Flush(kActorSteele);
 		if (Random_Query(1, 10) == 1) {
@@ -527,11 +589,13 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 6:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 35, 45);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 7:
 		AI_Movement_Track_Flush(kActorSteele);
 		Game_Flag_Set(185);
@@ -539,6 +603,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorSteele, 39, 45);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 8:
 		AI_Movement_Track_Flush(kActorSteele);
 		if (Random_Query(1, 2) == 1) {
@@ -548,26 +613,30 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 9:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 62, 1);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 10:
 		AI_Movement_Track_Flush(kActorSteele);
 		Game_Flag_Reset(185);
 		AI_Movement_Track_Append(kActorSteele, 39, 30);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 11:
-		Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewA, 1, kActorGrigorian);
+		Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewA, true, kActorGrigorian);
 		if (Game_Flag_Query(kFlagIzoIsReplicant)) {
-			Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB1, 1, kActorGrigorian);
+			Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB1, true, kActorGrigorian);
 		} else {
-			Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB2, 1, kActorGrigorian);
+			Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB2, true, kActorGrigorian);
 		}
 		Actor_Set_Goal_Number(kActorSteele, 0);
 		return true;
+
 	case 100:
 		AI_Movement_Track_Flush(kActorSteele);
 		if (Game_Flag_Query(kFlagIzoIsReplicant)) {
@@ -579,34 +648,40 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
-	case 110:
+
+	case kGoalSteeleGoToTB02:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 192, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
-	case 111:
+
+	case kGoalSteeleLeaveTB02:
 		Loop_Actor_Walk_To_XYZ(kActorSteele, -187.82f, 0.08f, 1460.74f, 0, 0, 0, 0);
-		Actor_Face_Heading(kActorSteele, 802, 0);
-		Loop_Actor_Travel_Stairs(kActorSteele, 10, 0, 0);
+		Actor_Face_Heading(kActorSteele, 802, false);
+		Loop_Actor_Travel_Stairs(kActorSteele, 10, false, kAnimationModeIdle);
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 35, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
-	case 112:
+
+	case kGoalSteeleGoToPoliceStation:
 		if (Random_Query(1, 2) == 1) {
 			Actor_Clues_Transfer_New_To_Mainframe(kActorSteele);
 			Actor_Clues_Transfer_New_From_Mainframe(kActorSteele);
 		}
-		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) {
+		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele)
+		 && Query_Score(kActorMcCoy) < 75
+		) {
 			Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy));
 		}
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 35, Random_Query(45, 120));
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
-	case 113:
+
+	case kGoalSteeleWalkAround:
 		AI_Movement_Track_Flush(kActorSteele);
-		if (Random_Query(1, 5) == 1) {
+		if (Random_Query(1, 5) == 1) { // Animoid row & Bradbury building
 			AI_Movement_Track_Append(kActorSteele, 222, 0);
 			AI_Movement_Track_Append_With_Facing(kActorSteele, 223, 3, 973);
 			AI_Movement_Track_Append(kActorSteele, 224, 5);
@@ -624,34 +699,34 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			AI_Movement_Track_Append(kActorSteele, 228, 0);
 			AI_Movement_Track_Append(kActorSteele, 229, 10);
 			AI_Movement_Track_Repeat(kActorSteele);
-		} else {
-			if (Random_Query(1, 3) == 1) {
-				AI_Movement_Track_Append(kActorSteele, 232, 0);
-				AI_Movement_Track_Append(kActorSteele, 233, 0);
-				AI_Movement_Track_Append(kActorSteele, 234, 3);
-				AI_Movement_Track_Append(kActorSteele, 237, 0);
-				AI_Movement_Track_Append(kActorSteele, 238, 0);
-				AI_Movement_Track_Append(kActorSteele, 239, 0);
-				AI_Movement_Track_Append(kActorSteele, 240, 10);
-				AI_Movement_Track_Append(kActorSteele, 39, 120);
-				AI_Movement_Track_Append(kActorSteele, 243, 0);
-				AI_Movement_Track_Append(kActorSteele, 244, 10);
-			} else {
-				AI_Movement_Track_Append(kActorSteele, 248, 0);
-				AI_Movement_Track_Append(kActorSteele, 249, 0);
-				AI_Movement_Track_Append(kActorSteele, 250, 10);
-				AI_Movement_Track_Append(kActorSteele, 253, 0);
-				AI_Movement_Track_Append_With_Facing(kActorSteele, 254, 3, 1015);
-				AI_Movement_Track_Append_With_Facing(kActorSteele, 255, 2, 1015);
-				AI_Movement_Track_Append_With_Facing(kActorSteele, 256, 3, 1015);
-				AI_Movement_Track_Append(kActorSteele, 257, 0);
-				AI_Movement_Track_Append(kActorSteele, 39, 30);
-				AI_Movement_Track_Append(kActorSteele, 35, 120);
-				AI_Movement_Track_Append(kActorSteele, 39, 30);
-			}
+		} else if (Random_Query(1, 3) == 1) { // Chinatown & DNA row
+			AI_Movement_Track_Append(kActorSteele, 232, 0);
+			AI_Movement_Track_Append(kActorSteele, 233, 0);
+			AI_Movement_Track_Append(kActorSteele, 234, 3);
+			AI_Movement_Track_Append(kActorSteele, 237, 0);
+			AI_Movement_Track_Append(kActorSteele, 238, 0);
+			AI_Movement_Track_Append(kActorSteele, 239, 0);
+			AI_Movement_Track_Append(kActorSteele, 240, 10);
+			AI_Movement_Track_Append(kActorSteele, 39, 120);
+			AI_Movement_Track_Append(kActorSteele, 243, 0);
+			AI_Movement_Track_Append(kActorSteele, 244, 10);
+			AI_Movement_Track_Repeat(kActorSteele);
+		} else { // Police station
+			AI_Movement_Track_Append(kActorSteele, 248, 0);
+			AI_Movement_Track_Append(kActorSteele, 249, 0);
+			AI_Movement_Track_Append(kActorSteele, 250, 10);
+			AI_Movement_Track_Append(kActorSteele, 253, 0);
+			AI_Movement_Track_Append_With_Facing(kActorSteele, 254, 3, 1015);
+			AI_Movement_Track_Append_With_Facing(kActorSteele, 255, 2, 1015);
+			AI_Movement_Track_Append_With_Facing(kActorSteele, 256, 3, 1015);
+			AI_Movement_Track_Append(kActorSteele, 257, 0);
+			AI_Movement_Track_Append(kActorSteele, 39, 30);
+			AI_Movement_Track_Append(kActorSteele, 35, 120);
+			AI_Movement_Track_Append(kActorSteele, 39, 30);
 			AI_Movement_Track_Repeat(kActorSteele);
 		}
 		return true;
+
 	case 120:
 		Actor_Force_Stop_Walking(kActorMcCoy);
 		Sound_Play(27, 100, 0, 0, 50);
@@ -677,6 +752,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Goal_Number(kActorSteele, 130);
 		Player_Gains_Control();
 		return true;
+
 	case 121:
 		Actor_Force_Stop_Walking(kActorMcCoy);
 		Actor_Face_Actor(kActorSteele, kActorIzo, 1);
@@ -715,6 +791,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Goal_Number(kActorSteele, 130);
 		Actor_Set_Goal_Number(kActorSteele, 0);
 		return true;
+
 	case 125:
 		Actor_Force_Stop_Walking(kActorMcCoy);
 		Actor_Set_Goal_Number(kActorIzo, 114);
@@ -731,35 +808,42 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Goal_Number(kActorSteele, 130);
 		Scene_Exits_Enable();
 		return true;
+
 	case 126:
 		return true;
+
 	case 130:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 174, 0);
 		AI_Movement_Track_Append(kActorSteele, 35, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 200:
 		AI_Movement_Track_Flush(kActorSteele);
 		return true;
+
 	case 205:
 		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) {
 			Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy));
 		}
-		if (Game_Flag_Query(702)) {
+		if (Game_Flag_Query(kFlagRC04Locked)) {
 			Game_Flag_Set(643);
 		}
 		AI_Movement_Track_Flush(kActorSteele);
 		Actor_Put_In_Set(kActorSteele, kSetFreeSlotC);
 		Actor_Set_At_Waypoint(kActorSteele, 35, 0);
 		return true;
+
 	case 210:
 		AI_Countdown_Timer_Reset(kActorSteele, 0);
 		AI_Countdown_Timer_Start(kActorSteele, 0, 15);
 		return true;
+
 	case 211:
 		AI_Countdown_Timer_Reset(kActorSteele, 0);
 		return true;
+
 	case 212:
 		if (comp_distance(kActorMcCoy, -4.0, 0.33f, 0.0f, 100.0f, 0.33f, -4.0f) < 48.0f) {
 			Loop_Actor_Walk_To_XYZ(0, 32.0f, 0.33f, 17.0f, 0, 0, 0, 0);
@@ -774,10 +858,12 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		_animationState = 10;
 		_animationFrame = 0;
 		return true;
+
 	case 213:
 	case 216:
 	case 271:
 		return true;
+
 	case 214:
 		Player_Gains_Control();
 		switch (Actor_Query_Goal_Number(kActorDektora)) {
@@ -817,34 +903,39 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_Goal_Number(kActorSteele, 275);
 		}
 		return true;
+
 	case 215:
 		Game_Flag_Set(635);
 		Actor_Change_Animation_Mode(kActorSteele, 6);
 		Scene_Exits_Disable();
 		return true;
+
 	case 230:
 		AI_Movement_Track_Flush(kActorSteele);
 		Actor_Put_In_Set(kActorSteele, kSetNR01);
 		Actor_Set_At_XYZ(kActorSteele, 94.03f, 23.88f, -794.46f, 685);
 		return true;
+
 	case 231:
 		AI_Movement_Track_Flush(kActorSteele);
 		Actor_Put_In_Set(kActorSteele, kSetNR05_NR08);
 		Actor_Set_At_XYZ(kActorSteele, -1034.09f, 0.32f, 224.77f, 440);
 		Game_Flag_Set(722);
-		Set_Enter(kSetNR05_NR08, kSetPS01);
+		Set_Enter(kSetNR05_NR08, kSceneNR08);
 		return true;
+
 	case 232:
 		Game_Flag_Set(532);
-		Set_Enter(kSetNR02, kSetNR03);
+		Set_Enter(kSetNR02, kSceneNR02);
 		return true;
+
 	case 233:
 		Game_Flag_Set(kFlagHF01toHF03);
 		Game_Flag_Reset(kFlagMcCoyAtNRxx);
 		Game_Flag_Set(kFlagMcCoyAtHFxx);
 		Actor_Put_In_Set(kActorSteele, kSetHF03);
 		Actor_Set_At_XYZ(kActorSteele, 291.0f, 47.76f, -892.0f, 453);
-		Set_Enter(kSetHF03, kSetDR06);
+		Set_Enter(kSetHF03, kSceneHF03);
 		return true;
 	case 234:
 		AI_Movement_Track_Flush(kActorSteele);
@@ -852,16 +943,19 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorSteele, 35, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 235:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 467, 0);
 		AI_Movement_Track_Append(kActorSteele, 35, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 236:
 		Actor_Put_In_Set(kActorSteele, kSetNR10);
 		Actor_Set_At_XYZ(kActorSteele, -118.13f, 2.84f, -197.90f, 305);
 		return true;
+
 	case 240:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Flush(kActorLucy);
@@ -870,6 +964,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Put_In_Set(kActorLucy, kSetHF02);
 		Actor_Set_At_XYZ(kActorLucy, 596.49f, 47.76f, -260.04f, 731);
 		return true;
+
 	case 241:
 		Actor_Change_Animation_Mode(kActorSteele, 6);
 		Delay(500);
@@ -883,6 +978,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Delay(500);
 		ADQ_Add(6, 340, 48);
 		return true;
+
 	case 242:
 		AI_Movement_Track_Flush(kActorSteele);
 		Player_Loses_Control();
@@ -912,21 +1008,23 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetNR01, kSetNR01);
+			Set_Enter(kSetNR01, kSceneNR01);
 		} else {
 			Actor_Put_In_Set(kActorSteele, kSetHF01);
 			Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetHF01, kSetDR03);
+			Set_Enter(kSetHF01, kSceneHF04);
 		}
 		return true;
+
 	case 243:
 		Player_Loses_Control();
 		Delay(500);
 		Actor_Put_In_Set(kActorSteele, kSetHF02);
 		Actor_Set_At_XYZ(kActorSteele, 254.94f, 47.76f, -262.58f, 210);
 		return true;
+
 	case 244:
 		Actor_Face_Actor(kActorMcCoy, kActorSteele, 1);
 		Actor_Says(kActorMcCoy, 1560, 14);
@@ -936,6 +1034,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorSteele, 120, 15);
 		Actor_Set_Goal_Number(kActorSteele, 246);
 		return true;
+
 	case 245:
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
 		Actor_Says(kActorSteele, 150, 13);
@@ -949,6 +1048,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorSteele, 200, 15);
 		Actor_Set_Goal_Number(kActorSteele, 246);
 		return true;
+
 	case 246:
 		Actor_Says(kActorSteele, 130, 13);
 		Actor_Says(kActorSteele, 140, 13);
@@ -960,15 +1060,16 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetNR01, kSetNR01);
+			Set_Enter(kSetNR01, kSceneNR01);
 		} else {
 			Actor_Put_In_Set(kActorSteele, kSetHF01);
 			Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetHF01, kSetDR03);
+			Set_Enter(kSetHF01, kSceneHF01);
 		}
 		return true;
+
 	case 250:
 		AI_Movement_Track_Flush(kActorSteele);
 		Actor_Put_In_Set(kActorSteele, kSetNR01);
@@ -981,9 +1082,11 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Change_Animation_Mode(kActorSteele, 0);
 		_var1 = 3;
 		return true;
+
 	case 251:
 		Actor_Set_Targetable(kActorSteele, 1);
 		return true;
+
 	case 252:
 		Player_Loses_Control();
 		Actor_Change_Animation_Mode(kActorSteele, 6);
@@ -1009,11 +1112,12 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Game_Flag_Set(617);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetHF01, kSetDR03);
+			Set_Enter(kSetHF01, kSceneHF01);
 		} else {
 			Actor_Set_Goal_Number(kActorSteele, 280);
 		}
 		return true;
+
 	case 255:
 		ADQ_Flush();
 		Actor_Change_Animation_Mode(kActorSteele, 6);
@@ -1024,6 +1128,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Goal_Number(kActorGordo, 251);
 		Actor_Says(kActorSteele, 1250, 3);
 		return true;
+
 	case 258:
 		Game_Flag_Reset(603);
 		ADQ_Flush();
@@ -1052,6 +1157,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Player_Gains_Control();
 		Actor_Set_Goal_Number(kActorSteele, 280);
 		return true;
+
 	case 260:
 		ADQ_Flush();
 		Actor_Change_Animation_Mode(kActorMcCoy, 6);
@@ -1064,6 +1170,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Targetable(kActorSteele, 0);
 		Player_Loses_Control();
 		return true;
+
 	case 262:
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
 		Actor_Says(kActorSteele, 1160, 15);
@@ -1085,6 +1192,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Player_Gains_Control();
 		Actor_Set_Goal_Number(kActorSteele, 280);
 		return true;
+
 	case 270:
 		ADQ_Flush();
 		Player_Loses_Control();
@@ -1096,6 +1204,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Delay(5000);
 		Actor_Set_Goal_Number(kActorMcCoy, 500);
 		return true;
+
 	case 275:
 		Delay(500);
 		Game_Flag_Set(617);
@@ -1105,15 +1214,16 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetNR01, kSetNR01);
+			Set_Enter(kSetNR01, kSceneNR01);
 		} else {
 			Actor_Put_In_Set(kActorSteele, kSetHF01);
 			Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674);
 			Game_Flag_Reset(255);
 			Game_Flag_Reset(256);
-			Set_Enter(kSetHF01, kSetDR03);
+			Set_Enter(kSetHF01, kSceneHF01);
 		}
 		return true;
+
 	case 280:
 		Actor_Says(kActorMcCoy, 2970, 15);
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
@@ -1149,13 +1259,15 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_Goal_Number(kActorSteele, 291);
 		}
 		return true;
+
 	case 285:
 		Actor_Set_Goal_Number(kActorSteele, 290);
 		return true;
+
 	case 290:
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, 0, 1, 0);
 		Actor_Face_Heading(kActorMcCoy, 45, 0);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
 		Global_Variable_Set(1, 4);
 		Scene_Exits_Enable();
 		Actor_Set_Health(kActorMcCoy, 50, 50);
@@ -1164,6 +1276,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Game_Flag_Set(680);
 		Chapter_Enter(4, 79, 91);
 		return true;
+
 	case 291:
 		Game_Flag_Set(722);
 		Global_Variable_Set(1, 4);
@@ -1172,6 +1285,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Game_Flag_Set(680);
 		Chapter_Enter(4, 79, 91);
 		return true;
+
 	case 300:
 		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) {
 			Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy));
@@ -1181,14 +1295,17 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		Actor_Set_Goal_Number(kActorSteele, 305);
 		return true;
+
 	case 305:
 		Actor_Put_In_Set(kActorSteele, kSetFreeSlotC);
 		Actor_Set_At_Waypoint(kActorSteele, 35, 0);
 		return true;
+
 	case 400:
 	case 401:
 	case 423:
 		return true;
+
 	case 410:
 		Actor_Set_Targetable(kActorSteele, 1);
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
@@ -1198,6 +1315,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Delay(3000);
 		Async_Actor_Walk_To_XYZ(kActorSteele, -109.0f, -36.55f, 26.0f, 0, 0);
 		return true;
+
 	case 411:
 		Actor_Face_Actor(kActorMcCoy, kActorSteele, 1);
 		Actor_Says(kActorSteele, 430, 14);
@@ -1205,17 +1323,21 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Delay(4000);
 		Async_Actor_Walk_To_XYZ(kActorSteele, -109.0f, -36.55f, 26.0f, 0, 0);
 		return true;
+
 	case 412:
 		Actor_Force_Stop_Walking(kActorSteele);
 		return true;
+
 	case 413:
 		Async_Actor_Walk_To_XYZ(kActorSteele, 1.0, -36.55f, 111.0f, 0, 0);
 		return true;
+
 	case 415:
 		Actor_Force_Stop_Walking(kActorSteele);
 		Actor_Change_Animation_Mode(kActorSteele, 51);
 		AI_Countdown_Timer_Start(kActorSteele, 1, 2);
 		return true;
+
 	case 416:
 		Actor_Set_At_XYZ(kActorSteele, -48.83f, -36.55f, 69.98f, 280);
 		Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 36, 0, 1);
@@ -1235,23 +1357,27 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		AI_Countdown_Timer_Start(kActorSteele, 1, 3);
 		return true;
+
 	case 418:
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
 		Actor_Change_Animation_Mode(kActorSteele, 6);
 		Actor_Change_Animation_Mode(kActorMcCoy, 48);
 		Actor_Retired_Here(kActorMcCoy, 72, 18, 1, -1);
 		return true;
+
 	case 419:
 		Actor_Set_Targetable(kActorSteele, 0);
 		Game_Flag_Set(646);
 		Actor_Set_Goal_Number(kActorSteele, 599);
 		Actor_Retired_Here(kActorSteele, 60, 12, 1, -1);
 		return true;
+
 	case 420:
 		Actor_Put_In_Set(kActorSteele, kSetKP01);
 		Actor_Set_At_XYZ(kActorSteele, 20.0f, -12.2f, -97.0f, 907);
 		Actor_Change_Animation_Mode(kActorSteele, 43);
 		return true;
+
 	case 421:
 		Game_Flag_Reset(482);
 		Delay(2000);
@@ -1266,41 +1392,49 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorSteele, 390, 13);
 		Actor_Set_Goal_Number(kActorSteele, 422);
 		return true;
+
 	case 422:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append(kActorSteele, 530, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 430:
 		Actor_Put_In_Set(kActorSteele, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSteele, -1110.0f, 0.0f, 952.0f, 155);
 		Actor_Change_Animation_Mode(kActorSteele, 4);
 		return true;
+
 	case 431:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 541, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 432:
 		Actor_Set_At_Waypoint(kActorSteele, 542, 0);
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 543, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 433:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 542, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
+
 	case 450:
 		Actor_Put_In_Set(kActorSteele, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSteele, -947.39f, 0.0f, 728.89f, 0);
 		return true;
+
 	case 499:
 		AI_Movement_Track_Flush(kActorSteele);
 		Actor_Put_In_Set(kActorSteele, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSteele, -782.15f, 8.26f, -263.64f, 52);
 		return true;
+
 	default:
 		return false;
 	}
@@ -2052,8 +2186,10 @@ void AIScriptSteele::SetAnimationState(int animationState, int animationFrame, i
 }
 
 bool AIScriptSteele::ReachedMovementTrackWaypoint(int waypointId) {
-	if (waypointId == 174 && Actor_Query_Goal_Number(kActorSteele) == 130)
-		Actor_Set_Goal_Number(kActorSteele, 112);
+	if (waypointId == 174
+	 && Actor_Query_Goal_Number(kActorSteele) == 130
+	)
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleGoToPoliceStation);
 
 	return true;
 }
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index a016bfd..47e74f7 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -337,12 +337,12 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorZuben, 130, 17);
 		Actor_Says(kActorMcCoy, 485, 14);
 		if (Random_Query(1, 3) < 3) {
-			Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, 1, -1);
+			Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, true, -1);
 		}
 		if (Random_Query(1, 5) < 5) {
-			Actor_Clue_Acquire(kActorZuben, kClueMcCoyIsABladeRunner, 1, -1);
+			Actor_Clue_Acquire(kActorZuben, kClueMcCoyIsABladeRunner, true, -1);
 		}
-		Actor_Clue_Acquire(kActorZuben, kClueMcCoyLetZubenEscape, 1, -1);
+		Actor_Clue_Acquire(kActorZuben, kClueMcCoyLetZubenEscape, true, -1);
 		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07Leave);
 		return false;
 	case kGoalZubenCT07Leave:
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index a5669dc..c9e945a 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -280,9 +280,6 @@ END_SCRIPT
 DECLARE_SCRIPT(OfficerLeary)
 	int var_45D5B8;
 	int var_45D5BC;
-
-	bool sub_431408();
-	bool sub_431420();
 END_SCRIPT
 
 DECLARE_SCRIPT(OfficerGrayford)
diff --git a/engines/bladerunner/script/esper_script.cpp b/engines/bladerunner/script/esper_script.cpp
index bf369f9..e12e40f 100644
--- a/engines/bladerunner/script/esper_script.cpp
+++ b/engines/bladerunner/script/esper_script.cpp
@@ -51,12 +51,12 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueRuncitersViewA)) {
 			Actor_Says(kActorAnsweringMachine, 160, 3);
 			Actor_Says(kActorAnsweringMachine, 180, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersViewA, 1, kActorRunciter);
+			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersViewA, true, kActorRunciter);
 			v0 = 1;
 		}
 		ESPER_Add_Photo("RC02_FA.IMG", 0, 0);
 		if (!Actor_Clue_Query(kActorMcCoy, kClueRuncitersViewB)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersViewB, 1, kActorRunciter);
+			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersViewB, true, kActorRunciter);
 		}
 		ESPER_Add_Photo("RC02_RA.IMG", 1, 1);
 	}
@@ -64,7 +64,7 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueOuterDressingRoom)) {
 			Actor_Says(kActorAnsweringMachine, 160, 3);
 			Actor_Says(kActorAnsweringMachine, 170, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueOuterDressingRoom, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueOuterDressingRoom, true, -1);
 			v0 = 1;
 		}
 		ESPER_Add_Photo("NR060000.IMG", 2, 2);
@@ -85,7 +85,7 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityPhoto)) {
 			Actor_Says(kActorAnsweringMachine, 160, 3);
 			Actor_Says(kActorAnsweringMachine, 170, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityPhoto, 1, kActorHawkersBarkeep);
+			Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityPhoto, true, kActorHawkersBarkeep);
 			v0 = 1;
 		}
 		ESPER_Add_Photo("HC02CB2.IMG", 7, 7);
@@ -94,7 +94,7 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueTyrellSecurityPhoto)) {
 			Actor_Says(kActorAnsweringMachine, 160, 3);
 			Actor_Says(kActorAnsweringMachine, 170, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSecurityPhoto, 1, kActorTyrellGuard);
+			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSecurityPhoto, true, kActorTyrellGuard);
 			v0 = 1;
 		}
 		ESPER_Add_Photo("TB060000.IMG", 8, 8);
@@ -179,7 +179,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbusReflection)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, true, -1);
 			}
 			break;
 		case 23:
@@ -187,7 +187,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueMcCoyAtMoonbus)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, true, -1);
 			}
 			break;
 		case 24:
@@ -195,14 +195,14 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisAtMoonbus)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueClovisAtMoonbus, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueClovisAtMoonbus, true, -1);
 			}
 			break;
 		case 25:
 			if (!Actor_Clue_Query(kActorMcCoy, kClueSadikAtMoonbus)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueSadikAtMoonbus, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueSadikAtMoonbus, true, -1);
 			}
 			break;
 		}
@@ -214,7 +214,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueKingstonKitchenBox2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, true, -1);
 			}
 			break;
 		case 19:
@@ -222,7 +222,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar2, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar2, true, -1);
 			}
 			break;
 		case 20:
@@ -232,7 +232,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueBombingSuspect, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueBombingSuspect, true, -1);
 			}
 			break;
 		case 21:
@@ -240,7 +240,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kCluePlasticExplosive)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kCluePlasticExplosive, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kCluePlasticExplosive, true, -1);
 			}
 			break;
 		}
@@ -251,14 +251,14 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueIzo)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueIzo, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueIzo, true, -1);
 			}
 		} else if (region == 17) {
 			Actor_Voice_Over(4210, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueGuzza)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGuzza, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGuzza, true, -1);
 			}
 		}
 		return false;
@@ -268,14 +268,14 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityCamera, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityCamera, true, -1);
 			}
 		} else if (region == 15) {
 			Actor_Voice_Over(4220, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueIzosFriend)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueIzosFriend, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueIzosFriend, true, -1);
 			}
 		}
 		return false;
@@ -285,7 +285,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueStrangeScale2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, true, -1);
 			}
 		}
 		return false;
@@ -295,14 +295,14 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueWomanInAnimoidRow, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueWomanInAnimoidRow, true, -1);
 			}
 		} else if (region == 12) {
 			Actor_Voice_Over(4180, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueScorpions)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueScorpions, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueScorpions, true, -1);
 			}
 		}
 		return false;
@@ -312,7 +312,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
 			}
 			return true;
 		} else if (region == 10) {
@@ -320,7 +320,7 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueLucyWithDektora)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, true, -1);
 			}
 			return true;
 		}
@@ -331,14 +331,14 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueEarlyQAndLucy)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, true, -1);
 			}
 		} else if (region == 7) {
 			Actor_Voice_Over(4190, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueScorpionbox)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueScorpionbox, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueScorpionbox, true, -1);
 			}
 		}
 		return true;
@@ -348,28 +348,28 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueAnimalMurderSuspect)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueAnimalMurderSuspect, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueAnimalMurderSuspect, true, -1);
 			}
 		} else if (region == 4) {
 			Actor_Voice_Over(4110, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueMilitaryBoots)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMilitaryBoots, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMilitaryBoots, true, -1);
 			}
 		} else if (region == 5) {
 			Actor_Voice_Over(4120, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kCluePartialLicenseNumber)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kCluePartialLicenseNumber, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kCluePartialLicenseNumber, true, -1);
 			}
 		} else if (region == 6) {
 			Actor_Voice_Over(4070, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCarColorAndMake, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCarColorAndMake, true, -1);
 			}
 		}
 		return true;
@@ -379,21 +379,21 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, true, -1);
 			}
 		} else if (region == 1) {
 			Actor_Voice_Over(4040, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueLucy, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueLucy, true, -1);
 			}
 		} else if (region == 2) {
 			Actor_Voice_Over(4060, kActorVoiceOver);
 			if (!Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, true, -1);
 			}
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp
index 2980209..adef4d4 100644
--- a/engines/bladerunner/script/scene/ar01.cpp
+++ b/engines/bladerunner/script/scene/ar01.cpp
@@ -24,6 +24,22 @@
 
 namespace BladeRunner {
 
+enum kAR01Loops {
+	kAR01LoopFromAR02WithSpinner = 0,
+	kAR01LoopInshoot             = 1,
+	kAR01LoopMainLoop            = 2,
+	kAR01LoopDoorAnim            = 4,
+	kAR01LoopOutshoot            = 5,
+	kAR01LoopFromAR02NoSpinner   = 6,
+	kAR01LoopMainLoopNoSpinner   = 7
+};
+
+enum kAR01Exits {
+	kAR01ExitHC01    = 0,
+	kAR01ExitAR02    = 1,
+	kAR01ExitSpinner = 2
+};
+
 void SceneScriptAR01::InitializeScene() {
 	Music_Play(0, 25, 0, 2, -1, 1, 2);
 	if (Game_Flag_Query(kFlagHC01toAR01)) {
@@ -33,10 +49,10 @@ void SceneScriptAR01::InitializeScene() {
 	} else {
 		Setup_Scene_Information(-152.0f, 0.0f, 332.0f, 545);
 	}
-	Scene_Exit_Add_2D_Exit(0, 134, 165, 177, 290, 3);
-	Scene_Exit_Add_2D_Exit(1, 319, 0, 639, 207, 0);
+	Scene_Exit_Add_2D_Exit(kAR01ExitHC01, 134, 165, 177, 290, 3);
+	Scene_Exit_Add_2D_Exit(kAR01ExitAR02, 319, 0, 639, 207, 0);
 	if (Game_Flag_Query(kFlagSpinnerAtAR01)) {
-		Scene_Exit_Add_2D_Exit(2, 0, 404, 99, 479, 2);
+		Scene_Exit_Add_2D_Exit(kAR01ExitSpinner, 0, 404, 99, 479, 2);
 	}
 	Ambient_Sounds_Add_Looping_Sound(54, 50, 1, 1);
 	Ambient_Sounds_Add_Looping_Sound(81, 60, 100, 1);
@@ -72,31 +88,31 @@ void SceneScriptAR01::InitializeScene() {
 	 && !Game_Flag_Query(kFlagHC01toAR01)
 	) {
 		Actor_Set_Invisible(kActorMcCoy, true);
-		Game_Flag_Set(273);
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 1, false);
-		Scene_Loop_Set_Default(2);
+		Game_Flag_Set(kFlagArrivedFromSpinner2);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kAR01LoopInshoot, false);
+		Scene_Loop_Set_Default(kAR01LoopMainLoop);
 	} else if (Game_Flag_Query(kFlagSpinnerAtAR01)
 	        && Game_Flag_Query(kFlagAR02toAR01)
 	) {
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
-		Scene_Loop_Set_Default(2);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kAR01LoopFromAR02WithSpinner, false);
+		Scene_Loop_Set_Default(kAR01LoopMainLoop);
 		Game_Flag_Reset(kFlagAR02toAR01);
 	} else if (!Game_Flag_Query(kFlagSpinnerAtAR01)
 	        &&  Game_Flag_Query(kFlagAR02toAR01)
 	) {
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 6, false);
-		Scene_Loop_Set_Default(7);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kAR01LoopFromAR02NoSpinner, false);
+		Scene_Loop_Set_Default(kAR01LoopMainLoopNoSpinner);
 		Game_Flag_Reset(kFlagAR02toAR01);
 	} else if (Game_Flag_Query(kFlagSpinnerAtAR01)
 	        && Game_Flag_Query(kFlagHC01toAR01)
 	) {
-		Scene_Loop_Set_Default(2);
+		Scene_Loop_Set_Default(kAR01LoopMainLoop);
 	} else if (!Game_Flag_Query(kFlagSpinnerAtAR01)
 	        &&  Game_Flag_Query(kFlagHC01toAR01)
 	) {
-		Scene_Loop_Set_Default(7);
+		Scene_Loop_Set_Default(kAR01LoopMainLoopNoSpinner);
 	} else {
-		Scene_Loop_Set_Default(7);
+		Scene_Loop_Set_Default(kAR01LoopMainLoopNoSpinner);
 	}
 }
 
@@ -133,7 +149,7 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {
 					Actor_Says(kActorFishDealer, 140, 14);
 					Actor_Says(kActorMcCoy, 50, 13);
 					Actor_Says(kActorFishDealer, 150, 14);
-					Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, 1, kActorMcCoy);
+					Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, true, kActorMcCoy);
 				} else {
 					if (Random_Query(1, 2) == 1) {
 						Actor_Says(kActorMcCoy, 30, 17);
@@ -176,19 +192,19 @@ bool SceneScriptAR01::ClickedOnItem(int itemId, bool a2) {
 }
 
 bool SceneScriptAR01::ClickedOnExit(int exitId) {
-	if (exitId == 0) {
+	if (exitId == kAR01ExitHC01) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0, 0.0, -149.0, 0, 1, false, 0)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0, 0.0, -149.0, 0, 0, false, 0);
 			Game_Flag_Set(kFlagAR01toHC01);
 			Game_Flag_Set(464);
 			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Set(479);
+			Game_Flag_Set(kFlagMcCoyAtHCxx);
 			Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC01);
 			Actor_Set_Goal_Number(kActorFishDealer, 3);
 		}
 		return true;
 	}
-	if (exitId == 1) {
+	if (exitId == kAR01ExitAR02) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -182.0, 0.0, -551.0, 0, 1, false, 0)) {
 			Game_Flag_Set(kFlagAR01toAR02);
 			Async_Actor_Walk_To_XYZ(kActorMcCoy, -222.0, 0.0, -690.0, 0, false);
@@ -197,7 +213,7 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
-	if (exitId == 2) {
+	if (exitId == kAR01ExitSpinner) {
 		if (Game_Flag_Query(486) == 1) {
 			Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true);
 		}
@@ -232,7 +248,7 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 			Game_Flag_Reset(kFlagMcCoyAtHFxx);
 			Game_Flag_Reset(kFlagMcCoyAtARxx);
 
-			int spinnerDest = Spinner_Interface_Choose_Dest(4, false);
+			int spinnerDest = Spinner_Interface_Choose_Dest(kAR01LoopDoorAnim, false);
 			Actor_Face_Heading(kActorMcCoy, 545, false);
 
 			switch (spinnerDest) {
@@ -241,63 +257,63 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyAtMAxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyAtRCxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyAtCTxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyAtTBxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyAtDRxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyAtBBxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyAtNRxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyAtHFxx);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 5, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			default:
 				Game_Flag_Set(kFlagMcCoyAtARxx);
@@ -327,11 +343,17 @@ void SceneScriptAR01::SceneFrameAdvanced(int frame) {
 	if (frame == 256) {
 		Ambient_Sounds_Play_Sound(117, 40, -50, 80, 99);
 	}
-	if ((frame == 75 || frame == 196) && Game_Flag_Query(273)) {
+	if ((frame == 75
+	  || frame == 196
+	 )
+	 && Game_Flag_Query(kFlagArrivedFromSpinner2)
+	) {
 		Actor_Face_Heading(kActorMcCoy, 545, false);
 		Actor_Change_Animation_Mode(kActorMcCoy, 42);
-		Game_Flag_Reset(273);
-	} else if (frame == 196 && !Game_Flag_Query(273)) {
+		Game_Flag_Reset(kFlagArrivedFromSpinner2);
+	} else if ( frame == 196
+	        && !Game_Flag_Query(kFlagArrivedFromSpinner2
+	)) {
 		Actor_Change_Animation_Mode(kActorMcCoy, 41);
 	}
 }
@@ -356,7 +378,7 @@ void SceneScriptAR01::PlayerWalkedOut() {
 	Actor_Set_Invisible(kActorMcCoy, false);
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (!Game_Flag_Query(479)) {
+	if (!Game_Flag_Query(kFlagMcCoyAtHCxx)) {
 		Music_Stop(2);
 	}
 	if (!Game_Flag_Query(kFlagAR01toHC01)
diff --git a/engines/bladerunner/script/scene/ar02.cpp b/engines/bladerunner/script/scene/ar02.cpp
index d0b5bf8..ea95e7d 100644
--- a/engines/bladerunner/script/scene/ar02.cpp
+++ b/engines/bladerunner/script/scene/ar02.cpp
@@ -141,9 +141,9 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 						Actor_Says(kActorInsectDealer, 340, 13);
 						Actor_Says(kActorInsectDealer, 350, 12);
 						Actor_Says(kActorMcCoy, 235, 16);
-						Actor_Clue_Acquire(kActorMcCoy, kCluePurchasedScorpions, 0, kActorInsectDealer);
+						Actor_Clue_Acquire(kActorMcCoy, kCluePurchasedScorpions, false, kActorInsectDealer);
 					}
-					Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyCollection, 0, kActorInsectDealer);
+					Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyCollection, false, kActorInsectDealer);
 				} else {
 					Actor_Says(kActorMcCoy, 240, 17);
 					Actor_Says(kActorInsectDealer, 360, 13);
@@ -285,7 +285,7 @@ void SceneScriptAR02::sub_402694() {
 		Actor_Says(kActorMcCoy, 100, 16);
 		Actor_Says(kActorInsectDealer, 180, 13);
 		Game_Flag_Set(329);
-		Actor_Clue_Acquire(kActorMcCoy, kCluePeruvianLadyInterview, 1, kActorInsectDealer);
+		Actor_Clue_Acquire(kActorMcCoy, kCluePeruvianLadyInterview, true, kActorInsectDealer);
 		break;
 	case 510:
 		Actor_Says(kActorMcCoy, 8475, 12);
@@ -313,7 +313,7 @@ void SceneScriptAR02::sub_402AE0() {
 		if (Query_Difficulty_Level() != 0) {
 			Global_Variable_Decrement(2, 15);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueMaggieBracelet, 1, kActorInsectDealer);
+		Actor_Clue_Acquire(kActorMcCoy, kClueMaggieBracelet, true, kActorInsectDealer);
 		Actor_Modify_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy, 5);
 	} else if (answerValue == 540) {
 		Actor_Says(kActorMcCoy, 125, 13);
@@ -381,7 +381,7 @@ void SceneScriptAR02::sub_402CE4() {
 			Actor_Says(kActorHasan, 110, 12);
 			Actor_Says(kActorHasan, 120, 13);
 			Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, -1);
-			Actor_Clue_Acquire(kActorMcCoy, kClueHasanInterview, 0, kActorHasan);
+			Actor_Clue_Acquire(kActorMcCoy, kClueHasanInterview, false, kActorHasan);
 		}
 		break;
 	}
diff --git a/engines/bladerunner/script/scene/bb02.cpp b/engines/bladerunner/script/scene/bb02.cpp
index 0f0e963..fa98879 100644
--- a/engines/bladerunner/script/scene/bb02.cpp
+++ b/engines/bladerunner/script/scene/bb02.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 void SceneScriptBB02::InitializeScene() {
-	if (Game_Flag_Query(281)) {
+	if (Game_Flag_Query(kFlagBB03toBB02)) {
 		Setup_Scene_Information(179.0f, -415.06f, 274.0f, 904);
 	} else if (Game_Flag_Query(333)) {
 		Setup_Scene_Information(-12.0f, -415.06f, -27.0f, 264);
@@ -112,7 +112,7 @@ bool SceneScriptBB02::ClickedOnExit(int exitId) {
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 1, false, 0)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 179.0f, -415.06f, 274.0f, 0, 0, false, 0);
-			Game_Flag_Set(282);
+			Game_Flag_Set(kFlagBB02toBB03);
 			Game_Flag_Reset(493);
 			Set_Enter(kSetBB03, kSceneBB03);
 		}
@@ -138,9 +138,9 @@ void SceneScriptBB02::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptBB02::PlayerWalkedIn() {
-	if (Game_Flag_Query(281)) {
+	if (Game_Flag_Query(kFlagBB03toBB02)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 0, false, 0);
-		Game_Flag_Reset(281);
+		Game_Flag_Reset(kFlagBB03toBB02);
 	} else if (Game_Flag_Query(333)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, 0, false, 0);
 		Player_Gains_Control();
diff --git a/engines/bladerunner/script/scene/bb03.cpp b/engines/bladerunner/script/scene/bb03.cpp
index c4121a9..118fa22 100644
--- a/engines/bladerunner/script/scene/bb03.cpp
+++ b/engines/bladerunner/script/scene/bb03.cpp
@@ -26,11 +26,11 @@ namespace BladeRunner {
 
 void SceneScriptBB03::InitializeScene() {
 	Setup_Scene_Information(20.0f, 60.16f, 0.0f, 0);
-	Game_Flag_Reset(282);
-	if (Game_Flag_Query(284)) {
+	Game_Flag_Reset(kFlagBB02toBB03);
+	if (Game_Flag_Query(kFlagBB04toBB03)) {
 		Setup_Scene_Information(176.0f, 60.16f, 0.0f, 900);
 	}
-	if (Game_Flag_Query(286)) {
+	if (Game_Flag_Query(kFlagBB05toBB03)) {
 		Setup_Scene_Information(204.0f, 60.16f, -164.0f, 740);
 	}
 	Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
@@ -86,7 +86,7 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, 1, false, 0)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, 0.0f, 0, 0, false, 0);
-			Game_Flag_Set(283);
+			Game_Flag_Set(kFlagBB03toBB04);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB04);
@@ -95,7 +95,7 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 	}
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.0f, 60.16f, 0.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(281);
+			Game_Flag_Set(kFlagBB03toBB02);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB02);
@@ -118,7 +118,7 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 					Actor_Set_Targetable(kActorBryant, false);
 					Actor_Set_Targetable(kActorGeneralDoll, false);
 				}
-				Game_Flag_Set(285);
+				Game_Flag_Set(kFlagBB03toBB05);
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
 				Set_Enter(kSetBB05, kSceneBB05);
@@ -142,13 +142,13 @@ void SceneScriptBB03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptBB03::PlayerWalkedIn() {
-	if (Game_Flag_Query(286)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 60.16f, -164.0f, 0, 0, false, 0);
-		Game_Flag_Reset(286);
+	if (Game_Flag_Query(kFlagBB05toBB03)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 60.16f, -164.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagBB05toBB03);
 	}
-	if (Game_Flag_Query(284)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, 0, false, 0);
-		Game_Flag_Reset(284);
+	if (Game_Flag_Query(kFlagBB04toBB03)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagBB04toBB03);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/bb04.cpp b/engines/bladerunner/script/scene/bb04.cpp
index 6ef7d7d..270e28d 100644
--- a/engines/bladerunner/script/scene/bb04.cpp
+++ b/engines/bladerunner/script/scene/bb04.cpp
@@ -25,9 +25,9 @@
 namespace BladeRunner {
 
 void SceneScriptBB04::InitializeScene() {
-	if (Game_Flag_Query(283)) {
+	if (Game_Flag_Query(kFlagBB03toBB04)) {
 		Setup_Scene_Information(-107.0f, -26.6f, 397.0f, 29);
-		Game_Flag_Reset(283);
+		Game_Flag_Reset(kFlagBB03toBB04);
 	} else {
 		Setup_Scene_Information(-15.0f, -25.17f, 45.0f, 691);
 	}
@@ -95,7 +95,7 @@ bool SceneScriptBB04::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -107.0f, -26.6f, 397.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(284);
+			Game_Flag_Set(kFlagBB04toBB03);
 			Set_Enter(kSetBB03, kSceneBB03);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/bb05.cpp b/engines/bladerunner/script/scene/bb05.cpp
index e85b107..1241a60 100644
--- a/engines/bladerunner/script/scene/bb05.cpp
+++ b/engines/bladerunner/script/scene/bb05.cpp
@@ -100,7 +100,7 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -212.0f, -60.31f, 131.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(286);
+			Game_Flag_Set(kFlagBB05toBB03);
 			Set_Enter(kSetBB03, kSceneBB03);
 		}
 		return true;
@@ -157,7 +157,7 @@ void SceneScriptBB05::PlayerWalkedIn() {
 		Game_Flag_Reset(302);
 	} else {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, 0, false, 0);
-		Game_Flag_Reset(285);
+		Game_Flag_Reset(kFlagBB03toBB05);
 	}
 	if (Actor_Query_Goal_Number(kActorSebastian) == 200) {
 		Actor_Face_Actor(kActorSebastian, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/scene/bb07.cpp b/engines/bladerunner/script/scene/bb07.cpp
index d2c9393..12e3219 100644
--- a/engines/bladerunner/script/scene/bb07.cpp
+++ b/engines/bladerunner/script/scene/bb07.cpp
@@ -73,7 +73,7 @@ bool SceneScriptBB07::ClickedOn3DObject(const char *objectName, bool a2) {
 				Item_Pickup_Spin_Effect(941, 439, 242);
 				Actor_Voice_Over(140, kActorVoiceOver);
 				Game_Flag_Set(398);
-				Actor_Clue_Acquire(kActorMcCoy, kClueDNASebastian, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDNASebastian, true, -1);
 			} else if (Game_Flag_Query(396) && Game_Flag_Query(398)) {
 				Actor_Face_Object(kActorMcCoy, "PRINTER", true);
 				Actor_Says(kActorMcCoy, 8570, 13);
diff --git a/engines/bladerunner/script/scene/bb10.cpp b/engines/bladerunner/script/scene/bb10.cpp
index adaab34..5a521d6 100644
--- a/engines/bladerunner/script/scene/bb10.cpp
+++ b/engines/bladerunner/script/scene/bb10.cpp
@@ -103,7 +103,7 @@ bool SceneScriptBB10::ClickedOnExit(int exitId) {
 			Player_Set_Combat_Mode(false);
 			Actor_Face_Heading(kActorMcCoy, 274, false);
 			Footstep_Sound_Override_On(2);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			Footstep_Sound_Override_On(2);
 			Loop_Actor_Travel_Ladder(kActorMcCoy, 3, 1, 0);
@@ -190,7 +190,7 @@ void SceneScriptBB10::PlayerWalkedIn() {
 		Footstep_Sound_Override_Off();
 		Actor_Face_Heading(kActorMcCoy, 768, false);
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Reset(kFlagBB11toBB10);
 	}
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index 91022ff..f00eba0 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -43,7 +43,7 @@ enum kCT01Exits {
 
 void SceneScriptCT01::InitializeScene() {
 	Music_Play(3, 28, 0, 2, -1, 1, 0);
-	Game_Flag_Reset(kFlagArrivedFromSpinner);
+	Game_Flag_Reset(kFlagArrivedFromSpinner1);
 	if (Game_Flag_Query(kFlagCT02toCT01)) {
 		Game_Flag_Reset(kFlagCT02toCT01);
 		Setup_Scene_Information(-35.2f, -6.5f, 352.28f, 603);
@@ -64,7 +64,7 @@ void SceneScriptCT01::InitializeScene() {
 		}
 	} else if (Game_Flag_Query(kFlagSpinnerAtCT01)) {
 		Setup_Scene_Information(-530.0f, -6.5f, 241.0f, 506);
-		Game_Flag_Set(kFlagArrivedFromSpinner);
+		Game_Flag_Set(kFlagArrivedFromSpinner1);
 	} else {
 		Setup_Scene_Information(-397.0f, -6.5f, 471.0f, 250);
 	}
@@ -135,7 +135,7 @@ bool SceneScriptCT01::ClickedOn3DObject(const char *objectName, bool a2) {
 bool SceneScriptCT01::ClickedOnActor(int actorId) {
 	if (actorId == kActorHowieLee) {
 		Actor_Set_Goal_Number(kActorHowieLee, 50);
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -335.23f, -6.5f, 578.97f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -335.23f, -6.5f, 578.97f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorHowieLee, true);
 			Actor_Face_Actor(kActorHowieLee, kActorMcCoy, true);
 			if (!Game_Flag_Query(kFlagCT01McCoyTalkedToHowieLee)) {
@@ -143,28 +143,35 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
 				Actor_Says(kActorHowieLee, 0, 14);
 				Game_Flag_Set(kFlagCT01McCoyTalkedToHowieLee);
 				Actor_Set_Goal_Number(kActorHowieLee, 0);
-			} else if (!Game_Flag_Query(kFlagNotUsed30) && Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) >= 40) {
+				return true;
+			}
+
+			if (!Game_Flag_Query(kFlagNotUsed30)
+			 && Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) >= 40
+			) {
 				dialogueWithHowieLee();
 				Actor_Set_Goal_Number(kActorHowieLee, 0);
+				return true;
+			}
+
+			if (Game_Flag_Query(kFlagCT01ZubenGone)) {
+				Actor_Says(kActorMcCoy, 330, 17);
+				Actor_Says(kActorHowieLee, 130, 13);
+				Actor_Says(kActorHowieLee, 140, 14);
+			} else if (Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) < 50) {
+				Actor_Says(kActorMcCoy, 330, 13);
+				Actor_Says(kActorHowieLee, 160, 15);
 			} else {
-				if (Game_Flag_Query(kFlagCT01ZubenGone)) {
-					Actor_Says(kActorMcCoy, 330, 17);
-					Actor_Says(kActorHowieLee, 130, 13);
-					Actor_Says(kActorHowieLee, 140, 14);
-				} else if (Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) < 50) {
-					Actor_Says(kActorMcCoy, 330, 13);
-					Actor_Says(kActorHowieLee, 160, 15);
-				} else {
-					Actor_Says(kActorMcCoy, 310, 11);
-					Actor_Says(kActorHowieLee, 10, 16);
-				}
-				Actor_Set_Goal_Number(kActorHowieLee, 0);
+				Actor_Says(kActorMcCoy, 310, 11);
+				Actor_Says(kActorHowieLee, 10, 16);
 			}
+			Actor_Set_Goal_Number(kActorHowieLee, 0);
 			return true;
 		}
 	}
+
 	if (actorId == kActorZuben) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -335.23f, -6.5f, 578.97f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -335.23f, -6.5f, 578.97f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 			Actor_Says(kActorMcCoy, 355, 18);
 			if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault) {
@@ -179,38 +186,37 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
 			return true;
 		}
 	}
+
 	if (actorId == kActorGordo) {
-		//todo: some weird code in assembly EBP is used but may not be initialized, loc_401C78
 		if (Actor_Query_Goal_Number(kActorGordo) == 0) {
-			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -338.1f, -6.5f, 419.65f, 6, 1, false, 0)) {
-				return false;
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -338.1f, -6.5f, 419.65f, 6, true, false, 0)) {
+				Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
+				if (!Game_Flag_Query(kFlagCT01McCoyTalkedToGordo)) {
+					Actor_Says(kActorMcCoy, 335, 18);
+					Actor_Says(kActorGordo, 20, 30);
+					Game_Flag_Set(kFlagCT01McCoyTalkedToGordo);
+					Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, true, kActorMcCoy);
+					Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, true, kActorMcCoy);
+					Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -1);
+				} else if (Actor_Query_Goal_Number(kActorGordo) != 0) {
+					Actor_Says(kActorMcCoy, 365, 14);
+				} else {
+					Actor_Says(kActorMcCoy, 340, 13);
+					Actor_Says(kActorMcCoy, 345, 11);
+					Actor_Says(kActorGordo, 30, 30);
+					Actor_Says(kActorMcCoy, 350, 13);
+					Actor_Says(kActorGordo, 40, 30);
+					Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -5);
+					Player_Loses_Control();
+				}
+				if (Actor_Query_Is_In_Current_Set(kActorZuben)) {
+					Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
+				}
+				return true;
 			}
 		}
-
-		Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
-		if (!Game_Flag_Query(kFlagCT01McCoyTalkedToGordo)) {
-			Actor_Says(kActorMcCoy, 335, 18);
-			Actor_Says(kActorGordo, 20, 30);
-			Game_Flag_Set(kFlagCT01McCoyTalkedToGordo);
-			Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, 1, kActorMcCoy);
-			Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, 1, kActorMcCoy);
-			Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -1);
-		} else if (Actor_Query_Goal_Number(kActorGordo) != 0) {
-			Actor_Says(kActorMcCoy, 365, 14);
-		} else {
-			Actor_Says(kActorMcCoy, 340, 13);
-			Actor_Says(kActorMcCoy, 345, 11);
-			Actor_Says(kActorGordo, 30, 30);
-			Actor_Says(kActorMcCoy, 350, 13);
-			Actor_Says(kActorGordo, 40, 30);
-			Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -5);
-			Player_Loses_Control();
-		}
-		if (Actor_Query_Is_In_Current_Set(kActorZuben)) {
-			Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
-		}
-		return true;
 	}
+
 	return false;
 }
 
@@ -220,30 +226,33 @@ bool SceneScriptCT01::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptCT01::ClickedOnExit(int exitId) {
 	if (exitId == kCT01ExitCT02) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.5f, -6.5f, 352.28f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.5f, -6.5f, 352.28f, 0, true, false, 0)) {
 			Player_Loses_Control();
-			Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 106, 0, 0, false);
+			Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 106, 0, false, false);
 			Player_Gains_Control();
-			Game_Flag_Reset(kFlagArrivedFromSpinner);
+			Game_Flag_Reset(kFlagArrivedFromSpinner1);
 			Set_Enter(kSetCT02, kSceneCT02);
 		}
 		return true;
 	}
+
 	if (exitId == kCT01ExitCT03) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -259.0f, -6.5f, 710.0f, 0, 1, false, 0)) {
-			Game_Flag_Reset(kFlagArrivedFromSpinner);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -259.0f, -6.5f, 710.0f, 0, true, false, 0)) {
+			Game_Flag_Reset(kFlagArrivedFromSpinner1);
 			Set_Enter(kSetCT03_CT04, kSceneCT03);
 		}
 		return true;
 	}
+
 	if (exitId == kCT01ExitCT12) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.0f, -6.5f, 696.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.0f, -6.5f, 696.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagCT01toCT12);
-			Game_Flag_Reset(kFlagArrivedFromSpinner);
+			Game_Flag_Reset(kFlagArrivedFromSpinner1);
 			Set_Enter(kSetCT01_CT12, kSceneCT12);
 		}
 		return true;
 	}
+
 	if (exitId == kCT01ExitSpinner) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, true, false, 0)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0);
@@ -261,7 +270,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
 				Game_Flag_Set(kFlagMcCoyAtPSxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
@@ -269,7 +278,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyAtMAxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
@@ -277,7 +286,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyAtRCxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
@@ -285,7 +294,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyAtARxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
@@ -294,14 +303,14 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyAtTBxx);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyAtDRxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
@@ -309,7 +318,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyAtBBxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
@@ -317,7 +326,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyAtNRxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
@@ -325,7 +334,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyAtHFxx);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
@@ -343,6 +352,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	return false;
 }
 
@@ -351,16 +361,25 @@ bool SceneScriptCT01::ClickedOn2DRegion(int region) {
 }
 
 void SceneScriptCT01::SceneFrameAdvanced(int frame) {
-	if ((frame < 316 || frame > 435) && !((frame - 1) % 10)) {
-		Ambient_Sounds_Play_Sound(/*v1*/Random_Query(59, 60), 25, 30, 30, 0);
+	if ((frame < 316
+	  || frame > 435
+	 )
+	 && ((frame - 1) % 10) == 0
+	) {
+		Ambient_Sounds_Play_Sound(Random_Query(59, 60), 25, 30, 30, 0);
 	}
+
 	if (frame == 23) {
 		Ambient_Sounds_Play_Sound(118, 40, 99, 0, 0);
 	}
+
 	if (frame == 316) {
 		Ambient_Sounds_Play_Sound(373, 50, -50, 100, 99);
 	}
-	if (frame == 196 || frame == 452) {
+
+	if (frame == 196
+	 || frame == 452
+	) {
 		int v3 = Random_Query(0, 6);
 		if (v3 == 0) {
 			Overlay_Play("ct01spnr", 0, false, true, 0);
@@ -385,15 +404,15 @@ void SceneScriptCT01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptCT01::PlayerWalkedIn() {
 	if (Game_Flag_Query(kFlagCT02toCT01walk)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.2f, -6.5f, 352.28f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.2f, -6.5f, 352.28f, 0, false, false, 0);
 		Game_Flag_Reset(kFlagCT02toCT01walk);
 	} else {
-		if (!Game_Flag_Query(kFlagArrivedFromSpinner)) {
-			Game_Flag_Reset(kFlagArrivedFromSpinner);
+		if (!Game_Flag_Query(kFlagArrivedFromSpinner1)) {
+			Game_Flag_Reset(kFlagArrivedFromSpinner1);
 			return;
 		}
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, 0, false, 0);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, false, false, 0);
 		if (!Game_Flag_Query(kFlagCT01Visited)) {
 			Game_Flag_Set(kFlagCT01Visited);
 			if (!Game_Flag_Query(kFlagDirectorsCut)) {
@@ -427,38 +446,47 @@ void SceneScriptCT01::DialogueQueueFlushed(int a1) {
 void SceneScriptCT01::dialogueWithHowieLee() {
 	Dialogue_Menu_Clear_List();
 	if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(40, 4, 5, 6);
+		DM_Add_To_List_Never_Repeat_Once_Selected(40, 4, 5, 6); // LUCY PHOTO
 	}
+
 	if (
 	 (   Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
 	  || Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
 	 )
 	 && !Game_Flag_Query(kFlagCT01Evidence1Linked)
 	) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(50, 5, 5, 4);
+		DM_Add_To_List_Never_Repeat_Once_Selected(50, 5, 5, 4); // RUNCITER CLUES
 	}
+
 	if ( Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
 	 &&  Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
 	 &&  Game_Flag_Query(kFlagCT01Evidence1Linked)
 	 && !Game_Flag_Query(kFlagCT01Evidence2Linked)
 	) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(60, 3, 5, 5);
+		DM_Add_To_List_Never_Repeat_Once_Selected(60, 3, 5, 5); // MORE RUNCITER CLUES
 	}
+
 	if (Game_Flag_Query(kFlagCT02PotTipped)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(80, 9, 9, 9);
+		DM_Add_To_List_Never_Repeat_Once_Selected(80, 9, 9, 9); // EMPLOYEE
 	} else if (Game_Flag_Query(kFlagCT01ZubenLeft)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(80, 3, 4, 8);
+		DM_Add_To_List_Never_Repeat_Once_Selected(80, 3, 4, 8); // EMPLOYEE
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake) && Actor_Clue_Query(kActorMcCoy, kClueDispatchHitAndRun) == 1) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(90, 5, 4, 5);
+
+	if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)
+	 && Actor_Clue_Query(kActorMcCoy, kClueDispatchHitAndRun) // this clue is never obtained
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(90, 5, 4, 5); // HIT AND RUN
 	}
-	DM_Add_To_List_Never_Repeat_Once_Selected(70, 7, 3, -1);
-	Dialogue_Menu_Add_DONE_To_List(100);
+
+	DM_Add_To_List_Never_Repeat_Once_Selected(70, 7, 3, -1); // SMALL TALK
+	Dialogue_Menu_Add_DONE_To_List(100); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 40:
+	case 40: // LUCY PHOTO
 		Actor_Says(kActorMcCoy, 265, 11);
 		Actor_Says(kActorHowieLee, 20, 14);
 		if (Actor_Query_Is_In_Current_Set(kActorZuben)) {
@@ -472,12 +500,13 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 				Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
 				if (Actor_Query_Is_In_Current_Set(kActorGordo)) {
 					Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -3);
-					Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, 1, kActorMcCoy);
+					Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, true, kActorMcCoy);
 				}
 			}
 		}
 		break;
-	case 50:
+
+	case 50: // RUNCITER CLUES
 		if (Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)) {
 			Actor_Says(kActorMcCoy, 270, 11);
 			Actor_Says(kActorHowieLee, 30, 16);
@@ -487,7 +516,8 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 		}
 		Game_Flag_Set(kFlagCT01Evidence1Linked);
 		break;
-	case 60:
+
+	case 60: // MORE RUNCITER CLUES
 		if (Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)) {
 			Actor_Says(kActorMcCoy, 270, 11);
 			Actor_Says(kActorHowieLee, 40, 15);
@@ -498,9 +528,14 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 		Actor_Modify_Friendliness_To_Other(kActorHowieLee, kActorMcCoy, 5);
 		Game_Flag_Set(kFlagCT01Evidence2Linked);
 		break;
-	case 70:
+
+	case 70: // SMALL TALK
 		Actor_Says(kActorMcCoy, 290, 13);
-		if (Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) > 49 && (Global_Variable_Query(kVariableChinyen) > 10 || Query_Difficulty_Level() == 0)) {
+		if (Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) > 49
+		 && (Global_Variable_Query(kVariableChinyen) > 10
+		  || Query_Difficulty_Level() == 0
+		 )
+		) {
 			Actor_Says(kActorHowieLee, 50, kAnimationModeTalk);
 			Actor_Says(kActorHowieLee, 60, kAnimationModeTalk);
 			Actor_Face_Actor(kActorHowieLee, kActorMcCoy, true);
@@ -514,18 +549,21 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 			Actor_Says(kActorHowieLee, 130, 15);
 		}
 		break;
-	case 80:
+
+	case 80: // EMPLOYEE
 		Actor_Says(kActorMcCoy, 295, 11);
 		Actor_Says(kActorHowieLee, 90, 14);
 		Actor_Says(kActorHowieLee, 100, 13);
-		Actor_Clue_Acquire(kActorMcCoy, kClueHowieLeeInterview, 1, kActorHowieLee);
+		Actor_Clue_Acquire(kActorMcCoy, kClueHowieLeeInterview, true, kActorHowieLee);
 		Actor_Modify_Friendliness_To_Other(kActorHowieLee, kActorMcCoy, -3);
 		break;
-	case 90:
+
+	case 90: // HIT AND RUN
 		Actor_Says(kActorMcCoy, 300, 13);
 		Actor_Says(kActorHowieLee, 110, 16);
 		break;
-	case 100:
+
+	case 100: // DONE
 		Actor_Says(kActorMcCoy, 305, 18);
 		break;
 	}
diff --git a/engines/bladerunner/script/scene/ct02.cpp b/engines/bladerunner/script/scene/ct02.cpp
index 8ee3f1b..97d7304 100644
--- a/engines/bladerunner/script/scene/ct02.cpp
+++ b/engines/bladerunner/script/scene/ct02.cpp
@@ -119,10 +119,12 @@ bool SceneScriptCT02::ClickedOn3DObject(const char *objectName, bool a2) {
 void SceneScriptCT02::dialogueWithZuben() {
 	Dialogue_Menu_Clear_List();
 	if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(270, 8, 5, 3);
+		DM_Add_To_List_Never_Repeat_Once_Selected(270, 8, 5, 3); // LUCY PHOTO
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(280, 8, 5, 3);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueLucy)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(280, 8, 5, 3); // LUCY
 	}
 	int evidenceCount = 0;
 	if (Actor_Clue_Query(kActorMcCoy, kClueDoorForced2)) {
@@ -141,29 +143,33 @@ void SceneScriptCT02::dialogueWithZuben() {
 		++evidenceCount;
 	}
 	if (evidenceCount > 3) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(290, -1, 4, 8);
+		DM_Add_To_List_Never_Repeat_Once_Selected(290, -1, 4, 8); // VOIGT-KAMPFF
 	}
-	Dialogue_Menu_Add_DONE_To_List(300);
+	Dialogue_Menu_Add_DONE_To_List(300); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answerValue = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answerValue) {
-	case 270:
+	case 270: // LUCY PHOTO
 		Actor_Says(kActorMcCoy, 380, 11);
 		Actor_Says(kActorZuben, 30, 17);
 		Actor_Says(kActorZuben, 40, 15);
 		Actor_Says(kActorMcCoy, 410, 9);
 		Actor_Says(kActorZuben, 50, 18);
 		Actor_Says(kActorMcCoy, 415, 10);
-		Actor_Clue_Acquire(kActorMcCoy, kClueZubenInterview, 0, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueZubenInterview, false, -1);
 		Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -5);
 		break;
-	case 280:
+
+	case 280: // LUCY
 		Actor_Says(kActorMcCoy, 385, 9);
 		Actor_Says(kActorZuben, 40, 19);
 		Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
 		break;
-	case 290:
+
+	case 290: // VOIGT-KAMPFF
 		Actor_Says(kActorMcCoy, 395, 9);
 		Actor_Says(kActorMcCoy, 400, 9);
 		Actor_Says(kActorZuben, 70, 17);
@@ -171,14 +177,15 @@ void SceneScriptCT02::dialogueWithZuben() {
 		Actor_Says(kActorZuben, 80, 14);
 		Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -10);
 		break;
-	case 300:
+
+	case 300: // DONE
 		Actor_Says(kActorMcCoy, 405, 11);
 		break;
 	}
 
 	if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
 		Scene_Exits_Disable();
-		Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, true, -1);
 		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02PushPot);
 		Game_Flag_Set(kFlagCT02PotTipped);
 		Scene_Loop_Set_Default(kCT02LoopMainPotTipped);
@@ -188,7 +195,7 @@ void SceneScriptCT02::dialogueWithZuben() {
 
 bool SceneScriptCT02::ClickedOnActor(int actorId) {
 	if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01Leave) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -255.02f, -145.11f, 212.42f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -255.02f, -145.11f, 212.42f, 0, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 			Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
 			if (!Game_Flag_Query(kFlagCT02ZubenTalk)) {
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index 07819ce..5f307d4 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -80,6 +80,7 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 			Game_Flag_Set(kFlagHomelessTalkedTo);
 			Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
 		}
+
 		if ( Game_Flag_Query(kFlagMcCoyKilledHomeless)
 		 && !Game_Flag_Query(kFlagHomelessBodyInDumpster)
 		 && !Game_Flag_Query(kFlagHomelessBodyFound)
@@ -100,6 +101,7 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 			}
 			return false;
 		}
+
 		if (Game_Flag_Query(kFlagHomelessBodyInDumpster)) {
 			if (Game_Flag_Query(kFlagDumpsterEmptied)) {
 				Actor_Voice_Over(270, kActorVoiceOver);
@@ -114,16 +116,18 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 			}
 			return true;
 		}
-		if (Game_Flag_Query(kFlagLicensePlaceFound)) {
+
+		if (!Game_Flag_Query(kFlagLicensePlaceFound)) {
 			if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 75, 0, true, false)) {
 				Actor_Face_Heading(kActorMcCoy, 707, false);
 				Actor_Change_Animation_Mode(kActorMcCoy, 38);
-				Actor_Clue_Acquire(kActorMcCoy, kClueLicensePlate, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueLicensePlate, true, -1);
 				Item_Pickup_Spin_Effect(952, 392, 225);
 				Game_Flag_Set(kFlagLicensePlaceFound);
 				return true;
 			}
 		}
+
 		if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 75, 0, true, false)) {
 			Actor_Face_Heading(kActorMcCoy, 707, false);
 			Actor_Change_Animation_Mode(kActorMcCoy, 38);
@@ -138,24 +142,32 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 
 void SceneScriptCT04::dialogueWithHomeless() {
 	Dialogue_Menu_Clear_List();
-	if (Global_Variable_Query(kVariableChinyen) > 10 || Query_Difficulty_Level() == 0) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(410, 8, 4, -1);
+	if (Global_Variable_Query(kVariableChinyen) > 10
+	 || Query_Difficulty_Level() == 0
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(410, 8, 4, -1); // YES
 	}
-	DM_Add_To_List_Never_Repeat_Once_Selected(420, 2, 6, 8);
+	DM_Add_To_List_Never_Repeat_Once_Selected(420, 2, 6, 8); // NO
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
-	if (answer == 410) {
+
+	switch (answer) {
+	case 410: // YES
 		Actor_Says(kActorTransient, 10, 14);
 		Actor_Says(kActorTransient, 20, 14);
 		Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, 5);
 		if (Query_Difficulty_Level() != 0) {
 			Global_Variable_Decrement(kVariableChinyen, 10);
 		}
-	} else if (answer == 420) {
+		break;
+
+	case 420: // NO
 		Actor_Says(kActorMcCoy, 430, 3);
 		Actor_Says(kActorTransient, 30, 14);
 		Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -5);
+		break;
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ct05.cpp b/engines/bladerunner/script/scene/ct05.cpp
index c2cea7e..0db0b47 100644
--- a/engines/bladerunner/script/scene/ct05.cpp
+++ b/engines/bladerunner/script/scene/ct05.cpp
@@ -137,7 +137,7 @@ bool SceneScriptCT05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptCT05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -128.42f, -109.91f, 112.83f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -128.42f, -109.91f, 112.83f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagCT05toCT12);
 			if (Actor_Query_Goal_Number(kActorGaff) == 1) {
 				Overlay_Remove("ct05over");
@@ -147,7 +147,7 @@ bool SceneScriptCT05::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagCT05toCT04);
 			if (Actor_Query_Goal_Number(kActorGaff) == 1) {
 				Overlay_Remove("ct05over");
@@ -159,12 +159,12 @@ bool SceneScriptCT05::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 71.99f, -109.91f, 288.79f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 71.99f, -109.91f, 288.79f, 0, true, false, 0)) {
 			Footstep_Sound_Override_On(2);
 			Actor_Face_Object(kActorMcCoy, "STAIR 2", true);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 9, true, kAnimationModeIdle);
 			Actor_Set_At_XYZ(kActorMcCoy, 99.73f, -19.91f, 134.97f, 256);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 5, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 5, true, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			Game_Flag_Set(kFlagCT05toCT06);
 			if (Actor_Query_Goal_Number(kActorGaff) == 1) {
@@ -211,20 +211,22 @@ void SceneScriptCT05::PlayerWalkedIn() {
 		Player_Loses_Control();
 		Game_Flag_Reset(kFlagCT04toCT05);
 		if (Player_Query_Combat_Mode()) {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, 0, true, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, false, true, 0);
 		} else {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, false, false, 0);
 		}
 		Player_Gains_Control();
 	}
 	if (Game_Flag_Query(kFlagCT06toCT05)) {
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
 		Actor_Set_At_XYZ(kActorMcCoy, 90.73f, -19.91f, 164.97f, 520);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 10, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 10, false, kAnimationModeIdle);
 		Game_Flag_Reset(kFlagCT06toCT05);
 		Footstep_Sound_Override_Off();
-		if (Actor_Query_Goal_Number(kActorGordo) == 2 && Game_Flag_Query(145)) {
+		if (Actor_Query_Goal_Number(kActorGordo) == 2
+		 && Game_Flag_Query(kFlagZubenPhoto)
+		) {
 			Actor_Set_Goal_Number(kActorGordo, 3);
 		}
 	}
diff --git a/engines/bladerunner/script/scene/ct06.cpp b/engines/bladerunner/script/scene/ct06.cpp
index dd78e20..11bd36c 100644
--- a/engines/bladerunner/script/scene/ct06.cpp
+++ b/engines/bladerunner/script/scene/ct06.cpp
@@ -91,7 +91,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
 		Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, true, false);
 		Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 		if (!Game_Flag_Query(kFlagZubenPhoto)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueZuben, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueZuben, true, -1);
 			Item_Pickup_Spin_Effect(984, 340, 369);
 			Actor_Voice_Over(350, kActorVoiceOver);
 			Actor_Voice_Over(360, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ct08.cpp b/engines/bladerunner/script/scene/ct08.cpp
index e7d7334..6e814c1 100644
--- a/engines/bladerunner/script/scene/ct08.cpp
+++ b/engines/bladerunner/script/scene/ct08.cpp
@@ -98,7 +98,7 @@ bool SceneScriptCT08::ClickedOnActor(int actorId) {
 bool SceneScriptCT08::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 81) {
 		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 81, 36, 1, false) && !Game_Flag_Query(550)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueCheese, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueCheese, true, -1);
 			Item_Pickup_Spin_Effect(936, 266, 328);
 			Item_Remove_From_World(81);
 			Actor_Voice_Over(480, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ct10.cpp b/engines/bladerunner/script/scene/ct10.cpp
index 53d3ee7..dbc26d2 100644
--- a/engines/bladerunner/script/scene/ct10.cpp
+++ b/engines/bladerunner/script/scene/ct10.cpp
@@ -72,7 +72,7 @@ void SceneScriptCT10::sub_401844() {
 			Actor_Voice_Over(3700, kActorVoiceOver);
 		} else {
 			Item_Pickup_Spin_Effect(931, 435, 258);
-			Actor_Clue_Acquire(kActorMcCoy, kClueHoldensBadge, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueHoldensBadge, true, -1);
 		}
 		Player_Gains_Control();
 	}
@@ -90,7 +90,7 @@ bool SceneScriptCT10::ClickedOn3DObject(const char *objectName, bool a2) {
 			if (Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1)) {
 				Actor_Voice_Over(3700, kActorVoiceOver);
 			} else {
-				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale1, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale1, true, -1);
 				Item_Pickup_Spin_Effect(969, 364, 214);
 			}
 			Delay(1000);
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 37823fe..50b5a34 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -130,7 +130,7 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 47, false);
 			Item_Remove_From_World(115);
-			Actor_Clue_Acquire(kActorMcCoy, kClueLichenDogWrapper, 0, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueLichenDogWrapper, false, -1);
 			Item_Pickup_Spin_Effect(951, 510, 319);
 			Game_Flag_Reset(725);
 			Game_Flag_Set(645);
@@ -170,7 +170,7 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
 				Actor_Voice_Over(520, kActorVoiceOver);
 				Actor_Voice_Over(530, kActorVoiceOver);
 				Actor_Voice_Over(540, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCar, 0, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCar, false, -1);
 				Scene_2D_Region_Remove(1);
 			}
 		}
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index 4a2f05f..b303171 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -59,32 +59,45 @@ void SceneScriptCT12::InitializeScene() {
 	Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
-	if (Global_Variable_Query(kVariableChapter) < 2 && Actor_Query_Goal_Number(kActorGaff) == 1) {
+	if (Global_Variable_Query(kVariableChapter) < 2
+	 && Actor_Query_Goal_Number(kActorGaff) == 1
+	) {
 		Actor_Put_In_Set(kActorGaff, kSetCT01_CT12);
 		Actor_Set_At_XYZ(kActorGaff, -534.0f, -6.5f, 952.0f, 367);
 		Game_Flag_Set(kFlagGaffSpinnerCT12);
 	}
-	if (Game_Flag_Query(kFlagCT01toCT12) && Game_Flag_Query(kFlagSpinnerAtCT01)) {
-		if (Global_Variable_Query(kVariableChapter) != 2 && Global_Variable_Query(kVariableChapter) != 3) {
+	if (Game_Flag_Query(kFlagCT01toCT12)
+	 && Game_Flag_Query(kFlagSpinnerAtCT01)
+	) {
+		if (Global_Variable_Query(kVariableChapter) != 2
+		 && Global_Variable_Query(kVariableChapter) != 3
+		) {
 			Scene_Loop_Start_Special(0, 1, 0);
 		}
 		Scene_Loop_Set_Default(2);
 		Game_Flag_Reset(kFlagCT01toCT12);
-	} else if (Game_Flag_Query(kFlagCT01toCT12) && !Game_Flag_Query(kFlagSpinnerAtCT01)) {
-		if (Global_Variable_Query(kVariableChapter) != 2 && Global_Variable_Query(kVariableChapter) != 3) {
+	} else if ( Game_Flag_Query(kFlagCT01toCT12)
+	        && !Game_Flag_Query(kFlagSpinnerAtCT01)
+	) {
+		if (Global_Variable_Query(kVariableChapter) != 2
+		 && Global_Variable_Query(kVariableChapter) != 3
+		) {
 			Scene_Loop_Start_Special(0, 0, 0);
 		}
 		Scene_Loop_Set_Default(2);
 		Game_Flag_Reset(kFlagCT01toCT12);
-	} else if (Game_Flag_Query(kFlagCT05toCT12) && Game_Flag_Query(kFlagGaffSpinnerCT12)) {
+	} else if (Game_Flag_Query(kFlagCT05toCT12)
+	        && Game_Flag_Query(kFlagGaffSpinnerCT12)
+	) {
 		Game_Flag_Reset(kFlagCT05toCT12);
 		Scene_Loop_Set_Default(4);
-	} else if (Game_Flag_Query(kFlagCT05toCT12) && !Game_Flag_Query(kFlagGaffSpinnerCT12)) {
+	} else if ( Game_Flag_Query(kFlagCT05toCT12)
+	        && !Game_Flag_Query(kFlagGaffSpinnerCT12)
+	) {
 		Game_Flag_Reset(kFlagCT05toCT12);
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(2);
-
 	}
 }
 
@@ -104,27 +117,32 @@ bool SceneScriptCT12::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptCT12::ClickedOnActor(int actorId) {
-	if (actorId == 28) {
+	if (actorId == kActorHowieLee) {
 		Actor_Face_Actor(kActorMcCoy, kActorHowieLee, true);
 		Actor_Says(kActorMcCoy, 8910, 16);
 	}
-	if (actorId == 24 && Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671) && Game_Flag_Query(703)) {
+
+	if (actorId == kActorOfficerGrayford
+	 && Global_Variable_Query(kVariableChapter) == 4
+	 && Game_Flag_Query(671)
+	 && Game_Flag_Query(703)
+	) {
 		Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true);
-		Actor_Says(kActorMcCoy, 710, 3);
-		Actor_Says(kActorOfficerGrayford, 20, 3);
-		Actor_Says(kActorMcCoy, 715, 3);
-		Actor_Says(kActorOfficerGrayford, 30, 3);
-		Actor_Says(kActorMcCoy, 720, 3);
-		Actor_Says(kActorOfficerGrayford, 40, 3);
-		Actor_Says(kActorOfficerGrayford, 50, 3);
-		Actor_Says(kActorOfficerGrayford, 60, 3);
-		Actor_Says(kActorMcCoy, 725, 3);
-		Actor_Says(kActorOfficerGrayford, 70, 3);
-		Actor_Says(kActorOfficerGrayford, 80, 3);
-		Actor_Says(kActorOfficerGrayford, 90, 3);
-		Actor_Says(kActorOfficerGrayford, 100, 3);
-		Actor_Says(kActorOfficerGrayford, 110, 3);
+		Actor_Says(kActorMcCoy, 710, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 20, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 715, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 30, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 720, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 40, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 50, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 60, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 725, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 70, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 80, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 90, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 100, kAnimationModeTalk);
+		Actor_Says(kActorOfficerGrayford, 110, kAnimationModeTalk);
 		Game_Flag_Set(629);
 		Game_Flag_Set(666);
 		Actor_Set_Goal_Number(kActorMcCoy, 400);
@@ -138,7 +156,7 @@ bool SceneScriptCT12::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptCT12::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.15f, -6.5f, 696.94f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.15f, -6.5f, 696.94f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Game_Flag_Set(kFlagCT12toCT01);
 			Set_Enter(kSetCT01_CT12, kSceneCT01);
@@ -146,7 +164,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -182.69f, -6.5f, 696.94f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -182.69f, -6.5f, 696.94f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagCT12toCT03);
@@ -155,7 +173,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.13f, -6.5f, 1132.72f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.13f, -6.5f, 1132.72f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagCT12toCT05);
@@ -164,7 +182,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 3) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -493.0f, -6.5f, 1174.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -493.0f, -6.5f, 1174.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagCT12toCT11);
@@ -173,7 +191,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 4) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -292.0f, -6.5f, 990.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -292.0f, -6.5f, 990.0f, 0, true, false, 0)) {
 			if (Global_Variable_Query(kVariableChapter) == 4) {
 				Game_Flag_Set(629);
 			}
@@ -193,19 +211,7 @@ bool SceneScriptCT12::ClickedOn2DRegion(int region) {
 
 void SceneScriptCT12::SceneFrameAdvanced(int frame) {
 	if (((frame - 1) % 10) == 0) {
-		/*int v2 = Random_Query(0, 1);
-		if (v2 <= 1)
-		{
-			if (v2)
-			{
-				v1 = 60;
-			}
-			else
-			{
-				v1 = 59;
-			}
-		}*/
-		Sound_Play(/*v1*/Random_Query(59, 60), 10, -80, -80, 50);
+		Sound_Play(Random_Query(59, 60), 10, -80, -80, 50);
 	}
 	if (frame == 160) {
 		Actor_Change_Animation_Mode(kActorGaff, 41);
@@ -238,37 +244,37 @@ void SceneScriptCT12::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_Actor(kActorGaff, kActorMcCoy, 48, false, false);
 		Actor_Face_Actor(kActorGaff, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorGaff, true);
-		Actor_Says(kActorGaff, 0, 3);
-		Actor_Says(kActorMcCoy, 670, 3);
-		Actor_Says(kActorGaff, 10, 3);
-		Actor_Says(kActorMcCoy, 675, 3);
-		Actor_Says(kActorGaff, 20, 3);
-		Actor_Says(kActorMcCoy, 680, 3);
-		Actor_Says(kActorGaff, 30, 3);
-		Actor_Says(kActorMcCoy, 685, 3);
-		Actor_Says(kActorGaff, 40, 3);
-		Actor_Says(kActorMcCoy, 690, 3);
-		Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, 1, kActorGaff);
+		Actor_Says(kActorGaff, 0, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 670, kAnimationModeTalk);
+		Actor_Says(kActorGaff, 10, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 675, kAnimationModeTalk);
+		Actor_Says(kActorGaff, 20, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 680, kAnimationModeTalk);
+		Actor_Says(kActorGaff, 30, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 685, kAnimationModeTalk);
+		Actor_Says(kActorGaff, 40, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 690, kAnimationModeTalk);
+		Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, true, kActorGaff);
 		Game_Flag_Set(kFlagGaffApproachedMcCoyAboutZuben);
 		CDB_Set_Crime(kClueZuben, kCrimeMoonbusHijacking);
 
 		if (Game_Flag_Query(kFlagGaffApproachedMcCoyAboutZuben)
 		 && Game_Flag_Query(kFlagZubenRetired)
 		) {
-			Actor_Says(kActorGaff, 50, 3);
-			Actor_Says(kActorMcCoy, 695, 3);
-			Actor_Says(kActorGaff, 60, 3);
-			Actor_Says(kActorMcCoy, 700, 3);
-			Actor_Says(kActorGaff, 70, 3);
-			Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, 1, -1);
+			Actor_Says(kActorGaff, 50, kAnimationModeTalk);
+			Actor_Says(kActorMcCoy, 695, kAnimationModeTalk);
+			Actor_Says(kActorGaff, 60, kAnimationModeTalk);
+			Actor_Says(kActorMcCoy, 700, kAnimationModeTalk);
+			Actor_Says(kActorGaff, 70, kAnimationModeTalk);
+			Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, true, -1);
 		} else if (Game_Flag_Query(kFlagGaffApproachedMcCoyAboutZuben)
 		        && Game_Flag_Query(kFlagZubenSpared)
 		) {
-			Actor_Says(kActorGaff, 80, 3);
-			Actor_Says(kActorGaff, 90, 3);
-			Actor_Says(kActorMcCoy, 705, 3);
-			Actor_Says(kActorGaff, 100, 3);
-			Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, 1, -1);
+			Actor_Says(kActorGaff, 80, kAnimationModeTalk);
+			Actor_Says(kActorGaff, 90, kAnimationModeTalk);
+			Actor_Says(kActorMcCoy, 705, kAnimationModeTalk);
+			Actor_Says(kActorGaff, 100, kAnimationModeTalk);
+			Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, true, -1);
 		}
 
 		Actor_Set_Goal_Number(kActorGaff, 2);
diff --git a/engines/bladerunner/script/scene/ct51.cpp b/engines/bladerunner/script/scene/ct51.cpp
index 887ae08..f022e04 100644
--- a/engines/bladerunner/script/scene/ct51.cpp
+++ b/engines/bladerunner/script/scene/ct51.cpp
@@ -60,7 +60,7 @@ bool SceneScriptCT51::ClickedOn3DObject(const char *objectName, bool a2) {
 			return false;
 		}
 		Item_Pickup_Spin_Effect(970, 203, 200);
-		Actor_Clue_Acquire(kActorMcCoy, kClueHysteriaToken, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueHysteriaToken, true, -1);
 		Actor_Voice_Over(420, kActorVoiceOver);
 		return true;
 	}
@@ -73,14 +73,14 @@ bool SceneScriptCT51::ClickedOnActor(int actorId) {
 
 bool SceneScriptCT51::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 85) {
-		Actor_Clue_Acquire(kActorMcCoy, kClueRagDoll, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueRagDoll, true, -1);
 		Item_Pickup_Spin_Effect(943, 260, 200);
 		Ambient_Sounds_Play_Sound(563, 40, 99, 0, 0);
 		Item_Remove_From_World(85);
 		return true;
 	}
 	if (itemId == 120) {
-		Actor_Clue_Acquire(kActorMcCoy, kClueMoonbus1, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueMoonbus1, true, -1);
 		Item_Pickup_Spin_Effect(984, 490, 307);
 		Item_Remove_From_World(120);
 		Actor_Says(kActorMcCoy, 8527, 3);
diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index 1284c02..f58ebc6 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -55,12 +55,12 @@ void SceneScriptDR01::InitializeScene() {
 	Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(272)
+	if (Game_Flag_Query(kFlagDR05BombExploded)
 	 && Game_Flag_Query(kFlagDR04toDR01)
 	) {
 		Scene_Loop_Start_Special(0, 3, 0);
 		Scene_Loop_Set_Default(4);
-	} else if (!Game_Flag_Query(272)
+	} else if (!Game_Flag_Query(kFlagDR05BombExploded)
 	        &&  Game_Flag_Query(kFlagDR04toDR01)
 	) {
 		Scene_Loop_Start_Special(0, 2, 0);
diff --git a/engines/bladerunner/script/scene/dr03.cpp b/engines/bladerunner/script/scene/dr03.cpp
index 2fa1f35..f012c68 100644
--- a/engines/bladerunner/script/scene/dr03.cpp
+++ b/engines/bladerunner/script/scene/dr03.cpp
@@ -59,21 +59,22 @@ bool SceneScriptDR03::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptDR03::ClickedOnActor(int actorId) {
-	if (actorId == 52) {
+	if (actorId == kActorChew) {
 		Actor_Face_Actor(kActorMcCoy, kActorChew, true);
 		Actor_Face_Actor(kActorChew, kActorMcCoy, true);
-		if (!Game_Flag_Query(267)) {
+		if (!Game_Flag_Query(kFlagDR03ChewTalk1)) {
 			Actor_Says(kActorMcCoy, 755, 18);
 			Actor_Says(kActorChew, 10, 14);
 			Actor_Says(kActorMcCoy, 760, 18);
 			Actor_Says(kActorChew, 20, 14);
 			Actor_Says(kActorMcCoy, 765, 18);
 			Actor_Says(kActorChew, 30, 14);
-			Game_Flag_Set(267);
+			Game_Flag_Set(kFlagDR03ChewTalk1);
 			return true;
 		}
 		if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
-			if (Game_Flag_Query(266) && Game_Flag_Query(267)) {
+			if (Game_Flag_Query(kFlagMorajiExploded)
+			 && Game_Flag_Query(kFlagDR03ChewTalk1)) {
 				Actor_Says(kActorMcCoy, 815, 18);
 				Actor_Says(kActorChew, 60, 14);
 				Actor_Says(kActorChew, 70, 14);
@@ -82,7 +83,7 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
 				Actor_Says(kActorChew, 90, 14);
 				Actor_Says(kActorMcCoy, 825, 18);
 				Actor_Says(kActorChew, 100, 14);
-				Game_Flag_Reset(266);
+				Game_Flag_Reset(kFlagMorajiExploded);
 				Game_Flag_Set(505);
 				return true;
 			}
@@ -114,7 +115,7 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
 			Actor_Says(kActorMcCoy, 855, 18);
 			Actor_Says(kActorChew, 210, 12);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, 1, kActorChew);
+		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		return true;
 	}
 	return false;
@@ -216,7 +217,7 @@ void SceneScriptDR03::sub_401B18() {
 			Actor_Says(kActorMcCoy, 855, 18);
 			Actor_Says(kActorChew, 210, 12);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, 1, kActorChew);
+		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		break;
 	case 650:
 		Actor_Says(kActorMcCoy, 775, 11);
@@ -239,11 +240,11 @@ void SceneScriptDR03::sub_401B18() {
 			Actor_Says(kActorChew, 280, 12);
 			Actor_Says(kActorMcCoy, 870, 18);
 			Actor_Says(kActorChew, 290, 15);
-			if (!Game_Flag_Query(266)) {
+			if (!Game_Flag_Query(kFlagMorajiExploded)) {
 				Actor_Says(kActorChew, 300, 12);
 			}
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, 1, kActorChew);
+		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		break;
 	case 670:
 		Actor_Says(kActorMcCoy, 765, 12);
diff --git a/engines/bladerunner/script/scene/dr04.cpp b/engines/bladerunner/script/scene/dr04.cpp
index 0483d19..d4aa636 100644
--- a/engines/bladerunner/script/scene/dr04.cpp
+++ b/engines/bladerunner/script/scene/dr04.cpp
@@ -25,13 +25,13 @@
 namespace BladeRunner {
 
 void SceneScriptDR04::InitializeScene() {
-	if (Game_Flag_Query(515)) {
+	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
 		Setup_Scene_Information(0.0f, 0.0f, 0.0f, 0);
 	} else if (Game_Flag_Query(kFlagDR01toDR04)) {
 		Setup_Scene_Information(-711.0f, -0.04f, 70.0f, 472);
-	} else if (Game_Flag_Query(229)) {
+	} else if (Game_Flag_Query(kFlagDR05toDR04)) {
 		Setup_Scene_Information(-1067.0f, 7.18f, 421.0f, 125);
-	} else if (Game_Flag_Query(231)) {
+	} else if (Game_Flag_Query(kFlagDR06toDR04)) {
 		Setup_Scene_Information(-897.75f, 134.45f, 569.75f, 512);
 	} else {
 		Setup_Scene_Information(-810.0f, -0.04f, 242.0f, 125);
@@ -52,13 +52,13 @@ void SceneScriptDR04::InitializeScene() {
 	Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
-	if (Game_Flag_Query(272)) {
+	if (Game_Flag_Query(kFlagDR05BombExploded)) {
 		Scene_Loop_Set_Default(1);
 	} else {
 		Scene_Loop_Set_Default(4);
 	}
 	if (Game_Flag_Query(kFlagDR01toDR04)) {
-		if (Game_Flag_Query(272)) {
+		if (Game_Flag_Query(kFlagDR05BombExploded)) {
 			Scene_Loop_Start_Special(0, 0, 0);
 		} else {
 			Scene_Loop_Start_Special(0, 3, 0);
@@ -92,33 +92,34 @@ bool SceneScriptDR04::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptDR04::ClickedOnActor(int actorId) {
-	if (actorId == 35 && !Player_Query_Combat_Mode()) {
-		if (Actor_Query_Goal_Number(kActorMoraji) != 21) {
-			if (Actor_Query_Goal_Number(kActorMoraji) == 23) {
-				if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, 1, false)) {
-					Actor_Set_Goal_Number(kActorOfficerGrayford, 106);
-					return true;
-				}
+	if ( actorId == kActorMoraji
+	 && !Player_Query_Combat_Mode()
+	) {
+		if (Actor_Query_Goal_Number(kActorMoraji) == 21) {
+			if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 109, 0, true, true)) {
+				Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
+				Actor_Says(kActorMcCoy, 945, 13);
+				Actor_Says(kActorMoraji, 0, 3);
+				Actor_Says(kActorMoraji, 10, 3);
+				Actor_Says(kActorMcCoy, 950, 13);
+				Actor_Says(kActorMoraji, 20, 3);
+				Actor_Says(kActorMoraji, 30, 3);
+				Actor_Says(kActorMcCoy, 955, 13);
+				Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, 3);
+				Actor_Says(kActorMoraji, 50, 3);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, true, kActorMoraji);
+				Actor_Set_Goal_Number(kActorMoraji, 22);
+				Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
+				return true;
 			}
-			return false;
 		}
-		if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 109, 0, 1, true)) {
-			Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
-			Actor_Says(kActorMcCoy, 945, 13);
-			Actor_Says(kActorMoraji, 0, 3);
-			Actor_Says(kActorMoraji, 10, 3);
-			Actor_Says(kActorMcCoy, 950, 13);
-			Actor_Says(kActorMoraji, 20, 3);
-			Actor_Says(kActorMoraji, 30, 3);
-			Actor_Says(kActorMcCoy, 955, 13);
-			Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, 3);
-			Actor_Says(kActorMoraji, 50, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, 1, kActorMoraji);
-			Actor_Set_Goal_Number(kActorMoraji, 22);
-			Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
-			return true;
+
+		if (Actor_Query_Goal_Number(kActorMoraji) == 23) {
+			if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, true, false)) {
+				Actor_Set_Goal_Number(kActorOfficerGrayford, 106);
+				return true;
+			}
 		}
-		return false;
 	}
 	return false;
 }
@@ -144,8 +145,8 @@ bool SceneScriptDR04::ClickedOnExit(int exitId) {
 	}
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(232);
-			Game_Flag_Set(228);
+			Game_Flag_Set(kFlagNotUsed232);
+			Game_Flag_Set(kFlagDR04toDR05);
 			Set_Enter(kSetDR05, kSceneDR05);
 		}
 		return true;
@@ -155,13 +156,13 @@ bool SceneScriptDR04::ClickedOnExit(int exitId) {
 			Footstep_Sound_Override_On(3);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
 			Actor_Face_Heading(kActorMcCoy, 512, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, kAnimationModeIdle);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, 0, false, 0);
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, kAnimationModeIdle);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 			Footstep_Sound_Override_Off();
-			Game_Flag_Set(230);
+			Game_Flag_Set(kFlagDR04toDR06);
 			Set_Enter(kSetDR06, kSceneDR06);
 		}
 		return true;
@@ -180,17 +181,17 @@ bool SceneScriptDR04::sub_401160() {
 }
 
 void SceneScriptDR04::SceneFrameAdvanced(int frame) {
-	if (Game_Flag_Query(515)) {
-		Game_Flag_Reset(515);
-		Game_Flag_Reset(271);
+	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
+		Game_Flag_Reset(kFlagDR05BombExplosionView);
+		Game_Flag_Reset(kFlagDR05BombWillExplode);
 		Scene_Loop_Set_Default(1);
 		Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true);
 		Music_Stop(4);
 		Actor_Set_Goal_Number(kActorMoraji, 99);
 	} else {
-		if (Game_Flag_Query(271)) {
-			Game_Flag_Reset(271);
-			Game_Flag_Set(272);
+		if (Game_Flag_Query(kFlagDR05BombWillExplode)) {
+			Game_Flag_Reset(kFlagDR05BombWillExplode);
+			Game_Flag_Set(kFlagDR05BombExploded);
 			Scene_Loop_Set_Default(1);
 			Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true);
 			Item_Remove_From_World(78);
@@ -215,7 +216,10 @@ void SceneScriptDR04::SceneFrameAdvanced(int frame) {
 			Player_Gains_Control();
 			break;
 		case 235:
-			if (Actor_Query_Goal_Number(kActorMoraji) != 20 && Actor_Query_Goal_Number(kActorMoraji) != 21 && Actor_Query_Goal_Number(kActorMoraji) != 99) {
+			if (Actor_Query_Goal_Number(kActorMoraji) != 20
+			 && Actor_Query_Goal_Number(kActorMoraji) != 21
+			 && Actor_Query_Goal_Number(kActorMoraji) != 99
+			) {
 				Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
 			}
 			Scene_Exits_Enable();
@@ -231,30 +235,33 @@ void SceneScriptDR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptDR04::PlayerWalkedIn() {
-	if (Game_Flag_Query(515)) {
+	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
 		Player_Loses_Control();
 		Delay(4000);
 		Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
 	} else {
-		if (Game_Flag_Query(269) && !Game_Flag_Query(272)) {
+		if ( Game_Flag_Query(kFlagDR05BombActivated)
+		 && !Game_Flag_Query(kFlagDR05BombExploded)
+		) {
 			Scene_Exits_Disable();
 		}
-		if (Game_Flag_Query(231)) {
+
+		if (Game_Flag_Query(kFlagDR06toDR04)) {
 			Footstep_Sound_Override_On(3);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
 			Actor_Face_Heading(kActorMcCoy, 512, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, kAnimationModeIdle);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 71.64f, 647.0f, 0, 0, false, 0);
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, kAnimationModeIdle);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -774.85f, 7.18f, 386.67f, 0, 0, false, 0);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 			Footstep_Sound_Override_Off();
 		}
 	}
 	Game_Flag_Reset(kFlagDR01toDR04);
-	Game_Flag_Reset(229);
-	Game_Flag_Reset(231);
+	Game_Flag_Reset(kFlagDR05toDR04);
+	Game_Flag_Reset(kFlagDR06toDR04);
 }
 
 void SceneScriptDR04::PlayerWalkedOut() {
diff --git a/engines/bladerunner/script/scene/dr05.cpp b/engines/bladerunner/script/scene/dr05.cpp
index dfa4b8b..6ad6604 100644
--- a/engines/bladerunner/script/scene/dr05.cpp
+++ b/engines/bladerunner/script/scene/dr05.cpp
@@ -26,13 +26,13 @@ namespace BladeRunner {
 
 void SceneScriptDR05::InitializeScene() {
 	Setup_Scene_Information(-22.0f, 0.3f, 221.0f, 0);
-	Game_Flag_Reset(228);
+	Game_Flag_Reset(kFlagDR04toDR05);
 	Scene_Exit_Add_2D_Exit(0, 0, 38, 80, 467, 3);
 	Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1);
-	if (!Game_Flag_Query(272)) {
+	if (!Game_Flag_Query(kFlagDR05BombExploded)) {
 		Overlay_Play("DR05OVER", 0, 1, 0, 0);
 	}
-	if (Game_Flag_Query(272)) {
+	if (Game_Flag_Query(kFlagDR05BombExploded)) {
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(0);
@@ -44,9 +44,9 @@ void SceneScriptDR05::SceneLoaded() {
 	Unobstacle_Object("BOX06", true);
 	Unobstacle_Object("BOX183", true);
 	Clickable_Object("T2 DOORWAY");
-	if (!Game_Flag_Query(272)) {
+	if (!Game_Flag_Query(kFlagDR05BombExploded)) {
 		Item_Add_To_World(78, 932, 35, -1.57f, 31.33f, 75.21f, 540, 16, 16, true, true, false, true);
-		if (!Actor_Query_Goal_Number(kActorMoraji)) {
+		if (Actor_Query_Goal_Number(kActorMoraji) == 0) {
 			Item_Add_To_World(122, 931, 35, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true);
 		}
 	}
@@ -58,8 +58,10 @@ bool SceneScriptDR05::MouseClick(int x, int y) {
 
 bool SceneScriptDR05::ClickedOn3DObject(const char *objectName, bool a2) {
 	if (Object_Query_Click("T2 DOORWAY", objectName)) {
-		if (Game_Flag_Query(276) || Actor_Query_Goal_Number(kActorMoraji)) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 57.61f, 0.3f, 69.27f, 0, 1, false, 0)) {
+		if (Game_Flag_Query(kFlagNotUsed276)
+		 || Actor_Query_Goal_Number(kActorMoraji) != 0
+		) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 57.61f, 0.3f, 69.27f, 0, true, false, 0)) {
 				Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
 				Actor_Says(kActorMcCoy, 8522, 13);
 				Actor_Says(kActorMcCoy, 8521, 14);
@@ -81,9 +83,12 @@ bool SceneScriptDR05::ClickedOnActor(int actorId) {
 bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 78) {
 		if (Player_Query_Combat_Mode()) {
-			Game_Flag_Set(271);
+			Game_Flag_Set(kFlagDR05BombWillExplode);
 			Actor_Set_Goal_Number(kActorMoraji, 30);
-		} else if (!Game_Flag_Query(272) && !Loop_Actor_Walk_To_Item(kActorMcCoy, 78, 24, 1, true) && Actor_Query_Goal_Number(kActorMoraji) != 11) {
+		} else if (!Game_Flag_Query(kFlagDR05BombExploded)
+		        && !Loop_Actor_Walk_To_Item(kActorMcCoy, 78, 24, 1, true)
+		        &&  Actor_Query_Goal_Number(kActorMoraji) != 11
+		) {
 			if (!Actor_Query_Goal_Number(kActorMoraji)) {
 				Actor_Says_With_Pause(kActorMcCoy, 1015, 0.1f, 12);
 				Actor_Says(kActorMoraji, 70, 13);
@@ -92,10 +97,13 @@ bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
 		}
 		//return true; //bug?
 	}
-	if (itemId == 122 && Player_Query_Combat_Mode() && Actor_Query_Goal_Number(kActorMoraji) == 0) {
+	if (itemId == 122
+	 && Player_Query_Combat_Mode()
+	 && Actor_Query_Goal_Number(kActorMoraji) == 0
+	) {
 		Overlay_Play("DR05OVER", 1, 0, 1, 0);
 		Item_Remove_From_World(122);
-		Game_Flag_Set(270);
+		Game_Flag_Set(kFlagDR05ChainShot);
 		Actor_Set_Goal_Number(kActorMoraji, 10);
 		Music_Play(18, 71, 0, 0, -1, 0, 2);
 		return true;
@@ -105,9 +113,9 @@ bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptDR05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -22.0f, 0.3f, 221.0f, 0, 1, false, 0)) {
-			Game_Flag_Reset(232);
-			Game_Flag_Set(229);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -22.0f, 0.3f, 221.0f, 0, true, false, 0)) {
+			Game_Flag_Reset(kFlagNotUsed232);
+			Game_Flag_Set(kFlagDR05toDR04);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
 		}
 		return true;
@@ -123,10 +131,10 @@ void SceneScriptDR05::SceneFrameAdvanced(int frame) {
 	if (frame == 49) {
 		Sound_Play(148, Random_Query(50, 50), 80, 80, 50);
 	}
-	if (Game_Flag_Query(271)) {
+	if (Game_Flag_Query(kFlagDR05BombWillExplode)) {
 		Item_Remove_From_World(78);
-		Game_Flag_Reset(271);
-		Game_Flag_Set(272);
+		Game_Flag_Reset(kFlagDR05BombWillExplode);
+		Game_Flag_Set(kFlagDR05BombExploded);
 		Actor_Set_Goal_Number(kActorMoraji, 30);
 	}
 }
@@ -135,39 +143,46 @@ void SceneScriptDR05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptDR05::PlayerWalkedIn() {
-	if (!Game_Flag_Query(511) && !Game_Flag_Query(270) && Game_Flag_Query(272)) {
+	if (!Game_Flag_Query(kFlagDR05ExplodedEntered)
+	 && !Game_Flag_Query(kFlagDR05ChainShot)
+	 &&  Game_Flag_Query(kFlagDR05BombExploded)
+	) {
 		Item_Remove_From_World(122);
 	}
-	if (Game_Flag_Query(272)) {
+
+	if (Game_Flag_Query(kFlagDR05BombExploded)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, false, 0);
-		if (!Game_Flag_Query(511)) {
-			Game_Flag_Set(511);
+		if (!Game_Flag_Query(kFlagDR05ExplodedEntered)) {
+			Game_Flag_Set(kFlagDR05ExplodedEntered);
 			if (Game_Flag_Query(kFlagSadikIsReplicant)) {
 				Actor_Voice_Over(730, kActorVoiceOver);
 				Actor_Voice_Over(740, kActorVoiceOver);
 				Actor_Voice_Over(750, kActorVoiceOver);
 				Actor_Voice_Over(760, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueExpertBomber, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueExpertBomber, true, -1);
 			} else {
 				Actor_Voice_Over(670, kActorVoiceOver);
 				Actor_Voice_Over(680, kActorVoiceOver);
 				Actor_Voice_Over(700, kActorVoiceOver);
 				Actor_Voice_Over(710, kActorVoiceOver);
 				Actor_Voice_Over(720, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueAmateurBomber, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueAmateurBomber, true, -1);
 			}
 		}
 	} else {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, true, 0);
 	}
-	if (!Game_Flag_Query(274) && !Actor_Query_Goal_Number(kActorMoraji)) {
+
+	if (!Game_Flag_Query(kFlagDR05MorajiTalk)
+	 && !Actor_Query_Goal_Number(kActorMoraji)
+	) {
 		Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
 		Actor_Says(kActorMcCoy, 1010, 13);
 		Actor_Face_Item(kActorMcCoy, 78, true);
 		Player_Set_Combat_Mode(true);
 		Actor_Says(kActorMoraji, 60, 12);
 		Actor_Change_Animation_Mode(kActorMcCoy, 0);
-		Game_Flag_Set(274);
+		Game_Flag_Set(kFlagDR05MorajiTalk);
 		//return true;
 	}
 	//return false;
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index 6d8271b..c28ec2d 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -25,19 +25,21 @@
 namespace BladeRunner {
 
 void SceneScriptDR06::InitializeScene() {
-	if (Game_Flag_Query(230)) {
+	if (Game_Flag_Query(kFlagDR04toDR06)) {
 		Setup_Scene_Information(-733.57f, 136.6f, -968.64f, 0);
 	} else {
 		Setup_Scene_Information(-707.57f, 136.6f, -1132.64f, 472);
 	}
 	Scene_Exit_Add_2D_Exit(0, 601, 11, 639, 479, 1);
-	if (Global_Variable_Query(kVariableChapter) > 3 && Game_Flag_Query(715)) {
+	if (Global_Variable_Query(kVariableChapter) > 3
+	 && Game_Flag_Query(715)
+	) {
 		Scene_Exit_Add_2D_Exit(1, 0, 272, 46, 477, 2);
 	}
 	Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1);
 	Ambient_Sounds_Add_Sound(73, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(74, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(268)) {
+	if (Game_Flag_Query(kFlagDR06JesterActive)) {
 		Overlay_Play("DR06over", 1, 1, 0, 0);
 		Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
 	} else {
@@ -67,79 +69,86 @@ bool SceneScriptDR06::MouseClick(int x, int y) {
 
 bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 	if (Object_Query_Click("BOX16", objectName)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -743.0f, 136.6f, -1091.0f, 0, 1, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -743.0f, 136.6f, -1091.0f, 0, true, false, 0);
 		Actor_Face_Object(kActorMcCoy, "BOX16", true);
-		if (!Game_Flag_Query(268)) {
+		if (!Game_Flag_Query(kFlagDR06JesterActive)) {
 			Overlay_Play("DR06over", 1, 1, 1, 0);
 			Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
-			Game_Flag_Set(268);
-			return true;
+			Game_Flag_Set(kFlagDR06JesterActive);
+		} else {
+			Overlay_Play("DR06over", 0, 1, 1, 0);
+			Ambient_Sounds_Remove_Looping_Sound(300, false);
+			Game_Flag_Reset(kFlagDR06JesterActive);
 		}
-		Overlay_Play("DR06over", 0, 1, 1, 0);
-		Ambient_Sounds_Remove_Looping_Sound(300, false);
-		Game_Flag_Reset(268);
 		return true;
 	}
+
 	if (Object_Query_Click("X2_MON01A04", objectName)) {
 		if (Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)) {
 			Actor_Face_Object(kActorMcCoy, "X2_MON01A04", true);
 			Actor_Says(kActorMcCoy, 8570, 13);
-		} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -684.94f, 136.6f, -1136.12f, 0, 1, false, 0)) {
-			Actor_Face_Object(kActorMcCoy, "X2_MON01A04", true);
-			Actor_Says(kActorAnsweringMachine, 10, 3);
-			Actor_Says(kActorAnsweringMachine, 20, 3);
-			Actor_Says(kActorAnsweringMachine, 30, 3);
-			Actor_Says(kActorMcCoy, 1025, 13);
-			Actor_Says(kActorSebastian, 0, 3);
-			Actor_Says(kActorSebastian, 10, 3);
-			Actor_Says(kActorSebastian, 20, 3);
-			Actor_Says(kActorSebastian, 30, 3);
-			Actor_Says(kActorSebastian, 40, 3);
-			Actor_Says(kActorSebastian, 50, 3);
-			Actor_Says(kActorAnsweringMachine, 40, 3);
-			Actor_Says(kActorMcCoy, 1030, 13);
-			Actor_Says(kActorAnsweringMachine, 50, 3);
-			Actor_Clue_Acquire(kActorMcCoy, kClueAnsweringMachineMessage, 1, kActorAnsweringMachine);
+		} else {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -684.94f, 136.6f, -1136.12f, 0, true, false, 0)) {
+				Actor_Face_Object(kActorMcCoy, "X2_MON01A04", true);
+				Actor_Says(kActorAnsweringMachine, 10, 3);
+				Actor_Says(kActorAnsweringMachine, 20, 3);
+				Actor_Says(kActorAnsweringMachine, 30, 3);
+				Actor_Says(kActorMcCoy, 1025, 13);
+				Actor_Says(kActorSebastian, 0, 3);
+				Actor_Says(kActorSebastian, 10, 3);
+				Actor_Says(kActorSebastian, 20, 3);
+				Actor_Says(kActorSebastian, 30, 3);
+				Actor_Says(kActorSebastian, 40, 3);
+				Actor_Says(kActorSebastian, 50, 3);
+				Actor_Says(kActorAnsweringMachine, 40, 3);
+				Actor_Says(kActorMcCoy, 1030, 13);
+				Actor_Says(kActorAnsweringMachine, 50, 3);
+				Actor_Clue_Acquire(kActorMcCoy, kClueAnsweringMachineMessage, true, kActorAnsweringMachine);
+			}
 		}
 		return true;
 	}
+
 	if (Object_Query_Click("X2_MON01D01", objectName)) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -645.34f, 136.6f, -1047.37f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -645.34f, 136.6f, -1047.37f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 329, false);
-			if (Actor_Clue_Query(kActorMcCoy, kClueFolder) && Actor_Clue_Query(kActorMcCoy, kClueGuzzaFramedMcCoy) && !Game_Flag_Query(670)) {
+			if ( Actor_Clue_Query(kActorMcCoy, kClueFolder)
+			 &&  Actor_Clue_Query(kActorMcCoy, kClueGuzzaFramedMcCoy)
+			 && !Game_Flag_Query(670)
+			) {
 				Actor_Set_Goal_Number(kActorMcCoy, 350);
 				Game_Flag_Set(670);
-			} else if (Game_Flag_Query(280)) {
-				Actor_Says(kActorMcCoy, 8570, 13);
-			} else {
+			} else if (!Game_Flag_Query(kFlagDR06VidphoneChecked)) {
 				Actor_Voice_Over(770, kActorVoiceOver);
 				Actor_Voice_Over(780, kActorVoiceOver);
 				Actor_Voice_Over(790, kActorVoiceOver);
 				Actor_Voice_Over(800, kActorVoiceOver);
-				Game_Flag_Set(280);
+				Game_Flag_Set(kFlagDR06VidphoneChecked);
+			} else {
+				Actor_Says(kActorMcCoy, 8570, 13);
 			}
 		}
 		return true;
 	}
-	if (Object_Query_Click("X2_KEYBRD02", objectName) && !Game_Flag_Query(278)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -655.57f, 136.6f, -1092.64f, 0, 1, false, 0);
+
+	if ( Object_Query_Click("X2_KEYBRD02", objectName) // a bug? there is no X2_KEYBRD02 only X2KEYBRD02
+	 && !Game_Flag_Query(kFlagDR06KeyboardChecked)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -655.57f, 136.6f, -1092.64f, 0, true, false, 0);
 		Actor_Face_Object(kActorMcCoy, "X2_KEYBRD02", true);
 		Actor_Voice_Over(830, kActorVoiceOver);
 		Actor_Voice_Over(840, kActorVoiceOver);
-		Game_Flag_Set(278);
+		Game_Flag_Set(kFlagDR06KeyboardChecked);
 		return true;
 	}
+
 	if (Object_Query_Click("X2_TORSO04HIRES", objectName)) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -700.0f, 136.6f, -1133.0f, 4, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -700.0f, 136.6f, -1133.0f, 4, true, false, 0)) {
 			Actor_Face_Object(kActorMcCoy, "x2_TORSO04HIRES", true);
 			if (Global_Variable_Query(39) > 12) {
 				return true;
 			}
-			if (Game_Flag_Query(548)) {
-				Overlay_Remove("DR06ovr2");
-				Game_Flag_Reset(548);
-				Sound_Play(161, 100, 0, 0, 50);
-			} else {
+
+			if (!Game_Flag_Query(548)) {
 				Overlay_Play("DR06ovr2", 0, 1, 0, 0);
 				Game_Flag_Set(548);
 				Sound_Play(160, 100, 0, 0, 50);
@@ -149,12 +158,17 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 					Actor_Voice_Over(860, kActorVoiceOver);
 					Actor_Voice_Over(870, kActorVoiceOver);
 					Actor_Voice_Over(880, kActorVoiceOver);
-					Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, 1, kActorLance);
+					Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, true, kActorLance);
 					if (Query_Difficulty_Level() != 0) {
 						Global_Variable_Increment(2, 200);
 					}
 				}
+			} else {
+				Overlay_Remove("DR06ovr2");
+				Game_Flag_Reset(548);
+				Sound_Play(161, 100, 0, 0, 50);
 			}
+
 			Global_Variable_Increment(39, 1);
 			if (Global_Variable_Query(39) > 12) {
 				Sound_Play(204, 100, 0, 0, 50);
@@ -163,7 +177,8 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 		}
 		return true;
 	}
-	Actor_Face_Object(kActorMcCoy, "X2_MON01D01", true);
+
+	Actor_Face_Object(kActorMcCoy, "X2_MON01D01", true); //a bug? or why?
 	Actor_Says(kActorMcCoy, 8525, 13);
 	return true;
 }
@@ -178,14 +193,14 @@ bool SceneScriptDR06::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptDR06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -733.0f, 136.6f, -980.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(231);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -733.0f, 136.6f, -980.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagDR06toDR04);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
 		}
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -707.57f, 136.6f, -1132.64f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -707.57f, 136.6f, -1132.64f, 0, true, false, 0)) {
 			Game_Flag_Set(552);
 			Set_Enter(kSetUG16, kSceneUG16);
 		}
@@ -205,10 +220,10 @@ void SceneScriptDR06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptDR06::PlayerWalkedIn() {
-	if (Game_Flag_Query(230)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -729.57f, 136.6f, -1016.0f, 0, 0, false, 0);
+	if (Game_Flag_Query(kFlagDR04toDR06)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -729.57f, 136.6f, -1016.0f, 0, false, false, 0);
 	}
-	Game_Flag_Reset(230);
+	Game_Flag_Reset(kFlagDR04toDR06);
 	Game_Flag_Reset(551);
 }
 
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp
index 89ac7d7..e9ef0a2 100644
--- a/engines/bladerunner/script/scene/hc01.cpp
+++ b/engines/bladerunner/script/scene/hc01.cpp
@@ -131,11 +131,11 @@ bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) {
 		Delay(1500);
 		Item_Pickup_Spin_Effect(984, 330, 384);
 		if (Game_Flag_Query(374)) {
-			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, 1, kActorIzo);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
-			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, 1, kActorIzo);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChinaBar, 1, kActorIzo);
+		Actor_Clue_Acquire(kActorMcCoy, kClueChinaBar, true, kActorIzo);
 		return true;
 	}
 	return false;
@@ -147,7 +147,7 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) {
 			Music_Adjust(12, 0, 2);
 			Game_Flag_Set(kFlagHC01toAR01);
 			Set_Enter(kSetAR01_AR02, kSceneAR01);
-			Game_Flag_Reset(479);
+			Game_Flag_Reset(kFlagMcCoyAtHCxx);
 			Game_Flag_Set(kFlagMcCoyAtARxx);
 		}
 		return true;
@@ -279,7 +279,7 @@ void SceneScriptHC01::sub_402384() {
 		}
 		if (answer == 1010) {
 			Dialogue_Menu_Remove_From_List(1010);
-			Actor_Clue_Acquire(kActorMcCoy, kClueIzoInterview, 0, kActorIzo);
+			Actor_Clue_Acquire(kActorMcCoy, kClueIzoInterview, false, kActorIzo);
 			Actor_Says(kActorMcCoy, 1070, 13);
 			Actor_Says(kActorIzo, 200, 17);
 			Actor_Says(kActorIzo, 210, 12);
diff --git a/engines/bladerunner/script/scene/hc02.cpp b/engines/bladerunner/script/scene/hc02.cpp
index f59d350..4b29361 100644
--- a/engines/bladerunner/script/scene/hc02.cpp
+++ b/engines/bladerunner/script/scene/hc02.cpp
@@ -104,10 +104,10 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				Actor_Says(kActorMcCoy, 4545, 11);
 				Actor_Says(kActorHawkersBarkeep, 120, 12);
 				Actor_Says(kActorHawkersBarkeep, 180, 13);
-				Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityDisc, 1, kActorHawkersBarkeep);
+				Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityDisc, true, kActorHawkersBarkeep);
 				Item_Pickup_Spin_Effect(975, 229, 215);
 			} else if (Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1) && !Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe) && (Global_Variable_Query(2) > 20 || Query_Difficulty_Level() == 0)) {
-				Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, 1, kActorHawkersBarkeep);
+				Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, true, kActorHawkersBarkeep);
 				Actor_Says(kActorMcCoy, 1230, 13);
 				Actor_Says(kActorHawkersBarkeep, 20, 12);
 				Actor_Says(kActorMcCoy, 1235, 13);
@@ -124,7 +124,9 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				}
 				Actor_Says(kActorMcCoy, 1245, 13);
 			} else {
-				if (Actor_Clue_Query(kActorMcCoy, kClueMaggieBracelet)  && !Game_Flag_Query(405)) {
+				if ( Actor_Clue_Query(kActorMcCoy, kClueMaggieBracelet)
+				 && !Game_Flag_Query(405)
+				) {
 					Actor_Says(kActorHawkersBarkeep, 80, 16);
 					Actor_Says(kActorMcCoy, 1265, 13);
 					Actor_Says(kActorHawkersBarkeep, 90, 13);
diff --git a/engines/bladerunner/script/scene/hc03.cpp b/engines/bladerunner/script/scene/hc03.cpp
index 762a40c..e8490b5 100644
--- a/engines/bladerunner/script/scene/hc03.cpp
+++ b/engines/bladerunner/script/scene/hc03.cpp
@@ -117,11 +117,11 @@ bool SceneScriptHC03::ClickedOnItem(int itemId, bool a2) {
 		Delay(1500);
 		Item_Pickup_Spin_Effect(984, 58, 435);
 		if (Game_Flag_Query(374)) {
-			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, 1, kActorIzo);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
-			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, 1, kActorIzo);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChinaBar, 1, kActorIzo);
+		Actor_Clue_Acquire(kActorMcCoy, kClueChinaBar, true, kActorIzo);
 		return true;
 	}
 	return false;
@@ -139,7 +139,7 @@ bool SceneScriptHC03::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 628.0f, 2.04f, -123.0f, 0, 1, false, 0)) {
 			if (Game_Flag_Query(388)) {
 				Game_Flag_Set(kFlagHC03toUG02);
-				Game_Flag_Reset(479);
+				Game_Flag_Reset(kFlagMcCoyAtHCxx);
 				Game_Flag_Set(kFlagMcCoyAtUGxx);
 				Game_Flag_Set(388);
 				Music_Stop(2);
diff --git a/engines/bladerunner/script/scene/hc04.cpp b/engines/bladerunner/script/scene/hc04.cpp
index 2cf0d84..a20b65c 100644
--- a/engines/bladerunner/script/scene/hc04.cpp
+++ b/engines/bladerunner/script/scene/hc04.cpp
@@ -111,7 +111,7 @@ bool SceneScriptHC04::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.14f, -639.0f, 0, 1, false, 0)) {
 			Music_Stop(2);
 			Game_Flag_Set(kFlagHC04toRC03);
-			Game_Flag_Reset(479);
+			Game_Flag_Reset(kFlagMcCoyAtHCxx);
 			Game_Flag_Set(kFlagMcCoyAtRCxx);
 			Set_Enter(kSetRC03, kSceneRC03);
 		}
@@ -220,7 +220,7 @@ void SceneScriptHC04::sub_401B90() {
 		Actor_Says(kActorIsabella, 320, 3);
 		Actor_Says(kActorMcCoy, 1395, 3);
 		Actor_Says(kActorIsabella, 330, 3);
-		Actor_Clue_Acquire(kActorMcCoy, kClueStolenCheese, 0, kActorIsabella);
+		Actor_Clue_Acquire(kActorMcCoy, kClueStolenCheese, false, kActorIsabella);
 		break;
 	case 390:
 		Actor_Says(kActorMcCoy, 1310, 3);
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index adec56f..9e445ca 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -438,7 +438,7 @@ void SceneScriptHF01::sub_4026B4() {
 		Actor_Says(kActorMurray, 220, 13);
 		Actor_Says(kActorMia, 140, 12);
 		Actor_Says(kActorMurray, 230, 13);
-		Actor_Clue_Acquire(kActorMcCoy, kClueSpecialIngredient, 0, kActorMurray);
+		Actor_Clue_Acquire(kActorMcCoy, kClueSpecialIngredient, false, kActorMurray);
 		break;
 	case 470:
 		Actor_Says(kActorMcCoy, 1495, 14);
diff --git a/engines/bladerunner/script/scene/hf03.cpp b/engines/bladerunner/script/scene/hf03.cpp
index e24aab7..4557d0a 100644
--- a/engines/bladerunner/script/scene/hf03.cpp
+++ b/engines/bladerunner/script/scene/hf03.cpp
@@ -119,7 +119,7 @@ void SceneScriptHF03::sub_401C80() {
 			Actor_Says(kActorLucy, 220, 13);
 			Actor_Says(kActorMcCoy, 1660, 15);
 			Actor_Says(kActorLucy, 230, 14);
-			Actor_Clue_Acquire(kActorLucy, kClueMcCoyHelpedLucy, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorLucy, kClueMcCoyHelpedLucy, true, kActorMcCoy);
 			if (Game_Flag_Query(kFlagLucyIsReplicant)) {
 				Actor_Set_Goal_Number(kActorLucy, 212);
 			} else {
@@ -140,7 +140,7 @@ void SceneScriptHF03::sub_401C80() {
 		Actor_Says(kActorLucy, 300, 16);
 		Actor_Says(kActorMcCoy, 1675, 12);
 		Actor_Says(kActorLucy, 310, 13);
-		Actor_Clue_Acquire(kActorMcCoy, kClueLucyInterview, 0, kActorLucy);
+		Actor_Clue_Acquire(kActorMcCoy, kClueLucyInterview, false, kActorLucy);
 		break;
 	case 880:
 		Actor_Says(kActorMcCoy, 1650, 14);
diff --git a/engines/bladerunner/script/scene/hf04.cpp b/engines/bladerunner/script/scene/hf04.cpp
index 11a8479..5921f57 100644
--- a/engines/bladerunner/script/scene/hf04.cpp
+++ b/engines/bladerunner/script/scene/hf04.cpp
@@ -53,7 +53,9 @@ void SceneScriptHF04::SceneLoaded() {
 		Unobstacle_Object("HIDE_WALL_B", true);
 	}
 	if (Actor_Query_Goal_Number(kActorLucy) == 213) {
-		if (Actor_Clue_Query(kActorLucy, kClueMcCoyHelpedLucy) && Global_Variable_Query(40) != 3) {
+		if (Actor_Clue_Query(kActorLucy, kClueMcCoyHelpedLucy)
+		 && Global_Variable_Query(40) != 3
+		) {
 			Game_Flag_Set(593);
 		} else {
 			Actor_Set_Goal_Number(kActorLucy, 230);
diff --git a/engines/bladerunner/script/scene/hf05.cpp b/engines/bladerunner/script/scene/hf05.cpp
index 4022d19..75c9dc1 100644
--- a/engines/bladerunner/script/scene/hf05.cpp
+++ b/engines/bladerunner/script/scene/hf05.cpp
@@ -274,7 +274,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, 0, false, 0);
 	} else if (Game_Flag_Query(358)) {
 		Actor_Set_At_XYZ(kActorMcCoy, 346.0f, 4.63f, -151.0f, 603);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
 	}
 	if (Actor_Query_In_Set(kActorCrazylegs, kSetHF05)) {
 		if (Game_Flag_Query(562)) {
@@ -569,7 +569,7 @@ void SceneScriptHF05::sub_403A34(int actorId) {
 		Loop_Actor_Walk_To_Actor(kActorCrazylegs, kActorMcCoy, 28, 0, false);
 		Item_Pickup_Spin_Effect(986, 315, 327);
 		Actor_Says(kActorCrazylegs, 80, 23);
-		Actor_Clue_Acquire(kActorMcCoy, kClueSpinnerKeys, 1, kActorCrazylegs);
+		Actor_Clue_Acquire(kActorMcCoy, kClueSpinnerKeys, true, kActorCrazylegs);
 		Actor_Says(kActorCrazylegs, 90, 15);
 		Actor_Says(kActorMcCoy, 1735, 17);
 		Actor_Says(kActorCrazylegs, 100, 16);
diff --git a/engines/bladerunner/script/scene/hf06.cpp b/engines/bladerunner/script/scene/hf06.cpp
index 318e104..3c1eac4 100644
--- a/engines/bladerunner/script/scene/hf06.cpp
+++ b/engines/bladerunner/script/scene/hf06.cpp
@@ -122,7 +122,7 @@ bool SceneScriptHF06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 170.0f, 367.93f, 497.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 730, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, kAnimationModeIdle);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(530);
@@ -166,7 +166,7 @@ void SceneScriptHF06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 			Actor_Voice_Over(1030, kActorVoiceOver);
 			Actor_Voice_Over(1040, kActorVoiceOver);
 			Actor_Voice_Over(1050, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBomb, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBomb, true, -1);
 		}
 		if (Actor_Query_In_Set(kActorDektora, kSetHF06)) {
 			Actor_Set_Targetable(kActorDektora, false);
@@ -199,7 +199,7 @@ void SceneScriptHF06::PlayerWalkedIn() {
 		}
 	}
 	Footstep_Sound_Override_On(3);
-	Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 1, 0);
+	Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 1, kAnimationModeIdle);
 	Footstep_Sound_Override_Off();
 	if (Game_Flag_Query(662) && !Game_Flag_Query(559)) {
 		sub_401EF4();
diff --git a/engines/bladerunner/script/scene/hf07.cpp b/engines/bladerunner/script/scene/hf07.cpp
index 318cb93..8194e95 100644
--- a/engines/bladerunner/script/scene/hf07.cpp
+++ b/engines/bladerunner/script/scene/hf07.cpp
@@ -78,7 +78,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
 			if (!Game_Flag_Query(662)) {
 				Actor_Face_Heading(kActorMcCoy, 0, false);
 				Footstep_Sound_Override_On(3);
-				Loop_Actor_Travel_Stairs(kActorMcCoy, 30, true, 0);
+				Loop_Actor_Travel_Stairs(kActorMcCoy, 30, true, kAnimationModeIdle);
 				Footstep_Sound_Override_Off();
 			}
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
@@ -128,7 +128,7 @@ void SceneScriptHF07::PlayerWalkedIn() {
 	} else if (Game_Flag_Query(359)) {
 		Actor_Set_At_XYZ(kActorMcCoy, 267.72f, 329.43f, -86.75f, 940);
 		Footstep_Sound_Override_On(3);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 30, false, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 30, false, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 	}
 	Game_Flag_Reset(359);
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index a3c7d1e..8d8aa7f 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -74,7 +74,7 @@ bool SceneScriptKP05::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 118) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1058.0f, 0.0f, 852.0f, 0, 1, false, 0)) {
 			Actor_Face_Item(kActorMcCoy, 118, true);
-			Actor_Clue_Acquire(kActorMcCoy, kCluePowerSource, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePowerSource, true, -1);
 			Item_Remove_From_World(118);
 			Item_Pickup_Spin_Effect(960, 58, 321);
 		}
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index 569ccbb..f08b6d8 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -80,7 +80,7 @@ bool SceneScriptKP06::ClickedOnActor(int actorId) {
 		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
 			Actor_Says(kActorSadik, 280, 3);
 			Actor_Says(kActorSadik, 290, 3);
-			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
 		} else {
 			Actor_Says(kActorMcCoy, 2320, 3);
 			Actor_Says(kActorMcCoy, 2325, 3);
@@ -125,7 +125,7 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
 		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
 			Actor_Says(kActorSadik, 280, 3);
 			Actor_Says(kActorSadik, 290, 3);
-			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 0, true, 0);
 			Player_Set_Combat_Mode(false);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index d48795e..c459481 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -61,7 +61,7 @@ void SceneScriptMA01::InitializeScene() {
 		Game_Flag_Reset(kFlagMA06toMA01);
 	} else {
 		Actor_Set_Invisible(kActorMcCoy, true);
-		Game_Flag_Set(273);
+		Game_Flag_Set(kFlagArrivedFromSpinner2);
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA01LoopInshotRoof, false);
 		Scene_Loop_Set_Default(kMA01LoopMain);
 	}
@@ -226,12 +226,18 @@ void SceneScriptMA01::SceneFrameAdvanced(int frame) {
 	if (frame == 58) {
 		Sound_Play(122, 17, 20, 20, 50);
 	}
-	if ((frame == 75 || frame == 196) && Game_Flag_Query(273)) {
+	if ((frame == 75
+	  || frame == 196
+	 )
+	 && Game_Flag_Query(kFlagArrivedFromSpinner2)
+	) {
 		Actor_Face_Heading(kActorMcCoy, 736, false);
 		Actor_Change_Animation_Mode(kActorMcCoy, 42);
-		Game_Flag_Reset(273);
+		Game_Flag_Reset(kFlagArrivedFromSpinner2);
 	} else {
-		if (frame == 196 && !Game_Flag_Query(273)) {
+		if ( frame == 196
+		 && !Game_Flag_Query(kFlagArrivedFromSpinner2)
+		) {
 			Actor_Change_Animation_Mode(kActorMcCoy, 41);
 			//return true;
 			return;
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 528d9d7..8be9fe2 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -71,11 +71,11 @@ void SceneScriptNR01::InitializeScene() {
 		Game_Flag_Reset(kFlagSpinnerAtNR01);
 		Game_Flag_Reset(kFlagSpinnerAtHF01);
 	}
-	if (Game_Flag_Query(kFlagSpinnerAtNR01) && !Game_Flag_Query(kFlagArrivedFromSpinner)) {
+	if (Game_Flag_Query(kFlagSpinnerAtNR01) && !Game_Flag_Query(kFlagArrivedFromSpinner1)) {
 		Scene_Loop_Start_Special(0, 0, 0);
 		Scene_Loop_Set_Default(1);
-		Game_Flag_Set(kFlagArrivedFromSpinner);
-	} else if (Game_Flag_Query(kFlagSpinnerAtNR01) && Game_Flag_Query(kFlagArrivedFromSpinner)) {
+		Game_Flag_Set(kFlagArrivedFromSpinner1);
+	} else if (Game_Flag_Query(kFlagSpinnerAtNR01) && Game_Flag_Query(kFlagArrivedFromSpinner1)) {
 		Scene_Loop_Set_Default(1);
 	} else {
 		Scene_Loop_Set_Default(4);
@@ -124,7 +124,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 45, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(343);
@@ -155,7 +155,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationPoliceStation:
 				Game_Flag_Set(kFlagMcCoyAtPSxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -163,7 +163,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyAtMAxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -171,7 +171,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyAtRCxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -179,7 +179,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyAtCTxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -187,7 +187,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyAtARxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -195,7 +195,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyAtTBxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -203,7 +203,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyAtDRxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -211,7 +211,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyAtBBxx);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
-				Game_Flag_Reset(kFlagArrivedFromSpinner);
+				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
@@ -226,7 +226,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			default:
 				Player_Loses_Control();
 				Game_Flag_Set(kFlagMcCoyAtNRxx);
-				Game_Flag_Set(kFlagArrivedFromSpinner);
+				Game_Flag_Set(kFlagArrivedFromSpinner1);
 				Player_Gains_Control();
 				break;
 			}
@@ -312,7 +312,7 @@ void SceneScriptNR01::PlayerWalkedIn() {
 		Game_Flag_Reset(534);
 	} else {
 		if (Game_Flag_Query(342)) {
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle);
 			Game_Flag_Reset(342);
 			if (Actor_Query_Goal_Number(kActorSteele) == 230) {
 				Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/scene/nr02.cpp b/engines/bladerunner/script/scene/nr02.cpp
index 37956e3..83c9227 100644
--- a/engines/bladerunner/script/scene/nr02.cpp
+++ b/engines/bladerunner/script/scene/nr02.cpp
@@ -109,12 +109,12 @@ bool SceneScriptNR02::ClickedOnItem(int itemId, bool a2) {
 		if (itemId == 89) {
 			Item_Remove_From_World(89);
 			Item_Pickup_Spin_Effect(953, 214, 380);
-			Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter1, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter1, true, -1);
 		}
 		if (itemId == 90) {
 			Item_Remove_From_World(90);
 			Item_Pickup_Spin_Effect(954, 214, 380);
-			Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter2, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter2, true, -1);
 		}
 	}
 	return false;
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index 6b8d606..dc571ed 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -88,7 +88,7 @@ bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
 				} else if (Actor_Clue_Query(kActorMcCoy, kClueCollectionReceipt)) {
 					Actor_Says(kActorMcCoy, 8580, 3);
 				} else {
-					Actor_Clue_Acquire(kActorMcCoy, kClueCollectionReceipt, 0, -1);
+					Actor_Clue_Acquire(kActorMcCoy, kClueCollectionReceipt, false, -1);
 					Item_Pickup_Spin_Effect(961, 247, 141);
 					Actor_Voice_Over(1560, kActorVoiceOver);
 					Actor_Voice_Over(1570, kActorVoiceOver);
@@ -109,7 +109,7 @@ bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
 		Item_Pickup_Spin_Effect(975, 358, 160);
 		Actor_Voice_Over(1620, kActorVoiceOver);
 		Actor_Voice_Over(1630, kActorVoiceOver);
-		Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQsClub, 0, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQsClub, false, -1);
 		Actor_Set_Goal_Number(kActorEarlyQ, 201);
 	}
 	return false;
@@ -190,7 +190,7 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 			//return true;
 			break;
 		case 213:
-			Actor_Clue_Acquire(kActorMcCoy, kClueDektorasDressingRoom, 0, kActorEarlyQ);
+			Actor_Clue_Acquire(kActorMcCoy, kClueDektorasDressingRoom, false, kActorEarlyQ);
 			Item_Pickup_Spin_Effect(984, 200, 160);
 			Actor_Says(kActorEarlyQ, 200, 30);
 			Actor_Says(kActorEarlyQ, 210, 30);
@@ -223,7 +223,7 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 			Actor_Change_Animation_Mode(kActorEarlyQ, 85);
 			Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true);
 			Actor_Set_Goal_Number(kActorEarlyQ, 208);
-			Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQInterview, 0, kActorEarlyQ);
+			Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQInterview, false, kActorEarlyQ);
 			//return true;
 			break;
 		case 204:
diff --git a/engines/bladerunner/script/scene/nr06.cpp b/engines/bladerunner/script/scene/nr06.cpp
index 2c22716..acb8bc7 100644
--- a/engines/bladerunner/script/scene/nr06.cpp
+++ b/engines/bladerunner/script/scene/nr06.cpp
@@ -91,7 +91,7 @@ bool SceneScriptNR06::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -137.0f, -71.88f, -243.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 95, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 1, kAnimationModeIdle);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -36.0f, 0.37f, -373.0f, 0, 0, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -124,7 +124,7 @@ void SceneScriptNR06::PlayerWalkedIn() {
 	} else {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -81.72f, 0.12f, -323.49f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 600, false);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 0, kAnimationModeIdle);
 		Game_Flag_Reset(440);
 	}
 	//return false;
diff --git a/engines/bladerunner/script/scene/nr07.cpp b/engines/bladerunner/script/scene/nr07.cpp
index 2d5d861..13d3139 100644
--- a/engines/bladerunner/script/scene/nr07.cpp
+++ b/engines/bladerunner/script/scene/nr07.cpp
@@ -217,7 +217,7 @@ void SceneScriptNR07::sub_401C60() {
 	Actor_Face_Object(kActorMcCoy, "VASE", true);
 	if (Actor_Query_Is_In_Current_Set(kActorDektora)) {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueDektoraInterview3)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview3, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview3, true, -1);
 			int v0 = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
 			if (v0 > 50) {
 				Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 2);
@@ -233,7 +233,7 @@ void SceneScriptNR07::sub_401C60() {
 	} else if (Actor_Clue_Query(kActorMcCoy, kClueDektorasCard)) {
 		Actor_Says(kActorMcCoy, 8585, 14);
 	} else {
-		Actor_Clue_Acquire(kActorMcCoy, kClueDektorasCard, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueDektorasCard, true, -1);
 		Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "VASE", 100, true, false);
 		Actor_Change_Animation_Mode(kActorMcCoy, 23);
 		Item_Pickup_Spin_Effect(935, 526, 268);
@@ -243,7 +243,7 @@ void SceneScriptNR07::sub_401C60() {
 }
 
 void SceneScriptNR07::sub_401EF4() {
-	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview2, 1, -1);
+	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview2, true, -1);
 	Actor_Says(kActorMcCoy, 3625, 19);
 	Actor_Says(kActorDektora, 570, 30);
 	Actor_Says_With_Pause(kActorDektora, 580, 1.0f, 31);
@@ -255,7 +255,7 @@ void SceneScriptNR07::sub_401EF4() {
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 	Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
 	Game_Flag_Set(638);
-	Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyBelt, 1, kActorDektora);
+	Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyBelt, true, kActorDektora);
 	int v0 = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
 	if (!Game_Flag_Query(kFlagDektoraIsReplicant) && v0 < 40) {
 		sub_4018D4();
@@ -288,7 +288,7 @@ void SceneScriptNR07::sub_4020F0() {
 }
 
 void SceneScriptNR07::sub_402284() {
-	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview1, 1, -1);
+	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview1, true, -1);
 	Actor_Start_Speech_Sample(kActorMcCoy, 3660);
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
diff --git a/engines/bladerunner/script/scene/nr08.cpp b/engines/bladerunner/script/scene/nr08.cpp
index b946f3e..5f58e4c 100644
--- a/engines/bladerunner/script/scene/nr08.cpp
+++ b/engines/bladerunner/script/scene/nr08.cpp
@@ -104,7 +104,7 @@ bool SceneScriptNR08::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -724.7f, 0.0f, 384.24f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 505, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
 			Game_Flag_Set(440);
 			Set_Enter(kSetNR06, kSceneNR06);
 		}
@@ -114,7 +114,7 @@ bool SceneScriptNR08::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1663.33f, 0.65f, 342.84f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 831, false);
 			Footstep_Sound_Override_On(2);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			Game_Flag_Set(614);
 			Set_Enter(kSetNR09, kSceneNR09);
@@ -179,7 +179,7 @@ void SceneScriptNR08::PlayerWalkedIn() {
 	}
 	if (Actor_Query_Goal_Number(kActorDektora) == 245) {
 		Actor_Face_Heading(kActorDektora, 790, false);
-		Loop_Actor_Travel_Stairs(kActorDektora, 8, 1, 0);
+		Loop_Actor_Travel_Stairs(kActorDektora, 8, 1, kAnimationModeIdle);
 		Actor_Set_Goal_Number(kActorDektora, 246);
 	}
 	if (Actor_Query_Goal_Number(kActorSteele) == 231) {
diff --git a/engines/bladerunner/script/scene/nr11.cpp b/engines/bladerunner/script/scene/nr11.cpp
index 16ccfda..4a48ebe 100644
--- a/engines/bladerunner/script/scene/nr11.cpp
+++ b/engines/bladerunner/script/scene/nr11.cpp
@@ -146,7 +146,7 @@ bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool a2) {
 					Loop_Actor_Walk_To_XYZ(kActorDektora, -135.0f, 0.33f, -267.0f, 0, 0, false, 0);
 					Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
 					Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
-					Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview4, 1, kActorDektora);
+					Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview4, true, kActorDektora);
 					Actor_Says(kActorDektora, 990, 13);
 					Actor_Says(kActorDektora, 1000, 14);
 					Loop_Actor_Walk_To_Actor(kActorDektora, kActorMcCoy, 108, 0, false);
diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp
index 69fcdf7..681f68a 100644
--- a/engines/bladerunner/script/scene/ps01.cpp
+++ b/engines/bladerunner/script/scene/ps01.cpp
@@ -44,7 +44,7 @@ void SceneScriptPS01::InitializeScene() {
 		}
 	} else {
 		Actor_Set_Invisible(kActorMcCoy, true);
-		Game_Flag_Set(273);
+		Game_Flag_Set(kFlagArrivedFromSpinner2);
 		Scene_Loop_Start_Special(0, 0, 0);
 		Scene_Loop_Set_Default(1);
 		Player_Loses_Control();
@@ -163,7 +163,7 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
 			default:
 				Actor_Face_Heading(kActorMcCoy, 870, false);
 				Game_Flag_Set(kFlagMcCoyAtPSxx);
-				Game_Flag_Set(273);
+				Game_Flag_Set(kFlagArrivedFromSpinner2);
 				Player_Loses_Control();
 				Scene_Loop_Start_Special(2, 3, 1);
 				break;
@@ -200,7 +200,7 @@ void SceneScriptPS01::SceneFrameAdvanced(int frame) {
 	if (frame == 275) {
 		Sound_Play(117, 40, 0, 0, 50);
 	}
-	if (!Game_Flag_Query(273)) {
+	if (!Game_Flag_Query(kFlagArrivedFromSpinner2)) {
 		switch (frame) {
 		case 196:
 			Actor_Face_Heading(kActorMcCoy, 870, false);
@@ -224,14 +224,14 @@ void SceneScriptPS01::SceneFrameAdvanced(int frame) {
 		return;
 	}
 	if (frame == 119) {
-		Game_Flag_Reset(273);
+		Game_Flag_Reset(kFlagArrivedFromSpinner2);
 		Player_Gains_Control();
 		//return true;
 		return;
 	}
 	if (frame > 195) {
 		if (frame == 239) {
-			Game_Flag_Reset(273);
+			Game_Flag_Reset(kFlagArrivedFromSpinner2);
 			Player_Gains_Control();
 		}
 		//return true;
diff --git a/engines/bladerunner/script/scene/ps03.cpp b/engines/bladerunner/script/scene/ps03.cpp
index ea6f8d7..d8ccf47 100644
--- a/engines/bladerunner/script/scene/ps03.cpp
+++ b/engines/bladerunner/script/scene/ps03.cpp
@@ -29,9 +29,9 @@ void SceneScriptPS03::InitializeScene() {
 		Actor_Set_At_XYZ(kActorMcCoy, -674.0f, -354.0f, 550.0f, 900);
 		Setup_Scene_Information(-674.0f, -354.62f, 550.0f, 900);
 		Game_Flag_Reset(kFlagPS04toPS03);
-	} else if (Game_Flag_Query(135)) {
+	} else if (Game_Flag_Query(kFlagPS14toPS03)) {
 		Setup_Scene_Information(-875.0f, -354.62f, -1241.0f, 450);
-		Game_Flag_Reset(135);
+		Game_Flag_Reset(kFlagPS14toPS03);
 	} else {
 		Setup_Scene_Information(-569.54f, -354.62f, -1076.15f, 475);
 		Game_Flag_Reset(kFlagPS02toPS03);
@@ -88,16 +88,16 @@ bool SceneScriptPS03::ClickedOnExit(int exitId) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Set_Enter(kSetPS02, kScenePS02);
-			Game_Flag_Reset(478);
+			Game_Flag_Reset(kFlagMcCoyAtPS03);
 			if (Global_Variable_Query(kVariableChapter) < 4) {
-				Actor_Set_Goal_Number(kActorGuzza, 100);
+				Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeaveOffice);
 			}
 		}
 		return true;
 	}
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -875.0f, -354.0f, -1241.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(134);
+			Game_Flag_Set(kFlagPS03toPS14);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Set_Enter(kSetPS14, kScenePS14);
@@ -118,8 +118,8 @@ void SceneScriptPS03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptPS03::PlayerWalkedIn() {
-	if (!Game_Flag_Query(478)) {
-		Game_Flag_Set(478);
+	if (!Game_Flag_Query(kFlagMcCoyAtPS03)) {
+		Game_Flag_Set(kFlagMcCoyAtPS03);
 		//return true;
 	}
 	//return false;
diff --git a/engines/bladerunner/script/scene/ps04.cpp b/engines/bladerunner/script/scene/ps04.cpp
index 2d372b0..605b1d5 100644
--- a/engines/bladerunner/script/scene/ps04.cpp
+++ b/engines/bladerunner/script/scene/ps04.cpp
@@ -56,10 +56,15 @@ void SceneScriptPS04::SceneLoaded() {
 	Unobstacle_Object("B.DOOR", true);
 	Unobstacle_Object("B.CHAIR01", true);
 	Unclickable_Object("CHAIR07");
-	if (Global_Variable_Query(kVariableChapter) == 2 && !Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm) && !Game_Flag_Query(727)) {
-		Item_Add_To_World(111, 958, 64, -643.5f, -318.82f, 1148.87f, 525, 16, 12, false, true, false, true);
-		Game_Flag_Set(727);
+
+	if ( Global_Variable_Query(kVariableChapter) == 2
+	 && !Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
+	 && !Game_Flag_Query(kFlagPS04WeaponsOrderForm)
+	) {
+		Item_Add_To_World(kItemWeaponsOrderForm, 958, 64, -643.5f, -318.82f, 1148.87f, 525, 16, 12, false, true, false, true);
+		Game_Flag_Set(kFlagPS04WeaponsOrderForm);
 	}
+
 	if (Actor_Query_Is_In_Current_Set(kActorGuzza)) {
 		Actor_Change_Animation_Mode(kActorGuzza, 53);
 	}
@@ -75,10 +80,10 @@ bool SceneScriptPS04::ClickedOn3DObject(const char *objectName, bool a2) {
 
 bool SceneScriptPS04::ClickedOnActor(int actorId) {
 	if (actorId == kActorGuzza) {
-		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorGuzza, 36, 1, false)) {
+		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorGuzza, 36, true, false)) {
 			Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
 			Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
-			sub_4017E4();
+			dialogueWithGuzza();
 			return true;
 		}
 	}
@@ -86,20 +91,22 @@ bool SceneScriptPS04::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptPS04::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 111 && Actor_Query_Is_In_Current_Set(kActorGuzza)) {
+	if (itemId == kItemWeaponsOrderForm
+	 && Actor_Query_Is_In_Current_Set(kActorGuzza)
+	) {
 		Actor_Says(kActorGuzza, 560, 30);
 	} else if (!Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)) {
-		Item_Remove_From_World(111);
+		Item_Remove_From_World(kItemWeaponsOrderForm);
 		Item_Pickup_Spin_Effect(958, 464, 362);
-		Actor_Says(kActorMcCoy, 4485, 3);
-		Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, 1, kActorMcCoy);
+		Actor_Says(kActorMcCoy, 4485, kAnimationModeTalk);
+		Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy);
 	}
 	return false;
 }
 
 bool SceneScriptPS04::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -668.0f, -350.85f, 962.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -668.0f, -350.85f, 962.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagPS04toPS03);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -134,27 +141,56 @@ void SceneScriptPS04::PlayerWalkedOut() {
 void SceneScriptPS04::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptPS04::sub_4017E4() {
+void SceneScriptPS04::dialogueWithGuzza() {
 	Dialogue_Menu_Clear_List();
 	if (Global_Variable_Query(kVariableChapter) > 1) {
 		if (Actor_Clue_Query(kActorMcCoy, kClueAttemptedFileAccess)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(110, 5, 7, 4);
+			DM_Add_To_List_Never_Repeat_Once_Selected(110, 5, 7, 4); // REQUEST TYRELL MEETING
 		}
-		DM_Add_To_List_Never_Repeat_Once_Selected(120, 1, -1, -1);
+		DM_Add_To_List_Never_Repeat_Once_Selected(120, 1, -1, -1); // MONEY
 		if (Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5);
+			DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5); // HOLDEN'S BADGE
 		}
 	}
 	if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1);
+		DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1); // CONFESS TO SHOOTING
 	}
-	DM_Add_To_List(130, 1, 1, 1);
-	Dialogue_Menu_Add_DONE_To_List(160);
+	DM_Add_To_List(130, 1, 1, 1); // REPORT IN
+	Dialogue_Menu_Add_DONE_To_List(160); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 130:
+	case 110: // REQUEST TYRELL MEETING
+		Actor_Says(kActorMcCoy, 3990, 19);
+		Actor_Says(kActorMcCoy, 3995, 17);
+		Actor_Says(kActorGuzza, 440, 31);
+		Actor_Says(kActorMcCoy, 4035, 13);
+		Actor_Says(kActorGuzza, 450, 34);
+		Actor_Says(kActorGuzza, 460, 33);
+		Actor_Says(kActorMcCoy, 4040, 17);
+		Game_Flag_Set(625);
+		break;
+
+	case 120: // MONEY
+		Actor_Says(kActorMcCoy, 4000, 18);
+		Actor_Clue_Acquire(kActorMcCoy, kClueGuzzasCash, true, kActorGuzza);
+		Actor_Says(kActorGuzza, 520, 33);
+		Actor_Says(kActorMcCoy, 4055, 13);
+		Actor_Says(kActorGuzza, 530, 31);
+		Actor_Says(kActorMcCoy, 4060, 13);
+		Actor_Says(kActorGuzza, 540, 31);
+		Actor_Says(kActorGuzza, 550, 32);
+		Actor_Says(kActorMcCoy, 4065, 18);
+		Actor_Says(kActorGuzza, 560, 34);
+		if (Query_Difficulty_Level() != 0) {
+			Global_Variable_Increment(2, 100);
+		}
+		break;
+
+	case 130: // REPORT IN
 		if ( Game_Flag_Query(kFlagZubenRetired)
 		 && !Game_Flag_Query(kFlagGuzzaTalkZubenRetired)
 		) {
@@ -166,7 +202,7 @@ void SceneScriptPS04::sub_4017E4() {
 			Actor_Says(kActorMcCoy, 3925, 18);
 			Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
 			Actor_Says(kActorGuzza, 170, 33);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -716.0f, -354.85f, 1042.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -716.0f, -354.85f, 1042.0f, 0, false, false, 0);
 			Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
 			Actor_Says(kActorMcCoy, 3930, 13);
 			Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
@@ -246,32 +282,8 @@ void SceneScriptPS04::sub_4017E4() {
 			Actor_Says(kActorMcCoy, 3915, 13);
 		}
 		break;
-	case 110:
-		Actor_Says(kActorMcCoy, 3990, 19);
-		Actor_Says(kActorMcCoy, 3995, 17);
-		Actor_Says(kActorGuzza, 440, 31);
-		Actor_Says(kActorMcCoy, 4035, 13);
-		Actor_Says(kActorGuzza, 450, 34);
-		Actor_Says(kActorGuzza, 460, 33);
-		Actor_Says(kActorMcCoy, 4040, 17);
-		Game_Flag_Set(625);
-		break;
-	case 120:
-		Actor_Says(kActorMcCoy, 4000, 18);
-		Actor_Clue_Acquire(kActorMcCoy, kClueGuzzasCash, 1, kActorGuzza);
-		Actor_Says(kActorGuzza, 520, 33);
-		Actor_Says(kActorMcCoy, 4055, 13);
-		Actor_Says(kActorGuzza, 530, 31);
-		Actor_Says(kActorMcCoy, 4060, 13);
-		Actor_Says(kActorGuzza, 540, 31);
-		Actor_Says(kActorGuzza, 550, 32);
-		Actor_Says(kActorMcCoy, 4065, 18);
-		Actor_Says(kActorGuzza, 560, 34);
-		if (Query_Difficulty_Level() != 0) {
-			Global_Variable_Increment(2, 100);
-		}
-		break;
-	case 140:
+
+	case 140: // CONFESS TO SHOOTING
 		Actor_Says(kActorMcCoy, 4010, 12);
 		Actor_Says(kActorGuzza, 600, 31);
 		Actor_Says(kActorMcCoy, 4080, 18);
@@ -284,10 +296,10 @@ void SceneScriptPS04::sub_4017E4() {
 		Actor_Says(kActorGuzza, 710, 31);
 		Actor_Says(kActorGuzza, 720, 34);
 		Actor_Says(kActorMcCoy, 4105, 18);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -668.0f, -350.85f, 962.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -668.0f, -350.85f, 962.0f, 0, false, false, 0);
 		Actor_Says(kActorGuzza, 730, 32);
 		Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -716.0f, -354.85f, 1042.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -716.0f, -354.85f, 1042.0f, 0, false, false, 0);
 		Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
 		Actor_Says(kActorGuzza, 740, 31);
 		Actor_Says(kActorGuzza, 750, 32);
@@ -297,7 +309,8 @@ void SceneScriptPS04::sub_4017E4() {
 		Actor_Says(kActorGuzza, 770, 32);
 		Actor_Says(kActorGuzza, 780, 31);
 		break;
-	case 150:
+
+	case 150: // HOLDEN'S BADGE
 		Actor_Says(kActorMcCoy, 4015, 16);
 		Actor_Says(kActorGuzza, 630, 34);
 		Actor_Says(kActorMcCoy, 4085, 19);
@@ -309,9 +322,9 @@ void SceneScriptPS04::sub_4017E4() {
 		Actor_Says(kActorGuzza, 680, 32);
 		Actor_Says(kActorGuzza, 690, 31);
 		break;
-	default:
-		//TODO: what is this for?
-		//answer != 160;
+
+	case 160: // DONE
+		// nothing here
 		break;
 	}
 }
diff --git a/engines/bladerunner/script/scene/ps06.cpp b/engines/bladerunner/script/scene/ps06.cpp
index 2e9ce53..4298f98 100644
--- a/engines/bladerunner/script/scene/ps06.cpp
+++ b/engines/bladerunner/script/scene/ps06.cpp
@@ -71,19 +71,19 @@ bool SceneScriptPS06::ClickedOn3DObject(const char *objectName, bool a2) {
 				Actor_Voice_Over(3810, kActorVoiceOver);
 				Actor_Voice_Over(3820, kActorVoiceOver);
 				Actor_Voice_Over(3830, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration1, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration1, true, -1);
 			} else if (Game_Flag_Query(kFlagGordoIsReplicant)) {
 				Actor_Voice_Over(3840, kActorVoiceOver);
 				Actor_Voice_Over(3850, kActorVoiceOver);
 				Actor_Voice_Over(3860, kActorVoiceOver);
 				Actor_Voice_Over(3870, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration2, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration2, true, -1);
 			} else {
 				Actor_Voice_Over(3880, kActorVoiceOver);
 				Actor_Voice_Over(3890, kActorVoiceOver);
 				Actor_Voice_Over(3900, kActorVoiceOver);
 				Actor_Voice_Over(3910, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration3, 1, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCarRegistration3, true, -1);
 			}
 			Actor_Clues_Transfer_New_To_Mainframe(kActorMcCoy);
 			Actor_Clues_Transfer_New_From_Mainframe(kActorMcCoy);
diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp
index 5f11993..4d15adb 100644
--- a/engines/bladerunner/script/scene/ps07.cpp
+++ b/engines/bladerunner/script/scene/ps07.cpp
@@ -68,10 +68,18 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 	if (actorId == kActorKlein) {
 		Actor_Face_Actor(kActorMcCoy, kActorKlein, true);
 		Actor_Set_Goal_Number(kActorKlein, 3);
+
 		if (!Game_Flag_Query(kFlagKleinTalkClues)) {
 			Actor_Says(kActorMcCoy, 4115, 13);
 		}
-		if (!Game_Flag_Query(kFlagKleinTalkClues) && (Game_Flag_Query(kFlagMcCoyHasShellCasings) || Game_Flag_Query(kFlagMcCoyHasOfficersStatement) || Game_Flag_Query(kFlagMcCoyHasPaintTransfer) || Game_Flag_Query(kFlagMcCoyHasChromeDebris))) {
+
+		if (!Game_Flag_Query(kFlagKleinTalkClues)
+		 && (Game_Flag_Query(kFlagMcCoyHasShellCasings)
+		  || Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
+		  || Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
+		  || Game_Flag_Query(kFlagMcCoyHasChromeDebris)
+		 )
+		) {
 			Actor_Face_Actor(kActorKlein, kActorMcCoy, true);
 			Actor_Says(kActorKlein, 30, 12);
 			Game_Flag_Set(kFlagKleinTalkClues);
@@ -80,9 +88,12 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 				Actor_Says(kActorMcCoy, 4130, 18);
 			}
 		}
-		if (Game_Flag_Query(kFlagMcCoyHasShellCasings) && !Game_Flag_Query(kFlagKleinTalkShellCasings)) {
+
+		if ( Game_Flag_Query(kFlagMcCoyHasShellCasings)
+		 && !Game_Flag_Query(kFlagKleinTalkShellCasings)
+		) {
 			Game_Flag_Set(kFlagKleinTalkShellCasings);
-			Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, 0, kActorKlein);
+			Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein);
 			Actor_Says(kActorKlein, 50, 16);
 			Actor_Says(kActorMcCoy, 4135, 13);
 			Actor_Says(kActorKlein, 60, 15);
@@ -93,9 +104,12 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 			Actor_Set_Goal_Number(kActorKlein, 1);
 			return true;
 		}
-		if (Game_Flag_Query(kFlagMcCoyHasOfficersStatement) && !Game_Flag_Query(kFlagKleinTalkOfficersStatement)) {
+
+		if ( Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
+		 && !Game_Flag_Query(kFlagKleinTalkOfficersStatement)
+		) {
 			Game_Flag_Set(kFlagKleinTalkOfficersStatement);
-			Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, 0, kActorKlein);
+			Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein);
 			Actor_Says(kActorKlein, 100, 13);
 			Actor_Says(kActorMcCoy, 4145, 13);
 			Actor_Says(kActorKlein, 110, 12);
@@ -113,9 +127,12 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 			Actor_Set_Goal_Number(kActorKlein, 1);
 			return true;
 		}
-		if (Game_Flag_Query(kFlagMcCoyHasPaintTransfer) && !Game_Flag_Query(kFlagKleinTalkPaintTransfer)) {
+
+		if ( Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
+		 && !Game_Flag_Query(kFlagKleinTalkPaintTransfer)
+		) {
 			Game_Flag_Set(kFlagKleinTalkPaintTransfer);
-			Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, 0, kActorKlein);
+			Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein);
 			Actor_Says(kActorKlein, 170, 14);
 			Actor_Says(kActorMcCoy, 4180, 13);
 			Actor_Says(kActorKlein, 180, 12);
@@ -127,7 +144,10 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 			Actor_Set_Goal_Number(kActorKlein, 1);
 			return true;
 		}
-		if (Game_Flag_Query(kFlagMcCoyHasChromeDebris) && !Game_Flag_Query(kFlagKleinTalkChromeDebris)) {
+
+		if ( Game_Flag_Query(kFlagMcCoyHasChromeDebris)
+		 && !Game_Flag_Query(kFlagKleinTalkChromeDebris)
+		) {
 			Game_Flag_Set(kFlagKleinTalkChromeDebris);
 			Actor_Says(kActorKlein, 220, 12);
 			Actor_Says(kActorMcCoy, 4190, 13);
diff --git a/engines/bladerunner/script/scene/ps09.cpp b/engines/bladerunner/script/scene/ps09.cpp
index d4888b0..456a303 100644
--- a/engines/bladerunner/script/scene/ps09.cpp
+++ b/engines/bladerunner/script/scene/ps09.cpp
@@ -285,9 +285,9 @@ void SceneScriptPS09::dialogueWithGregorian() {
 	 || Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB1)
 	 || Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB2)
 	) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(170, 5, 5, 3);
-		DM_Add_To_List_Never_Repeat_Once_Selected(180, -1, 5, 5);
-		DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6);
+		DM_Add_To_List_Never_Repeat_Once_Selected(170, 5, 5, 3); // PROTEST
+		DM_Add_To_List_Never_Repeat_Once_Selected(180, -1, 5, 5); // CARS
+		DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VOIGT-KAMPFF
 	}
 	if (Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)
 	 && (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewA)
@@ -295,14 +295,16 @@ void SceneScriptPS09::dialogueWithGregorian() {
 	  || Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB2)
 	 )
 	) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(190, 5, 6, -1);
+		DM_Add_To_List_Never_Repeat_Once_Selected(190, 5, 6, -1); // NOTE
 	}
-	Dialogue_Menu_Add_To_List(210);
+	Dialogue_Menu_Add_To_List(210); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 170:
+	case 170: // PROTEST
 		Actor_Says(kActorMcCoy, 4270, 13);
 		Actor_Says(kActorMcCoy, 4250, 18);
 		Actor_Says(kActorGrigorian, 50, 13);
@@ -334,7 +336,8 @@ void SceneScriptPS09::dialogueWithGregorian() {
 			return;
 		}
 		break;
-	case 180:
+
+	case 180: // CARS
 		Actor_Says(kActorMcCoy, 4270, 18);
 		Actor_Says(kActorMcCoy, 4255, 3);
 		Actor_Says(kActorGrigorian, 210, 12);
@@ -378,7 +381,8 @@ void SceneScriptPS09::dialogueWithGregorian() {
 			Actor_Says(kActorMcCoy, 4375, 18);
 		}
 		break;
-	case 190:
+
+	case 190: // NOTE
 		Actor_Says(kActorMcCoy, 4270, 18);
 		Actor_Says(kActorMcCoy, 4260, 3);
 		Actor_Says(kActorGrigorian, 360, 16);
@@ -391,7 +395,8 @@ void SceneScriptPS09::dialogueWithGregorian() {
 		Actor_Says(kActorGrigorian, 390, 12);
 		Actor_Modify_Friendliness_To_Other(kActorGrigorian, kActorMcCoy, -5);
 		break;
-	case 200:
+
+	case 200: // VOIGT-KAMPFF
 		Actor_Says(kActorMcCoy, 4265, 14);
 		Actor_Says(kActorGrigorian, 400, 13);
 		Actor_Says(kActorMcCoy, 4400, 13);
@@ -401,7 +406,8 @@ void SceneScriptPS09::dialogueWithGregorian() {
 		Voight_Kampff_Activate(kActorGrigorian, 20);
 		Actor_Modify_Friendliness_To_Other(kActorGrigorian, kActorMcCoy, -10);
 		break;
-	case 210:
+
+	case 210: // DONE
 		Actor_Says(kActorMcCoy, 8600, 18);
 		Actor_Says(kActorGrigorian, 20, 15);
 		break;
diff --git a/engines/bladerunner/script/scene/ps14.cpp b/engines/bladerunner/script/scene/ps14.cpp
index e8d3f31..2d1bb42 100644
--- a/engines/bladerunner/script/scene/ps14.cpp
+++ b/engines/bladerunner/script/scene/ps14.cpp
@@ -25,9 +25,9 @@
 namespace BladeRunner {
 
 void SceneScriptPS14::InitializeScene() {
-	if (Game_Flag_Query(134)) {
+	if (Game_Flag_Query(kFlagPS03toPS14)) {
 		Setup_Scene_Information(-1119.61f, 508.14f, -1208.22f, 315);
-		Game_Flag_Reset(134);
+		Game_Flag_Reset(kFlagPS03toPS14);
 	} else {
 		Setup_Scene_Information(-785.45f, 508.14f, -1652.0f, 315);
 	}
@@ -69,7 +69,7 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -2101.0f, 508.14f, -1361.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 819, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle);
 			if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671)) {
 				if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) {
 					Game_Flag_Set(666);
@@ -80,9 +80,9 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
 			} else if (Global_Variable_Query(kVariableChapter) > 3) {
 				Actor_Says(kActorMcCoy, 8522, 12);
 				Actor_Face_Heading(kActorMcCoy, 307, false);
-				Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, 0);
+				Loop_Actor_Travel_Stairs(kActorMcCoy, 3, false, kAnimationModeIdle);
 			} else {
-				Game_Flag_Set(135);
+				Game_Flag_Set(kFlagPS14toPS03);
 				Set_Enter(kSetPS03, kScenePS03);
 			}
 		}
diff --git a/engines/bladerunner/script/scene/ps15.cpp b/engines/bladerunner/script/scene/ps15.cpp
index e04ff08..def00bf 100644
--- a/engines/bladerunner/script/scene/ps15.cpp
+++ b/engines/bladerunner/script/scene/ps15.cpp
@@ -43,7 +43,7 @@ void SceneScriptPS15::InitializeScene() {
 void SceneScriptPS15::SceneLoaded() {
 	Obstacle_Object("E.ARCH", true);
 	if (Global_Variable_Query(kVariableChapter) == 2) {
-		Item_Add_To_World(110, 983, 101, -208.0f, -113.43f, 30.28f, 750, 16, 12, false, true, false, true);
+		Item_Add_To_World(kItemWeaponsCrate, 983, 101, -208.0f, -113.43f, 30.28f, 750, 16, 12, false, true, false, true);
 	}
 }
 
@@ -56,9 +56,13 @@ bool SceneScriptPS15::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptPS15::ClickedOnActor(int actorId) {
-	if (actorId == 34) {
-		if ((Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm) || Actor_Clue_Query(kActorMcCoy, kCluePoliceIssueWeapons)) && !Actor_Clue_Query(kActorMcCoy, kClueShippingForm)) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -256.0f, -113.43f, 43.51f, 0, 1, false, 0)) {
+	if (actorId == kActorSergeantWalls) {
+		if ((Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
+		  || Actor_Clue_Query(kActorMcCoy, kCluePoliceIssueWeapons)
+		 )
+		 && !Actor_Clue_Query(kActorMcCoy, kClueShippingForm)
+		) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -256.0f, -113.43f, 43.51f, 0, true, false, 0)) {
 				Actor_Face_Actor(kActorMcCoy, kActorSergeantWalls, true);
 				Actor_Face_Actor(kActorSergeantWalls, kActorMcCoy, true);
 				Actor_Says(kActorMcCoy, 4470, 17);
@@ -68,9 +72,9 @@ bool SceneScriptPS15::ClickedOnActor(int actorId) {
 				Actor_Says(kActorSergeantWalls, 140, 16);
 				Item_Pickup_Spin_Effect(965, 211, 239);
 				Actor_Says(kActorSergeantWalls, 150, 14);
-				Actor_Clue_Acquire(kActorMcCoy, kClueShippingForm, 1, kActorSergeantWalls);
-				if (!Game_Flag_Query(727)) {
-					Item_Remove_From_World(111);
+				Actor_Clue_Acquire(kActorMcCoy, kClueShippingForm, true, kActorSergeantWalls);
+				if (!Game_Flag_Query(kFlagPS04WeaponsOrderForm)) {
+					Item_Remove_From_World(kItemWeaponsOrderForm);
 				}
 			}
 		} else {
@@ -84,8 +88,10 @@ bool SceneScriptPS15::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptPS15::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 110) {
-		if (Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm) && Actor_Clue_Query(kActorMcCoy, kCluePoliceIssueWeapons)) {
+	if (itemId == kItemWeaponsCrate) {
+		if (Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
+		 && Actor_Clue_Query(kActorMcCoy, kCluePoliceIssueWeapons)
+		) {
 			Actor_Says(kActorMcCoy, 8570, 14);
 		} else {
 			Actor_Face_Actor(kActorMcCoy, kActorSergeantWalls, true);
@@ -94,8 +100,8 @@ bool SceneScriptPS15::ClickedOnItem(int itemId, bool a2) {
 			Actor_Says(kActorSergeantWalls, 160, 14);
 			Actor_Says(kActorMcCoy, 4490, 12);
 			Actor_Says(kActorSergeantWalls, 170, 13);
-			Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, 1, kActorMcCoy);
-			Actor_Clue_Acquire(kActorMcCoy, kCluePoliceIssueWeapons, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kCluePoliceIssueWeapons, true, kActorMcCoy);
 		}
 		return true;
 	}
@@ -104,20 +110,21 @@ bool SceneScriptPS15::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptPS15::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -360.0f, -113.43f, 50.0f, 0, 1, false, 0)) {
-			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -360.0f, -113.43f, 50.0f, 0, true, false, 0)) {
+			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagPS15toPS05);
 			Set_Enter(kSetPS05, kScenePS05);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -183.58f, -113.43f, 91.7f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -183.58f, -113.43f, 91.7f, 0, true, false, 0)) {
 			Actor_Says(kActorMcCoy, 4440, 18);
 			Actor_Says(kActorSergeantWalls, 150, 17);
 			Sound_Play(155, 90, 0, 0, 50);
-			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Set_Enter(kSetPS10_PS11_PS12_PS13, kScenePS10);
 		}
@@ -137,7 +144,7 @@ void SceneScriptPS15::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptPS15::PlayerWalkedIn() {
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -326.93f, -113.43f, 101.42f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -326.93f, -113.43f, 101.42f, 0, false, false, 0);
 	if (!Game_Flag_Query(kFlagPS15Entered)) {
 		Actor_Face_Actor(kActorMcCoy, kActorSergeantWalls, true);
 		Actor_Face_Actor(kActorSergeantWalls, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index e535fec..a347d3e 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -309,7 +309,7 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
 		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorOfficerLeary, 36, true, false)) {
 			Actor_Face_Actor(kActorMcCoy, kActorOfficerLeary, true);
 			Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
-			if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyCrowdInterrogation) {
+			if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyRC01WalkToCrowd) {
 				Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault);
 			}
 			if (Game_Flag_Query(kFlagGotOfficersStatement)) {
@@ -583,7 +583,7 @@ void SceneScriptRC01::interrogateCrowd() {
 			Actor_Says(kActorMcCoy, 4500, 14);
 			I_Sez("MG: We don't want any of that abstract art oozing out onto the street.");
 			Actor_Says(kActorOfficerLeary, 10, 14);
-			Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyCrowdInterrogation);
+			Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyRC01WalkToCrowd);
 		}
 	}
 }
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 4227196..c4bb775 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -123,7 +123,7 @@ bool SceneScriptRC02::ClickedOn3DObject(const char *objectName, bool a2) {
 			Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 			Actor_Says(kActorRunciter, 30, 23);
 			Actor_Says(kActorMcCoy, 4555, 18);
-			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersVideo, 1, kActorRunciter);
+			Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersVideo, true, kActorRunciter);
 			Unclickable_Object("SCRTY CA03");
 			AI_Movement_Track_Unpause(kActorRunciter);
 			return true;
@@ -138,19 +138,21 @@ bool SceneScriptRC02::ClickedOn3DObject(const char *objectName, bool a2) {
 
 void SceneScriptRC02::dialogueWithRunciter() {
 	Dialogue_Menu_Clear_List();
-	DM_Add_To_List_Never_Repeat_Once_Selected(0, 5, 6, 2);
-	DM_Add_To_List_Never_Repeat_Once_Selected(10, 5, 4, 8);
+	DM_Add_To_List_Never_Repeat_Once_Selected(0, 5, 6, 2); // MOTIVES
+	DM_Add_To_List_Never_Repeat_Once_Selected(10, 5, 4, 8); // LUCY
 	if (Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewB1)
 	 || Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewB2)
 	) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(20, 6, 4, 5);
+		DM_Add_To_List_Never_Repeat_Once_Selected(20, 6, 4, 5); // REFERENCE
 	}
-	Dialogue_Menu_Add_DONE_To_List(30);
+	Dialogue_Menu_Add_DONE_To_List(30); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 0:
+	case 0: // MOTIVES
 		Actor_Says(kActorMcCoy, 4580, 13);
 		Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 		Actor_Says(kActorRunciter, 110, 18);
@@ -160,17 +162,18 @@ void SceneScriptRC02::dialogueWithRunciter() {
 		Actor_Says(kActorRunciter, 140, 16);
 		Game_Flag_Set(kFlagRC02TalkedToRunciter);
 		break;
-	case 10:
+
+	case 10: // LUCY
 		Actor_Says(kActorMcCoy, 4585, 13);
 		Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 		if (Game_Flag_Query(kFlagLucyIsReplicant)) {
 			Actor_Says(kActorRunciter, 250, 13);
 			Actor_Says(kActorRunciter, 270, 13);
-			Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewB1, 1, kActorRunciter);
+			Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewB1, true, kActorRunciter);
 		} else {
 			Actor_Says(kActorRunciter, 260, 14);
 			Actor_Says(kActorRunciter, 270, 13);
-			Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewB2, 1, kActorRunciter);
+			Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewB2, true, kActorRunciter);
 		}
 		Actor_Says(kActorMcCoy, 4645, 13);
 		Actor_Says(kActorRunciter, 280, 13);
@@ -184,25 +187,27 @@ void SceneScriptRC02::dialogueWithRunciter() {
 		Scene_Exit_Add_2D_Exit(kRC02ExitRC51, 265, 58, 346, 154, 0);
 		Game_Flag_Set(kFlagRC02LucyDeskAvailable);
 		break;
-	case 20:
+
+	case 20: // REFERENCE
 		Actor_Says(kActorMcCoy, 4590, 19);
 		Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 		Actor_Says(kActorRunciter, 360, 13);
-		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 89, 0, 0, false);
-		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 102, 0, 0, false);
+		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 89, 0, false, false);
+		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 102, 0, false, false);
 		Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
 		Actor_Face_Heading(kActorRunciter, 539, false);
 		Delay(2000);
-		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 89, 0, 0, false);
+		Loop_Actor_Walk_To_Waypoint(kActorRunciter, 89, 0, false, false);
 		Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
-		Loop_Actor_Walk_To_Actor(kActorRunciter, kActorMcCoy, 24, 0, false);
+		Loop_Actor_Walk_To_Actor(kActorRunciter, kActorMcCoy, 24, false, false);
 		Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
 		Item_Pickup_Spin_Effect(964, 357, 228);
 		Actor_Says(kActorRunciter, 1700, 13);
-		Actor_Clue_Acquire(kActorMcCoy, kClueReferenceLetter, 1, kActorRunciter);
+		Actor_Clue_Acquire(kActorMcCoy, kClueReferenceLetter, true, kActorRunciter);
 		break;
-	case 30:
+
+	case 30: // DONE
 		Actor_Says(kActorMcCoy, 4595, 14);
 		break;
 	}
@@ -264,7 +269,7 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) {
 		Actor_Says(kActorMcCoy, 4570, 18);
 		Actor_Says(kActorRunciter, 70, 13);
 		Game_Flag_Set(kFlagRunciterInterviewA);
-		Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewA, 1, kActorRunciter);
+		Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewA, true, kActorRunciter);
 		AI_Movement_Track_Unpause(kActorRunciter);
 		return true;
 	}
@@ -309,7 +314,7 @@ bool SceneScriptRC02::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == kItemShellCasingA || itemId == kItemShellCasingB || itemId == kItemShellCasingC) {
 		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemShellCasingA, 24, 1, false)) {
 			Actor_Face_Item(kActorMcCoy, kItemShellCasingA, true);
-			Actor_Clue_Acquire(kActorMcCoy, kClueShellCasings, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueShellCasings, true, -1);
 			Game_Flag_Set(kFlagShellCasingsTaken);
 			Item_Remove_From_World(kItemShellCasingA);
 			Item_Remove_From_World(kItemShellCasingB);
@@ -366,8 +371,8 @@ void SceneScriptRC02::PlayerWalkedIn() {
 			Actor_Voice_Over(1970, kActorVoiceOver);
 			Actor_Voice_Over(1980, kActorVoiceOver);
 			Actor_Voice_Over(1990, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueLimpingFootprints, 1, -1);
-			Actor_Clue_Acquire(kActorMcCoy, kClueGracefulFootprints, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueLimpingFootprints, true, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGracefulFootprints, true, -1);
 			Game_Flag_Set(kFlagRC02Discovered);
 		}
 		if (Actor_Query_Which_Set_In(kActorRunciter) == kSetRC02_RC51 && Actor_Query_Goal_Number(kActorRunciter) < 300) {
diff --git a/engines/bladerunner/script/scene/rc03.cpp b/engines/bladerunner/script/scene/rc03.cpp
index 9578378..969d8da 100644
--- a/engines/bladerunner/script/scene/rc03.cpp
+++ b/engines/bladerunner/script/scene/rc03.cpp
@@ -24,8 +24,6 @@
 
 namespace BladeRunner {
 
-
-
 void SceneScriptRC03::InitializeScene() {
 	if (Game_Flag_Query(kFlagRC01toRC03)) {
 		Setup_Scene_Information(298.0f, -4.0f, 405.0f, 800);
@@ -78,7 +76,9 @@ void SceneScriptRC03::InitializeScene() {
 	Ambient_Sounds_Add_Sound(193, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(194, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(kFlagHC04toRC03) && Actor_Query_Goal_Number(kActorIzo) != 102) {
+	if (Game_Flag_Query(kFlagHC04toRC03)
+	 && Actor_Query_Goal_Number(kActorIzo) != 102
+	) {
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
 	}
 	Scene_Loop_Set_Default(1);
@@ -138,9 +138,9 @@ bool SceneScriptRC03::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptRC03::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 298.0f, -4.0f, 405.0f, 0, 1, false, 0)) {
-			if (Game_Flag_Query(289)) {
-				Game_Flag_Set(702);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 298.0f, -4.0f, 405.0f, 0, true, false, 0)) {
+			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
+				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Game_Flag_Set(kFlagRC03toRC01);
 			Set_Enter(kSetRC01, kSceneRC01);
@@ -149,9 +149,9 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -469.0f, -4.0f, 279.0f, 0, 1, false, 0)) {
-			if (Game_Flag_Query(289)) {
-				Game_Flag_Set(702);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -469.0f, -4.0f, 279.0f, 0, true, false, 0)) {
+			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
+				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Game_Flag_Set(kFlagRC03toAR02);
 			Game_Flag_Reset(kFlagMcCoyAtRCxx);
@@ -161,12 +161,12 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 147.51f, -4.0f, 166.48f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 147.51f, -4.0f, 166.48f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagRC03toUG01);
 			Game_Flag_Reset(kFlagMcCoyAtRCxx);
 			Game_Flag_Set(kFlagMcCoyAtUGxx);
-			if (Game_Flag_Query(289)) {
-				Game_Flag_Set(702);
+			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
+				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Set_Enter(kSetUG01, kSceneUG01);
 			Actor_Set_Goal_Number(kActorDektora, 100);
@@ -174,12 +174,12 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 3) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -487.0f, 1.0f, 116.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -487.0f, 1.0f, 116.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagRC03toHC04);
 			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Set(479);
-			if (Game_Flag_Query(289)) {
-				Game_Flag_Set(702);
+			Game_Flag_Set(kFlagMcCoyAtHCxx);
+			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
+				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC04);
 			Actor_Set_Goal_Number(kActorDektora, 100);
@@ -187,8 +187,11 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 4) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -22.0f, 1.0f, -63.0f, 0, 1, false, 0)) {
-			if (Global_Variable_Query(kVariableChapter) == 3 || Global_Variable_Query(kVariableChapter) == 5 || Game_Flag_Query(702)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -22.0f, 1.0f, -63.0f, 0, true, false, 0)) {
+			if (Global_Variable_Query(kVariableChapter) == 3
+			 || Global_Variable_Query(kVariableChapter) == 5
+			 || Game_Flag_Query(kFlagRC04Locked)
+			) {
 				Actor_Says(kActorMcCoy, 8522, 14);
 			} else {
 				Game_Flag_Set(kFlagRC03toRC04);
@@ -253,7 +256,7 @@ void SceneScriptRC03::PlayerWalkedIn() {
 				Actor_Set_Goal_Number(kActorSteele, 100);
 			}
 			Actor_Change_Animation_Mode(kActorMcCoy, 20);
-			Loop_Actor_Walk_To_XYZ(kActorIzo, 180.0f, -4.0f, 184.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorIzo, 180.0f, -4.0f, 184.0f, 0, false, false, 0);
 			Actor_Change_Animation_Mode(kActorIzo, 6);
 			if (!Game_Flag_Query(kFlagIzoIsReplicant)) {
 				Actor_Set_Goal_Number(kActorSteele, 100);
@@ -297,7 +300,7 @@ void SceneScriptRC03::PlayerWalkedOut() {
 	if (Actor_Query_Goal_Number(kActorIzo) == 199) {
 		Actor_Set_Goal_Number(kActorIzo, 198);
 	}
-	Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 }
 
diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp
index 1c768c5..d865cec 100644
--- a/engines/bladerunner/script/scene/rc04.cpp
+++ b/engines/bladerunner/script/scene/rc04.cpp
@@ -28,11 +28,11 @@ void SceneScriptRC04::InitializeScene() {
 	Setup_Scene_Information(45.0f, 0.15f, 68.0f, 1018);
 	Game_Flag_Reset(kFlagRC03toRC04);
 	Scene_Exit_Add_2D_Exit(0, 225, 47, 359, 248, 0);
-	if (!Game_Flag_Query(289)) {
+	if (!Game_Flag_Query(kFlagRC04McCoyShotBob)) {
 		Actor_Put_In_Set(kActorBulletBob, kSetRC04);
 		Actor_Set_At_XYZ(kActorBulletBob, -60.0f, -11.0f, 62.0f, 12);
 	}
-	if (Game_Flag_Query(289)) {
+	if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
 		Actor_Change_Animation_Mode(kActorBulletBob, 88);
 	}
 	Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
@@ -59,34 +59,44 @@ bool SceneScriptRC04::ClickedOn3DObject(const char *objectName, bool a2) {
 	return false;
 }
 
-void SceneScriptRC04::sub_401DF4() {
+void SceneScriptRC04::dialogueWithBulletBob() {
 	Dialogue_Menu_Clear_List();
-	if (Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings) && !Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(580, -1, 4, 9);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(580, -1, 4, 9); // WEAPONS
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueShellCasings) && !Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings) && !Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(590, 6, 5, 3);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueShellCasings)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(590, 6, 5, 3); // SHELL CASINGS
 	}
 	if (Actor_Clue_Query(kActorMcCoy, kClueHasanInterview)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(600, -1, 3, 7);
-		DM_Add_To_List_Never_Repeat_Once_Selected(1310, -1, 2, 8);
+		DM_Add_To_List_Never_Repeat_Once_Selected(600, -1, 3, 7); // HASAN
+		DM_Add_To_List_Never_Repeat_Once_Selected(1310, -1, 2, 8); // VOIGT-KAMPFF
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles) && !Actor_Clue_Query(kActorMcCoy, kClueGogglesReplicantIssue)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(610, 4, 5, 6);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueGogglesReplicantIssue)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(610, 4, 5, 6); // GOGGLES
 	}
-	if (!Game_Flag_Query(305)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(1280, 1, 2, 3);
+	if (!Game_Flag_Query(kFlagRC04BobTalkAmmo)) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(1280, 1, 2, 3); // AMMO
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge) && !Actor_Clue_Query(kActorBulletBob, kClueHoldensBadge)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(620, 1, -1, -1);
+	if ( Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge)
+	 && !Actor_Clue_Query(kActorBulletBob, kClueHoldensBadge)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(620, 1, -1, -1); // HOLDEN'S BADGE
 	}
-	Dialogue_Menu_Add_DONE_To_List(630);
+	Dialogue_Menu_Add_DONE_To_List(630); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
 
 	switch (answer) {
-	case 580:
+	case 580: // WEAPONS
 		Actor_Says(kActorMcCoy, 4955, 30);
 		Actor_Says(kActorBulletBob, 210, 37);
 		Actor_Says(kActorBulletBob, 220, 37);
@@ -113,7 +123,7 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 380, 37);
 			Actor_Says(kActorBulletBob, 390, 11);
 			Actor_Says(kActorBulletBob, 400, 37);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy);
 		} else {
 			Actor_Says(kActorBulletBob, 410, 11);
 			Actor_Says(kActorBulletBob, 420, 37);
@@ -123,10 +133,11 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 450, 32);
 			Actor_Says(kActorMcCoy, 5030, 16);
 			Actor_Says(kActorBulletBob, 460, 37);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy);
 		}
 		return;
-	case 590:
+
+	case 590: // SHELL CASINGS
 		Actor_Says(kActorMcCoy, 4960, 13);
 		Actor_Says(kActorBulletBob, 250, 30);
 		Actor_Says(kActorBulletBob, 260, 33);
@@ -151,7 +162,7 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 380, 33);
 			Actor_Says(kActorBulletBob, 390, 37);
 			Actor_Says(kActorBulletBob, 400, 32);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy);
 		} else {
 			Actor_Says(kActorBulletBob, 410, 32);
 			Actor_Says(kActorBulletBob, 420, 30);
@@ -161,10 +172,11 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 450, 37);
 			Actor_Says(kActorMcCoy, 5030, 16);
 			Actor_Says(kActorBulletBob, 460, 30);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy);
 		}
 		break;
-	case 600:
+
+	case 600: // HASAN
 		Actor_Says(kActorMcCoy, 4965, 11);
 		Actor_Says(kActorBulletBob, 470, 11);
 		Actor_Says(kActorMcCoy, 5035, 15);
@@ -179,7 +191,8 @@ void SceneScriptRC04::sub_401DF4() {
 		Actor_Says(kActorBulletBob, 550, 11);
 		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -6);
 		break;
-	case 610:
+
+	case 610: // GOGGLES
 		Actor_Says(kActorMcCoy, 4970, 16);
 		if (Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) < 50) {
 			Actor_Says(kActorBulletBob, 700, 11);
@@ -189,7 +202,7 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 720, 30);
 			Actor_Says(kActorMcCoy, 5080, 11);
 			Actor_Says(kActorBulletBob, 730, 37);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy);
 		} else {
 			Actor_Says(kActorBulletBob, 560, 37);
 			Actor_Says(kActorMcCoy, 5070, 13);
@@ -206,24 +219,48 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 650, 35);
 			Actor_Says(kActorBulletBob, 660, 30);
 			Actor_Says(kActorMcCoy, 5060, 13);
-			Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, 1, kActorMcCoy);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorMcCoy);
+		}
+		break;
+
+	case 620: // HOLDEN'S BADGE
+		Actor_Says(kActorMcCoy, 4985, 11);
+		Actor_Says(kActorBulletBob, 850, 35);
+		Actor_Says(kActorMcCoy, 5105, 13);
+		Actor_Says(kActorMcCoy, 5110, 11);
+		Actor_Says(kActorBulletBob, 860, 30);
+		Actor_Says(kActorMcCoy, 5115, 16);
+		Actor_Says(kActorBulletBob, 870, 31);
+		Actor_Says(kActorMcCoy, 5120, 15);
+		Actor_Says(kActorBulletBob, 880, 34);
+		Actor_Clue_Acquire(kActorBulletBob, kClueHoldensBadge, true, kActorMcCoy);
+		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, 8);
+		if (Query_Difficulty_Level() != 0) {
+			Global_Variable_Increment(kVariableChinyen, 60);
 		}
 		break;
-	case 1280:
+
+	case 630: // DONE
+		Actor_Says(kActorMcCoy, 1315, 12);
+		break;
+
+	case 1280: // AMMO
 		Actor_Says(kActorMcCoy, 9040, 16);
-		if (!Game_Flag_Query(305)) {
+		if (!Game_Flag_Query(kFlagRC04BobTalkAmmo)) {
 			Actor_Says(kActorBulletBob, 2080, 30);
 			Actor_Says(kActorBulletBob, 2090, 37);
 			Actor_Says(kActorMcCoy, 9045, 14);
 			Actor_Says(kActorBulletBob, 2100, 32);
 			Actor_Says(kActorBulletBob, 2110, 37);
-			Game_Flag_Set(305);
+			Game_Flag_Set(kFlagRC04BobTalkAmmo);
 		}
 		Actor_Says(kActorBulletBob, 2120, 31);
-		if (Global_Variable_Query(2) > 40 || Query_Difficulty_Level() == 0) {
+		if (Global_Variable_Query(kVariableChinyen) > 40
+		 || Query_Difficulty_Level() == 0
+		) {
 			Actor_Says(kActorMcCoy, 4940, 13);
 			if (Query_Difficulty_Level() != 0) {
-				Global_Variable_Decrement(2, 40);
+				Global_Variable_Decrement(kVariableChinyen, 40);
 			}
 			Item_Pickup_Spin_Effect(995, 405, 192);
 			Give_McCoy_Ammo(1, 24);
@@ -232,7 +269,8 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -2);
 		}
 		break;
-	case 1310:
+
+	case 1310: // VOIGT-KAMPFF
 		Actor_Says(kActorMcCoy, 4980, 11);
 		if (Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 49) {
 			Actor_Says(kActorBulletBob, 740, 37);
@@ -262,25 +300,6 @@ void SceneScriptRC04::sub_401DF4() {
 			Actor_Says(kActorBulletBob, 840, 34);
 		}
 		break;
-	case 620:
-		Actor_Says(kActorMcCoy, 4985, 11);
-		Actor_Says(kActorBulletBob, 850, 35);
-		Actor_Says(kActorMcCoy, 5105, 13);
-		Actor_Says(kActorMcCoy, 5110, 11);
-		Actor_Says(kActorBulletBob, 860, 30);
-		Actor_Says(kActorMcCoy, 5115, 16);
-		Actor_Says(kActorBulletBob, 870, 31);
-		Actor_Says(kActorMcCoy, 5120, 15);
-		Actor_Says(kActorBulletBob, 880, 34);
-		Actor_Clue_Acquire(kActorBulletBob, kClueHoldensBadge, 1, kActorMcCoy);
-		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, 8);
-		if (Query_Difficulty_Level() != 0) {
-			Global_Variable_Increment(2, 60);
-		}
-		break;
-	case 630:
-		Actor_Says(kActorMcCoy, 1315, 12);
-		break;
 	}
 }
 
@@ -288,78 +307,100 @@ bool SceneScriptRC04::ClickedOnActor(int actorId) {
 	if (Player_Query_Combat_Mode()) {
 		return false;
 	}
-	if (actorId == 14 && Global_Variable_Query(kVariableChapter) == 2 && !Game_Flag_Query(289)) {
-		Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 104, 0, 0, false);
-		Actor_Face_Actor(kActorMcCoy, kActorBulletBob, true);
-		if (Game_Flag_Query(287) && !Game_Flag_Query(292) && Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 45) {
-			Actor_Says(kActorBulletBob, 30, 30);
-			Actor_Says(kActorMcCoy, 4875, 13);
-			Actor_Says(kActorBulletBob, 80, 31);
-			Actor_Says(kActorMcCoy, 4900, 15);
-			Actor_Says(kActorBulletBob, 90, 33);
-			Actor_Says(kActorBulletBob, 100, 34);
-			Actor_Says(kActorMcCoy, 4905, 15);
-			Game_Flag_Set(292);
-		} else if (Game_Flag_Query(287) && !Game_Flag_Query(290) && Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) < 45) {
-			Actor_Says(kActorBulletBob, 40, 30);
-			Actor_Says(kActorMcCoy, 4880, 13);
-			Actor_Says(kActorBulletBob, 50, 35);
-			Actor_Says(kActorMcCoy, 4875, 16);
-			Actor_Says(kActorBulletBob, 60, 36);
-			Actor_Says(kActorMcCoy, 4890, 13);
-			Actor_Says(kActorBulletBob, 70, 33);
-			Actor_Says(kActorMcCoy, 4895, 16);
-			Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -5);
-			Game_Flag_Set(290);
-		} else if (Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 51 && !Game_Flag_Query(717)) {
-			Actor_Says(kActorBulletBob, 1870, 30);
-			Actor_Says(kActorBulletBob, 1880, 30);
-			Actor_Says(kActorMcCoy, 8960, 13);
-			Actor_Says(kActorBulletBob, 1890, 36);
-			Actor_Says(kActorBulletBob, 1900, 35);
-			Actor_Says(kActorMcCoy, 8965, 16);
-			Actor_Says(kActorBulletBob, 1920, 36);
-			Actor_Says(kActorBulletBob, 1930, 33);
-			Actor_Says(kActorBulletBob, 1940, 36);
-			Actor_Says(kActorBulletBob, 1950, 30);
-			Actor_Says(kActorMcCoy, 8970, 13);
-			Actor_Says(kActorBulletBob, 1960, 33);
-			Actor_Says(kActorBulletBob, 1970, 30);
-			Actor_Says(kActorBulletBob, 1980, 36);
-			Delay(1000);
-			Actor_Says(kActorBulletBob, 2010, 35);
-			if (Global_Variable_Query(2) > 50 || Query_Difficulty_Level() == 0) {
-				Actor_Says(kActorMcCoy, 8975, 16);
-				if (Query_Difficulty_Level() != 0) {
-					Global_Variable_Decrement(2, 50);
+
+	if (actorId == kActorBulletBob) {
+		if ( Global_Variable_Query(kVariableChapter) == 2
+		 && !Game_Flag_Query(kFlagRC04McCoyShotBob)
+		) {
+			Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 104, 0, false, false);
+			Actor_Face_Actor(kActorMcCoy, kActorBulletBob, true);
+			if ( Game_Flag_Query(kFlagRC04Entered)
+			 && !Game_Flag_Query(kFlagRC04BobTalk2)
+			 &&  Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 45
+			) {
+				Actor_Says(kActorBulletBob, 30, 30);
+				Actor_Says(kActorMcCoy, 4875, 13);
+				Actor_Says(kActorBulletBob, 80, 31);
+				Actor_Says(kActorMcCoy, 4900, 15);
+				Actor_Says(kActorBulletBob, 90, 33);
+				Actor_Says(kActorBulletBob, 100, 34);
+				Actor_Says(kActorMcCoy, 4905, 15);
+				Game_Flag_Set(kFlagRC04BobTalk2);
+			} else if ( Game_Flag_Query(kFlagRC04Entered)
+					&& !Game_Flag_Query(kFlagRC04BobTalk1)
+					&& Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) < 45
+			) {
+				Actor_Says(kActorBulletBob, 40, 30);
+				Actor_Says(kActorMcCoy, 4880, 13);
+				Actor_Says(kActorBulletBob, 50, 35);
+				Actor_Says(kActorMcCoy, 4875, 16);
+				Actor_Says(kActorBulletBob, 60, 36);
+				Actor_Says(kActorMcCoy, 4890, 13);
+				Actor_Says(kActorBulletBob, 70, 33);
+				Actor_Says(kActorMcCoy, 4895, 16);
+				Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -5);
+				Game_Flag_Set(kFlagRC04BobTalk1);
+			} else if ( Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 51
+					&& !Game_Flag_Query(kFlagRC04BobTalk3)
+			) {
+				Actor_Says(kActorBulletBob, 1870, 30);
+				Actor_Says(kActorBulletBob, 1880, 30);
+				Actor_Says(kActorMcCoy, 8960, 13);
+				Actor_Says(kActorBulletBob, 1890, 36);
+				Actor_Says(kActorBulletBob, 1900, 35);
+				Actor_Says(kActorMcCoy, 8965, 16);
+				Actor_Says(kActorBulletBob, 1920, 36);
+				Actor_Says(kActorBulletBob, 1930, 33);
+				Actor_Says(kActorBulletBob, 1940, 36);
+				Actor_Says(kActorBulletBob, 1950, 30);
+				Actor_Says(kActorMcCoy, 8970, 13);
+				Actor_Says(kActorBulletBob, 1960, 33);
+				Actor_Says(kActorBulletBob, 1970, 30);
+				Actor_Says(kActorBulletBob, 1980, 36);
+				Delay(1000);
+				Actor_Says(kActorBulletBob, 2010, 35);
+				if (Global_Variable_Query(kVariableChinyen) > 50
+				 || Query_Difficulty_Level() == 0
+				) {
+					Actor_Says(kActorMcCoy, 8975, 16);
+					if (Query_Difficulty_Level() != 0) {
+						Global_Variable_Decrement(kVariableChinyen, 50);
+					}
+					Delay(3000);
+					Item_Pickup_Spin_Effect(941, 405, 192);
+					Actor_Says(kActorBulletBob, 2030, 30);
+					Game_Flag_Set(kFlagKIAPrivacyAddon);
+				} else {
+					Actor_Says(kActorMcCoy, 8980, 16);
+					Actor_Says(kActorBulletBob, 2040, 30);
+					Actor_Says(kActorMcCoy, 8985, 15);
+					Actor_Says(kActorBulletBob, 2050, 33);
 				}
-				Delay(3000);
-				Item_Pickup_Spin_Effect(941, 405, 192);
-				Actor_Says(kActorBulletBob, 2030, 30);
-				Game_Flag_Set(kFlagKIAPrivacyAddon);
+				Game_Flag_Set(kFlagRC04BobTalk3);
+			} else if ( Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings)
+			        ||  Actor_Clue_Query(kActorMcCoy, kClueShellCasings)
+			        ||  Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles)
+			        ||  Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge)
+			        ||  Actor_Clue_Query(kActorMcCoy, kClueHasanInterview)
+			        || !Game_Flag_Query(kFlagRC04BobTalkAmmo)
+			) {
+				dialogueWithBulletBob();
 			} else {
-				Actor_Says(kActorMcCoy, 8980, 16);
-				Actor_Says(kActorBulletBob, 2040, 30);
-				Actor_Says(kActorMcCoy, 8985, 15);
-				Actor_Says(kActorBulletBob, 2050, 33);
+				Actor_Says(kActorBulletBob, 1820, 30);
 			}
-			Game_Flag_Set(717);
-		} else if (Actor_Clue_Query(kActorMcCoy, kClueLabShellCasings) || Actor_Clue_Query(kActorMcCoy, kClueShellCasings) || Actor_Clue_Query(kActorMcCoy, kClueRadiationGoggles) || Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge) || Actor_Clue_Query(kActorMcCoy, kClueHasanInterview) || !Game_Flag_Query(305)) {
-			sub_401DF4();
-		} else {
-			Actor_Says(kActorBulletBob, 1820, 30);
+			return true;
 		}
-		return true;
-	}
-	if (actorId == 14 && Game_Flag_Query(289)) {
-		Actor_Face_Actor(kActorMcCoy, kActorBulletBob, true);
-		if (Actor_Clue_Query(kActorMcCoy, kClueVKBobGorskyReplicant)) {
-			Actor_Says(kActorMcCoy, 8590, -1);
-		} else {
-			Actor_Voice_Over(2100, kActorVoiceOver);
-			Actor_Voice_Over(2110, kActorVoiceOver);
+
+		if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
+			Actor_Face_Actor(kActorMcCoy, kActorBulletBob, true);
+			if (Actor_Clue_Query(kActorMcCoy, kClueVKBobGorskyReplicant)) {
+				Actor_Says(kActorMcCoy, 8590, -1);
+			} else {
+				Actor_Voice_Over(2100, kActorVoiceOver);
+				Actor_Voice_Over(2110, kActorVoiceOver);
+			}
+			return true;
 		}
-		return true;
 	}
 	return false;
 }
@@ -390,28 +431,39 @@ void SceneScriptRC04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptRC04::PlayerWalkedIn() {
-	Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 103, 0, 0, false);
-	if (Global_Variable_Query(kVariableChapter) != 2 || Game_Flag_Query(287) || Player_Query_Combat_Mode()) {
-		if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(289) && !Game_Flag_Query(306)) {
-			Actor_Says(kActorDispatcher, 40, 3);
-			Actor_Says(kActorBulletBob, 890, 37);
-			Actor_Set_Goal_Number(kActorBulletBob, 2);
-		}
-		Game_Flag_Set(287);
-	} else {
+	Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 103, 0, false, false);
+
+	if ( Global_Variable_Query(kVariableChapter) == 2
+	 && !Game_Flag_Query(kFlagRC04Entered)
+	 && !Player_Query_Combat_Mode()
+	) {
 		Actor_Says(kActorBulletBob, 0, 31);
-		Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 104, 0, 0, false);
+		Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 104, 0, false, false);
 		Actor_Face_Actor(kActorMcCoy, kActorBulletBob, true);
 		Actor_Says(kActorMcCoy, 4865, 13);
 		Actor_Says(kActorBulletBob, 10, 32);
 		Actor_Says(kActorMcCoy, 4870, 16);
 		Actor_Says(kActorBulletBob, 20, 31);
-		Game_Flag_Set(287);
+		Game_Flag_Set(kFlagRC04Entered);
+		return; //true;
+	}
+
+	if ( Global_Variable_Query(kVariableChapter) == 4
+	 && !Game_Flag_Query(kFlagRC04McCoyShotBob)
+	 && !Game_Flag_Query(kFlagNotUsed306)
+	) {
+		Actor_Says(kActorDispatcher, 40, 3);
+		Actor_Says(kActorBulletBob, 890, 37);
+		Actor_Set_Goal_Number(kActorBulletBob, 2);
 	}
+
+	Game_Flag_Set(kFlagRC04Entered);
+
+	//return false;
 }
 
 void SceneScriptRC04::PlayerWalkedOut() {
-	Game_Flag_Reset(303);
+	Game_Flag_Reset(kFlagRC04McCoyWarned);
 }
 
 void SceneScriptRC04::DialogueQueueFlushed(int a1) {
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index 8019ea0..47b243d 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -53,7 +53,7 @@ void SceneScriptRC51::SceneLoaded() {
 	if (!Game_Flag_Query(kFlagCandyTaken)) {
 		Item_Add_To_World(kItemCandy, 933, kSetRC02_RC51, 67.28f, -1193.38f, 108011.27f, 0, 6, 6, false, true, false, true);
 	}
-	if (!Game_Flag_Query(kFlagDogTaken)) {
+	if (!Game_Flag_Query(kFlagToyDogTaken)) {
 		Item_Add_To_World(kItemToyDog, 971, kSetRC02_RC51, -69.65f, -1238.89f, 107995.24f, 256, 18, 18, false, true, false, true);
 	}
 }
@@ -76,42 +76,52 @@ bool SceneScriptRC51::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == kItemChopstickWrapper && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 17.97f, -1238.89f, 108053.5f, 0, false, false, 0)) {
-		Actor_Face_Item(kActorMcCoy, kItemChopstickWrapper, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueChopstickWrapper, 1, -1);
-		Item_Remove_From_World(kItemChopstickWrapper);
-		Item_Pickup_Spin_Effect(937, 437, 407);
-		Actor_Voice_Over(2010, kActorVoiceOver);
-		Game_Flag_Set(kFlagChopstickWrapperTaken);
-		return true;
+	if (itemId == kItemChopstickWrapper) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 17.97f, -1238.89f, 108053.5f, 0, false, false, 0)) {
+			Actor_Face_Item(kActorMcCoy, kItemChopstickWrapper, true);
+			Actor_Clue_Acquire(kActorMcCoy, kClueChopstickWrapper, true, -1);
+			Item_Remove_From_World(kItemChopstickWrapper);
+			Item_Pickup_Spin_Effect(937, 437, 407);
+			Actor_Voice_Over(2010, kActorVoiceOver);
+			Game_Flag_Set(kFlagChopstickWrapperTaken);
+			return true;
+		}
 	}
-	if (itemId == kItemCandy && !Loop_Actor_Walk_To_Item(kActorMcCoy, kItemCandy, 36, true, false)) {
-		Actor_Face_Item(kActorMcCoy, kItemCandy, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueCandy, 1, -1);
-		Item_Remove_From_World(kItemCandy);
-		Item_Pickup_Spin_Effect(933, 445, 230);
-		Actor_Says(kActorMcCoy, 8735, 3);
-		Actor_Says(kActorMcCoy, 8529, 3);
-		Game_Flag_Set(kFlagCandyTaken);
-		return true;
+
+	if (itemId == kItemCandy) {
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemCandy, 36, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemCandy, true);
+			Actor_Clue_Acquire(kActorMcCoy, kClueCandy, true, -1);
+			Item_Remove_From_World(kItemCandy);
+			Item_Pickup_Spin_Effect(933, 445, 230);
+			Actor_Says(kActorMcCoy, 8735, 3);
+			Actor_Says(kActorMcCoy, 8529, 3);
+			Game_Flag_Set(kFlagCandyTaken);
+			return true;
+		}
 	}
-	if (itemId == kItemToyDog && !Loop_Actor_Walk_To_Item(kActorMcCoy, kItemToyDog, 36, true, false)) {
-		Actor_Face_Item(kActorMcCoy, kItemToyDog, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueToyDog, 1, -1);
-		Item_Remove_From_World(kItemToyDog);
-		Item_Pickup_Spin_Effect(971, 55, 376);
-		Actor_Says(kActorMcCoy, 8525, 3);
-		Actor_Says(kActorMcCoy, 8740, 3);
-		Game_Flag_Set(kFlagDogTaken);
-		return true;
+
+	if (itemId == kItemToyDog) {
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemToyDog, 36, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemToyDog, true);
+			Actor_Clue_Acquire(kActorMcCoy, kClueToyDog, true, -1);
+			Item_Remove_From_World(kItemToyDog);
+			Item_Pickup_Spin_Effect(971, 55, 376);
+			Actor_Says(kActorMcCoy, 8525, 3);
+			Actor_Says(kActorMcCoy, 8740, 3);
+			Game_Flag_Set(kFlagToyDogTaken);
+			return true;
+		}
 	}
 	return false;
 }
 
 bool SceneScriptRC51::ClickedOnExit(int exitId) {
-	if (exitId == kRC51ExitRC02 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, -8.87f, -1238.89f, 108173.27f, 0, true, false, 0)) {
-		Set_Enter(kSetRC02_RC51, kSceneRC02);
-		return true;
+	if (exitId == kRC51ExitRC02) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -8.87f, -1238.89f, 108173.27f, 0, true, false, 0)) {
+			Set_Enter(kSetRC02_RC51, kSceneRC02);
+			return true;
+		}
 	}
 	return false;
 }
diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp
index 04142e8..2bb548c 100644
--- a/engines/bladerunner/script/scene/tb02.cpp
+++ b/engines/bladerunner/script/scene/tb02.cpp
@@ -32,7 +32,7 @@ void SceneScriptTB02::InitializeScene() {
 	} else if (Game_Flag_Query(kFlagTB07toTB02)) {
 		Setup_Scene_Information(-32.0f, 0.0f, 1578.0f, 639);
 	} else {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Outtake_Play(kOuttakeTyrellBuildingFly, false, -1);
 		Setup_Scene_Information(-304.0f, -81.46f, 1434.0f, 250);
@@ -63,7 +63,9 @@ void SceneScriptTB02::InitializeScene() {
 		Ambient_Sounds_Add_Sound(194, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 		Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	}
-	if (Game_Flag_Query(kFlagSpinnerAtTB02) && Global_Variable_Query(kVariableChapter) < 4) {
+	if (Game_Flag_Query(kFlagSpinnerAtTB02)
+	 && Global_Variable_Query(kVariableChapter) < 4
+	) {
 		Scene_Exit_Add_2D_Exit(2, 67, 0, 233, 362, 3);
 	}
 	if (Game_Flag_Query(kFlagTB03toTB02)) {
@@ -96,12 +98,14 @@ bool SceneScriptTB02::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptTB02::ClickedOnActor(int actorId) {
-	if (actorId == 17) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.35f, 0.15f, 1564.2f, 0, 1, false, 0)) {
+	if (actorId == kActorTyrellGuard) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.35f, 0.15f, 1564.2f, 0, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorTyrellGuard, true);
-			int v1 = Global_Variable_Query(kVariableChapter);
-			if (v1 == 2) {
-				if (Game_Flag_Query(450) && !Game_Flag_Query(451)) {
+			int chapter = Global_Variable_Query(kVariableChapter);
+			if (chapter == 2) {
+				if ( Game_Flag_Query(kFlagTB02ElevatorToTB05)
+				 && !Game_Flag_Query(kFlagTB05Entered)
+				) {
 					Actor_Says(kActorMcCoy, 5150, 18);
 					Actor_Says(kActorTyrellGuard, 60, 12);
 					Actor_Says(kActorTyrellGuard, 70, 13);
@@ -109,15 +113,19 @@ bool SceneScriptTB02::ClickedOnActor(int actorId) {
 					Actor_Modify_Friendliness_To_Other(kActorTyrellGuard, kActorMcCoy, -1);
 					return true;
 				}
-				if (!Game_Flag_Query(450) && !Game_Flag_Query(451)) {
-					Game_Flag_Set(450);
+
+				if (!Game_Flag_Query(kFlagTB02ElevatorToTB05)
+				 && !Game_Flag_Query(kFlagTB05Entered)
+				) {
+					Game_Flag_Set(kFlagTB02ElevatorToTB05);
 					Actor_Says(kActorMcCoy, 5160, 18);
 					Actor_Says(kActorTyrellGuard, 80, 14);
 					Scene_Exit_Add_2D_Exit(1, 430, 235, 487, 396, 0);
 					return true;
 				}
-				if (Game_Flag_Query(451)) {
-					sub_402644();
+
+				if (Game_Flag_Query(kFlagTB05Entered)) {
+					dialogueWithTyrellGuard();
 				} else {
 					Actor_Face_Actor(kActorTyrellGuard, kActorMcCoy, true);
 					Actor_Says(kActorMcCoy, 5150, 18);
@@ -129,7 +137,8 @@ bool SceneScriptTB02::ClickedOnActor(int actorId) {
 				}
 				return true;
 			}
-			if (v1 == 3) {
+
+			if (chapter == 3) {
 				Actor_Says(kActorMcCoy, 5235, 18);
 				Actor_Says(kActorTyrellGuard, 280, 13);
 				Actor_Says(kActorTyrellGuard, 290, 12);
@@ -137,7 +146,8 @@ bool SceneScriptTB02::ClickedOnActor(int actorId) {
 				Actor_Says(kActorTyrellGuard, 300, 12);
 				return false;
 			}
-			if (v1 == 4) {
+
+			if (chapter == 4) {
 				if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
 					Actor_Set_Goal_Number(kActorTyrellGuard, 301);
 				}
@@ -157,7 +167,7 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagTB02toTB03);
-			Game_Flag_Reset(450);
+			Game_Flag_Reset(kFlagTB02ElevatorToTB05);
 			Set_Enter(kSetTB02_TB03, kSceneTB03);
 			Async_Actor_Walk_To_XYZ(kActorMcCoy, -152.0f, 0.0f, 1890.0f, 0, false);
 		}
@@ -168,7 +178,7 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			if (Global_Variable_Query(kVariableChapter) < 4) {
-				Game_Flag_Set(451);
+				Game_Flag_Set(kFlagTB05Entered);
 				Game_Flag_Set(kFlagTB02toTB05);
 				Set_Enter(kSetTB05, kSceneTB05);
 			} else {
@@ -180,7 +190,7 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -192.0f, 0.0f, 1430.0f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 800, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, kAnimationModeIdle);
 			if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
 				Actor_Set_Goal_Number(kActorTyrellGuard, 301);
 			} else {
@@ -191,7 +201,7 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagMcCoyAtBBxx);
 				Game_Flag_Reset(kFlagMcCoyAtHFxx);
 				Game_Flag_Reset(kFlagMcCoyAtTBxx);
-				Game_Flag_Reset(450);
+				Game_Flag_Reset(kFlagTB02ElevatorToTB05);
 				switch (Spinner_Interface_Choose_Dest(-1, false)) {
 				case kSpinnerDestinationPoliceStation:
 					Game_Flag_Set(kFlagMcCoyAtPSxx);
@@ -290,8 +300,8 @@ void SceneScriptTB02::PlayerWalkedIn() {
 		}
 		Music_Play(1, 50, 0, 2, -1, 0, 0);
 	} else {
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, 0);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 0.79f, 1470.0f, 0, 0, false, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 9, true, kAnimationModeIdle);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 0.79f, 1470.0f, 0, false, false, 0);
 	}
 	int chapter = Global_Variable_Query(kVariableChapter);
 	if (chapter > 4) {
@@ -299,7 +309,7 @@ void SceneScriptTB02::PlayerWalkedIn() {
 		return;
 	}
 	if (chapter == 2) {
-		if (!Game_Flag_Query(453)) {
+		if (!Game_Flag_Query(kFlagTB02GuardTalk1)) {
 			Player_Loses_Control();
 			Actor_Says(kActorMcCoy, 5125, 18);
 			Actor_Says(kActorTyrellGuard, 0, 50);
@@ -310,45 +320,55 @@ void SceneScriptTB02::PlayerWalkedIn() {
 			Actor_Says(kActorMcCoy, 5140, 17);
 			Actor_Says(kActorTyrellGuard, 30, 14);
 			Actor_Says(kActorTyrellGuard, 40, 13);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 0.0f, 1586.0f, 12, 0, false, 0);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -112.0f, 0.0f, 1586.0f, 12, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 0.0f, 1586.0f, 12, false, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -112.0f, 0.0f, 1586.0f, 12, false, false, 0);
 			Actor_Face_Actor(kActorMcCoy, kActorTyrellGuard, true);
 			Actor_Face_Actor(kActorTyrellGuard, kActorMcCoy, true);
 			Actor_Says(kActorMcCoy, 5145, 13);
 			Actor_Says(kActorTyrellGuard, 50, 15);
 			Actor_Face_Heading(kActorTyrellGuard, 788, false);
-			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSecurity, 1, -1);
-			Game_Flag_Set(453);
-			Game_Flag_Set(450);
+			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSecurity, true, -1);
+			Game_Flag_Set(kFlagTB02GuardTalk1);
+			Game_Flag_Set(kFlagTB02ElevatorToTB05);
 			Player_Gains_Control();
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -138.17f, 0.15f, 1578.32f, 0, 1, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -138.17f, 0.15f, 1578.32f, 0, true, false, 0);
 		}
-		if (Game_Flag_Query(450)) {
+
+		if (Game_Flag_Query(kFlagTB02ElevatorToTB05)) {
 			Scene_Exit_Add_2D_Exit(1, 430, 235, 487, 396, 0);
 		}
-		if (Game_Flag_Query(451) && !Game_Flag_Query(450)) {
+
+		if ( Game_Flag_Query(kFlagTB05Entered)
+		 && !Game_Flag_Query(kFlagTB02ElevatorToTB05)
+		) {
 			Actor_Says(kActorTyrellGuard, 90, 18);
-			Game_Flag_Set(450);
+			Game_Flag_Set(kFlagTB02ElevatorToTB05);
 			Scene_Exit_Add_2D_Exit(1, 430, 235, 487, 396, 0);
 		}
-		if (Game_Flag_Query(451) && !Game_Flag_Query(456)) {
-			Loop_Actor_Walk_To_Actor(kActorSteele, kActorMcCoy, 36, 1, false);
+
+		if ( Game_Flag_Query(kFlagTB05Entered)
+		 && !Game_Flag_Query(kFlagTB02SteeleTalk)
+		) {
+			Loop_Actor_Walk_To_Actor(kActorSteele, kActorMcCoy, 36, true, false);
 			Actor_Says(kActorSteele, 2220, 14);
 			Actor_Says(kActorMcCoy, 5245, 13);
 			Actor_Says(kActorSteele, 2230, 12);
 			Actor_Says(kActorSteele, 2240, 13);
-			sub_402B50();
+			dialogueWithSteele();
 			//return true;
 		}
 		//return false;
 		return;
 	}
-	if (chapter == 3 && !Game_Flag_Query(455)) {
+
+	if ( chapter == 3
+	 && !Game_Flag_Query(kFlagTB02GuardTalk2)
+	) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -131.28f, 0.79f, 1448.25f, 12, 1, false, 0);
 		Actor_Says(kActorTyrellGuard, 260, 15);
 		Actor_Says(kActorMcCoy, 5225, 16);
 		Actor_Says(kActorTyrellGuard, 270, 14);
-		Game_Flag_Set(455);
+		Game_Flag_Set(kFlagTB02GuardTalk2);
 		Actor_Modify_Friendliness_To_Other(kActorTyrellGuard, kActorMcCoy, -1);
 	}
 	//return false;
@@ -362,53 +382,37 @@ void SceneScriptTB02::PlayerWalkedOut() {
 void SceneScriptTB02::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptTB02::sub_402644() {
+void SceneScriptTB02::dialogueWithTyrellGuard() {
 	Dialogue_Menu_Clear_List();
-	DM_Add_To_List_Never_Repeat_Once_Selected(700, 4, 5, 6);
+	DM_Add_To_List_Never_Repeat_Once_Selected(700, 4, 5, 6); // VICTIM
+
 	if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(710, 5, 5, 4);
+		DM_Add_To_List_Never_Repeat_Once_Selected(710, 5, 5, 4); // EARRING
 	}
-	if (Actor_Clue_Query(kActorMcCoy, kClueVictimInformation) || Actor_Clue_Query(kActorMcCoy, kClueAttemptedFileAccess)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(720, 3, 5, 5);
+
+	if (Actor_Clue_Query(kActorMcCoy, kClueVictimInformation)
+	 || Actor_Clue_Query(kActorMcCoy, kClueAttemptedFileAccess)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(720, 3, 5, 5); // TYRELL
 	}
+
 	if (Actor_Clue_Query(kActorMcCoy, kClueAttemptedFileAccess)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(730, 3, 4, 8);
+		DM_Add_To_List_Never_Repeat_Once_Selected(730, 3, 4, 8); // SECURITY
 	}
-	Dialogue_Menu_Add_DONE_To_List(100);
+
+	Dialogue_Menu_Add_DONE_To_List(100); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 100:
+	case 100: // DONE
 		Actor_Says(kActorMcCoy, 5145, 13);
 		Actor_Says(kActorTyrellGuard, 50, 15);
 		break;
-	case 730:
-		Actor_Says(kActorMcCoy, 5180, 16);
-		Actor_Says(kActorTyrellGuard, 240, 12);
-		Actor_Says(kActorMcCoy, 5215, 18);
-		Actor_Says(kActorTyrellGuard, 250, 13);
-		Actor_Says(kActorMcCoy, 5220, 16);
-		break;
-	case 720:
-		Actor_Says(kActorMcCoy, 5175, 12);
-		Actor_Says(kActorTyrellGuard, 210, 14);
-		Actor_Says(kActorMcCoy, 5200, 13);
-		Actor_Says(kActorTyrellGuard, 220, 13);
-		Actor_Says(kActorMcCoy, 5205, 15);
-		Actor_Says(kActorTyrellGuard, 230, 12);
-		Actor_Says(kActorMcCoy, 5210, 12);
-		break;
-	case 710:
-		Actor_Says(kActorMcCoy, 5170, 12);
-		Actor_Says(kActorTyrellGuard, 180, 12);
-		Actor_Says(kActorTyrellGuard, 190, 14);
-		if (Game_Flag_Query(102)) {
-			Actor_Says(kActorMcCoy, 5195, 13);
-			Actor_Says(kActorTyrellGuard, 200, 13);
-		}
-		break;
-	case 700:
+
+	case 700: // VICTIM
 		Actor_Says(kActorMcCoy, 5165, 11);
 		Actor_Says(kActorTyrellGuard, 100, 13);
 		Actor_Says(kActorTyrellGuard, 110, 12);
@@ -419,21 +423,57 @@ void SceneScriptTB02::sub_402644() {
 		Actor_Says(kActorTyrellGuard, 140, 13);
 		Actor_Says(kActorTyrellGuard, 150, 14);
 		Actor_Says(kActorTyrellGuard, 170, 12);
-		Actor_Clue_Acquire(kActorMcCoy, kClueVictimInformation, 1, kActorTyrellGuard);
+		Actor_Clue_Acquire(kActorMcCoy, kClueVictimInformation, true, kActorTyrellGuard);
+		break;
+
+	case 710: // EARRING
+		Actor_Says(kActorMcCoy, 5170, 12);
+		Actor_Says(kActorTyrellGuard, 180, 12);
+		Actor_Says(kActorTyrellGuard, 190, 14);
+		if (Game_Flag_Query(kFlagTB06Visited)) {
+			Actor_Says(kActorMcCoy, 5195, 13);
+			Actor_Says(kActorTyrellGuard, 200, 13);
+		}
+		break;
+
+	case 720: // TYRELL
+		Actor_Says(kActorMcCoy, 5175, 12);
+		Actor_Says(kActorTyrellGuard, 210, 14);
+		Actor_Says(kActorMcCoy, 5200, 13);
+		Actor_Says(kActorTyrellGuard, 220, 13);
+		Actor_Says(kActorMcCoy, 5205, 15);
+		Actor_Says(kActorTyrellGuard, 230, 12);
+		Actor_Says(kActorMcCoy, 5210, 12);
+		break;
+
+	case 730: // SECURITY
+		Actor_Says(kActorMcCoy, 5180, 16);
+		Actor_Says(kActorTyrellGuard, 240, 12);
+		Actor_Says(kActorMcCoy, 5215, 18);
+		Actor_Says(kActorTyrellGuard, 250, 13);
+		Actor_Says(kActorMcCoy, 5220, 16);
 		break;
 	}
 }
 
-void SceneScriptTB02::sub_402B50() {
+void SceneScriptTB02::dialogueWithSteele() {
 	Dialogue_Menu_Clear_List();
-	DM_Add_To_List_Never_Repeat_Once_Selected(740, 4, 5, 6);
-	DM_Add_To_List_Never_Repeat_Once_Selected(750, 3, 5, 5);
-	Dialogue_Menu_Add_DONE_To_List(100);
+	DM_Add_To_List_Never_Repeat_Once_Selected(740, 4, 5, 6); // HER CASE
+	DM_Add_To_List_Never_Repeat_Once_Selected(750, 3, 5, 5); // MURDER
+	Dialogue_Menu_Add_DONE_To_List(100); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 740:
+	case 100: // DONE
+		Actor_Says(kActorSteele, 2350, 13);
+		Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, -5);
+		Game_Flag_Set(kFlagTB02SteeleTalk);
+		break;
+
+	case 740: // HER CASE
 		Actor_Says(kActorMcCoy, 5250, 15);
 		if (Game_Flag_Query(kFlagSadikIsReplicant)) {
 			Actor_Says(kActorSteele, 2250, 12);
@@ -443,9 +483,9 @@ void SceneScriptTB02::sub_402B50() {
 			Actor_Says(kActorSteele, 2280, 13);
 			Actor_Says(kActorMcCoy, 5270, 16);
 			Actor_Says(kActorSteele, 2290, 14);
-			Actor_Clue_Acquire(kActorMcCoy, kClueCrystalsCase, 1, kActorSteele);
+			Actor_Clue_Acquire(kActorMcCoy, kClueCrystalsCase, true, kActorSteele);
 			Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 1);
-			Game_Flag_Set(456);
+			Game_Flag_Set(kFlagTB02SteeleTalk);
 		} else {
 			Actor_Says(kActorSteele, 2300, 12);
 			Actor_Says(kActorSteele, 2310, 15);
@@ -453,19 +493,15 @@ void SceneScriptTB02::sub_402B50() {
 			Actor_Says(kActorSteele, 2320, 12);
 			Actor_Says(kActorMcCoy, 5280, 13);
 			Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 1);
-			Game_Flag_Set(456);
+			Game_Flag_Set(kFlagTB02SteeleTalk);
 		}
 		break;
-	case 750:
+
+	case 750: // MURDER
 		Actor_Says(kActorMcCoy, 5255, 11);
 		Actor_Says(kActorSteele, 2330, 13);
 		Actor_Says(kActorSteele, 2340, 14);
-		Game_Flag_Set(456);
-		break;
-	case 100:
-		Actor_Says(kActorSteele, 2350, 13);
-		Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, -5);
-		Game_Flag_Set(456);
+		Game_Flag_Set(kFlagTB02SteeleTalk);
 		break;
 	}
 }
diff --git a/engines/bladerunner/script/scene/tb05.cpp b/engines/bladerunner/script/scene/tb05.cpp
index acdca33..3b27299 100644
--- a/engines/bladerunner/script/scene/tb05.cpp
+++ b/engines/bladerunner/script/scene/tb05.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 void SceneScriptTB05::InitializeScene() {
 	if (Game_Flag_Query(kFlagTB06toTB05)) {
 		Setup_Scene_Information(23.0f, 151.53f, -205.0f, 450);
-		Game_Flag_Set(102);
+		Game_Flag_Set(kFlagTB06Visited);
 		Game_Flag_Reset(kFlagTB06toTB05);
 	} else {
 		Setup_Scene_Information(14.0f, 151.53f, -77.0f, 6);
@@ -52,10 +52,15 @@ void SceneScriptTB05::SceneLoaded() {
 	Clickable_Object("MONITOR05");
 	Unclickable_Object("SMUDGE_GLASS01");
 	if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring)) {
-		Item_Add_To_World(76, 940, 72, 76.16f, 147.36f, -235.15f, 0, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemDragonflyEarring, 940, 72, 76.16f, 147.36f, -235.15f, 0, 6, 6, false, true, false, true);
 	}
-	if (!Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet1) && !Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet2) && (Game_Flag_Query(kFlagGordoIsReplicant) || Game_Flag_Query(kFlagLucyIsReplicant))) {
-		Item_Add_To_World(119, 972, 72, 129.01f, 147.12f, -162.98f, 0, 8, 8, false, true, false, true);
+	if (!Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet1)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet2)
+	 && (Game_Flag_Query(kFlagGordoIsReplicant)
+	  || Game_Flag_Query(kFlagLucyIsReplicant)
+	 )
+	) {
+		Item_Add_To_World(kItemTyrellSalesPamphlet, 972, 72, 129.01f, 147.12f, -162.98f, 0, 8, 8, false, true, false, true);
 	}
 }
 
@@ -64,54 +69,69 @@ bool SceneScriptTB05::MouseClick(int x, int y) {
 }
 
 bool SceneScriptTB05::ClickedOn3DObject(const char *objectName, bool a2) {
-	if (Object_Query_Click("MONITOR05", objectName) && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 122.54f, 147.12f, -197.17f, 0, 1, false, 0)) {
-		Actor_Face_Heading(kActorMcCoy, 38, false);
-		if (!Actor_Clue_Query(kActorMcCoy, kClueDNAMarcus) && !Game_Flag_Query(99)) {
-			Actor_Clue_Acquire(kActorMcCoy, kClueAttemptedFileAccess, 1, -1);
-			Actor_Voice_Over(2170, kActorVoiceOver);
-			Actor_Voice_Over(2180, kActorVoiceOver);
-			Actor_Voice_Over(2190, kActorVoiceOver);
-			Actor_Voice_Over(2200, kActorVoiceOver);
-			Game_Flag_Set(99);
-			return true;
-		}
-		if (Game_Flag_Query(99) && !Game_Flag_Query(100) && !Actor_Clue_Query(kActorMcCoy, kClueDNAMarcus)) {
-			if (Actor_Clue_Query(kActorMcCoy, kClueDogCollar1) || Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
-				Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, 1, -1);
-				Actor_Voice_Over(2230, kActorVoiceOver);
-				Item_Pickup_Spin_Effect(941, 352, 333);
-				Actor_Voice_Over(2240, kActorVoiceOver);
-				Actor_Voice_Over(2250, kActorVoiceOver);
-				Actor_Voice_Over(2260, kActorVoiceOver);
-				Game_Flag_Set(100);
-				Game_Flag_Set(101);
-			} else {
-				Actor_Voice_Over(2270, kActorVoiceOver);
-				Game_Flag_Set(100);
+	if (Object_Query_Click("MONITOR05", objectName)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 122.54f, 147.12f, -197.17f, 0, true, false, 0)) {
+			Actor_Face_Heading(kActorMcCoy, 38, false);
+
+			if (!Actor_Clue_Query(kActorMcCoy, kClueDNAMarcus)
+			 && !Game_Flag_Query(kFlagTB05MonitorIntro)) {
+				Actor_Clue_Acquire(kActorMcCoy, kClueAttemptedFileAccess, true, -1);
+				Actor_Voice_Over(2170, kActorVoiceOver);
+				Actor_Voice_Over(2180, kActorVoiceOver);
+				Actor_Voice_Over(2190, kActorVoiceOver);
+				Actor_Voice_Over(2200, kActorVoiceOver);
+				Game_Flag_Set(kFlagTB05MonitorIntro);
+				return true;
 			}
-			return true;
-		}
-		if (Game_Flag_Query(100) && !Game_Flag_Query(101)) {
-			if (Actor_Clue_Query(kActorMcCoy, kClueDogCollar1) || Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
-				Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, 1, -1);
-				Actor_Voice_Over(2230, kActorVoiceOver);
-				Item_Pickup_Spin_Effect(941, 352, 333);
-				Actor_Voice_Over(2240, kActorVoiceOver);
-				Actor_Voice_Over(2250, kActorVoiceOver);
-				Actor_Voice_Over(2260, kActorVoiceOver);
-				Game_Flag_Set(101);
-			} else {
-				Actor_Voice_Over(2280, kActorVoiceOver);
-				Actor_Voice_Over(2290, kActorVoiceOver);
-				Game_Flag_Set(101);
+
+			if ( Game_Flag_Query(kFlagTB05MonitorIntro)
+			 && !Game_Flag_Query(kFlagTB05MonitorUnlockAttempt)
+			 && !Actor_Clue_Query(kActorMcCoy, kClueDNAMarcus)
+			) {
+				if (Actor_Clue_Query(kActorMcCoy, kClueDogCollar1)
+				 || Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)
+				) {
+					Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, true, -1);
+					Actor_Voice_Over(2230, kActorVoiceOver);
+					Item_Pickup_Spin_Effect(941, 352, 333);
+					Actor_Voice_Over(2240, kActorVoiceOver);
+					Actor_Voice_Over(2250, kActorVoiceOver);
+					Actor_Voice_Over(2260, kActorVoiceOver);
+					Game_Flag_Set(kFlagTB05MonitorUnlockAttempt);
+					Game_Flag_Set(kFlagTB05MonitorDone);
+				} else {
+					Actor_Voice_Over(2270, kActorVoiceOver);
+					Game_Flag_Set(kFlagTB05MonitorUnlockAttempt);
+				}
+				return true;
+			}
+
+			if ( Game_Flag_Query(kFlagTB05MonitorUnlockAttempt)
+			 && !Game_Flag_Query(kFlagTB05MonitorDone)
+			) {
+				if (Actor_Clue_Query(kActorMcCoy, kClueDogCollar1)
+				 || Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)
+				) {
+					Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, true, -1);
+					Actor_Voice_Over(2230, kActorVoiceOver);
+					Item_Pickup_Spin_Effect(941, 352, 333);
+					Actor_Voice_Over(2240, kActorVoiceOver);
+					Actor_Voice_Over(2250, kActorVoiceOver);
+					Actor_Voice_Over(2260, kActorVoiceOver);
+					Game_Flag_Set(kFlagTB05MonitorDone);
+				} else {
+					Actor_Voice_Over(2280, kActorVoiceOver);
+					Actor_Voice_Over(2290, kActorVoiceOver);
+					Game_Flag_Set(kFlagTB05MonitorDone);
+				}
+				return true;
+			}
+
+			if (Game_Flag_Query(kFlagTB05MonitorDone)) {
+				Actor_Voice_Over(3700, kActorVoiceOver);
+				return true;
 			}
-			return true;
-		}
-		if (Game_Flag_Query(101)) {
-			Actor_Voice_Over(3700, kActorVoiceOver);
-			return true;
 		}
-		return false;
 	}
 	return false;
 }
@@ -121,27 +141,32 @@ bool SceneScriptTB05::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptTB05::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 76 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 54.0f, 147.12f, -209.0f, 0, 1, false, 0)) {
-		Actor_Face_Heading(kActorMcCoy, 126, false);
-		Item_Remove_From_World(76);
-		Item_Pickup_Spin_Effect(940, 295, 408);
-		Actor_Voice_Over(2140, kActorVoiceOver);
-		Actor_Voice_Over(2150, kActorVoiceOver);
-		Actor_Voice_Over(2160, kActorVoiceOver);
-		Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyEarring, 1, -1);
-		return true;
+	if (itemId == kItemDragonflyEarring) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 54.0f, 147.12f, -209.0f, 0, true, false, 0)) {
+			Actor_Face_Heading(kActorMcCoy, 126, false);
+			Item_Remove_From_World(kItemDragonflyEarring);
+			Item_Pickup_Spin_Effect(940, 295, 408);
+			Actor_Voice_Over(2140, kActorVoiceOver);
+			Actor_Voice_Over(2150, kActorVoiceOver);
+			Actor_Voice_Over(2160, kActorVoiceOver);
+			Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyEarring, true, -1);
+			return true;
+		}
 	}
-	if (itemId == 119 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 107.89f, 147.12f, -156.26f, 0, 1, false, 0)) {
-		Actor_Face_Heading(kActorMcCoy, 126, false);
-		Item_Remove_From_World(119);
-		Item_Pickup_Spin_Effect(972, 449, 431);
-		Actor_Voice_Over(4280, kActorVoiceOver);
-		if (Game_Flag_Query(kFlagGordoIsReplicant)) {
-			Actor_Voice_Over(4290, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet1, 1, -1);
-		} else {
-			Actor_Voice_Over(4300, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet2, 1, -1);
+
+	if (itemId == kItemTyrellSalesPamphlet) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 107.89f, 147.12f, -156.26f, 0, true, false, 0)) {
+			Actor_Face_Heading(kActorMcCoy, 126, false);
+			Item_Remove_From_World(kItemTyrellSalesPamphlet);
+			Item_Pickup_Spin_Effect(972, 449, 431);
+			Actor_Voice_Over(4280, kActorVoiceOver);
+			if (Game_Flag_Query(kFlagGordoIsReplicant)) {
+				Actor_Voice_Over(4290, kActorVoiceOver);
+				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet1, true, -1);
+			} else {
+				Actor_Voice_Over(4300, kActorVoiceOver);
+				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet2, true, -1);
+			}
 		}
 	}
 	return false;
@@ -149,7 +174,7 @@ bool SceneScriptTB05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptTB05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 151.53f, -205.0f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 151.53f, -205.0f, 12, true, false, 0)) {
 			Game_Flag_Set(kFlagTB05toTB06);
 			Set_Enter(kSetTB06, kSceneTB06);
 			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 2, 1);
@@ -157,7 +182,7 @@ bool SceneScriptTB05::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 14.0f, 147.12f, 123.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 14.0f, 147.12f, 123.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagTB05toTB02);
 			Set_Enter(kSetTB02_TB03, kSceneTB02);
 		}
diff --git a/engines/bladerunner/script/scene/tb06.cpp b/engines/bladerunner/script/scene/tb06.cpp
index acd539b..1c71196 100644
--- a/engines/bladerunner/script/scene/tb06.cpp
+++ b/engines/bladerunner/script/scene/tb06.cpp
@@ -30,17 +30,15 @@ void SceneScriptTB06::InitializeScene() {
 	Ambient_Sounds_Add_Looping_Sound(236, 50, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(237, 50, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(285, 66, 0, 1);
-	if (Game_Flag_Query(103)) {
-		Scene_Loop_Set_Default(0);
-		//return false;
-		return;
-	} else {
+	if (!Game_Flag_Query(kFlagNotUsed103)) {
 		Actor_Put_In_Set(kActorMarcus, kSetTB06);
 		Actor_Set_At_XYZ(kActorMarcus, 135.0f, 151.0f, -671.0f, 800);
 		Actor_Retired_Here(kActorMarcus, 60, 32, 1, -1);
 		//return true;
 		return;
 	}
+	Scene_Loop_Set_Default(0);
+	//return false;
 }
 
 void SceneScriptTB06::SceneLoaded() {
@@ -48,16 +46,21 @@ void SceneScriptTB06::SceneLoaded() {
 	Unobstacle_Object("GLASS01", true);
 	Clickable_Object("DOOR");
 	Unclickable_Object("SMUDGE_GLASS01");
-	if (!Game_Flag_Query(519) && Actor_Query_Goal_Number(kActorPhotographer) != 199) {
-		Item_Add_To_World(84, 942, 73, 36.54f, 149.48f, -565.67f, 0, 6, 6, false, true, false, true);
+
+	if (!Game_Flag_Query(kFlagTB06DogCollarTaken)
+	 &&  Actor_Query_Goal_Number(kActorPhotographer) != 199
+	) {
+		Item_Add_To_World(kItemDogCollar, 942, 73, 36.54f, 149.48f, -565.67f, 0, 6, 6, false, true, false, true);
 	}
-	if (!Game_Flag_Query(520)) {
-		Item_Add_To_World(108, 955, 73, 18.0f, 149.65f, -599.0f, 0, 6, 6, false, true, false, true);
+
+	if (!Game_Flag_Query(kFlagTB06KitchenBoxTaken)) {
+		Item_Add_To_World(kItemKitchenBox, 955, 73, 18.0f, 149.65f, -599.0f, 0, 6, 6, false, true, false, true);
 	}
+
 	if (Actor_Query_Goal_Number(kActorPhotographer) != 199) {
-		Item_Add_To_World(103, 978, 73, -46.82f, 149.6f, -666.88f, 0, 12, 12, false, true, false, true);
-		Item_Add_To_World(104, 979, 73, -30.27f, 149.6f, -610.7f, 0, 15, 45, false, true, false, true);
-		Item_Add_To_World(105, 980, 73, 9.87f, 149.6f, -683.5f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogA, 978, 73, -46.82f, 149.6f, -666.88f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogB, 979, 73, -30.27f, 149.6f, -610.7f, 0, 15, 45, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogC, 980, 73, 9.87f, 149.6f, -683.5f, 0, 12, 12, false, true, false, true);
 	}
 }
 
@@ -70,66 +73,80 @@ bool SceneScriptTB06::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptTB06::ClickedOnActor(int actorId) {
-	if (actorId == 21 && !Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMarcus, 24, 1, false)) {
-		if (Actor_Clue_Query(kActorMcCoy, kClueDetonatorWire)) {
+	if (actorId == kActorMarcus) {
+		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMarcus, 24, true, false)) {
+			if (!Actor_Clue_Query(kActorMcCoy, kClueDetonatorWire)) {
+				Actor_Voice_Over(2300, kActorVoiceOver);
+				Actor_Voice_Over(2310, kActorVoiceOver);
+				Item_Pickup_Spin_Effect(974, 66, 397);
+				Actor_Voice_Over(2320, kActorVoiceOver);
+				if (Game_Flag_Query(kFlagSadikIsReplicant)) {
+					Actor_Voice_Over(2330, kActorVoiceOver);
+					Actor_Voice_Over(2340, kActorVoiceOver);
+				}
+				Actor_Voice_Over(2350, kActorVoiceOver);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDetonatorWire, true, -1);
+				return true;
+			}
 			Actor_Says(kActorMcCoy, 8665, 13);
 			return false;
 		}
-		Actor_Voice_Over(2300, kActorVoiceOver);
-		Actor_Voice_Over(2310, kActorVoiceOver);
-		Item_Pickup_Spin_Effect(974, 66, 397);
-		Actor_Voice_Over(2320, kActorVoiceOver);
-		if (Game_Flag_Query(kFlagSadikIsReplicant)) {
-			Actor_Voice_Over(2330, kActorVoiceOver);
-			Actor_Voice_Over(2340, kActorVoiceOver);
-		}
-		Actor_Voice_Over(2350, kActorVoiceOver);
-		Actor_Clue_Acquire(kActorMcCoy, kClueDetonatorWire, 1, -1);
-		return true;
 	}
 	return false;
 }
 
 bool SceneScriptTB06::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 84 && !Loop_Actor_Walk_To_Item(kActorMcCoy, 84, 12, 1, false)) {
-		Actor_Face_Item(kActorMcCoy, 84, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar1, 1, -1);
-		Item_Pickup_Spin_Effect(942, 341, 368);
-		Item_Remove_From_World(84);
-		Actor_Voice_Over(4160, kActorVoiceOver);
-		Game_Flag_Set(519);
-		return true;
+	if (itemId == kItemDogCollar) {
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemDogCollar, 12, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemDogCollar, true);
+			Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar1, true, -1);
+			Item_Pickup_Spin_Effect(942, 341, 368);
+			Item_Remove_From_World(kItemDogCollar);
+			Actor_Voice_Over(4160, kActorVoiceOver);
+			Game_Flag_Set(kFlagTB06DogCollarTaken);
+			return true;
+		}
 	}
-	if (itemId == 108 && !Loop_Actor_Walk_To_Item(kActorMcCoy, 108, 12, 1, false)) {
-		Actor_Face_Item(kActorMcCoy, 108, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox1, 1, -1);
-		Item_Remove_From_World(108);
-		Item_Pickup_Spin_Effect(955, 390, 368);
-		Actor_Says(kActorMcCoy, 8775, 3);
-		Game_Flag_Set(520);
-		return true;
+	if (itemId == kItemKitchenBox) {
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemKitchenBox, 12, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemKitchenBox, true);
+			Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox1, true, -1);
+			Item_Remove_From_World(kItemKitchenBox);
+			Item_Pickup_Spin_Effect(955, 390, 368);
+			Actor_Says(kActorMcCoy, 8775, kAnimationModeTalk);
+			Game_Flag_Set(kFlagTB06KitchenBoxTaken);
+			return true;
+		}
 	}
-	if (itemId == 82 && !Loop_Actor_Walk_To_Item(kActorMcCoy, 82, 12, 1, false)) {
-		Actor_Face_Item(kActorMcCoy, 82, true);
-		Actor_Says(kActorMcCoy, 5285, 3);
-		return true;
+	if (itemId == kItemChopstickWrapper) { // this item is not here, it is in RC51
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemChopstickWrapper, 12, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemChopstickWrapper, true);
+			Actor_Says(kActorMcCoy, 5285, kAnimationModeTalk);
+			return true;
+		}
 	}
-	if ((itemId == 103 || itemId == 104 || itemId == 105) && !Loop_Actor_Walk_To_Item(kActorMcCoy, 103, 24, 1, false)) {
-		Actor_Face_Item(kActorMcCoy, 103, true);
-		Actor_Voice_Over(2380, kActorVoiceOver);
-		Actor_Voice_Over(2390, kActorVoiceOver);
-		Actor_Voice_Over(2400, kActorVoiceOver);
-		return true;
+
+	if (itemId == kItemDeadDogA
+	 || itemId == kItemDeadDogB
+	 || itemId == kItemDeadDogC
+	) {
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemDeadDogA, 24, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemDeadDogA, true);
+			Actor_Voice_Over(2380, kActorVoiceOver);
+			Actor_Voice_Over(2390, kActorVoiceOver);
+			Actor_Voice_Over(2400, kActorVoiceOver);
+			return true;
+		}
 	}
 	return false;
 }
 
 bool SceneScriptTB06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -16.0f, 149.0f, -427.0f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -16.0f, 149.0f, -427.0f, 12, true, false, 0)) {
 			Game_Flag_Set(kFlagTB06toTB05);
 			Set_Enter(kSetTB05, kSceneTB05);
-			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 2, 1);
+			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 2, true);
 		}
 		return true;
 	}
@@ -154,26 +171,28 @@ void SceneScriptTB06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptTB06::PlayerWalkedIn() {
-	if (!Game_Flag_Query(102) && !Game_Flag_Query(483)) {
+	if (!Game_Flag_Query(kFlagTB06Visited)
+	 && !Game_Flag_Query(kFlagTB06Introduction)
+	) {
 		Actor_Face_Actor(kActorMcCoy, kActorMarcus, true);
-		Actor_Says(kActorMcCoy, 5290, 3);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 149.0f, -631.0f, 0, 0, false, 0);
+		Actor_Says(kActorMcCoy, 5290, kAnimationModeTalk);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 149.0f, -631.0f, 0, false, false, 0);
 		AI_Movement_Track_Pause(kActorPhotographer);
 		Actor_Face_Actor(kActorMcCoy, kActorPhotographer, true);
 		Actor_Face_Actor(kActorPhotographer, kActorMcCoy, true);
-		Actor_Says(kActorPhotographer, 0, 3);
-		Actor_Says(kActorMcCoy, 5295, 3);
+		Actor_Says(kActorPhotographer, 0, kAnimationModeTalk);
+		Actor_Says(kActorMcCoy, 5295, kAnimationModeTalk);
 		Actor_Face_Actor(kActorPhotographer, kActorMarcus, true);
-		Actor_Says(kActorPhotographer, 10, 3);
+		Actor_Says(kActorPhotographer, 10, kAnimationModeTalk);
 		AI_Movement_Track_Unpause(kActorPhotographer);
-		Game_Flag_Set(483);
+		Game_Flag_Set(kFlagTB06Introduction);
 		//return true;
 		return;
 	}
-	if (Game_Flag_Query(103)) {
-		Item_Remove_From_World(84);
-		Item_Remove_From_World(82);
-		Item_Remove_From_World(98);
+	if (Game_Flag_Query(kFlagNotUsed103)) {
+		Item_Remove_From_World(kItemDogCollar);
+		Item_Remove_From_World(kItemChopstickWrapper);
+		Item_Remove_From_World(kItemToyDog); // why? some unused branch
 		//return true;
 		return;
 	}
@@ -182,7 +201,7 @@ void SceneScriptTB06::PlayerWalkedIn() {
 }
 
 void SceneScriptTB06::PlayerWalkedOut() {
-	Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 }
 
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index e09b412..ee8e8fc 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -69,7 +69,7 @@ bool SceneScriptTB07::ClickedOnItem(int itemId, bool a2) {
 		Actor_Face_Item(kActorMcCoy, itemId, true);
 		if (itemId == 83) {
 			Item_Pickup_Spin_Effect(941, 331, 296);
-			Actor_Clue_Acquire(kActorMcCoy, kClueDNATyrell, 0, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueDNATyrell, false, -1);
 		}
 		Item_Remove_From_World(itemId);
 	}
@@ -92,7 +92,7 @@ bool SceneScriptTB07::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagMcCoyAtBBxx);
 				Game_Flag_Reset(kFlagMcCoyAtHFxx);
 				Game_Flag_Reset(kFlagMcCoyAtTBxx);
-				Game_Flag_Reset(450);
+				Game_Flag_Reset(kFlagTB02ElevatorToTB05);
 				switch (Spinner_Interface_Choose_Dest(-1, false)) {
 				case kSpinnerDestinationPoliceStation:
 					Game_Flag_Set(kFlagMcCoyAtPSxx);
@@ -282,8 +282,8 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Says_With_Pause(kActorMcCoy, 5450, 1.0f, 15);
 	Actor_Says(kActorMcCoy, 5455, 12);
 	Actor_Says(kActorTyrell, 100, 14);
-	Actor_Clue_Acquire(kActorMcCoy, kClueRachaelInterview, 0, kActorRachael);
-	Actor_Clue_Acquire(kActorMcCoy, kClueTyrellInterview, 0, kActorTyrell);
+	Actor_Clue_Acquire(kActorMcCoy, kClueRachaelInterview, false, kActorRachael);
+	Actor_Clue_Acquire(kActorMcCoy, kClueTyrellInterview, false, kActorTyrell);
 	Loop_Actor_Walk_To_XYZ(kActorTyrell, -260.15f, 12.0f, -19.16f, 0, 0, false, 0);
 }
 
diff --git a/engines/bladerunner/script/scene/ug02.cpp b/engines/bladerunner/script/scene/ug02.cpp
index 6002791..b196e7c 100644
--- a/engines/bladerunner/script/scene/ug02.cpp
+++ b/engines/bladerunner/script/scene/ug02.cpp
@@ -97,7 +97,7 @@ bool SceneScriptUG02::ClickedOn3DObject(const char *objectName, bool a2) {
 			Actor_Voice_Over(2450, kActorVoiceOver);
 			Actor_Voice_Over(2460, kActorVoiceOver);
 			Game_Flag_Set(449);
-			Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsCache, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsCache, true, -1);
 			return true;
 		}
 		if (Global_Variable_Query(kVariableChapter) <= 3) {
@@ -109,7 +109,7 @@ bool SceneScriptUG02::ClickedOn3DObject(const char *objectName, bool a2) {
 			Actor_Voice_Over(2480, kActorVoiceOver);
 			Actor_Voice_Over(2490, kActorVoiceOver);
 			Actor_Voice_Over(2500, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueIzosStashRaided, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueIzosStashRaided, true, -1);
 		} else if (!Actor_Clue_Query(kActorMcCoy, kClueWeaponsCache)) {
 			Actor_Voice_Over(2510, kActorVoiceOver);
 			Actor_Voice_Over(2520, kActorVoiceOver);
@@ -134,7 +134,7 @@ bool SceneScriptUG02::ClickedOnActor(int actorId) {
 bool SceneScriptUG02::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 88) {
 		Actor_Face_Item(kActorMcCoy, 88, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueRadiationGoggles, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueRadiationGoggles, true, -1);
 		Game_Flag_Set(656);
 		Item_Remove_From_World(88);
 		Item_Pickup_Spin_Effect(963, 426, 316);
@@ -150,7 +150,7 @@ bool SceneScriptUG02::ClickedOnExit(int exitId) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -202.0f, 120.16f, -74.0f, 0, 1, v2, 0)) {
 				Actor_Face_Heading(kActorMcCoy, 270, false);
 				Footstep_Sound_Override_On(2);
-				Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 0, 0);
+				Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 0, kAnimationModeIdle);
 				Footstep_Sound_Override_Off();
 				int v3 = Player_Query_Combat_Mode();
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -96.57f, 74.87f, -271.28f, 0, 0, v3, 0);
@@ -175,7 +175,7 @@ bool SceneScriptUG02::ClickedOnExit(int exitId) {
 		Loop_Actor_Travel_Ladder(kActorMcCoy, 9, 1, 0);
 		Game_Flag_Set(kFlagUG02toHC03);
 		Game_Flag_Reset(kFlagMcCoyAtUGxx);
-		Game_Flag_Set(479);
+		Game_Flag_Set(kFlagMcCoyAtHCxx);
 		if (!Game_Flag_Query(403)) {
 			Game_Flag_Set(388);
 			Game_Flag_Set(403);
@@ -204,7 +204,7 @@ void SceneScriptUG02::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -148.0f, 84.13f, -67.0f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 761, false);
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, true, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, true, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Reset(kFlagUG01toUG02);
 		Game_Flag_Set(498);
@@ -237,7 +237,7 @@ bool SceneScriptUG02::sub_402354() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -365.0f, 155.65f, -19.0f, 0, 0, v0, 0);
 		Actor_Face_Heading(kActorMcCoy, 318, false);
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Set(498);
 		return false;
@@ -245,7 +245,7 @@ bool SceneScriptUG02::sub_402354() {
 	if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -312.75f, 120.16f, 1.01f, 0, 1, false, 0)) {
 		Actor_Face_Heading(kActorMcCoy, 830, false);
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Reset(498);
 		return false;
diff --git a/engines/bladerunner/script/scene/ug03.cpp b/engines/bladerunner/script/scene/ug03.cpp
index 01d6848..81e9b96 100644
--- a/engines/bladerunner/script/scene/ug03.cpp
+++ b/engines/bladerunner/script/scene/ug03.cpp
@@ -83,7 +83,7 @@ bool SceneScriptUG03::ClickedOn3DObject(const char *objectName, bool a2) {
 			Actor_Voice_Over(2570, kActorVoiceOver);
 			Actor_Voice_Over(2580, kActorVoiceOver);
 			Actor_Voice_Over(2590, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, true, -1);
 		}
 	}
 	return false;
diff --git a/engines/bladerunner/script/scene/ug05.cpp b/engines/bladerunner/script/scene/ug05.cpp
index 73101f2..da1cb2f 100644
--- a/engines/bladerunner/script/scene/ug05.cpp
+++ b/engines/bladerunner/script/scene/ug05.cpp
@@ -119,7 +119,7 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
 			Set_Enter(kSetHF07, kSceneHF07);
 		} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.72f, 3.03f, -1118.17f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 760, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle);
 			Game_Flag_Set(361);
 			Set_Enter(kSetHF07, kSceneHF07);
 		}
@@ -204,7 +204,7 @@ void SceneScriptUG05::PlayerWalkedIn() {
 		if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, 1, false, 0);
 		} else {
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, kAnimationModeIdle);
 		}
 	}
 	if (Game_Flag_Query(663)) {
diff --git a/engines/bladerunner/script/scene/ug06.cpp b/engines/bladerunner/script/scene/ug06.cpp
index 1f0124d..e13e720 100644
--- a/engines/bladerunner/script/scene/ug06.cpp
+++ b/engines/bladerunner/script/scene/ug06.cpp
@@ -102,7 +102,7 @@ bool SceneScriptUG06::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -90.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 1, kAnimationModeIdle);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 153.0f, -446.0f, 0, 0, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -130,7 +130,7 @@ void SceneScriptUG06::PlayerWalkedIn() {
 		Game_Flag_Reset(340);
 	}
 	if (Game_Flag_Query(343)) {
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 0, kAnimationModeIdle);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -36.91f, 0, 0, false, 0);
 		Game_Flag_Reset(343);
 	}
diff --git a/engines/bladerunner/script/scene/ug08.cpp b/engines/bladerunner/script/scene/ug08.cpp
index 9b4306e..2c5cc61 100644
--- a/engines/bladerunner/script/scene/ug08.cpp
+++ b/engines/bladerunner/script/scene/ug08.cpp
@@ -95,7 +95,7 @@ bool SceneScriptUG08::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -312.0f, -2.0f, 152.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 240, false);
 			Footstep_Sound_Override_On(2);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -118.02f, 93.02f, 52.76f, 0, 0, false, 0);
 			Player_Loses_Control();
@@ -128,7 +128,7 @@ void SceneScriptUG08::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -180.0f, 93.18f, 134.0f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 745, false);
 		Footstep_Sound_Override_On(2);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Player_Gains_Control();
 	}
diff --git a/engines/bladerunner/script/scene/ug10.cpp b/engines/bladerunner/script/scene/ug10.cpp
index 98629b1..e95f57b 100644
--- a/engines/bladerunner/script/scene/ug10.cpp
+++ b/engines/bladerunner/script/scene/ug10.cpp
@@ -114,7 +114,7 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
 		if ((!Game_Flag_Query(474) && x < 120.0f) || Game_Flag_Query(474)) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, 1, false, 0)) {
 				Actor_Face_Heading(kActorMcCoy, 0, false);
-				Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, 0);
+				Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, kAnimationModeIdle);
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, 81.83f, -652.0f, 0, 0, false, 0);
 				Game_Flag_Set(337);
 				Set_Enter(kSetUG03, kSceneUG03);
@@ -214,7 +214,7 @@ void SceneScriptUG10::PlayerWalkedIn() {
 		Game_Flag_Reset(336);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 81.33f, -518.8f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 506, false);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 0, kAnimationModeIdle);
 	}
 	if (Game_Flag_Query(474)) {
 		Unobstacle_Object("BOX01 BRIDGE", true);
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index 9520fba..a0acf7f 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -72,8 +72,14 @@ void SceneScriptUG13::SceneLoaded() {
 	Clickable_Object("BASKET");
 	Clickable_Object("BOLLARD");
 	Unclickable_Object("BASKET");
-	if (Global_Variable_Query(kVariableChapter) >= 3 && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm) && Game_Flag_Query(kFlagMcCoyKilledHomeless) && (Actor_Clue_Query(kActorMcCoy, kClueShippingForm) || Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm))) {
-		Item_Add_To_World(111, 958, 85, -209.01f, 70.76f, -351.79f, 0, 16, 12, false, true, false, true);
+	if ( Global_Variable_Query(kVariableChapter) >= 3
+	 && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm)
+	 &&  Game_Flag_Query(kFlagMcCoyKilledHomeless)
+	 &&  (Actor_Clue_Query(kActorMcCoy, kClueShippingForm)
+	  ||  Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
+	 )
+	) {
+		Item_Add_To_World(kItemWeaponsOrderForm, 958, 85, -209.01f, 70.76f, -351.79f, 0, 16, 12, false, true, false, true);
 	}
 }
 
@@ -103,40 +109,46 @@ bool SceneScriptUG13::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptUG13::ClickedOnActor(int actorId) {
-	if (actorId == 12 && Global_Variable_Query(kVariableChapter) == 4 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, -248.0f, 44.0f, -390.0f, 12, 1, false, 0)) {
-		Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
-		if (Actor_Query_Goal_Number(kActorTransient) != 6 && Actor_Query_Goal_Number(kActorTransient) != 599) {
-			if (!Game_Flag_Query(554)) {
-				sub_40223C();
-			} else if (!Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1) || !Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview2)) {
-				sub_402AD4();
-			} else {
-				Actor_Set_Goal_Number(kActorTransient, 391);
-				if (Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe)) {
+	if (actorId == 12
+	 && Global_Variable_Query(kVariableChapter) == 4
+	) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -248.0f, 44.0f, -390.0f, 12, true, false, 0)) {
+			Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
+			if (Actor_Query_Goal_Number(kActorTransient) != 6 && Actor_Query_Goal_Number(kActorTransient) != 599) {
+				if (!Game_Flag_Query(554)) {
+					sub_40223C();
+				} else if (!Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1) || !Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview2)) {
 					sub_402AD4();
 				} else {
-					Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
-					Actor_Says(kActorMcCoy, 5600, 14);
-					Actor_Says(kActorTransient, 100, 53);
-					Actor_Says(kActorMcCoy, 5605, 18);
-					Actor_Start_Speech_Sample(kActorTransient, 110);
-					Actor_Set_Goal_Number(kActorTransient, 395);
+					Actor_Set_Goal_Number(kActorTransient, 391);
+					if (Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe)) {
+						sub_402AD4();
+					} else {
+						Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
+						Actor_Says(kActorMcCoy, 5600, 14);
+						Actor_Says(kActorTransient, 100, 53);
+						Actor_Says(kActorMcCoy, 5605, 18);
+						Actor_Start_Speech_Sample(kActorTransient, 110);
+						Actor_Set_Goal_Number(kActorTransient, 395);
+					}
 				}
+			} else if (Random_Query(0, 1) == 1) {
+				Actor_Says(kActorMcCoy, 8590, 16);
+			} else {
+				Actor_Says(kActorMcCoy, 8655, 15);
 			}
-		} else if (Random_Query(0, 1) == 1) {
-			Actor_Says(kActorMcCoy, 8590, 16);
-		} else {
-			Actor_Says(kActorMcCoy, 8655, 15);
 		}
 	}
 	return false;
 }
 
 bool SceneScriptUG13::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 111 && !Loop_Actor_Walk_To_Item(kActorMcCoy, 111, 36, 1, false)) {
-		Actor_Face_Item(kActorMcCoy, 111, true);
-		Actor_Clue_Acquire(kActorMcCoy, kClueOriginalRequisitionForm, 1, -1);
-		Item_Remove_From_World(111);
+	if ( itemId == kItemWeaponsOrderForm
+	 && !Loop_Actor_Walk_To_Item(kActorMcCoy, kItemWeaponsOrderForm, 36, true, false)
+	) {
+		Actor_Face_Item(kActorMcCoy, kItemWeaponsOrderForm, true);
+		Actor_Clue_Acquire(kActorMcCoy, kClueOriginalRequisitionForm, true, -1);
+		Item_Remove_From_World(kItemWeaponsOrderForm);
 		Item_Pickup_Spin_Effect(958, 426, 316);
 		Actor_Voice_Over(3950, kActorVoiceOver);
 		Actor_Voice_Over(3960, kActorVoiceOver);
@@ -172,7 +184,7 @@ bool SceneScriptUG13::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -267.0f, 44.0f, -795.0f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 830, false);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			if (!sub_402AD0()) {
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0f, 141.9f, -870.0f, 0, 0, false, 0);
@@ -181,7 +193,7 @@ bool SceneScriptUG13::ClickedOnExit(int exitId) {
 				return true;
 			}
 			Actor_Face_Heading(kActorMcCoy, 325, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle);
 		} else {
 			return true;
 		}
@@ -223,7 +235,7 @@ void SceneScriptUG13::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -389.0f, 143.0f, -844.0f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 325, false);
 		Footstep_Sound_Override_On(3);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Reset(435);
 	} else if (Game_Flag_Query(350)) {
@@ -277,7 +289,7 @@ void SceneScriptUG13::sub_40223C() {
 
 void SceneScriptUG13::sub_4023D8() {
 	Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
-	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview1, 0, kActorTransient);
+	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview1, false, kActorTransient);
 	Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -5);
 	Actor_Says(kActorMcCoy, 5575, 16);
 	Actor_Says(kActorTransient, 120, 31);
@@ -296,7 +308,7 @@ void SceneScriptUG13::sub_4023D8() {
 }
 
 void SceneScriptUG13::sub_4025E0() {
-	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview2, 0, kActorTransient);
+	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview2, false, kActorTransient);
 	Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -10);
 	Actor_Says(kActorTransient, 220, 30);
 	Actor_Says(kActorMcCoy, 5640, 19);
@@ -317,7 +329,7 @@ void SceneScriptUG13::sub_402960() {
 	Actor_Says(kActorTransient, 360, 33);
 	Actor_Voice_Over(2710, kActorVoiceOver);
 	Actor_Voice_Over(2730, kActorVoiceOver);
-	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManKid, 0, kActorTransient);
+	Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManKid, false, kActorTransient);
 }
 
 int SceneScriptUG13::sub_402AD0() {
@@ -342,7 +354,7 @@ void SceneScriptUG13::sub_402AD4() {
 	case 1360:
 		return;
 	case 1350:
-		Actor_Clue_Acquire(kActorTransient, kClueFlaskOfAbsinthe, 0, kActorMcCoy);
+		Actor_Clue_Acquire(kActorTransient, kClueFlaskOfAbsinthe, false, kActorMcCoy);
 		Actor_Says_With_Pause(kActorMcCoy, 5595, 1.0f, 23);
 		Item_Pickup_Spin_Effect(945, 193, 325);
 		Actor_Says(kActorTransient, 290, 33);
diff --git a/engines/bladerunner/script/scene/ug14.cpp b/engines/bladerunner/script/scene/ug14.cpp
index 3fe5340..0a391ca 100644
--- a/engines/bladerunner/script/scene/ug14.cpp
+++ b/engines/bladerunner/script/scene/ug14.cpp
@@ -89,7 +89,7 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
 			}
 			Actor_Face_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 0, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 0, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, 1, false, 0)) {
@@ -107,7 +107,7 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
 			}
 			Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, 1, false, 0)) {
@@ -126,12 +126,12 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
 			}
 			Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, 1, false, 0)) {
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, 0, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
@@ -165,7 +165,7 @@ void SceneScriptUG14::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 186.04f, -44.01f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 10, false);
 		Footstep_Sound_Override_On(3);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 0, 0);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -148.01f, 0, 0, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 807, false);
diff --git a/engines/bladerunner/script/scene/ug16.cpp b/engines/bladerunner/script/scene/ug16.cpp
index 8f9fc01..38ce6e4 100644
--- a/engines/bladerunner/script/scene/ug16.cpp
+++ b/engines/bladerunner/script/scene/ug16.cpp
@@ -89,7 +89,7 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
 			Actor_Voice_Over(2750, kActorVoiceOver);
 			Actor_Voice_Over(2760, kActorVoiceOver);
 			Actor_Voice_Over(2770, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueFolder, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueFolder, true, -1);
 		} else {
 			Actor_Says(kActorMcCoy, 8523, 12);
 			Actor_Says(kActorMcCoy, 8635, 12);
@@ -109,7 +109,7 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
 		Actor_Says(kActorMcCoy, 5725, 14);
 		Delay(1000);
 		Item_Pickup_Spin_Effect(941, 418, 305);
-		Actor_Clue_Acquire(kActorMcCoy, kClueDNALutherLance, 1, -1);
+		Actor_Clue_Acquire(kActorMcCoy, kClueDNALutherLance, true, -1);
 		return true;
 	}
 	return false;
@@ -149,7 +149,7 @@ bool SceneScriptUG16::ClickedOnExit(int exitId) {
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -316.78f, -34.88f, -533.27f, 0, 1, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(551);
@@ -289,7 +289,7 @@ void SceneScriptUG16::sub_401D78() {
 		Actor_Says(kActorMcCoy, 5810, 13);
 		Actor_Says(kActorLance, 220, 14);
 		Actor_Says(kActorLance, 230, 17);
-		Actor_Clue_Acquire(kActorMcCoy, kClueLutherLanceInterview, 1, kActorLuther);
+		Actor_Clue_Acquire(kActorMcCoy, kClueLutherLanceInterview, true, kActorLuther);
 		break;
 	case 1430:
 		Actor_Says(kActorMcCoy, 5745, 13);
@@ -358,7 +358,7 @@ void SceneScriptUG16::sub_401D78() {
 		Actor_Says(kActorMcCoy, 5855, 13);
 		Actor_Says(kActorLuther, 410, 14);
 		Game_Flag_Set(597);
-		Actor_Clue_Acquire(kActorMcCoy, kClueFolder, 1, kActorLuther);
+		Actor_Clue_Acquire(kActorMcCoy, kClueFolder, true, kActorLuther);
 		break;
 	case 1480:
 		Actor_Says(kActorMcCoy, 4595, 14);
diff --git a/engines/bladerunner/script/scene/ug18.cpp b/engines/bladerunner/script/scene/ug18.cpp
index 60d9210..f438d9b 100644
--- a/engines/bladerunner/script/scene/ug18.cpp
+++ b/engines/bladerunner/script/scene/ug18.cpp
@@ -102,7 +102,7 @@ bool SceneScriptUG18::ClickedOnItem(int itemId, bool a2) {
 			Item_Pickup_Spin_Effect(987, 368, 243);
 			Item_Remove_From_World(itemId);
 			Game_Flag_Set(703);
-			Actor_Clue_Acquire(kActorMcCoy, kClueBriefcase, 1, kActorGuzza);
+			Actor_Clue_Acquire(kActorMcCoy, kClueBriefcase, true, kActorGuzza);
 		}
 	}
 	return false;
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index 12c17ce..de9cd0d 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -364,7 +364,7 @@ DECLARE_SCRIPT(PS03)
 END_SCRIPT
 
 DECLARE_SCRIPT(PS04)
-	void sub_4017E4();
+	void dialogueWithGuzza();
 END_SCRIPT
 
 DECLARE_SCRIPT(PS05)
@@ -420,15 +420,15 @@ DECLARE_SCRIPT(RC03)
 END_SCRIPT
 
 DECLARE_SCRIPT(RC04)
-	void sub_401DF4();
+	void dialogueWithBulletBob();
 END_SCRIPT
 
 DECLARE_SCRIPT(RC51)
 END_SCRIPT
 
 DECLARE_SCRIPT(TB02)
-	void sub_402644();
-	void sub_402B50();
+	void dialogueWithTyrellGuard();
+	void dialogueWithSteele();
 END_SCRIPT
 
 DECLARE_SCRIPT(TB03)
diff --git a/engines/bladerunner/script/vk_script.cpp b/engines/bladerunner/script/vk_script.cpp
index eef5f5b..2dc2c4b 100644
--- a/engines/bladerunner/script/vk_script.cpp
+++ b/engines/bladerunner/script/vk_script.cpp
@@ -385,19 +385,19 @@ void VKScript::SCRIPT_VK_DLL_Shutdown(int actorId, int humanPercentage, int repl
 		VK_Play_Speech_Line(kActorAnsweringMachine, 430, 0.5f);
 		switch (actorId) {
 		case kActorRunciter:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKRunciterReplicant, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKRunciterReplicant, true, -1);
 			break;
 		case kActorBulletBob:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKBobGorskyReplicant, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKBobGorskyReplicant, true, -1);
 			break;
 		case kActorGrigorian:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKGrigorianReplicant, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKGrigorianReplicant, true, -1);
 			break;
 		case kActorLucy:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKLucyReplicant, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKLucyReplicant, true, -1);
 			break;
 		case kActorDektora:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKDektoraReplicant, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKDektoraReplicant, true, -1);
 			break;
 		}
 	} else if (humanPercentage > 79) {
@@ -405,19 +405,19 @@ void VKScript::SCRIPT_VK_DLL_Shutdown(int actorId, int humanPercentage, int repl
 		VK_Play_Speech_Line(kActorAnsweringMachine, 440, 0.5f);
 		switch (actorId) {
 		case kActorRunciter:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKRunciterHuman, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKRunciterHuman, true, -1);
 			break;
 		case kActorBulletBob:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKBobGorskyHuman, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKBobGorskyHuman, true, -1);
 			break;
 		case kActorGrigorian:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKGrigorianHuman, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKGrigorianHuman, true, -1);
 			break;
 		case kActorLucy:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKLucyHuman, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKLucyHuman, true, -1);
 			break;
 		case kActorDektora:
-			Actor_Clue_Acquire(kActorMcCoy, kClueVKDektoraHuman, 1, -1);
+			Actor_Clue_Acquire(kActorMcCoy, kClueVKDektoraHuman, true, -1);
 			break;
 		}
 	}





More information about the Scummvm-git-logs mailing list