[Scummvm-git-logs] scummvm master -> a663930dd062edd8bfc217fb19a5cbce37705ece

antoniou79 antoniou at cti.gr
Sat Apr 20 16:37:55 CEST 2019


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

Summary:
63b8ddb50e BLADERUNNER: Add list debugger command
a663930dd0 BLADERUNNER: Named constants for animationIds P01


Commit: 63b8ddb50e03a535c4f61a2424914a3c09579197
    https://github.com/scummvm/scummvm/commit/63b8ddb50e03a535c4f61a2424914a3c09579197
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-20T17:33:39+03:00

Commit Message:
BLADERUNNER: Add list debugger command

Similar to draw (reuses code) but lists objects in the debugger view

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


diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index 9d31e5e..03bdd4d 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -86,6 +86,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 
 	registerCmd("anim", WRAP_METHOD(Debugger, cmdAnimation));
 	registerCmd("draw", WRAP_METHOD(Debugger, cmdDraw));
+	registerCmd("list", WRAP_METHOD(Debugger, cmdList));
 	registerCmd("flag", WRAP_METHOD(Debugger, cmdFlag));
 	registerCmd("goal", WRAP_METHOD(Debugger, cmdGoal));
 	registerCmd("loop", WRAP_METHOD(Debugger, cmdLoop));
@@ -1071,6 +1072,187 @@ bool Debugger::cmdSubtitle(int argc, const char **argv) {
 
 }
 
+/**
+*
+* Similar to draw but only list items instead of drawing
+* Maybe keep this separate from the draw command, even though some code gets repeated here
+* DONE: Provide more info (bbox or position)
+* DONE: For actors show current goal too.
+* TODO: For items provide friendly name (enum in constants!)
+* DONE: Split items in items, actors and objects?
+*/
+bool Debugger::cmdList(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("Enables debug listing of actors, scene objects, items, waypoints, regions, lights, fogs and walk-boxes.\n");
+		debugPrintf("Usage: %s (act | obj | items | way | reg | lit | fog | walk )\n", argv[0]);
+		return true;
+	}
+
+	Common::String arg = argv[1];
+	if (arg == "act") {
+		debugPrintf("Listing scene actors: \n");
+		int count = 0;
+		for (int i = 0; i < _vm->_sceneObjects->_count; i++) {
+			SceneObjects::SceneObject *sceneObject = &_vm->_sceneObjects->_sceneObjects[_vm->_sceneObjects->_sceneObjectsSortedByDistance[i]];
+
+			if (sceneObject->type == kSceneObjectTypeActor) {
+				debugPrintf("%02d. %s (CLK: %s, TRG: %s, PRS: %s, OBS: %s, MVG: %s), Goal: %d, Pos(%02.2f,%02.2f,%02.2f)\n",
+				             count, _vm->_textActorNames->getText(sceneObject->id - kSceneObjectOffsetActors),
+				             sceneObject->isClickable? "T" : "F",
+				             sceneObject->isTarget?    "T" : "F",
+				             sceneObject->isPresent?   "T" : "F",
+				             sceneObject->isObstacle?  "T" : "F",
+				             sceneObject->isMoving?    "T" : "F",
+				             _vm->_actors[sceneObject->id - kSceneObjectOffsetActors]->getGoal(),
+				             _vm->_actors[sceneObject->id - kSceneObjectOffsetActors]->getPosition().x,
+				             _vm->_actors[sceneObject->id - kSceneObjectOffsetActors]->getPosition().y,
+				             _vm->_actors[sceneObject->id - kSceneObjectOffsetActors]->getPosition().z);
+				++count;
+			}
+		}
+		debugPrintf("%d actors were found in scene.\n", count);
+	} else if (arg == "obj") {
+		debugPrintf("Listing scene objects: \n");
+		int count = 0;
+		for (int i = 0; i < _vm->_sceneObjects->_count; i++) {
+			SceneObjects::SceneObject *sceneObject = &_vm->_sceneObjects->_sceneObjects[_vm->_sceneObjects->_sceneObjectsSortedByDistance[i]];
+			const BoundingBox &bbox = sceneObject->boundingBox;
+			Vector3 a, b;
+			bbox.getXYZ(&a.x, &a.y, &a.z, &b.x, &b.y, &b.z);
+			Vector3 pos = _vm->_view->calculateScreenPosition(0.5 * (a + b));
+
+			if (sceneObject->type == kSceneObjectTypeUnknown) {
+				debugPrintf("%02d. Unknown object type\n", count);
+				++count;
+			} else if (sceneObject->type == kSceneObjectTypeObject) {
+				debugPrintf("%02d. %s (CLK: %s, TRG: %s, PRS: %s, OBS: %s, MVG: %s), Pos(%02.2f,%02.2f,%02.2f), Bbox:(%02.2f,%02.2f,%02.2f)~(%02.2f,%02.2f,%02.2f)\n",
+				             count, _vm->_scene->objectGetName(sceneObject->id - kSceneObjectOffsetObjects).c_str(),
+				             sceneObject->isClickable? "T" : "F",
+				             sceneObject->isTarget?    "T" : "F",
+				             sceneObject->isPresent?   "T" : "F",
+				             sceneObject->isObstacle?  "T" : "F",
+				             sceneObject->isMoving?    "T" : "F",
+				             pos.x, pos.y, pos.z,
+				             a.x, a.y, a.z, b.x, b.y, b.z);
+				++count;
+			}
+		}
+		debugPrintf("%d objects were found in scene.\n", count);
+	} else if (arg == "items") {
+		debugPrintf("Listing scene items: \n");
+		int count = 0;
+		for (int i = 0; i < _vm->_sceneObjects->_count; i++) {
+			SceneObjects::SceneObject *sceneObject = &_vm->_sceneObjects->_sceneObjects[_vm->_sceneObjects->_sceneObjectsSortedByDistance[i]];
+
+			if (sceneObject->type == kSceneObjectTypeItem) {
+				const BoundingBox &bbox = sceneObject->boundingBox;
+				Vector3 a, b;
+				bbox.getXYZ(&a.x, &a.y, &a.z, &b.x, &b.y, &b.z);
+				Vector3 pos = _vm->_view->calculateScreenPosition(0.5 * (a + b));
+				char itemText[40];
+				sprintf(itemText, "item %i", sceneObject->id - kSceneObjectOffsetItems);
+				debugPrintf("%02d. %s (CLK: %s, TRG: %s, PRS: %s, OBS: %s, MVG: %s), Pos(%02.2f,%02.2f,%02.2f), Bbox:(%02.2f,%02.2f,%02.2f)~(%02.2f,%02.2f,%02.2f)\n",
+				             count, itemText,
+				             sceneObject->isClickable? "T" : "F",
+				             sceneObject->isTarget?    "T" : "F",
+				             sceneObject->isPresent?   "T" : "F",
+				             sceneObject->isObstacle?  "T" : "F",
+				             sceneObject->isMoving?    "T" : "F",
+				             pos.x, pos.y, pos.z,
+				             a.x, a.y, a.z, b.x, b.y, b.z);
+				++count;
+			}
+		}
+		debugPrintf("%d items were found in scene.\n", count);
+	} else if (arg == "reg") {
+		debugPrintf("Listing regions: \n");
+		int count = 0;
+		//list regions
+		for (int i = 0; i < 10; i++) {
+			Regions::Region *region = &_vm->_scene->_regions->_regions[i];
+			if (!region->present) continue;
+			debugPrintf("%02d. Region slot: %d\n", count, i);
+			++count;
+		}
+
+		//list exits
+		for (int i = 0; i < 10; i++) {
+			Regions::Region *region = &_vm->_scene->_exits->_regions[i];
+			if (!region->present) continue;
+			debugPrintf("%02d. Exit slot: %d\n", count, i);
+			++count;
+		}
+		debugPrintf("%d regions were found in scene.\n", count);
+	} else if (arg == "way") {
+		debugPrintf("Listing waypoints: \n");
+		int count = 0;
+		for (int i = 0; i < _vm->_waypoints->_count; i++) {
+			Waypoints::Waypoint *waypoint = &_vm->_waypoints->_waypoints[i];
+			if(waypoint->setId != _vm->_scene->getSetId()) {
+				continue;
+			}
+			char waypointText[40];
+			sprintf(waypointText, "waypoint %i", i);
+			debugPrintf("%02d. %s\n", count, waypointText);
+			++count;
+		}
+
+		// list combat cover waypoints
+		for (int i = 0; i < (int)_vm->_combat->_coverWaypoints.size(); i++) {
+			Combat::CoverWaypoint *cover = &_vm->_combat->_coverWaypoints[i];
+			if (cover->setId != _vm->_scene->getSetId()) {
+				continue;
+			}
+			char coverText[40];
+			sprintf(coverText, "cover %i", i);
+			debugPrintf("%02d. %s\n", count, coverText);
+			++count;
+		}
+
+		// list combat flee waypoints
+		for (int i = 0; i < (int)_vm->_combat->_fleeWaypoints.size(); i++) {
+			Combat::FleeWaypoint *flee = &_vm->_combat->_fleeWaypoints[i];
+			if (flee->setId != _vm->_scene->getSetId()) {
+				continue;
+			}
+			char fleeText[40];
+			sprintf(fleeText, "flee %i", i);
+			debugPrintf("%02d. %s\n", count, fleeText);
+			++count;
+		}
+		debugPrintf("%d waypoints were found in scene.\n", count);
+	} else if (arg == "walk") {
+		debugPrintf("Listing walkboxes: \n");
+		// list walkboxes
+		for (int i = 0; i < _vm->_scene->_set->_walkboxCount; i++) {
+			Set::Walkbox *walkbox = &_vm->_scene->_set->_walkboxes[i];
+
+			debugPrintf("%02d. Walkbox %s, vertices: %d\n", i, walkbox->name.c_str(), walkbox->vertexCount);
+		}
+		debugPrintf("%d walkboxes were found in scene.\n", _vm->_scene->_set->_walkboxCount);
+	} else if (arg == "fog") {
+		debugPrintf("Listing fogs: \n");
+		int count = 0;
+		for (Fog *fog = _vm->_scene->_set->_effects->_fogs; fog != nullptr; fog = fog->_next) {
+			debugPrintf("%02d. Fog %s\n", count, fog->_name.c_str());
+			++count;
+		}
+		debugPrintf("%d fogs were found in scene.\n", count);
+	} else if (arg == "lit") {
+		debugPrintf("Listing lights: \n");
+		// list lights
+		for (int i = 0; i < (int)_vm->_lights->_lights.size(); i++) {
+			Light *light = _vm->_lights->_lights[i];
+			debugPrintf("%02d. Light %s\n", i, light->_name.c_str());
+		}
+		debugPrintf("%d lights were found in scene.\n", (int)_vm->_lights->_lights.size());
+	} else {
+		debugPrintf("Invalid item type was specified.\n");
+	}
+
+	return true;
+}
+
 
 void Debugger::drawDebuggerOverlay() {
 	if (_viewSceneObjects) drawSceneObjects();
@@ -1135,7 +1317,7 @@ void Debugger::drawSceneObjects() {
 				_vm->_mainFont->drawColor(_vm->_textActorNames->getText(sceneObject->id - kSceneObjectOffsetActors), _vm->_surfaceFront, pos.x, pos.y, color);
 				break;
 			case kSceneObjectTypeItem:
-			color = _vm->_surfaceFront.format.RGBToColor(0, 255, 0);
+				color = _vm->_surfaceFront.format.RGBToColor(0, 255, 0);
 				char itemText[40];
 				drawBBox(a, b, _vm->_view, &_vm->_surfaceFront, color);
 				sprintf(itemText, "item %i", sceneObject->id - kSceneObjectOffsetItems);
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index 5770ad7..2349af9 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -75,6 +75,7 @@ public:
 	bool cmdSave(int argc, const char **argv);
 	bool cmdOverlay(int argc, const char **argv);
 	bool cmdSubtitle(int argc, const char **argv);
+	bool cmdList(int argc, const char **argv);
 
 	void drawDebuggerOverlay();
 


Commit: a663930dd062edd8bfc217fb19a5cbce37705ece
    https://github.com/scummvm/scummvm/commit/a663930dd062edd8bfc217fb19a5cbce37705ece
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-20T17:33:39+03:00

Commit Message:
BLADERUNNER: Named constants for animationIds P01

Part one of using named constants for model animations

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/dektora.cpp
    engines/bladerunner/script/ai/generic_walker_a.cpp
    engines/bladerunner/script/ai/gordo.cpp
    engines/bladerunner/script/ai/insect_dealer.cpp
    engines/bladerunner/script/ai/izo.cpp
    engines/bladerunner/script/ai/lucy.cpp
    engines/bladerunner/script/ai/marcus.cpp
    engines/bladerunner/script/ai/mccoy.cpp
    engines/bladerunner/script/init_script.cpp
    engines/bladerunner/script/kia_script.cpp
    engines/bladerunner/script/scene/ar02.cpp
    engines/bladerunner/script/scene/bb06.cpp
    engines/bladerunner/script/scene/bb07.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/ct04.cpp
    engines/bladerunner/script/scene/ct06.cpp
    engines/bladerunner/script/scene/ct08.cpp
    engines/bladerunner/script/scene/ct10.cpp
    engines/bladerunner/script/scene/ct11.cpp
    engines/bladerunner/script/scene/ct51.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/kp05.cpp
    engines/bladerunner/script/scene/ma04.cpp
    engines/bladerunner/script/scene/nr02.cpp
    engines/bladerunner/script/scene/nr04.cpp
    engines/bladerunner/script/scene/ps04.cpp
    engines/bladerunner/script/scene/ps10.cpp
    engines/bladerunner/script/scene/ps11.cpp
    engines/bladerunner/script/scene/ps12.cpp
    engines/bladerunner/script/scene/ps13.cpp
    engines/bladerunner/script/scene/ps15.cpp
    engines/bladerunner/script/scene/rc01.cpp
    engines/bladerunner/script/scene/rc02.cpp
    engines/bladerunner/script/scene/rc04.cpp
    engines/bladerunner/script/scene/rc51.cpp
    engines/bladerunner/script/scene/tb05.cpp
    engines/bladerunner/script/scene/tb06.cpp
    engines/bladerunner/script/scene/tb07.cpp
    engines/bladerunner/script/scene/ug02.cpp
    engines/bladerunner/script/scene/ug13.cpp
    engines/bladerunner/script/scene/ug16.cpp
    engines/bladerunner/script/scene/ug18.cpp
    engines/bladerunner/script/script.cpp
    engines/bladerunner/script/script.h


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index ba3e156..d121757 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -157,8 +157,8 @@ enum Clues {
 	kClueAttemptedFileAccess = 51,
 	kClueCrystalsCase = 52,
 	kClueKingstonKitchenBox1 = 53,
-	kClueTyrellSalesPamphlet1 = 54,
-	kClueTyrellSalesPamphlet2 = 55,
+	kClueTyrellSalesPamphletEntertainModel = 54,
+	kClueTyrellSalesPamphletLolita = 55,
 	kCluePeruvianLadyInterview = 56,
 	kClueHasanInterview = 57,
 	kClueBobInterview1 = 58,
@@ -208,8 +208,8 @@ enum Clues {
 	kClueStolenCheese = 102,
 	kClueGordoInterview3 = 103,
 	kClueGordoConfession = 104,
-	kClueGordosLighter1 = 105,
-	kClueGordosLighter2 = 106,
+	kClueGordosLighterReplicant = 105,
+	kClueGordosLighterHuman = 106,
 	kClueDektoraInterview4 = 107,
 	kClueHollowayInterview = 108,
 	kClueBakersBadge = 109,
@@ -1648,8 +1648,8 @@ enum GameItems {
 	// 86 is never used
 	// 87 is never used
 	kItemRadiationGoogles = 88,
-	kItemGordosLighter1 = 89,
-	kItemGordosLighter2 = 90,
+	kItemGordosLighterReplicant = 89,
+	kItemGordosLighterHuman = 90,
 	kItemBriefcase = 91,
 	// 92 is never used
 	// 93 is never used
@@ -1665,7 +1665,7 @@ enum GameItems {
 	kItemDeadDogA = 103,
 	kItemDeadDogB = 104,
 	kItemDeadDogC = 105,
-	kItemScrorpions = 106,
+	kItemScorpions = 106,
 	kItemCamera = 107,
 	kItemKitchenBox = 108,
 	kItemChair = 109,
@@ -1684,6 +1684,85 @@ enum GameItems {
 	kItemChain = 122
 };
 
+enum GameModelAnimations {
+	kModelAnimationBulletBobsTrackingGun       = 440,
+	kModelAnimationMaleTargetEmptyHandsActive  = 441,
+	kModelAnimationMaleTargetEmptyHandsDead    = 442, // 441+1
+	kModelAnimationMaleTargetWithGunActive     = 443,
+	kModelAnimationMaleTargetWithGunDead       = 444, // 443+1
+	kModelAnimationMaleTargetWithShotgunActive = 445,
+	kModelAnimationMaleTargetWithShotgunDead   = 446, // 445+1
+	kModelAnimationFemaleTargetWithBabyActive  = 447,
+	kModelAnimationFemaleTargetWithBabyDead    = 448, // 447+1
+	kModelAnimationFemaleTargetWithGunActive   = 449,
+	kModelAnimationFemaleTargetWithGunDead     = 450, // 449+1
+
+	kModelAnimationBadge                       = 931,
+	kModelAnimationBomb                        = 932,
+	kModelAnimationCandy                       = 933,
+	kModelAnimationCandyWrapper                = 934,
+	kModelAnimationDektorasCard                = 935,
+	kModelAnimationCheese                      = 936,
+	kModelAnimationChopstickWrapper            = 937,
+	kModelAnimationChromeDebris                = 938,
+	kModelAnimationDragonflyBelt               = 939,
+	kModelAnimationDragonflyEarring            = 940,
+	kModelAnimationDNADataDisc                 = 941,
+	kModelAnimationDogCollar                   = 942,
+	kModelAnimationRagDoll                     = 943,
+	kModelAnimationEnvelope                    = 944,
+	kModelAnimationFlaskOfAbsinthe             = 945,
+	kModelAnimationFolderInKIA                 = 946,
+	kModelAnimationGoldfish                    = 947,
+	kModelAnimationFolder                      = 948,
+//	kModelAnimationLetter                      = 949, // unused?
+	kModelAnimationGarterSnake                 = 950,
+	kModelAnimationLichenDogWrapper            = 951,
+	kModelAnimationLicensePlate                = 952,
+	kModelAnimationGordosLighterReplicant      = 953,
+	kModelAnimationGordosLighterHuman          = 954,
+	kModelAnimationKingstonKitchenBox          = 955,
+	kModelAnimationMaggieBracelet              = 956,
+	kModelAnimationGrigoriansNote              = 957,
+	kModelAnimationOriginalRequisitionForm     = 958,
+	kModelAnimationOriginalShippingForm        = 959,
+	kModelAnimationPowerSource                 = 960,
+	kModelAnimationCollectionReceipt           = 961,
+	kModelAnimationRequisitionForm             = 962,
+	kModelAnimationRadiationGoggles            = 963,
+	kModelAnimationReferenceLetter             = 964,
+	kModelAnimationWeaponsOrderForm            = 965,
+	kModelAnimationShellCasings                = 966,
+	kModelAnimationSlug                        = 967,
+//	kModelAnimation                            = 968, // unused - a knife?
+	kModelAnimationStrangeScale                = 969,
+	kModelAnimationHysteriaToken               = 970,
+	kModelAnimationToyDog                      = 971,
+	kModelAnimationTyrellSalesPamphlet         = 972,
+	kModelAnimationTyrellSalesPamphletKIA      = 973,
+	kModelAnimationDetonatorWire               = 974,
+	kModelAnimationVideoDisc                   = 975,
+	kModelAnimationCageOfScorpions             = 976,
+	kModelAnimationIzoCamera                   = 977,
+	kModelAnimationDeadDogA                    = 978,
+	kModelAnimationDeadDogB                    = 979,
+	kModelAnimationDeadDogC                    = 980,
+	kModelAnimationMarcusDead                  = 981,
+	kModelAnimationYukonHotelChair             = 982,
+	kModelAnimationWeaponsCrate                = 983,
+	kModelAnimationPhoto                       = 984,
+	kModelAnimationCrystalsCigarette           = 985,
+	kModelAnimationSpinnerKeys                 = 986,
+	kModelAnimationBriefcase                   = 987,
+	kModelAnimationDNAEvidenceOnePart          = 988,
+//	kModelAnimation                            = 989, // unused?
+	kModelAnimationDNAEvidenceTwoParts         = 990,
+	kModelAnimationDNAEvidenceThreeParts       = 991,
+//	kModelAnimation                            = 992, // unused?
+	kModelAnimationDNAEvidenceComplete         = 993
+//	kModelAnimation                            = 994-996
+};
+
 enum Elevators {
 	kElevatorMA = 1,
 	kElevatorPS = 2
@@ -2963,6 +3042,11 @@ enum SFXSounds {
 	kSfxSHUTDOWN = 596
 };
 
+enum GameDifficultyLevel {
+	kGameDifficultyEasy   = 0,
+	kGameDifficultyMedium = 1,
+	kGameDifficultyHard   = 2
+};
 } // End of namespace BladeRunner
 
 #endif
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index 1e64228..690c1e9 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -57,7 +57,7 @@ bool AIScriptDektora::Update() {
 			 &&  Player_Query_Current_Scene() != kSceneAR02
 			) {
 				if (Game_Flag_Query(kFlagAR02Entered)) {
-					Item_Remove_From_World(kItemScrorpions);
+					Item_Remove_From_World(kItemScorpions);
 				}
 				Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
 			}
diff --git a/engines/bladerunner/script/ai/generic_walker_a.cpp b/engines/bladerunner/script/ai/generic_walker_a.cpp
index b764f77..ddf5665 100644
--- a/engines/bladerunner/script/ai/generic_walker_a.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_a.cpp
@@ -94,7 +94,7 @@ void AIScriptGenericWalkerA::ReceivedClue(int clueId, int fromActorId) {
 void AIScriptGenericWalkerA::ClickedByPlayer() {
 	Actor_Face_Actor(kActorMcCoy, kActorGenwalkerA, true);
 	if (Actor_Query_Goal_Number(kActorGenwalkerA) == 200) {
-		Actor_Says(kActorMcCoy, 5290, 18);
+		Actor_Says(kActorMcCoy, 5290, 18);   // kActorGenwalkerA here is actually the tracking gun in Bullet Bob's
 	} else {
 		switch (Random_Query(1, 10)) {
 		case 1:
@@ -256,9 +256,9 @@ bool AIScriptGenericWalkerA::UpdateAnimation(int *animation, int *frame) {
 		}
 		break;
 	case kGenericWalkerAStatesGun:
-		*animation = 440;
+		*animation = kModelAnimationBulletBobsTrackingGun;
 		++_animationFrame;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(440)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationBulletBobsTrackingGun)) {
 			_animationFrame = 0;
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 974629b..a6b478a 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -280,7 +280,7 @@ void AIScriptGordo::Retired(int byActorId) {
 		Actor_Voice_Over(1410, kActorVoiceOver);
 		Actor_Voice_Over(1430, kActorVoiceOver);
 		Actor_Voice_Over(1440, kActorVoiceOver);
-		if (Query_Difficulty_Level() > 0) {
+		if (Query_Difficulty_Level() > kGameDifficultyEasy) {
 			Global_Variable_Increment(kVariableChinyen, 200);
 		}
 		Player_Gains_Control();
@@ -1130,9 +1130,9 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
 			if (Game_Flag_Query(kFlagNR02GordoLeaveLighter)) {
 				Game_Flag_Reset(kFlagNR02GordoLeaveLighter);
 				if (Game_Flag_Query(kFlagGordoIsReplicant)) {
-					Item_Add_To_World(kItemGordosLighter1, 953, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
+					Item_Add_To_World(kItemGordosLighterReplicant, kModelAnimationGordosLighterReplicant, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
 				} else {
-					Item_Add_To_World(kItemGordosLighter2, 954, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
+					Item_Add_To_World(kItemGordosLighterHuman, kModelAnimationGordosLighterHuman, kSetNR02, 148.94f, 22.19f, 476.1f, 0, 6, 6, false, true, false, false);
 				}
 				Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR02GoToPodium);
 			}
diff --git a/engines/bladerunner/script/ai/insect_dealer.cpp b/engines/bladerunner/script/ai/insect_dealer.cpp
index 129a8e3..245aebb 100644
--- a/engines/bladerunner/script/ai/insect_dealer.cpp
+++ b/engines/bladerunner/script/ai/insect_dealer.cpp
@@ -113,7 +113,7 @@ bool AIScriptInsectDealer::GoalChanged(int currentGoalNumber, int newGoalNumber)
 
 		if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
-			Item_Remove_From_World(kItemScrorpions);
+			Item_Remove_From_World(kItemScorpions);
 		}
 	}
 
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index 0e0bb54..d0fa07b 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -738,7 +738,7 @@ bool AIScriptIzo::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 			_animationState = 0;
 			Game_Flag_Set(kFlagUnused407);
-			Item_Add_To_World(kItemCamera, 977, kSetHC01_HC02_HC03_HC04, 597.46f, 0.14f, 49.92f, 0, 12, 12, false, true, false, false);
+			Item_Add_To_World(kItemCamera, kModelAnimationIzoCamera, kSetHC01_HC02_HC03_HC04, 597.46f, 0.14f, 49.92f, 0, 12, 12, false, true, false, false);
 			Actor_Set_Goal_Number(kActorIzo, kGoalIzoRunToUG02);
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index 52b2b80..e4b92ab 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -280,7 +280,7 @@ void AIScriptLucy::Retired(int byActorId) {
 		Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false);
 	}
 
-	if (Query_Difficulty_Level() != 0
+	if (Query_Difficulty_Level() != kGameDifficultyEasy
 	 && byActorId == kActorMcCoy
 	 && Game_Flag_Query(kFlagLucyIsReplicant)
 	) {
diff --git a/engines/bladerunner/script/ai/marcus.cpp b/engines/bladerunner/script/ai/marcus.cpp
index 1c8eb15..5e1e5d8 100644
--- a/engines/bladerunner/script/ai/marcus.cpp
+++ b/engines/bladerunner/script/ai/marcus.cpp
@@ -91,7 +91,7 @@ bool AIScriptMarcus::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 }
 
 bool AIScriptMarcus::UpdateAnimation(int *animation, int *frame) {
-	*animation = 981;
+	*animation = kModelAnimationMarcusDead;
 	*frame = 0;
 
 	return true;
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index 2d99d4b..cafca8a 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -139,7 +139,7 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) {
 
 	case kClueKingstonKitchenBox1:
 	case kClueKingstonKitchenBox2:
-		if (Query_Difficulty_Level() == 0) {
+		if (Query_Difficulty_Level() == kGameDifficultyEasy) {
 			Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationAnimoidRow, true);
 		}
 		break;
@@ -1217,7 +1217,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
 			_animationLoopLength = 0;
 			_animationState = 0;
 			Player_Gains_Control();
-			Item_Add_To_World(kItemChair, 982, kSetCT08_CT51_UG12, -110.0, 0.0, -192.0, 0, 48, 32, false, true, false, false);
+			Item_Add_To_World(kItemChair, kModelAnimationYukonHotelChair, kSetCT08_CT51_UG12, -110.0, 0.0, -192.0, 0, 48, 32, false, true, false, false);
 		}
 		break;
 
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 8143ab4..19a4569 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -2441,8 +2441,8 @@ void InitScript::Init_CDB() {
 	CDB_Set_Crime(kClueVictimInformation, kCrimeEisendullerMurder);
 	CDB_Set_Crime(kClueAttemptedFileAccess, kCrimeEisendullerMurder);
 	CDB_Set_Crime(kClueKingstonKitchenBox1, kCrimeEisendullerMurder);
-	CDB_Set_Crime(kClueTyrellSalesPamphlet1, kCrimeEisendullerMurder);
-	CDB_Set_Crime(kClueTyrellSalesPamphlet2, kCrimeEisendullerMurder);
+	CDB_Set_Crime(kClueTyrellSalesPamphletEntertainModel, kCrimeEisendullerMurder);
+	CDB_Set_Crime(kClueTyrellSalesPamphletLolita, kCrimeEisendullerMurder);
 	CDB_Set_Crime(kClueDogCollar1, kCrimeEisendullerMurder);
 	CDB_Set_Crime(kClueRachaelInterview, kCrimeEisendullerMurder);
 	CDB_Set_Crime(kClueTyrellInterview, kCrimeEisendullerMurder);
@@ -2541,8 +2541,8 @@ void InitScript::Init_CDB() {
 	CDB_Set_Clue_Asset_Type(kClueAttemptedFileAccess, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueCrystalsCase, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueKingstonKitchenBox1, kClueTypeObject);
-	CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphlet1, kClueTypeObject);
-	CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphlet2, kClueTypeObject);
+	CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphletEntertainModel, kClueTypeObject);
+	CDB_Set_Clue_Asset_Type(kClueTyrellSalesPamphletLolita, kClueTypeObject);
 	CDB_Set_Clue_Asset_Type(kCluePeruvianLadyInterview, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueHasanInterview, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueBobInterview1, kClueTypeAudioRecording);
@@ -2585,8 +2585,8 @@ void InitScript::Init_CDB() {
 	CDB_Set_Clue_Asset_Type(kClueStolenCheese, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueGordoInterview3, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueGordoConfession, kClueTypeAudioRecording);
-	CDB_Set_Clue_Asset_Type(kClueGordosLighter1, kClueTypeObject);
-	CDB_Set_Clue_Asset_Type(kClueGordosLighter2, kClueTypeObject);
+	CDB_Set_Clue_Asset_Type(kClueGordosLighterReplicant, kClueTypeObject);
+	CDB_Set_Clue_Asset_Type(kClueGordosLighterHuman, kClueTypeObject);
 	CDB_Set_Clue_Asset_Type(kClueDektoraInterview4, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueHollowayInterview, kClueTypeAudioRecording);
 	CDB_Set_Clue_Asset_Type(kClueBakersBadge, kClueTypeObject);
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index 40a695e..b6632c7 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -61,17 +61,17 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1990);
 		break;
 	case kClueShellCasings:
-		KIA_Play_Slice_Model(966);
+		KIA_Play_Slice_Model(kModelAnimationShellCasings);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1960);
 		break;
 	case kClueCandy:
-		KIA_Play_Slice_Model(933);
+		KIA_Play_Slice_Model(kModelAnimationCandy);
 		break;
 	case kClueToyDog:
-		KIA_Play_Slice_Model(971);
+		KIA_Play_Slice_Model(kModelAnimationToyDog);
 		break;
 	case kClueChopstickWrapper:
-		KIA_Play_Slice_Model(937);
+		KIA_Play_Slice_Model(kModelAnimationChopstickWrapper);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2010);
 		break;
 	case kClueSushiMenu:
@@ -91,7 +91,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorKlein, 90);
 		break;
 	case kClueRuncitersVideo:
-		KIA_Play_Slice_Model(975);
+		KIA_Play_Slice_Model(kModelAnimationVideoDisc);
 		break;
 	case kClueLucy:
 		KIA_Play_Photograph(5);
@@ -101,7 +101,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4050);
 		break;
 	case kClueReferenceLetter:
-		KIA_Play_Slice_Model(964);
+		KIA_Play_Slice_Model(kModelAnimationReferenceLetter);
 		KIA_Play_Actor_Dialogue(kActorRunciter, 280);
 		KIA_Play_Actor_Dialogue(kActorRunciter, 290);
 		break;
@@ -150,7 +150,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1890);
 		break;
 	case kClueChromeDebris:
-		KIA_Play_Slice_Model(938);
+		KIA_Play_Slice_Model(kModelAnimationChromeDebris);
 		break;
 	case kClueRuncitersViewA:
 		KIA_Play_Photograph(11);
@@ -165,7 +165,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Photograph(9);
 		break;
 	case kClueBriefcase:
-		KIA_Play_Slice_Model(987);
+		KIA_Play_Slice_Model(kModelAnimationBriefcase);
 		KIA_Play_Actor_Dialogue(kActorMcCoy, 5870);
 		KIA_Play_Actor_Dialogue(kActorGuzza, 810);
 		KIA_Play_Actor_Dialogue(kActorGuzza, 820);
@@ -176,7 +176,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorGaff, 30);
 		break;
 	case kClueLicensePlate:
-		KIA_Play_Slice_Model(952);
+		KIA_Play_Slice_Model(kModelAnimationLicensePlate);
 		break;
 	case kClueLabPaintTransfer:
 		KIA_Play_Actor_Dialogue(kActorKlein, 170);
@@ -199,13 +199,13 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorGuzza, 70);
 		break;
 	case kClueDragonflyEarring:
-		KIA_Play_Slice_Model(940);
+		KIA_Play_Slice_Model(kModelAnimationDragonflyEarring);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2140);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2150);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2160);
 		break;
 	case kClueTyrellSecurity:
-		KIA_Play_Slice_Model(975);
+		KIA_Play_Slice_Model(kModelAnimationVideoDisc);
 		break;
 	case kClueTyrellGuardInterview:
 		KIA_Play_Actor_Dialogue(kActorMcCoy, 5140);
@@ -219,7 +219,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2160);
 		break;
 	case kClueDetonatorWire:
-		KIA_Play_Slice_Model(974);
+		KIA_Play_Slice_Model(kModelAnimationDetonatorWire);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2320);
 		if (Game_Flag_Query(kFlagSadikIsReplicant)) {
 			KIA_Play_Actor_Dialogue(kActorVoiceOver, 2330);
@@ -246,20 +246,20 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorSteele, 2280);
 		break;
 	case kClueKingstonKitchenBox1:
-		KIA_Play_Slice_Model(955);
-		if (Query_Difficulty_Level() == 0) {
+		KIA_Play_Slice_Model(kModelAnimationKingstonKitchenBox);
+		if (Query_Difficulty_Level() == kGameDifficultyEasy) {
 			KIA_Play_Actor_Dialogue(kActorVoiceOver, 4140);
 		} else {
 			KIA_Play_Actor_Dialogue(kActorVoiceOver, 4150);
 		}
 		break;
-	case kClueTyrellSalesPamphlet1:
-		KIA_Play_Slice_Model(973);
+	case kClueTyrellSalesPamphletEntertainModel:
+		KIA_Play_Slice_Model(kModelAnimationTyrellSalesPamphletKIA);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4280);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4290);
 		break;
-	case kClueTyrellSalesPamphlet2:
-		KIA_Play_Slice_Model(973);
+	case kClueTyrellSalesPamphletLolita:
+		KIA_Play_Slice_Model(kModelAnimationTyrellSalesPamphletKIA);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4280);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4300);
 		break;
@@ -304,7 +304,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorIzo, 790);
 		break;
 	case kClueRadiationGoggles:
-		KIA_Play_Slice_Model(963);
+		KIA_Play_Slice_Model(kModelAnimationRadiationGoggles);
 		break;
 	case kClueGogglesReplicantIssue:
 		KIA_Play_Actor_Dialogue(kActorBulletBob, 560);
@@ -316,7 +316,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorFishDealer, 130);
 		break;
 	case kClueDogCollar1:
-		KIA_Play_Slice_Model(942);
+		KIA_Play_Slice_Model(kModelAnimationDogCollar);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4160);
 		break;
 	case kClueWeaponsCache:
@@ -372,10 +372,10 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4400);
 		break;
 	case kClueMaggieBracelet:
-		KIA_Play_Slice_Model(956);
+		KIA_Play_Slice_Model(kModelAnimationMaggieBracelet);
 		break;
 	case kClueEnvelope:
-		KIA_Play_Slice_Model(944);
+		KIA_Play_Slice_Model(kModelAnimationEnvelope);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 850);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 860);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 870);
@@ -396,10 +396,10 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorInsectDealer, 340);
 		break;
 	case kClueWeaponsOrderForm:
-		KIA_Play_Slice_Model(965);
+		KIA_Play_Slice_Model(kModelAnimationWeaponsOrderForm);
 		break;
 	case kClueShippingForm:
-		KIA_Play_Slice_Model(965);
+		KIA_Play_Slice_Model(kModelAnimationWeaponsOrderForm);
 		break;
 	case kClueGuzzasCash:
 		KIA_Play_Actor_Dialogue(kActorGuzza, 520);
@@ -408,29 +408,29 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorGuzza, 550);
 		break;
 	case kClueHysteriaToken:
-		KIA_Play_Slice_Model(970);
+		KIA_Play_Slice_Model(kModelAnimationHysteriaToken);
 		break;
 	case kClueRagDoll:
-		KIA_Play_Slice_Model(943);
+		KIA_Play_Slice_Model(kModelAnimationRagDoll);
 		break;
 	case kClueMoonbus1:
 		KIA_Play_Photograph(34);
 		break;
 	case kClueCheese:
-		KIA_Play_Slice_Model(936);
+		KIA_Play_Slice_Model(kModelAnimationCheese);
 		break;
 	case kClueDektorasDressingRoom:
 		KIA_Play_Photograph(16);
 		break;
 	case kClueEarlyQsClub:
-		KIA_Play_Slice_Model(975);
+		KIA_Play_Slice_Model(kModelAnimationVideoDisc);
 		break;
 	case kClueDragonflyCollection:
 		KIA_Play_Actor_Dialogue(kActorInsectDealer, 290);
 		KIA_Play_Actor_Dialogue(kActorInsectDealer, 300);
 		break;
 	case kClueDragonflyBelt:
-		KIA_Play_Slice_Model(939);
+		KIA_Play_Slice_Model(kModelAnimationDragonflyBelt);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4050);
 		break;
 	case kClueEarlyQInterview:
@@ -438,7 +438,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorEarlyQ, 150);
 		break;
 	case kClueStrangeScale1:
-		KIA_Play_Slice_Model(969);
+		KIA_Play_Slice_Model(kModelAnimationStrangeScale);
 		break;
 	case kClueDektoraInterview1:
 		KIA_Play_Actor_Dialogue(kActorDektora, 650);
@@ -456,13 +456,13 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorDektora, 550);
 		break;
 	case kClueDektorasCard:
-		KIA_Play_Slice_Model(935);
+		KIA_Play_Slice_Model(kModelAnimationDektorasCard);
 		break;
 	case kClueGrigoriansNote:
-		KIA_Play_Slice_Model(957);
+		KIA_Play_Slice_Model(kModelAnimationGrigoriansNote);
 		break;
 	case kClueCollectionReceipt:
-		KIA_Play_Slice_Model(961);
+		KIA_Play_Slice_Model(kModelAnimationCollectionReceipt);
 		break;
 	case kClueSpecialIngredient:
 		KIA_Play_Actor_Dialogue(kActorMurray, 210);
@@ -485,12 +485,12 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorGordo, 540);
 		KIA_Play_Actor_Dialogue(kActorGordo, 550);
 		break;
-	case kClueGordosLighter1:
-		KIA_Play_Slice_Model(953);
+	case kClueGordosLighterReplicant:
+		KIA_Play_Slice_Model(kModelAnimationGordosLighterReplicant);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 350);
 		break;
-	case kClueGordosLighter2:
-		KIA_Play_Slice_Model(954);
+	case kClueGordosLighterHuman:
+		KIA_Play_Slice_Model(kModelAnimationGordosLighterHuman);
 		break;
 	case kClueDektoraInterview4:
 		KIA_Play_Actor_Dialogue(kActorMcCoy, 3860);
@@ -505,10 +505,10 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorHolloway, 10);
 		break;
 	case kClueBakersBadge:
-		KIA_Play_Slice_Model(931);
+		KIA_Play_Slice_Model(kModelAnimationBadge);
 		break;
 	case kClueHoldensBadge:
-		KIA_Play_Slice_Model(931);
+		KIA_Play_Slice_Model(kModelAnimationBadge);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 4420);
 		break;
 	case kClueCarIdentified:
@@ -538,10 +538,10 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorCrazylegs, 850);
 		break;
 	case kClueLichenDogWrapper:
-		KIA_Play_Slice_Model(951);
+		KIA_Play_Slice_Model(kModelAnimationLichenDogWrapper);
 		break;
 	case kClueRequisitionForm:
-		KIA_Play_Slice_Model(962);
+		KIA_Play_Slice_Model(kModelAnimationRequisitionForm);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 3930);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 3940);
 		break;
@@ -585,7 +585,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2730);
 		break;
 	case kClueFolder:
-		KIA_Play_Slice_Model(946);
+		KIA_Play_Slice_Model(kModelAnimationFolder);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2740);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2750);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 2760);
@@ -595,16 +595,16 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 3320);
 		break;
 	case kClueOriginalShippingForm:
-		KIA_Play_Slice_Model(959);
+		KIA_Play_Slice_Model(kModelAnimationOriginalShippingForm);
 		break;
 	case kClueOriginalRequisitionForm:
-		KIA_Play_Slice_Model(958);
+		KIA_Play_Slice_Model(kModelAnimationOriginalRequisitionForm);
 		break;
 	case kClueCandyWrapper:
-		KIA_Play_Slice_Model(934);
+		KIA_Play_Slice_Model(kModelAnimationCandyWrapper);
 		break;
 	case kClueFlaskOfAbsinthe:
-		KIA_Play_Slice_Model(945);
+		KIA_Play_Slice_Model(kModelAnimationFlaskOfAbsinthe);
 		break;
 	case kClueLutherLanceInterview:
 		KIA_Play_Actor_Dialogue(kActorLuther, 240);
@@ -647,10 +647,10 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Actor_Dialogue(kActorSteele, 760);
 		break;
 	case kCluePowerSource:
-		KIA_Play_Slice_Model(960);
+		KIA_Play_Slice_Model(kModelAnimationPowerSource);
 		break;
 	case kClueBomb:
-		KIA_Play_Slice_Model(932);
+		KIA_Play_Slice_Model(kModelAnimationBomb);
 		break;
 	case kClueDNATyrell:
 	case kClueDNASebastian:
@@ -661,24 +661,24 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		{
 			int dnaEvidences = Global_Variable_Query(kVariableDNAEvidence);
 			if (dnaEvidences == 1) {
-				KIA_Play_Slice_Model(988);
+				KIA_Play_Slice_Model(kModelAnimationDNAEvidenceOnePart);
 			} else if (dnaEvidences == 2) {
-				KIA_Play_Slice_Model(990);
+				KIA_Play_Slice_Model(kModelAnimationDNAEvidenceTwoParts);
 			} else if (dnaEvidences == 3) {
-				KIA_Play_Slice_Model(991);
+				KIA_Play_Slice_Model(kModelAnimationDNAEvidenceThreeParts);
 			} else if (dnaEvidences >= 4) {
-				KIA_Play_Slice_Model(993);
+				KIA_Play_Slice_Model(kModelAnimationDNAEvidenceComplete);
 			}
 		}
 		break;
 	case kClueGarterSnake:
-		KIA_Play_Slice_Model(950);
+		KIA_Play_Slice_Model(kModelAnimationGarterSnake);
 		break;
 	case kClueSlug:
-		KIA_Play_Slice_Model(967);
+		KIA_Play_Slice_Model(kModelAnimationSlug);
 		break;
 	case kClueGoldfish:
-		KIA_Play_Slice_Model(947);
+		KIA_Play_Slice_Model(kModelAnimationGoldfish);
 		break;
 	case kClueZubenTalksAboutLucy1:
 		KIA_Play_Actor_Dialogue(kActorZuben, 230);
@@ -866,7 +866,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		KIA_Play_Photograph(27);
 		break;
 	case kClueChinaBarSecurityDisc:
-		KIA_Play_Slice_Model(975);
+		KIA_Play_Slice_Model(kModelAnimationVideoDisc);
 		break;
 	case kClueScorpionbox:
 		KIA_Play_Photograph(0);
@@ -886,21 +886,21 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
 		break;
 	case kClueKingstonKitchenBox2:
 		KIA_Play_Photograph(29);
-		if (Query_Difficulty_Level() == 0) {
+		if (Query_Difficulty_Level() == kGameDifficultyEasy) {
 			KIA_Play_Actor_Dialogue(kActorVoiceOver, 4140);
 		} else {
 			KIA_Play_Actor_Dialogue(kActorVoiceOver, 4150);
 		}
 		break;
 	case kClueCrystalsCigarette:
-		KIA_Play_Slice_Model(985);
+		KIA_Play_Slice_Model(kModelAnimationCrystalsCigarette);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1770);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1150);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1180);
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 1190);
 		break;
 	case kClueSpinnerKeys:
-		KIA_Play_Slice_Model(986);
+		KIA_Play_Slice_Model(kModelAnimationSpinnerKeys);
 		break;
 	case kClueExpertBomber:
 		KIA_Play_Actor_Dialogue(kActorVoiceOver, 730);
diff --git a/engines/bladerunner/script/scene/ar02.cpp b/engines/bladerunner/script/scene/ar02.cpp
index 1a2eecb..adb8835 100644
--- a/engines/bladerunner/script/scene/ar02.cpp
+++ b/engines/bladerunner/script/scene/ar02.cpp
@@ -80,13 +80,13 @@ void SceneScriptAR02::InitializeScene() {
 void SceneScriptAR02::SceneLoaded() {
 	Obstacle_Object("DF_BOOTH", true);
 	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);
+		Item_Add_To_World(kItemScorpions, kModelAnimationCageOfScorpions, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
 	}
 	if ( Global_Variable_Query(kVariableChapter) == 4
 	 && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
 	) {
 		Game_Flag_Set(kFlagNotUsed0);
-		Item_Remove_From_World(kItemScrorpions);
+		Item_Remove_From_World(kItemScorpions);
 	}
 }
 
@@ -180,7 +180,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptAR02::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == kItemScrorpions) {
+	if (itemId == kItemScorpions) {
 		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(kFlagAR02ScorpionsChecked)) {
@@ -323,7 +323,7 @@ void SceneScriptAR02::dialogueWithInsectDealer2() {
 	Dialogue_Menu_Clear_List();
 
 	if (Global_Variable_Query(kVariableChinyen) >= 15
-	 || Query_Difficulty_Level() == 0
+	 || Query_Difficulty_Level() == kGameDifficultyEasy
 	) {
 		DM_Add_To_List_Never_Repeat_Once_Selected(530, 7, 5, 3); // BUY
 	}
@@ -335,7 +335,7 @@ void SceneScriptAR02::dialogueWithInsectDealer2() {
 
 	if (answerValue == 530) { // BUY
 		Actor_Says(kActorMcCoy, 120, 12);
-		if (Query_Difficulty_Level() != 0) {
+		if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 			Global_Variable_Decrement(kVariableChinyen, 15);
 		}
 		Actor_Clue_Acquire(kActorMcCoy, kClueMaggieBracelet, true, kActorInsectDealer);
diff --git a/engines/bladerunner/script/scene/bb06.cpp b/engines/bladerunner/script/scene/bb06.cpp
index baa94ae..d27ea18 100644
--- a/engines/bladerunner/script/scene/bb06.cpp
+++ b/engines/bladerunner/script/scene/bb06.cpp
@@ -85,7 +85,7 @@ void SceneScriptBB06::SceneLoaded() {
 #if BLADERUNNER_ORIGINAL_BUGS // Sebastian's Doll Fix
 	// This Item_Add_To_World call is only ok for the transition from BB51 to BB06,
 	// otherwise the doll item is not placed in the current set
-	Item_Add_To_World(kItemBB06ControlBox, 931, kSetBB06_BB07, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
+	Item_Add_To_World(kItemBB06ControlBox, kModelAnimationBadge, kSetBB06_BB07, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
 #else
 	if (!Game_Flag_Query(kFlagBB06AndroidDestroyed)) {
 		Combat_Target_Object("BOX31"); //
diff --git a/engines/bladerunner/script/scene/bb07.cpp b/engines/bladerunner/script/scene/bb07.cpp
index ba2f659..c7364d8 100644
--- a/engines/bladerunner/script/scene/bb07.cpp
+++ b/engines/bladerunner/script/scene/bb07.cpp
@@ -76,7 +76,7 @@ bool SceneScriptBB07::ClickedOn3DObject(const char *objectName, bool a2) {
 			 && !Game_Flag_Query(kFlagBB07PrinterChecked)
 			) {
 				Actor_Voice_Over(130, kActorVoiceOver);
-				Item_Pickup_Spin_Effect(941, 439, 242);
+				Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 439, 242);
 				Actor_Voice_Over(140, kActorVoiceOver);
 				Game_Flag_Set(kFlagBB07PrinterChecked);
 				Actor_Clue_Acquire(kActorMcCoy, kClueDNASebastian, true, -1);
@@ -99,9 +99,9 @@ bool SceneScriptBB07::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptBB07::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 83) { // this item is never added to this set/scene
-		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 83, 36, true, false)) {
-			Actor_Face_Item(kActorMcCoy, 83, true);
+	if (itemId == kItemDNATyrell) { // this item is never added to this set/scene - a bug?
+		if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemDNATyrell, 36, true, false)) {
+			Actor_Face_Item(kActorMcCoy, kItemDNATyrell, true);
 			if (Game_Flag_Query(kFlagBB07ElectricityOn)) {
 				Actor_Voice_Over(150, kActorVoiceOver);
 				Actor_Voice_Over(160, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index 9cfe78b..0e1b53b 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -586,7 +586,7 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 		Actor_Says(kActorMcCoy, 290, 13);
 		if (Actor_Query_Friendliness_To_Other(kActorHowieLee, kActorMcCoy) > 49
 		 && (Global_Variable_Query(kVariableChinyen) > 10
-		  || Query_Difficulty_Level() == 0
+		  || Query_Difficulty_Level() == kGameDifficultyEasy
 		 )
 		) {
 			Actor_Says(kActorHowieLee, 50, kAnimationModeTalk);
@@ -594,7 +594,7 @@ void SceneScriptCT01::dialogueWithHowieLee() {
 			Actor_Face_Actor(kActorHowieLee, kActorMcCoy, true);
 			Actor_Says(kActorHowieLee, 70, 16);
 			Actor_Says(kActorMcCoy, 325, 13);
-			if (Query_Difficulty_Level() != 0) {
+			if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 				Global_Variable_Decrement(kVariableChinyen, 10);
 			}
 			Game_Flag_Set(kFlagCT01BoughtHowieLeeFood);
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index 43e2db0..79347d2 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -145,7 +145,7 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
 void SceneScriptCT04::dialogueWithHomeless() {
 	Dialogue_Menu_Clear_List();
 	if (Global_Variable_Query(kVariableChinyen) > 10
-	 || Query_Difficulty_Level() == 0
+	 || Query_Difficulty_Level() == kGameDifficultyEasy
 	) {
 		DM_Add_To_List_Never_Repeat_Once_Selected(410, 8, 4, -1); // YES
 	}
@@ -160,7 +160,7 @@ void SceneScriptCT04::dialogueWithHomeless() {
 		Actor_Says(kActorTransient, 10, 14);
 		Actor_Says(kActorTransient, 20, 14);
 		Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, 5);
-		if (Query_Difficulty_Level() != 0) {
+		if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 			Global_Variable_Decrement(kVariableChinyen, 10);
 		}
 		break;
diff --git a/engines/bladerunner/script/scene/ct06.cpp b/engines/bladerunner/script/scene/ct06.cpp
index cf39f33..00fc3bb 100644
--- a/engines/bladerunner/script/scene/ct06.cpp
+++ b/engines/bladerunner/script/scene/ct06.cpp
@@ -92,7 +92,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
 		Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 		if (!Game_Flag_Query(kFlagCT06ZubenPhoto)) {
 			Actor_Clue_Acquire(kActorMcCoy, kClueZuben, true, -1);
-			Item_Pickup_Spin_Effect(984, 340, 369);
+			Item_Pickup_Spin_Effect(kModelAnimationPhoto, 340, 369);
 			Actor_Voice_Over(350, kActorVoiceOver);
 			Actor_Voice_Over(360, kActorVoiceOver);
 			Actor_Voice_Over(370, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ct08.cpp b/engines/bladerunner/script/scene/ct08.cpp
index e584fb2..63763157 100644
--- a/engines/bladerunner/script/scene/ct08.cpp
+++ b/engines/bladerunner/script/scene/ct08.cpp
@@ -81,10 +81,10 @@ void SceneScriptCT08::SceneLoaded() {
 	Obstacle_Object("ASHTRAY", true);
 	Unobstacle_Object("BLANKET03", true);
 	if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
-		Item_Add_To_World(kItemRagDoll, 943, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemRagDoll, kModelAnimationRagDoll, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 12, 12, false, true, false, true);
 	}
 	if (!Actor_Clue_Query(kActorMcCoy, kClueCheese)) {
-		Item_Add_To_World(kItemCheese, 936, kSetCT08_CT51_UG12, -102.0f, 2.0f, 41.0f, 432, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemCheese, kModelAnimationCheese, kSetCT08_CT51_UG12, -102.0f, 2.0f, 41.0f, 432, 6, 6, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ct10.cpp b/engines/bladerunner/script/scene/ct10.cpp
index 298f01c..49ed547 100644
--- a/engines/bladerunner/script/scene/ct10.cpp
+++ b/engines/bladerunner/script/scene/ct10.cpp
@@ -73,7 +73,7 @@ void SceneScriptCT10::checkCabinet() {
 		if (Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge)) {
 			Actor_Voice_Over(3700, kActorVoiceOver);
 		} else {
-			Item_Pickup_Spin_Effect(931, 435, 258);
+			Item_Pickup_Spin_Effect(kModelAnimationBadge, 435, 258);
 			Actor_Clue_Acquire(kActorMcCoy, kClueHoldensBadge, true, -1);
 		}
 		Player_Gains_Control();
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 1c48fce..bd8e6e8 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -62,7 +62,7 @@ void SceneScriptCT11::SceneLoaded() {
 	Unobstacle_Object("BOX SOUTH 1", true);
 	if (Global_Variable_Query(kVariableChapter) < 4) {
 		if (!Game_Flag_Query(kFlagCT11DogWrapperTaken)) {
-			Item_Add_To_World(kItemDogWrapper, 951, 33, 640.21f, 30.0f, 470.0f, 512, 12, 12, false, true, false, true);
+			Item_Add_To_World(kItemDogWrapper, kModelAnimationLichenDogWrapper, 33, 640.21f, 30.0f, 470.0f, 512, 12, 12, false, true, false, true);
 			Scene_2D_Region_Add(0, 505, 316, 513, 321);
 			Game_Flag_Set(kFlagCT11DogWrapperAvailable);
 		}
diff --git a/engines/bladerunner/script/scene/ct51.cpp b/engines/bladerunner/script/scene/ct51.cpp
index 231f7bc..d299595 100644
--- a/engines/bladerunner/script/scene/ct51.cpp
+++ b/engines/bladerunner/script/scene/ct51.cpp
@@ -45,10 +45,10 @@ void SceneScriptCT51::SceneLoaded() {
 	Unobstacle_Object("BLANKET03", true);
 	Clickable_Object("BED02");
 	if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
-		Item_Add_To_World(kItemRagDoll, 943, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 24, 24, false, true, false, true);
+		Item_Add_To_World(kItemRagDoll, kModelAnimationRagDoll, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 24, 24, false, true, false, true);
 	}
 	if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbus1)) {
-		Item_Add_To_World(kItemMoonbusPhoto, 984, kSetCT08_CT51_UG12, 44.0f, 0.0f, -22.0f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemMoonbusPhoto, kModelAnimationPhoto, kSetCT08_CT51_UG12, 44.0f, 0.0f, -22.0f, 0, 12, 12, false, true, false, true);
 	}
 }
 
@@ -84,7 +84,7 @@ bool SceneScriptCT51::ClickedOnItem(int itemId, bool a2) {
 
 	if (itemId == kItemMoonbusPhoto) {
 		Actor_Clue_Acquire(kActorMcCoy, kClueMoonbus1, true, -1);
-		Item_Pickup_Spin_Effect(984, 490, 307);
+		Item_Pickup_Spin_Effect(kModelAnimationPhoto, 490, 307);
 		Item_Remove_From_World(kItemMoonbusPhoto);
 		Actor_Says(kActorMcCoy, 8527, kAnimationModeTalk);
 		return true;
diff --git a/engines/bladerunner/script/scene/dr05.cpp b/engines/bladerunner/script/scene/dr05.cpp
index b8292c4..b433a00 100644
--- a/engines/bladerunner/script/scene/dr05.cpp
+++ b/engines/bladerunner/script/scene/dr05.cpp
@@ -55,9 +55,9 @@ void SceneScriptDR05::SceneLoaded() {
 	Clickable_Object("T2 DOORWAY");
 
 	if (!Game_Flag_Query(kFlagDR05BombExploded)) {
-		Item_Add_To_World(kItemBomb, 932, kSetDR05, -1.57f, 31.33f, 75.21f, 540, 16, 16, true, true, false, true);
+		Item_Add_To_World(kItemBomb, kModelAnimationBomb, 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);
+			Item_Add_To_World(kItemChain, kModelAnimationBadge, kSetDR05, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true); // TODO a bug? reusing still animation of kModelAnimationBadge
 		}
 	}
 }
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index 26eb0e9..8fc7503 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -162,7 +162,7 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
 					Actor_Voice_Over(870, kActorVoiceOver);
 					Actor_Voice_Over(880, kActorVoiceOver);
 					Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, true, kActorLance);
-					if (Query_Difficulty_Level() != 0) {
+					if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 						Global_Variable_Increment(kVariableChinyen, 200);
 					}
 				}
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp
index bca5346..4f3f1b7 100644
--- a/engines/bladerunner/script/scene/hc01.cpp
+++ b/engines/bladerunner/script/scene/hc01.cpp
@@ -131,11 +131,11 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) {
 bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) {
 	if (itemId == kItemCamera) {
 		Item_Remove_From_World(kItemCamera);
-		Item_Pickup_Spin_Effect(977, 361, 381);
+		Item_Pickup_Spin_Effect(kModelAnimationIzoCamera, 361, 381);
 		Delay(1500);
-		Item_Pickup_Spin_Effect(984, 377, 397);
+		Item_Pickup_Spin_Effect(kModelAnimationPhoto, 377, 397);
 		Delay(1500);
-		Item_Pickup_Spin_Effect(984, 330, 384);
+		Item_Pickup_Spin_Effect(kModelAnimationPhoto, 330, 384);
 		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
@@ -210,7 +210,7 @@ void SceneScriptHC01::SceneFrameAdvanced(int frame) {
 
 	if (frame == 80) {
 		Ambient_Sounds_Play_Sound(kSfxTRPDOOR1, 40, 100, 100, 0);
-		Item_Add_To_World(kItemGreenPawnLock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true);
+		Item_Add_To_World(kItemGreenPawnLock, kModelAnimationBadge, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true); // TODO a bug? reusing still animation of kModelAnimationBadge
 	}
 }
 
@@ -278,7 +278,7 @@ void SceneScriptHC01::dialogueWithIzo() {
 			Actor_Says(kActorIzo, 250, 13);
 			Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -1);
 			if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47
-			 && Query_Difficulty_Level() == 0
+			 && Query_Difficulty_Level() == kGameDifficultyEasy
 			) {
 				takePhotoAndRunAway();
 			}
@@ -303,7 +303,7 @@ void SceneScriptHC01::dialogueWithIzo() {
 			Actor_Says(kActorIzo, 220, 16);
 			Actor_Says(kActorIzo, 230, kAnimationModeTalk);
 			Actor_Says(kActorIzo, 240, 15);
-			if (Query_Difficulty_Level() < 2) {
+			if (Query_Difficulty_Level() < kGameDifficultyHard) {
 				Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -1);
 			}
 		}
@@ -315,7 +315,7 @@ void SceneScriptHC01::dialogueWithIzo() {
 			Actor_Says(kActorIzo, 170, kAnimationModeTalk);
 			Actor_Says(kActorIzo, 180, kAnimationModeTalk);
 			Actor_Says(kActorIzo, 190, 12);
-			if (Query_Difficulty_Level() < 2) {
+			if (Query_Difficulty_Level() < kGameDifficultyHard) {
 				Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2);
 			}
 		}
@@ -342,7 +342,7 @@ void SceneScriptHC01::dialogueWithIzo() {
 			Actor_Says(kActorIzo, 300, 12);
 			Actor_Says(kActorIzo, 310, 17);
 			Actor_Says(kActorMcCoy, 1140, kAnimationModeTalk);
-			if (Query_Difficulty_Level() < 2) {
+			if (Query_Difficulty_Level() < kGameDifficultyHard) {
 				Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2);
 			}
 			if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47) {
diff --git a/engines/bladerunner/script/scene/hc02.cpp b/engines/bladerunner/script/scene/hc02.cpp
index 413c9a7..bf35dd3 100644
--- a/engines/bladerunner/script/scene/hc02.cpp
+++ b/engines/bladerunner/script/scene/hc02.cpp
@@ -114,7 +114,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 			} else if ( Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1)
 			        && !Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe)
 			        &&  (Global_Variable_Query(kVariableChinyen) > 20
-			         ||  Query_Difficulty_Level() == 0
+			         ||  Query_Difficulty_Level() == kGameDifficultyEasy
 			        )
 			) {
 				Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, true, kActorHawkersBarkeep);
@@ -129,7 +129,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 				Actor_Change_Animation_Mode(kActorMcCoy, 23);
 				Delay(1500);
 				Actor_Says_With_Pause(kActorHawkersBarkeep, 50, 1.6f, 17);
-				if (Query_Difficulty_Level() != 0) {
+				if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 					Global_Variable_Decrement(kVariableChinyen, 20);
 				}
 				Actor_Says(kActorMcCoy, 1245, 13);
@@ -143,9 +143,9 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
 					Game_Flag_Set(kFlagHC02HawkersBarkeepBraceletTalk);
 				}
 				if (Global_Variable_Query(kVariableChinyen) > 5
-				 || Query_Difficulty_Level() == 0
+				 || Query_Difficulty_Level() == kGameDifficultyEasy
 				) {
-					if (Query_Difficulty_Level() != 0) {
+					if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 						Global_Variable_Decrement(kVariableChinyen, 5);
 					}
 					Global_Variable_Increment(kVariableMcCoyDrinks, 1);
diff --git a/engines/bladerunner/script/scene/hc03.cpp b/engines/bladerunner/script/scene/hc03.cpp
index 426bdc1..06a8c3b 100644
--- a/engines/bladerunner/script/scene/hc03.cpp
+++ b/engines/bladerunner/script/scene/hc03.cpp
@@ -130,11 +130,11 @@ bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) {
 
 	if (itemId == kItemCamera) {
 		Item_Remove_From_World(kItemCamera);
-		Item_Pickup_Spin_Effect(977, 68, 435);
+		Item_Pickup_Spin_Effect(kModelAnimationIzoCamera, 68, 435);
 		Delay(1500);
-		Item_Pickup_Spin_Effect(984, 78, 435);
+		Item_Pickup_Spin_Effect(kModelAnimationPhoto, 78, 435);
 		Delay(1500);
-		Item_Pickup_Spin_Effect(984, 58, 435);
+		Item_Pickup_Spin_Effect(kModelAnimationPhoto, 58, 435);
 		if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 			Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
 		} else {
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index d5b4895..7230474 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -59,7 +59,7 @@ void SceneScriptKP05::SceneLoaded() {
 	if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource)
 	 &&  Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	) {
-		Item_Add_To_World(kItemPowerSource, 960, kSetKP05_KP06, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
+		Item_Add_To_World(kItemPowerSource, kModelAnimationPowerSource, kSetKP05_KP06, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index b7e869c..80dade2 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -580,7 +580,7 @@ void SceneScriptMA04::sleep() {
 			Global_Variable_Set(kVariableChapter, 2);
 			Chapter_Enter(2, kSetMA02_MA04, kSceneMA04);
 #if BLADERUNNER_ORIGINAL_BUGS
-			if (Query_Difficulty_Level() != 0) {
+			if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 				if (!Game_Flag_Query(kFlagZubenBountyPaid)) {
 					Global_Variable_Increment(kVariableChinyen, 200);
 				}
@@ -589,7 +589,7 @@ void SceneScriptMA04::sleep() {
 			// NOTE If not for the "Report Im" to Guzza, it would be simpler to have McCoy get the money as soon as he retires Zuben
 			//		so that would be in a single place in the code
 			if (!Game_Flag_Query(kFlagZubenBountyPaid) && Game_Flag_Query(kFlagZubenRetired)) { // get retirement money at end of day 1 only if Zuben was retired.
-				if (Query_Difficulty_Level() != 0) {
+				if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 					Global_Variable_Increment(kVariableChinyen, 200);
 				}
 				Game_Flag_Set(kFlagZubenBountyPaid); // not a proper bug, but was missing from original code, so the flag would remain in non-consistent state in this case
diff --git a/engines/bladerunner/script/scene/nr02.cpp b/engines/bladerunner/script/scene/nr02.cpp
index ea15678..e643a6f 100644
--- a/engines/bladerunner/script/scene/nr02.cpp
+++ b/engines/bladerunner/script/scene/nr02.cpp
@@ -115,21 +115,21 @@ bool SceneScriptNR02::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptNR02::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == kItemGordosLighter1
-	 || itemId == kItemGordosLighter2
+	if (itemId == kItemGordosLighterReplicant
+	 || itemId == kItemGordosLighterHuman
 	) {
 		if(!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 109.38f, -24.0f, 420.5f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 423, false);
-			if (itemId == kItemGordosLighter1) {
-				Item_Remove_From_World(kItemGordosLighter1);
+			if (itemId == kItemGordosLighterReplicant) {
+				Item_Remove_From_World(kItemGordosLighterReplicant);
 				Item_Pickup_Spin_Effect(953, 214, 380);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter1, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighterReplicant, true, -1);
 			}
 
-			if (itemId == kItemGordosLighter2) {
-				Item_Remove_From_World(kItemGordosLighter2);
+			if (itemId == kItemGordosLighterHuman) {
+				Item_Remove_From_World(kItemGordosLighterHuman);
 				Item_Pickup_Spin_Effect(954, 214, 380);
-				Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighter2, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueGordosLighterHuman, true, -1);
 			}
 		}
 	}
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index 234467e..76f22f0 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -268,7 +268,7 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 		case kGoalEarlyQNR04Talk3:
 			Actor_Clue_Acquire(kActorMcCoy, kClueDektorasDressingRoom, false, kActorEarlyQ);
-			Item_Pickup_Spin_Effect(984, 200, 160);
+			Item_Pickup_Spin_Effect(kModelAnimationPhoto, 200, 160);
 			Actor_Says(kActorEarlyQ, 200, 30);
 			Actor_Says(kActorEarlyQ, 210, 30);
 			Actor_Says(kActorEarlyQ, 220, 30);
diff --git a/engines/bladerunner/script/scene/ps04.cpp b/engines/bladerunner/script/scene/ps04.cpp
index 7367568..b94f1a9 100644
--- a/engines/bladerunner/script/scene/ps04.cpp
+++ b/engines/bladerunner/script/scene/ps04.cpp
@@ -61,7 +61,7 @@ void SceneScriptPS04::SceneLoaded() {
 	 && !Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
 	 && !Game_Flag_Query(kFlagPS04WeaponsOrderForm)
 	) {
-		Item_Add_To_World(kItemWeaponsOrderForm, 958, kSetPS04, -643.5f, -318.82f, 1148.87f, 525, 16, 12, false, true, false, true);
+		Item_Add_To_World(kItemWeaponsOrderForm, kModelAnimationOriginalRequisitionForm, kSetPS04, -643.5f, -318.82f, 1148.87f, 525, 16, 12, false, true, false, true);
 		Game_Flag_Set(kFlagPS04WeaponsOrderForm);
 	}
 
@@ -192,7 +192,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			Actor_Says(kActorGuzza, 550, 32);
 			Actor_Says(kActorMcCoy, 4065, 18);
 			Actor_Says(kActorGuzza, 560, 34);
-			if (Query_Difficulty_Level() != 0) {
+			if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 				Global_Variable_Increment(kVariableChinyen, 100);
 			}
 		} else {
@@ -215,7 +215,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
 		Actor_Says(kActorGuzza, 550, 32);
 		Actor_Says(kActorMcCoy, 4065, 18);
 		Actor_Says(kActorGuzza, 560, 34);
-		if (Query_Difficulty_Level() != 0) {
+		if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 			Global_Variable_Increment(kVariableChinyen, 100);
 		}
 #endif // BLADERUNNER_RESTORED_CUT_CONTENT
@@ -260,13 +260,13 @@ void SceneScriptPS04::dialogueWithGuzza() {
 			Actor_Says(kActorGuzza, 270, 32);
 			Game_Flag_Set(kFlagPS04GuzzaTalkZubenRetired);
 #if BLADERUNNER_ORIGINAL_BUGS
-			if (Query_Difficulty_Level() != 0) {
+			if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 				Global_Variable_Increment(kVariableChinyen, 200);
 			}
 			Game_Flag_Set(kFlagZubenBountyPaid);
 #else
 			if (!Game_Flag_Query(kFlagZubenBountyPaid)) { // get retirement money only if haven't been auto-paid at end of Day 1 (sleep trigger)
-				if (Query_Difficulty_Level() != 0) {
+				if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 					Global_Variable_Increment(kVariableChinyen, 200);
 				}
 				Game_Flag_Set(kFlagZubenBountyPaid); // not a proper bug, but was missing from original code, so the flag would remain in non-consistent state in this case
diff --git a/engines/bladerunner/script/scene/ps10.cpp b/engines/bladerunner/script/scene/ps10.cpp
index 1993249..6cb50cd 100644
--- a/engines/bladerunner/script/scene/ps10.cpp
+++ b/engines/bladerunner/script/scene/ps10.cpp
@@ -452,15 +452,15 @@ void SceneScriptPS10::SceneLoaded() {
 // every maze target begins as NON-targetable
 		targetStateMZ = false;
 #endif // BLADERUNNER_ORIGINAL_BUGS
-		Item_Add_To_World(kItemPS10Target1, 443, kSetPS10_PS11_PS12_PS13,  -240.0f, -80.74f, 145.0f, 989, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target2, 443, kSetPS10_PS11_PS12_PS13,  -240.0f,  -8.74f, 145.0f, 740, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target3, 445, kSetPS10_PS11_PS12_PS13,  -165.0f, 111.53f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target4, 447, kSetPS10_PS11_PS12_PS13,  -125.0f,  160.0f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target5, 441, kSetPS10_PS11_PS12_PS13, -246.71f, 205.51f, -20.0f,   0, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target6, 445, kSetPS10_PS11_PS12_PS13,  -27.69f, -86.92f, 434.0f, 999, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target7, 441, kSetPS10_PS11_PS12_PS13, -347.15f,   7.68f, -20.0f, 264, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target8, 449, kSetPS10_PS11_PS12_PS13,   -51.0f,  160.0f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS10Target9, 445, kSetPS10_PS11_PS12_PS13,    39.0f,   9.16f, -20.0f, 738, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target1, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -240.0f, -80.74f, 145.0f, 989, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target2, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -240.0f,  -8.74f, 145.0f, 740, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target3, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -165.0f, 111.53f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target4, kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -125.0f,  160.0f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target5, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13, -246.71f, 205.51f, -20.0f,   0, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target6, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -27.69f, -86.92f, 434.0f, 999, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target7, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13, -347.15f,   7.68f, -20.0f, 264, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target8, kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,   -51.0f,  160.0f, -10.0f, 993, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS10Target9, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,    39.0f,   9.16f, -20.0f, 738, 72, 36, targetStateMZ, false, false, true);
 
 	}
 
@@ -473,16 +473,16 @@ void SceneScriptPS10::SceneLoaded() {
 	Police_Maze_Target_Track_Add(kItemPS10Target7, -347.15f,   7.68f, -20.0f,    39.0f,   9.16f, -20.0f, 90, getPoliceMazePS10TrackData7(), false);
 	Police_Maze_Target_Track_Add(kItemPS10Target8,   -51.0f,  160.0f, -10.0f,  -125.0f,  160.0f, -10.0f, 35, getPoliceMazePS10TrackData8(),  true);
 	Police_Maze_Target_Track_Add(kItemPS10Target9,    39.0f,   9.16f, -20.0f, -347.15f,   7.68f, -20.0f, 90, getPoliceMazePS10TrackData9(), false);
-	Preload(441);
-	Preload(442);
-	Preload(443);
-	Preload(444);
-	Preload(445);
-	Preload(446);
-	Preload(447);
-	Preload(448);
-	Preload(449);
-	Preload(450);
+	Preload(kModelAnimationMaleTargetEmptyHandsActive);
+	Preload(kModelAnimationMaleTargetEmptyHandsDead);
+	Preload(kModelAnimationMaleTargetWithGunActive);
+	Preload(kModelAnimationMaleTargetWithGunDead);
+	Preload(kModelAnimationMaleTargetWithShotgunActive);
+	Preload(kModelAnimationMaleTargetWithShotgunDead);
+	Preload(kModelAnimationFemaleTargetWithBabyActive);
+	Preload(kModelAnimationFemaleTargetWithBabyDead);
+	Preload(kModelAnimationFemaleTargetWithGunActive);
+	Preload(kModelAnimationFemaleTargetWithGunDead);
 }
 
 bool SceneScriptPS10::MouseClick(int x, int y) {
diff --git a/engines/bladerunner/script/scene/ps11.cpp b/engines/bladerunner/script/scene/ps11.cpp
index 03c3b09..a56e3d0 100644
--- a/engines/bladerunner/script/scene/ps11.cpp
+++ b/engines/bladerunner/script/scene/ps11.cpp
@@ -687,22 +687,22 @@ void SceneScriptPS11::SceneLoaded() {
 // every maze target begins as NON-targetable
 		targetStateMZ = false;
 #endif // BLADERUNNER_ORIGINAL_BUGS
-		Item_Add_To_World(kItemPS11Target1,  449, kSetPS10_PS11_PS12_PS13,  -450.0f,  -7.5f, 335.0f,  50, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target2,  449, kSetPS10_PS11_PS12_PS13,  -740.0f,  27.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target3,  449, kSetPS10_PS11_PS12_PS13,  -740.0f,  99.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target4,  441, kSetPS10_PS11_PS12_PS13,  -400.0f, -9.23f, -75.0f, 725, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target5,  443, kSetPS10_PS11_PS12_PS13, -803.72f, -72.7f, 60.22f, 340, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target6,  443, kSetPS10_PS11_PS12_PS13,  -853.0f, -70.0f, 195.0f, 900, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target7,  447, kSetPS10_PS11_PS12_PS13,  -740.0f,  27.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target8,  447, kSetPS10_PS11_PS12_PS13,  -740.0f,  99.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target9,  445, kSetPS10_PS11_PS12_PS13,  -888.0f, 155.0f, 100.0f, 310, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target10, 443, kSetPS10_PS11_PS12_PS13,  -430.0f, 164.0f,  11.0f, 900, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target11, 443, kSetPS10_PS11_PS12_PS13,  -430.0f, -0.86f,  11.0f, 512, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target12, 443, kSetPS10_PS11_PS12_PS13,  -891.0f,   3.1f,  90.0f, 280, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target13, 447, kSetPS10_PS11_PS12_PS13,  -891.0f,   3.1f,  90.0f, 280, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target14, 445, kSetPS10_PS11_PS12_PS13,  -891.0f, 171.0f, 190.0f, 255, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target15, 441, kSetPS10_PS11_PS12_PS13,  -888.0f, 155.0f,  30.0f, 310, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS11Target16, 445, kSetPS10_PS11_PS12_PS13,  -800.0f, -9.23f, -75.0f, 346, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target1,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -450.0f,  -7.5f, 335.0f,  50, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target2,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -740.0f,  27.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target3,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -740.0f,  99.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target4,  kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  -400.0f, -9.23f, -75.0f, 725, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target5,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13, -803.72f, -72.7f, 60.22f, 340, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target6,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -853.0f, -70.0f, 195.0f, 900, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target7,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -740.0f,  27.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target8,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -740.0f,  99.0f, -30.0f, 860, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target9,  kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -888.0f, 155.0f, 100.0f, 310, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target10, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -430.0f, 164.0f,  11.0f, 900, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target11, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -430.0f, -0.86f,  11.0f, 512, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target12, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -891.0f,   3.1f,  90.0f, 280, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target13, kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -891.0f,   3.1f,  90.0f, 280, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target14, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -891.0f, 171.0f, 190.0f, 255, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target15, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  -888.0f, 155.0f,  30.0f, 310, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS11Target16, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -800.0f, -9.23f, -75.0f, 346, 72, 36, targetStateMZ, false, false, true);
 	}
 
 	Police_Maze_Target_Track_Add(kItemPS11Target1,   -450.0f,  -7.5f, 335.0f,  -450.0f,  -7.5f, 295.0f,   8, getPoliceMazePS11TrackData9(),   true);
diff --git a/engines/bladerunner/script/scene/ps12.cpp b/engines/bladerunner/script/scene/ps12.cpp
index e31f8cf..0d0fcee 100644
--- a/engines/bladerunner/script/scene/ps12.cpp
+++ b/engines/bladerunner/script/scene/ps12.cpp
@@ -739,23 +739,23 @@ void SceneScriptPS12::SceneLoaded() {
 // every maze target begins as NON-targetable
 		targetStateMZ = false;
 #endif // BLADERUNNER_ORIGINAL_BUGS
-		Item_Add_To_World(kItemPS12Target1,  449, kSetPS10_PS11_PS12_PS13,  -691.8f, -9.06f, 587.67f,  200, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target2,  445, kSetPS10_PS11_PS12_PS13,  -679.6f, -45.4f, 721.05f,   67, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target3,  447, kSetPS10_PS11_PS12_PS13, -414.04f, -8.98f, 711.91f,  480, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target4,  443, kSetPS10_PS11_PS12_PS13,  -440.0f, -8.97f, 1137.0f, 1010, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target5,  441, kSetPS10_PS11_PS12_PS13, -764.92f, -0.84f, 950.22f,  540, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target6,  449, kSetPS10_PS11_PS12_PS13,  -696.0f,  -5.7f, 1185.0f,  469, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target7,  449, kSetPS10_PS11_PS12_PS13,  -635.0f,  -5.7f, 1165.0f,  198, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target8,  449, kSetPS10_PS11_PS12_PS13,  -620.0f, -8.63f, 1366.0f,  469, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target9,  447, kSetPS10_PS11_PS12_PS13,  -584.0f, -79.4f,  775.0f, 1010, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target10, 445, kSetPS10_PS11_PS12_PS13,  -578.0f, -79.4f,  810.0f,  990, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target11, 443, kSetPS10_PS11_PS12_PS13,  -400.0f, -12.0f, 1110.0f,  513, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target12, 449, kSetPS10_PS11_PS12_PS13, -414.04f, -8.98f, 711.91f,  480, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target13, 447, kSetPS10_PS11_PS12_PS13,  -400.0f, -12.0f, 1110.0f,  513, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target14, 449, kSetPS10_PS11_PS12_PS13,  -731.0f, 93.66f,  788.0f,  109, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target15, 441, kSetPS10_PS11_PS12_PS13,  -580.0f, -80.0f,  925.0f,  540, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target16, 441, kSetPS10_PS11_PS12_PS13,  -731.0f, 93.66f,  788.0f,  109, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS12Target17, 443, kSetPS10_PS11_PS12_PS13,  -580.0f, -80.0f,  925.0f,  540, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target1,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -691.8f, -9.06f, 587.67f,  200, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target2,  kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -679.6f, -45.4f, 721.05f,   67, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target3,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13, -414.04f, -8.98f, 711.91f,  480, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target4,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -440.0f, -8.97f, 1137.0f, 1010, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target5,  kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13, -764.92f, -0.84f, 950.22f,  540, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target6,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -696.0f,  -5.7f, 1185.0f,  469, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target7,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -635.0f,  -5.7f, 1165.0f,  198, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target8,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -620.0f, -8.63f, 1366.0f,  469, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target9,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -584.0f, -79.4f,  775.0f, 1010, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target10, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13,  -578.0f, -79.4f,  810.0f,  990, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target11, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -400.0f, -12.0f, 1110.0f,  513, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target12, kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13, -414.04f, -8.98f, 711.91f,  480, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target13, kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -400.0f, -12.0f, 1110.0f,  513, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target14, kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  -731.0f, 93.66f,  788.0f,  109, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target15, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  -580.0f, -80.0f,  925.0f,  540, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target16, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  -731.0f, 93.66f,  788.0f,  109, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS12Target17, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -580.0f, -80.0f,  925.0f,  540, 72, 36, targetStateMZ, false, false, true);
 	}
 	Police_Maze_Target_Track_Add(kItemPS12Target1,   -691.8f, -9.06f, 587.67f, -649.11f, -9.06f, 587.71f,  6, getPoliceMazePS12TrackData29(),  true);
 	Police_Maze_Target_Track_Add(kItemPS12Target2,   -679.6f, -45.4f, 721.05f,  -679.6f,  -1.4f, 721.05f,  6, getPoliceMazePS12TrackData30(),  true);
diff --git a/engines/bladerunner/script/scene/ps13.cpp b/engines/bladerunner/script/scene/ps13.cpp
index e88e3e9..ef1d45f 100644
--- a/engines/bladerunner/script/scene/ps13.cpp
+++ b/engines/bladerunner/script/scene/ps13.cpp
@@ -645,21 +645,21 @@ void SceneScriptPS13::SceneLoaded() {
 // every maze target begins as NON-targetable
 		targetStateMZ = false;
 #endif // BLADERUNNER_ORIGINAL_BUGS
-		Item_Add_To_World(kItemPS13Target1,  443, kSetPS10_PS11_PS12_PS13, -372.0f,   -9.0f,  1509.0f, 960, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target2,  443, kSetPS10_PS11_PS12_PS13, 291.61f,  -0.66f,  1610.3f, 823, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target3,  447, kSetPS10_PS11_PS12_PS13,  -25.0f,  102.0f,  1625.0f, 823, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target4,  449, kSetPS10_PS11_PS12_PS13, -45.51f,   -8.8f,  1676.0f, 922, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target5,  447, kSetPS10_PS11_PS12_PS13, 291.61f,  -0.66f,  1610.3f, 823, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target6,  443, kSetPS10_PS11_PS12_PS13,  -24.0f,  102.0f,  1625.0f, 823, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target7,  449, kSetPS10_PS11_PS12_PS13,  180.0f,  -72.7f,  1605.0f, 305, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target8,  443, kSetPS10_PS11_PS12_PS13, 127.79f,  14.56f, 1703.03f, 356, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target9,  443, kSetPS10_PS11_PS12_PS13, 136.37f,  -6.84f, 1425.43f, 512, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target10, 441, kSetPS10_PS11_PS12_PS13,  77.83f,  -79.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target11, 441, kSetPS10_PS11_PS12_PS13,  77.83f,   -7.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target12, 443, kSetPS10_PS11_PS12_PS13,  -88.0f,   -8.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target13, 447, kSetPS10_PS11_PS12_PS13, -45.51f,   -8.8f,  1676.0f, 922, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target14, 445, kSetPS10_PS11_PS12_PS13, -300.0f, -79.75f,  1543.0f, 465, 72, 36, targetStateMZ, false, false, true);
-		Item_Add_To_World(kItemPS13Target15, 449, kSetPS10_PS11_PS12_PS13, -325.0f,  -7.75f,  1543.0f, 465, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target1,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13, -372.0f,   -9.0f,  1509.0f, 960, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target2,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13, 291.61f,  -0.66f,  1610.3f, 823, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target3,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13,  -25.0f,  102.0f,  1625.0f, 823, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target4,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13, -45.51f,   -8.8f,  1676.0f, 922, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target5,  kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13, 291.61f,  -0.66f,  1610.3f, 823, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target6,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -24.0f,  102.0f,  1625.0f, 823, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target7,  kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13,  180.0f,  -72.7f,  1605.0f, 305, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target8,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13, 127.79f,  14.56f, 1703.03f, 356, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target9,  kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13, 136.37f,  -6.84f, 1425.43f, 512, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target10, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  77.83f,  -79.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target11, kModelAnimationMaleTargetEmptyHandsActive,  kSetPS10_PS11_PS12_PS13,  77.83f,   -7.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target12, kModelAnimationMaleTargetWithGunActive,     kSetPS10_PS11_PS12_PS13,  -88.0f,   -8.8f,  1520.5f, 327, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target13, kModelAnimationFemaleTargetWithBabyActive,  kSetPS10_PS11_PS12_PS13, -45.51f,   -8.8f,  1676.0f, 922, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target14, kModelAnimationMaleTargetWithShotgunActive, kSetPS10_PS11_PS12_PS13, -300.0f, -79.75f,  1543.0f, 465, 72, 36, targetStateMZ, false, false, true);
+		Item_Add_To_World(kItemPS13Target15, kModelAnimationFemaleTargetWithGunActive,   kSetPS10_PS11_PS12_PS13, -325.0f,  -7.75f,  1543.0f, 465, 72, 36, targetStateMZ, false, false, true);
 	}
 
 	Police_Maze_Target_Track_Add(kItemPS13Target1,  -372.0f,   -9.0f,  1509.0f, -345.0f,   -9.0f,  1509.0f,  6, getPoliceMazePS13TrackData46(),  true);
diff --git a/engines/bladerunner/script/scene/ps15.cpp b/engines/bladerunner/script/scene/ps15.cpp
index 4641335..cb7a751 100644
--- a/engines/bladerunner/script/scene/ps15.cpp
+++ b/engines/bladerunner/script/scene/ps15.cpp
@@ -43,7 +43,7 @@ void SceneScriptPS15::InitializeScene() {
 void SceneScriptPS15::SceneLoaded() {
 	Obstacle_Object("E.ARCH", true);
 	if (Global_Variable_Query(kVariableChapter) == 2) {
-		Item_Add_To_World(kItemWeaponsCrate, 983, 101, -208.0f, -113.43f, 30.28f, 750, 16, 12, false, true, false, true);
+		Item_Add_To_World(kItemWeaponsCrate, kModelAnimationWeaponsCrate, 101, -208.0f, -113.43f, 30.28f, 750, 16, 12, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index a0074eb..2170ce2 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -197,7 +197,7 @@ void SceneScriptRC01::SceneLoaded() {
 	}
 
 	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);
+		Item_Add_To_World(kItemChromeDebris, kModelAnimationChromeDebris, kSetRC01, -148.60f, -0.30f, 225.15f, 256, 24, 24, false, true, false, true);
 	}
 
 	if (!Game_Flag_Query(kFlagIntroPlayed)) {
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 46c6444..8f9529f 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -85,9 +85,9 @@ void SceneScriptRC02::SceneLoaded() {
 		Unclickable_Object("SCRTY CA03");
 	}
 	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);
+		Item_Add_To_World(kItemShellCasingA, kModelAnimationShellCasings, kSetRC02_RC51, -52.88f, -1238.89f, 108467.74f, 256, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemShellCasingB, kModelAnimationShellCasings, kSetRC02_RC51, -37.16f, -1238.89f, 108456.59f, 512, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemShellCasingC, kModelAnimationShellCasings, kSetRC02_RC51, -62.86f, -1238.89f, 108437.52f, 625, 6, 6, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp
index 66563a1..d2bfb4f 100644
--- a/engines/bladerunner/script/scene/rc04.cpp
+++ b/engines/bladerunner/script/scene/rc04.cpp
@@ -238,7 +238,7 @@ void SceneScriptRC04::dialogueWithBulletBob() {
 		Actor_Says(kActorBulletBob, 880, 34);
 		Actor_Clue_Acquire(kActorBulletBob, kClueHoldensBadge, true, kActorMcCoy);
 		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, 8);
-		if (Query_Difficulty_Level() != 0) {
+		if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 			Global_Variable_Increment(kVariableChinyen, 60);
 		}
 		break;
@@ -259,10 +259,10 @@ void SceneScriptRC04::dialogueWithBulletBob() {
 		}
 		Actor_Says(kActorBulletBob, 2120, 31);
 		if (Global_Variable_Query(kVariableChinyen) > 40
-		 || Query_Difficulty_Level() == 0
+		 || Query_Difficulty_Level() == kGameDifficultyEasy
 		) {
 			Actor_Says(kActorMcCoy, 4940, 13);
-			if (Query_Difficulty_Level() != 0) {
+			if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 				Global_Variable_Decrement(kVariableChinyen, 40);
 			}
 			Item_Pickup_Spin_Effect(995, 405, 192);
@@ -363,14 +363,14 @@ bool SceneScriptRC04::ClickedOnActor(int actorId) {
 				Delay(1000);
 				Actor_Says(kActorBulletBob, 2010, 35);
 				if (Global_Variable_Query(kVariableChinyen) > 50
-				 || Query_Difficulty_Level() == 0
+				 || Query_Difficulty_Level() == kGameDifficultyEasy
 				) {
 					Actor_Says(kActorMcCoy, 8975, 16);
-					if (Query_Difficulty_Level() != 0) {
+					if (Query_Difficulty_Level() != kGameDifficultyEasy) {
 						Global_Variable_Decrement(kVariableChinyen, 50);
 					}
 					Delay(3000);
-					Item_Pickup_Spin_Effect(941, 405, 192);
+					Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 405, 192);
 					Actor_Says(kActorBulletBob, 2030, 30);
 					Game_Flag_Set(kFlagKIAPrivacyAddon);
 				} else {
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index f8e30f0..369cf5d 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -48,13 +48,13 @@ void SceneScriptRC51::SceneLoaded() {
 	Unclickable_Object("GRL_DSKLEG");
 	Unclickable_Object("CURTAIN");
 	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);
+		Item_Add_To_World(kItemChopstickWrapper, kModelAnimationChopstickWrapper, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true);
 	}
 	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);
+		Item_Add_To_World(kItemCandy, kModelAnimationCandy, kSetRC02_RC51, 67.28f, -1193.38f, 108011.27f, 0, 6, 6, false, true, false, true);
 	}
 	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);
+		Item_Add_To_World(kItemToyDog, kModelAnimationToyDog, kSetRC02_RC51, -69.65f, -1238.89f, 107995.24f, 256, 18, 18, false, true, false, true);
 	}
 }
 
@@ -93,7 +93,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
 			Actor_Face_Item(kActorMcCoy, kItemCandy, true);
 			Actor_Clue_Acquire(kActorMcCoy, kClueCandy, true, -1);
 			Item_Remove_From_World(kItemCandy);
-			Item_Pickup_Spin_Effect(933, 445, 230);
+			Item_Pickup_Spin_Effect(kModelAnimationCandy, 445, 230);
 			Actor_Says(kActorMcCoy, 8735, 3);
 			Actor_Says(kActorMcCoy, 8529, 3);
 			Game_Flag_Set(kFlagRC51CandyTaken);
diff --git a/engines/bladerunner/script/scene/tb05.cpp b/engines/bladerunner/script/scene/tb05.cpp
index 2e67fa3..4051501 100644
--- a/engines/bladerunner/script/scene/tb05.cpp
+++ b/engines/bladerunner/script/scene/tb05.cpp
@@ -52,15 +52,15 @@ void SceneScriptTB05::SceneLoaded() {
 	Clickable_Object("MONITOR05");
 	Unclickable_Object("SMUDGE_GLASS01");
 	if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring)) {
-		Item_Add_To_World(kItemDragonflyEarring, 940, kSetTB05, 76.16f, 147.36f, -235.15f, 0, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemDragonflyEarring, kModelAnimationDragonflyEarring, kSetTB05, 76.16f, 147.36f, -235.15f, 0, 6, 6, false, true, false, true);
 	}
-	if (!Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet1)
-	 && !Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphlet2)
+	if (!Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphletEntertainModel)
+	 && !Actor_Clue_Query(kActorMcCoy, kClueTyrellSalesPamphletLolita)
 	 && (Game_Flag_Query(kFlagGordoIsReplicant)
 	  || Game_Flag_Query(kFlagLucyIsReplicant)
 	 )
 	) {
-		Item_Add_To_World(kItemTyrellSalesPamphlet, 972, kSetTB05, 129.01f, 147.12f, -162.98f, 0, 8, 8, false, true, false, true);
+		Item_Add_To_World(kItemTyrellSalesPamphlet, kModelAnimationTyrellSalesPamphlet, kSetTB05, 129.01f, 147.12f, -162.98f, 0, 8, 8, false, true, false, true);
 	}
 }
 
@@ -93,7 +93,7 @@ bool SceneScriptTB05::ClickedOn3DObject(const char *objectName, bool a2) {
 				) {
 					Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, true, -1);
 					Actor_Voice_Over(2230, kActorVoiceOver);
-					Item_Pickup_Spin_Effect(941, 352, 333);
+					Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 352, 333);
 					Actor_Voice_Over(2240, kActorVoiceOver);
 					Actor_Voice_Over(2250, kActorVoiceOver);
 					Actor_Voice_Over(2260, kActorVoiceOver);
@@ -114,7 +114,7 @@ bool SceneScriptTB05::ClickedOn3DObject(const char *objectName, bool a2) {
 				) {
 					Actor_Clue_Acquire(kActorMcCoy, kClueDNAMarcus, true, -1);
 					Actor_Voice_Over(2230, kActorVoiceOver);
-					Item_Pickup_Spin_Effect(941, 352, 333);
+					Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 352, 333);
 					Actor_Voice_Over(2240, kActorVoiceOver);
 					Actor_Voice_Over(2250, kActorVoiceOver);
 					Actor_Voice_Over(2260, kActorVoiceOver);
@@ -158,14 +158,14 @@ bool SceneScriptTB05::ClickedOnItem(int itemId, bool a2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 107.89f, 147.12f, -156.26f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 126, false);
 			Item_Remove_From_World(kItemTyrellSalesPamphlet);
-			Item_Pickup_Spin_Effect(972, 449, 431);
+			Item_Pickup_Spin_Effect(kModelAnimationTyrellSalesPamphlet, 449, 431);
 			Actor_Voice_Over(4280, kActorVoiceOver);
 			if (Game_Flag_Query(kFlagGordoIsReplicant)) {
 				Actor_Voice_Over(4290, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet1, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphletEntertainModel, true, -1);
 			} else {
 				Actor_Voice_Over(4300, kActorVoiceOver);
-				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphlet2, true, -1);
+				Actor_Clue_Acquire(kActorMcCoy, kClueTyrellSalesPamphletLolita, true, -1);
 			}
 		}
 	}
diff --git a/engines/bladerunner/script/scene/tb06.cpp b/engines/bladerunner/script/scene/tb06.cpp
index b9ac39c..0f24e87 100644
--- a/engines/bladerunner/script/scene/tb06.cpp
+++ b/engines/bladerunner/script/scene/tb06.cpp
@@ -50,17 +50,17 @@ void SceneScriptTB06::SceneLoaded() {
 	if (!Game_Flag_Query(kFlagTB06DogCollarTaken)
 	 &&  Actor_Query_Goal_Number(kActorPhotographer) != 199
 	) {
-		Item_Add_To_World(kItemDogCollar, 942, kSetTB06, 36.54f, 149.48f, -565.67f, 0, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemDogCollar, kModelAnimationDogCollar, kSetTB06, 36.54f, 149.48f, -565.67f, 0, 6, 6, false, true, false, true);
 	}
 
 	if (!Game_Flag_Query(kFlagTB06KitchenBoxTaken)) {
-		Item_Add_To_World(kItemKitchenBox, 955, kSetTB06, 18.0f, 149.65f, -599.0f, 0, 6, 6, false, true, false, true);
+		Item_Add_To_World(kItemKitchenBox, kModelAnimationKingstonKitchenBox, kSetTB06, 18.0f, 149.65f, -599.0f, 0, 6, 6, false, true, false, true);
 	}
 
 	if (Actor_Query_Goal_Number(kActorPhotographer) != 199) {
-		Item_Add_To_World(kItemDeadDogA, 978, kSetTB06, -46.82f, 149.6f, -666.88f, 0, 12, 12, false, true, false, true);
-		Item_Add_To_World(kItemDeadDogB, 979, kSetTB06, -30.27f, 149.6f, -610.7f, 0, 15, 45, false, true, false, true);
-		Item_Add_To_World(kItemDeadDogC, 980, kSetTB06, 9.87f, 149.6f, -683.5f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogA, kModelAnimationDeadDogA, kSetTB06, -46.82f, 149.6f, -666.88f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogB, kModelAnimationDeadDogB, kSetTB06, -30.27f, 149.6f, -610.7f, 0, 15, 45, false, true, false, true);
+		Item_Add_To_World(kItemDeadDogC, kModelAnimationDeadDogC, kSetTB06, 9.87f, 149.6f, -683.5f, 0, 12, 12, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index e3fc30d..0faa58d 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -49,7 +49,7 @@ void SceneScriptTB07::InitializeScene() {
 	if ( Global_Variable_Query(kVariableChapter) == 4
 	 && !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
 	) {
-		Item_Add_To_World(kItemDNATyrell, 941, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemDNATyrell, kModelAnimationDNADataDisc, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
 	}
 	if (Game_Flag_Query(kFlagTB07ShadeDown)) {
 		Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
@@ -79,7 +79,7 @@ bool SceneScriptTB07::ClickedOnItem(int itemId, bool a2) {
 	if (!Loop_Actor_Walk_To_Item(kActorMcCoy, itemId, 36, true, false)) {
 		Actor_Face_Item(kActorMcCoy, itemId, true);
 		if (itemId == kItemDNATyrell) {
-			Item_Pickup_Spin_Effect(941, 331, 296);
+			Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 331, 296);
 			Actor_Clue_Acquire(kActorMcCoy, kClueDNATyrell, false, -1);
 		}
 		Item_Remove_From_World(itemId);
diff --git a/engines/bladerunner/script/scene/ug02.cpp b/engines/bladerunner/script/scene/ug02.cpp
index 266eb4b..67d2d92 100644
--- a/engines/bladerunner/script/scene/ug02.cpp
+++ b/engines/bladerunner/script/scene/ug02.cpp
@@ -73,7 +73,7 @@ void SceneScriptUG02::SceneLoaded() {
 	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);
+		Item_Add_To_World(kItemRadiationGoogles, kModelAnimationRadiationGoggles, kSetUG02, -300.37f, 120.16f, -81.31f, 0, 8, 8, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index 7d10a98..89f2e4b 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -92,7 +92,7 @@ void SceneScriptUG13::SceneLoaded() {
 	  ||  Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
 	 )
 	) {
-		Item_Add_To_World(kItemWeaponsOrderForm, 958, 85, -209.01f, 70.76f, -351.79f, 0, 16, 12, false, true, false, true);
+		Item_Add_To_World(kItemWeaponsOrderForm, kModelAnimationOriginalRequisitionForm, 85, -209.01f, 70.76f, -351.79f, 0, 16, 12, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ug16.cpp b/engines/bladerunner/script/scene/ug16.cpp
index a00aae3..cfa141a 100644
--- a/engines/bladerunner/script/scene/ug16.cpp
+++ b/engines/bladerunner/script/scene/ug16.cpp
@@ -90,7 +90,7 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
 				Actor_Change_Animation_Mode(kActorMcCoy, 38);
 				Sound_Play(kSfxDRAWER1, 100, 0, 0, 50);
 				Delay(1000);
-				Item_Pickup_Spin_Effect(948, 460, 287);
+				Item_Pickup_Spin_Effect(kModelAnimationFolder, 460, 287);
 				Actor_Voice_Over(2740, kActorVoiceOver);
 				Actor_Voice_Over(2750, kActorVoiceOver);
 				Actor_Voice_Over(2760, kActorVoiceOver);
@@ -120,7 +120,7 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
 				Delay(2000);
 				Actor_Says(kActorMcCoy, 5725, 14);
 				Delay(1000);
-				Item_Pickup_Spin_Effect(941, 418, 305);
+				Item_Pickup_Spin_Effect(kModelAnimationDNADataDisc, 418, 305);
 				Actor_Clue_Acquire(kActorMcCoy, kClueDNALutherLance, true, -1);
 				return true;
 			}
@@ -386,7 +386,7 @@ void SceneScriptUG16::dialogueWithLuther() {
 		Actor_Says(kActorLance, 420, 17);
 		Actor_Says(kActorMcCoy, 5835, 13);
 		Delay(1000);
-		Item_Pickup_Spin_Effect(948, 239, 454);
+		Item_Pickup_Spin_Effect(kModelAnimationFolder, 239, 454);
 		Actor_Voice_Over(2740, kActorVoiceOver);
 		Actor_Voice_Over(2750, kActorVoiceOver);
 		Actor_Voice_Over(2760, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/ug18.cpp b/engines/bladerunner/script/scene/ug18.cpp
index 3b9d7c0..3fc49e8 100644
--- a/engines/bladerunner/script/scene/ug18.cpp
+++ b/engines/bladerunner/script/scene/ug18.cpp
@@ -90,7 +90,7 @@ void SceneScriptUG18::SceneLoaded() {
 	 && !Game_Flag_Query(kFlagUG18GuzzaScene)
 	 &&  Global_Variable_Query(kVariableChapter) == 4
 	) {
-		Item_Add_To_World(kItemBriefcase, 987, kSetUG18, -55.21f, 0.0f, -302.17f, 0, 12, 12, false, true, false, true);
+		Item_Add_To_World(kItemBriefcase, kModelAnimationBriefcase, kSetUG18, -55.21f, 0.0f, -302.17f, 0, 12, 12, false, true, false, true);
 	}
 }
 
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index b082983..f67f480 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -770,15 +770,6 @@ void ScriptBase::Item_Remove_From_World(int itemId) {
 	_vm->_items->remove(itemId);
 }
 
-// Show text as subtitles mainly for debugging purposes
-// eg. display debug data on screen as subtitles
-void ScriptBase::Set_Subtitle_Text_On_Screen(Common::String displayText) {
-	debugC(kDebugScript, "Set_Subtitle_Text_On_Screen(%s)", displayText.c_str());
-	_vm->_subtitles->setGameSubsText(displayText, true);
-	_vm->_subtitles->show();
-}
-
-
 void ScriptBase::Item_Spin_In_World(int itemId) {
 	debugC(kDebugScript, "Item_Spin_In_World(%d)", itemId);
 	_vm->_items->spinInWorld(itemId);
@@ -809,6 +800,14 @@ bool ScriptBase::Item_Query_Visible(int itemId) {
 	return _vm->_items->isVisible(itemId);
 }
 
+// Show text as subtitles mainly for debugging purposes
+// eg. display debug data on screen as subtitles
+void ScriptBase::Set_Subtitle_Text_On_Screen(Common::String displayText) {
+	debugC(kDebugScript, "Set_Subtitle_Text_On_Screen(%s)", displayText.c_str());
+	_vm->_subtitles->setGameSubsText(displayText, true);
+	_vm->_subtitles->show();
+}
+
 int ScriptBase::Animation_Open() {
 	//This is not implemented in game
 	return -1;
diff --git a/engines/bladerunner/script/script.h b/engines/bladerunner/script/script.h
index 340752a..fbd366f 100644
--- a/engines/bladerunner/script/script.h
+++ b/engines/bladerunner/script/script.h
@@ -123,12 +123,12 @@ protected:
 	void Actor_Set_Immunity_To_Obstacles(int actorId, bool isImmune);
 	void Item_Add_To_World(int itemId, int animationId, int setId, float x, float y, float z, signed int facing, int height, int width, bool isTargetable, bool isObstacle, bool isPoliceMazeEnemy, bool updateOnly);
 	void Item_Remove_From_World(int itemId);
-	void Set_Subtitle_Text_On_Screen(Common::String displayText);
 	void Item_Spin_In_World(int itemId);
 	void Item_Flag_As_Target(int itemId);
 	void Item_Flag_As_Non_Target(int itemId);
-	void Item_Pickup_Spin_Effect(int a1, int a2, int a3);
+	void Item_Pickup_Spin_Effect(int animationId, int x, int y);
 	bool Item_Query_Visible(int itemId);
+	void Set_Subtitle_Text_On_Screen(Common::String displayText);
 	int Animation_Open();
 	int Animation_Close();
 	int Animation_Start();





More information about the Scummvm-git-logs mailing list