[Scummvm-git-logs] scummvm master -> 2cc09b6b1097007b6eeac12882c03475e56e1be0

peterkohaut peterkohaut at users.noreply.github.com
Thu Jan 24 23:05:34 CET 2019


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

Summary:
7183f368dc BLADERUNNER: Fixed BB51 video
00c54db83c BLADERUNNER: Splitted debugger draw commands
5475bca1e1 BLADERUNNER: Skip empty obstacle polygons
2fd29c5193 BLADERUNNER: Fixed fog rendering
2cc09b6b10 BLADERUNNER: Fixes for game scripts & cleanup


Commit: 7183f368dcaa667d975a1d842168706aa7ef906f
    https://github.com/scummvm/scummvm/commit/7183f368dcaa667d975a1d842168706aa7ef906f
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-24T22:59:49+01:00

Commit Message:
BLADERUNNER: Fixed BB51 video

Packet CBPZ was not supported.

Changed paths:
    engines/bladerunner/vqa_decoder.cpp


diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp
index 07df325..65afef8 100644
--- a/engines/bladerunner/vqa_decoder.cpp
+++ b/engines/bladerunner/vqa_decoder.cpp
@@ -41,6 +41,7 @@ namespace BladeRunner {
 
 #define kAESC 0x41455343
 #define kCBFZ 0x4342465A
+#define kCBPZ 0x4342505A
 #define kCIND 0x43494E44
 #define kCINF 0x43494E46
 #define kCINH 0x43494E48
@@ -366,6 +367,7 @@ bool VQADecoder::VQAVideoTrack::readVQFR(Common::SeekableReadStream *s, uint32 s
 		bool rc = false;
 		switch (chd.id) {
 		case kCBFZ: rc = ((readFlags & kVQAReadCodebook          ) == 0) ? s->skip(roundup(chd.size)) : readCBFZ(s, chd.size); break;
+		case kCBPZ: rc = ((readFlags & kVQAReadCodebook          ) == 0) ? s->skip(roundup(chd.size)) : readCBFZ(s, chd.size); break;
 		case kVPTR: rc = ((readFlags & kVQAReadVectorPointerTable) == 0) ? s->skip(roundup(chd.size)) : readVPTR(s, chd.size); break;
 		default:
 			s->skip(roundup(chd.size));


Commit: 00c54db83ce72635cd060114f3e53760a49c4fe6
    https://github.com/scummvm/scummvm/commit/00c54db83ce72635cd060114f3e53760a49c4fe6
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-24T22:59:49+01:00

Commit Message:
BLADERUNNER: Splitted debugger draw commands

Debugger overlay is now more configurable
Added basic support for fogs

Changed paths:
    engines/bladerunner/bladerunner.cpp
    engines/bladerunner/debugger.cpp
    engines/bladerunner/debugger.h


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 5ac67ac..e2510ca 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -962,9 +962,10 @@ void BladeRunnerEngine::gameTick() {
 				_walkSoundId = -1;
 			}
 
-			if (_debugger->_viewSceneObjects) {
-				_debugger->drawSceneObjects();
+			if (_debugger->_isDebuggerOverlay) {
+				_debugger->drawDebuggerOverlay();
 			}
+
 			if (_debugger->_viewObstacles) {
 				_obstacles->draw();
 			}
diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index 5c3346d..b65088c 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -27,6 +27,7 @@
 #include "bladerunner/boundingbox.h"
 #include "bladerunner/combat.h"
 #include "bladerunner/font.h"
+#include "bladerunner/fog.h"
 #include "bladerunner/game_constants.h"
 #include "bladerunner/game_flags.h"
 #include "bladerunner/game_info.h"
@@ -36,8 +37,10 @@
 #include "bladerunner/savefile.h"
 #include "bladerunner/scene.h"
 #include "bladerunner/scene_objects.h"
+#include "bladerunner/screen_effects.h"
 #include "bladerunner/settings.h"
 #include "bladerunner/set.h"
+#include "bladerunner/set_effects.h"
 #include "bladerunner/text_resource.h"
 #include "bladerunner/vector.h"
 #include "bladerunner/view.h"
@@ -56,8 +59,15 @@ namespace BladeRunner {
 Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 	_vm = vm;
 
+	_isDebuggerOverlay = false;
+
 	_viewSceneObjects = false;
 	_viewActorsOnly = false;
+	_viewLights = false;
+	_viewFogs = false;
+	_viewRegions = false;
+	_viewWaypoints = false;
+	_viewWalkboxes = false;
 	_viewObstacles = false;
 	_viewUI = false;
 	_viewZBuffer = false;
@@ -72,6 +82,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 	registerCmd("scene", WRAP_METHOD(Debugger, cmdScene));
 	registerCmd("var", WRAP_METHOD(Debugger, cmdVariable));
 	registerCmd("clue", WRAP_METHOD(Debugger, cmdClue));
+	registerCmd("timer", WRAP_METHOD(Debugger, cmdTimer));
 	registerCmd("load", WRAP_METHOD(Debugger, cmdLoad));
 	registerCmd("save", WRAP_METHOD(Debugger, cmdSave));
 }
@@ -101,7 +112,7 @@ bool Debugger::cmdAnimation(int argc, const char **argv) {
 	if (argc == 3) {
 		int animationMode = atoi(argv[2]);
 		debugPrintf("actorAnimationMode(%i) = %i\n", actorId, animationMode);
-		actor->changeAnimationMode(animationMode);
+		actor->changeAnimationMode(animationMode, true);
 		return false;
 	}
 
@@ -112,7 +123,7 @@ bool Debugger::cmdAnimation(int argc, const char **argv) {
 bool Debugger::cmdDraw(int argc, const char **argv) {
 	if (argc != 2) {
 		debugPrintf("Enables debug rendering of scene objects, obstacles, ui elements, zbuffer or disables debug rendering.\n");
-		debugPrintf("Usage: %s (obj | actors | obstacles | ui | zbuf | reset)\n", argv[0]);
+		debugPrintf("Usage: %s (obj | reg | lit | fog | way | walk | act | obstacles | ui | zbuf | reset)\n", argv[0]);
 		return true;
 	}
 
@@ -120,6 +131,21 @@ bool Debugger::cmdDraw(int argc, const char **argv) {
 	if (arg == "obj") {
 		_viewSceneObjects = !_viewSceneObjects;
 		debugPrintf("Drawing scene objects = %i\n", _viewSceneObjects);
+	} else if (arg == "reg") {
+		_viewRegions = !_viewRegions;
+		debugPrintf("Drawing regions = %i\n", _viewRegions);
+	} else if (arg == "lit") {
+		_viewLights = !_viewLights;
+		debugPrintf("Drawing lights = %i\n", _viewLights);
+	} else if (arg == "fog") {
+		_viewFogs = !_viewFogs;
+		debugPrintf("Drawing fogs = %i\n", _viewFogs);
+	} else if (arg == "way") {
+		_viewWaypoints = !_viewWaypoints;
+		debugPrintf("Drawing waypoints = %i\n", _viewWaypoints);
+	} else if (arg == "walk") {
+		_viewWalkboxes = !_viewWalkboxes;
+		debugPrintf("Drawing walk boxes = %i\n", _viewWalkboxes);
 	} else if (arg == "actors") {
 		_viewSceneObjects = !_viewSceneObjects;
 		_viewActorsOnly = _viewSceneObjects;
@@ -142,6 +168,7 @@ bool Debugger::cmdDraw(int argc, const char **argv) {
 		debugPrintf("Drawing Z buffer = %i\n", _viewZBuffer);
 	}
 
+	_isDebuggerOverlay = _viewSceneObjects | _viewRegions | _viewLights | _viewFogs | _viewWaypoints | _viewWalkboxes;
 	return true;
 }
 
@@ -527,6 +554,48 @@ bool Debugger::cmdClue(int argc, const char **argv) {
 	return true;
 }
 
+bool Debugger::cmdTimer(int argc, const char **argv) {
+	if (argc != 2 && argc != 4) {
+		debugPrintf("Get or changes timers for an actor.\n");
+		debugPrintf("Usage: %s <actorId> [<timer> <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;
+	}
+
+	if (argc == 4) {
+		int timer = atoi(argv[2]);
+		int value = atoi(argv[3]);
+
+		if (timer < 0 || timer > 6) {
+			debugPrintf("Timer must be [0..6]");
+			return true;
+		}
+
+		if (value == 0) {
+			actor->timerReset(timer);
+		} else {
+			actor->timerStart(timer, value);
+		}
+	}
+
+	for (int i = 0; i < 7; ++i) {
+		debugPrintf("actorTimer(%i, %i) = %i ms\n", actorId, i, actor->timerLeft(i));
+	}
+
+	return true;
+}
+
 bool Debugger::cmdLoad(int argc, const char **argv) {
 	if (argc != 2) {
 		debugPrintf("Loads a save game from original format.\n");
@@ -579,6 +648,15 @@ bool Debugger::cmdSave(int argc, const char **argv) {
 	return true;
 }
 
+void Debugger::drawDebuggerOverlay() {
+	if (_viewSceneObjects) drawSceneObjects();
+	if (_viewLights) drawLights();
+	if (_viewFogs) drawFogs();
+	if (_viewRegions) drawRegions();
+	if (_viewWaypoints) drawWaypoints();
+	if (_viewWalkboxes) drawWalkboxes();
+}
+
 void Debugger::drawBBox(Vector3 start, Vector3 end, View *view, Graphics::Surface *surface, int color) {
 	Vector3 bfl = view->calculateScreenPosition(Vector3(start.x, start.y, start.z));
 	Vector3 bfr = view->calculateScreenPosition(Vector3(start.x, end.y, start.z));
@@ -653,36 +731,9 @@ void Debugger::drawSceneObjects() {
 			}
 		}
 	}
+}
 
-	if (_viewActorsOnly)
-		return;
-
-	//draw regions
-	for (int i = 0; i < 10; i++) {
-		Regions::Region *region = &_vm->_scene->_regions->_regions[i];
-		if (!region->present) continue;
-		_vm->_surfaceFront.frameRect(region->rectangle, 0x001F); // 00000 00000 11111
-	}
-
-	for (int i = 0; i < 10; i++) {
-		Regions::Region *region = &_vm->_scene->_exits->_regions[i];
-		if (!region->present) continue;
-		_vm->_surfaceFront.frameRect(region->rectangle, 0x7FFF); // 11111 11111 11111
-	}
-
-	//draw walkboxes
-	for (int i = 0; i < _vm->_scene->_set->_walkboxCount; i++) {
-		Set::Walkbox *walkbox = &_vm->_scene->_set->_walkboxes[i];
-
-		for (int j = 0; j < walkbox->vertexCount; j++) {
-			Vector3 start = _vm->_view->calculateScreenPosition(walkbox->vertices[j]);
-			Vector3 end = _vm->_view->calculateScreenPosition(walkbox->vertices[(j + 1) % walkbox->vertexCount]);
-			_vm->_surfaceFront.drawLine(start.x, start.y, end.x, end.y, 0x7FE0); // 11111 11111 00000
-			Vector3 pos = _vm->_view->calculateScreenPosition(0.5 * (start + end));
-			_vm->_mainFont->drawColor(walkbox->name, _vm->_surfaceFront, pos.x, pos.y, 0x7FE0); // 11111 11111 00000
-		}
-	}
-
+void Debugger::drawLights() {
 	// draw lights
 	for (int i = 0; i < (int)_vm->_lights->_lights.size(); i++) {
 		Light *light = _vm->_lights->_lights[i];
@@ -712,8 +763,56 @@ void Debugger::drawSceneObjects() {
 		_vm->_surfaceFront.drawLine(posOriginT.x, posOriginT.y, posTargetT.x, posTargetT.y, color);
 		_vm->_mainFont->drawColor(light->_name, _vm->_surfaceFront, posOriginT.x, posOriginT.y, color);
 	}
+}
+
+void Debugger::drawFogs() {
+	// draw fogs
+	for (Fog *fog = _vm->_scene->_set->_effects->_fogs; fog != nullptr; fog = fog->_next) {
+
+		// Matrix4x3 m = fog->_matrix;
+		// m = invertMatrix(m);
+		Matrix4x3 m = fog->_inverted;
+
+		//todo do this properly
+		Vector3 posOrigin = m * Vector3(0.0f, 0.0f, 0.0f);
+		float t = posOrigin.y;
+		posOrigin.y = posOrigin.z;
+		posOrigin.z = -t;
+
+
+		Vector3 size = Vector3(5.0f, 5.0f, 5.0f);
+		int colorR = (fog->_fogColor.r * 31.0f);
+		int colorG = (fog->_fogColor.g * 31.0f);
+		int colorB = (fog->_fogColor.b * 31.0f);
+		int color = (colorR << 10) + (colorG << 5) + colorB;
+
+		drawBBox(posOrigin - size, posOrigin + size, _vm->_view, &_vm->_surfaceFront, color);
+
+		Vector3 posOriginT = _vm->_view->calculateScreenPosition(posOrigin);
+		// Vector3 posTargetT = _vm->_view->calculateScreenPosition(posTarget);
+		// _vm->_surfaceFront.drawLine(posOriginT.x, posOriginT.y, posTargetT.x, posTargetT.y, color);
+		_vm->_mainFont->drawColor(fog->_name, _vm->_surfaceFront, posOriginT.x, posOriginT.y, color);
+	}
+}
 
-	//draw waypoints
+void Debugger::drawRegions() {
+	//draw regions
+	for (int i = 0; i < 10; i++) {
+		Regions::Region *region = &_vm->_scene->_regions->_regions[i];
+		if (!region->present) continue;
+		_vm->_surfaceFront.frameRect(region->rectangle, 0x001F); // 00000 00000 11111
+	}
+
+	//draw exits
+	for (int i = 0; i < 10; i++) {
+		Regions::Region *region = &_vm->_scene->_exits->_regions[i];
+		if (!region->present) continue;
+		_vm->_surfaceFront.frameRect(region->rectangle, 0x7FFF); // 11111 11111 11111
+	}
+}
+
+void Debugger::drawWaypoints() {
+	//draw world waypoints
 	for (int i = 0; i < _vm->_waypoints->_count; i++) {
 		Waypoints::Waypoint *waypoint = &_vm->_waypoints->_waypoints[i];
 		if(waypoint->setId != _vm->_scene->getSetId()) {
@@ -760,11 +859,27 @@ void Debugger::drawSceneObjects() {
 		sprintf(fleeText, "flee %i", i);
 		_vm->_mainFont->drawColor(fleeText, _vm->_surfaceFront, spos.x, spos.y, color);
 	}
+}
 
-#if 0
+void Debugger::drawWalkboxes() {
+	//draw walkboxes
+	for (int i = 0; i < _vm->_scene->_set->_walkboxCount; i++) {
+		Set::Walkbox *walkbox = &_vm->_scene->_set->_walkboxes[i];
+
+		for (int j = 0; j < walkbox->vertexCount; j++) {
+			Vector3 start = _vm->_view->calculateScreenPosition(walkbox->vertices[j]);
+			Vector3 end = _vm->_view->calculateScreenPosition(walkbox->vertices[(j + 1) % walkbox->vertexCount]);
+			_vm->_surfaceFront.drawLine(start.x, start.y, end.x, end.y, 0x7FE0); // 11111 11111 00000
+			Vector3 pos = _vm->_view->calculateScreenPosition(0.5 * (start + end));
+			_vm->_mainFont->drawColor(walkbox->name, _vm->_surfaceFront, pos.x, pos.y, 0x7FE0); // 11111 11111 00000
+		}
+	}
+}
+
+void Debugger::drawScreenEffects() {
 	//draw aesc
-	for (uint i = 0; i < _screenEffects->_entries.size(); i++) {
-		ScreenEffects::Entry &entry = _screenEffects->_entries[i];
+	for (uint i = 0; i < _vm->_screenEffects->_entries.size(); i++) {
+		ScreenEffects::Entry &entry = _vm->_screenEffects->_entries[i];
 		int j = 0;
 		for (int y = 0; y < entry.height; y++) {
 			for (int x = 0; x < entry.width; x++) {
@@ -779,11 +894,11 @@ void Debugger::drawSceneObjects() {
 					CLIP(color.r * bladeToScummVmConstant, 0, 255),
 					CLIP(color.g * bladeToScummVmConstant, 0, 255),
 					CLIP(color.b * bladeToScummVmConstant, 0, 255));
-				_surfaceFront.fillRect(r, color555);
+				_vm->_surfaceFront.fillRect(r, color555);
 			}
 		}
 	}
-#endif
 }
 
+
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index f801aee..0946e7f 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -40,12 +40,20 @@ class Debugger : public GUI::Debugger{
 	BladeRunnerEngine *_vm;
 
 public:
+	bool _isDebuggerOverlay;
+
 	bool _viewSceneObjects;
 	bool _viewActorsOnly;
+	bool _viewLights;
+	bool _viewFogs;
+	bool _viewRegions;
+	bool _viewWaypoints;
+	bool _viewWalkboxes;
 	bool _viewObstacles;
 	bool _viewUI;
 	bool _viewZBuffer;
 
+
 	Debugger(BladeRunnerEngine *vm);
 	~Debugger();
 
@@ -60,12 +68,21 @@ public:
 	bool cmdScene(int argc, const char **argv);
 	bool cmdVariable(int argc, const char **argv);
 	bool cmdClue(int argc, const char **argv);
+	bool cmdTimer(int argc, const char **argv);
 	bool cmdLoad(int argc, const char **argv);
 	bool cmdSave(int argc, const char **argv);
 
+	void drawDebuggerOverlay();
+
 	void drawBBox(Vector3 start, Vector3 end, View *view, Graphics::Surface *surface, int color);
 	void drawSceneObjects();
-	void drawZBuffer();
+	void drawActors();
+	void drawLights();
+	void drawFogs();
+	void drawRegions();
+	void drawWaypoints();
+	void drawWalkboxes();
+	void drawScreenEffects();
 };
 
 } // End of namespace BladeRunner


Commit: 5475bca1e1996977a45c598d61e186f10c407155
    https://github.com/scummvm/scummvm/commit/5475bca1e1996977a45c598d61e186f10c407155
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-24T22:59:49+01:00

Commit Message:
BLADERUNNER: Skip empty obstacle polygons

It was causing issues in BB07

Changed paths:
    engines/bladerunner/obstacles.cpp


diff --git a/engines/bladerunner/obstacles.cpp b/engines/bladerunner/obstacles.cpp
index 9a8792e..6e038b9 100644
--- a/engines/bladerunner/obstacles.cpp
+++ b/engines/bladerunner/obstacles.cpp
@@ -284,12 +284,20 @@ restart:
 			continue;
 		}
 
+		if (polyA.verticeCount == 0) {
+				continue;
+		}
+
 		for (int j = i+1; j < kPolygonCount; ++j) {
 			Polygon &polyB = _polygons[j];
 			if (!polyB.isPresent) {
 				continue;
 			}
 
+			if (polyB.verticeCount == 0) {
+				continue;
+			}
+
 			if (!overlaps(polyA.rect, polyB.rect)) {
 				continue;
 			}


Commit: 2fd29c5193a0b9e6d3920f0512ce3ca37b00bf7e
    https://github.com/scummvm/scummvm/commit/2fd29c5193a0b9e6d3920f0512ce3ca37b00bf7e
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-24T22:59:49+01:00

Commit Message:
BLADERUNNER: Fixed fog rendering

Fogs were not animated.
Clean up of the fog calculation routines.

Changed paths:
    engines/bladerunner/debugger.cpp
    engines/bladerunner/debugger.h
    engines/bladerunner/fog.cpp
    engines/bladerunner/fog.h
    engines/bladerunner/set_effects.cpp
    engines/bladerunner/set_effects.h
    engines/bladerunner/vector.h


diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index b65088c..996873b 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -61,15 +61,16 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 
 	_isDebuggerOverlay = false;
 
-	_viewSceneObjects = false;
 	_viewActorsOnly = false;
 	_viewLights = false;
 	_viewFogs = false;
+	_viewSceneObjects = false;
+	_viewScreenEffects = false;
+	_viewObstacles = false;
 	_viewRegions = false;
+	_viewUI = false;
 	_viewWaypoints = false;
 	_viewWalkboxes = false;
-	_viewObstacles = false;
-	_viewUI = false;
 	_viewZBuffer = false;
 
 	registerCmd("anim", WRAP_METHOD(Debugger, cmdAnimation));
@@ -122,53 +123,72 @@ bool Debugger::cmdAnimation(int argc, const char **argv) {
 
 bool Debugger::cmdDraw(int argc, const char **argv) {
 	if (argc != 2) {
-		debugPrintf("Enables debug rendering of scene objects, obstacles, ui elements, zbuffer or disables debug rendering.\n");
-		debugPrintf("Usage: %s (obj | reg | lit | fog | way | walk | act | obstacles | ui | zbuf | reset)\n", argv[0]);
+		debugPrintf("Enables debug rendering of actors, screen effect, fogs, lights, scene objects, obstacles, regsions, ui elements, walk boxes, waypoints, zbuffer or disables debug rendering.\n");
+		debugPrintf("Usage: %s (act | eff | fog | lit | obj | obstacles | reg | ui | walk | way | zbuf | reset)\n", argv[0]);
 		return true;
 	}
 
 	Common::String arg = argv[1];
-	if (arg == "obj") {
+	if (arg == "act") {
 		_viewSceneObjects = !_viewSceneObjects;
-		debugPrintf("Drawing scene objects = %i\n", _viewSceneObjects);
-	} else if (arg == "reg") {
-		_viewRegions = !_viewRegions;
-		debugPrintf("Drawing regions = %i\n", _viewRegions);
-	} else if (arg == "lit") {
-		_viewLights = !_viewLights;
-		debugPrintf("Drawing lights = %i\n", _viewLights);
+		_viewActorsOnly = _viewSceneObjects;
+		debugPrintf("Drawing actors = %i\n", _viewSceneObjects);
+	} else if (arg == "eff") {
+		_viewScreenEffects = !_viewScreenEffects;
+		debugPrintf("Drawing screen effects = %i\n", _viewScreenEffects);
 	} else if (arg == "fog") {
 		_viewFogs = !_viewFogs;
 		debugPrintf("Drawing fogs = %i\n", _viewFogs);
-	} else if (arg == "way") {
-		_viewWaypoints = !_viewWaypoints;
-		debugPrintf("Drawing waypoints = %i\n", _viewWaypoints);
-	} else if (arg == "walk") {
-		_viewWalkboxes = !_viewWalkboxes;
-		debugPrintf("Drawing walk boxes = %i\n", _viewWalkboxes);
-	} else if (arg == "actors") {
+	} else if (arg == "lit") {
+		_viewLights = !_viewLights;
+		debugPrintf("Drawing lights = %i\n", _viewLights);
+	} else if (arg == "reg") {
+		_viewRegions = !_viewRegions;
+		debugPrintf("Drawing regions = %i\n", _viewRegions);
+	}else if (arg == "obj") {
 		_viewSceneObjects = !_viewSceneObjects;
-		_viewActorsOnly = _viewSceneObjects;
-		debugPrintf("Drawing scene actors = %i\n", _viewSceneObjects);
+		debugPrintf("Drawing scene objects = %i\n", _viewSceneObjects);
 	} else if (arg == "obstacles") {
 		_viewObstacles = !_viewObstacles;
 		debugPrintf("Drawing obstacles = %i\n", _viewObstacles);
 	} else if (arg == "ui") {
 		_viewUI = !_viewUI;
 		debugPrintf("Drawing UI elements = %i\n", _viewUI);
+	} else if (arg == "way") {
+		_viewWaypoints = !_viewWaypoints;
+		debugPrintf("Drawing waypoints = %i\n", _viewWaypoints);
+	} else if (arg == "walk") {
+		_viewWalkboxes = !_viewWalkboxes;
+		debugPrintf("Drawing walk boxes = %i\n", _viewWalkboxes);
 	} else if (arg == "zbuf") {
 		_viewZBuffer = !_viewZBuffer;
 		debugPrintf("Drawing Z buffer = %i\n", _viewZBuffer);
 	} else if (arg == "reset") {
+		_viewActorsOnly = false;
+		_viewScreenEffects = false;
+		_viewFogs = false;
+		_viewLights = false;
+		_viewObstacles = false;
+		_viewRegions = false;
 		_viewSceneObjects = false;
 		_viewUI = false;
+		_viewWaypoints = false;
+		_viewWalkboxes = false;
 		_viewZBuffer = false;
+
+		debugPrintf("Drawing screen effects = %i\n", _viewScreenEffects);
+		debugPrintf("Drawing fogs = %i\n", _viewFogs);
+		debugPrintf("Drawing lights = %i\n", _viewLights);
+		debugPrintf("Drawing obstacles = %i\n", _viewObstacles);
+		debugPrintf("Drawing regions = %i\n", _viewRegions);
 		debugPrintf("Drawing scene objects = %i\n", _viewSceneObjects);
 		debugPrintf("Drawing UI elements = %i\n", _viewUI);
+		debugPrintf("Drawing waypoints = %i\n", _viewWaypoints);
+		debugPrintf("Drawing walkboxes = %i\n", _viewWalkboxes);
 		debugPrintf("Drawing Z buffer = %i\n", _viewZBuffer);
 	}
 
-	_isDebuggerOverlay = _viewSceneObjects | _viewRegions | _viewLights | _viewFogs | _viewWaypoints | _viewWalkboxes;
+	_isDebuggerOverlay = _viewSceneObjects | _viewScreenEffects | _viewRegions | _viewLights | _viewFogs | _viewWaypoints | _viewWalkboxes;
 	return true;
 }
 
@@ -650,6 +670,7 @@ bool Debugger::cmdSave(int argc, const char **argv) {
 
 void Debugger::drawDebuggerOverlay() {
 	if (_viewSceneObjects) drawSceneObjects();
+	if (_viewScreenEffects) drawScreenEffects();
 	if (_viewLights) drawLights();
 	if (_viewFogs) drawFogs();
 	if (_viewRegions) drawRegions();
@@ -760,13 +781,14 @@ void Debugger::drawLights() {
 
 		Vector3 posOriginT = _vm->_view->calculateScreenPosition(posOrigin);
 		Vector3 posTargetT = _vm->_view->calculateScreenPosition(posTarget);
+
 		_vm->_surfaceFront.drawLine(posOriginT.x, posOriginT.y, posTargetT.x, posTargetT.y, color);
+
 		_vm->_mainFont->drawColor(light->_name, _vm->_surfaceFront, posOriginT.x, posOriginT.y, color);
 	}
 }
 
 void Debugger::drawFogs() {
-	// draw fogs
 	for (Fog *fog = _vm->_scene->_set->_effects->_fogs; fog != nullptr; fog = fog->_next) {
 
 		// Matrix4x3 m = fog->_matrix;
@@ -779,6 +801,10 @@ void Debugger::drawFogs() {
 		posOrigin.y = posOrigin.z;
 		posOrigin.z = -t;
 
+		Vector3 posTarget = m * Vector3(0.0f, 0.0f, -100.0f);
+		t = posTarget.y;
+		posTarget.y = posTarget.z;
+		posTarget.z = -t;
 
 		Vector3 size = Vector3(5.0f, 5.0f, 5.0f);
 		int colorR = (fog->_fogColor.r * 31.0f);
@@ -789,8 +815,11 @@ void Debugger::drawFogs() {
 		drawBBox(posOrigin - size, posOrigin + size, _vm->_view, &_vm->_surfaceFront, color);
 
 		Vector3 posOriginT = _vm->_view->calculateScreenPosition(posOrigin);
-		// Vector3 posTargetT = _vm->_view->calculateScreenPosition(posTarget);
-		// _vm->_surfaceFront.drawLine(posOriginT.x, posOriginT.y, posTargetT.x, posTargetT.y, color);
+		Vector3 posTargetT = _vm->_view->calculateScreenPosition(posTarget);
+
+		// TODO: draw line only for cone fogs, draw boxes or circles for the other types
+		_vm->_surfaceFront.drawLine(posOriginT.x, posOriginT.y, posTargetT.x, posTargetT.y, color);
+
 		_vm->_mainFont->drawColor(fog->_name, _vm->_surfaceFront, posOriginT.x, posOriginT.y, color);
 	}
 }
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index 0946e7f..9b3d169 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -42,15 +42,16 @@ class Debugger : public GUI::Debugger{
 public:
 	bool _isDebuggerOverlay;
 
-	bool _viewSceneObjects;
 	bool _viewActorsOnly;
-	bool _viewLights;
 	bool _viewFogs;
+	bool _viewLights;
+	bool _viewScreenEffects;
+	bool _viewSceneObjects;
+	bool _viewObstacles;
 	bool _viewRegions;
+	bool _viewUI;
 	bool _viewWaypoints;
 	bool _viewWalkboxes;
-	bool _viewObstacles;
-	bool _viewUI;
 	bool _viewZBuffer;
 
 
diff --git a/engines/bladerunner/fog.cpp b/engines/bladerunner/fog.cpp
index cb8235b..dac7f29 100644
--- a/engines/bladerunner/fog.cpp
+++ b/engines/bladerunner/fog.cpp
@@ -43,9 +43,6 @@ Fog::Fog() {
 	_m32ptr             = nullptr;
 	_m33ptr             = nullptr;
 	_m34ptr             = nullptr;
-	_parameter1         = 0.0f;
-	_parameter2         = 0.0f;
-	_parameter3         = 0.0f;
 	_next               = nullptr;
 }
 
@@ -74,14 +71,14 @@ void Fog::readAnimationData(Common::ReadStream *stream, int size) {
 	}
 
 	_m11ptr = _animationData;
-	_m12ptr = _m11ptr + (_animatedParameters & 0x1 ? _frameCount : 1);
-	_m13ptr = _m12ptr + (_animatedParameters & 0x2 ? _frameCount : 1);
-	_m14ptr = _m13ptr + (_animatedParameters & 0x4 ? _frameCount : 1);
-	_m21ptr = _m14ptr + (_animatedParameters & 0x08 ? _frameCount : 1);
-	_m22ptr = _m21ptr + (_animatedParameters & 0x10 ? _frameCount : 1);
-	_m23ptr = _m22ptr + (_animatedParameters & 0x20 ? _frameCount : 1);
-	_m24ptr = _m23ptr + (_animatedParameters & 0x40 ? _frameCount : 1);
-	_m31ptr = _m24ptr + (_animatedParameters & 0x80 ? _frameCount : 1);
+	_m12ptr = _m11ptr + (_animatedParameters &   0x1 ? _frameCount : 1);
+	_m13ptr = _m12ptr + (_animatedParameters &   0x2 ? _frameCount : 1);
+	_m14ptr = _m13ptr + (_animatedParameters &   0x4 ? _frameCount : 1);
+	_m21ptr = _m14ptr + (_animatedParameters &   0x8 ? _frameCount : 1);
+	_m22ptr = _m21ptr + (_animatedParameters &  0x10 ? _frameCount : 1);
+	_m23ptr = _m22ptr + (_animatedParameters &  0x20 ? _frameCount : 1);
+	_m24ptr = _m23ptr + (_animatedParameters &  0x40 ? _frameCount : 1);
+	_m31ptr = _m24ptr + (_animatedParameters &  0x80 ? _frameCount : 1);
 	_m32ptr = _m31ptr + (_animatedParameters & 0x100 ? _frameCount : 1);
 	_m33ptr = _m32ptr + (_animatedParameters & 0x200 ? _frameCount : 1);
 	_m34ptr = _m33ptr + (_animatedParameters & 0x400 ? _frameCount : 1);
@@ -94,14 +91,14 @@ void Fog::reset() {
 
 void Fog::setupFrame(int frame) {
 	int offset = frame % _frameCount;
-	_matrix._m[0][0] = (_animatedParameters & 0x1 ? _m11ptr[offset] : *_m11ptr);
-	_matrix._m[0][1] = (_animatedParameters & 0x2 ? _m12ptr[offset] : *_m12ptr);
-	_matrix._m[0][2] = (_animatedParameters & 0x4 ? _m13ptr[offset] : *_m13ptr);
-	_matrix._m[0][3] = (_animatedParameters & 0x8 ? _m14ptr[offset] : *_m14ptr);
-	_matrix._m[1][0] = (_animatedParameters & 0x10 ? _m21ptr[offset] : *_m21ptr);
-	_matrix._m[1][1] = (_animatedParameters & 0x20 ? _m22ptr[offset] : *_m22ptr);
-	_matrix._m[1][2] = (_animatedParameters & 0x40 ? _m23ptr[offset] : *_m23ptr);
-	_matrix._m[1][3] = (_animatedParameters & 0x80 ? _m24ptr[offset] : *_m24ptr);
+	_matrix._m[0][0] = (_animatedParameters &   0x1 ? _m11ptr[offset] : *_m11ptr);
+	_matrix._m[0][1] = (_animatedParameters &   0x2 ? _m12ptr[offset] : *_m12ptr);
+	_matrix._m[0][2] = (_animatedParameters &   0x4 ? _m13ptr[offset] : *_m13ptr);
+	_matrix._m[0][3] = (_animatedParameters &   0x8 ? _m14ptr[offset] : *_m14ptr);
+	_matrix._m[1][0] = (_animatedParameters &  0x10 ? _m21ptr[offset] : *_m21ptr);
+	_matrix._m[1][1] = (_animatedParameters &  0x20 ? _m22ptr[offset] : *_m22ptr);
+	_matrix._m[1][2] = (_animatedParameters &  0x40 ? _m23ptr[offset] : *_m23ptr);
+	_matrix._m[1][3] = (_animatedParameters &  0x80 ? _m24ptr[offset] : *_m24ptr);
 	_matrix._m[2][0] = (_animatedParameters & 0x100 ? _m31ptr[offset] : *_m31ptr);
 	_matrix._m[2][1] = (_animatedParameters & 0x200 ? _m32ptr[offset] : *_m32ptr);
 	_matrix._m[2][2] = (_animatedParameters & 0x400 ? _m33ptr[offset] : *_m33ptr);
@@ -109,175 +106,119 @@ void Fog::setupFrame(int frame) {
 	_inverted = invertMatrix(_matrix);
 }
 
-void FogCone::read(Common::ReadStream *stream, int frameCount) {
+void FogSphere::read(Common::ReadStream *stream, int frameCount) {
 	_frameCount = frameCount;
 	int size = readCommon(stream);
-	_parameter1 = stream->readFloatLE();
+	_radius = stream->readFloatLE();
 	readAnimationData(stream, size - 52);
 }
 
-void FogCone::calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient) {
+void FogSphere::calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient) {
 	*coeficient = 0.0f;
 
-	Vector3 positionT = _matrix * position;
-	Vector3 viewPositionT = _matrix * viewPosition;
-
-	Vector3 vectorT = (viewPositionT - positionT).normalize();
-
-	float v67 = - positionT.x * vectorT.x - positionT.y * vectorT.y - positionT.z * vectorT.z;
-	float v66 = - (positionT.z * positionT.z) - (positionT.y * positionT.y) - (positionT.x * positionT.x) + (v67 * v67) + (_parameter1 * _parameter1);
+	// ray - sphere intersection, where sphere center is always at 0, 0, 0 as everything else tranformed by the fog matrix
+	Vector3 rayOrigin = _matrix * position;
+	Vector3 rayDestination = _matrix * viewPosition;
+	Vector3 rayDirection = (rayDestination - rayOrigin).normalize();
 
-	if (v66 >= 0.0f) {
-		float v24 = sqrt(v66);
+	float b = Vector3::dot(rayDirection, rayOrigin);
+	float c = Vector3::dot(rayOrigin, rayOrigin) - (_radius * _radius);
+	float t = b * b - c;
 
-		Vector3 v29 = positionT + (v67 - v24) * vectorT;
-		Vector3 v36 = positionT + (v67 + v24) * vectorT;
+	if (t >= 0.0f) { // there is an interstection between ray and the sphere
+		Vector3 intersection1 = rayOrigin + (-b - sqrt(t)) * rayDirection;
+		Vector3 intersection2 = rayOrigin + (-b + sqrt(t)) * rayDirection;
 
-		Vector3 v39 = _inverted * v29;
-		Vector3 v42 = _inverted * v36;
+		Vector3 intersection1World = _inverted * intersection1;
+		Vector3 intersection2World = _inverted * intersection2;
 
-		float v74 = (v39 - position).length();
-		float v76 = (v42 - position).length();
+		float intersection1Distance = (intersection1World - position).length();
+		float intersection2Distance = (intersection2World - position).length();
 
-		Vector3 vector = viewPosition - position;
+		float distance = (viewPosition - position).length();
 
-		float vectorLength = vector.length();
-
-		if (v74 < 0.0f) {
-			v74 = 0.0f;
+		if (intersection1Distance < 0.0f) {
+			intersection1Distance = 0.0f;
 		}
-		if (v76 > vectorLength) {
-			v76 = vectorLength;
+		if (intersection2Distance > distance) {
+			intersection2Distance = distance;
 		}
-		if (v76 >= v74) {
-			*coeficient = v76 - v74;
+		if (intersection2Distance >= intersection1Distance) {
+			*coeficient = intersection2Distance - intersection1Distance;
 		}
 	}
 }
 
-void FogSphere::read(Common::ReadStream *stream, int frameCount) {
+void FogCone::read(Common::ReadStream *stream, int frameCount) {
 	_frameCount = frameCount;
 	int size = readCommon(stream);
-	_parameter1 = stream->readFloatLE();
+	_coneAngle = stream->readFloatLE();
 	readAnimationData(stream, size - 52);
 }
 
-void FogSphere::calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient) {
+void FogCone::calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient) {
 	*coeficient = 0.0f;
 
+	// ray - cone intersection, cone vertex V lies at (0,0,0) and direction v = (0,0,-1)
+	// The algorithm looks like from book Alan W. Paeth (1995), Graphics Gems V (p. 228-230)
+
 	Vector3 positionT = _matrix * position;
 	Vector3 viewPositionT = _matrix * viewPosition;
 
-	Vector3 v158 = Vector3::cross(positionT, viewPositionT);
-
-	if (v158.x != 0.0f || v158.y != 0.0f || v158.z != 0.0f) {
-		Vector3 v167 = v158.normalize();
-		if (v167.z < 0.0f) {
-			v167 = -1.0f * v167;
-		}
+	Vector3 v(0.0f, 0.0f, -1.0f);
 
-		float v173 = sqrt(1.0f - v167.z * v167.z);
-		if (v173 > cos(_parameter1)) {
-			Vector3 v37 = Vector3(v167.y, -v167.x, 0.0f).normalize();
+	Vector3 planeNormal = Vector3::cross(positionT, viewPositionT).normalize();
 
-			float v41 = 1.0f / v173 / v173 - 1.0f;
-			float v42 = sqrt(v41);
-			float v43 = tan(_parameter1);
-			float v44 = sqrt(v43 * v43 - v41);
+	if (planeNormal.x != 0.0f || planeNormal.y != 0.0f || planeNormal.z != 0.0f) {
 
-			Vector3 v45 = v44 * v37;
+		if (planeNormal.z < 0.0f) {
+			planeNormal = -1.0f * planeNormal;
+		}
 
-			Vector3 v48 = Vector3(
-				-v37.y * v42,
-				v37.x * v42,
-				0.0f * v42);
+		float cosTheta = sqrt(1.0f - Vector3::dot(planeNormal, v) * Vector3::dot(planeNormal, v));
 
-			Vector3 v51 = v48 + Vector3(0.0f, 0.0f, -1.0f);
+		if (cosTheta > cos(_coneAngle)) {
+			Vector3 u = Vector3::cross(v, planeNormal).normalize();
+			Vector3 w = Vector3::cross(u, v).normalize();
 
-			Vector3 v186 = v51 - v45;
-			Vector3 v183 = v51 + v45;
+			float tanTheta = sqrt(1.0f - cosTheta * cosTheta) / cosTheta;
 
-			Vector3 vector = viewPositionT - positionT;
+			Vector3 temp1 = tanTheta * w;
+			Vector3 temp2 = sqrt(tan(_coneAngle) * tan(_coneAngle) - tanTheta * tanTheta) * u;
 
-			Vector3 v177 = -1.0f * positionT;
-			Vector3 v174 = Vector3::cross(v186, vector);
+			Vector3 delta1 = v + temp1 - temp2;
+			Vector3 delta2 = v + temp1 + temp2;
 
-			float v189, v191;
-			if (fabs(v174.x) <= fabs(v174.y)) {
-				if (fabs(v174.y) <= fabs(v174.z)) {
-					v191 = v177.x * v186.y - v177.y * v186.x;
-					v189 = v186.y * vector.x - v186.x * vector.y;
-				} else {
-					v191 = v177.z * v186.x - v186.z * v177.x;
-					v189 = v186.x * vector.z - v186.z * vector.x;
-				}
-			} else {
-				if (fabs(v174.x) <= fabs(v174.z)) {
-					v191 = v177.x * v186.y - v177.y * v186.x;
-					v189 = v186.y * vector.x - v186.x * vector.y;
-				} else {
-					v191 = v186.z * v177.y - v186.y * v177.z;
-					v189 = v186.z * vector.y - v186.y * vector.z;
-				}
-			}
+			Vector3 d = viewPositionT - positionT;
+			Vector3 vecVD = -1.0f * positionT;
 
-			float v88;
-			if (v189 == 0.0f) {
-				v88 = 0.0f;
-			} else {
-				v88 = v191 / v189;
-			}
+			Vector3 crossddelta1 = Vector3::cross(d, delta1);
+			Vector3 crossddelta2 = Vector3::cross(d, delta2);
 
-			Vector3 v196 = -1.0f * positionT;
-			Vector3 v193 = Vector3::cross(v183, vector);
-
-			float v190, v192;
-			if (fabs(v193.x) <= fabs(v193.y)) {
-				if (fabs(v193.y) <= fabs(v193.z)) {
-					v192 = v196.x * v183.y - v196.y * v183.x;
-					v190 = v183.y * vector.x - v183.x * vector.y;
-				} else {
-					v192 = v196.z * v183.x - v183.z * v196.x;
-					v190 = v183.x * vector.z - v183.z * vector.x;
-				}
-			} else {
-				if (fabs(v193.x) <= fabs(v193.z)) {
-					v192 = v196.x * v183.y - v196.y * v183.x;
-					v190 = v183.y * vector.x - v183.x * vector.y;
-				} else {
-					v192 = v183.z * v196.y - v183.y * v196.z;
-					v190 = v183.z * vector.y - v183.y * vector.z;
-				}
-			}
+			float r1 = Vector3::dot(Vector3::cross(vecVD, delta1), crossddelta1) / Vector3::dot(crossddelta1, crossddelta1);
+			float r2 = Vector3::dot(Vector3::cross(vecVD, delta2), crossddelta2) / Vector3::dot(crossddelta2, crossddelta2);
 
-			float v114;
-			if (v190 == 0.0f) {
-				v114 = 0.0f;
-			} else {
-				v114 = v192 / v190;
+			if (r2 < r1) {
+				float temp = r1;
+				r1 = r2;
+				r2 = temp;
 			}
 
-			if (v114 < v88) {
-				float temp = v88;
-				v88 = v114;
-				v114 = temp;
-			}
-
-			if (v88 <= 1.0f && v114 >= 0.0f) {
-				if (v88 < 0.0f) {
-					v88 = 0.0;
+			if (r1 <= 1.0f && r2 >= 0.0f) {
+				if (r1 < 0.0f) {
+					r1 = 0.0;
 				}
-				if (v114 > 1.0f) {
-					v114 = 1.0;
+				if (r2 > 1.0f) {
+					r2 = 1.0;
 				}
 
-				Vector3 v139 = positionT + (v88 * vector);
-				Vector3 v142 = _inverted * v139;
+				Vector3 intersection1 = positionT + (r1 * d);
+				Vector3 intersection1World = _inverted * intersection1;
 
-				Vector3 v148 = positionT + (v114 * vector);
-				Vector3 v151 = _inverted * v148;
+				Vector3 intersection2 = positionT + (r2 * d);
+				Vector3 intersection2World = _inverted * intersection2;
 
-				*coeficient = (v151 - v142).length();
+				*coeficient = (intersection2World - intersection1World).length();
 			}
 		}
 	}
@@ -286,111 +227,101 @@ void FogSphere::calculateCoeficient(Vector3 position, Vector3 viewPosition, floa
 void FogBox::read(Common::ReadStream *stream, int frameCount) {
 	_frameCount = frameCount;
 	int size = readCommon(stream);
-	_parameter1 = stream->readFloatLE();
-	_parameter2 = stream->readFloatLE();
-	_parameter3 = stream->readFloatLE();
+	_size.x = stream->readFloatLE();
+	_size.y = stream->readFloatLE();
+	_size.z = stream->readFloatLE();
 	readAnimationData(stream, size - 60);
 }
 
 void FogBox::calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient) {
-	Vector3 positionT = _matrix * position;
-	Vector3 viewPositionT = _matrix * viewPosition;
+	*coeficient = 0.0f;
+
+	// line - box intersection, where everything is rotated to box orientation by the fog matrix
+
+	Vector3 point1 = _matrix * position;
+	Vector3 point2 = _matrix * viewPosition;
 
-	Vector3 positionTadj = positionT;
-	Vector3 viewPositionTadj = viewPositionT;
+	Vector3 intersection1 = point1;
+	Vector3 intersection2 = point2;
 
-	Vector3 direction = viewPositionT - positionT;
+	Vector3 direction = point2 - point1;
 
-	float parameter1half = _parameter1 * 0.5f;
-	if (positionT.x < -parameter1half) {
-		if (viewPositionT.x < -parameter1half) {
-			*coeficient = 0.0f;
+	// clip X
+	float minX = -(_size.x * 0.5f);
+	if (point1.x < minX) {
+		if (point2.x < minX) {
 			return;
 		}
-		float v28 = (-positionT.x - parameter1half) / direction.x;
-		Vector3 v29 = v28 * direction;
-		positionTadj = positionT + v29;
-	} else if (viewPositionT.x < -parameter1half) {
-		float v19 = (-viewPositionT.x - parameter1half) / direction.x;
-		Vector3 v20 = v19 * direction;
-		viewPositionTadj = viewPositionT + v20;
+		float scale = (minX - point1.x) / direction.x;
+		intersection1 = point1 + scale * direction;
+	} else if (point2.x < minX) {
+		float scale = (minX - point2.x) / direction.x;
+		intersection2 = point2 + scale * direction;
 	}
 
-	if (parameter1half < positionTadj.x) {
-		if (parameter1half < viewPositionTadj.x) {
-			*coeficient = 0.0f;
+	float maxX = _size.x * 0.5f;
+	if (intersection1.x > maxX ) {
+		if (intersection2.x > maxX) {
 			return;
 		}
-		float v48 = (parameter1half - positionTadj.x) / direction.x;
-		Vector3 v49 = v48 * direction;
-		positionTadj = positionTadj + v49;
-	} else if (parameter1half < viewPositionTadj.x) {
-		float v40 = (parameter1half - viewPositionTadj.x) / direction.x;
-		Vector3 v41 = v40 * direction;
-		viewPositionTadj = viewPositionTadj + v41;
+		float scale = (maxX - intersection1.x) / direction.x;
+		intersection1 = intersection1 + scale * direction;
+	} else if (intersection2.x > maxX) {
+		float scale = (maxX - intersection2.x) / direction.x;
+		intersection2 = intersection2 + scale * direction;
 	}
 
-	float parameter2half = _parameter2 * 0.5f;
-	if (positionTadj.y < -parameter2half) {
-		if (viewPositionTadj.y < -parameter2half) {
-			*coeficient = 0.0f;
+	// clip Y
+	float minY = -(_size.y * 0.5f);
+	if (intersection1.y < minY) {
+		if (intersection2.y < minY) {
 			return;
 		}
-		float v71 = (-positionTadj.y - parameter2half) / direction.y;
-		Vector3 v72 = v71 * direction;
-		positionTadj = positionTadj + v72;
-	} else if (viewPositionTadj.y < -parameter2half) {
-		float v62 = (-viewPositionTadj.y - parameter2half) / direction.y;
-		Vector3 v63 = v62 * direction;
-		viewPositionTadj = viewPositionTadj + v63;
+		float scale = (minY - intersection1.y) / direction.y;
+		intersection1 = intersection1 + scale * direction;
+	} else if (intersection2.y < minY) {
+		float scale = (minY - intersection2.y) / direction.y;
+		intersection2 = intersection2 + scale * direction;
 	}
 
-	if (parameter2half < positionTadj.y) {
-		if (parameter2half < viewPositionTadj.y) {
-			*coeficient = 0.0f;
+	float maxY = _size.y * 0.5f;
+	if (intersection1.y > maxY) {
+		if (intersection2.y > maxY) {
 			return;
 		}
-		float v91 = (parameter2half - positionTadj.y) / direction.y;
-		Vector3 v92 = v91 * direction;
-		positionTadj = positionTadj + v92;
-	} else if (parameter2half < viewPositionTadj.y) {
-		float v83 = (parameter2half - viewPositionTadj.y) / direction.y;
-		Vector3 v84 = v83 * direction;
-		viewPositionTadj = viewPositionTadj + v84;
+		float scale = (maxY - intersection1.y) / direction.y;
+		intersection1 = intersection1 + scale * direction;
+	} else if (intersection2.y > maxY) {
+		float scale = (maxY - intersection2.y) / direction.y;
+		intersection2 = intersection2 + scale * direction;
 	}
 
-	if (0.0f > positionTadj.z) {
-		if (0.0f > viewPositionTadj.z) {
-			*coeficient = 0.0f;
+	// clip Z
+	if (intersection1.z < 0.0f) {
+		if (intersection2.z < 0.0f) {
 			return;
 		}
-		float v111 = -positionTadj.z / direction.z;
-		Vector3 v112 = v111 * direction;
-		positionTadj = positionTadj + v112;
-	} else if (0.0f > viewPositionTadj.z) {
-		float v103 = -viewPositionTadj.z / direction.z;
-		Vector3 v104 = v103 * direction;
-		viewPositionTadj = viewPositionTadj + v104;
+		float scale = -intersection1.z / direction.z;
+		intersection1 = intersection1 + scale * direction;
+	} else if (intersection2.z < 0.0f) {
+		float scale = -intersection2.z / direction.z;
+		intersection2 = intersection2 + scale * direction;
 	}
 
-	if (positionTadj.z > _parameter3) {
-		if (viewPositionTadj.z > _parameter3) {
-			*coeficient = 0.0f;
+	if (intersection1.z > _size.z) {
+		if (intersection2.z > _size.z) {
 			return;
 		}
-		float v132 = (_parameter3 - positionTadj.z) / direction.z;
-		Vector3 v133 = v132 * direction;
-		positionTadj = positionTadj + v133;
-	} else if (viewPositionTadj.z > _parameter3) {
-		float v124 = (_parameter3 - viewPositionTadj.z) / direction.z;
-		Vector3 v125 = v124 * direction;
-		viewPositionTadj = viewPositionTadj + v125;
+		float scale = (_size.z - intersection1.z) / direction.z;
+		intersection1 = intersection1 + scale * direction;
+	} else if (intersection2.z > _size.z) {
+		float scale = (_size.z - intersection2.z) / direction.z;
+		intersection2 = intersection2 + scale * direction;
 	}
 
-	Vector3 v137 = _inverted * positionTadj;
-	Vector3 v140 = _inverted * viewPositionTadj;
-	Vector3 v143 = v140 - v137;
+	Vector3 intersection1World = _inverted * intersection1;
+	Vector3 intersection2World = _inverted * intersection2;
 
-	*coeficient = v143.length();
+	*coeficient = (intersection2World - intersection1World).length();
 }
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/fog.h b/engines/bladerunner/fog.h
index e952d24..d9e32f6 100644
--- a/engines/bladerunner/fog.h
+++ b/engines/bladerunner/fog.h
@@ -36,6 +36,7 @@ class SetEffects;
 
 class Fog {
 	friend class SetEffects;
+	friend class Debugger;
 
 protected:
 	Common::String _name;
@@ -60,10 +61,6 @@ protected:
 	float     *_m33ptr;
 	float     *_m34ptr;
 
-	float      _parameter1;
-	float      _parameter2;
-	float      _parameter3;
-
 	Fog       *_next;
 
 public:
@@ -82,17 +79,29 @@ protected:
 
 };
 
-class FogCone : public Fog {
+class FogSphere : public Fog {
+private:
+	float _radius = 0.0f;
+
+public:
 	void read(Common::ReadStream *stream, int frameCount);
 	void calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient);
 };
 
-class FogSphere : public Fog {
+class FogCone : public Fog {
+private:
+	float _coneAngle = 0.0f;
+
+public:
 	void read(Common::ReadStream *stream, int frameCount);
 	void calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient);
 };
 
 class FogBox : public Fog {
+private:
+	Vector3 _size;
+
+public:
 	void read(Common::ReadStream *stream, int frameCount);
 	void calculateCoeficient(Vector3 position, Vector3 viewPosition, float *coeficient);
 };
diff --git a/engines/bladerunner/set_effects.cpp b/engines/bladerunner/set_effects.cpp
index 3d46e41..99cb030 100644
--- a/engines/bladerunner/set_effects.cpp
+++ b/engines/bladerunner/set_effects.cpp
@@ -58,10 +58,10 @@ void SetEffects::read(Common::ReadStream *stream, int frameCount) {
 		Fog *fog = nullptr;
 		switch (type) {
 		case 0:
-			fog = new FogCone();
+			fog = new FogSphere();
 			break;
 		case 1:
-			fog = new FogSphere();
+			fog = new FogCone();
 			break;
 		case 2:
 			fog = new FogBox();
@@ -92,6 +92,9 @@ void SetEffects::reset() {
 }
 
 void SetEffects::setupFrame(int frame) {
+	for (Fog *fog = _fogs; fog != nullptr; fog = fog->_next) {
+		fog->setupFrame(frame);
+	}
 }
 
 void SetEffects::setFadeColor(float r, float g, float b) {
diff --git a/engines/bladerunner/set_effects.h b/engines/bladerunner/set_effects.h
index 6bd139c..6145b48 100644
--- a/engines/bladerunner/set_effects.h
+++ b/engines/bladerunner/set_effects.h
@@ -32,6 +32,8 @@
 namespace BladeRunner {
 
 class SetEffects {
+	friend class Debugger;
+
 	BladeRunnerEngine *_vm;
 
 	Color _distanceColor;
diff --git a/engines/bladerunner/vector.h b/engines/bladerunner/vector.h
index d5d6365..52883cb 100644
--- a/engines/bladerunner/vector.h
+++ b/engines/bladerunner/vector.h
@@ -55,8 +55,11 @@ public:
 
 	Vector3(float ax, float ay, float az) : x(ax), y(ay), z(az) {}
 
-	float length() { return sqrt(x * x + y * y + z * z); }
-	Vector3 normalize() {
+	inline float length() {
+		return sqrt(x * x + y * y + z * z);
+	}
+
+	inline Vector3 normalize() {
 		float len = length();
 		if (len == 0) {
 			return Vector3(0.0f, 0.0f, 0.0f);
@@ -64,13 +67,17 @@ public:
 		return Vector3(x / len, y / len, z / len);
 	}
 
-	static Vector3 cross(Vector3 a, Vector3 b) {
+	inline static Vector3 cross(Vector3 a, Vector3 b) {
 		return Vector3(
 			a.y * b.z - a.z * b.y,
 			a.z * b.x - a.x * b.z,
 			a.x * b.y - a.y * b.x);
 	}
 
+	inline static float dot(Vector3 a, Vector3 b) {
+		return a.x * b.x + a.y * b.y + a.z * b.z;
+	}
+
 	Vector2 xz() const {
 		return Vector2(x, z);
 	}


Commit: 2cc09b6b1097007b6eeac12882c03475e56e1be0
    https://github.com/scummvm/scummvm/commit/2cc09b6b1097007b6eeac12882c03475e56e1be0
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-24T23:05:13+01:00

Commit Message:
BLADERUNNER: Fixes for game scripts & cleanup

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/ai/dektora.cpp
    engines/bladerunner/script/ai/early_q.cpp
    engines/bladerunner/script/ai/gaff.cpp
    engines/bladerunner/script/ai/gordo.cpp
    engines/bladerunner/script/ai/holloway.cpp
    engines/bladerunner/script/ai/howie_lee.cpp
    engines/bladerunner/script/ai/insect_dealer.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/mutant1.cpp
    engines/bladerunner/script/ai/mutant2.cpp
    engines/bladerunner/script/ai/mutant3.cpp
    engines/bladerunner/script/ai/officer_grayford.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/steele.cpp
    engines/bladerunner/script/ai/transient.cpp
    engines/bladerunner/script/ai/zuben.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/esper_script.cpp
    engines/bladerunner/script/init_script.cpp
    engines/bladerunner/script/scene/ar01.cpp
    engines/bladerunner/script/scene/ar02.cpp
    engines/bladerunner/script/scene/bb01.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/bb06.cpp
    engines/bladerunner/script/scene/bb07.cpp
    engines/bladerunner/script/scene/bb12.cpp
    engines/bladerunner/script/scene/bb51.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/ct02.cpp
    engines/bladerunner/script/scene/ct03.cpp
    engines/bladerunner/script/scene/ct04.cpp
    engines/bladerunner/script/scene/ct05.cpp
    engines/bladerunner/script/scene/ct06.cpp
    engines/bladerunner/script/scene/ct11.cpp
    engines/bladerunner/script/scene/ct12.cpp
    engines/bladerunner/script/scene/dr01.cpp
    engines/bladerunner/script/scene/dr02.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/hf05.cpp
    engines/bladerunner/script/scene/hf07.cpp
    engines/bladerunner/script/scene/ma01.cpp
    engines/bladerunner/script/scene/ma02.cpp
    engines/bladerunner/script/scene/ma04.cpp
    engines/bladerunner/script/scene/ma07.cpp
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/nr04.cpp
    engines/bladerunner/script/scene/ps01.cpp
    engines/bladerunner/script/scene/ps04.cpp
    engines/bladerunner/script/scene/ps05.cpp
    engines/bladerunner/script/scene/ps07.cpp
    engines/bladerunner/script/scene/ps14.cpp
    engines/bladerunner/script/scene/rc01.cpp
    engines/bladerunner/script/scene/rc02.cpp
    engines/bladerunner/script/scene/rc03.cpp
    engines/bladerunner/script/scene/rc51.cpp
    engines/bladerunner/script/scene/tb02.cpp
    engines/bladerunner/script/scene/tb07.cpp
    engines/bladerunner/script/scene/ug01.cpp
    engines/bladerunner/script/scene/ug02.cpp
    engines/bladerunner/script/scene/ug03.cpp
    engines/bladerunner/script/scene/ug04.cpp
    engines/bladerunner/script/scene/ug05.cpp
    engines/bladerunner/script/scene/ug06.cpp
    engines/bladerunner/script/scene/ug09.cpp
    engines/bladerunner/script/scene/ug10.cpp
    engines/bladerunner/script/scene/ug12.cpp
    engines/bladerunner/script/scene/ug13.cpp
    engines/bladerunner/script/scene/ug14.cpp
    engines/bladerunner/script/scene/ug15.cpp
    engines/bladerunner/script/scene/ug16.cpp
    engines/bladerunner/script/scene/ug17.cpp
    engines/bladerunner/script/scene/ug19.cpp
    engines/bladerunner/script/scene_script.h


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 52ef19c..b14b720 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -442,17 +442,17 @@ enum Flags {
 	kFlagNotUsed0 = 0, // is never checked
 	kFlagRC02Entered = 1,
 	// 2 is never used
-	kFlagGotOfficersStatement = 3,
-	kFlagRC02FirstLeave = 4,
+	kFlagRC01GotOfficersStatement = 3,
+	kFlagRC02Left = 4,
 	// 5 is never used
-	kFlagRunciterInterviewA = 6,
+	kFlagRC02RunciterInterview = 6,
 	// 7 is never used
 	kFlagRC01toRC02 = 8,
 	kFlagRC02toRC01 = 9,
 	kFlagDR01toDR04 = 10,
 	kFlagDR04toDR01 = 11,
-	kFlagKleinTalkShellCasings = 12,
-	kFlagKleinTalkOfficersStatement = 13,
+	kFlagPS07KleinTalkShellCasings = 12,
+	kFlagPS07KleinTalkOfficersStatement = 13,
 	kFlagPS10toPS11 = 14,
 	kFlagPS11toPS10 = 15,
 	kFlagPS11toPS12 = 16,
@@ -471,7 +471,7 @@ enum Flags {
 	kFlagCT01ZubenLeft = 29,
 	kFlagNotUsed30 = 30,  // is never set
 	kFlagCT01ZubenGone = 31,
-	kFlagCT01McCoyTalkedToGordo = 32,
+	kFlagCT01GordoTalk = 32,
 	kFlagMA02toMA06 = 33,
 	kFlagMA06ToMA02 = 34,
 	kFlagMA02ToMA04 = 35,
@@ -533,7 +533,7 @@ enum Flags {
 	kFlagCT12toCT11 = 91,
 	// 92 is never used
 	// 93 is never used
-	kFlagWarehouseOpen = 94,
+	kFlagCT05WarehouseOpen = 94,
 	kFlagTB05toTB02 = 95,
 	kFlagTB02toTB05 = 96, // is never checked
 	kFlagTB05toTB06 = 97, // is never checked
@@ -543,14 +543,14 @@ enum Flags {
 	kFlagTB05MonitorDone = 101,
 	kFlagTB06Visited = 102,
 	kFlagNotUsed103 = 103, // is never set
-	kFlagKleinTalkPaintTransfer = 104,
-	kFlagKleinTalkChromeDebris = 105,
-	kFlagIsabellaIntroduced = 106,
+	kFlagPS07KleinTalkPaintTransfer = 104,
+	kFlagPS07KleinTalkChromeDebris = 105,
+	kFlagHC04IsabellaTalk = 106,
 	kFlagHC04toRC03 = 107,
 	kFlagRC03toHC04 = 108,
 	kFlagHC04toHC02 = 109,
 	kFlagHC02toHC04 = 110,
-	kFlagKleinTalkClues = 111,
+	kFlagPS07KleinTalkClues = 111,
 	// 112 is never used
 	// 113 is never used
 	kFlagRC03toRC01 = 114,
@@ -568,7 +568,7 @@ enum Flags {
 	kFlagMcCoyHasOfficersStatement = 126,
 	kFlagMcCoyHasPaintTransfer = 127,
 	kFlagMcCoyHasChromeDebris = 128,
-	kFlagZubenCheckOnMcCoy = 129,
+	kFlagCT01ZubenMcCoyCheck = 129,
 	kFlagPS02toPS01 = 130,
 	kFlagPS02toPS07 = 131,
 	kFlagPS02toPS03 = 132,
@@ -576,52 +576,52 @@ enum Flags {
 	kFlagPS03toPS14 = 134,
 	kFlagPS14toPS03 = 135,
 	kFlagPS05toPS06 = 136,
-	kFlagHomelessTalkedTo = 137,
-	kFlagKleinInsulted = 138,
+	kFlagCT04HomelessTalk = 137,
+	kFlagPS07KleinInsulted = 138,
 	// 139 is never used
 	// 140 is never used
 	kFlagRC51Available = 141,
 	kFlagNotUsed142 = 142, // is never checked
 	// 143 is never used
 	kFlagCT07toCT06 = 144,
-	kFlagZubenPhoto = 145,
+	kFlagCT06ZubenPhoto = 145,
 	kFlagChapter1Ending = 146,
-	kFlagChopstickWrapperTaken = 147,
-	kFlagCandyTaken = 148,
-	kFlagToyDogTaken = 149,
+	kFlagRC51ChopstickWrapperTaken = 147,
+	kFlagRC51CandyTaken = 148,
+	kFlagRC51ToyDogTaken = 149,
 	kFlagNotUsed150 = 150, // has no use
 	kFlagRC03UnlockedToUG01 = 151,
-	kFlagUG15toUG16 = 152,
-	kFlagUG16toUG15 = 153,
+	kFlagUG15toUG16a = 152,
+	kFlagUG16toUG15a = 153,
 	kFlagTB02toTB03 = 154, // is never checked
 	kFlagTB03toTB02 = 155,
-	kFlagKleinInsultedTalk = 156,
+	kFlagPS07KleinInsultedTalk = 156,
 	// 157 is never used
 	kFlagSergeantWallsBuzzInDone = 158,
-	kFlagGuzzaTalkZubenRetired = 159,
-	kFlagGuzzaTalkZubenEscaped = 160,
-	kFlagGuzzaTalk1 = 161,
-	kFlagGuzzaTalk2 = 162,
-	kFlagChromeDebrisTaken = 163,
+	kFlagPS04GuzzaTalkZubenRetired = 159,
+	kFlagPS04GuzzaTalkZubenEscaped = 160,
+	kFlagPS04GuzzaTalk1 = 161,
+	kFlagPS04GuzzaTalk2 = 162,
+	kFlagRC01ChromeDebrisTaken = 163,
 	kFlagIzoArrested = 164,
 	kFlagCrazylegsArrested = 165,
 	kFlagPS09CrazylegsTalk1 = 166,
 	kFlagPS09IzoTalk1 = 167,
 	kFlagPS09IzoTalk2 = 168,
-	kFlagMcCoyKilledHomeless = 169,
-	kFlagHomelessBodyInDumpster = 170,
-	kFlagHomelessBodyFound = 171,
-	kFlagDumpsterEmptied = 172,
-	kFlagHomelessBodyInDumpsterNotChecked = 173, // is never checked
-	kFlagLicensePlaceFound = 174,
+	kFlagCT04HomelessKilledByMcCoy = 169,
+	kFlagCT04HomelessBodyInDumpster = 170,
+	kFlagCT04HomelessBodyFound = 171,
+	kFlagCT04HomelessBodyThrownAway = 172,
+	kFlagCT04HomelessBodyInDumpsterNotChecked = 173, // is never checked
+	kFlagCT04LicensePlaceFound = 174,
 	kFlagPS09CrazylegsTalk2 = 175,
-	kFlagMcCoyAtCTxx = 176,
-	kFlagMcCoyAtDRxx = 177,
-	kFlagMcCoyAtPSxx = 178,
-	kFlagMcCoyAtMAxx = 179,
-	kFlagMcCoyAtARxx = 180,
-	kFlagMcCoyAtNRxx = 181,
-	kFlagMcCoyAtRCxx = 182,
+	kFlagMcCoyInChinaTown = 176,
+	kFlagMcCoyInDNARow = 177,
+	kFlagMcCoyInPoliceStation = 178,
+	kFlagMcCoyInMcCoyApartment = 179,
+	kFlagMcCoyInAnimoidRow = 180,
+	kFlagMcCoyInNightclubRow = 181,
+	kFlagMcCoyInRunciters = 182,
 
 
 
@@ -629,9 +629,9 @@ enum Flags {
 	kFlagRC02TalkedToRunciter = 187,
 	// 188 is never used
 	// 189 is never used
-	kFlagShellCasingsTaken = 190,
+	kFlagRC02ShellCasingsTaken = 190,
 	// 191 is never used
-	kFlagBoughtHowieLeeFood = 192,
+	kFlagCT01BoughtHowieLeeFood = 192,
 	// 193 is never used
 	// 194 is never used
 	// 195 is never used
@@ -696,16 +696,16 @@ enum Flags {
 	kFlagSpinnerAtBB01 = 254,
 	kFlagSpinnerAtNR01 = 255,
 	kFlagSpinnerAtHF01 = 256,
-	kFlagMcCoyAtHFxx = 257,
-	kFlagMcCoyAtBBxx = 258,
-	kFlagMcCoyAtUGxx = 259,
+	kFlagMcCoyInHysteriaHall = 257,
+	kFlagMcCoyInBradburyBuilding = 258,
+	kFlagMcCoyInUnderground = 259,
 	// 260 is never used
-	kFlagMcCoyAtTBxx = 261,
+	kFlagMcCoyInTyrellBuilding = 261,
 	kFlagBB01toBB02 = 262,
 	kFlagBB02toBB01 = 263,
 	kFlagBB01toDR02 = 264,
 	kFlagDR02toBB01 = 265,
-	kFlagMorajiExploded = 266,
+	kFlagDR05JustExploded = 266,
 	kFlagDR03ChewTalk1 = 267,
 	kFlagDR06JesterActive = 268,
 	kFlagDR05BombActivated = 269,
@@ -733,7 +733,7 @@ enum Flags {
 	// 291 is never used
 	kFlagRC04BobTalk2 = 292,
 	kFlagCT02PotTipped = 293,
-	kFlagGaffSpinnerCT12 = 294,
+	kFlagCT12GaffSpinner = 294,
 	kFlagRC04BobShootMcCoy = 295,
 	kFlagRC04McCoyCombatMode = 296,
 	kFlagBB05toBB06 = 297,
@@ -764,17 +764,54 @@ enum Flags {
 	kFlagAR01toHC01 = 322,
 	kFlagHC01toAR01 = 323,
 	kFlagUG01SteamOff = 324,
-
-	kFlagFishDealerTalk = 328,
-	kFlagInsectDealerInterviewed = 329,
-	kFlagHassanTalk = 330,
-	kFlagScorpionsChecked = 331,
-
-	kFlagInsectDealerTalk = 366,
-	kFlagStungByScorpion = 367,
+	kFlagCT04BodyDumped = 325,
+	kFlagBB01Available = 326,
+	// 327 is never used
+	kFlagAR01FishDealerTalk = 328,
+	kFlagAR02InsectDealerInterviewed = 329,
+	kFlagAR02HassanTalk = 330,
+	kFlagAR02ScorpionsChecked = 331,
+	kFlagBB02toBB04 = 332,
+	kFlagBB04toBB02 = 333,
+	kFlagUG03toUG04 = 334, // is never checked
+	kFlagUG04toUG03 = 335,
+	kFlagUG03toUG10 = 336,
+	kFlagUG10toUG03 = 337,
+	kFlagUG04toUG05 = 338, // is never checked
+	kFlagUG05toUG04 = 339,
+	kFlagUG04toUG06 = 340,
+	kFlagUG06toUG04 = 341,
+	kFlagUG06toNR01 = 342,
+	kFlagNR01toUG06 = 343,
+	kFlagUG12toUG14 = 344,
+	kFlagUG14toUG12 = 345, // is never checked
+	kFlagUG14toUG10 = 346,
+	kFlagUG10toUG14 = 347, // is never checked
+	kFlagUG14toUG19 = 348,
+	kFlagUG19toUG14 = 349,
+	kFlagUG15toUG13 = 350,
+	kFlagUG13toUG15 = 351,
+	kFlagUG15toUG17 = 352,
+	kFlagUG17toUG15 = 353,
+	kFlagUG15toUG16b = 354, // is never checked
+	kFlagUG16toUG15b = 355,
+	kFlagUG19toMA07 = 356,
+	kFlagMA07toUG19 = 357,
+	kFlagHF07toHF05 = 358,
+	kFlagHF05toHF07 = 359,
+	kFlagHF07toUG06 = 360,
+	kFlagUG06toHF07 = 361,
+	kFlagBB07toBB06 = 362,
+	kFlagBB06toBB07 = 363,
+	kFlagBB07toBB12 = 364,
+	kFlagBB12toBB07 = 365,
+	kFlagAR02InsectDealerTalk = 366,
+	kFlagAR02StungByScorpion = 367,
 
 	kFlagNotUsed370 = 370, // is never checked
 
+	kFlagAR02DektoraBoughtScorpions = 374,
+
 	kFlagDirectorsCut = 378,
 
 	kFlagHC01toHC02 = 384,
@@ -785,17 +822,20 @@ enum Flags {
 	// 389 is never used
 	// 390 is never used
 
-	KFlagMcCoyAndOfficerLearyTalking = 392,
+	kFlagRC01McCoyAndOfficerLearyTalking = 392,
+	kFlagBB06toBB51 = 393, // is never checked
+	kFlagBB51toBB06a = 394,
+	kFlagBB51toBB06b = 395,
 
-	KFlagMcCoyAndOfficerLearyArtMetaphor = 397,
+	kFlagRC01McCoyAndOfficerLearyArtMetaphor = 397,
 
-	kFlagIzoTalk1 = 400,
-	kFlagIzoTalk2 = 401,
+	kFlagHC01IzoTalk1 = 400,
+	kFlagHC01IzoTalk2 = 401,
 	kFlagHC03Available = 402,
 	kFlagHC03CageOpen = 403,
-	kFlagHawkersBarkeepIntroduction = 404,
-	kFlagHawkersBarkeepBraceletTalk = 405,
-
+	kFlagHC02HawkersBarkeepIntroduction = 404,
+	kFlagHC02HawkersBarkeepBraceletTalk = 405,
+	kFlagUnused406 = 406, // is never checked
 	kFlagUnused407 = 407, // is never checked
 
 	kFlagUG09toCT12 = 432,
@@ -816,34 +856,50 @@ enum Flags {
 	kFlagMcCoyArrested = 465,
 	kFlagUG10GateOpen = 474,
 	kFlagMcCoyAtPS03 = 478, // has no use
-	kFlagMcCoyAtHCxx = 479,
+	kFlagMcCoyInHawkersCircle = 479,
 	kFlagTB06Introduction = 483,
-	kFlagPhotographerToTB06 = 485,
+	kFlagTB06Photographer = 485,
 	kFlagDNARowAvailable = 486,
 	kFlagKIAPrivacyAddon = 487,
+	kFlagDektoraChapter2Started = 489,
 	kFlagCT04HomelessTrashFinish = 492,
+	kFlagBB02ElevatorDown = 493,
+	kFlagBB02Entered = 494,
 	kFlagUG02FromUG01 = 498,
 	kFlagUG02Interactive = 499,
-
+	kFlagAR02DektoraWillBuyScorpions = 504,
+	kFlagDR03ChewTalkExplosion = 505,
 	kFlagDR05ExplodedEntered = 511,
-	kFlagDR05BombExplosionView = 515,
+	kFlagDR05ViewExplosion = 515,
 	kFlagCT07ZubenAttack = 516,
 	kFlagTB06DogCollarTaken = 519,
 	kFlagTB06KitchenBoxTaken = 520,
+	kFlagCT11toDR01 = 531,
+	kFlagGordoTalk1 = 543,
+	kFlagGordoTalk2 = 544,
+	kFlagDR06MannequinHeadOpen = 548,
+	kFlagDR01toCT11 = 558,
 	kFlagKIAPrivacyAddonIntro = 599,
 	kFlagTB07toTB02 = 608,
-	kFlagMcCoySleeping = 647,
-	kFlagPhoneMessageFromClovis = 649,
-	kFlagPhoneMessageFromLucy = 650,
-	kFlagRagiationGooglesTaken = 656,
+	kFlagTB07RachaelTalk = 612,
+	kFlagMA04McCoySleeping = 647,
+	kFlagMA04PhoneMessageFromClovis = 649,
+	kFlagMA04PhoneMessageFromLucy = 650,
+	kFlagUG02RagiationGooglesTaken = 656,
+
 	kFlagDNARowAvailableTalk = 660,
+	kFlagTB07ShadeDown = 661, // is never set
+	kFlagMA07toPS14 = 672,
+	kFlagPS14toMA07 = 673,
 	kFlagChapter2Intro = 678,
+
 	kFlagPS05TV0 = 688,
 	kFlagPS05TV1 = 689,
 	kFlagPS05TV2 = 690,
 	kFlagPS05TV3 = 691,
 	kFlagPS05TV4 = 692,
 	kFlagUG03DeadHomeless = 693,
+	kFlagUG14DeadHomeless = 694,
 	kFlagRC04Locked = 702,
 	kFlagTB06PhotographTalk1 = 707,
 	kFlagUG02AmmoTaken = 708,
@@ -851,6 +907,7 @@ enum Flags {
 	kFlagAR01Entered = 710,
 	kFlagMA04WatchedTV = 711,
 	kFlagMcCoyShotAtZuben = 712,
+	kFlagDR04McCoyShotMoraji = 713,
 	kFlagRC04BobTalk3 = 717,
 	kFlagCT02McCoyFell = 719,
 	kFlagCT02McCoyCombatReady = 720,
@@ -875,6 +932,7 @@ enum Variables {
 	kVariableGenericWalkerCModel = 34,
 	kVariableWalkLoopActor = 37,
 	kVariableWalkLoopRun = 38,
+	kVariableDR06MannequinHeadOpened = 39,
 	kVariableMcCoyDrinks = 42, // is never checked
 	kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy
 	kVariableDNAEvidences = 48,
@@ -937,6 +995,7 @@ enum AnimationModes {
 	kAnimationModeCombatAttack = 6,
 	kAnimationModeCombatWalk = 7,
 	kAnimationModeCombatRun = 8,
+	// 12 - 17 various talk modes
 	kAnimationModeHit = 21,
 	kAnimationModeCombatHit = 22,
 	kAnimationModeSpinnerGetIn = 41,
@@ -965,37 +1024,37 @@ enum SceneLoopMode {
 };
 
 enum Scenes {
-	kSceneAR01 = 0,
-	kSceneAR02 = 1,
-	kSceneBB01 = 2,
-	kSceneBB02 = 3,
-	kSceneBB03 = 4,
-	kSceneBB04 = 5,
-	kSceneBB05 = 6,
-	kSceneBB06 = 7,
+	kSceneAR01 = 0, // Animoid Row - Fish dealer
+	kSceneAR02 = 1, // Animoid Row - Insect dealer
+	kSceneBB01 = 2, // Bradbury building - Outside
+	kSceneBB02 = 3, // Bradbury building - elevator down
+	kSceneBB03 = 4, // Bradbury building - Entrance
+	kSceneBB04 = 5, // Bradbury building - elevator up
+	kSceneBB05 = 6, // Bradbury building - Entry hall
+	kSceneBB06 = 7, // Bradbury building - Billiard room - front
 	kSceneBB07 = 8,
-	kSceneBB08 = 9,
-	kSceneBB09 = 10,
-	kSceneBB10 = 11,
-	kSceneBB11 = 12,
+	kSceneBB08 = 9, // Bradbury building - Bathroom
+	kSceneBB09 = 10, // Bradbury building - Above bathroom
+	kSceneBB10 = 11, // Bradbury building - Cupboard
+	kSceneBB11 = 12, // Bradbury building - Roof
 	kSceneCT01 = 13, // Chinatown - Howie Lee Restaurant
-	kSceneCT02 = 14, // Chinatown - Kitchen
-	kSceneCT03 = 15, // Chinatown - Back alley
+	kSceneCT02 = 14, // Chinatown - Restaurant - Kitchen
+	kSceneCT03 = 15, // Chinatown - Back alley - Restaurant
 	kSceneCT04 = 16, // Chinatown - Back alley - Dumpster
 	kSceneCT05 = 17, // Chinatown - Warehouse - Inside
-	kSceneCT06 = 18, // Chinatown - Passage
+	kSceneCT06 = 18, // Chinatown - Passage from front
 	kSceneCT07 = 19, // Chinatown - Passage form back
 	kSceneCT08 = 20, // Chinatown - Yukon Hotel - Backroom
 	kSceneCT09 = 21, // Chinatown - Yukon Hotel - Lobby
 	kSceneCT10 = 22, // Chinatown - Yukon Hotel - Room
 	kSceneCT11 = 23, // Chinatown - Yukon Hotel - Outside
 	kSceneCT12 = 24, // Chinatown - Warehouse - Outside
-	kSceneDR01 = 25,
-	kSceneDR02 = 26,
-	kSceneDR03 = 27,
-	kSceneDR04 = 28,
-	kSceneDR05 = 29,
-	kSceneDR06 = 30,
+	kSceneDR01 = 25, // DNA Row - Street
+	kSceneDR02 = 26, // DNA Row - Eye world - Outside
+	kSceneDR03 = 27, // DNA Row - Eye world - Inside
+	kSceneDR04 = 28, // DNA Row - Dermo design - Outside
+	kSceneDR05 = 29, // DNA Row - Dermo design - Inside
+	kSceneDR06 = 30, // DNA Row - Twin's office
 	kSceneHC01 = 31, // Hawker's circle - Green pawn - Outside
 	kSceneHC02 = 32, // Hawker's circle - China bar
 	kSceneHC03 = 33, // Hawker's circle - Green pawn - Inside
@@ -1012,7 +1071,7 @@ enum Scenes {
 	kSceneKP04 = 44,
 	kSceneKP05 = 45,
 	kSceneKP06 = 46,
-	kSceneKP07 = 47, // Kipple - Moonbus inside
+	kSceneKP07 = 47, // Kipple - Moonbus - Inside
 	kSceneMA01 = 48, // McCoy's Apartment - Roof
 	kSceneMA02 = 49, // McCoy's Apartment - Living room
 	kSceneMA04 = 50, // McCoy's Apartment - Sleeping room
@@ -1038,19 +1097,19 @@ enum Scenes {
 	kScenePS06 = 70,
 	kScenePS07 = 71,
 	kScenePS09 = 72, // Police Station - Lockup
-	kScenePS10 = 73,
-	kScenePS11 = 74,
-	kScenePS12 = 75,
-	kScenePS13 = 76,
-	kScenePS14 = 77,
+	kScenePS10 = 73, // Police Station - Shooting range 1
+	kScenePS11 = 74, // Police Station - Shooting range 2
+	kScenePS12 = 75, // Police Station - Shooting range 3
+	kScenePS13 = 76, // Police Station - Shooting range 4
+	kScenePS14 = 77, // Police Station - Outside
 	kSceneRC01 = 78, // Runciter - Outside
 	kSceneRC02 = 79, // Runciter - Inside
-	kSceneRC03 = 80, // Bullet Bob - outside
-	kSceneRC04 = 81, // Bullet Bob - inside
-	kSceneTB02 = 82, // Tyrell Building - reception
+	kSceneRC03 = 80, // Bullet Bob - Outside
+	kSceneRC04 = 81, // Bullet Bob - Inside
+	kSceneTB02 = 82, // Tyrell Building - Reception
 	kSceneTB03 = 83,
-	kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - outside
-	kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - inside
+	kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - Iutside
+	kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - Inside
 	kSceneUG01 = 86, // Underground - Under Bullet Bob entrance
 	kSceneUG02 = 87, // Underground - Under Green pawn
 	kSceneUG03 = 88,
@@ -1060,7 +1119,7 @@ enum Scenes {
 	kSceneUG07 = 92,
 	kSceneUG08 = 93,
 	kSceneUG09 = 94,
-	kSceneUG10 = 95,
+	kSceneUG10 = 95, // Undergound - Bridge
 	kSceneUG12 = 96,
 	kSceneUG13 = 97,
 	kSceneUG14 = 98,
@@ -1069,7 +1128,7 @@ enum Scenes {
 	kSceneUG17 = 101,
 	kSceneUG18 = 102,
 	kSceneUG19 = 103,
-	kSceneBB51 = 104,
+	kSceneBB51 = 104, // Bradbury building - Billiard room - Back
 	kSceneCT51 = 105,
 	kSceneHC04 = 106, // Hawker's circle - Kingston kitchen
 	kSceneRC51 = 107, // Runciter - Lucy's desk
@@ -1264,6 +1323,7 @@ enum GameItems {
 	// 75 is never used
 	// 76 is never used
 	kItemDragonflyEarring = 76,
+	kItemBomb = 78,
 	kItemCandy = 79,
 	kItemChopstickWrapper = 82,
 	kItemDogCollar = 84,
@@ -1281,7 +1341,8 @@ enum GameItems {
 	kItemWeaponsCrate = 110,
 	kItemWeaponsOrderForm = 111,
 	kItemTyrellSalesPamphlet = 119,
-	kItemHC03Lock = 121
+	kItemGreenPawnLock = 121,
+	kItemChain = 122
 };
 
 enum Elevators {
@@ -1361,6 +1422,16 @@ enum AffectionTowards {
 	kAffectionTowardsLucy = 3
 };
 
+/*
+ * Common goals:
+ *   0 -  99 - first chapter
+ * 100 - 199 - second chapter
+ * 200 - 299 - third chapter
+ * 300 - 399 - fourth chapter
+ * 400 - 499 - fifth chapter
+ * 599       - dead / gone
+ */
+
 enum GoalMcCoy {
 	kGoalMcCoyDefault = 0,
 	kGoalMcCoyDodge = 1
@@ -1380,6 +1451,34 @@ enum GoalSteele {
 	kGoalSteeleWalkAroundRestart = 190
 };
 
+enum GoalDektora {
+	kGoalDektoraDefault = 0,
+	kGoalDektoraStartWalkingAround = 100,
+	kGoalDektoraWalkAroundAsReplicant = 101,
+	kGoalDektoraWalkAroundAsHuman = 102,
+	kGoalDektoraStopWalkingAround = 103
+};
+
+enum GoalGordo {
+	// chapter 1
+	kGoalGordoDefault = 0,
+	kGoalGordoLeaveCT01 = 1,
+	kGoalGordoLeftCT01 = 2,
+	kGoalGordoWalkThroughCT05 = 3,
+	kGoalGordoLeaveCT05 = 4,
+	kGoalGordoLeftCT05 = 5,
+	kGoalGordoGetUpCT01 = 90,
+	kGoalGordoWalkOutFromCT01 = 91,
+	kGoalGordoBidFarewellToHowieLee = 92,
+	kGoalGordoWalkToHowieLee = 93,
+	// chapter 2
+	kGoalGordoWalkAround = 100,
+	kGoalGordoGoToDNARow = 101,
+	kGoalGordoGoToChinaTown = 102,
+	kGoalGordoGoToFreeSlotHAGJ = 103,
+	kGoalGordoGoToFreeSlotAH = 104
+};
+
 enum GoalGuzza {
 	kGoalGuzzaLeaveOffice = 100,
 	kGoalGuzzaGoToHawkersCircle = 101,
@@ -1423,18 +1522,18 @@ enum GoalBulletBob {
 
 enum GoalRunciter {
 	kGoalRunciterDefault = 0,
-	kGoalRunciterWalkAround = 1,
-	kGoalRunciterHide = 2,
+	kGoalRunciterWalkAroundRC02 = 1,
+	kGoalRunciterGoToFreeSlotGH = 2,
 	kGoalRunciterAtShop = 300,
 	kGoalRunciterDead = 599
 };
 
 enum GoalZuben {
 	kGoalZubenDefault = 0,
-	kGoalZubenCT01Leave = 1,
-	kGoalZubenCT02Flee = 2,
+	kGoalZubenCT01WalkToCT02 = 1,
+	kGoalZubenCT02RunToFreeSlotG = 2,
 	kGoalZubenCT07Spared = 4,
-	kGoalZubenCT07Leave = 5,
+	kGoalZubenCT07RunToFreeSlotA = 5,
 	kGoalZubenDie = 6,
 	kGoalZubenSpared = 7,
 	kGoalZubenCT02PushPot = 8,
@@ -1442,7 +1541,7 @@ enum GoalZuben {
 	kGoalZubenCT02OpenDoor = 10,
 	kGoalZubenCT06JumpDown = 11,
 	kGoalZubenCT06AttackMcCoy = 12,
-	kGoalZubenCT06Hide = 13,
+	kGoalZubenCT06HideAtFreeSlotA = 13,
 	kGoalZubenCT02PotDodgeCheck = 14,
 	kGoalZubenFled = 20,
 	kGoalZubenMA01AttackMcCoy = 21,
@@ -1455,6 +1554,21 @@ enum GoalOfficerLeary {
 	kGoalOfficerLearyRC01CrowdInterrogation = 2
 };
 
+enum GoalMoraji {
+	kGoalMorajiDefault = 0,
+	kGoalMorajiShot = 5,
+	kGoalMorajiFreed = 10,
+	kGoalMorajiRunOut = 11,
+	kGoalMorajiGetUp = 18,
+	kGoalMorajiScream = 19,
+	kGoalMorajiJump = 20,
+	kGoalMorajiLayDown = 21,
+	kGoalMorajiDie = 22,
+	kGoalMorajiDead = 23,
+	kGoalMorajiChooseFate = 30,
+	kGoalMorajiPerished = 99
+};
+
 } // End of namespace BladeRunner
 
 #endif
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index d504328..6f4d0bf 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -282,7 +282,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Goal_Number(kActorSadik, 200);
 		Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1);
 		Player_Gains_Control();
-		Chapter_Enter(3, 6, 20);
+		Chapter_Enter(3, kSetCT08_CT51_UG12, kSceneCT08);
 		Game_Flag_Set(550);
 		Game_Flag_Set(679);
 		return true;
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index e620313..c7c6341 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -38,94 +38,94 @@ void AIScriptDektora::Initialize() {
 	_flag = false;
 	_x = _y = _z = 0.0f;
 
-	Actor_Set_Goal_Number(kActorDektora, 0);
+	Actor_Set_Goal_Number(kActorDektora, kGoalDektoraDefault);
 }
 
 bool AIScriptDektora::Update() {
-	int chapter = Global_Variable_Query(kVariableChapter) - 2;
-
-	if (chapter > 2)
+	int chapter = Global_Variable_Query(kVariableChapter);
+
+	if (chapter == 2) {
+		if (!Game_Flag_Query(kFlagDektoraChapter2Started)) {
+			Game_Flag_Set(kFlagDektoraChapter2Started);
+			Actor_Put_In_Set(kActorDektora, kSetFreeSlotG);
+			Actor_Set_At_Waypoint(kActorDektora, 39, 0);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
+		} else {
+			if ( Game_Flag_Query(kFlagAR02DektoraWillBuyScorpions)
+			 && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
+			 &&  Player_Query_Current_Scene() != kSceneAR01
+			 &&  Player_Query_Current_Scene() != kSceneAR02
+			) {
+				if (Game_Flag_Query(kFlagAR02Entered)) {
+					Item_Remove_From_World(kItemScrorpions);
+				}
+				Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
+			}
+		}
 		return true;
+	}
 
-	if (chapter) {
-		if (chapter == 1) {
-			if (Actor_Query_Goal_Number(kActorDektora) < 199) {
-				Actor_Set_Goal_Number(kActorDektora, 199);
-			} else {
-				switch (Actor_Query_Goal_Number(kActorDektora)) {
-				case 269:
-					Actor_Set_Goal_Number(kActorDektora, 270);
-					return 1;
-
-				case 270:
-				case 272:
-				case 274:
-					return 1;
-
-				case 271:
-					if (Actor_Query_Inch_Distance_From_Actor(kActorDektora, kActorMcCoy) <= 48) {
-						Actor_Set_Goal_Number(kActorDektora, 279);
-						return 1;
-					}
-
-					if (comp_distance(kActorMcCoy, _x, _y, _z) > 12.0f) {
-						Actor_Query_XYZ(kActorMcCoy, &_x, &_y, &_z);
-						Async_Actor_Walk_To_XYZ(kActorDektora, _x, _y, _z, 36, 0);
-					}
-					break;
+	if (chapter == 3) {
+		if (Actor_Query_Goal_Number(kActorDektora) < 199) {
+			Actor_Set_Goal_Number(kActorDektora, 199);
+		} else {
+			switch (Actor_Query_Goal_Number(kActorDektora)) {
+			case 269:
+				Actor_Set_Goal_Number(kActorDektora, 270);
+				break;
 
-				case 273:
-					Actor_Set_Goal_Number(kActorDektora, 274);
-					return 1;
+			case 271:
+				if (Actor_Query_Inch_Distance_From_Actor(kActorDektora, kActorMcCoy) <= 48) {
+					Actor_Set_Goal_Number(kActorDektora, 279);
+					break;
+				}
 
-				case 275:
-					Actor_Set_Goal_Number(kActorDektora, 276);
-					return 1;
+				if (comp_distance(kActorMcCoy, _x, _y, _z) > 12.0f) {
+					Actor_Query_XYZ(kActorMcCoy, &_x, &_y, &_z);
+					Async_Actor_Walk_To_XYZ(kActorDektora, _x, _y, _z, 36, 0);
 				}
+				break;
+
+			case 273:
+				Actor_Set_Goal_Number(kActorDektora, 274);
+				break;
+
+			case 275:
+				Actor_Set_Goal_Number(kActorDektora, 276);
+				break;
 			}
-		} else if (Actor_Query_Goal_Number(kActorDektora) < 300) {
-			Actor_Set_Goal_Number(kActorDektora, 300);
 		}
-	} else if (Game_Flag_Query(489)) {
-		if ( Game_Flag_Query(504) == 1
-		 && !Game_Flag_Query(374)
-		 &&  Player_Query_Current_Scene()
-		 &&  Player_Query_Current_Scene() != 1
-		) {
-			if (Game_Flag_Query(kFlagAR02Entered)) {
-				Item_Remove_From_World(kItemScrorpions);
-			}
-			Game_Flag_Set(374);
+		return true;
+	}
+
+	if (chapter == 4) {
+		if (Actor_Query_Goal_Number(kActorDektora) < 300) {
+			Actor_Set_Goal_Number(kActorDektora, 300);
 		}
-	} else {
-		Game_Flag_Set(489);
-		Actor_Put_In_Set(kActorDektora, kSetFreeSlotG);
-		Actor_Set_At_Waypoint(kActorDektora, 39, 0);
-		Actor_Set_Goal_Number(kActorDektora, 100);
+		return true;
 	}
 
 	return true;
 }
 
 void AIScriptDektora::TimerExpired(int timer) {
-	if (timer)
-		return; //false;
+	if (timer == 0) {
+		if (Actor_Query_Goal_Number(kActorDektora) == 210) {
+			if (Player_Query_Current_Scene() == 61) {
+				AI_Countdown_Timer_Reset(kActorDektora, 0);
+				AI_Countdown_Timer_Start(kActorDektora, 0, 10);
+			} else {
+				Actor_Set_Goal_Number(kActorDektora, 211);
+				AI_Countdown_Timer_Reset(kActorDektora, 0);
+			}
+			return; //true;
+		}
 
-	if (Actor_Query_Goal_Number(kActorDektora) == 210) {
-		if (Player_Query_Current_Scene() == 61) {
-			AI_Countdown_Timer_Reset(kActorDektora, 0);
-			AI_Countdown_Timer_Start(kActorDektora, 0, 10);
-		} else {
-			Actor_Set_Goal_Number(kActorDektora, 211);
+		if (Actor_Query_Goal_Number(kActorDektora) == 270) {
 			AI_Countdown_Timer_Reset(kActorDektora, 0);
+			Actor_Set_Goal_Number(kActorDektora, 271);
+			return; //true;
 		}
-		return; //true;
-	}
-
-	if (Actor_Query_Goal_Number(kActorDektora) == 270) {
-		AI_Countdown_Timer_Reset(kActorDektora, 0);
-		Actor_Set_Goal_Number(kActorDektora, 271);
-		return; //true;
 	}
 
 	return; //false;
@@ -133,34 +133,35 @@ void AIScriptDektora::TimerExpired(int timer) {
 
 void AIScriptDektora::CompletedMovementTrack() {
 	switch (Actor_Query_Goal_Number(kActorDektora)) {
-	case 100:
-		if (Game_Flag_Query(47) == 1) {
-			Actor_Set_Goal_Number(kActorDektora, 101);
+	case kGoalDektoraStartWalkingAround:
+		if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraWalkAroundAsReplicant);
 		} else {
-			Actor_Set_Goal_Number(kActorDektora, 102);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraWalkAroundAsHuman);
 		}
 		break;
 
-
-	case 101:
+	case kGoalDektoraWalkAroundAsReplicant:
 		if (Random_Query(1, 7) == 1
-				&& Actor_Query_Goal_Number(kActorEarlyQ) != 1
-				&& Actor_Query_Goal_Number(kActorEarlyQ) != 101) {
-			Game_Flag_Set(504);
-			Actor_Set_Goal_Number(kActorDektora, 100);
+		 && Actor_Query_Goal_Number(kActorEarlyQ) != 1
+		 && Actor_Query_Goal_Number(kActorEarlyQ) != 101
+		) {
+			Game_Flag_Set(kFlagAR02DektoraWillBuyScorpions);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		} else {
-			Actor_Set_Goal_Number(kActorDektora, 100);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		}
 		break;
 
-	case 102:
+	case kGoalDektoraWalkAroundAsHuman:
 		if (Random_Query(1, 5) == 1
-				&& Actor_Query_Goal_Number(kActorEarlyQ) != 1
-				&& Actor_Query_Goal_Number(kActorEarlyQ) != 101) {
-			Game_Flag_Set(504);
-			Actor_Set_Goal_Number(kActorDektora, 100);
+		 && Actor_Query_Goal_Number(kActorEarlyQ) != 1
+		 && Actor_Query_Goal_Number(kActorEarlyQ) != 101
+		) {
+			Game_Flag_Set(kFlagAR02DektoraWillBuyScorpions);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		} else {
-			Actor_Set_Goal_Number(kActorDektora, 100);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		}
 		break;
 
@@ -191,14 +192,14 @@ void AIScriptDektora::ReceivedClue(int clueId, int fromActorId) {
 
 void AIScriptDektora::ClickedByPlayer() {
 	if (Actor_Query_Goal_Number(kActorDektora) == 599) {
-		Actor_Face_Actor(0, kActorDektora, 1);
+		Actor_Face_Actor(0, kActorDektora, true);
 		Actor_Says(kActorMcCoy, 8630, 12);
 
 		return; //true;
 	}
 
 	if (Actor_Query_Goal_Number(kActorDektora) < 199) {
-		Actor_Face_Actor(kActorMcCoy, kActorDektora, 1);
+		Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 		Actor_Says(kActorMcCoy, 8590, 13);
 	}
 
@@ -220,7 +221,9 @@ void AIScriptDektora::EnteredScene(int sceneId) {
 }
 
 void AIScriptDektora::OtherAgentEnteredThisScene(int otherActorId) {
-	if (!otherActorId && Actor_Query_Goal_Number(kActorDektora) == 246) {
+	if (otherActorId == kActorMcCoy
+	 && Actor_Query_Goal_Number(kActorDektora) == 246
+	) {
 		Scene_Exits_Disable();
 		Actor_Change_Animation_Mode(kActorDektora, 23);
 	}
@@ -243,8 +246,9 @@ void AIScriptDektora::ShotAtAndMissed() {
 
 bool AIScriptDektora::ShotAtAndHit() {
 	if (Actor_Query_Goal_Number(kActorDektora) == 270
-			|| Actor_Query_Goal_Number(kActorDektora) == 271
-			|| Actor_Query_Goal_Number(kActorDektora) == 272) {
+	 || Actor_Query_Goal_Number(kActorDektora) == 271
+	 || Actor_Query_Goal_Number(kActorDektora) == 272
+	) {
 		Actor_Set_Health(kActorDektora, 100, 100);
 
 		if (Actor_Query_Goal_Number(kActorDektora) != 272) {
@@ -252,6 +256,7 @@ bool AIScriptDektora::ShotAtAndHit() {
 		}
 		return true;
 	}
+
 	if (Actor_Query_Goal_Number(kActorDektora) == 260) {
 		AI_Movement_Track_Flush(kActorDektora);
 		Actor_Set_Health(kActorDektora, 0, 100);
@@ -276,11 +281,14 @@ bool AIScriptDektora::ShotAtAndHit() {
 }
 
 void AIScriptDektora::Retired(int byActorId) {
-	if (!byActorId) {
+	if (byActorId == kActorMcCoy) {
 		Actor_Modify_Friendliness_To_Other(kActorClovis, 0, -5);
 	}
 
-	if (byActorId == kActorSteele && Actor_Query_In_Set(kActorSteele, kSetHF06) && Actor_Query_In_Set(kActorMcCoy, kSetHF06)) {
+	if (byActorId == kActorSteele
+	 && Actor_Query_In_Set(kActorSteele, kSetHF06)
+	 && Actor_Query_In_Set(kActorMcCoy, kSetHF06)
+	) {
 		Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false);
 	}
 
@@ -317,6 +325,83 @@ int AIScriptDektora::GetFriendlinessModifierIfGetsClue(int otherActorId, int clu
 
 bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
+	case kGoalDektoraStartWalkingAround:
+		AI_Movement_Track_Flush(kActorDektora);
+		AI_Movement_Track_Append(kActorDektora, 39, 10);
+		AI_Movement_Track_Repeat(kActorDektora);
+		break;
+
+	case kGoalDektoraWalkAroundAsReplicant:
+		AI_Movement_Track_Flush(kActorDektora);
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
+
+		if (Game_Flag_Query(kFlagZubenRetired)) {
+			AI_Movement_Track_Append(kActorDektora, 33, 240);
+		} else if (Game_Flag_Query(kFlagZubenSpared)) {
+			AI_Movement_Track_Append(kActorDektora, 33, 120);
+		} else {
+			AI_Movement_Track_Append(kActorDektora, 33, 90);
+		}
+
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 35, 528);
+
+		if (Random_Query(1, 2) == 1
+		 && Game_Flag_Query(kFlagAR02DektoraWillBuyScorpions)
+		) {
+			AI_Movement_Track_Append(kActorDektora, 289, 0);
+			AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 2, 979);
+			AI_Movement_Track_Append(kActorDektora, 289, 0);
+			AI_Movement_Track_Append(kActorDektora, 39, 120);
+		} else {
+			AI_Movement_Track_Append(kActorDektora, 39, 180);
+		}
+
+		AI_Movement_Track_Append(kActorDektora, 282, 0);
+		AI_Movement_Track_Append(kActorDektora, 283, 0);
+		AI_Movement_Track_Append(kActorDektora, 284, 0);
+		AI_Movement_Track_Append(kActorDektora, 285, 0);
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 30, 329);
+		AI_Movement_Track_Repeat(kActorDektora);
+		break;
+
+	case kGoalDektoraWalkAroundAsHuman:
+		AI_Movement_Track_Flush(kActorDektora);
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
+		AI_Movement_Track_Append(kActorDektora, 40, 90);
+
+		if (Game_Flag_Query(kFlagZubenRetired)
+		 && Game_Flag_Query(kFlagLucyIsReplicant)
+		) {
+			AI_Movement_Track_Append(kActorDektora, 33, 180);
+		} else {
+			AI_Movement_Track_Append(kActorDektora, 33, 160);
+		}
+
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 20, 528);
+
+		if (Random_Query(1, 2) == 1) {
+			AI_Movement_Track_Append(kActorDektora, 289, 0);
+			AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 3, 979);
+			AI_Movement_Track_Append(kActorDektora, 289, 0);
+			AI_Movement_Track_Append(kActorDektora, 39, 120);
+		} else {
+			AI_Movement_Track_Append(kActorDektora, 39, 180);
+		}
+
+		AI_Movement_Track_Append(kActorDektora, 282, 0);
+		AI_Movement_Track_Append(kActorDektora, 283, 0);
+		AI_Movement_Track_Append(kActorDektora, 284, 0);
+		AI_Movement_Track_Append(kActorDektora, 285, 0);
+		AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 35, 329);
+		AI_Movement_Track_Repeat(kActorDektora);
+		break;
+
+	case kGoalDektoraStopWalkingAround:
+		AI_Movement_Track_Flush(kActorDektora);
+		AI_Movement_Track_Append(kActorDektora, 39, 240);
+		AI_Movement_Track_Repeat(kActorDektora);
+		break;
+
 	case 199:
 		AI_Movement_Track_Flush(kActorDektora);
 		Actor_Set_Goal_Number(kActorDektora, 200);
@@ -451,79 +536,6 @@ bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_Waypoint(kActorDektora, 33, 0);
 		break;
 
-	case 100:
-		AI_Movement_Track_Flush(kActorDektora);
-		AI_Movement_Track_Append(kActorDektora, 39, 10);
-		AI_Movement_Track_Repeat(kActorDektora);
-		break;
-
-	case 101:
-		AI_Movement_Track_Flush(kActorDektora);
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
-
-		if (Game_Flag_Query(40) == 1) {
-			AI_Movement_Track_Append(kActorDektora, 33, 240);
-		} else if (Game_Flag_Query(41) == 1) {
-			AI_Movement_Track_Append(kActorDektora, 33, 120);
-		} else {
-			AI_Movement_Track_Append(kActorDektora, 33, 90);
-		}
-
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 35, 528);
-
-		if (Random_Query(1, 2) == 1 && Game_Flag_Query(504)) {
-			AI_Movement_Track_Append(kActorDektora, 289, 0);
-			AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 2, 979);
-			AI_Movement_Track_Append(kActorDektora, 289, 0);
-			AI_Movement_Track_Append(kActorDektora, 39, 120);
-		} else {
-			AI_Movement_Track_Append(kActorDektora, 39, 180);
-		}
-
-		AI_Movement_Track_Append(kActorDektora, 282, 0);
-		AI_Movement_Track_Append(kActorDektora, 283, 0);
-		AI_Movement_Track_Append(kActorDektora, 284, 0);
-		AI_Movement_Track_Append(kActorDektora, 285, 0);
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 30, 329);
-		AI_Movement_Track_Repeat(kActorDektora);
-		break;
-
-	case 102:
-		AI_Movement_Track_Flush(kActorDektora);
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
-		AI_Movement_Track_Append(kActorDektora, 40, 90);
-
-		if (Game_Flag_Query(40) == 1 && Game_Flag_Query(46) == 1) {
-			AI_Movement_Track_Append(kActorDektora, 33, 180);
-		} else {
-			AI_Movement_Track_Append(kActorDektora, 33, 160);
-		}
-
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 20, 528);
-
-		if (Random_Query(1, 2) == 1) {
-			AI_Movement_Track_Append(kActorDektora, 289, 0);
-			AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 3, 979);
-			AI_Movement_Track_Append(kActorDektora, 289, 0);
-			AI_Movement_Track_Append(kActorDektora, 39, 120);
-		} else {
-			AI_Movement_Track_Append(kActorDektora, 39, 180);
-		}
-
-		AI_Movement_Track_Append(kActorDektora, 282, 0);
-		AI_Movement_Track_Append(kActorDektora, 283, 0);
-		AI_Movement_Track_Append(kActorDektora, 284, 0);
-		AI_Movement_Track_Append(kActorDektora, 285, 0);
-		AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 35, 329);
-		AI_Movement_Track_Repeat(kActorDektora);
-		break;
-
-	case 103:
-		AI_Movement_Track_Flush(kActorDektora);
-		AI_Movement_Track_Append(kActorDektora, 39, 240);
-		AI_Movement_Track_Repeat(kActorDektora);
-		break;
-
 	default:
 		return false;
 
@@ -1058,6 +1070,300 @@ bool AIScriptDektora::UpdateAnimation(int *animation, int *frame) {
 }
 
 bool AIScriptDektora::ChangeAnimationMode(int mode) {
+	switch (mode) {
+	case kAnimationModeIdle:
+		if (Game_Flag_Query(633)) {
+			_animationState = 32;
+			_animationFrame = 0;
+			break;
+		}
+		switch (_animationState) {
+		case 2:
+		case 3:
+		case 4:
+		case 5:
+		case 6:
+		case 7:
+		case 8:
+		case 27:
+		case 28:
+			_flag = true;
+			break;
+		case 9:
+		case 10:
+		case 12:
+		case 13:
+		case 14:
+		case 15:
+		case 16:
+		case 17:
+			_animationState = 11;
+			_animationFrame = 0;
+			break;
+		case 11:
+		case 18:
+		case 19:
+		case 20:
+		case 26:
+		case 29:
+		case 30:
+			break;
+		case 25:
+			_animationState = 25;
+			_animationFrame = 0;
+			break;
+		case 31:
+			_animationState = 31;
+			_animationFrame = 0;
+			break;
+		default:
+			_animationState = 0;
+			_animationFrame = 0;
+			break;
+		}
+		break;
+
+	case kAnimationModeWalk:
+		if (!Game_Flag_Query(633)) {
+			_animationFrame = 0;
+			_animationState = 21;
+		} else {
+			_animationState = 33;
+			_animationFrame = 0;
+		}
+		break;
+
+	case kAnimationModeRun:
+		_animationFrame = 0;
+		_animationState = 22;
+		break;
+
+	case kAnimationModeTalk:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 2;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case kAnimationModeCombatIdle:
+		switch (_animationState) {
+		case 9:
+		case 10:
+		case 16:
+		case 17:
+			break;
+		case 25:
+		case 27:
+		case 28:
+			_animationState = 29;
+			_animationFrame = 0;
+			break;
+		case 31:
+			_animationState = 30;
+			_animationFrame = Slice_Animation_Query_Number_Of_Frames(154) - 1;
+			break;
+		default:
+			_animationState = 10;
+			_animationFrame = 0;
+			break;
+		}
+		break;
+
+	case kAnimationModeCombatAttack:
+		if (_animationState == 31) {
+			_animationState = 26;
+		} else if (Random_Query(0, 1) == 1) {
+			_animationState = 16;
+		} else {
+			_animationState = 17;
+		}
+		_animationFrame = 0;
+		break;
+
+	case kAnimationModeCombatWalk:
+		if (!Game_Flag_Query(633)) {
+			_animationFrame = 0;
+			_animationState = 21;
+		} else {
+			_animationState = 33;
+			_animationFrame = 0;
+		}
+		break;
+
+	case kAnimationModeCombatRun:
+		_animationFrame = 0;
+		_animationState = 22;
+		break;
+
+	case 12:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 3;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 13:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 4;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 14:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 5;
+			_animationFrame = 0;
+			_flag = 0;
+		}
+		break;
+
+	case 15:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 6;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 16:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 7;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 17:
+		if (_animationState < 2
+		 || _animationState > 8
+		) {
+			_animationState = 8;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 21:
+		if (Game_Flag_Query(633)) {
+			_animationState = 34;
+			_animationFrame = 0;
+			break;
+		}
+		switch (_animationState) {
+		case 9:
+		case 10:
+		case 11:
+		case 12:
+		case 13:
+		case 16:
+		case 17:
+			if (Random_Query(0, 1) == 1) {
+				_animationState = 14;
+			} else {
+				_animationState = 15;
+			}
+			break;
+		case 14:
+		case 15:
+			if (Random_Query(0, 1) == 1) {
+				_animationState = 18;
+			} else {
+				_animationState = 19;
+			}
+			break;
+		}
+		_animationFrame = 0;
+		break;
+
+	case 23:
+		_animationState = 41;
+		_animationFrame = 0;
+		break;
+
+	case 30:
+		if (_animationState != 27
+		 && _animationState != 28
+		) {
+			_animationState = 27;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case 31:
+		if (_animationState != 27
+		 && _animationState != 28
+		) {
+			_animationState = 28;
+			_animationFrame = 0;
+			_flag = false;
+		}
+		break;
+
+	case kAnimationModeWalkUp:
+		_animationFrame = 0;
+		_animationState = 23;
+		break;
+
+	case kAnimationModeWalkDown:
+		_animationFrame = 0;
+		_animationState = 24;
+		break;
+
+	case kAnimationModeDie:
+		_animationState = 20;
+		_animationFrame = 0;
+		break;
+
+	case 53:
+		switch (_animationState) {
+		case 26:
+		case 29:
+		case 30:
+		case 31:
+			break;
+		case 27:
+		case 28:
+			_flag = true;
+			break;
+		default:
+			_animationState = 25;
+			_animationFrame = 0;
+			break;
+		}
+		break;
+
+	case 70:
+		_animationState = 17;
+		_animationFrame = 0;
+		break;
+
+	case 71:
+		_animationState = 16;
+		_animationFrame = 0;
+		break;
+
+	case 79:
+		_animationState = 37;
+		_animationFrame = 0;
+		break;
+	}
+
 	return true;
 }
 
diff --git a/engines/bladerunner/script/ai/early_q.cpp b/engines/bladerunner/script/ai/early_q.cpp
index 104ebda..40cd1b2 100644
--- a/engines/bladerunner/script/ai/early_q.cpp
+++ b/engines/bladerunner/script/ai/early_q.cpp
@@ -330,7 +330,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 
 	case 208:
-		if (Game_Flag_Query(374) == 1) {
+		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Actor_Set_Goal_Number(kActorEarlyQ, 210);
 		} else {
 			Actor_Set_Goal_Number(kActorEarlyQ, 209);
diff --git a/engines/bladerunner/script/ai/gaff.cpp b/engines/bladerunner/script/ai/gaff.cpp
index 6eaa5b9..1706062 100644
--- a/engines/bladerunner/script/ai/gaff.cpp
+++ b/engines/bladerunner/script/ai/gaff.cpp
@@ -211,7 +211,7 @@ bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorGaff);
 		return true;
 	case 10:
-		Game_Flag_Reset(kFlagGaffSpinnerCT12);
+		Game_Flag_Reset(kFlagCT12GaffSpinner);
 		Scene_Loop_Set_Default(2);
 		Scene_Loop_Start_Special(2, 6, true);
 		return true;
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 2f48f90..9d1754a 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -45,23 +45,30 @@ void AIScriptGordo::Initialize() {
 	_frameDelta = 1;
 	_frameMax = 0;
 	_state = 0;
-	Actor_Set_Goal_Number(kActorGordo, 0);
+	Actor_Set_Goal_Number(kActorGordo, kGoalGordoDefault);
 }
 
 bool AIScriptGordo::Update() {
 	if (Global_Variable_Query(kVariableChapter) == 1) {
-		if (Actor_Query_Goal_Number(kActorGordo) == 0 && Actor_Query_Friendliness_To_Other(kActorGordo, kActorMcCoy) < 48 && Actor_Query_Is_In_Current_Set(kActorGordo) == kSetBB02_BB04_BB06_BB51) {
-			Actor_Set_Goal_Number(kActorGordo, 90);
+		if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault
+		 && Actor_Query_Friendliness_To_Other(kActorGordo, kActorMcCoy) < 48
+		 && Actor_Query_Is_In_Current_Set(kActorGordo)
+		) {
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoGetUpCT01);
 			return true;
 		}
-		if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetCT03_CT04 && Actor_Query_Which_Set_In(kActorGordo) == kSetCT01_CT12) {
-			Actor_Set_Goal_Number(kActorGordo, 91);
+		if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetCT03_CT04
+		 && Actor_Query_Which_Set_In(kActorGordo) == kSetCT01_CT12
+		) {
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkOutFromCT01);
 			return true;
 		}
 	}
 
-	if (Global_Variable_Query(kVariableChapter) == 2 && Actor_Query_Goal_Number(kActorGordo) < 100) {
-		Actor_Set_Goal_Number(kActorGordo, 100);
+	if (Global_Variable_Query(kVariableChapter) == 2
+	 && Actor_Query_Goal_Number(kActorGordo) < kGoalGordoWalkAround
+	) {
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkAround);
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 3) {
@@ -74,7 +81,9 @@ bool AIScriptGordo::Update() {
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 4) {
-		if (Actor_Query_Goal_Number(kActorGordo) < 300 && Actor_Query_Goal_Number(kActorGordo) != 260) {
+		if (Actor_Query_Goal_Number(kActorGordo) < 300
+		 && Actor_Query_Goal_Number(kActorGordo) != 260
+		) {
 			Actor_Set_Goal_Number(kActorGordo, 300);
 		} else if (Actor_Query_Goal_Number(kActorGordo) == 599) {
 			Actor_Put_In_Set(kActorGordo, kSetFreeSlotI);
@@ -82,7 +91,9 @@ bool AIScriptGordo::Update() {
 		}
 	}
 
-	if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorGordo) < 400) {
+	if (Global_Variable_Query(kVariableChapter) == 5
+	 && Actor_Query_Goal_Number(kActorGordo) < 400
+	) {
 		Actor_Set_Goal_Number(kActorGordo, 400);
 	}
 
@@ -102,13 +113,14 @@ 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) == kGoalGordoLeaveCT01
+	 || Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkOutFromCT01
 	) {
-		Actor_Set_Goal_Number(kActorGordo, 2);
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeftCT01);
 		return;// true;
 	}
-	if (Actor_Query_Goal_Number(kActorGordo) == 3) {
+
+	if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkThroughCT05) {
 		if (Player_Query_Current_Set() == kSetCT05) {
 			Actor_Force_Stop_Walking(kActorMcCoy);
 			Player_Loses_Control();
@@ -123,24 +135,26 @@ void AIScriptGordo::CompletedMovementTrack() {
 			Player_Gains_Control();
 		}
 		Actor_Clue_Acquire(kActorGordo, kClueMcCoyRetiredZuben, true, -1);
-		Actor_Set_Goal_Number(kActorGordo, 4);
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeaveCT05);
 		return;// true;
 	}
 
-	if (Actor_Query_Goal_Number(kActorGordo) == 4) {
-		Actor_Set_Goal_Number(kActorGordo, 5);
+	if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoLeaveCT05) {
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeftCT05);
 		return;// true;
 	}
 
-	if (Actor_Query_Goal_Number(kActorGordo) == 93) {
+	if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkToHowieLee) {
 		Actor_Set_Immunity_To_Obstacles(kActorGordo, false);
 		Player_Gains_Control();
-		Actor_Set_Goal_Number(kActorGordo, 92);
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoBidFarewellToHowieLee);
 		return;// true;
 	}
 
-	if (Actor_Query_Goal_Number(kActorGordo) > 100 && Actor_Query_Goal_Number(kActorGordo) < 200) {
-		Actor_Set_Goal_Number(kActorGordo, 100);
+	if (Actor_Query_Goal_Number(kActorGordo) > 100
+	 && Actor_Query_Goal_Number(kActorGordo) < 200
+	) {
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkAround);
 		return;// true;
 	}
 
@@ -188,8 +202,10 @@ void AIScriptGordo::ReceivedClue(int clueId, int fromActorId) {
 
 void AIScriptGordo::ClickedByPlayer() {
 	int goal = Actor_Query_Goal_Number(kActorGordo);
-	if (goal == 101 || goal == 102) {
-		sub_40FD00();
+	if (goal == kGoalGordoGoToDNARow
+	 || goal == kGoalGordoGoToChinaTown
+	) {
+		McCoyTalkWithGordo();
 	} else if (goal == 260) {
 		Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
 		Actor_Says(kActorMcCoy, 8600, 11);
@@ -284,77 +300,80 @@ int AIScriptGordo::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
 }
 
 bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
+	int rnd;
+
 	switch (newGoalNumber) {
-	case 0:
+	case kGoalGordoDefault:
 		Actor_Put_In_Set(kActorGordo, kSetCT01_CT12);
 		Actor_Set_At_XYZ(kActorGordo, -308.44f, -12.5f, 442.78f, 256);
 		Actor_Change_Animation_Mode(kActorGordo, 53);
 		break;
-	case 3:
+	case kGoalGordoWalkThroughCT05:
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 119, 0);
 		AI_Movement_Track_Append(kActorGordo, 118, 0);
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 4:
+	case kGoalGordoLeaveCT05:
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 119, 0);
 		AI_Movement_Track_Append(kActorGordo, 33, 1);
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 90:
-		Game_Flag_Set(kFlagCT01McCoyTalkedToGordo);
+	case kGoalGordoGetUpCT01:
+		Game_Flag_Set(kFlagCT01GordoTalk);
 		Actor_Set_Goal_Number(kActorGordo, 99);
 		Actor_Change_Animation_Mode(kActorGordo, 29);
 		break;
-	case 91:
+	case kGoalGordoWalkOutFromCT01:
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 43, 0);
 		AI_Movement_Track_Append(kActorGordo, 33, 1);
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 92:
+	case kGoalGordoBidFarewellToHowieLee:
 		Actor_Face_Actor(kActorGordo, kActorHowieLee, true);
 		Actor_Says(kActorGordo, 0, 13);
 		Actor_Says(kActorGordo, 10, 16);
-		Actor_Set_Goal_Number(kActorGordo, 91);
+		Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkOutFromCT01);
 		Player_Gains_Control();
 		break;
-	case 93:
+	case kGoalGordoWalkToHowieLee:
 		Player_Loses_Control();
 		Actor_Set_Immunity_To_Obstacles(kActorGordo, true);
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 100, 0);
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 100: {
-			AI_Movement_Track_Flush(kActorGordo);
-			_animationState = 0;
-			_animationFrame = 0;
-			_animationStateNext = 0;
-			sub_41117C();
-			int rnd = Random_Query(1, 4);
-			if (Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1) || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)) {
-				rnd = Random_Query(4, 5);
-			}
-			switch (rnd) {
-			case 1:
-			case 2:
-				Actor_Set_Goal_Number(kActorGordo, 101);
-				break;
-			case 3:
-				Actor_Set_Goal_Number(kActorGordo, 102);
-				break;
-			case 4:
-				Actor_Set_Goal_Number(kActorGordo, 103);
-				break;
-			case 5:
-				Actor_Set_Goal_Number(kActorGordo, 104);
-				break;
-			}
+	case kGoalGordoWalkAround:
+		AI_Movement_Track_Flush(kActorGordo);
+		_animationState = 0;
+		_animationFrame = 0;
+		_animationStateNext = 0;
+		sub_41117C();
+		rnd = Random_Query(1, 4);
+		if (Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
+		 || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
+		) {
+			rnd = Random_Query(4, 5);
+		}
+		switch (rnd) {
+		case 1:
+		case 2:
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToDNARow);
+			break;
+		case 3:
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToChinaTown);
+			break;
+		case 4:
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToFreeSlotHAGJ);
+			break;
+		case 5:
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToFreeSlotAH);
+			break;
 		}
 		break;
-	case 101:
+	case kGoalGordoGoToDNARow:
 		AI_Movement_Track_Flush(kActorGordo);
 		if (Random_Query(1, 2) == 1) {
 			AI_Movement_Track_Append(kActorGordo, 343, 5);
@@ -378,7 +397,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 102:
+	case kGoalGordoGoToChinaTown:
 		if (Random_Query(1, 3) == 1) {
 			AI_Movement_Track_Append(kActorGordo, 54, 1);
 			AI_Movement_Track_Append(kActorGordo, 56, 0);
@@ -391,7 +410,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorGordo, 40, 15);
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 103:
+	case kGoalGordoGoToFreeSlotHAGJ:
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 40, Random_Query(15, 45));
 		if (Game_Flag_Query(kFlagGordoIsReplicant)) {
@@ -403,7 +422,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorGordo, 42, Random_Query(10, 20));
 		AI_Movement_Track_Repeat(kActorGordo);
 		break;
-	case 104:
+	case kGoalGordoGoToFreeSlotAH:
 		AI_Movement_Track_Flush(kActorGordo);
 		AI_Movement_Track_Append(kActorGordo, 33, Random_Query(15, 45));
 		if (!Game_Flag_Query(kFlagGordoIsReplicant)) {
@@ -413,7 +432,10 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 	case 200:
 		if (Global_Variable_Query(40) == 2) {
-			if (Game_Flag_Query(593) && Game_Flag_Query(591) && Player_Query_Current_Scene() != kSceneNR02) {
+			if (Game_Flag_Query(593)
+			 && Game_Flag_Query(591)
+			 && Player_Query_Current_Scene() != kSceneNR02
+			) {
 				Actor_Set_Goal_Number(kActorGordo, 201);
 			} else {
 				Actor_Set_Goal_Number(kActorGordo, 225);
@@ -571,7 +593,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorMcCoy, 3080, 15);
 		Actor_Says(kActorGordo, 200, 15);
 		Actor_Says(kActorMcCoy, 3085, 15);
-		sub_410590();
+		dialogueWithGordo2();
 		break;
 	case 243:
 		AI_Movement_Track_Flush(kActorGordo);
@@ -749,7 +771,7 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
 			_animationState = 0;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorGordo, kAnimationModeIdle);
-			Actor_Set_Goal_Number(kActorGordo, 93);
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkToHowieLee);
 		}
 		break;
 	case 4:
@@ -1406,66 +1428,10 @@ void AIScriptGordo::FledCombat() {
 	// return false;
 }
 
-void AIScriptGordo::sub_40FD00() {
+void AIScriptGordo::McCoyTalkWithGordo() {
 	Player_Loses_Control();
 	Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
-	if (Game_Flag_Query(543)) {
-		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:
-						Actor_Says(kActorMcCoy, 6460, 13);
-						break;
-					case 2:
-						Actor_Says(kActorMcCoy, 6550, 14);
-						break;
-					case 3:
-						Actor_Says(kActorMcCoy, 365, 12);
-						break;
-					case 4:
-						Actor_Says(kActorMcCoy, 525, 12);
-						break;
-				}
-			} else {
-				Actor_Says(kActorMcCoy, 6490, 14);
-				AI_Movement_Track_Pause(kActorGordo);
-				Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false);
-				Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
-				Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
-				Actor_Says(kActorGordo, 990, 13);
-				Actor_Says(kActorGordo, 1000, 15);
-				Game_Flag_Set(544);
-				AI_Movement_Track_Unpause(kActorGordo);
-			}
-		} else {
-			Actor_Says(kActorMcCoy, 6485, 12);
-			AI_Movement_Track_Pause(kActorGordo);
-			Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false);
-			Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
-			Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
-			if (Game_Flag_Query(kFlagGordoIsReplicant)) {
-				Actor_Says(kActorGordo, 1010, 12);
-				Actor_Says(kActorMcCoy, 6495, 14);
-				Actor_Says(kActorGordo, 1020, 13);
-				Actor_Says(kActorMcCoy, 6500, 14);
-				Actor_Says(kActorGordo, 1030, 15);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, false, kActorGordo);
-			} else {
-				Actor_Says(kActorGordo, 1040, 12);
-				Actor_Says(kActorGordo, 1050, 13);
-				Actor_Says(kActorMcCoy, 6505, 14);
-				Actor_Says(kActorGordo, 1060, 13);
-				Actor_Says(kActorGordo, 1070, 14);
-				Actor_Says(kActorMcCoy, 6510, 16);
-				Actor_Says(kActorGordo, 1080, 15);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo);
-			}
-			AI_Movement_Track_Unpause(kActorGordo);
-		}
-	} else {
+	if (!Game_Flag_Query(kFlagGordoTalk1)) {
 		Actor_Says(kActorMcCoy, 6460, 12);
 		AI_Movement_Track_Pause(kActorGordo);
 		Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 36, false, false);
@@ -1485,8 +1451,61 @@ void AIScriptGordo::sub_40FD00() {
 		Actor_Says(kActorGordo, 960, 15);
 		Actor_Says(kActorGordo, 970, 12);
 		AI_Movement_Track_Unpause(kActorGordo);
-		Game_Flag_Set(543);
+		Game_Flag_Set(kFlagGordoTalk1);
+	} else if ( Game_Flag_Query(kFlagDR05BombExploded)
+	       && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
+	       && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
+	) {
+		Actor_Says(kActorMcCoy, 6485, 12);
+		AI_Movement_Track_Pause(kActorGordo);
+		Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false);
+		Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
+		Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
+		if (Game_Flag_Query(kFlagGordoIsReplicant)) {
+			Actor_Says(kActorGordo, 1010, 12);
+			Actor_Says(kActorMcCoy, 6495, 14);
+			Actor_Says(kActorGordo, 1020, 13);
+			Actor_Says(kActorMcCoy, 6500, 14);
+			Actor_Says(kActorGordo, 1030, 15);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, false, kActorGordo);
+		} else {
+			Actor_Says(kActorGordo, 1040, 12);
+			Actor_Says(kActorGordo, 1050, 13);
+			Actor_Says(kActorMcCoy, 6505, 14);
+			Actor_Says(kActorGordo, 1060, 13);
+			Actor_Says(kActorGordo, 1070, 14);
+			Actor_Says(kActorMcCoy, 6510, 16);
+			Actor_Says(kActorGordo, 1080, 15);
+			Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo);
+		}
+		AI_Movement_Track_Unpause(kActorGordo);
+	} else if (!Game_Flag_Query(kFlagGordoTalk2)) {
+		Actor_Says(kActorMcCoy, 6490, 14);
+		AI_Movement_Track_Pause(kActorGordo);
+		Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false);
+		Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
+		Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
+		Actor_Says(kActorGordo, 990, 13);
+		Actor_Says(kActorGordo, 1000, 15);
+		Game_Flag_Set(kFlagGordoTalk2);
+		AI_Movement_Track_Unpause(kActorGordo);
+	} else {
+		switch(Random_Query(1, 4)) {
+			case 1:
+				Actor_Says(kActorMcCoy, 6460, 13);
+				break;
+			case 2:
+				Actor_Says(kActorMcCoy, 6550, 14);
+				break;
+			case 3:
+				Actor_Says(kActorMcCoy, 365, 12);
+				break;
+			case 4:
+				Actor_Says(kActorMcCoy, 525, 12);
+				break;
+		}
 	}
+
 	return Player_Gains_Control();
 }
 
@@ -1506,21 +1525,23 @@ void AIScriptGordo::sub_4103B8() {
 	Actor_Says(kActorGordo, 350, 13);
 	Actor_Says(kActorMcCoy, 3225, 18);
 	Player_Gains_Control();
-	sub_41090C();
+	dialogueWithGordo1();
 	Player_Loses_Control();
 	Game_Flag_Set(561);
 	Actor_Face_Heading(kActorGordo, 506, false);
 	Actor_Change_Animation_Mode(kActorGordo, 23);
 }
 
-void AIScriptGordo::sub_410590() {
+void AIScriptGordo::dialogueWithGordo2() {
 	Music_Stop(5);
 	Dialogue_Menu_Clear_List();
 	DM_Add_To_List_Never_Repeat_Once_Selected(820, -1, 5, 7);
 	DM_Add_To_List_Never_Repeat_Once_Selected(830, 7, 5, -1);
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	if (answer == 820) {
 		Actor_Says(kActorMcCoy, 3090, 16);
 		Actor_Says(kActorMcCoy, 3095, 15);
@@ -1535,8 +1556,8 @@ void AIScriptGordo::sub_410590() {
 		Game_Flag_Set(251);
 		Game_Flag_Set(592);
 		Scene_Exits_Enable();
-		Game_Flag_Reset(kFlagMcCoyAtNRxx);
-		Game_Flag_Set(kFlagMcCoyAtPSxx);
+		Game_Flag_Reset(kFlagMcCoyInNightclubRow);
+		Game_Flag_Set(kFlagMcCoyInPoliceStation);
 		Set_Enter(kSetPS09, kScenePS09);
 	} else if (answer == 830) {
 		Actor_Says(kActorMcCoy, 3100, 16);
@@ -1559,11 +1580,13 @@ void AIScriptGordo::sub_410590() {
 	}
 }
 
-void AIScriptGordo::sub_41090C() {
+void AIScriptGordo::dialogueWithGordo1() {
 	Dialogue_Menu_Clear_List();
 	DM_Add_To_List_Never_Repeat_Once_Selected(760, 2, 5, 6);
 	DM_Add_To_List_Never_Repeat_Once_Selected(770, 6, 3, 1);
-	if (Actor_Clue_Query(kActorMcCoy, kClueDektorasDressingRoom) || Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)) {
+	if (Actor_Clue_Query(kActorMcCoy, kClueDektorasDressingRoom)
+	 || Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)
+	) {
 		DM_Add_To_List_Never_Repeat_Once_Selected(780, 5, 5, 5);
 	}
 	if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
@@ -1573,9 +1596,11 @@ void AIScriptGordo::sub_41090C() {
 		DM_Add_To_List_Never_Repeat_Once_Selected(800, -1, 4, 8);
 	}
 	Dialogue_Menu_Add_DONE_To_List(810);
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
 	case 760:
 		Actor_Says(kActorMcCoy, 3230, kAnimationModeTalk);
@@ -1651,6 +1676,7 @@ void AIScriptGordo::sub_41090C() {
 }
 
 void AIScriptGordo::sub_41117C() {
+	// this has no real use as _animationState is always 0
 	switch (_animationState) {
 	case 0:
 		break;
diff --git a/engines/bladerunner/script/ai/holloway.cpp b/engines/bladerunner/script/ai/holloway.cpp
index ed4453e..dc52107 100644
--- a/engines/bladerunner/script/ai/holloway.cpp
+++ b/engines/bladerunner/script/ai/holloway.cpp
@@ -183,7 +183,7 @@ bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		if (Global_Variable_Query(40) != 1) {
 			Player_Gains_Control();
 		}
-		Game_Flag_Set(334);
+		Game_Flag_Set(kFlagUG03toUG04);
 		Set_Enter(kSetUG04, kSceneUG04);
 		break;
 
diff --git a/engines/bladerunner/script/ai/howie_lee.cpp b/engines/bladerunner/script/ai/howie_lee.cpp
index 2291d5a..93f0867 100644
--- a/engines/bladerunner/script/ai/howie_lee.cpp
+++ b/engines/bladerunner/script/ai/howie_lee.cpp
@@ -55,7 +55,7 @@ bool AIScriptHowieLee::Update() {
 		Actor_Set_Goal_Number(kActorHowieLee, 1);
 	}
 
-	if ( Game_Flag_Query(kFlagMcCoyAtCTxx)
+	if ( Game_Flag_Query(kFlagMcCoyInChinaTown)
 	 && !Actor_Query_In_Set(kActorHowieLee, kSetCT01_CT12)
 	) {
 		AI_Movement_Track_Flush(kActorHowieLee);
@@ -64,8 +64,8 @@ bool AIScriptHowieLee::Update() {
 	}
 
 	if ( Actor_Query_Goal_Number(kActorHowieLee) == 1
-	 &&  Game_Flag_Query(kFlagBoughtHowieLeeFood)
-	 && !Game_Flag_Query(kFlagMcCoyAtCTxx)
+	 &&  Game_Flag_Query(kFlagCT01BoughtHowieLeeFood)
+	 && !Game_Flag_Query(kFlagMcCoyInChinaTown)
 	) {
 		Actor_Set_Goal_Number(kActorHowieLee, 4);
 		return true;
@@ -124,20 +124,20 @@ void AIScriptHowieLee::EnteredScene(int sceneId) {
 	if (Actor_Query_Goal_Number(kActorHowieLee) == 4
 	 && Actor_Query_In_Set(kActorHowieLee, kSetCT03_CT04)
 	) {
-		if ( Game_Flag_Query(kFlagMcCoyKilledHomeless)
-		 && !Game_Flag_Query(kFlagHomelessBodyInDumpster)
-		 && !Game_Flag_Query(kFlagHomelessBodyFound)
+		if ( Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
 		) {
-			Game_Flag_Set(kFlagHomelessBodyFound);
+			Game_Flag_Set(kFlagCT04HomelessBodyFound);
 			// return false;
 		}
 
-		if (!Game_Flag_Query(kFlagMcCoyKilledHomeless)
-		 &&  Game_Flag_Query(kFlagHomelessBodyInDumpster)
-		 && !Game_Flag_Query(kFlagHomelessBodyFound)
+		if (!Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+		 &&  Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
 		 &&  Random_Query(1, 10) == 1
 		) {
-			Game_Flag_Set(kFlagHomelessBodyFound);
+			Game_Flag_Set(kFlagCT04HomelessBodyFound);
 			// return true;
 		}
 		// return false;
diff --git a/engines/bladerunner/script/ai/insect_dealer.cpp b/engines/bladerunner/script/ai/insect_dealer.cpp
index fb0924a..129a8e3 100644
--- a/engines/bladerunner/script/ai/insect_dealer.cpp
+++ b/engines/bladerunner/script/ai/insect_dealer.cpp
@@ -111,8 +111,8 @@ bool AIScriptInsectDealer::GoalChanged(int currentGoalNumber, int newGoalNumber)
 		Actor_Put_In_Set(kActorInsectDealer, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorInsectDealer, 40, 0);
 
-		if (!Game_Flag_Query(374)) {
-			Game_Flag_Set(374);
+		if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
+			Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
 			Item_Remove_From_World(kItemScrorpions);
 		}
 	}
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index 3f2715a..8807011 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -163,7 +163,7 @@ void AIScriptIzo::ClickedByPlayer() {
 		Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
 		Actor_Says(kActorIzo, 700, 17);
 		Actor_Says(kActorMcCoy, 5465, 14);
-		someDialog();
+		dialogueWithIzo();
 	}
 
 	if (Actor_Query_Goal_Number(kActorIzo) == kGoalIzoRC03Walk) {
@@ -245,7 +245,7 @@ void AIScriptIzo::Retired(int byActorId) {
 		Player_Loses_Control();
 		Delay(2000);
 		Player_Set_Combat_Mode(0);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, 1, 0, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Game_Flag_Set(579);
@@ -1008,7 +1008,7 @@ void AIScriptIzo::FledCombat() {
 	// return false;
 }
 
-void AIScriptIzo::someDialog() {
+void AIScriptIzo::dialogueWithIzo() {
 	Dialogue_Menu_Clear_List();
 	DM_Add_To_List_Never_Repeat_Once_Selected(0, 7, 4, -1); // MOTIVES
 
diff --git a/engines/bladerunner/script/ai/klein.cpp b/engines/bladerunner/script/ai/klein.cpp
index 955150c..fc2893d 100644
--- a/engines/bladerunner/script/ai/klein.cpp
+++ b/engines/bladerunner/script/ai/klein.cpp
@@ -70,11 +70,11 @@ bool AIScriptKlein::Update() {
 	}
 	if ( Player_Query_Current_Scene() == kScenePS07
 	 &&  Actor_Query_Friendliness_To_Other(kActorKlein, kActorMcCoy) < 35
-	 && !Game_Flag_Query(kFlagKleinInsulted)
+	 && !Game_Flag_Query(kFlagPS07KleinInsulted)
 	) {
 		AI_Countdown_Timer_Reset(kActorKlein, 2);
 		AI_Countdown_Timer_Start(kActorKlein, 2, 5);
-		Game_Flag_Set(kFlagKleinInsulted);
+		Game_Flag_Set(kFlagPS07KleinInsulted);
 		return true;
 	}
 	if (Actor_Query_Goal_Number(kActorKlein) == 7) {
@@ -92,8 +92,8 @@ bool AIScriptKlein::Update() {
 
 void AIScriptKlein::TimerExpired(int timer) {
 	if (timer == 2) {
-		if ( Game_Flag_Query(kFlagKleinInsulted)
-		 && !Game_Flag_Query(kFlagKleinInsultedTalk)
+		if ( Game_Flag_Query(kFlagPS07KleinInsulted)
+		 && !Game_Flag_Query(kFlagPS07KleinInsultedTalk)
 		 &&  Actor_Query_Is_In_Current_Set(kActorKlein)
 		) {
 			Actor_Face_Actor(kActorKlein, kActorMcCoy, true);
@@ -101,7 +101,7 @@ void AIScriptKlein::TimerExpired(int timer) {
 			Actor_Says(kActorMcCoy, 4120, kAnimationModeTalk);
 			Actor_Says(kActorKlein, 20, kAnimationModeTalk);
 			Actor_Says(kActorMcCoy, 4125, kAnimationModeTalk);
-			Game_Flag_Set(kFlagKleinInsultedTalk);
+			Game_Flag_Set(kFlagPS07KleinInsultedTalk);
 			Actor_Set_Goal_Number(kActorKlein, 4);
 		} else {
 			Actor_Says(kActorKlein, 10, kAnimationModeTalk);
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index 48a8e8b..0f8843a 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -750,7 +750,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 	case 44:
 		*animation = 30;
 		if (_animationFrame++ == 127) {
-			Game_Flag_Set(325);
+			Game_Flag_Set(kFlagCT04BodyDumped);
 		}
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(30)) {
 			*animation = 19;
@@ -807,7 +807,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 		} else if (_animationFrame == 4) {
 			Sound_Right_Footstep_Walk(kActorMcCoy);
 		}
-		if (Game_Flag_Query(359)) {
+		if (Game_Flag_Query(kFlagHF05toHF07)) {
 			sub_4059D0(-0.2f);
 		}
 		break;
@@ -823,7 +823,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 		} else if (_animationFrame == 3) {
 			Sound_Right_Footstep_Walk(kActorMcCoy);
 		}
-		if (Game_Flag_Query(358)) {
+		if (Game_Flag_Query(kFlagHF07toHF05)) {
 			sub_405940(0.5f);
 		}
 		break;
@@ -839,7 +839,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 		} else if (_animationFrame == 3) {
 			Sound_Right_Footstep_Walk(kActorMcCoy);
 		}
-		if (Game_Flag_Query(359)) {
+		if (Game_Flag_Query(kFlagHF05toHF07)) {
 			sub_4059D0(-0.2f);
 		}
 		break;
@@ -855,7 +855,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 		} else if (_animationFrame == 4) {
 			Sound_Right_Footstep_Walk(kActorMcCoy);
 		}
-		if (Game_Flag_Query(358)) {
+		if (Game_Flag_Query(kFlagHF07toHF05)) {
 			sub_405940(0.5f);
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/moraji.cpp b/engines/bladerunner/script/ai/moraji.cpp
index 067b566..6e650e4 100644
--- a/engines/bladerunner/script/ai/moraji.cpp
+++ b/engines/bladerunner/script/ai/moraji.cpp
@@ -38,11 +38,11 @@ void AIScriptMoraji::Initialize() {
 	_var1 = 1;
 	_var2 = 0;
 
-	Actor_Set_Goal_Number(kActorMoraji, 0);
+	Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDefault);
 }
 
 bool AIScriptMoraji::Update() {
-	if ( Actor_Query_Goal_Number(kActorMoraji) == 0
+	if ( Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
 	 &&  Player_Query_Current_Scene() == kSceneDR05
 	 && !Game_Flag_Query(kFlagDR05BombActivated)
 	) {
@@ -52,21 +52,23 @@ bool AIScriptMoraji::Update() {
 		return true;
 	}
 
-	if (Actor_Query_Goal_Number(kActorMoraji) == 19) {
+	if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiScream) {
 		Actor_Says(kActorMoraji, 80, 13);
 		_animationState = 9;
 		_animationFrame = -1;
-		Actor_Set_Goal_Number(kActorMoraji, 18);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiGetUp);
 	}
+
 	return false;
 }
 
 void AIScriptMoraji::TimerExpired(int timer) {
 	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
+
+		if (Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiJump
+		 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown
+		 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished
 		) {
 			Game_Flag_Set(kFlagDR05BombWillExplode);
 		}
@@ -77,7 +79,7 @@ void AIScriptMoraji::TimerExpired(int timer) {
 }
 
 void AIScriptMoraji::CompletedMovementTrack() {
-	if (Actor_Query_Goal_Number(kActorMoraji) == 11) {
+	if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiRunOut) {
 		AI_Countdown_Timer_Reset(kActorMoraji, 2);
 		Game_Flag_Set(kFlagDR05BombWillExplode);
 		_animationState = 3;
@@ -117,17 +119,16 @@ void AIScriptMoraji::ShotAtAndMissed() {
 
 bool AIScriptMoraji::ShotAtAndHit() {
 	if (Actor_Query_Goal_Number(kActorMoraji)) {
-		if (Actor_Query_Goal_Number(kActorMoraji) == 21) {
-			Game_Flag_Set(713);
-			Actor_Set_Goal_Number(kActorMoraji, 22);
+		if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
+			Game_Flag_Set(kFlagDR04McCoyShotMoraji);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
 			Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
-
 			return true;
 		} else {
 			return false;
 		}
 	} else {
-		Actor_Set_Goal_Number(kActorMoraji, 5);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiShot);
 		return true;
 	}
 }
@@ -142,24 +143,27 @@ int AIScriptMoraji::GetFriendlinessModifierIfGetsClue(int otherActorId, int clue
 
 bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
-	case 0:
+	case kGoalMorajiDefault:
 		Actor_Put_In_Set(kActorMoraji, kSetDR05);
 		Actor_Set_At_XYZ(kActorMoraji, 50.0f, 0.30f, 35.0f, 414);
-		Actor_Set_Targetable(kActorMoraji, 1);
+		Actor_Set_Targetable(kActorMoraji, true);
 		return false;
-	case 5:
-		Actor_Set_Targetable(kActorMoraji, 0);
+
+	case kGoalMorajiShot:
+		Actor_Set_Targetable(kActorMoraji, false);
 		Sound_Play(4, 100, 0, 0, 50);
 		_animationState = 10;
 		_animationFrame = 0;
-		Actor_Retired_Here(kActorMoraji, 60, 16, 1, -1);
+		Actor_Retired_Here(kActorMoraji, 60, 16, true, -1);
 		return true;
-	case 10:
-		Actor_Set_Targetable(kActorMoraji, 0);
+
+	case kGoalMorajiFreed:
+		Actor_Set_Targetable(kActorMoraji, false);
 		_animationState = 8;
 		_animationFrame = 1;
 		return true;
-	case 11:
+
+	case kGoalMorajiRunOut:
 		_animationState = 3;
 		_animationFrame = 0;
 		AI_Movement_Track_Flush(kActorMoraji);
@@ -169,43 +173,47 @@ bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append_Run(kActorMoraji, 98, 0);
 		AI_Movement_Track_Repeat(kActorMoraji);
 		return true;
-	case 20:
+
+	case kGoalMorajiJump:
 		_animationState = 11;
 		return true;
-	case 21:
+
+	case kGoalMorajiLayDown:
 		Actor_Retired_Here(kActorMoraji, 60, 16, 0, -1);
-		Actor_Set_Targetable(kActorMoraji, 1);
+		Actor_Set_Targetable(kActorMoraji, true);
 		return true;
-	case 22:
+
+	case kGoalMorajiDie:
 		_animationFrame = -1;
 		_animationState = 13;
 		return true;
-	case 23:
-		Actor_Set_Targetable(kActorMoraji, 0);
+
+	case kGoalMorajiDead:
+		Actor_Set_Targetable(kActorMoraji, false);
 		_animationState = 14;
 		Actor_Retired_Here(kActorMoraji, 60, 16, 1, -1);
 		return true;
 		break;
-	case 30:
+
+	case kGoalMorajiChooseFate:
 		if (Player_Query_Current_Scene() == kSceneDR05) {
-			Game_Flag_Set(kFlagDR05BombExplosionView);
+			Game_Flag_Set(kFlagDR05ViewExplosion);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
 		} else {
 			if (Actor_Query_In_Set(kActorMoraji, kSetDR05)) {
-				Actor_Set_Goal_Number(kActorMoraji, 99);
+				Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished);
 			} else {
-				Actor_Set_Goal_Number(kActorMoraji, 20);
+				Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiJump);
 			}
-			Game_Flag_Set(kFlagMorajiExploded);
+			Game_Flag_Set(kFlagDR05JustExploded);
 		}
 		return true;
-	case 99:
+
+	case kGoalMorajiPerished:
 		AI_Movement_Track_Flush(kActorMoraji);
 		AI_Movement_Track_Append(kActorMoraji, 41, 0);
 		AI_Movement_Track_Repeat(kActorMoraji);
 		return true;
-	default:
-		break;
 	}
 
 	return false;
@@ -219,7 +227,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 			_var2--;
 		} else {
 			_animationFrame += _var1;
-			if (!Random_Query(0, 10)) {
+			if (Random_Query(0, 10) == 0) {
 				_var1 = -_var1;
 			}
 			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
@@ -291,7 +299,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 			_animationState = 0;
 			*animation = 733;
-			Actor_Set_Goal_Number(kActorMoraji, 19);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiScream);
 		}
 		if (_animationFrame == 6) {
 			Ambient_Sounds_Play_Sound(488, 69, 0, 0, 20);
@@ -305,7 +313,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 			_animationState = 3;
 			*animation = 732;
-			Actor_Set_Goal_Number(kActorMoraji, 11);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiRunOut);
 		}
 		break;
 
@@ -320,7 +328,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 		*animation = 739;
 		_animationFrame++;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(739)) {
-			Actor_Set_Goal_Number(kActorMoraji, 21);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiLayDown);
 			_animationFrame = 0;
 			_animationState = 12;
 			*animation = 740;
@@ -351,7 +359,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 		_animationFrame++;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(741) - 1) {
 			_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
-			Actor_Set_Goal_Number(kActorMoraji, 23);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDead);
 		}
 		break;
 
@@ -370,67 +378,67 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
 
 bool AIScriptMoraji::ChangeAnimationMode(int mode) {
 	switch (mode) {
-	case 0:
-		if (_animationState != 12 && Actor_Query_Goal_Number(kActorMoraji) != 11) {
+	case kAnimationModeIdle:
+		if (_animationState != 12
+		 && Actor_Query_Goal_Number(kActorMoraji) != 11
+		) {
 			_animationState = 0;
 			_animationFrame = 0;
 		}
-		return 1;
+		break;
 
-	case 1:
+	case kAnimationModeWalk:
 		_animationState = 2;
 		_animationFrame = 0;
-		return 1;
+		break;
 
-	case 2:
-		if (_animationState) {
-			if (_animationState != 3 || _animationState > 3) {
-				_animationState = 3;
-				_animationFrame = 0;
-			}
-		} else {
+	case kAnimationModeRun:
+		if (_animationState == 0) {
 			_animationState = 1;
 			_animationStateNext = 3;
 			_animationNext = 732;
+		} else if (_animationState != 3) {
+			_animationState = 3;
+			_animationFrame = 0;
 		}
 		break;
 
 	case 3:
 		if (_animationState != 12) {
-			if (_animationState) {
-				_animationState = 5;
-				_animationFrame = 0;
-			} else {
+			if (_animationState == 0) {
 				_animationState = 1;
 				_animationStateNext = 5;
 				_animationNext = 734;
+			} else {
+				_animationState = 5;
+				_animationFrame = 0;
 			}
 		}
 		break;
 
 	case 12:
-		if (_animationState) {
-			_animationState = 6;
-			_animationFrame = 0;
-		} else {
+		if (_animationState == 0) {
 			_animationState = 1;
 			_animationStateNext = 6;
 			_animationNext = 735;
+		} else {
+			_animationState = 6;
+			_animationFrame = 0;
 		}
 		break;
 
 	case 13:
-		if (_animationState) {
-			_animationState = 7;
-			_animationFrame = 0;
-		} else {
+		if (_animationState == 0) {
 			_animationState = 1;
 			_animationStateNext = 7;
 			_animationNext = 736;
+		} else {
+			_animationState = 7;
+			_animationFrame = 0;
 		}
 		break;
 
-	case 48:
+	case kAnimationModeDie:
 		_animationState = 13;
 		_animationFrame = -1;
 		break;
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index 8a531ed..fa9b736 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -178,7 +178,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorMutant1, 39, 0);
 		AI_Movement_Track_Repeat(kActorMutant1);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
 			Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
 		}
@@ -352,7 +352,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Intelligence(kActorMutant1, 40);
 		Actor_Set_Health(kActorMutant1, 10 * Query_Difficulty_Level() + 30, 10 * Query_Difficulty_Level() + 30);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
 			Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
 		} else {
diff --git a/engines/bladerunner/script/ai/mutant2.cpp b/engines/bladerunner/script/ai/mutant2.cpp
index 16b2ca8..3e837b6 100644
--- a/engines/bladerunner/script/ai/mutant2.cpp
+++ b/engines/bladerunner/script/ai/mutant2.cpp
@@ -162,7 +162,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorMutant2, 39, 0);
 		AI_Movement_Track_Repeat(kActorMutant2);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
 			Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
 		}
@@ -334,7 +334,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Intelligence(kActorMutant2, 20);
 		Actor_Set_Health(71, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
 			Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
 		} else {
diff --git a/engines/bladerunner/script/ai/mutant3.cpp b/engines/bladerunner/script/ai/mutant3.cpp
index 0a6875e..848dd6c 100644
--- a/engines/bladerunner/script/ai/mutant3.cpp
+++ b/engines/bladerunner/script/ai/mutant3.cpp
@@ -175,7 +175,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorMutant3, 39, 0);
 		AI_Movement_Track_Repeat(kActorMutant3);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
 			Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
 		}
@@ -345,7 +345,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_Intelligence(kActorMutant3, 40);
 		Actor_Set_Health(kActorMutant3, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
 
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
 			Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
 		} else {
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index 2ed286e..d55b611 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -52,7 +52,7 @@ bool AIScriptOfficerGrayford::Update() {
 	} else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400) {
 		AI_Movement_Track_Flush(kActorOfficerGrayford);
 		Actor_Set_Goal_Number(kActorOfficerGrayford, 400);
-	} else if (!Game_Flag_Query(kFlagMcCoyAtDRxx)
+	} else if (!Game_Flag_Query(kFlagMcCoyInDNARow)
 			&& Actor_Query_Goal_Number(kActorOfficerGrayford) > 102
 			&& Actor_Query_Goal_Number(kActorOfficerGrayford) < 110) {
 		Actor_Set_Goal_Number(kActorOfficerGrayford, 110);
@@ -471,7 +471,7 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
 		Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true);
 
-		if (Game_Flag_Query(713)) {
+		if (Game_Flag_Query(kFlagDR04McCoyShotMoraji)) {
 			Actor_Set_Goal_Number(kActorMcCoy, 500);
 		} else {
 			Actor_Says(kActorMcCoy, 960, 15);
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index 19aa6b5..0348806 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -60,9 +60,9 @@ bool AIScriptOfficerLeary::Update() {
 		return false;
 	}
 
-	if (!Game_Flag_Query(kFlagMcCoyAtRCxx)
-	 &&  Game_Flag_Query(kFlagChopstickWrapperTaken)
-	 &&  Game_Flag_Query(kFlagChromeDebrisTaken)
+	if (!Game_Flag_Query(kFlagMcCoyInRunciters)
+	 &&  Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)
+	 &&  Game_Flag_Query(kFlagRC01ChromeDebrisTaken)
 	 &&  Player_Query_Current_Scene() != kSceneRC01
 	 &&  Global_Variable_Query(kVariableChapter) < 3
 	) {
@@ -321,7 +321,7 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
 				Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewB, false, -1);
 			}
 		}
-		if (Game_Flag_Query(kFlagMcCoyAtRCxx)) {
+		if (Game_Flag_Query(kFlagMcCoyInRunciters)) {
 			if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA)
 			 && Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB)
 			) {
@@ -906,7 +906,7 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
 		return true;
 	case 0:
 		if ( Game_Flag_Query(kFlagOfficerLearyTakingNotes)
-		 && !Game_Flag_Query(KFlagMcCoyAndOfficerLearyTalking)) {
+		 && !Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyTalking)) {
 			_animationState = 31;
 			_animationFrame = 0;
 			*animation = 604;
diff --git a/engines/bladerunner/script/ai/photographer.cpp b/engines/bladerunner/script/ai/photographer.cpp
index 2b082e8..6546003 100644
--- a/engines/bladerunner/script/ai/photographer.cpp
+++ b/engines/bladerunner/script/ai/photographer.cpp
@@ -43,11 +43,11 @@ void AIScriptPhotographer::Initialize() {
 
 bool AIScriptPhotographer::Update() {
 	if ( Game_Flag_Query(kFlagTB02ElevatorToTB05)
-	 && !Game_Flag_Query(kFlagPhotographerToTB06)
+	 && !Game_Flag_Query(kFlagTB06Photographer)
 	) {
 		Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC);
 		Actor_Set_At_Waypoint(kActorPhotographer, 35, 0);
-		Game_Flag_Set(kFlagPhotographerToTB06);
+		Game_Flag_Set(kFlagTB06Photographer);
 		Actor_Set_Goal_Number(kActorPhotographer, 100);
 
 		return true;
diff --git a/engines/bladerunner/script/ai/runciter.cpp b/engines/bladerunner/script/ai/runciter.cpp
index e4625f1..8087489 100644
--- a/engines/bladerunner/script/ai/runciter.cpp
+++ b/engines/bladerunner/script/ai/runciter.cpp
@@ -55,7 +55,7 @@ bool AIScriptRunciter::Update() {
 	if (Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterDefault
 	 && Game_Flag_Query(kFlagRC01PoliceDone)
 	) {
-		Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterHide);
+		Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterGoToFreeSlotGH);
 	}
 	if (Global_Variable_Query(kVariableChapter) == 4
 	 && Actor_Query_Goal_Number(kActorRunciter) < 300
@@ -180,7 +180,7 @@ bool AIScriptRunciter::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_Waypoint(kActorRunciter, 92, 567);
 		return false;
 	}
-	if (newGoalNumber == kGoalRunciterWalkAround) {
+	if (newGoalNumber == kGoalRunciterWalkAroundRC02) {
 		AI_Movement_Track_Flush(kActorRunciter);
 		if (Random_Query(0, 1) == 1) {
 			if (Random_Query(0, 1) == 0) {
@@ -198,7 +198,7 @@ bool AIScriptRunciter::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorRunciter);
 		return true;
 	}
-	if (newGoalNumber == kGoalRunciterHide) {
+	if (newGoalNumber == kGoalRunciterGoToFreeSlotGH) {
 		AI_Movement_Track_Flush(kActorRunciter);
 		AI_Movement_Track_Append(kActorRunciter, 39, 120);
 		AI_Movement_Track_Append(kActorRunciter, 40, 0);
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 0684de9..353a926 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -57,7 +57,7 @@ bool AIScriptSadik::Update() {
 		Actor_Set_Goal_Number(kActorSadik, 101);
 		Actor_Set_Targetable(kActorSadik, true);
 		Game_Flag_Set(391);
-		Game_Flag_Set(406);
+		Game_Flag_Set(kFlagUnused406);
 		return true;
 	}
 
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index c5c5b0c..637d3b0 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -56,21 +56,21 @@ bool AIScriptSteele::Update() {
 
 	switch (Global_Variable_Query(kVariableChapter)) {
 	case 1:
-		if (Game_Flag_Query(kFlagMcCoyAtRCxx)
+		if (Game_Flag_Query(kFlagMcCoyInRunciters)
 		 && Game_Flag_Query(183)
 		) {
 			Actor_Set_Goal_Number(kActorSteele, 3);
 			return true;
 		}
 
-		if (Game_Flag_Query(kFlagMcCoyAtCTxx)
+		if (Game_Flag_Query(kFlagMcCoyInChinaTown)
 		 && Game_Flag_Query(184)
 		) {
 			Actor_Set_Goal_Number(kActorSteele, 6);
 			return true;
 		}
 
-		if (Game_Flag_Query(kFlagMcCoyAtPSxx)
+		if (Game_Flag_Query(kFlagMcCoyInPoliceStation)
 		 && Game_Flag_Query(185)
 		) {
 			Actor_Set_Goal_Number(kActorSteele, 10);
@@ -78,7 +78,7 @@ bool AIScriptSteele::Update() {
 		}
 
 		if ( Actor_Query_Goal_Number(kActorSteele) == 0
-		 && !Game_Flag_Query(kFlagMcCoyAtRCxx)
+		 && !Game_Flag_Query(kFlagMcCoyInRunciters)
 		 &&  Player_Query_Current_Scene() != kSceneRC01
 		) {
 			Actor_Set_Goal_Number(kActorSteele, 1);
@@ -399,11 +399,11 @@ void AIScriptSteele::ClickedByPlayer() {
 
 void AIScriptSteele::EnteredScene(int sceneId) {
 	if (Actor_Query_Goal_Number(kActorSteele) == 2) {
-		if (!Game_Flag_Query(kFlagChopstickWrapperTaken)
+		if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)
 		 &&  Random_Query(1, 3) == 1
 		) {
 			Actor_Clue_Acquire(kActorSteele, kClueChopstickWrapper, true, -1);
-			Game_Flag_Set(kFlagChopstickWrapperTaken);
+			Game_Flag_Set(kFlagRC51ChopstickWrapperTaken);
 
 			if (Game_Flag_Query(kFlagRC51Discovered)) {
 				Item_Remove_From_World(kItemChopstickWrapper);
@@ -413,11 +413,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
 			return;  //true;
 		}
 
-		if (!Game_Flag_Query(kFlagCandyTaken)
+		if (!Game_Flag_Query(kFlagRC51CandyTaken)
 		 &&  Random_Query(1, 3) == 1
 		) {
 			Actor_Clue_Acquire(kActorSteele, kClueCandy, true, -1);
-			Game_Flag_Set(kFlagCandyTaken);
+			Game_Flag_Set(kFlagRC51CandyTaken);
 
 			if (Game_Flag_Query(kFlagRC51Discovered)) {
 				Item_Remove_From_World(kItemCandy);
@@ -425,11 +425,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
 			return; //true;
 		}
 
-		if (!Game_Flag_Query(kFlagToyDogTaken)
+		if (!Game_Flag_Query(kFlagRC51ToyDogTaken)
 		 &&  Random_Query(1, 20) == 1
 		) {
 			Actor_Clue_Acquire(kActorSteele, kClueToyDog, true, -1);
-			Game_Flag_Set(kFlagToyDogTaken);
+			Game_Flag_Set(kFlagRC51ToyDogTaken);
 
 			if (Game_Flag_Query(kFlagRC51Discovered)) {
 				Item_Remove_From_World(kItemToyDog);
@@ -440,11 +440,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
 
 	if ( Actor_Query_Goal_Number(kActorSteele) == 5
 	 &&  Actor_Query_In_Set(kActorSteele, kSetCT03_CT04)
-	 &&  Game_Flag_Query(kFlagMcCoyKilledHomeless)
-	 && !Game_Flag_Query(kFlagHomelessBodyInDumpster)
-	 && !Game_Flag_Query(kFlagHomelessBodyFound)
+	 &&  Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+	 && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+	 && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
 	) {
-		Game_Flag_Set(kFlagHomelessBodyFound);
+		Game_Flag_Set(kFlagCT04HomelessBodyFound);
 		return; //true;
 	}
 
@@ -931,8 +931,8 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 
 	case 233:
 		Game_Flag_Set(kFlagHF01toHF03);
-		Game_Flag_Reset(kFlagMcCoyAtNRxx);
-		Game_Flag_Set(kFlagMcCoyAtHFxx);
+		Game_Flag_Reset(kFlagMcCoyInNightclubRow);
+		Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 		Actor_Put_In_Set(kActorSteele, kSetHF03);
 		Actor_Set_At_XYZ(kActorSteele, 291.0f, 47.76f, -892.0f, 453);
 		Set_Enter(kSetHF03, kSceneHF03);
@@ -1265,25 +1265,25 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		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, kAnimationModeIdle);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, false, true, 0);
+		Actor_Face_Heading(kActorMcCoy, 45, false);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 3, false, kAnimationModeIdle);
 		Global_Variable_Set(1, 4);
 		Scene_Exits_Enable();
 		Actor_Set_Health(kActorMcCoy, 50, 50);
 		Game_Flag_Set(523);
-		Game_Flag_Set(343);
+		Game_Flag_Set(kFlagNR01toUG06);
 		Game_Flag_Set(680);
-		Chapter_Enter(4, 79, 91);
+		Chapter_Enter(4, kSetUG06, kSceneUG06);
 		return true;
 
 	case 291:
 		Game_Flag_Set(722);
-		Global_Variable_Set(1, 4);
+		Global_Variable_Set(kVariableChapter, 4);
 		Scene_Exits_Enable();
 		Game_Flag_Set(523);
 		Game_Flag_Set(680);
-		Chapter_Enter(4, 79, 91);
+		Chapter_Enter(4, kSetUG06, kSceneUG06);
 		return true;
 
 	case 300:
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index b5f42bd..62d3c02 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -56,16 +56,16 @@ bool AIScriptTransient::Update() {
 	}
 
 	if ( Global_Variable_Query(kVariableChapter) == 3
-	 &&  Game_Flag_Query(kFlagMcCoyKilledHomeless)
-	 &&  Game_Flag_Query(kFlagHomelessBodyInDumpster)
-	 && !Game_Flag_Query(kFlagHomelessBodyFound)
-	 && !Game_Flag_Query(kFlagDumpsterEmptied)
+	 &&  Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+	 &&  Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+	 && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
+	 && !Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
 	) {
-		Game_Flag_Set(kFlagDumpsterEmptied);
+		Game_Flag_Set(kFlagCT04HomelessBodyThrownAway);
 	}
 
 	if (Global_Variable_Query(kVariableChapter) < 4
-	 && Game_Flag_Query(kFlagHomelessBodyFound)
+	 && Game_Flag_Query(kFlagCT04HomelessBodyFound)
 	 && Actor_Query_Goal_Number(kActorTransient) != 6
 	 && Actor_Query_Goal_Number(kActorTransient) != 599
 	) {
@@ -163,7 +163,7 @@ bool AIScriptTransient::ShotAtAndHit() {
 		Actor_Set_Goal_Number(kActorTransient, 599);
 	}
 
-	Game_Flag_Set(kFlagMcCoyKilledHomeless);
+	Game_Flag_Set(kFlagCT04HomelessKilledByMcCoy);
 
 	return false;
 }
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index 47e74f7..af1d64c 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -53,15 +53,17 @@ bool AIScriptZuben::Update() {
 		Actor_Put_In_Set(kActorZuben, kSetFreeSlotI);
 		Actor_Set_At_Waypoint(kActorZuben, 41, 0);
 	}
+
 	if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault
 	 &&  Player_Query_Current_Scene() == kSceneCT01
-	 && !Game_Flag_Query(kFlagZubenCheckOnMcCoy)
+	 && !Game_Flag_Query(kFlagCT01ZubenMcCoyCheck)
 	) {
 		AI_Countdown_Timer_Reset(kActorZuben, 2);
 		AI_Countdown_Timer_Start(kActorZuben, 2, 30);
-		Game_Flag_Set(kFlagZubenCheckOnMcCoy);
+		Game_Flag_Set(kFlagCT01ZubenMcCoyCheck);
 		return true;
 	}
+
 	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault
 	 && Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 48
 	 && Actor_Query_Is_In_Current_Set(kActorZuben)
@@ -72,9 +74,10 @@ bool AIScriptZuben::Update() {
 			Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, true, -1);
 		}
 		Game_Flag_Set(kFlagCT01ZubenLeft);
-		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT01Leave);
+		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT01WalkToCT02);
 		return true;
 	}
+
 	if ( Global_Variable_Query(kVariableChapter) >= 4
 	 && !Game_Flag_Query(kFlagZubenRetired)
 	 &&  Actor_Query_Goal_Number(kActorZuben) < 200
@@ -83,6 +86,7 @@ bool AIScriptZuben::Update() {
 		Actor_Set_Goal_Number(kActorZuben, 200);
 		return true;
 	}
+
 	if ( Global_Variable_Query(kVariableChapter) == 5
 	 && !Game_Flag_Query(kFlagZubenRetired)
 	 &&  Actor_Query_Goal_Number(kActorZuben) < 400
@@ -91,17 +95,19 @@ bool AIScriptZuben::Update() {
 		Actor_Set_Goal_Number(kActorZuben, 400);
 		return true;
 	}
+
 	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06AttackMcCoy
 	 && Player_Query_Current_Scene() == kSceneCT07
 	) {
 		AI_Countdown_Timer_Reset(kActorZuben, 0);
-		Game_Flag_Set(kFlagWarehouseOpen);
+		Game_Flag_Set(kFlagCT05WarehouseOpen);
 		Actor_Set_Targetable(kActorZuben, true);
-		if (Actor_Query_Goal_Number(kActorGordo) == 0) {
-			Actor_Set_Goal_Number(kActorGordo, 1);
+		if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeaveCT01);
 		}
 		return true;
 	}
+
 	if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck
 	 && !Game_Flag_Query(kFlagCT02ZubenFled)
 	) {
@@ -119,12 +125,12 @@ void AIScriptZuben::TimerExpired(int timer) {
 		) {
 			Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -1);
 		}
-		Game_Flag_Reset(kFlagZubenCheckOnMcCoy);
+		Game_Flag_Reset(kFlagCT01ZubenMcCoyCheck);
 		// return true;
 	} else if (timer == 1) {
-		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) { // Zuben fleeing, after 10s
+		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG) { // Zuben fleeing, after 10s
 			Music_Stop(10);
-			Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide);
+			Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06HideAtFreeSlotA);
 			AI_Countdown_Timer_Reset(kActorZuben, 1);
 			// return true;
 		}
@@ -140,16 +146,16 @@ void AIScriptZuben::TimerExpired(int timer) {
 }
 
 void AIScriptZuben::CompletedMovementTrack() {
-	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee
+	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG
 	 && Game_Flag_Query(kFlagCT02McCoyFell)
 	) {
 		Set_Enter(kSetCT03_CT04, kSceneCT03);
 	}
 
 	if (Actor_Query_Goal_Number(kActorZuben) == 3) { // not set anywhere
-		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07Leave);
+		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07RunToFreeSlotA);
 		//return true;
-	} else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide
+	} else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA
 	        && Game_Flag_Query(kFlagCT02McCoyFell)
 	) {
 		AI_Countdown_Timer_Reset(kActorZuben, 0);
@@ -164,7 +170,7 @@ void AIScriptZuben::CompletedMovementTrack() {
 		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02OpenDoor);
 		//return true;
 	} else {
-		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07Leave) {
+		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07RunToFreeSlotA) {
 			Music_Stop(2);
 			Sound_Play(574, 40, 100, 100, 50);
 			Delay(2000);
@@ -264,7 +270,7 @@ void AIScriptZuben::ShotAtAndMissed() {
 
 bool AIScriptZuben::ShotAtAndHit() {
 	Game_Flag_Set(kFlagMcCoyShotAtZuben);
-	if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07Leave
+	if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07RunToFreeSlotA
 	 && !Actor_Clue_Query(kActorZuben, kClueMcCoyShotZubenInTheBack)
 	) {
 		Actor_Clue_Acquire(kActorZuben, kClueMcCoyShotZubenInTheBack, true, -1);
@@ -306,14 +312,15 @@ int AIScriptZuben::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
 
 bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
-	case kGoalZubenCT01Leave:
+	case kGoalZubenCT01WalkToCT02:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append(kActorZuben, 86, 0);
 		AI_Movement_Track_Append(kActorZuben, 106, 0);
 		AI_Movement_Track_Append_With_Facing(kActorZuben, 45, 0, 481);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
-	case kGoalZubenCT02Flee:
+
+	case kGoalZubenCT02RunToFreeSlotG:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 84, 0);
 		AI_Movement_Track_Append_Run(kActorZuben, 85, 0);
@@ -324,6 +331,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Countdown_Timer_Start(kActorZuben, 0, 70);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case kGoalZubenCT07Spared:
 		AI_Movement_Track_Flush(kActorZuben);
 		Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
@@ -343,14 +351,16 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Clue_Acquire(kActorZuben, kClueMcCoyIsABladeRunner, true, -1);
 		}
 		Actor_Clue_Acquire(kActorZuben, kClueMcCoyLetZubenEscape, true, -1);
-		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07Leave);
+		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07RunToFreeSlotA);
 		return false;
-	case kGoalZubenCT07Leave:
+
+	case kGoalZubenCT07RunToFreeSlotA:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 94, 0);
 		AI_Movement_Track_Append_Run(kActorZuben, 33, 0);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case kGoalZubenDie:
 		Game_Flag_Set(kFlagZubenRetired);
 		Game_Flag_Set(kFlagCT01ZubenGone);
@@ -364,20 +374,24 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		Actor_Set_Goal_Number(kActorZuben, kGoalZubenDead);
 		return false;
+
 	case kGoalZubenCT02PushPot:
 		_animationFrame = 0;
 		_animationState = 26;
 		return false;
+
 	case kGoalZubenCT02RunToDoor:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 46, 0);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case kGoalZubenCT02OpenDoor:
 		Actor_Face_Heading(kActorZuben, kActorMcCoy, false);
 		_animationFrame = 0;
 		_animationState = 27;
 		return false;
+
 	case kGoalZubenCT06JumpDown:
 		AI_Countdown_Timer_Reset(kActorZuben, 0);
 		Actor_Put_In_Set(kActorZuben, kSetCT06);
@@ -385,6 +399,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		_animationFrame = 0;
 		_animationState = 28;
 		return false;
+
 	case kGoalZubenCT06AttackMcCoy:
 		Player_Loses_Control();
 		if (!Player_Query_Combat_Mode()) {
@@ -394,7 +409,8 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Game_Flag_Set(kFlagNotUsed142);
 		Set_Enter(kSetCT07, kSceneCT07);
 		return false;
-	case kGoalZubenCT06Hide:
+
+	case kGoalZubenCT06HideAtFreeSlotA:
 		Actor_Set_Targetable(kActorZuben, true);
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 51, 0);
@@ -402,6 +418,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Append(kActorZuben, 33, 1);  // Hide Zuben
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case kGoalZubenCT02PotDodgeCheck:
 		if (Actor_Query_Goal_Number(kActorMcCoy) != kGoalMcCoyDodge) {
 			Player_Loses_Control();
@@ -411,29 +428,34 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		}
 		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToDoor);
 		return false;
+
 	case kGoalZubenMA01AttackMcCoy:
-		Game_Flag_Set(kFlagWarehouseOpen);
+		Game_Flag_Set(kFlagCT05WarehouseOpen);
 		Actor_Set_Targetable(kActorZuben, true);
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 125, 0);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
-	case 22:
+
+	case 22: // is never set
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 125, 0);
 		AI_Movement_Track_Append_Run(kActorZuben, 33, 0);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case 99:
 		AI_Movement_Track_Flush(kActorZuben);
 		Scene_Exits_Enable();
 		Music_Stop(2);
 		return false;
+
 	case 100:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 33, 3);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case 105:
 		{
 			int rnd1 = Random_Query(1, 3);
@@ -508,11 +530,13 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case 106:
 		Actor_Set_Goal_Number(kActorZuben, 105);
 		return true;
+
 	case 200:
 		AI_Movement_Track_Flush(kActorZuben);
 		AI_Movement_Track_Append_Run(kActorZuben, 33, 3);
 		AI_Movement_Track_Repeat(kActorZuben);
 		return false;
+
 	case 205:
 		switch (Random_Query(1, 8)) {
 		case 1:
@@ -591,9 +615,11 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			break;
 		}
 		return false;
+
 	case 206:
 		Actor_Set_Goal_Number(kActorZuben, 205);
 		return true;
+
 	case 400:
 		AI_Movement_Track_Flush(kActorZuben);
 		Actor_Put_In_Set(kActorZuben, kSetFreeSlotA);
@@ -950,7 +976,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
 			Actor_Set_Frame_Rate_FPS(kActorZuben, -2);
 			_animationState = 0;
 			_animationFrame = 0;
-			Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02Flee);
+			Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToFreeSlotG);
 		}
 		break;
 	case 28:
@@ -1164,6 +1190,7 @@ void AIScriptZuben::dialogue() {
 		Actor_Says(kActorMcCoy, 7310, 16);
 		Actor_Says(kActorZuben, 190, 15);
 		break;
+
 	case 1500:
 		Actor_Says(kActorMcCoy, 7295, 11);
 		Actor_Says(kActorZuben, 200, 12);
@@ -1188,6 +1215,7 @@ void AIScriptZuben::dialogue() {
 			Actor_Clue_Acquire(kActorMcCoy, kClueZubenTalksAboutLucy2, false, kActorZuben);
 		}
 		break;
+
 	case 1510:
 		Actor_Says(kActorMcCoy, 7300, 13);
 		Actor_Says(kActorZuben, 280, 12);
@@ -1202,6 +1230,7 @@ void AIScriptZuben::dialogue() {
 		Actor_Says(kActorZuben, 330, 12);
 		Actor_Clue_Acquire(kActorMcCoy, kClueZubensMotive, false, kActorZuben);
 		break;
+
 	case 1520:
 		Actor_Says(kActorZuben, 160, 13);
 		Actor_Says(kActorMcCoy, 7305, 15);
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index c9e945a..9252db3 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -137,10 +137,10 @@ DECLARE_SCRIPT(Gordo)
 	int _frameMax;
 	int _state;
 
-	void sub_40FD00();
+	void McCoyTalkWithGordo();
 	void sub_4103B8();
-	void sub_410590();
-	void sub_41090C();
+	void dialogueWithGordo2();
+	void dialogueWithGordo1();
 	void sub_41117C();
 END_SCRIPT
 
@@ -185,7 +185,7 @@ DECLARE_SCRIPT(Izo)
 	int _var4;
 	bool _flag;
 
-	void someDialog();
+	void dialogueWithIzo();
 	void modifyWaypoints();
 END_SCRIPT
 
diff --git a/engines/bladerunner/script/esper_script.cpp b/engines/bladerunner/script/esper_script.cpp
index e12e40f..0699a99 100644
--- a/engines/bladerunner/script/esper_script.cpp
+++ b/engines/bladerunner/script/esper_script.cpp
@@ -109,62 +109,72 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
 
 void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) {
 	switch (photo) {
-	case 9:
-		Actor_Says(kActorAnsweringMachine, 270, 3);
-		ESPER_Define_Special_Region(22, 1208, 330, 1218, 340, 1050, 160, 1279, 550, 956, 203, 1278, 497, "KP06ESP1");
-		ESPER_Define_Special_Region(23, 854, 371, 858, 375, 790, 320, 940, 560, 722, 220, 1000, 505, "KP06ESP2");
-		ESPER_Define_Special_Region(24, 615, 325, 648, 365, 440, 220, 820, 959, 326, 140, 948, 474, "KP06ESP3");
-		ESPER_Define_Special_Region(25, 373, 417, 382, 426, 310, 370, 480, 560, 228, 323, 493, 509, "KP06ESP4");
-		break;
-	case 8:
-		Actor_Says(kActorAnsweringMachine, 230, 3);
-		ESPER_Define_Special_Region(18, 166, 623, 177, 632, 38, 528, 320, 770, 26, 530, 313, 771, "TB06ESP1");
-		ESPER_Define_Special_Region(19, 156, 356, 164, 360, 60, 280, 250, 460, 14, 251, 257, 459, "TB06ESP2");
-		ESPER_Define_Special_Region(20, 395, 158, 410, 185, 270, 70, 760, 640, 125, 0, 560, 307, "TB06ESP3");
-		ESPER_Define_Special_Region(21, 343, 269, 352, 276, 290, 200, 410, 340, 157, 118, 565, 405, "TB06ESP4");
+	case 0:
+		Actor_Says(kActorAnsweringMachine, 220, 3);
+		ESPER_Define_Special_Region(0, 490, 511, 496, 517, 400, 440, 580, 580, 380, 260, 900, 710, "RC02ESP1");
+		ESPER_Define_Special_Region(1, 473, 342, 479, 349, 400, 300, 580, 580, 350, 250, 900, 710, "RC02ESP2");
+		ESPER_Define_Special_Region(2, 444, 215, 461, 223, 380, 120, 570, 340, 354, 160, 577, 354, "RC02ESP3");
 		break;
-	case 7:
-		Actor_Says(kActorAnsweringMachine, 250, 3);
-		ESPER_Define_Special_Region(16, 1171, 457, 1184, 466, 1060, 370, 1279, 730, 910, 300, 1279, 678, "HC02ESP3");
-		ESPER_Define_Special_Region(17, 328, 398, 340, 413, 250, 350, 460, 640, 100, 236, 530, 612, "HC02ESP4");
+
+	case 1:
+		Actor_Says(kActorAnsweringMachine, 220, 3);
+		ESPER_Define_Special_Region(3, 560, 210, 580, 220, 450, 130, 680, 540, 0, 0, 1279, 959, "RC02ESP4");
+		ESPER_Define_Special_Region(4, 584, 482, 595, 493, 460, 400, 660, 540, 0, 0, 1279, 959, "RC02ESP5");
+		ESPER_Define_Special_Region(5, 669, 322, 675, 329, 620, 230, 740, 390, 0, 0, 1279, 959, "RC02ESP6");
+		ESPER_Define_Special_Region(6, 698, 236, 748, 274, 600, 160, 850, 420, 160, 0, 1279, 750, "RC02ESP7");
 		break;
-	case 6:
-		Actor_Says(kActorAnsweringMachine, 250, 3);
-		ESPER_Define_Special_Region(14, 879, 221, 882, 225, 640, 0, 1000, 512, 265, 146, 1014, 813, "HC02ESP5");
-		ESPER_Define_Special_Region(15, 660, 550, 678, 572, 560, 480, 850, 910, 265, 146, 1014, 813, "HC02ESP2");
+
+	case 2:
+		Actor_Says(kActorAnsweringMachine, 260, 3);
+		ESPER_Define_Special_Region(7, 102, 809, 108, 861, 20, 720, 200, 930, 191, 95, 1085, 870, "NR06ESP1");
+		ESPER_Define_Special_Region(8, 661, 437, 664, 443, 530, 320, 720, 600, 330, 200, 945, 750, "NR06ESP2");
 		break;
-	case 5:
-		Actor_Says(kActorAnsweringMachine, 240, 3);
-		ESPER_Define_Special_Region(13, 720, 485, 728, 491, 640, 390, 780, 630, 257, 94, 1013, 804, "HC01ESP3");
+
+	case 3:
+		Actor_Says(kActorAnsweringMachine, 260, 3);
+		ESPER_Define_Special_Region(9, 479, 381, 482, 385, 430, 320, 520, 470, 265, 200, 815, 720, "NR07ESP2");
+		ESPER_Define_Special_Region(10, 893, 298, 901, 306, 770, 230, 980, 500, 340, 216, 942, 747, "NR07ESP1");
 		break;
+
 	case 4:
 		Actor_Says(kActorAnsweringMachine, 240, 3);
 		ESPER_Define_Special_Region(11, 420, 436, 434, 450, 350, 380, 520, 680, 257, 94, 1013, 804, "HC01ESP1");
 		ESPER_Define_Special_Region(12, 407, 489, 410, 509, 370, 450, 500, 560, 257, 94, 1013, 804, "HC01ESP2");
 		break;
-	case 3:
-		Actor_Says(kActorAnsweringMachine, 260, 3);
-		ESPER_Define_Special_Region(10, 893, 298, 901, 306, 770, 230, 980, 500, 340, 216, 942, 747, "NR07ESP1");
-		ESPER_Define_Special_Region(9, 479, 381, 482, 385, 430, 320, 520, 470, 265, 200, 815, 720, "NR07ESP2");
+
+	case 5:
+		Actor_Says(kActorAnsweringMachine, 240, 3);
+		ESPER_Define_Special_Region(13, 720, 485, 728, 491, 640, 390, 780, 630, 257, 94, 1013, 804, "HC01ESP3");
 		break;
-	case 2:
-		Actor_Says(kActorAnsweringMachine, 260, 3);
-		ESPER_Define_Special_Region(7, 102, 809, 108, 861, 20, 720, 200, 930, 191, 95, 1085, 870, "NR06ESP1");
-		ESPER_Define_Special_Region(8, 661, 437, 664, 443, 530, 320, 720, 600, 330, 200, 945, 750, "NR06ESP2");
+
+	case 6:
+		Actor_Says(kActorAnsweringMachine, 250, 3);
+		ESPER_Define_Special_Region(14, 879, 221, 882, 225, 640, 0, 1000, 512, 265, 146, 1014, 813, "HC02ESP5");
+		ESPER_Define_Special_Region(15, 660, 550, 678, 572, 560, 480, 850, 910, 265, 146, 1014, 813, "HC02ESP2");
 		break;
-	case 1:
-		Actor_Says(kActorAnsweringMachine, 220, 3);
-		ESPER_Define_Special_Region(3, 560, 210, 580, 220, 450, 130, 680, 540, 0, 0, 1279, 959, "RC02ESP4");
-		ESPER_Define_Special_Region(4, 584, 482, 595, 493, 460, 400, 660, 540, 0, 0, 1279, 959, "RC02ESP5");
-		ESPER_Define_Special_Region(5, 669, 322, 675, 329, 620, 230, 740, 390, 0, 0, 1279, 959, "RC02ESP6");
-		ESPER_Define_Special_Region(6, 698, 236, 748, 274, 600, 160, 850, 420, 160, 0, 1279, 750, "RC02ESP7");
+
+	case 7:
+		Actor_Says(kActorAnsweringMachine, 250, 3);
+		ESPER_Define_Special_Region(16, 1171, 457, 1184, 466, 1060, 370, 1279, 730, 910, 300, 1279, 678, "HC02ESP3");
+		ESPER_Define_Special_Region(17, 328, 398, 340, 413, 250, 350, 460, 640, 100, 236, 530, 612, "HC02ESP4");
 		break;
-	case 0:
-		Actor_Says(kActorAnsweringMachine, 220, 3);
-		ESPER_Define_Special_Region(0, 490, 511, 496, 517, 400, 440, 580, 580, 380, 260, 900, 710, "RC02ESP1");
-		ESPER_Define_Special_Region(1, 473, 342, 479, 349, 400, 300, 580, 580, 350, 250, 900, 710, "RC02ESP2");
-		ESPER_Define_Special_Region(2, 444, 215, 461, 223, 380, 120, 570, 340, 354, 160, 577, 354, "RC02ESP3");
+
+	case 8:
+		Actor_Says(kActorAnsweringMachine, 230, 3);
+		ESPER_Define_Special_Region(18, 166, 623, 177, 632, 38, 528, 320, 770, 26, 530, 313, 771, "TB06ESP1");
+		ESPER_Define_Special_Region(19, 156, 356, 164, 360, 60, 280, 250, 460, 14, 251, 257, 459, "TB06ESP2");
+		ESPER_Define_Special_Region(20, 395, 158, 410, 185, 270, 70, 760, 640, 125, 0, 560, 307, "TB06ESP3");
+		ESPER_Define_Special_Region(21, 343, 269, 352, 276, 290, 200, 410, 340, 157, 118, 565, 405, "TB06ESP4");
 		break;
+
+	case 9:
+		Actor_Says(kActorAnsweringMachine, 270, 3);
+		ESPER_Define_Special_Region(22, 1208, 330, 1218, 340, 1050, 160, 1279, 550, 956, 203, 1278, 497, "KP06ESP1");
+		ESPER_Define_Special_Region(23, 854, 371, 858, 375, 790, 320, 940, 560, 722, 220, 1000, 505, "KP06ESP2");
+		ESPER_Define_Special_Region(24, 615, 325, 648, 365, 440, 220, 820, 959, 326, 140, 948, 474, "KP06ESP3");
+		ESPER_Define_Special_Region(25, 373, 417, 382, 426, 310, 370, 480, 560, 228, 323, 493, 509, "KP06ESP4");
+		break;
+
 	default:
 		return;
 	}
@@ -172,123 +182,101 @@ void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) {
 
 bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region) {
 	switch (photo) {
-	case 9:
-		switch (region) {
-		case 22:
-			Actor_Says(kActorMcCoy, 8705, 3);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbusReflection)) {
-				Actor_Says(kActorMcCoy, 6945, 3);
-				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, true, -1);
-			}
-			break;
-		case 23:
-			Actor_Voice_Over(4240, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueMcCoyAtMoonbus)) {
+	case 0:
+		if (region == 0) {
+			Actor_Voice_Over(4050, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, true, -1);
 			}
-			break;
-		case 24:
-			Actor_Voice_Over(4220, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisAtMoonbus)) {
+		} 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, kClueClovisAtMoonbus, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueLucy, true, -1);
 			}
-			break;
-		case 25:
-			if (!Actor_Clue_Query(kActorMcCoy, kClueSadikAtMoonbus)) {
+		} 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, kClueSadikAtMoonbus, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, true, -1);
 			}
-			break;
 		}
-		return false;
-	case 8:
-		switch (region) {
-		case 18:
-			Actor_Says(kActorMcCoy, 8775, 3);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueKingstonKitchenBox2)) {
+		return true;
+
+	case 1:
+		if (region == 3) {
+			Actor_Voice_Over(4080, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueAnimalMurderSuspect)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueAnimalMurderSuspect, true, -1);
 			}
-			break;
-		case 19:
-			Actor_Voice_Over(4160, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
+		} 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, kClueDogCollar2, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMilitaryBoots, true, -1);
 			}
-			break;
-		case 20:
-			Actor_Voice_Over(2140, kActorVoiceOver);
-			Actor_Voice_Over(2150, kActorVoiceOver);
-			Actor_Voice_Over(2160, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)) {
+		} 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, kClueBombingSuspect, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kCluePartialLicenseNumber, true, -1);
 			}
-			break;
-		case 21:
-			Actor_Says(kActorMcCoy, 8890, 3);
-			if (!Actor_Clue_Query(kActorMcCoy, kCluePlasticExplosive)) {
+		} 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, kCluePlasticExplosive, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueCarColorAndMake, true, -1);
 			}
-			break;
 		}
-		return false;
-	case 7:
-		if (region == 16) {
-			Actor_Voice_Over(4080, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueIzo)) {
+		return true;
+
+	case 2:
+		if (region == 8) {
+			Actor_Voice_Over(4260, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueEarlyQAndLucy)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueIzo, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, true, -1);
 			}
-		} else if (region == 17) {
-			Actor_Voice_Over(4210, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueGuzza)) {
+		} 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, kClueGuzza, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueScorpionbox, true, -1);
 			}
 		}
-		return false;
-	case 6:
-		if (region == 14) {
-			Actor_Says(kActorMcCoy, 6975, 3);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)) {
-				Actor_Says(kActorMcCoy, 6945, 3);
-				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityCamera, true, -1);
-			}
-		} else if (region == 15) {
-			Actor_Voice_Over(4220, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueIzosFriend)) {
+		return true;
+
+	case 3:
+		if (region == 9) {
+			Actor_Voice_Over(4230, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueIzosFriend, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
 			}
-		}
-		return false;
-	case 5:
-		if (region == 13) {
-			Actor_Says(kActorMcCoy, 8830, 3);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueStrangeScale2)) {
+			return true;
+		} if (region == 10) {
+			Actor_Voice_Over(4040, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueLucyWithDektora)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, true, -1);
 			}
+			return true;
 		}
 		return false;
+
 	case 4:
 		if (region == 11) {
 			Actor_Voice_Over(4090, kActorVoiceOver);
@@ -306,97 +294,134 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
 			}
 		}
 		return false;
-	case 3:
-		if (region == 9) {
-			Actor_Voice_Over(4230, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
+
+	case 5:
+		if (region == 13) {
+			Actor_Says(kActorMcCoy, 8830, 3);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueStrangeScale2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, true, -1);
 			}
-			return true;
-		} else if (region == 10) {
-			Actor_Voice_Over(4040, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueLucyWithDektora)) {
+		}
+		return false;
+
+	case 6:
+		if (region == 14) {
+			Actor_Says(kActorMcCoy, 6975, 3);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, true, -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, true, -1);
 			}
-			return true;
 		}
 		return false;
-	case 2:
-		if (region == 8) {
-			Actor_Voice_Over(4260, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueEarlyQAndLucy)) {
+
+	case 7:
+		if (region == 16) {
+			Actor_Voice_Over(4080, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueIzo)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueIzo, true, -1);
 			}
-		} else if (region == 7) {
-			Actor_Voice_Over(4190, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueScorpionbox)) {
+		} 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, kClueScorpionbox, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGuzza, true, -1);
 			}
 		}
-		return true;
-	case 1:
-		if (region == 3) {
-			Actor_Voice_Over(4080, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueAnimalMurderSuspect)) {
+		return false;
+
+	case 8:
+		switch (region) {
+		case 18:
+			Actor_Says(kActorMcCoy, 8775, 3);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueKingstonKitchenBox2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueAnimalMurderSuspect, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, true, -1);
 			}
-		} else if (region == 4) {
-			Actor_Voice_Over(4110, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueMilitaryBoots)) {
+			break;
+
+		case 19:
+			Actor_Voice_Over(4160, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueMilitaryBoots, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar2, true, -1);
 			}
-		} else if (region == 5) {
-			Actor_Voice_Over(4120, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kCluePartialLicenseNumber)) {
+			break;
+
+		case 20:
+			Actor_Voice_Over(2140, kActorVoiceOver);
+			Actor_Voice_Over(2150, kActorVoiceOver);
+			Actor_Voice_Over(2160, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kCluePartialLicenseNumber, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueBombingSuspect, true, -1);
 			}
-		} else if (region == 6) {
-			Actor_Voice_Over(4070, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)) {
+			break;
+
+		case 21:
+			Actor_Says(kActorMcCoy, 8890, 3);
+			if (!Actor_Clue_Query(kActorMcCoy, kCluePlasticExplosive)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueCarColorAndMake, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kCluePlasticExplosive, true, -1);
 			}
+			break;
 		}
-		return true;
-	case 0:
-		if (region == 0) {
-			Actor_Voice_Over(4050, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) {
+		return false;
+
+	case 9:
+		switch (region) {
+		case 22:
+			Actor_Says(kActorMcCoy, 8705, 3);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbusReflection)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, true, -1);
 			}
-		} else if (region == 1) {
-			Actor_Voice_Over(4040, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
+			break;
+
+		case 23:
+			Actor_Voice_Over(4240, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueMcCoyAtMoonbus)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueLucy, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, true, -1);
 			}
-		} else if (region == 2) {
-			Actor_Voice_Over(4060, kActorVoiceOver);
-			if (!Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)) {
+			break;
+
+		case 24:
+			Actor_Voice_Over(4220, kActorVoiceOver);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueClovisAtMoonbus)) {
 				Actor_Says(kActorMcCoy, 6945, 3);
 				Sound_Play(417, 50, 0, 0, 50);
-				Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, true, -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, true, -1);
+			}
+			break;
 		}
-		return true;
+		return false;
 	}
 	return false;
 }
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 278ce1b..aa3f007 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -110,7 +110,7 @@ void InitScript::Init_Game_Flags() {
 		Global_Variable_Set(40, 3);
 	}
 
-	Game_Flag_Set(kFlagMcCoyAtRCxx);
+	Game_Flag_Set(kFlagMcCoyInRunciters);
 	Game_Flag_Set(kFlagSpinnerAtRC01);
 }
 
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp
index ed4a96b..9cd104c 100644
--- a/engines/bladerunner/script/scene/ar01.cpp
+++ b/engines/bladerunner/script/scene/ar01.cpp
@@ -143,7 +143,7 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -120.73f, 0.0f, 219.17f, 12, 1, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorFishDealer, true);
 			Actor_Face_Actor(kActorFishDealer, kActorMcCoy, true);
-			if (!Game_Flag_Query(kFlagFishDealerTalk)) {
+			if (!Game_Flag_Query(kFlagAR01FishDealerTalk)) {
 				Actor_Says(kActorMcCoy, 0, 18);
 				Actor_Says(kActorFishDealer, 0, 14);
 				Actor_Says(kActorFishDealer, 10, 14);
@@ -159,7 +159,7 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {
 				Actor_Says(kActorFishDealer, 80, 14);
 				Actor_Says(kActorFishDealer, 90, 14);
 				Actor_Says(kActorMcCoy, 25, 13);
-				Game_Flag_Set(kFlagFishDealerTalk);
+				Game_Flag_Set(kFlagAR01FishDealerTalk);
 				Actor_Set_Goal_Number(kActorFishDealer, 1);
 			} else {
 				if ( Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1)
@@ -202,8 +202,8 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0, 0.0, -149.0, 0, false, false, 0);
 			Game_Flag_Set(kFlagAR01toHC01);
 			Game_Flag_Set(464);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Set(kFlagMcCoyAtHCxx);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Set(kFlagMcCoyInHawkersCircle);
 			Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC01);
 			Actor_Set_Goal_Number(kActorFishDealer, 3);
 		}
@@ -251,83 +251,83 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 				Actor_Voice_Over(4350, kActorVoiceOver);
 				Game_Flag_Set(kFlagDNARowAvailableTalk);
 			}
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
-			Game_Flag_Reset(kFlagMcCoyAtHFxx);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+			Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
 
 			int spinnerDest = Spinner_Interface_Choose_Dest(kAR01LoopDoorAnim, false);
 			Actor_Face_Heading(kActorMcCoy, 545, false);
 
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
 				break;
 			default:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Actor_Set_Invisible(kActorMcCoy, false);
 				break;
 			}
@@ -389,7 +389,7 @@ void SceneScriptAR01::PlayerWalkedOut() {
 	Actor_Set_Invisible(kActorMcCoy, false);
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (!Game_Flag_Query(kFlagMcCoyAtHCxx)) {
+	if (!Game_Flag_Query(kFlagMcCoyInHawkersCircle)) {
 		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 a53aee8..935064f 100644
--- a/engines/bladerunner/script/scene/ar02.cpp
+++ b/engines/bladerunner/script/scene/ar02.cpp
@@ -79,11 +79,11 @@ void SceneScriptAR02::InitializeScene() {
 
 void SceneScriptAR02::SceneLoaded() {
 	Obstacle_Object("DF_BOOTH", true);
-	if (!Game_Flag_Query(374)) {
+	if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 		Item_Add_To_World(kItemScrorpions, 976, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
 	}
 	if ( Global_Variable_Query(kVariableChapter) == 4
-	 && !Game_Flag_Query(374)
+	 && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
 	) {
 		Game_Flag_Set(kFlagNotUsed0);
 		Item_Remove_From_World(kItemScrorpions);
@@ -104,10 +104,10 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 			Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true);
 			Actor_Face_Actor(kActorInsectDealer, kActorMcCoy, true);
 			if (Global_Variable_Query(kVariableChapter) == 2) {
-				if ( Game_Flag_Query(kFlagInsectDealerInterviewed)
-				 && !Game_Flag_Query(kFlagInsectDealerTalk)
+				if ( Game_Flag_Query(kFlagAR02InsectDealerInterviewed)
+				 && !Game_Flag_Query(kFlagAR02InsectDealerTalk)
 				) {
-					Game_Flag_Set(kFlagInsectDealerTalk);
+					Game_Flag_Set(kFlagAR02InsectDealerTalk);
 					Player_Loses_Control();
 					ADQ_Flush();
 					ADQ_Add(kActorInsectDealer, 210, 14);
@@ -121,7 +121,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 					Actor_Says(kActorInsectDealer, 250, 14);
 					Player_Gains_Control();
 					dialogueWithInsectDealer2();
-				} else if (Game_Flag_Query(kFlagInsectDealerInterviewed)) {
+				} else if (Game_Flag_Query(kFlagAR02InsectDealerInterviewed)) {
 					Actor_Says(kActorMcCoy, 75, 18);
 					Actor_Says(kActorInsectDealer, 60, 12);
 					Actor_Says(kActorInsectDealer, 70, 14);
@@ -138,7 +138,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 					Actor_Says(kActorMcCoy, 210, 15);
 					Actor_Says(kActorInsectDealer, 310, 12);
 					Actor_Says(kActorMcCoy, 215, 13);
-					if (Game_Flag_Query(374)) {
+					if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 						Actor_Says(kActorMcCoy, 220, 14);
 						Actor_Says(kActorInsectDealer, 320, 12);
 						Actor_Says(kActorMcCoy, 225, 13);
@@ -167,10 +167,10 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.79f, 0.0f, -1328.89f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorHasan, true);
 			Actor_Face_Actor(kActorHasan, kActorMcCoy, true);
-			if (!Game_Flag_Query(kFlagHassanTalk)) {
+			if (!Game_Flag_Query(kFlagAR02HassanTalk)) {
 				Actor_Says(kActorHasan, 0, 14);
 				Actor_Says(kActorMcCoy, 140, 18);
-				Game_Flag_Set(kFlagHassanTalk);
+				Game_Flag_Set(kFlagAR02HassanTalk);
 				return true;
 			}
 			dialogueWithHassan();
@@ -183,22 +183,22 @@ bool SceneScriptAR02::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == kItemScrorpions) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.96f, 0.0f, -1078.45f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true);
-			if (!Game_Flag_Query(kFlagScorpionsChecked)) {
+			if (!Game_Flag_Query(kFlagAR02ScorpionsChecked)) {
 				Actor_Says(kActorInsectDealer, 0, 14);
 				Actor_Says(kActorMcCoy, 55, 18);
 				Actor_Says(kActorInsectDealer, 10, 14);
 				Actor_Says(kActorMcCoy, 60, 18);
 				Actor_Says(kActorInsectDealer, 20, 14);
-				Game_Flag_Set(kFlagScorpionsChecked);
-			} else if ( Game_Flag_Query(kFlagScorpionsChecked)
-			        && !Game_Flag_Query(kFlagStungByScorpion)
+				Game_Flag_Set(kFlagAR02ScorpionsChecked);
+			} else if ( Game_Flag_Query(kFlagAR02ScorpionsChecked)
+			        && !Game_Flag_Query(kFlagAR02StungByScorpion)
 			) {
 				Actor_Says(kActorMcCoy, 65, 21);
 				Actor_Says(kActorInsectDealer, 30, 14);
 				Actor_Says(kActorInsectDealer, 40, 14);
 				Actor_Says(kActorMcCoy, 70, 18);
 				Actor_Says(kActorInsectDealer, 50, 14);
-				Game_Flag_Set(kFlagStungByScorpion);
+				Game_Flag_Set(kFlagAR02StungByScorpion);
 			} else {
 				Actor_Says(kActorMcCoy, 8527, 14);
 			}
@@ -222,8 +222,8 @@ bool SceneScriptAR02::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -465.0f, 0.0f, -799.0f, 0, 1, false, 0)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -560.0f, 0.0f, -799.0f, 0, 0, false, 0);
 			Game_Flag_Set(kFlagAR02toRC03);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Set(kFlagMcCoyAtRCxx);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Set(kFlagMcCoyInRunciters);
 			Music_Stop(3);
 			Set_Enter(kSetRC03, kSceneRC03);
 		}
@@ -302,7 +302,7 @@ void SceneScriptAR02::dialogueWithInsectDealer1() {
 		Actor_Says(kActorInsectDealer, 170, 14);
 		Actor_Says(kActorMcCoy, 100, 16);
 		Actor_Says(kActorInsectDealer, 180, 13);
-		Game_Flag_Set(kFlagInsectDealerInterviewed);
+		Game_Flag_Set(kFlagAR02InsectDealerInterviewed);
 		Actor_Clue_Acquire(kActorMcCoy, kCluePeruvianLadyInterview, true, kActorInsectDealer);
 		break;
 
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index 6aa24e2..47734a4 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -32,25 +32,28 @@ void SceneScriptBB01::InitializeScene() {
 	} else {
 		Setup_Scene_Information(43.0f, 0.0f, 1058.0f, 0);
 	}
-	Scene_Exit_Add_2D_Exit(0, 0, 0, 72, 299, 3);
+
+	Scene_Exit_Add_2D_Exit(0,   0,   0,  72, 299, 3);
 	Scene_Exit_Add_2D_Exit(1, 151, 218, 322, 290, 3);
 	if (Game_Flag_Query(kFlagSpinnerAtBB01)) {
 		Scene_Exit_Add_2D_Exit(2, 0, 311, 312, 479, 2);
 	}
-	Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
+
+	Ambient_Sounds_Add_Looping_Sound( 54, 50,    0, 1);
 	Ambient_Sounds_Add_Looping_Sound(105, 25, -100, 0);
-	Ambient_Sounds_Add_Sound(82, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(83, 5, 60, 40, 65, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(84, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(67, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(66, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 82, 5,  60, 40, 60, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 83, 5,  60, 40, 65, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 84, 5,  60, 40, 60, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 67, 5,  80, 20, 25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 66, 5,  80, 20, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(378, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(379, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(380, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
+	Ambient_Sounds_Add_Speech_Sound(60,  0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
+
 	if (Game_Flag_Query(kFlagSpinnerAtBB01)
 	 && !Game_Flag_Query(kFlagDR02toBB01)
 	 && !Game_Flag_Query(kFlagBB02toBB01)
@@ -95,12 +98,13 @@ bool SceneScriptBB01::ClickedOnExit(int exitId) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 9.0f, 818.0f, 0, true, false, 0);
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -233.0f, 9.0f, 846.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagBB01toDR02);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
-			Game_Flag_Set(kFlagMcCoyAtDRxx);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+			Game_Flag_Set(kFlagMcCoyInDNARow);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR02);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -125.39f, 9.0f, 372.45f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagBB01toBB02);
@@ -108,80 +112,81 @@ bool SceneScriptBB01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 43.0f, 0.0f, 1062.0f, 0, false, false, 0)) {
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
 			int spinnerDest = Spinner_Interface_Choose_Dest(3, false);
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			default:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Scene_Loop_Start_Special(kSceneLoopModeOnce, 3, true);
 				break;
 			}
@@ -199,10 +204,14 @@ void SceneScriptBB01::SceneFrameAdvanced(int frame) {
 	if (frame == 193) {
 		Sound_Play(118, 40, 0, 0, 50);
 	}
-	if (frame == 241 || frame == 363) {
+	if (frame == 241
+	 || frame == 363
+	) {
 		Sound_Play(116, 100, -50, -50, 50);
 	}
-	if (frame == 286 || frame == 407) {
+	if (frame == 286
+	 || frame == 407
+	) {
 		Sound_Play(119, 100, -50, -50, 50);
 	}
 	if (frame == 433) {
diff --git a/engines/bladerunner/script/scene/bb02.cpp b/engines/bladerunner/script/scene/bb02.cpp
index 2eb9251..8ebecee 100644
--- a/engines/bladerunner/script/scene/bb02.cpp
+++ b/engines/bladerunner/script/scene/bb02.cpp
@@ -24,44 +24,54 @@
 
 namespace BladeRunner {
 
+enum kBB02Loops {
+	kBB02LoopElevatorComingDown = 0,
+	kBB02LoopMainElevatorDown   = 1,
+	kBB02LoopElevatorGoingUp    = 3,
+	kBB02LoopMainElevatorUp     = 4
+};
+
 void SceneScriptBB02::InitializeScene() {
 	if (Game_Flag_Query(kFlagBB03toBB02)) {
 		Setup_Scene_Information(179.0f, -415.06f, 274.0f, 904);
-	} else if (Game_Flag_Query(333)) {
+	} else if (Game_Flag_Query(kFlagBB04toBB02)) {
 		Setup_Scene_Information(-12.0f, -415.06f, -27.0f, 264);
-		Scene_Loop_Start_Special(0, 0, 0);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kBB02LoopElevatorComingDown, false);
 	} else {
 		Setup_Scene_Information(98.0f, -415.06f, -593.0f, 530);
 		Game_Flag_Reset(kFlagBB01toBB02);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 313, 137, 353, 173, 0);
 	Scene_Exit_Add_2D_Exit(1, 207, 291, 275, 443, 3);
 	Scene_Exit_Add_2D_Exit(2, 303, 422, 639, 479, 2);
-	Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
+
+	Ambient_Sounds_Add_Looping_Sound( 54, 20, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
 	Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(82, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(83, 5, 60, 20, 45, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(84, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 82, 5,  60, 20, 40,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 83, 5,  60, 20, 45,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 84, 5,  60, 20, 40,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 90, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 91, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(72, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(73, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(74, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
-	if (!Game_Flag_Query(494)) {
-		Game_Flag_Set(493);
-		Game_Flag_Set(494);
+	Ambient_Sounds_Add_Sound( 72, 5,  80, 14, 16, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 73, 5,  80, 14, 16, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 74, 5,  80, 14, 16, -100, 100, -101, -101, 0, 0);
+
+	if (!Game_Flag_Query(kFlagBB02Entered)) {
+		Game_Flag_Set(kFlagBB02ElevatorDown);
+		Game_Flag_Set(kFlagBB02Entered);
 	}
-	if (Game_Flag_Query(493)) {
-		Scene_Loop_Set_Default(1);
+	if (Game_Flag_Query(kFlagBB02ElevatorDown)) {
+		Scene_Loop_Set_Default(kBB02LoopMainElevatorDown);
 	} else {
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Set_Default(kBB02LoopMainElevatorUp);
 	}
 }
 
@@ -96,24 +106,26 @@ bool SceneScriptBB02::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -415.06f, -27.0f, 0, 1, false, 0)) {
 			Player_Loses_Control();
-			if (!Game_Flag_Query(493)) {
-				Scene_Loop_Start_Special(kSceneLoopModeOnce, 0, true);
+			if (!Game_Flag_Query(kFlagBB02ElevatorDown)) {
+				Scene_Loop_Start_Special(kSceneLoopModeOnce, kBB02LoopElevatorComingDown, true);
 			}
-			Game_Flag_Set(332);
-			Game_Flag_Reset(493);
+			Game_Flag_Set(kFlagBB02toBB04);
+			Game_Flag_Reset(kFlagBB02ElevatorDown);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB04);
-			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, false);
+			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB02LoopElevatorGoingUp, false);
 		}
 		return true;
 	}
+
 	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(kFlagBB02toBB03);
-			Game_Flag_Reset(493);
+			Game_Flag_Reset(kFlagBB02ElevatorDown);
 			Set_Enter(kSetBB03, kSceneBB03);
 		}
 		return true;
@@ -141,10 +153,10 @@ void SceneScriptBB02::PlayerWalkedIn() {
 	if (Game_Flag_Query(kFlagBB03toBB02)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 0, false, 0);
 		Game_Flag_Reset(kFlagBB03toBB02);
-	} else if (Game_Flag_Query(333)) {
+	} else if (Game_Flag_Query(kFlagBB04toBB02)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, 0, false, 0);
 		Player_Gains_Control();
-		Game_Flag_Reset(333);
+		Game_Flag_Reset(kFlagBB04toBB02);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/bb03.cpp b/engines/bladerunner/script/scene/bb03.cpp
index 9ecbb95..b21fcd3 100644
--- a/engines/bladerunner/script/scene/bb03.cpp
+++ b/engines/bladerunner/script/scene/bb03.cpp
@@ -33,32 +33,34 @@ void SceneScriptBB03::InitializeScene() {
 	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);
+
+	Scene_Exit_Add_2D_Exit(0, 589,   0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(1, 167, 372, 439, 479, 2);
 	Scene_Exit_Add_2D_Exit(2, 451, 115, 547, 320, 1);
-	Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
+
+	Ambient_Sounds_Add_Looping_Sound( 54, 20,   0, 1);
+	Ambient_Sounds_Add_Looping_Sound(103, 40,   0, 1);
 	Ambient_Sounds_Add_Looping_Sound(105, 34, 100, 1);
 	Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(309, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(310, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 90, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 91, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 72, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 73, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 74, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptBB03::SceneLoaded() {
@@ -84,8 +86,8 @@ bool SceneScriptBB03::ClickedOnItem(int itemId, bool a2) {
 
 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);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, true, false, 0)) {
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, 0.0f, 0, false, false, 0);
 			Game_Flag_Set(kFlagBB03toBB04);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -93,8 +95,9 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.0f, 60.16f, 0.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.0f, 60.16f, 0.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagBB03toBB02);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -102,19 +105,20 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 60.16f, -164.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 60.16f, -164.0f, 0, true, false, 0)) {
 			if (Global_Variable_Query(kVariableChapter) < 4) {
 				if (Actor_Query_Goal_Number(kActorSebastian) == 200) {
-					Actor_Says(kActorSebastian, 70, 3);
+					Actor_Says(kActorSebastian, 70, kAnimationModeTalk);
 					Actor_Says(kActorMcCoy, 7010, 13);
-					Actor_Says(kActorSebastian, 80, 3);
+					Actor_Says(kActorSebastian, 80, kAnimationModeTalk);
 					Actor_Says(kActorMcCoy, 7015, 12);
-					Actor_Says(kActorSebastian, 90, 3);
+					Actor_Says(kActorSebastian, 90, kAnimationModeTalk);
 					Actor_Says(kActorMcCoy, 7020, 14);
-					Actor_Says(kActorSebastian, 100, 3);
+					Actor_Says(kActorSebastian, 100, kAnimationModeTalk);
 					Actor_Says(kActorMcCoy, 7025, 15);
-					Actor_Says(kActorSebastian, 110, 3);
+					Actor_Says(kActorSebastian, 110, kAnimationModeTalk);
 					Actor_Set_Targetable(kActorBryant, false);
 					Actor_Set_Targetable(kActorGeneralDoll, false);
 				}
@@ -123,7 +127,7 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
 				Set_Enter(kSetBB05, kSceneBB05);
 			} else {
-				Actor_Says(kActorMcCoy, 8522, 3);
+				Actor_Says(kActorMcCoy, 8522, kAnimationModeTalk);
 			}
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/bb04.cpp b/engines/bladerunner/script/scene/bb04.cpp
index 1bf12cb..ab935ad 100644
--- a/engines/bladerunner/script/scene/bb04.cpp
+++ b/engines/bladerunner/script/scene/bb04.cpp
@@ -31,31 +31,33 @@ void SceneScriptBB04::InitializeScene() {
 	} else {
 		Setup_Scene_Information(-15.0f, -25.17f, 45.0f, 691);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 218, 102, 360, 254, 1);
-	Scene_Exit_Add_2D_Exit(1, 0, 334, 639, 479, 2);
-	Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
+	Scene_Exit_Add_2D_Exit(1,   0, 334, 639, 479, 2);
+
+	Ambient_Sounds_Add_Looping_Sound( 54, 20,    0, 1);
+	Ambient_Sounds_Add_Looping_Sound(103, 40,    0, 1);
 	Ambient_Sounds_Add_Looping_Sound(105, 44, -100, 1);
 	Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(309, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(310, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 90, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 91, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 72, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 73, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 74, 5,  80, 20, 20, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptBB04::SceneLoaded() {
@@ -80,19 +82,20 @@ bool SceneScriptBB04::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptBB04::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0,  true, false, 0)) {
 			Player_Loses_Control();
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -15.0f, -25.17f, 45.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -15.0f, -25.17f, 45.0f, 0, false, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(333);
+			Game_Flag_Set(kFlagBB04toBB02);
 			Game_Flag_Set(493);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB02);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -107.0f, -26.6f, 397.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -107.0f, -26.6f, 397.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB04toBB03);
@@ -114,10 +117,10 @@ void SceneScriptBB04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptBB04::PlayerWalkedIn() {
-	if (Game_Flag_Query(332)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, 0, false, 0);
+	if (Game_Flag_Query(kFlagBB02toBB04)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, false, false, 0);
 		Player_Gains_Control();
-		Game_Flag_Reset(332);
+		Game_Flag_Reset(kFlagBB02toBB04);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/bb05.cpp b/engines/bladerunner/script/scene/bb05.cpp
index 95e3975..cf78829 100644
--- a/engines/bladerunner/script/scene/bb05.cpp
+++ b/engines/bladerunner/script/scene/bb05.cpp
@@ -26,39 +26,42 @@ namespace BladeRunner {
 
 void SceneScriptBB05::InitializeScene() {
 	if (Game_Flag_Query(kFlagBB06toBB05)) {
-		Setup_Scene_Information(95.0f, -60.31f, 331.0f, 0);
+		Setup_Scene_Information(  95.0f, -60.31f, 331.0f, 0);
 	} else if (Game_Flag_Query(kFlagBB12toBB05)) {
-		Setup_Scene_Information(87.0f, -60.34f, -96.0f, 0);
+		Setup_Scene_Information(  87.0f, -60.34f, -96.0f, 0);
 	} else if (Game_Flag_Query(kFlagBB07toBB05)) {
-		Setup_Scene_Information(271.0f, -60.31f, 203.0f, 0);
+		Setup_Scene_Information( 271.0f, -60.31f, 203.0f, 0);
 	} else {
 		Setup_Scene_Information(-212.0f, -60.31f, 131.0f, 0);
 	}
-	Scene_Exit_Add_2D_Exit(0, 92, 125, 187, 317, 3);
-	Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
-	Scene_Exit_Add_2D_Exit(2, 589, 0, 639, 479, 1);
+
+	Scene_Exit_Add_2D_Exit(0,  92, 125, 187, 317, 3);
+	Scene_Exit_Add_2D_Exit(1,   0,   0,  30, 479, 3);
+	Scene_Exit_Add_2D_Exit(2, 589,   0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(3, 481, 113, 573, 307, 0);
-	Ambient_Sounds_Add_Looping_Sound(54, 12, 0, 1);
+
+	Ambient_Sounds_Add_Looping_Sound( 54, 12, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(105, 14, 0, 1);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(309, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(310, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 90, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 91, 5,  50, 17, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(72, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(73, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(74, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 72, 5,  80, 14, 14, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 73, 5,  80, 14, 14, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 74, 5,  80, 14, 14, -100, 100, -101, -101, 0, 0);
+
 	if (!Game_Flag_Query(495)) {
-		Overlay_Play("BB05OVER", 0, 0, 0, 0);
+		Overlay_Play("BB05OVER", 0, false, false, 0);
 		Game_Flag_Set(495);
 	}
 }
@@ -97,7 +100,7 @@ bool SceneScriptBB05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptBB05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -212.0f, -60.31f, 131.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -212.0f, -60.31f, 131.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB05toBB03);
@@ -105,8 +108,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 331.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 331.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB05toBB06);
@@ -114,8 +118,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 271.0f, -60.31f, 203.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 271.0f, -60.31f, 203.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB05toBB07);
@@ -123,8 +128,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 3) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.0f, -60.34f, -108.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.0f, -60.34f, -108.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB05toBB12);
@@ -147,18 +153,19 @@ void SceneScriptBB05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptBB05::PlayerWalkedIn() {
 	if (Game_Flag_Query(kFlagBB06toBB05)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 303.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy,  95.0f, -60.31f, 303.0f, 0, false, false, 0);
 		Game_Flag_Reset(kFlagBB06toBB05);
 	} else if (Game_Flag_Query(kFlagBB07toBB05)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 231.0f, -60.31f, 203.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 231.0f, -60.31f, 203.0f, 0, false, false, 0);
 		Game_Flag_Reset(kFlagBB07toBB05);
 	} else if (Game_Flag_Query(kFlagBB12toBB05)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 111.0f, -60.31f, -24.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 111.0f, -60.31f, -24.0f, 0, false, false, 0);
 		Game_Flag_Reset(kFlagBB12toBB05);
 	} else {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, false, false, 0);
 		Game_Flag_Reset(kFlagBB03toBB05);
 	}
+
 	if (Actor_Query_Goal_Number(kActorSebastian) == 200) {
 		Actor_Face_Actor(kActorSebastian, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorSebastian, true);
@@ -182,12 +189,12 @@ void SceneScriptBB05::PlayerWalkedIn() {
 		} else {
 			Actor_Put_In_Set(kActorGeneralDoll, kSetBB05);
 			Actor_Set_At_Waypoint(kActorGeneralDoll, 134, 0);
-			Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 135, 0, 0, false);
-			Actor_Says(kActorGeneralDoll, 0, 3);
+			Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 135, 0, false, false);
+			Actor_Says(kActorGeneralDoll, 0, kAnimationModeTalk);
 			Actor_Face_Actor(kActorMcCoy, kActorGeneralDoll, true);
 			Actor_Face_Actor(kActorSebastian, kActorGeneralDoll, true);
 			Actor_Says(kActorSebastian, 220, 13);
-			Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 134, 0, 0, false);
+			Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 134, 0, false, false);
 			Actor_Face_Actor(kActorSebastian, kActorMcCoy, true);
 			Actor_Face_Actor(kActorMcCoy, kActorSebastian, true);
 			Actor_Says(kActorSebastian, 230, 15);
diff --git a/engines/bladerunner/script/scene/bb06.cpp b/engines/bladerunner/script/scene/bb06.cpp
index 7821b73..51fc0db 100644
--- a/engines/bladerunner/script/scene/bb06.cpp
+++ b/engines/bladerunner/script/scene/bb06.cpp
@@ -25,49 +25,54 @@
 namespace BladeRunner {
 
 void SceneScriptBB06::InitializeScene() {
-	if (Game_Flag_Query(394)) {
-		Setup_Scene_Information(76.0f, 0.0f, 79.0f, 622);
-	} else if (Game_Flag_Query(395)) {
-		Setup_Scene_Information(55.0f, 0.0f, -96.0f, 761);
-	} else if (Game_Flag_Query(362)) {
+	if (Game_Flag_Query(kFlagBB51toBB06a)) {
+		Setup_Scene_Information(  76.0f, 0.0f,   79.0f, 622);
+	} else if (Game_Flag_Query(kFlagBB51toBB06b)) {
+		Setup_Scene_Information(  55.0f, 0.0f,  -96.0f, 761);
+	} else if (Game_Flag_Query(kFlagBB07toBB06)) {
 		Setup_Scene_Information(-115.0f, 0.0f, -103.0f, 375);
-		Game_Flag_Reset(362);
+		Game_Flag_Reset(kFlagBB07toBB06);
 	} else {
 		Setup_Scene_Information(-37.0f, 0.0f, 178.0f, 0);
 	}
-	Scene_Exit_Add_2D_Exit(0, 0, 43, 14, 478, 3);
-	Scene_Exit_Add_2D_Exit(1, 425, 0, 639, 361, 0);
+
+	Scene_Exit_Add_2D_Exit(0,   0,  43,  14, 478, 3);
+	Scene_Exit_Add_2D_Exit(1, 425,   0, 639, 361, 0);
 	Scene_Exit_Add_2D_Exit(3, 195, 164, 239, 280, 3);
+
 	Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(394) || Game_Flag_Query(395)) {
-		Scene_Loop_Start_Special(0, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(309, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(310, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+	if (Game_Flag_Query(kFlagBB51toBB06a)
+	 || Game_Flag_Query(kFlagBB51toBB06b)
+	) {
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
 		Scene_Loop_Set_Default(1);
-		Game_Flag_Reset(394);
-		Game_Flag_Reset(395);
+		Game_Flag_Reset(kFlagBB51toBB06a);
+		Game_Flag_Reset(kFlagBB51toBB06b);
 	} else {
 		Scene_Loop_Set_Default(1);
 	}
 	if (Game_Flag_Query(410)) {
-		Overlay_Play("BB06OVER", 1, 1, 0, 0);
+		Overlay_Play("BB06OVER", 1, true, false, 0);
 	}
 }
 
 void SceneScriptBB06::SceneLoaded() {
 	Obstacle_Object("V2CHESSTBL01", true);
 	Clickable_Object("BOX31");
-	Item_Add_To_World(77, 931, 2, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
+	Item_Add_To_World(77, 931, kSetBB02_BB04_BB06_BB51, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
 }
 
 bool SceneScriptBB06::MouseClick(int x, int y) {
@@ -96,7 +101,7 @@ bool SceneScriptBB06::ClickedOnActor(int actorId) {
 bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == 77) {
 		if (Player_Query_Combat_Mode()) {
-			Overlay_Play("BB06OVER", 1, 1, 1, 0);
+			Overlay_Play("BB06OVER", 1, true, true, 0);
 			Game_Flag_Set(410);
 			Item_Remove_From_World(77);
 			return true;
@@ -107,7 +112,7 @@ bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptBB06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -37.0f, 0.0f, 178.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -37.0f, 0.0f, 178.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagBB06toBB05);
@@ -115,20 +120,22 @@ bool SceneScriptBB06::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 101.0f, 0.0f, -25.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 101.0f, 0.0f, -25.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(393);
+			Game_Flag_Set(kFlagBB06toBB51);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB51);
 		}
 		return true;
 	}
+
 	if (exitId == 3) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -115.0f, 0.0f, -103.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -115.0f, 0.0f, -103.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(363);
+			Game_Flag_Set(kFlagBB06toBB07);
 			Set_Enter(kSetBB06_BB07, kSceneBB07);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/bb07.cpp b/engines/bladerunner/script/scene/bb07.cpp
index ba1d7bc..37bf9b5 100644
--- a/engines/bladerunner/script/scene/bb07.cpp
+++ b/engines/bladerunner/script/scene/bb07.cpp
@@ -25,33 +25,36 @@
 namespace BladeRunner {
 
 void SceneScriptBB07::InitializeScene() {
-	if (Game_Flag_Query(365)) {
+	if (Game_Flag_Query(kFlagBB12toBB07)) {
 		Setup_Scene_Information(-655.0f, 252.59f, -1136.0f, 323);
-	} else if (Game_Flag_Query(363)) {
+	} else if (Game_Flag_Query(kFlagBB06toBB07)) {
 		Setup_Scene_Information(-551.0f, 252.59f, -1004.0f, 29);
-		Game_Flag_Reset(363);
+		Game_Flag_Reset(kFlagBB06toBB07);
 	} else {
 		Setup_Scene_Information(-652.0f, 252.59f, -1018.0f, 268);
 	}
-	Scene_Exit_Add_2D_Exit(0, 0, 16, 51, 426, 3);
+
+	Scene_Exit_Add_2D_Exit(0,   0,  16,  51, 426, 3);
 	Scene_Exit_Add_2D_Exit(1, 124, 101, 172, 305, 3);
 	Scene_Exit_Add_2D_Exit(2, 282, 408, 476, 479, 2);
 	Scene_2D_Region_Add(0, 308, 283, 354, 308);
+
 	Ambient_Sounds_Add_Looping_Sound(332, 44, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(331, 24, 0, 1);
 	Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
-	Overlay_Play("BB07OVER", 0, 1, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(309, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(310, 5,  50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+	Overlay_Play("BB07OVER", 0, true, false, 0);
 }
 
 void SceneScriptBB07::SceneLoaded() {
@@ -120,7 +123,7 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Overlay_Remove("BB07OVER");
-			Game_Flag_Set(364);
+			Game_Flag_Set(kFlagBB07toBB12);
 			Set_Enter(kSetBB12, kSceneBB12);
 		}
 		return true;
@@ -130,7 +133,7 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Overlay_Remove("BB07OVER");
-			Game_Flag_Set(362);
+			Game_Flag_Set(kFlagBB07toBB06);
 			Set_Enter(kSetBB06_BB07, kSceneBB06);
 		}
 		return true;
@@ -169,9 +172,9 @@ void SceneScriptBB07::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -594.0f, 252.59f, -1018.0f, 6, 0, false, 0);
 		Game_Flag_Reset(kFlagBB05toBB07);
 	}
-	if (Game_Flag_Query(365)) {
+	if (Game_Flag_Query(kFlagBB12toBB07)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -602.0f, 252.59f, -1124.0f, 6, 0, false, 0);
-		Game_Flag_Reset(365);
+		Game_Flag_Reset(kFlagBB12toBB07);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/bb12.cpp b/engines/bladerunner/script/scene/bb12.cpp
index 8d9f3ee..7f7f1d9 100644
--- a/engines/bladerunner/script/scene/bb12.cpp
+++ b/engines/bladerunner/script/scene/bb12.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 void SceneScriptBB12::InitializeScene() {
-	if (Game_Flag_Query(364)) {
+	if (Game_Flag_Query(kFlagBB07toBB12)) {
 		Setup_Scene_Information(138.0f, 0.0f, 104.0f, 760);
 	} else if (Game_Flag_Query(506)) {
 		Setup_Scene_Information(-129.0f, 0.0f, 64.0f, 307);
@@ -92,7 +92,7 @@ bool SceneScriptBB12::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 138.0f, 0.0f, 104.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(365);
+			Game_Flag_Set(kFlagBB12toBB07);
 			Set_Enter(kSetBB07, kSceneBB07);
 		}
 		return true;
@@ -126,9 +126,9 @@ void SceneScriptBB12::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptBB12::PlayerWalkedIn() {
-	if (Game_Flag_Query(364)) {
+	if (Game_Flag_Query(kFlagBB07toBB12)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 114.0f, 0.0f, 104.0f, 0, 0, false, 0);
-		Game_Flag_Reset(364);
+		Game_Flag_Reset(kFlagBB07toBB12);
 	} else if (Game_Flag_Query(506)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -101.0f, 0.0f, 64.0f, 0, 0, false, 0);
 		Game_Flag_Reset(506);
diff --git a/engines/bladerunner/script/scene/bb51.cpp b/engines/bladerunner/script/scene/bb51.cpp
index ae93dfa..a28f669 100644
--- a/engines/bladerunner/script/scene/bb51.cpp
+++ b/engines/bladerunner/script/scene/bb51.cpp
@@ -26,7 +26,7 @@ namespace BladeRunner {
 
 void SceneScriptBB51::InitializeScene() {
 	Setup_Scene_Information(101.0f, 0.0f, -25.0f, 152);
-	Game_Flag_Reset(393);
+	Game_Flag_Reset(kFlagBB06toBB51);
 	Scene_Exit_Add_2D_Exit(0, 615, 0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(1, 0, 323, 241, 479, 2);
 	Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
@@ -81,19 +81,19 @@ bool SceneScriptBB51::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptBB51::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 76.0f, 0.0f, 79.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 76.0f, 0.0f, 79.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(394);
+			Game_Flag_Set(kFlagBB51toBB06a);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06);
 		}
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 55.0f, 0.0f, -96.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 55.0f, 0.0f, -96.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(395);
+			Game_Flag_Set(kFlagBB51toBB06b);
 			Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index df89864..f43450f 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -72,7 +72,7 @@ void SceneScriptCT01::InitializeScene() {
 	if (Actor_Clue_Query(kActorMcCoy, kClueZubenRunsAway)) {
 		Scene_Exit_Add_2D_Exit(kCT01ExitCT03, 571, 233, 639, 367, 1);
 	}
-	if (Game_Flag_Query(kFlagWarehouseOpen)) {
+	if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
 		Scene_Exit_Add_2D_Exit(kCT01ExitCT12, 506, 400, 639, 479, 2);
 	}
 	if (Game_Flag_Query(kFlagSpinnerAtCT01)) {
@@ -188,19 +188,17 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
 	}
 
 	if (actorId == kActorGordo) {
-		if (Actor_Query_Goal_Number(kActorGordo) == 0) {
+		if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
 			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)) {
+				if (!Game_Flag_Query(kFlagCT01GordoTalk)) {
 					Actor_Says(kActorMcCoy, 335, 18);
 					Actor_Says(kActorGordo, 20, 30);
-					Game_Flag_Set(kFlagCT01McCoyTalkedToGordo);
+					Game_Flag_Set(kFlagCT01GordoTalk);
 					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 {
+				} else if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
 					Actor_Says(kActorMcCoy, 340, 13);
 					Actor_Says(kActorMcCoy, 345, 11);
 					Actor_Says(kActorGordo, 30, 30);
@@ -208,6 +206,8 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
 					Actor_Says(kActorGordo, 40, 30);
 					Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -5);
 					Player_Loses_Control();
+				} else {
+					Actor_Says(kActorMcCoy, 365, 14);
 				}
 				if (Actor_Query_Is_In_Current_Set(kActorZuben)) {
 					Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
@@ -257,19 +257,19 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 		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);
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0);
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Reset(kFlagMcCoyAtTBxx);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
 			int spinnerDest = Spinner_Interface_Choose_Dest(-1, false);
 
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
@@ -277,7 +277,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
@@ -285,7 +285,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
@@ -293,7 +293,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
@@ -301,7 +301,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
@@ -309,7 +309,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
@@ -317,7 +317,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
@@ -325,7 +325,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
@@ -333,7 +333,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Reset(kFlagSpinnerAtCT01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
@@ -341,7 +341,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
 				break;
 			default:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Player_Loses_Control();
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0);
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0);
@@ -433,7 +433,7 @@ void SceneScriptCT01::PlayerWalkedOut() {
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 	}
 	Music_Stop(5);
-	if (!Game_Flag_Query(kFlagMcCoyAtCTxx) && Global_Variable_Query(kVariableChapter) == 1) {
+	if (!Game_Flag_Query(kFlagMcCoyInChinaTown) && Global_Variable_Query(kVariableChapter) == 1) {
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Outtake_Play(kOuttakeTowards3, true, -1);
@@ -544,7 +544,7 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 			if (Query_Difficulty_Level() != 0) {
 				Global_Variable_Decrement(kVariableChinyen, 10);
 			}
-			Game_Flag_Set(kFlagBoughtHowieLeeFood);
+			Game_Flag_Set(kFlagCT01BoughtHowieLeeFood);
 		} else {
 			Actor_Says(kActorHowieLee, 130, 15);
 		}
diff --git a/engines/bladerunner/script/scene/ct02.cpp b/engines/bladerunner/script/scene/ct02.cpp
index da1fcac..0e62302 100644
--- a/engines/bladerunner/script/scene/ct02.cpp
+++ b/engines/bladerunner/script/scene/ct02.cpp
@@ -194,7 +194,7 @@ void SceneScriptCT02::dialogueWithZuben() {
 }
 
 bool SceneScriptCT02::ClickedOnActor(int actorId) {
-	if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01Leave) {
+	if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01WalkToCT02) {
 		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);
diff --git a/engines/bladerunner/script/scene/ct03.cpp b/engines/bladerunner/script/scene/ct03.cpp
index 506ff1c..62a8022 100644
--- a/engines/bladerunner/script/scene/ct03.cpp
+++ b/engines/bladerunner/script/scene/ct03.cpp
@@ -116,8 +116,8 @@ void SceneScriptCT03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptCT03::PlayerWalkedIn() {
-	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) {
-		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide);
+	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG) {
+		Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06HideAtFreeSlotA);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index 24c1d34..613fd05 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -73,18 +73,18 @@ bool SceneScriptCT04::MouseClick(int x, int y) {
 
 bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 	if (objectName) { // this can be only "DUMPSTER"
-		if (!Game_Flag_Query(kFlagHomelessTalkedTo)
-		 && !Game_Flag_Query(kFlagMcCoyKilledHomeless)
+		if (!Game_Flag_Query(kFlagCT04HomelessTalk)
+		 && !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
 		 &&  Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault
 		) {
-			Game_Flag_Set(kFlagHomelessTalkedTo);
+			Game_Flag_Set(kFlagCT04HomelessTalk);
 			Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
 		}
 
-		if ( Game_Flag_Query(kFlagMcCoyKilledHomeless)
-		 && !Game_Flag_Query(kFlagHomelessBodyInDumpster)
-		 && !Game_Flag_Query(kFlagHomelessBodyFound)
-		 && !Game_Flag_Query(kFlagDumpsterEmptied)
+		if ( Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
+		 && !Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
 		 &&  Global_Variable_Query(kVariableChapter) == 1
 		) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -147.41f, -621.3f, 724.57f, 0, true, false, 0)) {
@@ -96,34 +96,34 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 				Actor_Voice_Over(320, kActorVoiceOver);
 				Actor_Voice_Over(330, kActorVoiceOver);
 				Actor_Voice_Over(340, kActorVoiceOver);
-				Game_Flag_Set(kFlagHomelessBodyInDumpster);
-				Game_Flag_Set(kFlagHomelessBodyInDumpsterNotChecked);
+				Game_Flag_Set(kFlagCT04HomelessBodyInDumpster);
+				Game_Flag_Set(kFlagCT04HomelessBodyInDumpsterNotChecked);
 			}
 			return false;
 		}
 
-		if (Game_Flag_Query(kFlagHomelessBodyInDumpster)) {
-			if (Game_Flag_Query(kFlagDumpsterEmptied)) {
+		if (Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)) {
+			if (Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)) {
 				Actor_Voice_Over(270, kActorVoiceOver);
 				Actor_Voice_Over(280, kActorVoiceOver);
-			} else if (Game_Flag_Query(kFlagHomelessBodyFound)) {
+			} else if (Game_Flag_Query(kFlagCT04HomelessBodyFound)) {
 				Actor_Voice_Over(250, kActorVoiceOver);
 				Actor_Voice_Over(260, kActorVoiceOver);
 			} else {
 				Actor_Voice_Over(230, kActorVoiceOver);
 				Actor_Voice_Over(240, kActorVoiceOver);
-				Game_Flag_Reset(kFlagHomelessBodyInDumpsterNotChecked);
+				Game_Flag_Reset(kFlagCT04HomelessBodyInDumpsterNotChecked);
 			}
 			return true;
 		}
 
-		if (!Game_Flag_Query(kFlagLicensePlaceFound)) {
+		if (!Game_Flag_Query(kFlagCT04LicensePlaceFound)) {
 			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, true, -1);
 				Item_Pickup_Spin_Effect(952, 392, 225);
-				Game_Flag_Set(kFlagLicensePlaceFound);
+				Game_Flag_Set(kFlagCT04LicensePlaceFound);
 				return true;
 			}
 		}
@@ -173,7 +173,7 @@ void SceneScriptCT04::dialogueWithHomeless() {
 
 bool SceneScriptCT04::ClickedOnActor(int actorId) {
 	if (actorId == kActorTransient) {
-		if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+		if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 			if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
 				Actor_Voice_Over(290, kActorVoiceOver);
 				Actor_Voice_Over(300, kActorVoiceOver);
@@ -183,7 +183,7 @@ bool SceneScriptCT04::ClickedOnActor(int actorId) {
 			Actor_Set_Targetable(kActorTransient, false);
 			if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
 				Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
-				if (!Game_Flag_Query(kFlagHomelessTalkedTo)) {
+				if (!Game_Flag_Query(kFlagCT04HomelessTalk)) {
 					if (Game_Flag_Query(kFlagZubenRetired)) {
 						Actor_Says(kActorMcCoy, 435, kAnimationModeTalk);
 						Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
@@ -194,7 +194,7 @@ bool SceneScriptCT04::ClickedOnActor(int actorId) {
 						dialogueWithHomeless();
 						Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
 					}
-					Game_Flag_Set(kFlagHomelessTalkedTo);
+					Game_Flag_Set(kFlagCT04HomelessTalk);
 				} else {
 					Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
 					Actor_Says(kActorMcCoy, 435, kAnimationModeTalk);
@@ -240,8 +240,8 @@ bool SceneScriptCT04::ClickedOn2DRegion(int region) {
 }
 
 void SceneScriptCT04::SceneFrameAdvanced(int frame) {
-	if (Game_Flag_Query(325)) {
-		Game_Flag_Reset(325);
+	if (Game_Flag_Query(kFlagCT04BodyDumped)) {
+		Game_Flag_Reset(kFlagCT04BodyDumped);
 		Sound_Play(180, 100, 80, 80, 50);
 	}
 }
diff --git a/engines/bladerunner/script/scene/ct05.cpp b/engines/bladerunner/script/scene/ct05.cpp
index a30e4f9..a398d45 100644
--- a/engines/bladerunner/script/scene/ct05.cpp
+++ b/engines/bladerunner/script/scene/ct05.cpp
@@ -33,7 +33,7 @@ void SceneScriptCT05::InitializeScene() {
 	} else {
 		Setup_Scene_Information(-375.0f, -109.91f, 750.0f, 600);
 	}
-	if (Game_Flag_Query(kFlagWarehouseOpen)) {
+	if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
 		Scene_Exit_Add_2D_Exit(0, 228, 205, 293, 300, 0);
 	}
 	Scene_Exit_Add_2D_Exit(1, 320, 458, 639, 479, 2);
@@ -44,7 +44,7 @@ void SceneScriptCT05::InitializeScene() {
 	Ambient_Sounds_Add_Sound( 90, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound( 91, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(205, 5, 30, 18, 30, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(kFlagWarehouseOpen)) {
+	if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(0);
@@ -217,6 +217,7 @@ void SceneScriptCT05::PlayerWalkedIn() {
 		}
 		Player_Gains_Control();
 	}
+
 	if (Game_Flag_Query(kFlagCT06toCT05)) {
 		Footstep_Sound_Override_On(2);
 		Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
@@ -224,10 +225,10 @@ void SceneScriptCT05::PlayerWalkedIn() {
 		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(kFlagZubenPhoto)
+		if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoLeftCT01
+		 && Game_Flag_Query(kFlagCT06ZubenPhoto)
 		) {
-			Actor_Set_Goal_Number(kActorGordo, 3);
+			Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkThroughCT05);
 		}
 	}
 }
diff --git a/engines/bladerunner/script/scene/ct06.cpp b/engines/bladerunner/script/scene/ct06.cpp
index a5856b3..1c5ace1 100644
--- a/engines/bladerunner/script/scene/ct06.cpp
+++ b/engines/bladerunner/script/scene/ct06.cpp
@@ -51,7 +51,7 @@ void SceneScriptCT06::InitializeScene() {
 	Ambient_Sounds_Add_Sound(379, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(380, 70, 180, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
-	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
+	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
 		Ambient_Sounds_Add_Sound(196, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
 		Ambient_Sounds_Add_Sound(197, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
 		Ambient_Sounds_Add_Sound(198, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
@@ -67,7 +67,7 @@ void SceneScriptCT06::SceneLoaded() {
 	Unobstacle_Object("INSULPIP01", true);
 	Unobstacle_Object("CB BOX04", true);
 	Unclickable_Object("DOOR");
-	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
+	if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
 		Preload(3);
 		Preload(4);
 		Preload(389);
@@ -90,7 +90,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
 	if (actorId == kActorZuben) {
 		Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, true, false);
 		Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
-		if (!Game_Flag_Query(kFlagZubenPhoto)) {
+		if (!Game_Flag_Query(kFlagCT06ZubenPhoto)) {
 			Actor_Clue_Acquire(kActorMcCoy, kClueZuben, true, -1);
 			Item_Pickup_Spin_Effect(984, 340, 369);
 			Actor_Voice_Over(350, kActorVoiceOver);
@@ -102,7 +102,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
 				Actor_Voice_Over(400, kActorVoiceOver);
 				Actor_Voice_Over(410, kActorVoiceOver);
 			}
-			Game_Flag_Set(kFlagZubenPhoto);
+			Game_Flag_Set(kFlagCT06ZubenPhoto);
 			return true;
 		}
 		Actor_Says(kActorMcCoy, 8570, 13);
@@ -127,7 +127,7 @@ bool SceneScriptCT06::ClickedOnExit(int exitId) {
 		return true;
 	}
 	if (exitId == 1) {
-		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
+		if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 203.91f, -58.02f, 0.47f, 0, 1, false, 0)) {
 				Ambient_Sounds_Remove_Sound(196, true);
 				Ambient_Sounds_Remove_Sound(197, true);
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 46fc21d..7581628 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -25,26 +25,29 @@
 namespace BladeRunner {
 
 void SceneScriptCT11::InitializeScene() {
-	if (Game_Flag_Query(91)) {
+	if (Game_Flag_Query(kFlagCT12toCT11)) {
 		Setup_Scene_Information(-378.0f, 9.68f, -55.0f, 440);
-	} else if (Game_Flag_Query(558)) {
-		Setup_Scene_Information(315.0f, 0.0f, 628.0f, 0);
+	} else if (Game_Flag_Query(kFlagDR01toCT11)) {
+		Setup_Scene_Information( 315.0f,  0.0f, 628.0f,   0);
 	} else {
-		Setup_Scene_Information(152.0f, 9.68f, -8.0f, 0);
+		Setup_Scene_Information( 152.0f, 9.68f,  -8.0f,   0);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 257, 240, 364, 330, 1);
 	Scene_Exit_Add_2D_Exit(1, 97, 0, 155, 324, 0);
 	Scene_Exit_Add_2D_Exit(2, 0, 0, 20, 479, 3);
+
 	Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
-	Ambient_Sounds_Add_Sound(67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 67, 5, 80, 16,  25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 66, 5, 80, 16,  25, -100, 100, -101, -101, 0, 0);
 	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 (Global_Variable_Query(kVariableChapter) <= 3) {
-		Scene_Loop_Set_Default(0);
-	} else {
+
+	if (Global_Variable_Query(kVariableChapter) > 3) {
 		Scene_Loop_Set_Default(2);
+	} else {
+		Scene_Loop_Set_Default(0);
 	}
 }
 
@@ -99,25 +102,27 @@ bool SceneScriptCT11::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptCT11::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 121.0f, 9.68f, -42.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 121.0f, 9.68f, -42.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagCT11toCT09);
 			Set_Enter(kSetCT09, kSceneCT09);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -300.0f, 9.68f, 66.0f, 0, 1, false, 0)) {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, 9.68f, -70.0f, 0, 1, false, 0);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -300.0f, 9.68f, 66.0f, 0, true, false, 0)) {
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, 9.68f, -70.0f, 0, true, false, 0);
 			Game_Flag_Set(kFlagCT11toCT12);
 			Set_Enter(kSetCT01_CT12, kSceneCT12);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 290.0f, 0.0f, 635.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(531);
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Set(kFlagMcCoyAtDRxx);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 290.0f, 0.0f, 635.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagCT11toDR01);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Set(kFlagMcCoyInDNARow);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 		}
 		return true;
@@ -127,7 +132,7 @@ bool SceneScriptCT11::ClickedOnExit(int exitId) {
 
 bool SceneScriptCT11::ClickedOn2DRegion(int region) {
 	if (region == 0 && Game_Flag_Query(725)) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 47, false);
 			Item_Remove_From_World(115);
 			Actor_Clue_Acquire(kActorMcCoy, kClueLichenDogWrapper, false, -1);
@@ -141,37 +146,40 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
 		}
 		return true;
 	}
+
 	if (region == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 47, false);
-			int temp = 0;
+			int cluesFound = 0;
 			if (Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) {
-				temp = 1;
+				++cluesFound;
 			}
 			if (Actor_Clue_Query(kActorMcCoy, kCluePaintTransfer)) {
-				++temp;
+				++cluesFound;
 			}
 			if (Actor_Clue_Query(kActorMcCoy, kClueLabPaintTransfer)) {
-				++temp;
+				++cluesFound;
 			}
 			if (Actor_Clue_Query(kActorMcCoy, kClueLicensePlate)) {
-				temp += 2;
+				cluesFound += 2;
 			}
 			if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)) {
-				temp += 2;
+				cluesFound += 2;
 			}
 			if (Actor_Clue_Query(kActorMcCoy, kCluePartialLicenseNumber)) {
-				temp += 2;
+				cluesFound += 2;
 			}
-			if (temp <= 2 || Actor_Clue_Query(kActorMcCoy, kClueCar)) {
-				Actor_Says(kActorMcCoy, 8525, 12);
-			} else {
+			if ( cluesFound > 2
+			 && !Actor_Clue_Query(kActorMcCoy, kClueCar)
+			) {
 				Actor_Voice_Over(510, kActorVoiceOver);
 				Actor_Voice_Over(520, kActorVoiceOver);
 				Actor_Voice_Over(530, kActorVoiceOver);
 				Actor_Voice_Over(540, kActorVoiceOver);
 				Actor_Clue_Acquire(kActorMcCoy, kClueCar, false, -1);
 				Scene_2D_Region_Remove(1);
+			} else {
+				Actor_Says(kActorMcCoy, 8525, 12);
 			}
 		}
 		return true;
@@ -186,16 +194,16 @@ void SceneScriptCT11::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptCT11::PlayerWalkedIn() {
-	if (Game_Flag_Query(91)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0f, 9.68f, 32.0f, 0, 0, false, 0);
-		Game_Flag_Reset(91);
-	} else if (Game_Flag_Query(558)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 329.0f, 0.0f, 617.0f, 0, 0, false, 0);
-		Game_Flag_Reset(558);
+	if (Game_Flag_Query(kFlagCT12toCT11)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0f, 9.68f, 32.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagCT12toCT11);
+	} else if (Game_Flag_Query(kFlagDR01toCT11)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 329.0f, 0.0f, 617.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagDR01toCT11);
 	} else {
 		Player_Loses_Control();
 		Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 125.0f, 9.68f, 74.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 125.0f, 9.68f, 74.0f, 0, false, false, 0);
 		Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 		Player_Gains_Control();
 		Game_Flag_Reset(kFlagCT09toCT11);
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index fa722f7..c90473d 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -64,7 +64,7 @@ void SceneScriptCT12::InitializeScene() {
 	) {
 		Actor_Put_In_Set(kActorGaff, kSetCT01_CT12);
 		Actor_Set_At_XYZ(kActorGaff, -534.0f, -6.5f, 952.0f, 367);
-		Game_Flag_Set(kFlagGaffSpinnerCT12);
+		Game_Flag_Set(kFlagCT12GaffSpinner);
 	}
 	if (Game_Flag_Query(kFlagCT01toCT12)
 	 && Game_Flag_Query(kFlagSpinnerAtCT01)
@@ -87,12 +87,12 @@ void SceneScriptCT12::InitializeScene() {
 		Scene_Loop_Set_Default(2);
 		Game_Flag_Reset(kFlagCT01toCT12);
 	} else if (Game_Flag_Query(kFlagCT05toCT12)
-	        && Game_Flag_Query(kFlagGaffSpinnerCT12)
+	        && Game_Flag_Query(kFlagCT12GaffSpinner)
 	) {
 		Game_Flag_Reset(kFlagCT05toCT12);
 		Scene_Loop_Set_Default(4);
 	} else if ( Game_Flag_Query(kFlagCT05toCT12)
-	        && !Game_Flag_Query(kFlagGaffSpinnerCT12)
+	        && !Game_Flag_Query(kFlagCT12GaffSpinner)
 	) {
 		Game_Flag_Reset(kFlagCT05toCT12);
 		Scene_Loop_Set_Default(2);
@@ -288,8 +288,8 @@ void SceneScriptCT12::PlayerWalkedIn() {
 void SceneScriptCT12::PlayerWalkedOut() {
 	Game_Flag_Reset(kFlagGenericWalkerWaiting);
 	if (Game_Flag_Query(kFlagCT12ToUG09)) {
-		Game_Flag_Reset(kFlagMcCoyAtCTxx);
-		Game_Flag_Set(kFlagMcCoyAtUGxx);
+		Game_Flag_Reset(kFlagMcCoyInChinaTown);
+		Game_Flag_Set(kFlagMcCoyInUnderground);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index b2b308c..e1cdbb5 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -24,54 +24,71 @@
 
 namespace BladeRunner {
 
+enum kDR01Loops {
+	kDR01LoopInshotWithCrowd   = 0,
+	kDR01LoopWithCrowd         = 1,
+	kDR01LoopDoorAnimWithCrowd = 3,
+	kDR01LoopOutshotWithCrowd  = 4,
+	kDR01LoopInshotNoCrowd     = 5,
+	kDR01LoopNoCrowd           = 6,
+	kDR01LoopDoorAnimNoCrowd   = 8,
+	kDR01LoopOutshotNoCrowd    = 9,
+	kDR01LoopNoCrowdNoSpinner  = 10
+};
+
 void SceneScriptDR01::InitializeScene() {
 	if (Game_Flag_Query(kFlagDR02toDR01)) {
-		Setup_Scene_Information(-835.0f, -0.04f, -118.0f, 664);
+		Setup_Scene_Information(  -835.0f, -0.04f, -118.0f, 664);
 	} else if (Game_Flag_Query(kFlagDR04toDR01)) {
-		Setup_Scene_Information(-711.0f, -0.04f, 70.0f, 307);
-	} else if (Game_Flag_Query(531)) {
+		Setup_Scene_Information(  -711.0f, -0.04f,   70.0f, 307);
+	} else if (Game_Flag_Query(kFlagCT11toDR01)) {
 		Setup_Scene_Information(-1765.28f, -0.04f, -23.82f, 269);
 	} else {
-		Setup_Scene_Information(-386.0f, -0.04f, -82.0f, 792);
+		Setup_Scene_Information(  -386.0f, -0.04f,  -82.0f, 792);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 240, 60, 450, 250, 0);
-	Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
-	if (Game_Flag_Query(kFlagSpinnerAtDR01) && Global_Variable_Query(kVariableChapter) < 4) {
+	Scene_Exit_Add_2D_Exit(1,   0,   0, 30, 479, 3);
+	if (Game_Flag_Query(kFlagSpinnerAtDR01)
+	 && Global_Variable_Query(kVariableChapter) < 4
+	) {
 		Scene_Exit_Add_2D_Exit(2, 610, 0, 639, 479, 1);
 	}
 	if (Global_Variable_Query(kVariableChapter) >= 3) {
 		Scene_Exit_Add_2D_Exit(3, 0, 45, 142, 201, 0);
 	}
+
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
-	Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound( 54, 50,  0, 1);
 	Ambient_Sounds_Add_Looping_Sound(219, 12, 85, 1);
-	Ambient_Sounds_Add_Looping_Sound(98, 14, 85, 1);
-	Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
+	Ambient_Sounds_Add_Looping_Sound( 98, 14, 85, 1);
+	Ambient_Sounds_Add_Speech_Sound(60,  0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
-	Ambient_Sounds_Add_Sound(67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 67, 5, 80, 16,  25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 66, 5, 80, 16,  25, -100, 100, -101, -101, 0, 0);
 	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(kFlagDR05BombExploded)
 	 && Game_Flag_Query(kFlagDR04toDR01)
 	) {
-		Scene_Loop_Start_Special(0, 3, 0);
+		Scene_Loop_Start_Special(0, 3, false);
 		Scene_Loop_Set_Default(4);
 	} else if (!Game_Flag_Query(kFlagDR05BombExploded)
 	        &&  Game_Flag_Query(kFlagDR04toDR01)
 	) {
-		Scene_Loop_Start_Special(0, 2, 0);
+		Scene_Loop_Start_Special(0, 2, false);
 		Scene_Loop_Set_Default(4);
 	} else if (Game_Flag_Query(kFlagDR02toDR01)) {
-		Scene_Loop_Start_Special(0, 1, 0);
+		Scene_Loop_Start_Special(0, 1, false);
 		Scene_Loop_Set_Default(4);
-	} else if (Game_Flag_Query(531)) {
+	} else if (Game_Flag_Query(kFlagCT11toDR01)) {
 		Scene_Loop_Set_Default(4);
 	} else {
-		Scene_Loop_Start_Special(0, 0, 0);
+		Scene_Loop_Start_Special(0, 0, false);
 		Scene_Loop_Set_Default(4);
 	}
 }
@@ -110,7 +127,7 @@ bool SceneScriptDR01::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptDR01::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, true, false, 0)) {
 			Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false);
 			Ambient_Sounds_Adjust_Looping_Sound(112, 10, -100, 1);
 			Game_Flag_Set(kFlagDR01toDR02);
@@ -118,83 +135,85 @@ bool SceneScriptDR01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -711.0f, -0.04f, 70.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -711.0f, -0.04f, 70.0f, 0, true, false, 0)) {
 			Async_Actor_Walk_To_XYZ(kActorMcCoy, -796.0f, -0.04f, 166.0f, 0, false);
 			Game_Flag_Set(kFlagDR01toDR04);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -372.0f, -0.04f, -82.0f, 0, 1, false, 0)) {
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Reset(kFlagMcCoyAtTBxx);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -372.0f, -0.04f, -82.0f, 0, true, false, 0)) {
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
 			int spinnerDest = Spinner_Interface_Choose_Dest(-1, false);
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtDR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
 				break;
 			default:
 				Player_Loses_Control();
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, true, 0);
 				Player_Gains_Control();
 				break;
@@ -211,9 +230,9 @@ bool SceneScriptDR01::ClickedOnExit(int exitId) {
 			v7 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1236.4f, -0.04f, -13.91f, 0, 1, false, 0);
 		}
 		if (!v7) {
-			Game_Flag_Set(558);
-			Game_Flag_Set(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
+			Game_Flag_Set(kFlagDR01toCT11);
+			Game_Flag_Set(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
 			Set_Enter(kSetCT11, kSceneCT11);
 		}
 		return true;
@@ -240,7 +259,7 @@ void SceneScriptDR01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptDR01::PlayerWalkedIn() {
-	if (Game_Flag_Query(531)) {
+	if (Game_Flag_Query(kFlagCT11toDR01)) {
 		Async_Actor_Walk_To_XYZ(kActorMcCoy, -757.15f, -0.04f, 24.64f, 0, false);
 	} else if (!Game_Flag_Query(kFlagDR02toDR01)
 	        && !Game_Flag_Query(kFlagDR04toDR01)
@@ -251,13 +270,13 @@ void SceneScriptDR01::PlayerWalkedIn() {
 	}
 	Game_Flag_Reset(kFlagDR02toDR01);
 	Game_Flag_Reset(kFlagDR04toDR01);
-	Game_Flag_Reset(531);
+	Game_Flag_Reset(kFlagCT11toDR01);
 }
 
 void SceneScriptDR01::PlayerWalkedOut() {
 	if (!Game_Flag_Query(kFlagDR01toDR04)
 	 && !Game_Flag_Query(kFlagDR01toDR02)
-	 && !Game_Flag_Query(558)
+	 && !Game_Flag_Query(kFlagDR01toCT11)
 	) {
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
diff --git a/engines/bladerunner/script/scene/dr02.cpp b/engines/bladerunner/script/scene/dr02.cpp
index 45867c1..731ed16 100644
--- a/engines/bladerunner/script/scene/dr02.cpp
+++ b/engines/bladerunner/script/scene/dr02.cpp
@@ -26,19 +26,21 @@ namespace BladeRunner {
 
 void SceneScriptDR02::InitializeScene() {
 	if (Game_Flag_Query(kFlagDR03toDR02)) {
-		Setup_Scene_Information(-1162.0f, 7.18f, -322.0f, 552);
+		Setup_Scene_Information(-1162.0f,  7.18f,  -322.0f, 552);
 	} else if (Game_Flag_Query(kFlagDR01toDR02)) {
-		Setup_Scene_Information(-835.0f, -0.04f, -118.0f, 193);
+		Setup_Scene_Information( -835.0f, -0.04f,  -118.0f, 193);
 	} else if (Game_Flag_Query(kFlagBB01toDR02)) {
-		Setup_Scene_Information(-1258.0f, 7.18f, -314.0f, 400);
+		Setup_Scene_Information(-1258.0f,  7.18f,  -314.0f, 400);
 	} else {
-		Setup_Scene_Information(168.78f, 0.16f, -775.72f, 193);
+		Setup_Scene_Information( 168.78f,  0.16f, -775.72f, 193);
 	}
-	Scene_Exit_Add_2D_Exit(0, 605, 0, 639, 479, 1);
+
+	Scene_Exit_Add_2D_Exit(0, 605,   0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(1, 222, 176, 279, 314, 0);
-	if (Game_Flag_Query(326)) {
+	if (Game_Flag_Query(kFlagBB01Available)) {
 		Scene_Exit_Add_2D_Exit(2, 95, 0, 148, 292, 0);
 	}
+
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
 	Ambient_Sounds_Remove_All_Looping_Sounds(0);
 	Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
@@ -47,8 +49,9 @@ void SceneScriptDR02::InitializeScene() {
 	Ambient_Sounds_Add_Sound(378, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(379, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(380, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(67, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(66, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 67, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
+
+	Ambient_Sounds_Add_Sound( 66, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
 	if (Game_Flag_Query(kFlagDR01toDR02)) {
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
 		Scene_Loop_Set_Default(1);
@@ -126,6 +129,7 @@ bool SceneScriptDR02::ClickedOnExit(int exitId) {
 		Ambient_Sounds_Adjust_Looping_Sound(98, 14, -101, 1);
 		return true;
 	}
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1162.0f, 7.18f, -322.0f, 0, true, false, 0)) {
 			if (Global_Variable_Query(kVariableChapter) > 2) {
@@ -137,11 +141,12 @@ bool SceneScriptDR02::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1258.0f, 7.18f, -314.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagDR02toBB01);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
-			Game_Flag_Set(kFlagMcCoyAtBBxx);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
+			Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 			Set_Enter(kSetBB01, kSceneBB01);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/dr03.cpp b/engines/bladerunner/script/scene/dr03.cpp
index f012c68..008cf45 100644
--- a/engines/bladerunner/script/scene/dr03.cpp
+++ b/engines/bladerunner/script/scene/dr03.cpp
@@ -29,8 +29,11 @@ void SceneScriptDR03::InitializeScene() {
 		Game_Flag_Reset(kFlagDR02toDR03);
 		Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297);
 	}
+
 	Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297);
+
 	Scene_Exit_Add_2D_Exit(0, 377, 122, 445, 266, 0);
+
 	if (Global_Variable_Query(kVariableChapter) == 3) {
 		Actor_Put_In_Set(kActorChew, kSetDR03);
 		Actor_Set_At_XYZ(kActorChew, 431.21f, 4.27f, -776.26f, 0);
@@ -38,10 +41,11 @@ void SceneScriptDR03::InitializeScene() {
 		Actor_Put_In_Set(kActorChew, kSetDR03);
 		Actor_Set_At_XYZ(kActorChew, 360.77f, 4.4f, -806.67f, 126);
 	}
+
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	Ambient_Sounds_Add_Looping_Sound(110, 7, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(109, 50, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(95, 20, 70, 1);
+	Ambient_Sounds_Add_Looping_Sound(110,  7,  0, 1);
+	Ambient_Sounds_Add_Looping_Sound(109, 50,  0, 1);
+	Ambient_Sounds_Add_Looping_Sound( 95, 20, 70, 1);
 }
 
 void SceneScriptDR03::SceneLoaded() {
@@ -62,6 +66,7 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
 	if (actorId == kActorChew) {
 		Actor_Face_Actor(kActorMcCoy, kActorChew, true);
 		Actor_Face_Actor(kActorChew, kActorMcCoy, true);
+
 		if (!Game_Flag_Query(kFlagDR03ChewTalk1)) {
 			Actor_Says(kActorMcCoy, 755, 18);
 			Actor_Says(kActorChew, 10, 14);
@@ -72,52 +77,62 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
 			Game_Flag_Set(kFlagDR03ChewTalk1);
 			return true;
 		}
-		if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
-			if (Game_Flag_Query(kFlagMorajiExploded)
-			 && Game_Flag_Query(kFlagDR03ChewTalk1)) {
-				Actor_Says(kActorMcCoy, 815, 18);
-				Actor_Says(kActorChew, 60, 14);
-				Actor_Says(kActorChew, 70, 14);
-				Actor_Says(kActorChew, 80, 14);
-				Actor_Says(kActorMcCoy, 820, 18);
-				Actor_Says(kActorChew, 90, 14);
-				Actor_Says(kActorMcCoy, 825, 18);
-				Actor_Says(kActorChew, 100, 14);
-				Game_Flag_Reset(kFlagMorajiExploded);
-				Game_Flag_Set(505);
-				return true;
-			}
-			if ((Actor_Clue_Query(kActorMcCoy, kClueDNATyrell) || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage) || Actor_Clue_Query(kActorMcCoy, kClueEnvelope) || Actor_Clue_Query(kActorMcCoy, kClueChewInterview))
-				&& Game_Flag_Query(505)) {
-				sub_401B18();
-			} else {
-				Actor_Says(kActorMcCoy, 810, 18);
-				Actor_Says(kActorChew, 40, 14);
-				Actor_Says(kActorChew, 50, 14);
+
+		if (!Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
+			Actor_Says(kActorMcCoy, 770, 12);
+			Actor_Says(kActorChew, 110, 12);
+			Actor_Says(kActorChew, 120, 13);
+			Actor_Says(kActorMcCoy, 835, 13);
+			Actor_Says(kActorChew, 130, 14);
+			Actor_Says(kActorMcCoy, 840, 16);
+			Actor_Says(kActorChew, 140, 15);
+			if (!Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
+				Actor_Says(kActorChew, 150, 13);
+				Actor_Says(kActorMcCoy, 845, 17);
+				Actor_Says(kActorChew, 170, 18);
+				Actor_Says(kActorChew, 180, 16);
+				Actor_Says(kActorMcCoy, 850, 15);
+				Actor_Says(kActorChew, 190, 14);
+				Actor_Says(kActorChew, 200, 13);
+				Actor_Says(kActorMcCoy, 855, 18);
+				Actor_Says(kActorChew, 210, 12);
 			}
+			Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 			return true;
 		}
-		Actor_Says(kActorMcCoy, 770, 12);
-		Actor_Says(kActorChew, 110, 12);
-		Actor_Says(kActorChew, 120, 13);
-		Actor_Says(kActorMcCoy, 835, 13);
-		Actor_Says(kActorChew, 130, 14);
-		Actor_Says(kActorMcCoy, 840, 16);
-		Actor_Says(kActorChew, 140, 15);
-		if (!Game_Flag_Query(505)) {
-			Actor_Says(kActorChew, 150, 13);
-			Actor_Says(kActorMcCoy, 845, 17);
-			Actor_Says(kActorChew, 170, 18);
-			Actor_Says(kActorChew, 180, 16);
-			Actor_Says(kActorMcCoy, 850, 15);
-			Actor_Says(kActorChew, 190, 14);
-			Actor_Says(kActorChew, 200, 13);
-			Actor_Says(kActorMcCoy, 855, 18);
-			Actor_Says(kActorChew, 210, 12);
+
+		if (Game_Flag_Query(kFlagDR05JustExploded)
+		 && Game_Flag_Query(kFlagDR03ChewTalk1)
+		) {
+			Actor_Says(kActorMcCoy, 815, 18);
+			Actor_Says(kActorChew, 60, 14);
+			Actor_Says(kActorChew, 70, 14);
+			Actor_Says(kActorChew, 80, 14);
+			Actor_Says(kActorMcCoy, 820, 18);
+			Actor_Says(kActorChew, 90, 14);
+			Actor_Says(kActorMcCoy, 825, 18);
+			Actor_Says(kActorChew, 100, 14);
+			Game_Flag_Reset(kFlagDR05JustExploded);
+			Game_Flag_Set(kFlagDR03ChewTalkExplosion);
+			return true;
+		}
+
+		if ((Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
+		  || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)
+		  || Actor_Clue_Query(kActorMcCoy, kClueEnvelope)
+		  || Actor_Clue_Query(kActorMcCoy, kClueChewInterview)
+		 )
+		 && Game_Flag_Query(kFlagDR03ChewTalkExplosion)
+		) {
+			dialogueWithChew();
+		} else {
+			Actor_Says(kActorMcCoy, 810, 18);
+			Actor_Says(kActorChew, 40, 14);
+			Actor_Says(kActorChew, 50, 14);
 		}
-		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		return true;
 	}
+
 	return false;
 }
 
@@ -141,7 +156,21 @@ bool SceneScriptDR03::ClickedOn2DRegion(int region) {
 }
 
 void SceneScriptDR03::SceneFrameAdvanced(int frame) {
-	if (frame == 1 || frame == 4 || frame == 8 || frame == 10 || frame == 19 || frame == 21 || frame == 22 || frame == 23 || frame == 30 || frame == 31 || frame == 32 || frame == 33 || frame == 46 || frame == 49) {
+	if (frame == 1
+	 || frame == 4
+	 || frame == 8
+	 || frame == 10
+	 || frame == 19
+	 || frame == 21
+	 || frame == 22
+	 || frame == 23
+	 || frame == 30
+	 || frame == 31
+	 || frame == 32
+	 || frame == 33
+	 || frame == 46
+	 || frame == 49
+	) {
 		if (Random_Query(0, 1)) {
 			Sound_Play(97, Random_Query(20, 33), 80, 80, 50);
 		} else {
@@ -174,31 +203,36 @@ void SceneScriptDR03::PlayerWalkedOut() {
 void SceneScriptDR03::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptDR03::sub_401B18() {
+void SceneScriptDR03::dialogueWithChew() {
 	Dialogue_Menu_Clear_List();
-	if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview) || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage) || Actor_Clue_Query(kActorMcCoy, kClueMorajiInterview)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(650, 5, 5, 5);
+	if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)
+	 || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)
+	 || Actor_Clue_Query(kActorMcCoy, kClueMorajiInterview)
+	) {
+		DM_Add_To_List_Never_Repeat_Once_Selected(650, 5, 5, 5); // TWINS
 	}
 	if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(660, 5, 5, 5);
+		DM_Add_To_List_Never_Repeat_Once_Selected(660, 5, 5, 5); // MORAJI
 	}
 	if (Actor_Clue_Query(kActorMcCoy, kClueTyrellInterview)) {
-		DM_Add_To_List_Never_Repeat_Once_Selected(670, 6, 5, 2);
+		DM_Add_To_List_Never_Repeat_Once_Selected(670, 6, 5, 2); // TYRELL
 	}
-	if (Game_Flag_Query(505)) {
+	if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
 		if (Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(680, 8, 8, 8);
+			DM_Add_To_List_Never_Repeat_Once_Selected(680, 8, 8, 8); // SEBASTIAN
 		}
 		if (Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(1270, 2, 5, 7);
+			DM_Add_To_List_Never_Repeat_Once_Selected(1270, 2, 5, 7); // LANCE'S ENVELOPE
 		}
 	}
-	Dialogue_Menu_Add_DONE_To_List(690);
+	Dialogue_Menu_Add_DONE_To_List(690); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
+
 	switch (answer) {
-	case 640:
+	case 640: // EISENDULLER
 		Actor_Says(kActorMcCoy, 770, 12);
 		Actor_Says(kActorChew, 110, 12);
 		Actor_Says(kActorChew, 120, 13);
@@ -206,7 +240,7 @@ void SceneScriptDR03::sub_401B18() {
 		Actor_Says(kActorChew, 130, 14);
 		Actor_Says(kActorMcCoy, 840, 16);
 		Actor_Says(kActorChew, 140, 15);
-		if (!Game_Flag_Query(505)) {
+		if (!Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
 			Actor_Says(kActorChew, 150, 13);
 			Actor_Says(kActorMcCoy, 845, 17);
 			Actor_Says(kActorChew, 170, 18);
@@ -219,7 +253,8 @@ void SceneScriptDR03::sub_401B18() {
 		}
 		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		break;
-	case 650:
+
+	case 650: // TWINS
 		Actor_Says(kActorMcCoy, 775, 11);
 		Actor_Says(kActorChew, 220, 14);
 		Actor_Says(kActorMcCoy, 860, 11);
@@ -228,9 +263,10 @@ void SceneScriptDR03::sub_401B18() {
 		Actor_Says(kActorChew, 240, 14);
 		Actor_Says(kActorChew, 250, 14);
 		break;
-	case 660:
+
+	case 660: // MORAJI
 		Actor_Says(kActorMcCoy, 780, 13);
-		if (Game_Flag_Query(505)) {
+		if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
 			Actor_Says(kActorChew, 260, 14);
 			Actor_Says(kActorChew, 270, 13);
 			Actor_Says(kActorChew, 280, 12);
@@ -240,34 +276,41 @@ void SceneScriptDR03::sub_401B18() {
 			Actor_Says(kActorChew, 280, 12);
 			Actor_Says(kActorMcCoy, 870, 18);
 			Actor_Says(kActorChew, 290, 15);
-			if (!Game_Flag_Query(kFlagMorajiExploded)) {
+			if (!Game_Flag_Query(kFlagDR05JustExploded)) {
 				Actor_Says(kActorChew, 300, 12);
 			}
 		}
 		Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
 		break;
-	case 670:
+
+	case 670: // TYRELL
 		Actor_Says(kActorMcCoy, 765, 12);
 		Actor_Says(kActorMcCoy, 790, 13);
 		Actor_Says(kActorChew, 310, 12);
 		Actor_Says(kActorChew, 320, 3);
 		break;
-	case 680:
+
+	case 680: // SEBASTIAN
 		Actor_Says(kActorMcCoy, 795, 3);
-		if (Game_Flag_Query(505) == 1) {
+		if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
 			Actor_Says(kActorChew, 330, 12);
 			Actor_Says(kActorChew, 340, 15);
 			Actor_Says(kActorMcCoy, 875, 16);
 			Actor_Says(kActorChew, 350, 12);
 			Actor_Says(kActorChew, 360, 15);
-			Game_Flag_Set(326);
+			Game_Flag_Set(kFlagBB01Available);
 		} else {
 			Actor_Says(kActorChew, 320, 13);
 			Actor_Says(kActorChew, 150, 14);
-			Game_Flag_Set(326);
+			Game_Flag_Set(kFlagBB01Available);
 		}
 		break;
-	case 1270:
+
+	case 690: // DONE
+		Actor_Says(kActorMcCoy, 805, 3);
+		break;
+
+	case 1270: // LANCE'S ENVELOPE
 		Actor_Says(kActorMcCoy, 800, 16);
 		Actor_Says(kActorChew, 370, 3);
 		Actor_Says(kActorMcCoy, 880, 15);
@@ -280,9 +323,6 @@ void SceneScriptDR03::sub_401B18() {
 		Actor_Says(kActorChew, 420, 13);
 		Actor_Says(kActorChew, 430, 12);
 		break;
-	case 690:
-		Actor_Says(kActorMcCoy, 805, 3);
-		break;
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/dr04.cpp b/engines/bladerunner/script/scene/dr04.cpp
index 0f3addc..3b033d0 100644
--- a/engines/bladerunner/script/scene/dr04.cpp
+++ b/engines/bladerunner/script/scene/dr04.cpp
@@ -24,44 +24,55 @@
 
 namespace BladeRunner {
 
+enum kDR04Loops {
+	kDR04LoopPanFromDR01PostExplosion = 0,
+	kDR04LoopMainPostExplosion        = 1,
+	kDR04LoopPanFromDR01PreExplosion  = 3,
+	kDR04LoopMainPreExplosion         = 4,
+	kDR04LoopDR04Explosion            = 6
+};
+
 void SceneScriptDR04::InitializeScene() {
-	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
-		Setup_Scene_Information(0.0f, 0.0f, 0.0f, 0);
+	if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
+		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);
+		Setup_Scene_Information( -711.0f,  -0.04f,   70.0f, 472);
 	} else if (Game_Flag_Query(kFlagDR05toDR04)) {
-		Setup_Scene_Information(-1067.0f, 7.18f, 421.0f, 125);
+		Setup_Scene_Information(-1067.0f,   7.18f,  421.0f, 125);
 	} 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);
+		Setup_Scene_Information( -810.0f,  -0.04f,  242.0f, 125);
 	}
-	Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
+
+	Scene_Exit_Add_2D_Exit(0, 589,   0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(1, 443, 264, 488, 353, 0);
 	Scene_Exit_Add_2D_Exit(2, 222, 110, 269, 207, 0);
+
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
-	Ambient_Sounds_Add_Looping_Sound(54, 50, 1, 1);
-	Ambient_Sounds_Add_Looping_Sound(288, 55, -100, 1);
+	Ambient_Sounds_Add_Looping_Sound( 54, 50,    1,   1);
+	Ambient_Sounds_Add_Looping_Sound(288, 55, -100,   1);
 	Ambient_Sounds_Add_Looping_Sound(217, 28, -100, 100);
-	Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
+	Ambient_Sounds_Add_Speech_Sound(60,  0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
 	Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
-	Ambient_Sounds_Add_Sound(67, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(66, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	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);
+	Ambient_Sounds_Add_Sound( 67, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 66, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+	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(kFlagDR05BombExploded)) {
-		Scene_Loop_Set_Default(1);
+		Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
 	} else {
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Set_Default(kDR04LoopMainPreExplosion);
 	}
 	if (Game_Flag_Query(kFlagDR01toDR04)) {
 		if (Game_Flag_Query(kFlagDR05BombExploded)) {
-			Scene_Loop_Start_Special(0, 0, 0);
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR04LoopPanFromDR01PostExplosion, false);
 		} else {
-			Scene_Loop_Start_Special(0, 3, 0);
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR04LoopPanFromDR01PreExplosion, false);
 		}
 	}
 }
@@ -95,26 +106,26 @@ bool SceneScriptDR04::ClickedOnActor(int actorId) {
 	if ( actorId == kActorMoraji
 	 && !Player_Query_Combat_Mode()
 	) {
-		if (Actor_Query_Goal_Number(kActorMoraji) == 21) {
+		if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
 			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(kActorMoraji, 0, kAnimationModeTalk);
+				Actor_Says(kActorMoraji, 10, kAnimationModeTalk);
 				Actor_Says(kActorMcCoy, 950, 13);
-				Actor_Says(kActorMoraji, 20, 3);
-				Actor_Says(kActorMoraji, 30, 3);
+				Actor_Says(kActorMoraji, 20, kAnimationModeTalk);
+				Actor_Says(kActorMoraji, 30, kAnimationModeTalk);
 				Actor_Says(kActorMcCoy, 955, 13);
-				Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, 3);
-				Actor_Says(kActorMoraji, 50, 3);
+				Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, kAnimationModeTalk);
+				Actor_Says(kActorMoraji, 50, kAnimationModeTalk);
 				Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, true, kActorMoraji);
-				Actor_Set_Goal_Number(kActorMoraji, 22);
+				Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
 				Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
 				return true;
 			}
 		}
 
-		if (Actor_Query_Goal_Number(kActorMoraji) == 23) {
+		if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDead) {
 			if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, true, false)) {
 				Actor_Set_Goal_Number(kActorOfficerGrayford, 106);
 				return true;
@@ -129,37 +140,40 @@ bool SceneScriptDR04::ClickedOnItem(int itemId, bool a2) {
 }
 
 bool SceneScriptDR04::ClickedOnExit(int exitId) {
-	if (Actor_Query_Goal_Number(kActorMoraji) == 21) {
+	if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
 		Actor_Force_Stop_Walking(kActorMcCoy);
-		Actor_Set_Goal_Number(kActorMoraji, 22);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
 		Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
 		return true;
 	}
+
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -761.0f, -0.04f, 97.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -761.0f, -0.04f, 97.0f, 0, true, false, 0)) {
 			Async_Actor_Walk_To_XYZ(kActorMcCoy, -683.0f, -0.04f, 43.0f, 0, false);
 			Game_Flag_Set(kFlagDR04toDR01);
 			Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagNotUsed232);
 			Game_Flag_Set(kFlagDR04toDR05);
 			Set_Enter(kSetDR05, kSceneDR05);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 6.98f, 560.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 6.98f, 560.0f, 0, true, false, 0)) {
 			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, kAnimationModeIdle);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, 0, false, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, false, false, 0);
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 			Footstep_Sound_Override_Off();
 			Game_Flag_Set(kFlagDR04toDR06);
@@ -174,58 +188,61 @@ bool SceneScriptDR04::ClickedOn2DRegion(int region) {
 	return false;
 }
 
-bool SceneScriptDR04::sub_401160() {
+bool SceneScriptDR04::farEnoughFromExplosion() {
 	float x, y, z;
 	Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
 	return (x + 1089.94f) * (x + 1089.94f) + (z - 443.49f) * (z - 443.49f) >= (360.0f * 360.0f);
 }
 
 void SceneScriptDR04::SceneFrameAdvanced(int frame) {
-	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
-		Game_Flag_Reset(kFlagDR05BombExplosionView);
+	if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
+		Game_Flag_Reset(kFlagDR05ViewExplosion);
 		Game_Flag_Reset(kFlagDR05BombWillExplode);
-		Scene_Loop_Set_Default(1);
-		Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true);
+		Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
+		Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true);
 		Music_Stop(4);
-		Actor_Set_Goal_Number(kActorMoraji, 99);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished);
 	} else {
 		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);
+			Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
+			Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true);
+			Item_Remove_From_World(kItemBomb);
 		}
+
 		switch (frame) {
 		case 193:
 			Sound_Play(301, 100, 0, 100, 50);
-			Actor_Set_Goal_Number(kActorMoraji, 30);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
 			Player_Loses_Control();
 			Actor_Force_Stop_Walking(kActorMcCoy);
-			if (sub_401160()) {
+			if (farEnoughFromExplosion()) {
 				if (Player_Query_Combat_Mode()) {
-					Actor_Change_Animation_Mode(kActorMcCoy, 22);
+					Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatHit);
 				} else {
-					Actor_Change_Animation_Mode(kActorMcCoy, 21);
+					Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeHit);
 				}
 			} else {
 				Sound_Play_Speech_Line(kActorMcCoy, 9905, 100, 0, 99);
-				Actor_Change_Animation_Mode(kActorMcCoy, 48);
-				Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
+				Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
+				Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1);
 			}
 			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) != kGoalMorajiJump
+			 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown
+			 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished
 			) {
 				Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
 			}
 			Scene_Exits_Enable();
 			break;
+
 		case 237:
-			Overlay_Play("DR04OVER", 0, 1, 1, 0);
+			Overlay_Play("DR04OVER", 0, true, true, 0);
 			break;
 		}
 	}
@@ -235,7 +252,7 @@ void SceneScriptDR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptDR04::PlayerWalkedIn() {
-	if (Game_Flag_Query(kFlagDR05BombExplosionView)) {
+	if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
 		Player_Loses_Control();
 		Delay(4000);
 		Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
@@ -250,11 +267,11 @@ void SceneScriptDR04::PlayerWalkedIn() {
 			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, kAnimationModeIdle);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 71.64f, 647.0f, 0, 0, false, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 71.64f, 647.0f, 0, false, false, 0);
 			Actor_Face_Heading(kActorMcCoy, 0, false);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, kAnimationModeIdle);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -774.85f, 7.18f, 386.67f, 0, 0, false, 0);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -774.85f, 7.18f, 386.67f, 0, false, false, 0);
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 			Footstep_Sound_Override_Off();
 		}
diff --git a/engines/bladerunner/script/scene/dr05.cpp b/engines/bladerunner/script/scene/dr05.cpp
index 0204cf5..9f00bc2 100644
--- a/engines/bladerunner/script/scene/dr05.cpp
+++ b/engines/bladerunner/script/scene/dr05.cpp
@@ -24,18 +24,27 @@
 
 namespace BladeRunner {
 
+enum kDR05Loops {
+	kDR05LoopMain          = 0,
+	kDR05LoopMainDestroyed = 2
+};
+
 void SceneScriptDR05::InitializeScene() {
 	Setup_Scene_Information(-22.0f, 0.3f, 221.0f, 0);
+
 	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(kFlagDR05BombExploded)) {
-		Overlay_Play("DR05OVER", 0, 1, 0, 0);
+		Overlay_Play("DR05OVER", 0, true, false, 0);
 	}
 	if (Game_Flag_Query(kFlagDR05BombExploded)) {
-		Scene_Loop_Set_Default(2);
+		Scene_Loop_Set_Default(kDR05LoopMainDestroyed);
 	} else {
-		Scene_Loop_Set_Default(0);
+		Scene_Loop_Set_Default(kDR05LoopMain);
 	}
 }
 
@@ -44,10 +53,11 @@ void SceneScriptDR05::SceneLoaded() {
 	Unobstacle_Object("BOX06", true);
 	Unobstacle_Object("BOX183", true);
 	Clickable_Object("T2 DOORWAY");
+
 	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) == 0) {
-			Item_Add_To_World(122, 931, 35, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true);
+		Item_Add_To_World(kItemBomb, 932, kSetDR05, -1.57f, 31.33f, 75.21f, 540, 16, 16, true, true, false, true);
+		if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault) {
+			Item_Add_To_World(kItemChain, 931, kSetDR05, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true);
 		}
 	}
 }
@@ -58,19 +68,20 @@ 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(kFlagNotUsed276)
-		 || Actor_Query_Goal_Number(kActorMoraji) != 0
+		if (!Game_Flag_Query(kFlagNotUsed276)
+		 &&  Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
 		) {
+			Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
+			Actor_Says(kActorMcCoy, 1020, 14);
+			Actor_Says(kActorMoraji, 90, 13);
+		} else {
 			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);
 			}
-		} else {
-			Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
-			Actor_Says(kActorMcCoy, 1020, 14);
-			Actor_Says(kActorMoraji, 90, 13);
 		}
+
 		return true;
 	}
 	return false;
@@ -81,30 +92,31 @@ bool SceneScriptDR05::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 78) {
+	if (itemId == kItemBomb) {
 		if (Player_Query_Combat_Mode()) {
 			Game_Flag_Set(kFlagDR05BombWillExplode);
-			Actor_Set_Goal_Number(kActorMoraji, 30);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
 		} else if (!Game_Flag_Query(kFlagDR05BombExploded)
-		        && !Loop_Actor_Walk_To_Item(kActorMcCoy, 78, 24, 1, true)
-		        &&  Actor_Query_Goal_Number(kActorMoraji) != 11
+		        && !Loop_Actor_Walk_To_Item(kActorMcCoy, kItemBomb, 24, true, true)
+		        &&  Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiRunOut
 		) {
 			if (!Actor_Query_Goal_Number(kActorMoraji)) {
 				Actor_Says_With_Pause(kActorMcCoy, 1015, 0.1f, 12);
 				Actor_Says(kActorMoraji, 70, 13);
 			}
-			Actor_Set_Goal_Number(kActorMoraji, 30);
+			Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
 		}
 		//return true; //bug?
 	}
-	if (itemId == 122
+
+	if (itemId == kItemChain
 	 && Player_Query_Combat_Mode()
-	 && Actor_Query_Goal_Number(kActorMoraji) == 0
+	 && Actor_Query_Goal_Number(kActorMoraji) == kGoalOfficerLearyDefault
 	) {
-		Overlay_Play("DR05OVER", 1, 0, 1, 0);
-		Item_Remove_From_World(122);
+		Overlay_Play("DR05OVER", 1, false, true, 0);
+		Item_Remove_From_World(kItemChain);
 		Game_Flag_Set(kFlagDR05ChainShot);
-		Actor_Set_Goal_Number(kActorMoraji, 10);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiFreed);
 		Music_Play(18, 71, 0, 0, -1, 0, 2);
 		return true;
 	}
@@ -131,11 +143,12 @@ void SceneScriptDR05::SceneFrameAdvanced(int frame) {
 	if (frame == 49) {
 		Sound_Play(148, Random_Query(50, 50), 80, 80, 50);
 	}
+
 	if (Game_Flag_Query(kFlagDR05BombWillExplode)) {
-		Item_Remove_From_World(78);
+		Item_Remove_From_World(kItemBomb);
 		Game_Flag_Reset(kFlagDR05BombWillExplode);
 		Game_Flag_Set(kFlagDR05BombExploded);
-		Actor_Set_Goal_Number(kActorMoraji, 30);
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
 	}
 }
 
@@ -147,11 +160,11 @@ void SceneScriptDR05::PlayerWalkedIn() {
 	 && !Game_Flag_Query(kFlagDR05ChainShot)
 	 &&  Game_Flag_Query(kFlagDR05BombExploded)
 	) {
-		Item_Remove_From_World(122);
+		Item_Remove_From_World(kItemChain);
 	}
 
 	if (Game_Flag_Query(kFlagDR05BombExploded)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, false, false, 0);
 		if (!Game_Flag_Query(kFlagDR05ExplodedEntered)) {
 			Game_Flag_Set(kFlagDR05ExplodedEntered);
 			if (Game_Flag_Query(kFlagSadikIsReplicant)) {
@@ -170,18 +183,18 @@ void SceneScriptDR05::PlayerWalkedIn() {
 			}
 		}
 	} else {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, true, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, false, true, 0);
 	}
 
 	if (!Game_Flag_Query(kFlagDR05MorajiTalk)
-	 && !Actor_Query_Goal_Number(kActorMoraji)
+	 &&  Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
 	) {
 		Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
 		Actor_Says(kActorMcCoy, 1010, 13);
-		Actor_Face_Item(kActorMcCoy, 78, true);
+		Actor_Face_Item(kActorMcCoy, kItemBomb, true);
 		Player_Set_Combat_Mode(true);
 		Actor_Says(kActorMoraji, 60, 12);
-		Actor_Change_Animation_Mode(kActorMcCoy, 0);
+		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
 		Game_Flag_Set(kFlagDR05MorajiTalk);
 		//return true;
 	}
@@ -191,8 +204,12 @@ void SceneScriptDR05::PlayerWalkedIn() {
 void SceneScriptDR05::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (Actor_Query_Goal_Number(kActorMoraji) == 10 || Actor_Query_Goal_Number(kActorMoraji) == 18 || Actor_Query_Goal_Number(kActorMoraji) == 19) {
-		Actor_Set_Goal_Number(kActorMoraji, 11);
+
+	if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiFreed
+	 || Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiGetUp
+	 || Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiScream
+	) {
+		Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiRunOut);
 		//return true;
 	}
 	//return false;
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index c28ec2d..441d7bd 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -26,27 +26,30 @@ namespace BladeRunner {
 
 void SceneScriptDR06::InitializeScene() {
 	if (Game_Flag_Query(kFlagDR04toDR06)) {
-		Setup_Scene_Information(-733.57f, 136.6f, -968.64f, 0);
+		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)
 	) {
 		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(kFlagDR06JesterActive)) {
-		Overlay_Play("DR06over", 1, 1, 0, 0);
+		Overlay_Play("DR06over", 1, true, false, 0);
 		Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
 	} else {
-		Overlay_Play("DR06over", 0, 1, 0, 0);
+		Overlay_Play("DR06over", 0, true, false, 0);
 	}
-	if (Game_Flag_Query(548)) {
-		Overlay_Play("DR06ovr2", 0, 1, 0, 0);
+	if (Game_Flag_Query(kFlagDR06MannequinHeadOpen)) {
+		Overlay_Play("DR06ovr2", 0, true, false, 0);
 	}
 }
 
@@ -72,11 +75,11 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 		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(kFlagDR06JesterActive)) {
-			Overlay_Play("DR06over", 1, 1, 1, 0);
+			Overlay_Play("DR06over", 1, true, true, 0);
 			Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
 			Game_Flag_Set(kFlagDR06JesterActive);
 		} else {
-			Overlay_Play("DR06over", 0, 1, 1, 0);
+			Overlay_Play("DR06over", 0, true, true, 0);
 			Ambient_Sounds_Remove_Looping_Sound(300, false);
 			Game_Flag_Reset(kFlagDR06JesterActive);
 		}
@@ -144,13 +147,13 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 	if (Object_Query_Click("X2_TORSO04HIRES", objectName)) {
 		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) {
+			if (Global_Variable_Query(kVariableDR06MannequinHeadOpened) > 12) {
 				return true;
 			}
 
-			if (!Game_Flag_Query(548)) {
+			if (!Game_Flag_Query(kFlagDR06MannequinHeadOpen)) {
 				Overlay_Play("DR06ovr2", 0, 1, 0, 0);
-				Game_Flag_Set(548);
+				Game_Flag_Set(kFlagDR06MannequinHeadOpen);
 				Sound_Play(160, 100, 0, 0, 50);
 				if (!Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
 					Actor_Voice_Over(850, kActorVoiceOver);
@@ -160,17 +163,17 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 					Actor_Voice_Over(880, kActorVoiceOver);
 					Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, true, kActorLance);
 					if (Query_Difficulty_Level() != 0) {
-						Global_Variable_Increment(2, 200);
+						Global_Variable_Increment(kVariableChinyen, 200);
 					}
 				}
 			} else {
 				Overlay_Remove("DR06ovr2");
-				Game_Flag_Reset(548);
+				Game_Flag_Reset(kFlagDR06MannequinHeadOpen);
 				Sound_Play(161, 100, 0, 0, 50);
 			}
 
-			Global_Variable_Increment(39, 1);
-			if (Global_Variable_Query(39) > 12) {
+			Global_Variable_Increment(kVariableDR06MannequinHeadOpened, 1);
+			if (Global_Variable_Query(kVariableDR06MannequinHeadOpened) > 12) {
 				Sound_Play(204, 100, 0, 0, 50);
 				Unclickable_Object("X2_TORSO04HIRES");
 			}
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp
index 8318130..19345eb 100644
--- a/engines/bladerunner/script/scene/hc01.cpp
+++ b/engines/bladerunner/script/scene/hc01.cpp
@@ -99,8 +99,8 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) {
 	 )
 	) {
 		AI_Movement_Track_Pause(kActorIzo);
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 624.43f, 0.14f, 83.0f, 0, 1, false, 0)) {
-			if (!Game_Flag_Query(kFlagIzoTalk1)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 624.43f, 0.14f, 83.0f, 0, true, false, 0)) {
+			if (!Game_Flag_Query(kFlagHC01IzoTalk1)) {
 				Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
 				Actor_Says_With_Pause(kActorIzo, 10, 0.2f, 13);
 				Actor_Face_Actor(kActorMcCoy, kActorIzo, true);
@@ -114,7 +114,7 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) {
 				Actor_Says_With_Pause(kActorIzo, 70, 1.0f, 13);
 				Actor_Says_With_Pause(kActorMcCoy, 1045, 0.6f, 14);
 				Actor_Says(kActorIzo, 80, 18);
-				Game_Flag_Set(kFlagIzoTalk1);
+				Game_Flag_Set(kFlagHC01IzoTalk1);
 			} else {
 				Actor_Face_Actor(kActorMcCoy, kActorIzo, true);
 				Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
@@ -134,7 +134,7 @@ bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) {
 		Item_Pickup_Spin_Effect(984, 377, 397);
 		Delay(1500);
 		Item_Pickup_Spin_Effect(984, 330, 384);
-		if (Game_Flag_Query(374)) {
+		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
@@ -151,8 +151,8 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) {
 			Music_Adjust(12, 0, 2);
 			Game_Flag_Set(kFlagHC01toAR01);
 			Set_Enter(kSetAR01_AR02, kSceneAR01);
-			Game_Flag_Reset(kFlagMcCoyAtHCxx);
-			Game_Flag_Set(kFlagMcCoyAtARxx);
+			Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
+			Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 		}
 		return true;
 	}
@@ -197,7 +197,7 @@ void SceneScriptHC01::SceneFrameAdvanced(int frame) {
 	}
 	if (frame == 80) {
 		Ambient_Sounds_Play_Sound(316, 40, 100, 100, 0);
-		Item_Add_To_World(kItemHC03Lock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true);
+		Item_Add_To_World(kItemGreenPawnLock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true);
 	}
 }
 
@@ -227,12 +227,12 @@ void SceneScriptHC01::DialogueQueueFlushed(int a1) {
 }
 
 void SceneScriptHC01::dialogueWithIzo() {
-	if (!Game_Flag_Query(kFlagIzoTalk2)) {
+	if (!Game_Flag_Query(kFlagHC01IzoTalk2)) {
 		Actor_Says(kActorMcCoy, 1055, 13);
 		Actor_Says(kActorIzo, 130, 13);
 		Actor_Says_With_Pause(kActorMcCoy, 1060, 0.2f, 13);
 		Actor_Says(kActorIzo, 140, 13);
-		Game_Flag_Set(kFlagIzoTalk2);
+		Game_Flag_Set(kFlagHC01IzoTalk2);
 	}
 
 	Dialogue_Menu_Clear_List();
diff --git a/engines/bladerunner/script/scene/hc02.cpp b/engines/bladerunner/script/scene/hc02.cpp
index 76cf09c..fa64162 100644
--- a/engines/bladerunner/script/scene/hc02.cpp
+++ b/engines/bladerunner/script/scene/hc02.cpp
@@ -89,7 +89,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 	if (actorId == kActorHawkersBarkeep) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -150.51f, 0.14f, 62.74f, 0, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorHawkersBarkeep, true);
-			if (!Game_Flag_Query(kFlagHawkersBarkeepIntroduction)) {
+			if (!Game_Flag_Query(kFlagHC02HawkersBarkeepIntroduction)) {
 				Actor_Says(kActorMcCoy, 1225, 13);
 				Actor_Says_With_Pause(kActorHawkersBarkeep, 0, 0.0f, 13);
 				Actor_Says(kActorHawkersBarkeep, 10, 16);
@@ -99,7 +99,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				Actor_Change_Animation_Mode(kActorMcCoy, 75);
 				Delay(1500);
 				Global_Variable_Increment(kVariableMcCoyDrinks, 1);
-				Game_Flag_Set(kFlagHawkersBarkeepIntroduction);
+				Game_Flag_Set(kFlagHC02HawkersBarkeepIntroduction);
 			} else if ( Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)
 			        && !Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityDisc)
 			) {
@@ -110,8 +110,8 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				Item_Pickup_Spin_Effect(975, 229, 215);
 			} else if ( Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1)
 			        && !Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe)
-			        && (Global_Variable_Query(kVariableChinyen) > 20
-			         || Query_Difficulty_Level() == 0
+			        &&  (Global_Variable_Query(kVariableChinyen) > 20
+			         ||  Query_Difficulty_Level() == 0
 			        )
 			) {
 				Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, true, kActorHawkersBarkeep);
@@ -132,12 +132,12 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				Actor_Says(kActorMcCoy, 1245, 13);
 			} else {
 				if ( Actor_Clue_Query(kActorMcCoy, kClueMaggieBracelet)
-				 && !Game_Flag_Query(kFlagHawkersBarkeepBraceletTalk)
+				 && !Game_Flag_Query(kFlagHC02HawkersBarkeepBraceletTalk)
 				) {
 					Actor_Says(kActorHawkersBarkeep, 80, 16);
 					Actor_Says(kActorMcCoy, 1265, 13);
 					Actor_Says(kActorHawkersBarkeep, 90, 13);
-					Game_Flag_Set(kFlagHawkersBarkeepBraceletTalk);
+					Game_Flag_Set(kFlagHC02HawkersBarkeepBraceletTalk);
 				}
 				if (Global_Variable_Query(kVariableChinyen) > 5
 				 || Query_Difficulty_Level() == 0
diff --git a/engines/bladerunner/script/scene/hc03.cpp b/engines/bladerunner/script/scene/hc03.cpp
index 07016f6..c0d08c5 100644
--- a/engines/bladerunner/script/scene/hc03.cpp
+++ b/engines/bladerunner/script/scene/hc03.cpp
@@ -46,7 +46,7 @@ void SceneScriptHC03::InitializeScene() {
 	if (Game_Flag_Query(kFlagHC03CageOpen)
 	 || Global_Variable_Query(kVariableChapter) > 3
 	) {
-		Item_Remove_From_World(kItemHC03Lock);
+		Item_Remove_From_World(kItemGreenPawnLock);
 		Game_Flag_Set(kFlagHC03CageOpen);
 		Scene_Exit_Add_2D_Exit(1, 400, 275, 515, 375, 2);
 	}
@@ -115,12 +115,12 @@ bool SceneScriptHC03::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) {
-	if (itemId == kItemHC03Lock) {
+	if (itemId == kItemGreenPawnLock) {
 		if (combatMode) {
 			Scene_Loop_Set_Default(kHC03LoopMainCageOpen);
 			Scene_Loop_Start_Special(kSceneLoopModeOnce, kHC03LoopCageDoorOpening, true);
 			Game_Flag_Set(kFlagHC03CageOpen);
-			Item_Remove_From_World(kItemHC03Lock);
+			Item_Remove_From_World(kItemGreenPawnLock);
 			Unobstacle_Object("GPscisGate", true);
 		} else {
 			Actor_Says(kActorMcCoy, 8522, 12);
@@ -135,7 +135,7 @@ bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) {
 		Item_Pickup_Spin_Effect(984, 78, 435);
 		Delay(1500);
 		Item_Pickup_Spin_Effect(984, 58, 435);
-		if (Game_Flag_Query(374)) {
+		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
@@ -163,8 +163,8 @@ bool SceneScriptHC03::ClickedOnExit(int exitId) {
 				Game_Flag_Set(kFlagHC03TrapDoorOpen);
 			} else {
 				Game_Flag_Set(kFlagHC03toUG02);
-				Game_Flag_Reset(kFlagMcCoyAtHCxx);
-				Game_Flag_Set(kFlagMcCoyAtUGxx);
+				Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
+				Game_Flag_Set(kFlagMcCoyInUnderground);
 				Game_Flag_Set(kFlagHC03TrapDoorOpen);
 				Music_Stop(2);
 				Set_Enter(kSetUG02, kSceneUG02);
diff --git a/engines/bladerunner/script/scene/hc04.cpp b/engines/bladerunner/script/scene/hc04.cpp
index 35965ea..224aa11 100644
--- a/engines/bladerunner/script/scene/hc04.cpp
+++ b/engines/bladerunner/script/scene/hc04.cpp
@@ -87,11 +87,11 @@ bool SceneScriptHC04::ClickedOnActor(int actorId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -155.0f, 0.0f, -475.0f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorIsabella, true);
 			Actor_Face_Actor(kActorIsabella, kActorMcCoy, true);
-			if (!Game_Flag_Query(kFlagIsabellaIntroduced)) {
+			if (!Game_Flag_Query(kFlagHC04IsabellaTalk)) {
 				Actor_Says(kActorIsabella, 0, kAnimationModeTalk);
 				Actor_Says(kActorMcCoy, 1280, kAnimationModeTalk);
 				Actor_Says(kActorIsabella, 20, kAnimationModeTalk);
-				Game_Flag_Set(kFlagIsabellaIntroduced);
+				Game_Flag_Set(kFlagHC04IsabellaTalk);
 				return true;
 			} else {
 				dialogueWithIsabella();
@@ -111,8 +111,8 @@ bool SceneScriptHC04::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.14f, -639.0f, 0, true, false, 0)) {
 			Music_Stop(2);
 			Game_Flag_Set(kFlagHC04toRC03);
-			Game_Flag_Reset(kFlagMcCoyAtHCxx);
-			Game_Flag_Set(kFlagMcCoyAtRCxx);
+			Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
+			Game_Flag_Set(kFlagMcCoyInRunciters);
 			Set_Enter(kSetRC03, kSceneRC03);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index 25f663c..5bb9dce 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -191,79 +191,79 @@ bool SceneScriptHF01::ClickedOnExit(int exitId) {
 	}
 	if (exitId == 3) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -260.0f, 0, true, false, 0)) {
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
-			Game_Flag_Reset(kFlagMcCoyAtHFxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+			Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
 			int spinnerDest = Spinner_Interface_Choose_Dest(3, false);
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			default:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -300.0f, 0, true, false, 0);
 				break;
 			}
diff --git a/engines/bladerunner/script/scene/hf05.cpp b/engines/bladerunner/script/scene/hf05.cpp
index 9815c91..4838c27 100644
--- a/engines/bladerunner/script/scene/hf05.cpp
+++ b/engines/bladerunner/script/scene/hf05.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 void SceneScriptHF05::InitializeScene() {
 	if (Game_Flag_Query(530)) {
 		Setup_Scene_Information(257.0f, 40.63f, 402.0f, 1000);
-	} else if (Game_Flag_Query(358)) {
+	} else if (Game_Flag_Query(kFlagHF07toHF05)) {
 		Setup_Scene_Information(330.0f, 40.63f, -107.0f, 603);
 	} else {
 		Setup_Scene_Information(483.0f, 40.63f, -189.0f, 600);
@@ -162,13 +162,13 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
 			if (!Game_Flag_Query(684)) {
 				int affectionTowardsActor = getAffectionTowardsActor();
 				if (Game_Flag_Query(663)
-				&& Game_Flag_Query(368)
-				&& affectionTowardsActor != -1
+				 && Game_Flag_Query(368)
+				 && affectionTowardsActor != -1
 				) {
 					Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
 					Actor_Says(kActorMcCoy, 1810, 16);
 				}
-				Game_Flag_Set(359);
+				Game_Flag_Set(kFlagHF05toHF07);
 				Set_Enter(kSetHF07, kSceneHF07);
 			}
 		}
@@ -255,7 +255,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
 				Async_Actor_Walk_To_Waypoint(affectionTowardsActor, 437, 36, 0);
 			} else if (Game_Flag_Query(530)) {
 				Actor_Set_At_XYZ(affectionTowardsActor, 288.0f, 40.63f, 410.0f, 909);
-			} else if (Game_Flag_Query(358)) {
+			} else if (Game_Flag_Query(kFlagHF07toHF05)) {
 				Actor_Set_At_XYZ(affectionTowardsActor, 298.0f, 40.63f, -107.0f, 512);
 			} else {
 				Actor_Set_At_XYZ(affectionTowardsActor, 284.0f, 40.63f, 286.0f, 0);
@@ -281,7 +281,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
 		}
 	} else if (Game_Flag_Query(kFlagHF01toHF05)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, 0, false, 0);
-	} else if (Game_Flag_Query(358)) {
+	} else if (Game_Flag_Query(kFlagHF07toHF05)) {
 		Actor_Set_At_XYZ(kActorMcCoy, 346.0f, 4.63f, -151.0f, 603);
 		Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
 	}
@@ -298,7 +298,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
 	}
 	Game_Flag_Reset(kFlagHF01toHF05);
 	Game_Flag_Reset(530);
-	Game_Flag_Reset(358);
+	Game_Flag_Reset(kFlagHF07toHF05);
 
 	//return false;
 }
diff --git a/engines/bladerunner/script/scene/hf07.cpp b/engines/bladerunner/script/scene/hf07.cpp
index 14da5c2..1eb8867 100644
--- a/engines/bladerunner/script/scene/hf07.cpp
+++ b/engines/bladerunner/script/scene/hf07.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 void SceneScriptHF07::InitializeScene() {
-	if (Game_Flag_Query(361) ) {
+	if (Game_Flag_Query(kFlagUG06toHF07) ) {
 		Setup_Scene_Information(-84.0f, 58.43f, -105.0f, 524);
 	} else {
 		Setup_Scene_Information(298.0f, 58.43f, -71.0f, 700);
@@ -74,7 +74,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
 			Async_Actor_Walk_To_XYZ(kActorLucy, 235.0f, 58.43f, -100.0f, 0, false);
 		}
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 318.0f, 71.43f, -102.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(358);
+			Game_Flag_Set(kFlagHF07toHF05);
 			if (!Game_Flag_Query(662)) {
 				Actor_Face_Heading(kActorMcCoy, 0, false);
 				Footstep_Sound_Override_On(3);
@@ -96,7 +96,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -84.0f, 58.43f, -105.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(360);
+			Game_Flag_Set(kFlagHF07toUG06);
 			Set_Enter(kSetUG05, kSceneUG05);
 		}
 		return true;
@@ -119,20 +119,20 @@ void SceneScriptHF07::PlayerWalkedIn() {
 		int actorId = getAffectionTowardsActor();
 		if (Game_Flag_Query(662) && actorId != -1) {
 			Actor_Put_In_Set(actorId, kSetHF07);
-			if (Game_Flag_Query(361)) {
+			if (Game_Flag_Query(kFlagUG06toHF07)) {
 				Actor_Set_At_XYZ(actorId, -73.0f, 58.43f, -7.0f, 224);
 			} else {
 				Actor_Set_At_XYZ(actorId, 235.0f, 58.43f, -100.0f, 512);
 			}
 		}
-	} else if (Game_Flag_Query(359)) {
+	} else if (Game_Flag_Query(kFlagHF05toHF07)) {
 		Actor_Set_At_XYZ(kActorMcCoy, 267.72f, 329.43f, -86.75f, 940);
 		Footstep_Sound_Override_On(3);
 		Loop_Actor_Travel_Stairs(kActorMcCoy, 30, false, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 	}
-	Game_Flag_Reset(359);
-	Game_Flag_Reset(361);
+	Game_Flag_Reset(kFlagHF05toHF07);
+	Game_Flag_Reset(kFlagUG06toHF07);
 }
 
 void SceneScriptHF07::PlayerWalkedOut() {
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index c459481..566edeb 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -118,74 +118,74 @@ bool SceneScriptMA01::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 381.0f, 0.0f, 54.0f, 0, 1, false, 0)) {
 			Player_Loses_Control();
 			Actor_Face_Heading(kActorMcCoy, 736, false);
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Reset(kFlagMcCoyAtTBxx);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
 			int spinnerDest = Spinner_Interface_Choose_Dest(kMA01LoopOutDoorAnim, false);
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtMA01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
@@ -194,7 +194,7 @@ bool SceneScriptMA01::ClickedOnExit(int exitId) {
 			default:
 				Actor_Set_Invisible(kActorMcCoy, false);
 				Actor_Face_Heading(kActorMcCoy, 736, false);
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				break;
 			}
 		}
diff --git a/engines/bladerunner/script/scene/ma02.cpp b/engines/bladerunner/script/scene/ma02.cpp
index edaae51..5fa1e66 100644
--- a/engines/bladerunner/script/scene/ma02.cpp
+++ b/engines/bladerunner/script/scene/ma02.cpp
@@ -246,10 +246,14 @@ void SceneScriptMA02::selectNextTvNews() {
 	if (Global_Variable_Query(kVariableChapter) >= 3) {
 		arr[i++] = 2;
 	}
-	if (Global_Variable_Query(kVariableChapter) >= 2 && Global_Variable_Query(kVariableChapter) <= 4) {
+	if (Global_Variable_Query(kVariableChapter) >= 2
+	 && Global_Variable_Query(kVariableChapter) <= 4
+	) {
 		arr[i++] = 3;
 	}
-	if (Game_Flag_Query(kFlagHomelessBodyFound) && Game_Flag_Query(kFlagHomelessBodyInDumpster)) {
+	if (Game_Flag_Query(kFlagCT04HomelessBodyFound)
+	 && Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
+	) {
 		arr[i++] = 4;
 	}
 	Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]);
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index 0484e69..6ebdae5 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -50,7 +50,7 @@ void SceneScriptMA04::InitializeScene() {
 		}
 	} else if (Game_Flag_Query(kFlagMA02ToMA04)) {
 		Setup_Scene_Information(-7099.0f, 954.0f, 1866.0f, 502);
-	} else if (Game_Flag_Query(kFlagMcCoySleeping)) {
+	} else if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
 		Setup_Scene_Information(-7107.0f, 954.0f, 1742.0f, 502);
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA04LoopWakeup, false);
 	} else {
@@ -189,7 +189,7 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
 				Music_Play(2, 52, 0, 3, -1, 0, 0);
 				return false;
 			}
-			if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagPhoneMessageFromClovis)) {
+			if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagMA04PhoneMessageFromClovis)) {
 				Sound_Play(123, 100, 0, 0, 50);
 				Overlay_Remove("MA04OVER");
 				Delay(500);
@@ -202,10 +202,10 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
 				}
 				Actor_Says(kActorMcCoy, 2445, 13);
 				Sound_Play(123, 100, 0, 0, 50);
-				Game_Flag_Set(kFlagPhoneMessageFromClovis);
+				Game_Flag_Set(kFlagMA04PhoneMessageFromClovis);
 				return true;
 			}
-			if (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagPhoneMessageFromLucy)) {
+			if (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagMA04PhoneMessageFromLucy)) {
 				Sound_Play(123, 100, 0, 0, 50);
 				Overlay_Remove("MA04OVER");
 				Delay(500);
@@ -218,7 +218,7 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
 				}
 				Actor_Says(kActorMcCoy, 2445, 13);
 				Sound_Play(123, 100, 0, 0, 50);
-				Game_Flag_Set(kFlagPhoneMessageFromLucy);
+				Game_Flag_Set(kFlagMA04PhoneMessageFromLucy);
 				return true;
 			}
 			Actor_Says(kActorMcCoy, 2670, 13);
@@ -240,7 +240,7 @@ void SceneScriptMA04::SceneFrameAdvanced(int frame) {
 	} else {
 		Set_Fade_Density(0.0f);
 	}
-	if (frame == 121 && (Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && !Game_Flag_Query(kFlagGuzzaTalkZubenRetired)) {
+	if (frame == 121 && (Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenRetired)) {
 		Sound_Play(403, 50, 0, 0, 50);
 	}
 }
@@ -249,20 +249,20 @@ void SceneScriptMA04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptMA04::PlayerWalkedIn() {
-	if (Game_Flag_Query(kFlagMcCoySleeping)) {
+	if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
 		Player_Gains_Control();
 	}
 	if (isPhoneMessageWaiting() || isPhoneRinging()) {
 		Overlay_Play("MA04OVER", 0, 1, 0, 0);
 	}
-	if (Game_Flag_Query(kFlagMcCoySleeping)) {
+	if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7139.0f, 954.0f, 1746.0f, 0, true, false, 0);
 	} else if (Game_Flag_Query(kFlagMA02ToMA04)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7143.0f, 954.0f, 1868.0f, 0, true, false, 0);
 	}
 	Game_Flag_Reset(kFlagMA02ToMA04);
 	Game_Flag_Reset(kFlagMA05toMA04);
-	Game_Flag_Reset(kFlagMcCoySleeping);
+	Game_Flag_Reset(kFlagMA04McCoySleeping);
 	if (Game_Flag_Query(kFlagChapter1Ended)) {
 		if (Global_Variable_Query(kVariableChapter) == 2 && !Actor_Clue_Query(kActorMcCoy, kCluePhoneCallGuzza)) {
 			Sound_Play(403, 100, 0, 0, 50);
@@ -286,8 +286,8 @@ void SceneScriptMA04::PlayerWalkedIn() {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhoneCallGuzza, false, kActorGuzza);
 			Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationTyrellBuilding, true);
 			Game_Flag_Set(kFlagRC01PoliceDone);
-			if (!Game_Flag_Query(kFlagChromeDebrisTaken)) {
-				Game_Flag_Set(kFlagChromeDebrisTaken);
+			if (!Game_Flag_Query(kFlagRC01ChromeDebrisTaken)) {
+				Game_Flag_Set(kFlagRC01ChromeDebrisTaken);
 				Item_Remove_From_World(kItemChromeDebris);
 			}
 			Actor_Set_Goal_Number(kActorOfficerLeary, 99);
@@ -338,8 +338,8 @@ bool SceneScriptMA04::isPhoneRinging() {
 }
 
 bool SceneScriptMA04::isPhoneMessageWaiting() {
-	return (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagPhoneMessageFromClovis))
-	    || (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagPhoneMessageFromLucy));
+	return (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagMA04PhoneMessageFromClovis))
+	    || (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagMA04PhoneMessageFromLucy));
 }
 
 void SceneScriptMA04::phoneCallWithDektora() {
@@ -562,7 +562,7 @@ void SceneScriptMA04::sleep() {
 			Overlay_Remove("MA04OVER");
 		}
 		Player_Loses_Control();
-		Game_Flag_Set(kFlagMcCoySleeping);
+		Game_Flag_Set(kFlagMA04McCoySleeping);
 		if ((Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && Global_Variable_Query(kVariableChapter) == 1) {
 			if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDead) {
 				Actor_Put_In_Set(kActorZuben, kSetFreeSlotA);
diff --git a/engines/bladerunner/script/scene/ma07.cpp b/engines/bladerunner/script/scene/ma07.cpp
index b7b91d9..7016918 100644
--- a/engines/bladerunner/script/scene/ma07.cpp
+++ b/engines/bladerunner/script/scene/ma07.cpp
@@ -25,22 +25,24 @@
 namespace BladeRunner {
 
 void SceneScriptMA07::InitializeScene() {
-	if (Game_Flag_Query(356)) {
-		Setup_Scene_Information(6.75f, -172.43f, 356.0f, 997);
-		Game_Flag_Reset(356);
+	if (Game_Flag_Query(kFlagUG19toMA07)) {
+		Setup_Scene_Information(  6.75f, -172.43f, 356.0f, 997);
+		Game_Flag_Reset(kFlagUG19toMA07);
 		Game_Flag_Set(665);
-	} else if (Game_Flag_Query(673)) {
-		Setup_Scene_Information(-312.0f, -162.8f, 180.0f, 0);
+	} else if (Game_Flag_Query(kFlagPS14toMA07)) {
+		Setup_Scene_Information(-312.0f,  -162.8f, 180.0f,   0);
 	} else {
-		Setup_Scene_Information(104.0f, -162.16f, 56.0f, 519);
+		Setup_Scene_Information( 104.0f, -162.16f,  56.0f, 519);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
-	Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	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);
+	Ambient_Sounds_Add_Sound(374, 100, 300, 16,  25, 0, 0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 68,  60, 180, 16,  25, 0, 0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 69,  60, 180, 16,  25, 0, 0, -101, -101, 0, 0);
+	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) > 1) {
 		Scene_Exit_Add_2D_Exit(1, 0, 200, 50, 479, 3);
 	}
@@ -72,8 +74,10 @@ bool SceneScriptMA07::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptMA07::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 104.0f, -162.0f, 56.0f, 12, 1, false, 0)) {
-			if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 104.0f, -162.0f, 56.0f, 12, true, false, 0)) {
+			if (Global_Variable_Query(kVariableChapter) == 4
+			 && Game_Flag_Query(671)
+			) {
 				Actor_Set_Goal_Number(kActorMcCoy, 400);
 			} else {
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -84,22 +88,24 @@ bool SceneScriptMA07::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, -162.8f, 185.08f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, -162.8f, 185.08f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(672);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Set(kFlagMcCoyAtPSxx);
+			Game_Flag_Set(kFlagMA07toPS14);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Set(kFlagMcCoyInPoliceStation);
 			Set_Enter(kSetPS14, kScenePS14);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 8.0f, -172.43f, 356.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 8.0f, -172.43f, 356.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(357);
+			Game_Flag_Set(kFlagMA07toUG19);
 			Set_Enter(kSetUG19, kSceneUG19);
 		}
 		return true;
@@ -121,9 +127,9 @@ void SceneScriptMA07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptMA07::PlayerWalkedIn() {
-	if (Game_Flag_Query(673)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -268.0f, -162.8f, 188.0f, 0, 0, false, 0);
-		Game_Flag_Reset(673);
+	if (Game_Flag_Query(kFlagPS14toMA07)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -268.0f, -162.8f, 188.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagPS14toMA07);
 	}
 	if (Actor_Query_Goal_Number(kActorRachael) == 300) {
 		Actor_Set_Goal_Number(kActorRachael, 305);
@@ -131,7 +137,10 @@ void SceneScriptMA07::PlayerWalkedIn() {
 	if (Game_Flag_Query(kFlagMA06toMA07)) {
 		Game_Flag_Reset(kFlagMA06toMA07);
 	}
-	if (!Game_Flag_Query(648) && Game_Flag_Query(671) && Global_Variable_Query(kVariableChapter) == 4) {
+	if (!Game_Flag_Query(648)
+	 &&  Game_Flag_Query(671)
+	 &&  Global_Variable_Query(kVariableChapter) == 4
+	) {
 		Scene_Exits_Disable();
 		Actor_Set_Goal_Number(kActorGaff, 300);
 	}
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 9708d18..8823c12 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -28,20 +28,21 @@ void SceneScriptNR01::InitializeScene() {
 	if (Game_Flag_Query(617)) {
 		Setup_Scene_Information(-153.86f, 23.88f, -570.21f, 402);
 	} else if (Game_Flag_Query(632)) {
-		Setup_Scene_Information(-416.0f, 31.93f, -841.0f, 200);
+		Setup_Scene_Information( -416.0f, 31.93f,  -841.0f, 200);
 		Actor_Set_Invisible(kActorMcCoy, true);
 		Preload(167);
 	} else if (Game_Flag_Query(534)) {
-		Setup_Scene_Information(-416.0f, 31.93f, -841.0f, 200);
-	} else if (Game_Flag_Query(342)) {
-		Setup_Scene_Information(-270.0f, 4.93f, -1096.0f, 500);
+		Setup_Scene_Information( -416.0f, 31.93f,  -841.0f, 200);
+	} else if (Game_Flag_Query(kFlagUG06toNR01)) {
+		Setup_Scene_Information( -270.0f,  4.93f, -1096.0f, 500);
 	} else if (Game_Flag_Query(533)) {
-		Setup_Scene_Information(312.0f, 31.66f, -901.0f, 700);
+		Setup_Scene_Information(  312.0f, 31.66f,  -901.0f, 700);
 	} else if (Game_Flag_Query(545)) {
-		Setup_Scene_Information(-170.0f, 24.0f, -574.0f, 768);
+		Setup_Scene_Information( -170.0f,  24.0f,  -574.0f, 768);
 	} else {
-		Setup_Scene_Information(76.0f, 23.88f, -109.0f, 966);
+		Setup_Scene_Information(   76.0f, 23.88f,  -109.0f, 966);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 31, 270, 97, 373, 3);
 	if (Global_Variable_Query(kVariableChapter) > 3) {
 		Scene_Exit_Add_2D_Exit(1, 201, 320, 276, 357, 2);
@@ -50,32 +51,40 @@ void SceneScriptNR01::InitializeScene() {
 	if (Game_Flag_Query(kFlagSpinnerAtNR01)) {
 		Scene_Exit_Add_2D_Exit(3, 320, 445, 639, 479, 2);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(362, 22, 55, 1);
-	Ambient_Sounds_Add_Sound(361, 10, 10, 20, 20, -70, -70, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(182, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(184, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(185, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(186, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(188, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(189, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(192, 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);
-	Ambient_Sounds_Add_Sound(68, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(69, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(375, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(376, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(377, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
-	if (Game_Flag_Query(643) && Actor_Query_Goal_Number(kActorSteele) == 230) {
+	Ambient_Sounds_Add_Sound(361, 10, 10, 20, 20,  -70, -70, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(182,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(184,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(185,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(186,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(188,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(189,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(191,  5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(192,  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);
+	Ambient_Sounds_Add_Sound( 68, 10, 80, 16, 25,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 69, 10, 80, 16, 25,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(375, 10, 80, 33, 33,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(376, 10, 80, 33, 33,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(377, 10, 80, 33, 33,    0,   0, -101, -101, 0, 0);
+
+	if (Game_Flag_Query(643)
+	 && Actor_Query_Goal_Number(kActorSteele) == 230
+	) {
 		Game_Flag_Reset(kFlagSpinnerAtNR01);
 		Game_Flag_Reset(kFlagSpinnerAtHF01);
 	}
-	if (Game_Flag_Query(kFlagSpinnerAtNR01) && !Game_Flag_Query(kFlagArrivedFromSpinner1)) {
+	if ( Game_Flag_Query(kFlagSpinnerAtNR01)
+	 && !Game_Flag_Query(kFlagArrivedFromSpinner1)
+	) {
 		Scene_Loop_Start_Special(0, 0, 0);
 		Scene_Loop_Set_Default(1);
 		Game_Flag_Set(kFlagArrivedFromSpinner1);
-	} else if (Game_Flag_Query(kFlagSpinnerAtNR01) && Game_Flag_Query(kFlagArrivedFromSpinner1)) {
+	} else if (Game_Flag_Query(kFlagSpinnerAtNR01)
+	        && Game_Flag_Query(kFlagArrivedFromSpinner1)
+	) {
 		Scene_Loop_Set_Default(1);
 	} else {
 		Scene_Loop_Set_Default(4);
@@ -127,7 +136,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(343);
+			Game_Flag_Set(kFlagNR01toUG06);
 			Set_Enter(kSetUG06, kSceneUG06);
 		}
 		return true;
@@ -143,17 +152,17 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 	}
 	if (exitId == 3) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 108.0f, 23.88f, -93.0f, 0, true, false, 0)) {
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
-			Game_Flag_Reset(kFlagMcCoyAtHFxx);
-			Game_Flag_Reset(kFlagMcCoyAtTBxx);
-			Game_Flag_Reset(kFlagMcCoyAtNRxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+			Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
+			Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
+			Game_Flag_Reset(kFlagMcCoyInNightclubRow);
 			switch (Spinner_Interface_Choose_Dest(-1, true)) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
@@ -161,7 +170,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
@@ -169,7 +178,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
@@ -177,7 +186,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
@@ -185,7 +194,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
@@ -193,7 +202,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
@@ -201,7 +210,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
@@ -209,7 +218,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
@@ -217,7 +226,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
@@ -225,7 +234,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				break;
 			default:
 				Player_Loses_Control();
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Set(kFlagArrivedFromSpinner1);
 				Player_Gains_Control();
 				break;
@@ -308,16 +317,16 @@ void SceneScriptNR01::PlayerWalkedIn() {
 		return;
 	}
 	if (Game_Flag_Query(534)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -380.0f, 31.73f, -841.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -380.0f, 31.73f, -841.0f, 0, false, false, 0);
 		Game_Flag_Reset(534);
 	} else {
-		if (Game_Flag_Query(342)) {
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle);
-			Game_Flag_Reset(342);
+		if (Game_Flag_Query(kFlagUG06toNR01)) {
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
+			Game_Flag_Reset(kFlagUG06toNR01);
 			if (Actor_Query_Goal_Number(kActorSteele) == 230) {
 				Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
 				Actor_Says(kActorSteele, 1440, 13);
-				Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, 0, true);
+				Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, false, true);
 				Actor_Says(kActorMcCoy, 3145, 13);
 				if (Global_Variable_Query(40) != 3) {
 					Actor_Says(kActorSteele, 1450, 12);
@@ -418,7 +427,12 @@ void SceneScriptNR01::PlayerWalkedIn() {
 void SceneScriptNR01::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (!Game_Flag_Query(343) && !Game_Flag_Query(532) && !Game_Flag_Query(535) && !Game_Flag_Query(632) && !Game_Flag_Query(722)) {
+	if (!Game_Flag_Query(kFlagNR01toUG06)
+	 && !Game_Flag_Query(532)
+	 && !Game_Flag_Query(535)
+	 && !Game_Flag_Query(632)
+	 && !Game_Flag_Query(722)
+	) {
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Outtake_Play(kOuttakeAway1, true, -1);
@@ -428,7 +442,11 @@ void SceneScriptNR01::PlayerWalkedOut() {
 }
 
 void SceneScriptNR01::DialogueQueueFlushed(int a1) {
-	if (Actor_Query_Goal_Number(kActorSteele) == 251 && Actor_Query_Goal_Number(kActorGordo) != 299 && Actor_Query_Goal_Number(kActorGordo) != 254 && Actor_Query_Goal_Number(kActorGordo) != 255) {
+	if (Actor_Query_Goal_Number(kActorSteele) == 251
+	 && Actor_Query_Goal_Number(kActorGordo) != 299
+	 && Actor_Query_Goal_Number(kActorGordo) != 254
+	 && Actor_Query_Goal_Number(kActorGordo) != 255
+	) {
 		Actor_Set_Goal_Number(kActorSteele, 252);
 	}
 }
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index d6332fe..05250e8 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -152,7 +152,7 @@ bool SceneScriptNR04::ClickedOn2DRegion(int region) {
 		if (Game_Flag_Query(606) == 1) {
 			return true;
 		}
-		if (Game_Flag_Query(374)) {
+		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Player_Loses_Control();
 			Actor_Voice_Over(4180, kActorVoiceOver);
 			Actor_Change_Animation_Mode(kActorMcCoy, 48);
@@ -260,7 +260,7 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptNR04::PlayerWalkedIn() {
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 53.0f, 0.0f, -26.0f, 0, 0, false, 0);
-	if (Game_Flag_Query(374)) {
+	if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 		Overlay_Play("nr04over", 0, 1, 0, 0);
 		Delay(4000);
 		Overlay_Remove("nr04over");
diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp
index 34c7583..bafa4a5 100644
--- a/engines/bladerunner/script/scene/ps01.cpp
+++ b/engines/bladerunner/script/scene/ps01.cpp
@@ -87,74 +87,74 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1877.9f, 16592.0f, -2975.0f, 0, true, false, 0)) {
 			Actor_Set_At_XYZ(kActorMcCoy, 1872.0f, 16592.0f, -2975.0f, 870);
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Reset(kFlagMcCoyAtARxx);
-			Game_Flag_Reset(kFlagMcCoyAtTBxx);
-			Game_Flag_Reset(kFlagMcCoyAtDRxx);
-			Game_Flag_Reset(kFlagMcCoyAtBBxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
+			Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
+			Game_Flag_Reset(kFlagMcCoyInDNARow);
+			Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
 			int spinnerDest = Spinner_Interface_Choose_Dest(3, true);
 			switch (spinnerDest) {
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
-				Game_Flag_Set(kFlagMcCoyAtRCxx);
+				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
 				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
@@ -162,7 +162,7 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
 				break;
 			default:
 				Actor_Face_Heading(kActorMcCoy, 870, false);
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Set(kFlagArrivedFromSpinner2);
 				Player_Loses_Control();
 				Scene_Loop_Start_Special(2, 3, 1);
diff --git a/engines/bladerunner/script/scene/ps04.cpp b/engines/bladerunner/script/scene/ps04.cpp
index 510d596..bab6ce5 100644
--- a/engines/bladerunner/script/scene/ps04.cpp
+++ b/engines/bladerunner/script/scene/ps04.cpp
@@ -152,7 +152,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5); // HOLDEN'S BADGE
 		}
 	}
-	if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+	if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 		DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1); // CONFESS TO SHOOTING
 	}
 	DM_Add_To_List(130, 1, 1, 1); // REPORT IN
@@ -192,7 +192,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
 
 	case 130: // REPORT IN
 		if ( Game_Flag_Query(kFlagZubenRetired)
-		 && !Game_Flag_Query(kFlagGuzzaTalkZubenRetired)
+		 && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenRetired)
 		) {
 			Actor_Says(kActorMcCoy, 3920, 13);
 			Actor_Says(kActorGuzza, 140, 30);
@@ -220,13 +220,13 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			Actor_Says(kActorGuzza, 250, 34);
 			Actor_Says(kActorGuzza, 260, 33);
 			Actor_Says(kActorGuzza, 270, 32);
-			Game_Flag_Set(kFlagGuzzaTalkZubenRetired);
+			Game_Flag_Set(kFlagPS04GuzzaTalkZubenRetired);
 			if (Query_Difficulty_Level() != 0) {
 				Global_Variable_Increment(kVariableChinyen, 200);
 			}
 			Game_Flag_Set(kFlagZubenBountyPaid);
 		} else if ( Game_Flag_Query(kFlagZubenSpared)
-		        && !Game_Flag_Query(kFlagGuzzaTalkZubenEscaped)
+		        && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenEscaped)
 		) {
 			Actor_Says(kActorMcCoy, 3955, 13);
 			Actor_Says(kActorGuzza, 280, 30);
@@ -236,14 +236,14 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			Actor_Says(kActorMcCoy, 3965, 13);
 			Actor_Says(kActorGuzza, 310, 33);
 			Actor_Says(kActorGuzza, 320, 34);
-			Game_Flag_Set(kFlagGuzzaTalkZubenEscaped);
+			Game_Flag_Set(kFlagPS04GuzzaTalkZubenEscaped);
 		} else if (
 		 (   Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
 		  || Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
 		 )
 		 &&  Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA)
 		 &&  Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) < 50
-		 && !Game_Flag_Query(kFlagGuzzaTalk1)
+		 && !Game_Flag_Query(kFlagPS04GuzzaTalk1)
 		) {
 			Actor_Says(kActorMcCoy, 3970, 18);
 			Actor_Says(kActorGuzza, 330, 30);
@@ -258,18 +258,18 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			Actor_Says(kActorMcCoy, 3985, 18);
 			Actor_Says(kActorGuzza, 400, 34);
 			Actor_Says(kActorGuzza, 410, 31);
-			Game_Flag_Set(kFlagGuzzaTalk1);
+			Game_Flag_Set(kFlagPS04GuzzaTalk1);
 		} else if (
 		 (   Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
 		  || Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
 		 )
 		 &&  Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA)
-		 && !Game_Flag_Query(kFlagGuzzaTalk2)
+		 && !Game_Flag_Query(kFlagPS04GuzzaTalk2)
 		) {
 			Actor_Says(kActorMcCoy, 3920, 13);
 			Actor_Says(kActorGuzza, 570, 32);
 			Actor_Says(kActorMcCoy, 4070, 13);
-			Game_Flag_Set(kFlagGuzzaTalk2);
+			Game_Flag_Set(kFlagPS04GuzzaTalk2);
 		} else if (Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) >= 50) {
 			Actor_Says(kActorMcCoy, 4020, 13);
 			Actor_Says(kActorGuzza, 580, 34);
diff --git a/engines/bladerunner/script/scene/ps05.cpp b/engines/bladerunner/script/scene/ps05.cpp
index 91fda95..e3261c4 100644
--- a/engines/bladerunner/script/scene/ps05.cpp
+++ b/engines/bladerunner/script/scene/ps05.cpp
@@ -174,7 +174,7 @@ void SceneScriptPS05::selectNextTvNews() {
 	if (Global_Variable_Query(kVariableChapter) >= 2 && Global_Variable_Query(kVariableChapter) <= 4) {
 		arr[i++] = 3;
 	}
-	if (Game_Flag_Query(kFlagHomelessBodyFound) && Game_Flag_Query(kFlagHomelessBodyInDumpster)) {
+	if (Game_Flag_Query(kFlagCT04HomelessBodyFound) && Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)) {
 		arr[i++] = 4;
 	}
 	Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]);
diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp
index 4d15adb..86c8eaa 100644
--- a/engines/bladerunner/script/scene/ps07.cpp
+++ b/engines/bladerunner/script/scene/ps07.cpp
@@ -69,11 +69,11 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 		Actor_Face_Actor(kActorMcCoy, kActorKlein, true);
 		Actor_Set_Goal_Number(kActorKlein, 3);
 
-		if (!Game_Flag_Query(kFlagKleinTalkClues)) {
+		if (!Game_Flag_Query(kFlagPS07KleinTalkClues)) {
 			Actor_Says(kActorMcCoy, 4115, 13);
 		}
 
-		if (!Game_Flag_Query(kFlagKleinTalkClues)
+		if (!Game_Flag_Query(kFlagPS07KleinTalkClues)
 		 && (Game_Flag_Query(kFlagMcCoyHasShellCasings)
 		  || Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
 		  || Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
@@ -82,17 +82,17 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 		) {
 			Actor_Face_Actor(kActorKlein, kActorMcCoy, true);
 			Actor_Says(kActorKlein, 30, 12);
-			Game_Flag_Set(kFlagKleinTalkClues);
+			Game_Flag_Set(kFlagPS07KleinTalkClues);
 		} else {
-			if (Game_Flag_Query(kFlagKleinTalkClues)) {
+			if (Game_Flag_Query(kFlagPS07KleinTalkClues)) {
 				Actor_Says(kActorMcCoy, 4130, 18);
 			}
 		}
 
 		if ( Game_Flag_Query(kFlagMcCoyHasShellCasings)
-		 && !Game_Flag_Query(kFlagKleinTalkShellCasings)
+		 && !Game_Flag_Query(kFlagPS07KleinTalkShellCasings)
 		) {
-			Game_Flag_Set(kFlagKleinTalkShellCasings);
+			Game_Flag_Set(kFlagPS07KleinTalkShellCasings);
 			Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein);
 			Actor_Says(kActorKlein, 50, 16);
 			Actor_Says(kActorMcCoy, 4135, 13);
@@ -106,9 +106,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 		}
 
 		if ( Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
-		 && !Game_Flag_Query(kFlagKleinTalkOfficersStatement)
+		 && !Game_Flag_Query(kFlagPS07KleinTalkOfficersStatement)
 		) {
-			Game_Flag_Set(kFlagKleinTalkOfficersStatement);
+			Game_Flag_Set(kFlagPS07KleinTalkOfficersStatement);
 			Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein);
 			Actor_Says(kActorKlein, 100, 13);
 			Actor_Says(kActorMcCoy, 4145, 13);
@@ -129,9 +129,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 		}
 
 		if ( Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
-		 && !Game_Flag_Query(kFlagKleinTalkPaintTransfer)
+		 && !Game_Flag_Query(kFlagPS07KleinTalkPaintTransfer)
 		) {
-			Game_Flag_Set(kFlagKleinTalkPaintTransfer);
+			Game_Flag_Set(kFlagPS07KleinTalkPaintTransfer);
 			Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein);
 			Actor_Says(kActorKlein, 170, 14);
 			Actor_Says(kActorMcCoy, 4180, 13);
@@ -146,9 +146,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
 		}
 
 		if ( Game_Flag_Query(kFlagMcCoyHasChromeDebris)
-		 && !Game_Flag_Query(kFlagKleinTalkChromeDebris)
+		 && !Game_Flag_Query(kFlagPS07KleinTalkChromeDebris)
 		) {
-			Game_Flag_Set(kFlagKleinTalkChromeDebris);
+			Game_Flag_Set(kFlagPS07KleinTalkChromeDebris);
 			Actor_Says(kActorKlein, 220, 12);
 			Actor_Says(kActorMcCoy, 4190, 13);
 			Actor_Says(kActorKlein, 230, 14);
@@ -194,7 +194,7 @@ void SceneScriptPS07::PlayerWalkedIn() {
 }
 
 void SceneScriptPS07::PlayerWalkedOut() {
-	if (!Game_Flag_Query(kFlagKleinInsulted) && Global_Variable_Query(kVariableChapter) == 1) {
+	if (!Game_Flag_Query(kFlagPS07KleinInsulted) && Global_Variable_Query(kVariableChapter) == 1) {
 		Actor_Set_Goal_Number(kActorKlein, 0);
 	}
 }
diff --git a/engines/bladerunner/script/scene/ps14.cpp b/engines/bladerunner/script/scene/ps14.cpp
index 2d1bb42..44b57cb 100644
--- a/engines/bladerunner/script/scene/ps14.cpp
+++ b/engines/bladerunner/script/scene/ps14.cpp
@@ -29,17 +29,19 @@ void SceneScriptPS14::InitializeScene() {
 		Setup_Scene_Information(-1119.61f, 508.14f, -1208.22f, 315);
 		Game_Flag_Reset(kFlagPS03toPS14);
 	} else {
-		Setup_Scene_Information(-785.45f, 508.14f, -1652.0f, 315);
+		Setup_Scene_Information( -785.45f, 508.14f,  -1652.0f, 315);
 	}
-	Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
-	Scene_Exit_Add_2D_Exit(1, 46, 51, 125, 192, 0);
+
+	Scene_Exit_Add_2D_Exit(0, 610,  0, 639, 479, 1);
+	Scene_Exit_Add_2D_Exit(1,  46, 51, 125, 192, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
-	Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
-	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);
+	Ambient_Sounds_Add_Sound(374, 100, 300, 16,  25, 0, 0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 68,  60, 180, 16,  25, 0, 0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 69,  60, 180, 16,  25, 0, 0, -101, -101, 0, 0);
+	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);
 }
 
 void SceneScriptPS14::SceneLoaded() {
@@ -69,8 +71,10 @@ 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, kAnimationModeIdle);
-			if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671)) {
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
+			if (Global_Variable_Query(kVariableChapter) == 4
+			 && Game_Flag_Query(671)
+			) {
 				if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) {
 					Game_Flag_Set(666);
 					Actor_Set_Goal_Number(kActorMcCoy, 400);
@@ -88,11 +92,12 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -785.45f, 508.14f, -1652.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(673);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
-			Game_Flag_Set(kFlagMcCoyAtMAxx);
+			Game_Flag_Set(kFlagPS14toMA07);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+			Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 			Set_Enter(kSetMA07, kSceneMA07);
 		}
 		return true;
@@ -111,9 +116,9 @@ void SceneScriptPS14::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptPS14::PlayerWalkedIn() {
-	if (Game_Flag_Query(672)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -801.45f, 508.14f, -1596.68f, 0, 0, false, 0);
-		Game_Flag_Reset(672);
+	if (Game_Flag_Query(kFlagMA07toPS14)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -801.45f, 508.14f, -1596.68f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagMA07toPS14);
 	}
 	//return false;
 }
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index 03df5b0..9467f16 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -227,7 +227,7 @@ void SceneScriptRC01::SceneLoaded() {
 		Preload(589);
 	}
 
-	if (!Game_Flag_Query(kFlagChromeDebrisTaken)) {
+	if (!Game_Flag_Query(kFlagRC01ChromeDebrisTaken)) {
 		Item_Add_To_World(kItemChromeDebris, 938, kSetRC01, -148.60f, -0.30f, 225.15f, 256, 24, 24, false, true, false, true);
 	}
 
@@ -314,15 +314,15 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
 			if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyRC01WalkToCrowd) {
 				Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault);
 			}
-			if (Game_Flag_Query(kFlagGotOfficersStatement)) {
+			if (Game_Flag_Query(kFlagRC01GotOfficersStatement)) {
 				Actor_Says(kActorMcCoy, 4535, 13);
-				Game_Flag_Set(KFlagMcCoyAndOfficerLearyTalking);
+				Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking);
 				if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewA)) {
 					Actor_Face_Object(kActorOfficerLeary, "70_1", true);
 					Actor_Says(kActorOfficerLeary, 100, 15);
 					Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
 					Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewA, true, kActorOfficerLeary);
-					Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking);
+					Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
 				} else if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) {
 					Actor_Face_Object(kActorOfficerLeary, "70_5", true);
 					Actor_Says(kActorOfficerLeary, 120, 19);
@@ -330,24 +330,24 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
 					Actor_Says(kActorOfficerLeary, 130, 14);
 					I_Sez("JM: Did it have a huge, ugly piece of chrome on it?");
 					Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewB, true, kActorOfficerLeary);
-					Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking);
+					Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
 				} else {
 					Actor_Says(kActorOfficerLeary, 90, 16);
 					I_Sez("JM: This officer has a talent for vivid metaphors.");
-					if (!Game_Flag_Query(KFlagMcCoyAndOfficerLearyArtMetaphor)) {
+					if (!Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyArtMetaphor)) {
 						I_Sez("DL: What is that supposed to mean?  I didn't write this line...");
 						Actor_Says(kActorMcCoy, 4540, 16);
-						Game_Flag_Set(KFlagMcCoyAndOfficerLearyArtMetaphor);
+						Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyArtMetaphor);
 					}
-					Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking);
+					Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
 				}
 			} else {
 				I_Sez("MG: Hey, leave that officer alone. Can't you see he's busy?");
 				I_Sez("JM: (...mmm, donuts...)");
-				Game_Flag_Set(kFlagGotOfficersStatement);
+				Game_Flag_Set(kFlagRC01GotOfficersStatement);
 				Actor_Clue_Acquire(kActorMcCoy, kClueOfficersStatement, true, kActorOfficerLeary);
 				Actor_Says(kActorMcCoy, 4515, 13);
-				Game_Flag_Set(KFlagMcCoyAndOfficerLearyTalking);
+				Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking);
 				Actor_Says(kActorOfficerLeary, 40, 13);
 				if (!Game_Flag_Query(kFlagRC02Entered)) {
 					Actor_Says(kActorOfficerLeary, 50, 14);
@@ -359,7 +359,7 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
 					Actor_Says(kActorOfficerLeary, 80, 18);
 					Actor_Says(kActorMcCoy, 4530, 15);
 				}
-				Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking);
+				Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
 			}
 		}
 		return true;
@@ -375,7 +375,7 @@ bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) {
 			Actor_Clue_Acquire(kActorMcCoy, kClueChromeDebris, true, -1);
 			Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
 			Actor_Says(kActorOfficerLeary, 20, 12);
-			Game_Flag_Set(kFlagChromeDebrisTaken);
+			Game_Flag_Set(kFlagRC01ChromeDebrisTaken);
 			Item_Remove_From_World(kItemChromeDebris);
 			Item_Pickup_Spin_Effect(938, 426, 316);
 			I_Sez("JM: Chrome...is that what that is?");
@@ -395,7 +395,7 @@ bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) {
 
 void SceneScriptRC01::walkToCenter() {
 	Player_Loses_Control();
-	Game_Flag_Set(kFlagMcCoyAtRCxx);
+	Game_Flag_Set(kFlagMcCoyInRunciters);
 	Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.98f, -0.3f, 318.15f, 0, 0, false, 0);
 	Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
@@ -426,6 +426,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == kRC01ExitSpinner) {
 		if (Game_Flag_Query(kFlagDNARowAvailable)) {
 			Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true);
@@ -447,10 +448,10 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 			}
 			Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
 			Player_Gains_Control();
-			Game_Flag_Reset(kFlagMcCoyAtCTxx);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Reset(kFlagMcCoyAtMAxx);
-			Game_Flag_Reset(kFlagMcCoyAtPSxx);
+			Game_Flag_Reset(kFlagMcCoyInChinaTown);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+			Game_Flag_Reset(kFlagMcCoyInPoliceStation);
 			int spinnerDest;
 			if (Game_Flag_Query(kFlagRC01PoliceDone)) {
 				spinnerDest = Spinner_Interface_Choose_Dest(kRC01LoopDoorAnimNoCrowd, true);
@@ -460,7 +461,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 
 			switch (spinnerDest) {
 			case kSpinnerDestinationPoliceStation:
-				Game_Flag_Set(kFlagMcCoyAtPSxx);
+				Game_Flag_Set(kFlagMcCoyInPoliceStation);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
@@ -471,7 +472,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationMcCoysApartment:
-				Game_Flag_Set(kFlagMcCoyAtMAxx);
+				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
@@ -482,7 +483,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationChinatown:
-				Game_Flag_Set(kFlagMcCoyAtCTxx);
+				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
@@ -493,7 +494,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationTyrellBuilding:
-				Game_Flag_Set(kFlagMcCoyAtTBxx);
+				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
@@ -504,7 +505,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationAnimoidRow:
-				Game_Flag_Set(kFlagMcCoyAtARxx);
+				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
@@ -515,7 +516,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationDNARow:
-				Game_Flag_Set(kFlagMcCoyAtDRxx);
+				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
@@ -526,7 +527,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationBradburyBuilding:
-				Game_Flag_Set(kFlagMcCoyAtBBxx);
+				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
@@ -537,7 +538,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationNightclubRow:
-				Game_Flag_Set(kFlagMcCoyAtNRxx);
+				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
@@ -548,7 +549,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 				}
 				break;
 			case kSpinnerDestinationHysteriaHall:
-				Game_Flag_Set(kFlagMcCoyAtHFxx);
+				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtRC01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
@@ -565,6 +566,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
 		}
 		return true;
 	}
+
 	if (exitId == kRC01ExitRC03) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -471.98f, -0.3f, 258.15f, 4, true, false, 0)) {
 			Game_Flag_Set(kFlagRC01toRC03);
@@ -645,11 +647,13 @@ void SceneScriptRC01::PlayerWalkedIn() {
 		Player_Gains_Control();
 		Game_Flag_Reset(kFlagRC02toRC01);
 
-		if (Game_Flag_Query(kFlagRC02Entered) && !Game_Flag_Query(kFlagRC02FirstLeave)) {
+		if ( Game_Flag_Query(kFlagRC02Entered)
+		 && !Game_Flag_Query(kFlagRC02Left)
+		) {
 			Actor_Voice_Over(1910, kActorVoiceOver);
 			Actor_Voice_Over(1920, kActorVoiceOver);
 			Actor_Voice_Over(1930, kActorVoiceOver);
-			Game_Flag_Set(kFlagRC02FirstLeave);
+			Game_Flag_Set(kFlagRC02Left);
 		}
 		//return true;
 	}
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index a5ad0ab..a84fe99 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -84,7 +84,7 @@ void SceneScriptRC02::SceneLoaded() {
 	if (Actor_Clue_Query(kActorMcCoy, kClueRuncitersVideo) || Global_Variable_Query(kVariableChapter) > 1) {
 		Unclickable_Object("SCRTY CA03");
 	}
-	if (!Game_Flag_Query(kFlagShellCasingsTaken)) {
+	if (!Game_Flag_Query(kFlagRC02ShellCasingsTaken)) {
 		Item_Add_To_World(kItemShellCasingA, 966, kSetRC02_RC51, -52.88f, -1238.89f, 108467.74f, 256, 6, 6, false, true, false, true);
 		Item_Add_To_World(kItemShellCasingB, 966, kSetRC02_RC51, -37.16f, -1238.89f, 108456.59f, 512, 6, 6, false, true, false, true);
 		Item_Add_To_World(kItemShellCasingC, 966, kSetRC02_RC51, -62.86f, -1238.89f, 108437.52f, 625, 6, 6, false, true, false, true);
@@ -259,7 +259,7 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) {
 		AI_Movement_Track_Pause(kActorRunciter);
 		Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorRunciter, 48, true, false);
 		Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
-		if (!Game_Flag_Query(kFlagRunciterInterviewA)) {
+		if (!Game_Flag_Query(kFlagRC02RunciterInterview)) {
 			Actor_Says(kActorMcCoy, 4560, 13);
 			Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
 			Actor_Says(kActorRunciter, 40, 16);
@@ -268,7 +268,7 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) {
 			Actor_Says(kActorRunciter, 60, 14);
 			Actor_Says(kActorMcCoy, 4570, 18);
 			Actor_Says(kActorRunciter, 70, 13);
-			Game_Flag_Set(kFlagRunciterInterviewA);
+			Game_Flag_Set(kFlagRC02RunciterInterview);
 			Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewA, true, kActorRunciter);
 			AI_Movement_Track_Unpause(kActorRunciter);
 			return true;
@@ -321,7 +321,7 @@ bool SceneScriptRC02::ClickedOnItem(int itemId, bool a2) {
 		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemShellCasingA, 24, true, false)) {
 			Actor_Face_Item(kActorMcCoy, kItemShellCasingA, true);
 			Actor_Clue_Acquire(kActorMcCoy, kClueShellCasings, true, -1);
-			Game_Flag_Set(kFlagShellCasingsTaken);
+			Game_Flag_Set(kFlagRC02ShellCasingsTaken);
 			Item_Remove_From_World(kItemShellCasingA);
 			Item_Remove_From_World(kItemShellCasingB);
 			Item_Remove_From_World(kItemShellCasingC);
@@ -384,7 +384,7 @@ void SceneScriptRC02::PlayerWalkedIn() {
 		if (Actor_Query_Which_Set_In(kActorRunciter) == kSetRC02_RC51
 		 && Actor_Query_Goal_Number(kActorRunciter) < kGoalRunciterAtShop
 		) {
-			Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterWalkAround);
+			Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterWalkAroundRC02);
 		}
 		if ( Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterAtShop
 		 && !Game_Flag_Query(704)
diff --git a/engines/bladerunner/script/scene/rc03.cpp b/engines/bladerunner/script/scene/rc03.cpp
index 8668be8..28fbe7c 100644
--- a/engines/bladerunner/script/scene/rc03.cpp
+++ b/engines/bladerunner/script/scene/rc03.cpp
@@ -147,7 +147,7 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 			}
 			Game_Flag_Set(kFlagRC03toRC01);
 			Set_Enter(kSetRC01, kSceneRC01);
-			Actor_Set_Goal_Number(kActorDektora, 100);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		}
 		return true;
 	}
@@ -157,8 +157,8 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Game_Flag_Set(kFlagRC03toAR02);
-			Game_Flag_Reset(kFlagMcCoyAtRCxx);
-			Game_Flag_Set(kFlagMcCoyAtARxx);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 			Set_Enter(kSetAR01_AR02, kSceneAR02);
 		}
 		return true;
@@ -166,26 +166,26 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
 	if (exitId == 2) {
 		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);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Set(kFlagMcCoyInUnderground);
 			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
 				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Set_Enter(kSetUG01, kSceneUG01);
-			Actor_Set_Goal_Number(kActorDektora, 100);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		}
 		return true;
 	}
 	if (exitId == 3) {
 		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(kFlagMcCoyAtHCxx);
+			Game_Flag_Reset(kFlagMcCoyInRunciters);
+			Game_Flag_Set(kFlagMcCoyInHawkersCircle);
 			if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
 				Game_Flag_Set(kFlagRC04Locked);
 			}
 			Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC04);
-			Actor_Set_Goal_Number(kActorDektora, 100);
+			Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
 		}
 		return true;
 	}
@@ -297,7 +297,7 @@ void SceneScriptRC03::PlayerWalkedIn() {
 	if (Global_Variable_Query(kVariableChapter) == 1
 	 || Global_Variable_Query(kVariableChapter) == 2
 	) {
-		Actor_Set_Goal_Number(kActorDektora, 103);
+		Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStopWalkingAround);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index 47b243d..f8e30f0 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -47,13 +47,13 @@ void SceneScriptRC51::SceneLoaded() {
 	Unclickable_Object("GRL_DSK");
 	Unclickable_Object("GRL_DSKLEG");
 	Unclickable_Object("CURTAIN");
-	if (!Game_Flag_Query(kFlagChopstickWrapperTaken)) {
+	if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)) {
 		Item_Add_To_World(kItemChopstickWrapper, 937, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true);
 	}
-	if (!Game_Flag_Query(kFlagCandyTaken)) {
+	if (!Game_Flag_Query(kFlagRC51CandyTaken)) {
 		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(kFlagToyDogTaken)) {
+	if (!Game_Flag_Query(kFlagRC51ToyDogTaken)) {
 		Item_Add_To_World(kItemToyDog, 971, kSetRC02_RC51, -69.65f, -1238.89f, 107995.24f, 256, 18, 18, false, true, false, true);
 	}
 }
@@ -83,7 +83,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
 			Item_Remove_From_World(kItemChopstickWrapper);
 			Item_Pickup_Spin_Effect(937, 437, 407);
 			Actor_Voice_Over(2010, kActorVoiceOver);
-			Game_Flag_Set(kFlagChopstickWrapperTaken);
+			Game_Flag_Set(kFlagRC51ChopstickWrapperTaken);
 			return true;
 		}
 	}
@@ -96,7 +96,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
 			Item_Pickup_Spin_Effect(933, 445, 230);
 			Actor_Says(kActorMcCoy, 8735, 3);
 			Actor_Says(kActorMcCoy, 8529, 3);
-			Game_Flag_Set(kFlagCandyTaken);
+			Game_Flag_Set(kFlagRC51CandyTaken);
 			return true;
 		}
 	}
@@ -109,7 +109,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
 			Item_Pickup_Spin_Effect(971, 55, 376);
 			Actor_Says(kActorMcCoy, 8525, 3);
 			Actor_Says(kActorMcCoy, 8740, 3);
-			Game_Flag_Set(kFlagToyDogTaken);
+			Game_Flag_Set(kFlagRC51ToyDogTaken);
 			return true;
 		}
 	}
diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp
index ac6f613..d82ef22 100644
--- a/engines/bladerunner/script/scene/tb02.cpp
+++ b/engines/bladerunner/script/scene/tb02.cpp
@@ -194,71 +194,71 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
 			if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
 				Actor_Set_Goal_Number(kActorTyrellGuard, 301);
 			} else {
-				Game_Flag_Reset(kFlagMcCoyAtCTxx);
-				Game_Flag_Reset(kFlagMcCoyAtRCxx);
-				Game_Flag_Reset(kFlagMcCoyAtMAxx);
-				Game_Flag_Reset(kFlagMcCoyAtPSxx);
-				Game_Flag_Reset(kFlagMcCoyAtBBxx);
-				Game_Flag_Reset(kFlagMcCoyAtHFxx);
-				Game_Flag_Reset(kFlagMcCoyAtTBxx);
+				Game_Flag_Reset(kFlagMcCoyInChinaTown);
+				Game_Flag_Reset(kFlagMcCoyInRunciters);
+				Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+				Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+				Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+				Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
+				Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagTB02ElevatorToTB05);
 				switch (Spinner_Interface_Choose_Dest(-1, false)) {
 				case kSpinnerDestinationPoliceStation:
-					Game_Flag_Set(kFlagMcCoyAtPSxx);
+					Game_Flag_Set(kFlagMcCoyInPoliceStation);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtPS01);
 					Set_Enter(kSetPS01, kScenePS01);
 					break;
 				case kSpinnerDestinationMcCoysApartment:
-					Game_Flag_Set(kFlagMcCoyAtMAxx);
+					Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtMA01);
 					Set_Enter(kSetMA01, kSceneMA01);
 					break;
 				case kSpinnerDestinationRuncitersAnimals:
-					Game_Flag_Set(kFlagMcCoyAtRCxx);
+					Game_Flag_Set(kFlagMcCoyInRunciters);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtRC01);
 					Set_Enter(kSetRC01, kSceneRC01);
 					break;
 				case kSpinnerDestinationChinatown:
-					Game_Flag_Set(kFlagMcCoyAtCTxx);
+					Game_Flag_Set(kFlagMcCoyInChinaTown);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtCT01);
 					Set_Enter(kSetCT01_CT12, kSceneCT01);
 					break;
 				case kSpinnerDestinationAnimoidRow:
-					Game_Flag_Set(kFlagMcCoyAtARxx);
+					Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtAR01);
 					Set_Enter(kSetAR01_AR02, kSceneAR01);
 					break;
 				case kSpinnerDestinationDNARow:
-					Game_Flag_Set(kFlagMcCoyAtDRxx);
+					Game_Flag_Set(kFlagMcCoyInDNARow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtDR01);
 					Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 					break;
 				case kSpinnerDestinationBradburyBuilding:
-					Game_Flag_Set(kFlagMcCoyAtBBxx);
+					Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtBB01);
 					Set_Enter(kSetBB01, kSceneBB01);
 					break;
 				case kSpinnerDestinationNightclubRow:
-					Game_Flag_Set(kFlagMcCoyAtNRxx);
+					Game_Flag_Set(kFlagMcCoyInNightclubRow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtNR01);
 					Set_Enter(kSetNR01, kSceneNR01);
 					break;
 				case kSpinnerDestinationHysteriaHall:
-					Game_Flag_Set(kFlagMcCoyAtHFxx);
+					Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtHF01);
 					Set_Enter(kSetHF01, kSceneHF01);
 					break;
 				default:
-					Game_Flag_Set(kFlagMcCoyAtTBxx);
+					Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 					break;
 				}
 			}
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index 145aa45..cc14203 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -24,9 +24,17 @@
 
 namespace BladeRunner {
 
+enum kTB07Loops {
+	kTB07LoopMain          = 0,
+	kTB07LoopShadeDrop     = 2,
+	kTB07LoopMainShadeDown = 3
+};
+
 void SceneScriptTB07::InitializeScene() {
 	Setup_Scene_Information(68.0f, 12.0f, 288.0f, 0);
+
 	Scene_Exit_Add_2D_Exit(0, 383, 445, 639, 479, 2);
+
 	Ambient_Sounds_Add_Looping_Sound(109, 20, 0, 1);
 	Ambient_Sounds_Add_Sound(363, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(364, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0);
@@ -37,13 +45,16 @@ void SceneScriptTB07::InitializeScene() {
 	Ambient_Sounds_Add_Sound(214, 1, 20, 20, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(215, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(216, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0);
-	if (Global_Variable_Query(kVariableChapter) == 4 && !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)) {
-		Item_Add_To_World(83, 941, 18, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
+
+	if ( Global_Variable_Query(kVariableChapter) == 4
+	 && !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
+	) {
+		Item_Add_To_World(83, 941, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
 	}
-	if (Game_Flag_Query(661)) {
-		Scene_Loop_Set_Default(3);
+	if (Game_Flag_Query(kFlagTB07ShadeDown)) {
+		Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
 	} else {
-		Scene_Loop_Set_Default(0);
+		Scene_Loop_Set_Default(kTB07LoopMain);
 	}
 }
 
@@ -85,71 +96,71 @@ bool SceneScriptTB07::ClickedOnExit(int exitId) {
 				Game_Flag_Set(kFlagTB07toTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
 			} else {
-				Game_Flag_Reset(kFlagMcCoyAtCTxx);
-				Game_Flag_Reset(kFlagMcCoyAtRCxx);
-				Game_Flag_Reset(kFlagMcCoyAtMAxx);
-				Game_Flag_Reset(kFlagMcCoyAtPSxx);
-				Game_Flag_Reset(kFlagMcCoyAtBBxx);
-				Game_Flag_Reset(kFlagMcCoyAtHFxx);
-				Game_Flag_Reset(kFlagMcCoyAtTBxx);
+				Game_Flag_Reset(kFlagMcCoyInChinaTown);
+				Game_Flag_Reset(kFlagMcCoyInRunciters);
+				Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
+				Game_Flag_Reset(kFlagMcCoyInPoliceStation);
+				Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
+				Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
+				Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagTB02ElevatorToTB05);
 				switch (Spinner_Interface_Choose_Dest(-1, false)) {
 				case kSpinnerDestinationPoliceStation:
-					Game_Flag_Set(kFlagMcCoyAtPSxx);
+					Game_Flag_Set(kFlagMcCoyInPoliceStation);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtPS01);
 					Set_Enter(kSetPS01, kScenePS01);
 					break;
 				case kSpinnerDestinationMcCoysApartment:
-					Game_Flag_Set(kFlagMcCoyAtMAxx);
+					Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtMA01);
 					Set_Enter(kSetMA01, kSceneMA01);
 					break;
 				case kSpinnerDestinationRuncitersAnimals:
-					Game_Flag_Set(kFlagMcCoyAtRCxx);
+					Game_Flag_Set(kFlagMcCoyInRunciters);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtRC01);
 					Set_Enter(kSetRC01, kSceneRC01);
 					break;
 				case kSpinnerDestinationChinatown:
-					Game_Flag_Set(kFlagMcCoyAtCTxx);
+					Game_Flag_Set(kFlagMcCoyInChinaTown);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtCT01);
 					Set_Enter(kSetCT01_CT12, kSceneCT01);
 					break;
 				case kSpinnerDestinationAnimoidRow:
-					Game_Flag_Set(kFlagMcCoyAtARxx);
+					Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtAR01);
 					Set_Enter(kSetAR01_AR02, kSceneAR01);
 					break;
 				case kSpinnerDestinationDNARow:
-					Game_Flag_Set(kFlagMcCoyAtDRxx);
+					Game_Flag_Set(kFlagMcCoyInDNARow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtDR01);
 					Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
 					break;
 				case kSpinnerDestinationBradburyBuilding:
-					Game_Flag_Set(kFlagMcCoyAtBBxx);
+					Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtBB01);
 					Set_Enter(kSetBB01, kSceneBB01);
 					break;
 				case kSpinnerDestinationNightclubRow:
-					Game_Flag_Set(kFlagMcCoyAtNRxx);
+					Game_Flag_Set(kFlagMcCoyInNightclubRow);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtNR01);
 					Set_Enter(kSetNR01, kSceneNR01);
 					break;
 				case kSpinnerDestinationHysteriaHall:
-					Game_Flag_Set(kFlagMcCoyAtHFxx);
+					Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 					Game_Flag_Reset(kFlagSpinnerAtTB02);
 					Game_Flag_Set(kFlagSpinnerAtHF01);
 					Set_Enter(kSetHF01, kSceneHF01);
 					break;
 				default:
-					Game_Flag_Set(kFlagMcCoyAtTBxx);
+					Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 					Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
 					break;
 				}
@@ -175,11 +186,15 @@ void SceneScriptTB07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptTB07::PlayerWalkedIn() {
-	int v0 = Global_Variable_Query(kVariableChapter);
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, 0, false, 0);
-	if ((v0 == 2 || v0 == 3) && !Game_Flag_Query(612)) {
+	int chapter = Global_Variable_Query(kVariableChapter);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
+	if ((chapter == 2
+	  || chapter == 3
+	 )
+	 && !Game_Flag_Query(kFlagTB07RachaelTalk)
+	) {
 		Player_Set_Combat_Mode(false);
-		sub_401B0C();
+		McCoyTalkWithRachaelAndTyrell();
 	}
 }
 
@@ -189,17 +204,17 @@ void SceneScriptTB07::PlayerWalkedOut() {
 void SceneScriptTB07::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptTB07::sub_401B0C() {
-	Game_Flag_Set(612);
+void SceneScriptTB07::McCoyTalkWithRachaelAndTyrell() {
+	Game_Flag_Set(kFlagTB07RachaelTalk);
 	Delay(1500);
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.98f, 12.0f, 49.79f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.98f, 12.0f, 49.79f, 0, false, false, 0);
 	Actor_Face_Heading(kActorMcCoy, 178, true);
 	Delay(3000);
 	Actor_Put_In_Set(kActorRachael, kSetTB07);
 	Actor_Set_At_XYZ(kActorRachael, -260.15f, 12.0f, -19.16f, 256);
 	Actor_Change_Animation_Mode(kActorRachael, 0);
 	Outtake_Play(kOuttakeRachel, true, -1);
-	Loop_Actor_Walk_To_XYZ(kActorRachael, -146.15f, 12.0f, -5.84f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorRachael, -146.15f, 12.0f, -5.84f, 0, false, false, 0);
 	Actor_Face_Actor(kActorRachael, kActorMcCoy, true);
 	Actor_Says(kActorRachael, 480, 14);
 	Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
@@ -209,7 +224,7 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Says(kActorMcCoy, 5320, 15);
 	Actor_Says_With_Pause(kActorMcCoy, 5325, 1.0f, 19);
 	Actor_Start_Speech_Sample(kActorRachael, 500);
-	Loop_Actor_Walk_To_XYZ(kActorRachael, -60.15f, 12.0f, 60.84f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorRachael, -60.15f, 12.0f, 60.84f, 0, false, false, 0);
 	Actor_Face_Actor(kActorRachael, kActorMcCoy, true);
 	Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
 	Actor_Says(kActorMcCoy, 5330, 14);
@@ -218,7 +233,7 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Says(kActorRachael, 520, 17);
 	Actor_Says(kActorMcCoy, 5340, 3);
 	Actor_Start_Speech_Sample(kActorRachael, 530);
-	Loop_Actor_Walk_To_XYZ(kActorRachael, -4.15f, 12.0f, 54.73f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorRachael, -4.15f, 12.0f, 54.73f, 0, false, false, 0);
 	Actor_Says(kActorRachael, 540, 16);
 	Actor_Says(kActorMcCoy, 5345, 18);
 	Actor_Says(kActorRachael, 550, 13);
@@ -231,7 +246,7 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Says(kActorMcCoy, 5365, 13);
 	Actor_Says_With_Pause(kActorRachael, 600, 1.0f, 12);
 	Actor_Says(kActorMcCoy, 5370, 3);
-	Loop_Actor_Walk_To_XYZ(kActorRachael, -24.15f, 12.0f, -10.84f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorRachael, -24.15f, 12.0f, -10.84f, 0, false, false, 0);
 	Actor_Says(kActorRachael, 610, 13);
 	Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
 	Actor_Says(kActorMcCoy, 5375, 18);
@@ -253,10 +268,10 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Put_In_Set(kActorTyrell, kSetTB07);
 	Actor_Set_At_XYZ(kActorTyrell, 68.0f, 12.0f, 288.0f, 0);
 	Actor_Change_Animation_Mode(kActorTyrell, 0);
-	Scene_Loop_Set_Default(3);
-	Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, false);
+	Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
+	Scene_Loop_Start_Special(kSceneLoopModeOnce, kTB07LoopShadeDrop, false);
 	Actor_Start_Speech_Sample(kActorTyrell, 0);
-	Loop_Actor_Walk_To_XYZ(kActorTyrell, 44.0f, 12.0f, 176.0f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorTyrell, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
 	Actor_Face_Actor(kActorTyrell, kActorMcCoy, true);
 	Actor_Face_Actor(kActorMcCoy, kActorTyrell, true);
 	Actor_Face_Actor(kActorRachael, kActorTyrell, true);
@@ -267,7 +282,7 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Set_Goal_Number(kActorRachael, 200);
 	Actor_Says(kActorTyrell, 40, 15);
 	Actor_Start_Speech_Sample(kActorTyrell, 50);
-	Loop_Actor_Walk_To_XYZ(kActorTyrell, -10.0f, 12.0f, 100.0f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorTyrell, -10.0f, 12.0f, 100.0f, 0, false, false, 0);
 	Actor_Face_Actor(kActorTyrell, kActorMcCoy, true);
 	Actor_Face_Actor(kActorMcCoy, kActorTyrell, true);
 	Actor_Says(kActorMcCoy, 5430, 17);
@@ -284,7 +299,7 @@ void SceneScriptTB07::sub_401B0C() {
 	Actor_Says(kActorTyrell, 100, 14);
 	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);
+	Loop_Actor_Walk_To_XYZ(kActorTyrell, -260.15f, 12.0f, -19.16f, 0, false, false, 0);
 }
 
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/scene/ug01.cpp b/engines/bladerunner/script/scene/ug01.cpp
index 98e79a5..f1c11fe 100644
--- a/engines/bladerunner/script/scene/ug01.cpp
+++ b/engines/bladerunner/script/scene/ug01.cpp
@@ -115,8 +115,8 @@ bool SceneScriptUG01::ClickedOnExit(int exitId) {
 			Actor_Face_Heading(kActorMcCoy, 768, false);
 			Loop_Actor_Travel_Ladder(kActorMcCoy, 12, true, 0);
 			Game_Flag_Set(kFlagUG01toRC03);
-			Game_Flag_Reset(kFlagMcCoyAtUGxx);
-			Game_Flag_Set(kFlagMcCoyAtRCxx);
+			Game_Flag_Reset(kFlagMcCoyInUnderground);
+			Game_Flag_Set(kFlagMcCoyInRunciters);
 			Set_Enter(kSetRC03, kSceneRC03);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/ug02.cpp b/engines/bladerunner/script/scene/ug02.cpp
index ccea89a4..5ac3fad 100644
--- a/engines/bladerunner/script/scene/ug02.cpp
+++ b/engines/bladerunner/script/scene/ug02.cpp
@@ -68,7 +68,7 @@ void SceneScriptUG02::SceneLoaded() {
 	Footstep_Sounds_Set(0, 0);
 	Footstep_Sounds_Set(8, 2);
 
-	if (!Game_Flag_Query(kFlagRagiationGooglesTaken)
+	if (!Game_Flag_Query(kFlagUG02RagiationGooglesTaken)
 	  && Game_Flag_Query(kFlagIzoIsReplicant)
 	) {
 		Item_Add_To_World(kItemRadiationGoogles, 963, kSetUG02, -300.37f, 120.16f, -81.31f, 0, 8, 8, false, true, false, true);
@@ -153,7 +153,7 @@ bool SceneScriptUG02::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == kItemRadiationGoogles) {
 		Actor_Face_Item(kActorMcCoy, kItemRadiationGoogles, true);
 		Actor_Clue_Acquire(kActorMcCoy, kClueRadiationGoggles, true, -1);
-		Game_Flag_Set(kFlagRagiationGooglesTaken);
+		Game_Flag_Set(kFlagUG02RagiationGooglesTaken);
 		Item_Remove_From_World(kItemRadiationGoogles);
 		Item_Pickup_Spin_Effect(963, 426, 316);
 		return true;
@@ -192,12 +192,12 @@ bool SceneScriptUG02::ClickedOnExit(int exitId) {
 		Actor_Face_Heading(kActorMcCoy, 14, false);
 		Loop_Actor_Travel_Ladder(kActorMcCoy, 9, true, 0);
 		Game_Flag_Set(kFlagUG02toHC03);
-		Game_Flag_Reset(kFlagMcCoyAtUGxx);
-		Game_Flag_Set(kFlagMcCoyAtHCxx);
+		Game_Flag_Reset(kFlagMcCoyInUnderground);
+		Game_Flag_Set(kFlagMcCoyInHawkersCircle);
 		if (!Game_Flag_Query(kFlagHC03CageOpen)) {
 			Game_Flag_Set(kFlagHC03TrapDoorOpen);
 			Game_Flag_Set(kFlagHC03CageOpen);
-			Item_Remove_From_World(kItemHC03Lock);
+			Item_Remove_From_World(kItemGreenPawnLock);
 		}
 		Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC03);
 		return true;
diff --git a/engines/bladerunner/script/scene/ug03.cpp b/engines/bladerunner/script/scene/ug03.cpp
index c9c88e7..a11e768 100644
--- a/engines/bladerunner/script/scene/ug03.cpp
+++ b/engines/bladerunner/script/scene/ug03.cpp
@@ -25,39 +25,40 @@
 namespace BladeRunner {
 
 void SceneScriptUG03::InitializeScene() {
-	if (Game_Flag_Query(335)) {
-		Setup_Scene_Information(-51.0f, 0.03f, 255.0f, 780);
-		Game_Flag_Reset(335);
-	} else if (Game_Flag_Query(337)) {
-		Setup_Scene_Information(-139.0f, 0.03f, -13.0f, 540);
-		Game_Flag_Reset(337);
+	if (Game_Flag_Query(kFlagUG04toUG03)) {
+		Setup_Scene_Information(  -51.0f, 0.03f,  255.0f, 780);
+		Game_Flag_Reset(kFlagUG04toUG03);
+	} else if (Game_Flag_Query(kFlagUG10toUG03)) {
+		Setup_Scene_Information( -139.0f, 0.03f,  -13.0f, 540);
+		Game_Flag_Reset(kFlagUG10toUG03);
 	} else {
 		Setup_Scene_Information(-121.88f, 0.03f, 213.35f, 540);
 	}
-	Scene_Exit_Add_2D_Exit(0, 46, 137, 131, 296, 0);
+	Scene_Exit_Add_2D_Exit(0,  46, 137, 131, 296, 0);
 	Scene_Exit_Add_2D_Exit(1, 559, 141, 639, 380, 1);
+
 	Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
-	Ambient_Sounds_Add_Sound(402, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(370, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(396, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(395, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(391, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(393, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(226, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(402, 2, 120, 10, 11,    0, 100,    0,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(370, 2, 120, 10, 11,    0, 100,    0,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(396, 2, 120, 10, 11,    0, 100,    0,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(395, 2, 120, 10, 11,    0, 100,    0,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(391, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(393, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(226, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptUG03::SceneLoaded() {
@@ -75,15 +76,20 @@ bool SceneScriptUG03::MouseClick(int x, int y) {
 }
 
 bool SceneScriptUG03::ClickedOn3DObject(const char *objectName, bool a2) {
-	if ((Object_Query_Click("CHAIR_BACK", objectName) || Object_Query_Click("CHAIR_SEAT", objectName) || Object_Query_Click("CHAIR_HEADZAPPER", objectName)) && !Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "CHAIR_BACK", 36, true, false)) {
-		Actor_Face_Object(kActorMcCoy, "CHAIR_BACK", true);
-		if (!Actor_Clue_Query(kActorMcCoy, kClueScaryChair)) {
-			Actor_Voice_Over(2550, kActorVoiceOver);
-			Actor_Voice_Over(2560, kActorVoiceOver);
-			Actor_Voice_Over(2570, kActorVoiceOver);
-			Actor_Voice_Over(2580, kActorVoiceOver);
-			Actor_Voice_Over(2590, kActorVoiceOver);
-			Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, true, -1);
+	if (Object_Query_Click("CHAIR_BACK", objectName)
+	 || Object_Query_Click("CHAIR_SEAT", objectName)
+	 || Object_Query_Click("CHAIR_HEADZAPPER", objectName)
+	) {
+		if (!Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "CHAIR_BACK", 36, true, false)) {
+			Actor_Face_Object(kActorMcCoy, "CHAIR_BACK", true);
+			if (!Actor_Clue_Query(kActorMcCoy, kClueScaryChair)) {
+				Actor_Voice_Over(2550, kActorVoiceOver);
+				Actor_Voice_Over(2560, kActorVoiceOver);
+				Actor_Voice_Over(2570, kActorVoiceOver);
+				Actor_Voice_Over(2580, kActorVoiceOver);
+				Actor_Voice_Over(2590, kActorVoiceOver);
+				Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, true, -1);
+			}
 		}
 	}
 	return false;
@@ -99,23 +105,24 @@ bool SceneScriptUG03::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptUG03::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -139.0f, 0.0f, -13.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -139.0f, 0.0f, -13.0f, 0, true, false, 0)) {
 			if (Global_Variable_Query(kVariableChapter) < 4) {
 				Actor_Says(kActorMcCoy, 8522, 14);
 			} else {
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
-				Game_Flag_Set(336);
+				Game_Flag_Set(kFlagUG03toUG10);
 				Set_Enter(kSetUG10, kSceneUG10);
 			}
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -51.0f, 0.0f, 255.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -51.0f, 0.0f, 255.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(334);
+			Game_Flag_Set(kFlagUG03toUG04);
 			Set_Enter(kSetUG04, kSceneUG04);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/ug04.cpp b/engines/bladerunner/script/scene/ug04.cpp
index 7aa0ad1..82da71b 100644
--- a/engines/bladerunner/script/scene/ug04.cpp
+++ b/engines/bladerunner/script/scene/ug04.cpp
@@ -25,37 +25,40 @@
 namespace BladeRunner {
 
 void SceneScriptUG04::InitializeScene() {
-	if (Game_Flag_Query(339)) {
-		Setup_Scene_Information(0.0f, -1.74f, -2400.0f, 496);
-		Game_Flag_Reset(339);
-	} else if (Game_Flag_Query(341)) {
-		Setup_Scene_Information(164.0f, 11.87f, -1013.0f, 83);
+	if (Game_Flag_Query(kFlagUG05toUG04)) {
+		Setup_Scene_Information(   0.0f, -1.74f, -2400.0f, 496);
+		Game_Flag_Reset(kFlagUG05toUG04);
+	} else if (Game_Flag_Query(kFlagUG06toUG04)) {
+		Setup_Scene_Information( 164.0f, 11.87f, -1013.0f,  83);
 	} else {
-		Setup_Scene_Information(-172.0f, 16.29f, -735.0f, 380);
-		Game_Flag_Reset(334);
+		Setup_Scene_Information(-172.0f, 16.29f,  -735.0f, 380);
+		Game_Flag_Reset(kFlagUG03toUG04);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 123, 308, 159, 413, 3);
 	if (Global_Variable_Query(kVariableChapter) > 3) {
 		Scene_Exit_Add_2D_Exit(1, 256, 333, 290, 373, 0);
 	}
 	Scene_Exit_Add_2D_Exit(2, 344, 298, 451, 390, 1);
+
 	Ambient_Sounds_Add_Looping_Sound(331, 25, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
-	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+
 	Scene_Loop_Start_Special(0, 0, 0);
 	Scene_Loop_Set_Default(1);
 }
@@ -86,22 +89,22 @@ bool SceneScriptUG04::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptUG04::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -172.0f, 16.29f, -735.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(335);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -172.0f, 16.29f, -735.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagUG04toUG03);
 			Set_Enter(kSetUG03, kSceneUG03);
 		}
 		return true;
 	}
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.74f, -2400.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(338);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.74f, -2400.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagUG04toUG05);
 			Set_Enter(kSetUG05, kSceneUG05);
 		}
 		return true;
 	}
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 11.87f, -1013.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(340);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 11.87f, -1013.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagUG04toUG06);
 			Set_Enter(kSetUG06, kSceneUG06);
 		}
 		return true;
@@ -123,9 +126,9 @@ void SceneScriptUG04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG04::PlayerWalkedIn() {
-	if (Game_Flag_Query(341)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 60.0f, -1.74f, -976.0f, 6, 0, false, 0);
-		Game_Flag_Reset(341);
+	if (Game_Flag_Query(kFlagUG06toUG04)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 60.0f, -1.74f, -976.0f, 6, false, false, 0);
+		Game_Flag_Reset(kFlagUG06toUG04);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ug05.cpp b/engines/bladerunner/script/scene/ug05.cpp
index 3be09c1..324ef08 100644
--- a/engines/bladerunner/script/scene/ug05.cpp
+++ b/engines/bladerunner/script/scene/ug05.cpp
@@ -25,21 +25,25 @@
 namespace BladeRunner {
 
 void SceneScriptUG05::InitializeScene() {
-	if (Game_Flag_Query(360)) {
-		if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
+	if (Game_Flag_Query(kFlagHF07toUG06)) {
+		if ( Game_Flag_Query(663)
+		 && !Game_Flag_Query(368)
+		) {
 			Setup_Scene_Information(-356.35f, 132.77f, -1092.36f, 389);
 		} else {
 			Setup_Scene_Information(-180.0f, 37.28f, -1124.0f, 296);
 		}
 	} else {
 		Setup_Scene_Information(0.0f, -1.37f, 0.0f, 0);
-		Game_Flag_Reset(338);
+		Game_Flag_Reset(kFlagUG04toUG05);
 	}
 	Scene_Exit_Add_2D_Exit(0, 215, 240, 254, 331, 3);
 	if (!Game_Flag_Query(663)) {
 		Scene_Exit_Add_2D_Exit(1, 303, 422, 639, 479, 2);
 	}
-	if (!Game_Flag_Query(663) || Game_Flag_Query(368)) {
+	if (!Game_Flag_Query(663)
+	 ||  Game_Flag_Query(368)
+	) {
 		Scene_Exit_Add_2D_Exit(2, 352, 256, 393, 344, 0);
 	}
 	Ambient_Sounds_Add_Looping_Sound(105, 28, 0, 1);
@@ -115,19 +119,19 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, 0, false, 0);
-			Game_Flag_Set(361);
+			Game_Flag_Set(kFlagUG06toHF07);
 			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, kAnimationModeIdle);
-			Game_Flag_Set(361);
+			Game_Flag_Set(kFlagUG06toHF07);
 			Set_Enter(kSetHF07, kSceneHF07);
 		}
 		return true;
 	}
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 4.0f, -11.67f, -4.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(339);
+			Game_Flag_Set(kFlagUG05toUG04);
 			Set_Enter(kSetUG04, kSceneUG04);
 		}
 		return true;
@@ -200,7 +204,7 @@ void SceneScriptUG05::PlayerWalkedIn() {
 			}
 		}
 	}
-	if (Game_Flag_Query(360)) {
+	if (Game_Flag_Query(kFlagHF07toUG06)) {
 		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 {
@@ -210,7 +214,7 @@ void SceneScriptUG05::PlayerWalkedIn() {
 	if (Game_Flag_Query(663)) {
 		Game_Flag_Query(368); // bug in game?
 	}
-	Game_Flag_Reset(360);
+	Game_Flag_Reset(kFlagHF07toUG06);
 }
 
 void SceneScriptUG05::PlayerWalkedOut() {
diff --git a/engines/bladerunner/script/scene/ug06.cpp b/engines/bladerunner/script/scene/ug06.cpp
index 8c93eb7..a979c9d 100644
--- a/engines/bladerunner/script/scene/ug06.cpp
+++ b/engines/bladerunner/script/scene/ug06.cpp
@@ -36,33 +36,35 @@ void SceneScriptUG06::InitializeScene() {
 		}
 		Game_Flag_Reset(680);
 	}
-	if (Game_Flag_Query(340)) {
-		Setup_Scene_Information(23.0f, 0.0f, 321.0f, 0);
-	} else if (Game_Flag_Query(343)) {
-		Setup_Scene_Information(66.0f, 153.0f, -301.4f, 512);
+
+	if (Game_Flag_Query(kFlagUG04toUG06)) {
+		Setup_Scene_Information(  23.0f,   0.0f,  321.0f,   0);
+	} else if (Game_Flag_Query(kFlagNR01toUG06)) {
+		Setup_Scene_Information(  66.0f, 153.0f, -301.4f, 512);
 	} else {
-		Setup_Scene_Information(-165.0f, 1.0f, 89.0f, 990);
+		Setup_Scene_Information(-165.0f,   1.0f,   89.0f, 990);
 	}
-	Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
+	Scene_Exit_Add_2D_Exit(0,   0,  0,  30, 479, 3);
 	Scene_Exit_Add_2D_Exit(1, 294, 68, 544, 236, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(288, 18, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
-	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptUG06::SceneLoaded() {
@@ -91,22 +93,23 @@ bool SceneScriptUG06::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptUG06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 321.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 321.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(341);
+			Game_Flag_Set(kFlagUG06toUG04);
 			Set_Enter(kSetUG04, kSceneUG04);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -90.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -90.0f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 0, false);
 			Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 1, kAnimationModeIdle);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 153.0f, -446.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 153.0f, -446.0f, 0, false, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(342);
+			Game_Flag_Set(kFlagUG06toNR01);
 			Set_Enter(kSetNR01, kSceneNR01);
 		}
 		return true;
@@ -125,16 +128,18 @@ void SceneScriptUG06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG06::PlayerWalkedIn() {
-	if (Game_Flag_Query(340)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 273.0f, 0, 0, false, 0);
-		Game_Flag_Reset(340);
+	if (Game_Flag_Query(kFlagUG04toUG06)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 273.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagUG04toUG06);
 	}
-	if (Game_Flag_Query(343)) {
-		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);
+	if (Game_Flag_Query(kFlagNR01toUG06)) {
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 17, false, kAnimationModeIdle);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -36.91f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagNR01toUG06);
 	}
-	if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(524)) {
+	if ( Global_Variable_Query(kVariableChapter) == 4
+	 && !Game_Flag_Query(524)
+	) {
 		Player_Loses_Control();
 		Actor_Voice_Over(2620, kActorVoiceOver);
 		Actor_Voice_Over(2630, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ug09.cpp b/engines/bladerunner/script/scene/ug09.cpp
index 0724ce8..91e493a 100644
--- a/engines/bladerunner/script/scene/ug09.cpp
+++ b/engines/bladerunner/script/scene/ug09.cpp
@@ -145,8 +145,8 @@ void SceneScriptUG09::PlayerWalkedOut() {
 	}
 
 	if (Game_Flag_Query(kFlagUG09toCT12)) {
-		Game_Flag_Set(kFlagMcCoyAtCTxx);
-		Game_Flag_Reset(kFlagMcCoyAtUGxx);
+		Game_Flag_Set(kFlagMcCoyInChinaTown);
+		Game_Flag_Reset(kFlagMcCoyInUnderground);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ug10.cpp b/engines/bladerunner/script/scene/ug10.cpp
index 64e63a6..a33c05f 100644
--- a/engines/bladerunner/script/scene/ug10.cpp
+++ b/engines/bladerunner/script/scene/ug10.cpp
@@ -25,15 +25,15 @@
 namespace BladeRunner {
 
 void SceneScriptUG10::InitializeScene() {
-	if (Game_Flag_Query(336)) {
-		Setup_Scene_Information(-92.0f, 81.33f, -652.0f, 520);
+	if (Game_Flag_Query(kFlagUG03toUG10)) {
+		Setup_Scene_Information(  -92.0f, 81.33f, -652.0f, 520);
 	} else if (Game_Flag_Query(423)) {
 		Game_Flag_Reset(423);
-		Setup_Scene_Information(-385.12f, 1.15f, 57.44f, 400);
-	} else if (Game_Flag_Query(346)) {
-		Setup_Scene_Information(2.5f, 1.15f, 405.0f, 200);
+		Setup_Scene_Information(-385.12f,  1.15f,  57.44f, 400);
+	} else if (Game_Flag_Query(kFlagUG14toUG10)) {
+		Setup_Scene_Information(    2.5f,  1.15f,  405.0f, 200);
 	} else {
-		Setup_Scene_Information(235.0f, 1.15f, 29.0f, 0);
+		Setup_Scene_Information(  235.0f,  1.15f,   29.0f,   0);
 	}
 
 	Scene_Exit_Add_2D_Exit(0, 589, 300, 639, 479, 1);
@@ -78,7 +78,7 @@ void SceneScriptUG10::SceneLoaded() {
 	Obstacle_Object("SLUICEGATE_LEVER", true);
 	if (Global_Variable_Query(kVariableChapter) == 4
 	 && !Game_Flag_Query(kFlagUG10GateOpen)
-	 &&  Game_Flag_Query(kFlagDumpsterEmptied)
+	 &&  Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
 	 && !Game_Flag_Query(kFlagUG03DeadHomeless)
 	) {
 		Scene_Loop_Set_Default(1);
@@ -114,7 +114,7 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
 		 )
 		 || Game_Flag_Query(kFlagUG10GateOpen)
 		) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 235.0f, 1.15f, 29.0f, 0, 1, false, 0)) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 235.0f, 1.15f, 29.0f, 0, true, false, 0)) {
 				Game_Flag_Set(kFlagUG10toUG01);
 				Set_Enter(kSetUG01, kSceneUG01);
 				return true;
@@ -128,11 +128,11 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
 		 )
 		 || Game_Flag_Query(kFlagUG10GateOpen)
 		) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, 1, false, 0)) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, true, false, 0)) {
 				Actor_Face_Heading(kActorMcCoy, 0, false);
 				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);
+				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, 81.83f, -652.0f, 0, false, false, 0);
+				Game_Flag_Set(kFlagUG10toUG03);
 				Set_Enter(kSetUG03, kSceneUG03);
 				return true;
 			}
@@ -145,7 +145,7 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
 		 )
 		 || Game_Flag_Query(kFlagUG10GateOpen)
 		) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -385.0f, 1.15f, 57.44f, 0, 1, false, 0)) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -385.0f, 1.15f, 57.44f, 0, true, false, 0)) {
 				Actor_Face_Heading(kActorMcCoy, 1001, false);
 				Loop_Actor_Travel_Ladder(kActorMcCoy, 1, 1, 0);
 				Game_Flag_Set(424);
@@ -161,8 +161,8 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
 		 )
 		 || Game_Flag_Query(kFlagUG10GateOpen)
 		) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 405.0f, 0, 1, false, 0)) {
-				Game_Flag_Set(347);
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 405.0f, 0, true, false, 0)) {
+				Game_Flag_Set(kFlagUG10toUG14);
 				Set_Enter(kSetUG14, kSceneUG14);
 				return true;
 			}
@@ -228,14 +228,14 @@ void SceneScriptUG10::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG10::PlayerWalkedIn() {
-	if (Game_Flag_Query(346)) {
-		Game_Flag_Reset(346);
+	if (Game_Flag_Query(kFlagUG14toUG10)) {
+		Game_Flag_Reset(kFlagUG14toUG10);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 377.0f, 0, false, false, 0);
 	} else if (Game_Flag_Query(kFlagUG01toUG10)) {
 		Game_Flag_Reset(kFlagUG01toUG10);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 207.0f, 1.15f, 29.0f, 0, false, false, 0);
-	} else if (Game_Flag_Query(336)) {
-		Game_Flag_Reset(336);
+	} else if (Game_Flag_Query(kFlagUG03toUG10)) {
+		Game_Flag_Reset(kFlagUG03toUG10);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 81.33f, -518.8f, 0, false, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 506, false);
 		Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, kAnimationModeIdle);
diff --git a/engines/bladerunner/script/scene/ug12.cpp b/engines/bladerunner/script/scene/ug12.cpp
index f189224..7f92023 100644
--- a/engines/bladerunner/script/scene/ug12.cpp
+++ b/engines/bladerunner/script/scene/ug12.cpp
@@ -29,27 +29,30 @@ void SceneScriptUG12::InitializeScene() {
 		Setup_Scene_Information(207.0f, -126.21f, -364.0f, 561);
 		Game_Flag_Reset(411);
 	} else {
-		Setup_Scene_Information(375.0f, -126.21f, 180.0f, 730);
-		Game_Flag_Reset(345);
+		Setup_Scene_Information(375.0f, -126.21f,  180.0f, 730);
+		Game_Flag_Reset(kFlagUG14toUG12);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 538, 222, 615, 346, 1);
 	if (Game_Flag_Query(373)) {
 		Scene_Exit_Add_2D_Exit(1, 334, 176, 426, 266, 0);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(105, 47, 60, 1);
-	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
-	Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Looping_Sound(332, 40,  0, 1);
+	Ambient_Sounds_Add_Looping_Sound(333, 40,  0, 1);
+	Ambient_Sounds_Add_Sound(291, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(292, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(293, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(294, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(295, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+
 	if (Game_Flag_Query(373)) {
 		Scene_Loop_Set_Default(2);
 	} else {
@@ -83,7 +86,7 @@ bool SceneScriptUG12::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 375.0f, -126.21f, 180.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(344);
+			Game_Flag_Set(kFlagUG12toUG14);
 			Set_Enter(kSetUG14, kSceneUG14);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index 3fb1aaf..e2a7ae9 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -27,17 +27,19 @@ namespace BladeRunner {
 void SceneScriptUG13::InitializeScene() {
 	if (Game_Flag_Query(435)) {
 		Setup_Scene_Information(-477.0f, 141.9f, -870.0f, 378);
-	} else if (Game_Flag_Query(350)) {
-		Setup_Scene_Information(39.0f, 52.94f, -528.0f, 600);
+	} else if (Game_Flag_Query(kFlagUG15toUG13)) {
+		Setup_Scene_Information(  39.0f, 52.94f, -528.0f, 600);
 	} else {
-		Setup_Scene_Information(-22.0f, 54.63f, -883.0f, 578);
+		Setup_Scene_Information( -22.0f, 54.63f, -883.0f, 578);
 		Actor_Set_Invisible(kActorMcCoy, false);
 	}
+
 	if (!Game_Flag_Query(431)) {
 		Scene_Exit_Add_2D_Exit(0, 394, 205, 464, 281, 0);
 	}
 	Scene_Exit_Add_2D_Exit(1, 560, 90, 639, 368, 1);
 	Scene_Exit_Add_2D_Exit(2, 108, 85, 175, 210, 3);
+
 	Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
@@ -46,7 +48,10 @@ void SceneScriptUG13::InitializeScene() {
 	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
 	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
 	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+
+	if ( Global_Variable_Query(kVariableChapter) == 4
+	 && !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
+	) {
 		Actor_Set_Goal_Number(kActorTransient, 390);
 	}
 	if (Actor_Query_Goal_Number(kActorTransient) == 599) {
@@ -74,7 +79,7 @@ void SceneScriptUG13::SceneLoaded() {
 	Unclickable_Object("BASKET");
 	if ( Global_Variable_Query(kVariableChapter) >= 3
 	 && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm)
-	 &&  Game_Flag_Query(kFlagMcCoyKilledHomeless)
+	 &&  Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
 	 &&  (Actor_Clue_Query(kActorMcCoy, kClueShippingForm)
 	  ||  Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
 	 )
@@ -175,7 +180,7 @@ bool SceneScriptUG13::ClickedOnExit(int exitId) {
 	}
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 39.0f, 52.94f, -528.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(351);
+			Game_Flag_Set(kFlagUG13toUG15);
 			Set_Enter(kSetUG15, kSceneUG15);
 		}
 		return true;
@@ -238,15 +243,15 @@ void SceneScriptUG13::PlayerWalkedIn() {
 		Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
 		Game_Flag_Reset(435);
-	} else if (Game_Flag_Query(350)) {
+	} else if (Game_Flag_Query(kFlagUG15toUG13)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, 44.0f, -528.0f, 0, 0, false, 0);
-		Game_Flag_Reset(350);
+		Game_Flag_Reset(kFlagUG15toUG13);
 	} else {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -60.0f, 55.24f, -816.0f, 0, 0, false, 0);
 		Game_Flag_Reset(429);
 		Player_Gains_Control();
 	}
-	if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
+	if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
 		if (Game_Flag_Query(553)) {
 			if (Random_Query(1, 3) == 1) {
 				Actor_Set_Goal_Number(kActorTransient, 395);
diff --git a/engines/bladerunner/script/scene/ug14.cpp b/engines/bladerunner/script/scene/ug14.cpp
index 6e95691..ace4b90 100644
--- a/engines/bladerunner/script/scene/ug14.cpp
+++ b/engines/bladerunner/script/scene/ug14.cpp
@@ -25,32 +25,34 @@
 namespace BladeRunner {
 
 void SceneScriptUG14::InitializeScene() {
-	if (Game_Flag_Query(349)) {
-		Setup_Scene_Information(-278.0f, 12.97f, -152.0f, 200);
-	} else if (Game_Flag_Query(344)) {
-		Setup_Scene_Information(-50.0f, 129.0f, -814.0f, 533);
+	if (Game_Flag_Query(kFlagUG19toUG14)) {
+		Setup_Scene_Information(-278.0f,  12.97f, -152.0f, 200);
+	} else if (Game_Flag_Query(kFlagUG12toUG14)) {
+		Setup_Scene_Information( -50.0f,  129.0f, -814.0f, 533);
 	} else {
-		Setup_Scene_Information(233.0f, 186.04f, -32.0f, 865);
+		Setup_Scene_Information( 233.0f, 186.04f,  -32.0f, 865);
 	}
-	Scene_Exit_Add_2D_Exit(0, 0, 232, 45, 427, 3);
-	Scene_Exit_Add_2D_Exit(1, 175, 44, 228, 115, 0);
-	Scene_Exit_Add_2D_Exit(2, 537, 0, 639, 190, 1);
+
+	Scene_Exit_Add_2D_Exit(0,   0, 232,  45, 427, 3);
+	Scene_Exit_Add_2D_Exit(1, 175,  44, 228, 115, 0);
+	Scene_Exit_Add_2D_Exit(2, 537,   0, 639, 190, 1);
+
 	Ambient_Sounds_Add_Looping_Sound(331, 28, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
-	Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(291, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(292, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(293, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(294, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(295, 2,  20, 20, 25, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptUG14::SceneLoaded() {
@@ -84,36 +86,36 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
 	}
 	if (!exitId) {
 		if (v1) {
-			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, 0, 1, false, 0)) {
+			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, 0, true, false, 0)) {
 				return false;
 			}
 			Actor_Face_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 0, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, false, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(348);
+			Game_Flag_Set(kFlagUG14toUG19);
 			Set_Enter(kSetUG19, kSceneUG19);
 		}
 		return true;
 	}
 	if (exitId == 1) {
 		if (!v1) {
-			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, 1, false, 0)) {
+			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, 0)) {
 				return false;
 			}
 			Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(345);
+			Game_Flag_Set(kFlagUG14toUG12);
 			Set_Enter(kSetCT08_CT51_UG12, kSceneUG12);
 		}
 		return true;
@@ -121,22 +123,22 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
 
 	if (exitId == 2) {
 		if (!v1) {
-			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, 1, false, 0)) {
+			if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, 0)) {
 				return false;
 			}
 			Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
 		}
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, true, false, 0)) {
 			Footstep_Sound_Override_On(3);
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, true, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, false, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(346);
+			Game_Flag_Set(kFlagUG14toUG10);
 			Set_Enter(kSetUG10, kSceneUG10);
 		}
 		return true;
@@ -155,23 +157,26 @@ void SceneScriptUG14::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG14::PlayerWalkedIn() {
-	if (Game_Flag_Query(349)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -250.0f, 12.97f, -152.0f, 0, 0, false, 0);
-		Game_Flag_Reset(349);
-	} else if (Game_Flag_Query(344)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -604.0f, 0, 0, false, 0);
-		Game_Flag_Reset(344);
+	if (Game_Flag_Query(kFlagUG19toUG14)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -250.0f, 12.97f, -152.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagUG19toUG14);
+	} else if (Game_Flag_Query(kFlagUG12toUG14)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -604.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagUG12toUG14);
 	} else {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 186.04f, -44.01f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 186.04f, -44.01f, 0, false, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 10, false);
 		Footstep_Sound_Override_On(3);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 0, kAnimationModeIdle);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 6, false, kAnimationModeIdle);
 		Footstep_Sound_Override_Off();
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -148.01f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -148.01f, 0, false, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 807, false);
-		Game_Flag_Reset(347);
+		Game_Flag_Reset(kFlagUG10toUG14);
 	}
-	if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(kFlagDumpsterEmptied) && !Game_Flag_Query(694)) {
+	if ( Global_Variable_Query(kVariableChapter) == 4
+	 &&  Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
+	 && !Game_Flag_Query(kFlagUG14DeadHomeless)
+	) {
 		Overlay_Play("UG14OVER", 0, 0, 1, 0);
 		Delay(1000);
 		Actor_Face_Heading(kActorMcCoy, 609, false);
@@ -179,7 +184,7 @@ void SceneScriptUG14::PlayerWalkedIn() {
 		Actor_Voice_Over(270, kActorVoiceOver);
 		Delay(2150);
 		Actor_Voice_Over(300, kActorVoiceOver);
-		Game_Flag_Set(694);
+		Game_Flag_Set(kFlagUG14DeadHomeless);
 	}
 	//return false;
 }
diff --git a/engines/bladerunner/script/scene/ug15.cpp b/engines/bladerunner/script/scene/ug15.cpp
index 4743c8d..13408bb 100644
--- a/engines/bladerunner/script/scene/ug15.cpp
+++ b/engines/bladerunner/script/scene/ug15.cpp
@@ -25,57 +25,62 @@
 namespace BladeRunner {
 
 void SceneScriptUG15::InitializeScene() {
-	if (Game_Flag_Query(353)) {
-		Setup_Scene_Information(-25.0f, 26.31f, -434.0f, 520);
-	} else if (Game_Flag_Query(kFlagUG16toUG15)) {
-		Setup_Scene_Information(-17.0f, 26.31f, -346.0f, 711);
-	} else if (Game_Flag_Query(355)) {
-		Setup_Scene_Information(-18.0f, 48.07f, 62.0f, 650);
+	if (Game_Flag_Query(kFlagUG17toUG15)) {
+		Setup_Scene_Information( -25.0f, 26.31f, -434.0f, 520);
+	} else if (Game_Flag_Query(kFlagUG16toUG15a)) {
+		Setup_Scene_Information( -17.0f, 26.31f, -346.0f, 711);
+	} else if (Game_Flag_Query(kFlagUG16toUG15b)) {
+		Setup_Scene_Information( -18.0f, 48.07f,   62.0f, 650);
 	} else {
-		Setup_Scene_Information(-238.0f, 48.07f, 222.0f, 180);
-		if (Game_Flag_Query(676) && Random_Query(1, 10) == 10) {
+		Setup_Scene_Information(-238.0f, 48.07f,  222.0f, 180);
+		if (Game_Flag_Query(676)
+		 && Random_Query(1, 10) == 10
+		) {
 			Game_Flag_Reset(676);
 		}
 	}
 	if (Game_Flag_Query(682)) {
 		Scene_Loop_Set_Default(3);
 	}
-	if (Game_Flag_Query(353) || Game_Flag_Query(kFlagUG16toUG15)) {
-		Scene_Exit_Add_2D_Exit(0, 260, 0, 307, 298, 0);
+
+	if (Game_Flag_Query(kFlagUG17toUG15)
+	 || Game_Flag_Query(kFlagUG16toUG15a)
+	) {
+		Scene_Exit_Add_2D_Exit(0, 260,   0, 307, 298, 0);
 		Scene_Exit_Add_2D_Exit(1, 301, 147, 337, 304, 1);
-		Game_Flag_Reset(353);
-		Game_Flag_Reset(kFlagUG16toUG15);
+		Game_Flag_Reset(kFlagUG17toUG15);
+		Game_Flag_Reset(kFlagUG16toUG15a);
 	} else {
 		Scene_Exit_Add_2D_Exit(2, 406, 128, 480, 316, 1);
-		Scene_Exit_Add_2D_Exit(3, 0, 0, 30, 479, 3);
+		Scene_Exit_Add_2D_Exit(3,   0,   0,  30, 479, 3);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(105, 71, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(95, 45, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound( 95, 45, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
-	Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-
+	Ambient_Sounds_Add_Sound(291, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(292, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(293, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(294, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(295, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(  1, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 57, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 58, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(196, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(197, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(198, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(199, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptUG15::SceneLoaded() {
@@ -107,20 +112,22 @@ bool SceneScriptUG15::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -25.0f, 26.31f, -434.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(352);
+			Game_Flag_Set(kFlagUG15toUG17);
 			Set_Enter(kSetUG17, kSceneUG17);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -17.0f, 26.31f, -346.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(kFlagUG15toUG16);
+			Game_Flag_Set(kFlagUG15toUG16a);
 			Set_Enter(kSetUG16, kSceneUG16);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
 		int v1 = Actor_Query_Goal_Number(kActorFreeSlotA);
 		if (v1 >= 300 && v1 <= 303) {
@@ -128,22 +135,22 @@ bool SceneScriptUG15::ClickedOnExit(int exitId) {
 		} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 18.0f, 52.28f, 46.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(354);
+			Game_Flag_Set(kFlagUG15toUG16b);
 			Set_Enter(kSetUG16, kSceneUG16);
 		}
 		return true;
 	}
+
 	if (exitId == 3) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -238.0f, 52.46f, 222.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(350);
+			Game_Flag_Set(kFlagUG15toUG13);
 			Set_Enter(kSetUG13, kSceneUG13);
 		}
 		return true;
 	}
 	return false;
-
 }
 
 bool SceneScriptUG15::ClickedOn2DRegion(int region) {
@@ -154,7 +161,9 @@ void SceneScriptUG15::SceneFrameAdvanced(int frame) {
 	if (Actor_Query_Goal_Number(kActorFreeSlotA) == 300) {
 		float x, y, z;
 		Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
-		if (-160.0f <= x && z < 220.0f) {
+		if (-160.0f <= x
+		 && z < 220.0f
+		) {
 			Actor_Set_Goal_Number(kActorFreeSlotA, 301);
 		}
 	}
@@ -164,14 +173,19 @@ void SceneScriptUG15::SceneFrameAdvanced(int frame) {
 	if (Game_Flag_Query(677) && !Game_Flag_Query(682)) {
 		float x, y, z;
 		Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
-		if (-180.0f <= x && (z < 220.0f && !Game_Flag_Query(724))) {
+		if (-180.0f <= x
+		 && z < 220.0f
+		 && !Game_Flag_Query(724)
+		) {
 			Game_Flag_Set(724);
 			Game_Flag_Set(682);
 			Scene_Loop_Set_Default(3);
 			Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
 			Actor_Set_Goal_Number(kActorMcCoy, 390);
 			Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z);
-			if (-200.0f < x && -62.0f > x) {
+			if (-200.0f < x
+			 &&  -62.0f > x
+			) {
 				Actor_Set_Goal_Number(kActorFreeSlotA, 309);
 			}
 		}
@@ -183,11 +197,11 @@ void SceneScriptUG15::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG15::PlayerWalkedIn() {
-	if (Game_Flag_Query(355)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -62.0f, 48.07f, 102.0f, 0, 0, false, 0);
-		Game_Flag_Reset(355);
-	} else if (Game_Flag_Query(351)) {
-		Game_Flag_Reset(351);
+	if (Game_Flag_Query(kFlagUG16toUG15b)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -62.0f, 48.07f, 102.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagUG16toUG15b);
+	} else if (Game_Flag_Query(kFlagUG13toUG15)) {
+		Game_Flag_Reset(kFlagUG13toUG15);
 		if (!Game_Flag_Query(676)) {
 			Actor_Set_Goal_Number(kActorFreeSlotA, 310);
 		}
diff --git a/engines/bladerunner/script/scene/ug16.cpp b/engines/bladerunner/script/scene/ug16.cpp
index fbffe9f..858f4d1 100644
--- a/engines/bladerunner/script/scene/ug16.cpp
+++ b/engines/bladerunner/script/scene/ug16.cpp
@@ -28,19 +28,22 @@ void SceneScriptUG16::InitializeScene() {
 	if (Game_Flag_Query(552)) {
 		Setup_Scene_Information(-270.76f, -34.88f, -504.02f, 404);
 		Game_Flag_Reset(552);
-	} else if (Game_Flag_Query(kFlagUG15toUG16)) {
+	} else if (Game_Flag_Query(kFlagUG15toUG16a)) {
 		Setup_Scene_Information(-322.0f, -34.0f, -404.0f, 345);
-		Game_Flag_Reset(kFlagUG15toUG16);
+		Game_Flag_Reset(kFlagUG15toUG16a);
 	} else {
 		Setup_Scene_Information(-318.0f, -34.0f, -216.0f, 340);
-		Game_Flag_Reset(354);
+		Game_Flag_Reset(kFlagUG15toUG16b);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 242, 169, 282, 262, 3);
 	Scene_Exit_Add_2D_Exit(1, 375, 166, 407, 251, 3);
 	Scene_Exit_Add_2D_Exit(2, 461, 148, 523, 248, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(516, 33, 81, 0);
-	Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound(332, 40,  0, 1);
+	Ambient_Sounds_Add_Looping_Sound(333, 40,  0, 1);
+
 	if (Game_Flag_Query(568)) {
 		Scene_Loop_Set_Default(5);
 	} else {
@@ -132,24 +135,26 @@ bool SceneScriptUG16::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -216.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(355);
+			Game_Flag_Set(kFlagUG16toUG15b);
 			Set_Enter(kSetUG15, kSceneUG15);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -404.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(kFlagUG16toUG15);
+			Game_Flag_Set(kFlagUG16toUG15a);
 			Set_Enter(kSetUG15, kSceneUG15);
 		}
 		return true;
 	}
+
 	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, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(551);
diff --git a/engines/bladerunner/script/scene/ug17.cpp b/engines/bladerunner/script/scene/ug17.cpp
index 104c831..afbe340 100644
--- a/engines/bladerunner/script/scene/ug17.cpp
+++ b/engines/bladerunner/script/scene/ug17.cpp
@@ -31,14 +31,17 @@ void SceneScriptUG17::InitializeScene() {
 	} else {
 		Setup_Scene_Information(1000.0f, 67.96f, -1539.0f, 0);
 	}
-	Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
+
+	Scene_Exit_Add_2D_Exit(0, 610,   0, 639, 479, 1);
 	Scene_Exit_Add_2D_Exit(1, 551, 347, 594, 386, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(589, 100, 1, 1);
-	Ambient_Sounds_Add_Looping_Sound(384, 50, 1, 1);
+	Ambient_Sounds_Add_Looping_Sound(384,  50, 1, 1);
 	Ambient_Sounds_Add_Sound(72, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(73, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(74, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
-	Overlay_Play("UG17OVER", 0, 1, 0, 0);
+
+	Overlay_Play("UG17OVER", 0, true, false, 0);
 }
 
 void SceneScriptUG17::SceneLoaded() {
@@ -67,7 +70,7 @@ bool SceneScriptUG17::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1000.0f, 67.96f, -1539.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(353);
+			Game_Flag_Set(kFlagUG17toUG15);
 			Set_Enter(kSetUG15, kSceneUG15);
 		}
 		return true;
@@ -101,9 +104,9 @@ void SceneScriptUG17::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG17::PlayerWalkedIn() {
-	if (Game_Flag_Query(352)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 961.0f, 67.96f, -1539.0f, 0, 0, false, 0);
-		Game_Flag_Reset(352);
+	if (Game_Flag_Query(kFlagUG15toUG17)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 961.0f, 67.96f, -1539.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagUG15toUG17);
 	}
 	//return false;
 }
diff --git a/engines/bladerunner/script/scene/ug19.cpp b/engines/bladerunner/script/scene/ug19.cpp
index 4c7d963..40097de 100644
--- a/engines/bladerunner/script/scene/ug19.cpp
+++ b/engines/bladerunner/script/scene/ug19.cpp
@@ -25,38 +25,39 @@
 namespace BladeRunner {
 
 void SceneScriptUG19::InitializeScene() {
-	if (Game_Flag_Query(357)) {
+	if (Game_Flag_Query(kFlagMA07toUG19)) {
 		Setup_Scene_Information(67.03f, 105.0f, -74.97f, 256);
 	} else {
-		Setup_Scene_Information(181.0f, 11.52f, -18.0f, 777);
+		Setup_Scene_Information(181.0f, 11.52f,  -18.0f, 777);
 	}
-	Scene_Exit_Add_2D_Exit(0, 351, 0, 491, 347, 0);
+
+	Scene_Exit_Add_2D_Exit(0, 351,   0, 491, 347, 0);
 	Scene_Exit_Add_2D_Exit(1, 548, 124, 639, 369, 1);
-	Ambient_Sounds_Add_Looping_Sound(95, 45, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
-	Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(396, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
-	Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
 
+	Ambient_Sounds_Add_Looping_Sound( 95, 45, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
+	Ambient_Sounds_Add_Sound(291, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(292, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(293, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(294, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(295, 2,  20, 25, 33, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(396, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100,  100, 0, 0);
+	Ambient_Sounds_Add_Sound(303, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(304, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(305, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(  1, 5,  50, 47, 57, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 57, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound( 58, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(306, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(307, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(308, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(196, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(197, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(198, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(199, 5,  50, 27, 37, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptUG19::SceneLoaded() {
@@ -91,7 +92,7 @@ bool SceneScriptUG19::ClickedOnExit(int exitId) {
 			Footstep_Sound_Override_Off();
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(356);
+			Game_Flag_Set(kFlagUG19toMA07);
 			Set_Enter(kSetMA07, kSceneMA07);
 		}
 		return true;
@@ -100,7 +101,7 @@ bool SceneScriptUG19::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.0f, 11.52f, -18.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(349);
+			Game_Flag_Set(kFlagUG19toUG14);
 			Set_Enter(kSetUG14, kSceneUG14);
 		}
 		return true;
@@ -119,13 +120,13 @@ void SceneScriptUG19::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG19::PlayerWalkedIn() {
-	if (Game_Flag_Query(348)) {
-		Game_Flag_Reset(348);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 129.0f, 11.52f, -18.0f, 0, 0, false, 0);
+	if (Game_Flag_Query(kFlagUG14toUG19)) {
+		Game_Flag_Reset(kFlagUG14toUG19);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 129.0f, 11.52f, -18.0f, 0, false, false, 0);
 	} else {
-		Game_Flag_Reset(357);





More information about the Scummvm-git-logs mailing list