diff options
| -rw-r--r-- | engines/bladerunner/game_constants.h | 52 | ||||
| -rw-r--r-- | engines/bladerunner/script/police_maze.cpp | 8 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ps10.cpp | 436 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ps11.cpp | 498 | 
4 files changed, 708 insertions, 286 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index 3e64e0db37..0d4d411543 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -1717,32 +1717,32 @@ enum ActorCombatStates {  };  enum PoliceMazeTrackInstruction { -	kPMTIActivate = -26, -	kPMTILeave = -25, -	kPMTIShoot = -24, -	kPMTIEnemyReset = -23, -	kPMTIEnemySet = -22, -	kPMTIFlagReset = -21, -	kPMTIFlagSet = -20, -	kPMTIVariableDec = -19, -	kPMTIVariableInc = -18, -	kPMTIVariableReset = -17, -	kPMTIVariableSet = -16, -	kPMTITargetSet = -15, -	kPMTIPausedReset1of3 = -14, -	kPMTIPausedReset1of2 = -13, -	kPMTIPausedSet = -12, -	kPMTIPausedReset = -11, -	kPMTIPlaySound = -10, -	kPMTIObstacleReset = -9, -	kPMTIObstacleSet = -8, -	kPMTIWaitRandom = -7, -	kPMTIRotate = -6, -	kPMTIFacing = -5, -	kPMTIRestart = -4, -	kPMTIWait = -3, -	kPMTIMove = -2, -	kPMTIPosition = -1, +	kPMTIActivate        = -26, // args: variableId, maxValue +	kPMTILeave           = -25, // args: - +	kPMTIShoot           = -24, // args: soundId, notUsed +	kPMTIEnemyReset      = -23, // args: otherItemId +	kPMTIEnemySet        = -22, // args: otherItemId +	kPMTIFlagReset       = -21, // args: flagId +	kPMTIFlagSet         = -20, // args: flagId +	kPMTIVariableDec     = -19, // args: variableId +	kPMTIVariableInc     = -18, // args: variableId, maxValue +	kPMTIVariableReset   = -17, // args: variableId +	kPMTIVariableSet     = -16, // args: variableId, value +	kPMTITargetSet       = -15, // args: otherItemId, value +	kPMTIPausedReset1of3 = -14, // args: otherItemId1, otherItemId2, otherItemId3 +	kPMTIPausedReset1of2 = -13, // args: otherItemId1, otherItemId2 +	kPMTIPausedSet       = -12, // args: otherItemId +	kPMTIPausedReset     = -11, // args: otherItemId +	kPMTIPlaySound       = -10, // args: soundId, volume +	kPMTIObstacleReset   = -9,  // args: otherItemId +	kPMTIObstacleSet     = -8,  // args: otherItemId +	kPMTIWaitRandom      = -7,  // args: min, max +	kPMTIRotate          = -6,  // args: target, delta +	kPMTIFacing          = -5,  // args: angle +	kPMTIRestart         = -4,  // args: - +	kPMTIWait            = -3,  // args: time +	kPMTIMove            = -2,  // args: target +	kPMTIPosition        = -1,  // args: index  	kPMTI26 = 0  }; diff --git a/engines/bladerunner/script/police_maze.cpp b/engines/bladerunner/script/police_maze.cpp index c45826fc8e..a032c898d6 100644 --- a/engines/bladerunner/script/police_maze.cpp +++ b/engines/bladerunner/script/police_maze.cpp @@ -440,7 +440,7 @@ bool PoliceMazeTargetTrack::tick() {  				int trackId2 = _data[_dataIndex++];  				int trackId3 = _data[_dataIndex++];  #if BLADERUNNER_DEBUG_CONSOLE -				debug("ItemId: %3i, Pause reset 1 of 3, TrackId1: %i, TrackId2: %i, TrackId3: %i", _itemId, trackId1, trackId2, trackId3); +				debug("ItemId: %3i, Pause reset 1 of 3, OtherItemId1: %i, OtherItemId2: %i, OtherItemId3: %i", _itemId, trackId1, trackId2, trackId3);  #endif  				switch (Random_Query(1, 3)) {  				case 1: @@ -464,7 +464,7 @@ bool PoliceMazeTargetTrack::tick() {  				int trackId1 = _data[_dataIndex++];  				int trackId2 = _data[_dataIndex++];  #if BLADERUNNER_DEBUG_CONSOLE -				debug("ItemId: %3i, Pause reset 1 of 2, TrackId1: %i, TrackId2: %i", _itemId, trackId1, trackId2); +				debug("ItemId: %3i, Pause reset 1 of 2, OtherItemId1: %i, OtherItemId2: %i", _itemId, trackId1, trackId2);  #endif  				if (Random_Query(1, 2) == 1) {  					_vm->_policeMaze->_tracks[trackId1]->resetPaused(); @@ -478,7 +478,7 @@ bool PoliceMazeTargetTrack::tick() {  			{  				int trackId = _data[_dataIndex++];  #if BLADERUNNER_DEBUG_CONSOLE -				debug("ItemId: %3i, Pause set, TrackId: %i", _itemId, trackId); +				debug("ItemId: %3i, Pause set, OtherItemId: %i", _itemId, trackId);  #endif  				_vm->_policeMaze->_tracks[trackId]->setPaused();  				break; @@ -488,7 +488,7 @@ bool PoliceMazeTargetTrack::tick() {  			{  				int trackId = _data[_dataIndex++];  #if BLADERUNNER_DEBUG_CONSOLE -				debug("ItemId: %3i, Pause reset, TrackId: %i", _itemId, trackId); +				debug("ItemId: %3i, Pause reset, OtherItemId: %i", _itemId, trackId);  #endif  				_vm->_policeMaze->_tracks[trackId]->resetPaused();  				break; diff --git a/engines/bladerunner/script/scene/ps10.cpp b/engines/bladerunner/script/scene/ps10.cpp index de0dc9539b..782b86a2c5 100644 --- a/engines/bladerunner/script/scene/ps10.cpp +++ b/engines/bladerunner/script/scene/ps10.cpp @@ -24,49 +24,37 @@  namespace BladeRunner { -enum PoliceMazePS10Tracks { -	kPoliceMazePS10Track1 = 0, -	kPoliceMazePS10Track2 = 1, -	kPoliceMazePS10Track3 = 2, -	kPoliceMazePS10Track4 = 3, -	kPoliceMazePS10Track5 = 4, -	kPoliceMazePS10Track6 = 5, -	kPoliceMazePS10Track7 = 6, -	kPoliceMazePS10Track8 = 7, -	kPoliceMazePS10Track9 = 8 -}; -  static int kPoliceMazePS10TargetCount = 20;  static const int *getPoliceMazePS10TrackData1() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target1, -		kPMTIObstacleReset, kItemPS10Target2, -		kPMTIFacing, 989, -		kPMTIPosition, 0, -		kPMTITargetSet, kItemPS10Target1, 1, -		kPMTITargetSet, kItemPS10Target2, 1, -		kPMTIEnemyReset, kItemPS10Target1, -		kPMTIWaitRandom, 3000, 5000, -		kPMTIObstacleSet, kItemPS10Target1, -		kPMTIPlaySound, 159, 100, -		kPMTIMove, 14, -		kPMTIWait, 1000, -		kPMTIRotate, 740, 80, -		kPMTIEnemySet, kItemPS10Target1, -		kPMTIWait, 0, -		kPMTIRotate, 488, 80, -		kPMTIWait, 1000, -		kPMTIShoot, 27, 33, -		kPMTIWait, 0, -		kPMTIRotate, 740, 80, -		kPMTIPausedReset, kPoliceMazePS10Track2, -		kPMTIObstacleReset, kItemPS10Target1, -		kPMTIObstacleSet, kItemPS10Target2, -		kPMTIPausedSet, kPoliceMazePS10Track1, -		kPMTIPosition, 0, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target1, +		kPMTIObstacleReset,	kItemPS10Target2, +		kPMTIFacing,		989, +		kPMTIPosition,		0, +		kPMTITargetSet,		kItemPS10Target1, 1, +		kPMTITargetSet,		kItemPS10Target2, 1, +		kPMTIEnemyReset,	kItemPS10Target1, +		kPMTIWaitRandom,	3000, 5000, +		kPMTIObstacleSet,	kItemPS10Target1, +		kPMTIPlaySound,		159, 100, +		kPMTIMove,			14, +		kPMTIWait,			1000, +		kPMTIRotate,		740, 80, +		kPMTIEnemySet,		kItemPS10Target1, +		kPMTIWait,			0, +		kPMTIRotate,		488, 80, +		kPMTIWait,			1000, +		kPMTIShoot,			27, 33, +		kPMTIWait,			0, +		kPMTIRotate,		740, 80, +		kPMTIPausedReset,	kItemPS10Target2, +		kPMTIObstacleReset,	kItemPS10Target1, +		kPMTIObstacleSet,	kItemPS10Target2, +		kPMTIPausedSet,		kItemPS10Target1, +		kPMTIPosition,		0,  		kPMTIRestart  	};  	return trackData; @@ -74,15 +62,15 @@ static const int *getPoliceMazePS10TrackData1() {  static const int *getPoliceMazePS10TrackData2() {  	static int trackData[] = { -		kPMTIFacing, 740, -		kPMTIPosition, 0, -		kPMTIEnemySet, kItemPS10Target2, -		kPMTIMove, 69, -		kPMTIWait, 500, -		kPMTIObstacleReset, kItemPS10Target2, -		kPMTIPausedReset, kPoliceMazePS10Track5, -		kPMTIPausedSet, kPoliceMazePS10Track2, -		kPMTIPosition, 0, +		kPMTIFacing,		740, +		kPMTIPosition,		0, +		kPMTIEnemySet,		kItemPS10Target2, +		kPMTIMove,			69, +		kPMTIWait,			500, +		kPMTIObstacleReset,	kItemPS10Target2, +		kPMTIPausedReset,	kItemPS10Target5, +		kPMTIPausedSet,		kItemPS10Target2, +		kPMTIPosition,		0,  		kPMTIRestart  	};  	return trackData; @@ -90,31 +78,31 @@ static const int *getPoliceMazePS10TrackData2() {  static const int *getPoliceMazePS10TrackData3() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target3, -		kPMTIFacing, 993, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 3000, 5000, -		kPMTIObstacleSet, kItemPS10Target3, -		kPMTIPlaySound, 159, 100, -		kPMTITargetSet, kItemPS10Target3, 1, -		kPMTIEnemyReset, kItemPS10Target3, -		kPMTIMove, 5, -		kPMTIWait, 1000, -		kPMTIEnemySet, kItemPS10Target3, -		kPMTIRotate, 233, 80, -		kPMTIWait, 0, -		kPMTIRotate, 491, 80, -		kPMTIWait, 500, -		kPMTIShoot, 27, 33, -		kPMTIWait, 500, -		kPMTIRotate, 233, 80, -		kPMTIWait, 0, -		kPMTIRotate, 993, 80, -		kPMTIPlaySound, 34, 33, -		kPMTIMove, 0, -		kPMTIObstacleReset, kItemPS10Target3, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target3, +		kPMTIFacing,		993, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	3000, 5000, +		kPMTIObstacleSet,	kItemPS10Target3, +		kPMTIPlaySound,		159, 100, +		kPMTITargetSet,		kItemPS10Target3, 1, +		kPMTIEnemyReset,	kItemPS10Target3, +		kPMTIMove,			5, +		kPMTIWait,			1000, +		kPMTIEnemySet,		kItemPS10Target3, +		kPMTIRotate,		233, 80, +		kPMTIWait,			0, +		kPMTIRotate,		491, 80, +		kPMTIWait,			500, +		kPMTIShoot,			27, 33, +		kPMTIWait,			500, +		kPMTIRotate,		233, 80, +		kPMTIWait,			0, +		kPMTIRotate,		993, 80, +		kPMTIPlaySound,		34, 33, +		kPMTIMove,			0, +		kPMTIObstacleReset,	kItemPS10Target3,  		kPMTIRestart  	};  	return trackData; @@ -122,24 +110,24 @@ static const int *getPoliceMazePS10TrackData3() {  static const int *getPoliceMazePS10TrackData4() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target4, -		kPMTIFacing, 993, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 3000, 6000, -		kPMTIObstacleSet, kItemPS10Target4, -		kPMTIPlaySound, 159, 100, -		kPMTITargetSet, kItemPS10Target4, 1, -		kPMTIEnemyReset, kItemPS10Target4, -		kPMTIMove, 34, -		kPMTIWait, 500, -		kPMTIRotate, 491, 80, -		kPMTIMove, 0, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target4, +		kPMTIFacing,		993, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	3000, 6000, +		kPMTIObstacleSet,	kItemPS10Target4, +		kPMTIPlaySound,		159, 100, +		kPMTITargetSet,		kItemPS10Target4, 1, +		kPMTIEnemyReset,	kItemPS10Target4, +		kPMTIMove,			34, +		kPMTIWait,			500, +		kPMTIRotate,		491, 80, +		kPMTIMove,			0,  		kPMTILeave, -		kPMTIObstacleReset, kItemPS10Target4, -		kPMTIPausedReset, kPoliceMazePS10Track8, -		kPMTIPausedSet, kPoliceMazePS10Track4, +		kPMTIObstacleReset,	kItemPS10Target4, +		kPMTIPausedReset,	kItemPS10Target8, +		kPMTIPausedSet,		kItemPS10Target4,  		kPMTIRestart  	};  	return trackData; @@ -147,27 +135,27 @@ static const int *getPoliceMazePS10TrackData4() {  static const int *getPoliceMazePS10TrackData5() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target5, -		kPMTIFacing, 0, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 4000, 6000, -		kPMTIObstacleSet, kItemPS10Target5, -		kPMTIPlaySound, 159, 100, -		kPMTITargetSet, kItemPS10Target5, 1, -		kPMTIEnemyReset, kItemPS10Target5, -		kPMTIMove, 5, -		kPMTIWait, 1000, -		kPMTIRotate, 512, 100, -		kPMTIWait, 2000, -		kPMTIRotate, 0, -100, -		kPMTIPlaySound, 34, 33, -		kPMTIMove, 0, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target5, +		kPMTIFacing,		0, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	4000, 6000, +		kPMTIObstacleSet,	kItemPS10Target5, +		kPMTIPlaySound,		159, 100, +		kPMTITargetSet,		kItemPS10Target5, 1, +		kPMTIEnemyReset,	kItemPS10Target5, +		kPMTIMove,			5, +		kPMTIWait,			1000, +		kPMTIRotate,		512, 100, +		kPMTIWait,			2000, +		kPMTIRotate,		0, -100, +		kPMTIPlaySound,		34, 33, +		kPMTIMove,			0,  		kPMTILeave, -		kPMTIObstacleReset, kItemPS10Target5, -		kPMTIPausedReset, kPoliceMazePS10Track1, -		kPMTIPausedSet, kPoliceMazePS10Track5, +		kPMTIObstacleReset,	kItemPS10Target5, +		kPMTIPausedReset,	kItemPS10Target1, +		kPMTIPausedSet,		kItemPS10Target5,  		kPMTIRestart  	};  	return trackData; @@ -175,34 +163,34 @@ static const int *getPoliceMazePS10TrackData5() {  static const int *getPoliceMazePS10TrackData6() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target6, -		kPMTIFacing, 999, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 4000, 6000, -		kPMTIObstacleSet, kItemPS10Target6, -		kPMTIPlaySound, 159, 100, -		kPMTITargetSet, kItemPS10Target6, 1, -		kPMTIEnemyReset, kItemPS10Target6, -		kPMTIMove, 7, -		kPMTIWait, 500, -		kPMTIEnemySet, kItemPS10Target6, -		kPMTIRotate, 750, 80, -		kPMTIWait, 0, -		kPMTIRotate, 500, 80, -		kPMTIWait, 1000, -		kPMTIShoot, 27, 33, -		kPMTIWait, 0, -		kPMTIRotate, 750, 80, -		kPMTIWait, 0, -		kPMTIRotate, 999, 80, -		kPMTIPlaySound, 34, 33, -		kPMTIMove, 0, -		kPMTIObstacleReset, kItemPS10Target6, -		kPMTIPausedReset, kPoliceMazePS10Track7, -		kPMTIPausedReset, kPoliceMazePS10Track9, -		kPMTIPausedSet, kPoliceMazePS10Track6, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target6, +		kPMTIFacing,		999, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	4000, 6000, +		kPMTIObstacleSet,	kItemPS10Target6, +		kPMTIPlaySound,		159, 100, +		kPMTITargetSet,		kItemPS10Target6, 1, +		kPMTIEnemyReset,	kItemPS10Target6, +		kPMTIMove,			7, +		kPMTIWait,			500, +		kPMTIEnemySet,		kItemPS10Target6, +		kPMTIRotate,		750, 80, +		kPMTIWait,			0, +		kPMTIRotate,		500, 80, +		kPMTIWait,			1000, +		kPMTIShoot,			27, 33, +		kPMTIWait,			0, +		kPMTIRotate,		750, 80, +		kPMTIWait,			0, +		kPMTIRotate,		999, 80, +		kPMTIPlaySound,		34, 33, +		kPMTIMove,			0, +		kPMTIObstacleReset,	kItemPS10Target6, +		kPMTIPausedReset,	kItemPS10Target7, +		kPMTIPausedReset,	kItemPS10Target9, +		kPMTIPausedSet,		kItemPS10Target6,  		kPMTIRestart  	};  	return trackData; @@ -210,22 +198,22 @@ static const int *getPoliceMazePS10TrackData6() {  static const int *getPoliceMazePS10TrackData7() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target7, -		kPMTIFacing, 264, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 3000, 6000, -		kPMTITargetSet, kItemPS10Target7, 1, -		kPMTIEnemyReset, kItemPS10Target7, -		kPMTIObstacleSet, kItemPS10Target7, -		kPMTIMove, 89, -		kPMTIWaitRandom, 4000, 8000, -		kPMTIFacing, 776, -		kPMTIMove, 0, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target7, +		kPMTIFacing,		264, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	3000, 6000, +		kPMTITargetSet,		kItemPS10Target7, 1, +		kPMTIEnemyReset,	kItemPS10Target7, +		kPMTIObstacleSet,	kItemPS10Target7, +		kPMTIMove,			89, +		kPMTIWaitRandom,	4000, 8000, +		kPMTIFacing,		776, +		kPMTIMove,			0,  		kPMTILeave, -		kPMTIObstacleReset, kItemPS10Target7, -		kPMTIPausedSet, kPoliceMazePS10Track7, +		kPMTIObstacleReset,	kItemPS10Target7, +		kPMTIPausedSet,		kItemPS10Target7,  		kPMTIRestart  	};  	return trackData; @@ -233,27 +221,27 @@ static const int *getPoliceMazePS10TrackData7() {  static const int *getPoliceMazePS10TrackData8() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target8, -		kPMTIFacing, 993, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 4000, 6000, -		kPMTIObstacleSet, kItemPS10Target8, -		kPMTIPlaySound, 159, 100, -		kPMTITargetSet, kItemPS10Target8, 1, -		kPMTIEnemyReset, kItemPS10Target8, -		kPMTIMove, 34, -		kPMTIWait, 500, -		kPMTIEnemySet, kItemPS10Target8, -		kPMTIRotate, 491, 80, -		kPMTIMove, 20, -		kPMTIWait, 0, -		kPMTIShoot, 27, 33, -		kPMTIMove, 0, -		kPMTIObstacleReset, kItemPS10Target8, -		kPMTIPausedReset, kPoliceMazePS10Track4, -		kPMTIPausedSet, kPoliceMazePS10Track8, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target8, +		kPMTIFacing,		993, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	4000, 6000, +		kPMTIObstacleSet,	kItemPS10Target8, +		kPMTIPlaySound,		159, 100, +		kPMTITargetSet,		kItemPS10Target8, 1, +		kPMTIEnemyReset,	kItemPS10Target8, +		kPMTIMove,			34, +		kPMTIWait,			500, +		kPMTIEnemySet,		kItemPS10Target8, +		kPMTIRotate,		491, 80, +		kPMTIMove,			20, +		kPMTIWait,			0, +		kPMTIShoot,			27, 33, +		kPMTIMove,			0, +		kPMTIObstacleReset,	kItemPS10Target8, +		kPMTIPausedReset,	kItemPS10Target4, +		kPMTIPausedSet,		kItemPS10Target8,  		kPMTIRestart  	};  	return trackData; @@ -261,56 +249,56 @@ static const int *getPoliceMazePS10TrackData8() {  static const int *getPoliceMazePS10TrackData9() {  	static int trackData[] = { -		kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -		kPMTIObstacleReset, kItemPS10Target9, -		kPMTIFacing, 738, -		kPMTIPosition, 0, -		kPMTIWaitRandom, 2000, 5000, -		kPMTITargetSet, kItemPS10Target9, 1, -		kPMTIEnemySet, kItemPS10Target9, -		kPMTIObstacleSet, kItemPS10Target9, -		kPMTIPlaySound, 0, 33, -		kPMTIMove, 23, -		kPMTIPlaySound, 0, 33, -		kPMTIWait, 200, -		kPMTIPlaySound, 32, 33, -		kPMTIRotate, 498, 100, -		kPMTIPlaySound, 0, 33, -		kPMTIWait, 100, -		kPMTIShoot, 27, 33, -		kPMTIPlaySound, 32, 33, -		kPMTIMove, 35, -		kPMTIPlaySound, 32, 33, -		kPMTIWait, 100, -		kPMTIShoot, 27, 33, -		kPMTIPlaySound, 0, 33, -		kPMTIMove, 23, -		kPMTIPlaySound, 32, 33, -		kPMTIWait, 100, -		kPMTIShoot, 27, 33, -		kPMTIPlaySound, 32, 33, -		kPMTIRotate, 758, 100, -		kPMTIPlaySound, 32, 33, -		kPMTIMove, 89, -		kPMTIPlaySound, 0, 33, -		kPMTIWaitRandom, 4000, 6000, -		kPMTITargetSet, kItemPS10Target9, 1, -		kPMTIEnemySet, kItemPS10Target9, -		kPMTIFacing, 216, -		kPMTIPlaySound, 32, 33, -		kPMTIMove, 69, -		kPMTIWait, 100, -		kPMTIPlaySound, 32, 33, -		kPMTIRotate, 498, 100, -		kPMTIWait, 100, -		kPMTIShoot, 27, 33, -		kPMTIPlaySound, 0, 33, -		kPMTIRotate, 216, 100, -		kPMTIPlaySound, 32, 33, -		kPMTIMove, 0, -		kPMTIObstacleReset, kItemPS10Target9, -		kPMTIPausedSet, kPoliceMazePS10Track9, +		kPMTIActivate,		kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, +		kPMTIObstacleReset,	kItemPS10Target9, +		kPMTIFacing,		738, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	2000, 5000, +		kPMTITargetSet,		kItemPS10Target9, 1, +		kPMTIEnemySet,		kItemPS10Target9, +		kPMTIObstacleSet,	kItemPS10Target9, +		kPMTIPlaySound,		0, 33, +		kPMTIMove,			23, +		kPMTIPlaySound,		0, 33, +		kPMTIWait,			200, +		kPMTIPlaySound,		32, 33, +		kPMTIRotate,		498, 100, +		kPMTIPlaySound,		0, 33, +		kPMTIWait,			100, +		kPMTIShoot,			27, 33, +		kPMTIPlaySound,		32, 33, +		kPMTIMove,			35, +		kPMTIPlaySound,		32, 33, +		kPMTIWait,			100, +		kPMTIShoot,			27, 33, +		kPMTIPlaySound,		0, 33, +		kPMTIMove,			23, +		kPMTIPlaySound,		32, 33, +		kPMTIWait,			100, +		kPMTIShoot,			27, 33, +		kPMTIPlaySound,		32, 33, +		kPMTIRotate,		758, 100, +		kPMTIPlaySound,		32, 33, +		kPMTIMove,			89, +		kPMTIPlaySound,		0, 33, +		kPMTIWaitRandom,	4000, 6000, +		kPMTITargetSet,		kItemPS10Target9, 1, +		kPMTIEnemySet,		kItemPS10Target9, +		kPMTIFacing,		216, +		kPMTIPlaySound,		32, 33, +		kPMTIMove,			69, +		kPMTIWait,			100, +		kPMTIPlaySound,		32, 33, +		kPMTIRotate,		498, 100, +		kPMTIWait,			100, +		kPMTIShoot,			27, 33, +		kPMTIPlaySound,		0, 33, +		kPMTIRotate,		216, 100, +		kPMTIPlaySound,		32, 33, +		kPMTIMove,			0, +		kPMTIObstacleReset,	kItemPS10Target9, +		kPMTIPausedSet,		kItemPS10Target9,  		kPMTIRestart  	};  	return trackData; diff --git a/engines/bladerunner/script/scene/ps11.cpp b/engines/bladerunner/script/scene/ps11.cpp index 1e45ddc768..eac2df1844 100644 --- a/engines/bladerunner/script/scene/ps11.cpp +++ b/engines/bladerunner/script/scene/ps11.cpp @@ -40,22 +40,454 @@ void SceneScriptPS11::InitializeScene() {  	Scene_Exit_Add_2D_Exit(1, 0,   0,  20, 479, 3);  } -static int track_data_9[] = {-26, 11, 20, -18, 11, 20, -9, 9, -5, 50, -1, 0, -7, 5000, 5000, -8, 9, -10, 31, 33, -15, 9, 1, -22, 9, -2, 7, -3, 1000, -24, 27, 33, -10, 34, 33, -2, 0, -3, 500, -9, 9, -13, 15, 10, -12, 9, -4}; -static int track_data_10[] = {-26, 11, 20, -18, 11, 20, -9, 10, -9, 11, -15, 10, 1, -15, 11, 1, -5, 860, -1, 0, -7, 3000, 6000, -23, 10, -8, 10, -10, 33, 33, -2, 14, -3, 500, -11, 11, -9, 10, -8, 11, -12, 10, -1, 0, -4}; -static int track_data_11[] = {-5, 860, -1, 0, -23, 11, -8, 11, -2, 25, -3, 500, -22, 11, -10, 32, 33, -6, 644, 80, -3, 0, -6, 388, 80, -3, 1000, -24, 12, 33, -2, 79, -9, 11, -13, 15, 9, -12, 11, -1, 0, -5, 860, -4}; -static int track_data_12[] = {-26, 11, 20, -18, 11, 20, -9, 12, -5, 725, -1, 0, -3, 2000, -15, 12, 1, -23, 12, -8, 12, -2, 82, -25, -3, 1000, -6, 570, 80, -3, 0, -6, 462, 80, -3, 0, -6, 213, 80, -3, 1000, -2, 0, -6, 725, 80, -2, 99, -9, 12, -11, 27, -12, 12, -1, 0, -4}; -static int track_data_13[] = {-26, 11, 20, -18, 11, 20, -9, 13, -5, 340, -1, 0, -7, 4000, 8000, -8, 13, -10, 33, 33, -15, 13, 1, -22, 13, -2, 4, -3, 0, -6, 435, 80, -3, 0, -6, 530, 80, -3, 100, -6, 435, 80, -3, 0, -6, 340, 80, -3, 0, -6, 260, 80, -3, 0, -6, 180, 80, -3, 100, -6, 260, 80, -3, 0, -6, 340, 80, -3, 200, -24, 27, 33, -10, 34, 33, -2, 0, -9, 13, -13, 14, 18, -12, 13, -4}; -static int track_data_14[] = {-26, 11, 20, -18, 11, 20, -9, 14, -15, 14, 1, -23, 14, -5, 900, -1, 0, -7, 3000, 6000, -8, 14, -10, 33, 33, -2, 5, -3, 500, -22, 14, -6, 644, 80, -3, 0, -6, 388, 80, -3, 1000, -24, 27, 33, -10, 34, 33, -2, 0, -9, 14, -13, 18, 13, -12, 14, -4}; -static int track_data_15[] = {-26, 11, 20, -18, 11, 20, -9, 15, -9, 16, -15, 15, 1, -15, 16, 1, -5, 860, -1, 0, -7, 3000, 7000, -8, 15, -10, 29, 33, -23, 15, -2, 14, -25, -3, 1000, -11, 16, -9, 15, -8, 16, -12, 15, -1, 0, -4}; -static int track_data_16[] = {-5, 860, -1, 0, -8, 16, -23, 16, -2, 25, -3, 500, -10, 32, 33, -6, 644, 100, -3, 0, -6, 388, 200, -3, 500, -2, 79, -25, -9, 16, -13, 10, 9, -12, 16, -1, 0, -5, 860, -4}; -static int track_data_17[] = {-26, 11, 20, -18, 11, 20, -5, 310, -1, 0, -8, 17, -15, 17, 1, -22, 17, -7, 4000, 8000, -10, 32, 33, -2, 10, -3, 0, -24, 27, 33, -2, 0, -15, 17, 1, -22, 17, -2, 24, -15, 17, 1, -22, 17, -2, 10, -3, 0, -24, 27, 33, -2, 24, -3, 1000, -9, 17, -13, 23, 22, -12, 17, -1, 0, -4}; -static int track_data_18[] = {-26, 11, 20, -18, 11, 20, -9, 18, -9, 19, -5, 900, -1, 0, -15, 18, 1, -15, 19, 1, -23, 18, -7, 4000, 6000, -8, 18, -2, 5, -10, 19, 33, -10, 3, 33, -3, 1000, -25, -6, 700, 80, -22, 18, -3, 0, -6, 512, 200, -3, 1000, -24, 12, 33, -11, 19, -9, 18, -8, 19, -12, 18, -1, 0, -4}; -static int track_data_19[] = {-5, 512, -1, 0, -22, 19, -2, 8, -3, 4000, -15, 19, 1, -22, 19, -2, 2, -10, 32, 33, -3, 1000, -24, 12, 33, -2, 19, -3, 500, -9, 19, -13, 13, 14, -12, 19, -1, 0, -4}; -static int track_data_20[] = {-26, 11, 20, -18, 11, 20, -9, 20, -5, 280, -1, 0, -7, 5000, 7000, -15, 20, 1, -22, 20, -8, 20, -2, 9, -10, 32, 33, -3, 1000, -24, 27, 33, -2, 0, -9, 20, -13, 21, 12, -12, 20, -1, 0, -4}; -static int track_data_21[] = {-26, 11, 20, -18, 11, 20, -9, 21, -5, 280, -1, 0, -7, 5000, 8000, -15, 21, 1, -23, 21, -8, 21, -2, 5, -25, -3, 1000, -2, 0, -9, 21, -13, 20, 12, -12, 21, -1, 0, -4}; -static int track_data_22[] = {-26, 11, 20, -18, 11, 20, -9, 22, -5, 255, -1, 0, -15, 22, 1, -22, 22, -7, 5000, 5000, -8, 22, -2, 7, -10, 32, 33, -3, 1000, -24, 12, 33, -2, 0, -9, 22, -13, 23, 17, -12, 22, -1, 0, -4}; -static int track_data_23[] = {-26, 11, 20, -18, 11, 20, -9, 23, -5, 310, -1, 0, -7, 3000, 6000, -15, 23, 1, -23, 23, -8, 23, -3, 1000, -2, 24, -3, 1000, -2, 0, -25, -9, 23, -13, 22, 17, -12, 23, -1, 0, -4}; -static int track_data_27[] = {-26, 11, 20, -18, 11, 20, -9, 27, -5, 346, -1, 0, -3, 0, -15, 27, 1, -22, 27, -8, 27, -2, 14, -3, 1000, -24, 12, 33, -2, 0, -9, 27, -13, 21, 20, -12, 27, -1, 0, -4}; +static const int *getPoliceMazePS11TrackData9() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target1, +		kPMTIFacing,			50, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		5000, 5000, +		kPMTIObstacleSet,		kItemPS11Target1, +		kPMTIPlaySound,			31, 33, +		kPMTITargetSet,			kItemPS11Target1, 1, +		kPMTIEnemySet,			kItemPS11Target1, +		kPMTIMove,				7, +		kPMTIWait,				1000, +		kPMTIShoot,				27, 33, +		kPMTIPlaySound,			34, 33, +		kPMTIMove,				0, +		kPMTIWait,				500, +		kPMTIObstacleReset,		kItemPS11Target1, +		kPMTIPausedReset1of2,	kItemPS11Target7, kItemPS11Target2, +		kPMTIPausedSet,			kItemPS11Target1, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData10() { +	static int trackData[] = { +		kPMTIActivate,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,	kItemPS11Target2, +		kPMTIObstacleReset,	kItemPS11Target3, +		kPMTITargetSet,		kItemPS11Target2, 1, +		kPMTITargetSet,		kItemPS11Target3, 1, +		kPMTIFacing,		860, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	3000, 6000, +		kPMTIEnemyReset,	kItemPS11Target2, +		kPMTIObstacleSet,	kItemPS11Target2, +		kPMTIPlaySound,		33, 33, +		kPMTIMove,			14, +		kPMTIWait,			500, +		kPMTIPausedReset,	kItemPS11Target3, +		kPMTIObstacleReset,	kItemPS11Target2, +		kPMTIObstacleSet,	kItemPS11Target3, +		kPMTIPausedSet,		kItemPS11Target2, +		kPMTIPosition,		0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData11() { +	static int trackData[] = { +		kPMTIFacing,			860, +		kPMTIPosition,			0, +		kPMTIEnemyReset,		kItemPS11Target3, +		kPMTIObstacleSet,		kItemPS11Target3, +		kPMTIMove,				25, +		kPMTIWait,				500, +		kPMTIEnemySet,			kItemPS11Target3, +		kPMTIPlaySound,			32, 33, +		kPMTIRotate,			644, 80, +		kPMTIWait,				0, +		kPMTIRotate,			388, 80, +		kPMTIWait,				1000, +		kPMTIShoot,				12, 33, +		kPMTIMove,				79, +		kPMTIObstacleReset,		kItemPS11Target3, +		kPMTIPausedReset1of2,	kItemPS11Target7, kItemPS10Target9, +		kPMTIPausedSet,			kItemPS11Target3, +		kPMTIPosition,			0, +		kPMTIFacing,			860, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData12() { +	static int trackData[] = { +		kPMTIActivate,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,	kItemPS11Target4, +		kPMTIFacing,		725, +		kPMTIPosition,		0, +		kPMTIWait,			2000, +		kPMTITargetSet,		kItemPS11Target4, 1, +		kPMTIEnemyReset,	kItemPS11Target4, +		kPMTIObstacleSet,	kItemPS11Target4, +		kPMTIMove,			82, +		kPMTILeave, +		kPMTIWait,			1000, +		kPMTIRotate,		570, 80, +		kPMTIWait,			0, +		kPMTIRotate,		462, 80, +		kPMTIWait,			0, +		kPMTIRotate,		213, 80, +		kPMTIWait,			1000, +		kPMTIMove,			0, +		kPMTIRotate,		725, 80, +		kPMTIMove,			99, +		kPMTIObstacleReset,	kItemPS11Target4, +		kPMTIPausedReset,	27, +		kPMTIPausedSet,		kItemPS11Target4, +		kPMTIPosition,		0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData13() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target5, +		kPMTIFacing,			340, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		4000, 8000, +		kPMTIObstacleSet,		kItemPS11Target5, +		kPMTIPlaySound,			33, 33, +		kPMTITargetSet,			kItemPS11Target5, 1, +		kPMTIEnemySet,			kItemPS11Target5, +		kPMTIMove,				4, +		kPMTIWait,				0, +		kPMTIRotate,			435, 80, +		kPMTIWait,				0, +		kPMTIRotate,			530, 80, +		kPMTIWait,				100, +		kPMTIRotate,			435, 80, +		kPMTIWait,				0, +		kPMTIRotate,			340, 80, +		kPMTIWait,				0, +		kPMTIRotate,			260, 80, +		kPMTIWait,				0, +		kPMTIRotate,			180, 80, +		kPMTIWait,				100, +		kPMTIRotate,			260, 80, +		kPMTIWait,				0, +		kPMTIRotate,			340, 80, +		kPMTIWait,				200, +		kPMTIShoot,				27, 33, +		kPMTIPlaySound,			34, 33, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target5, +		kPMTIPausedReset1of2,	kItemPS11Target6, kItemPS11Target10, +		kPMTIPausedSet,			kItemPS11Target5, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData14() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target6, +		kPMTITargetSet,			kItemPS11Target6, 1, +		kPMTIEnemyReset,		kItemPS11Target6, +		kPMTIFacing,			900, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		3000, 6000, +		kPMTIObstacleSet,		kItemPS11Target6, +		kPMTIPlaySound,			33, 33, +		kPMTIMove,				5, +		kPMTIWait,				500, +		kPMTIEnemySet,			kItemPS11Target6, +		kPMTIRotate,			644, 80, +		kPMTIWait,				0, +		kPMTIRotate,			388, 80, +		kPMTIWait,				1000, +		kPMTIShoot,				27, 33, +		kPMTIPlaySound,			34, 33, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target6, +		kPMTIPausedReset1of2,	kItemPS11Target10, kItemPS11Target5, +		kPMTIPausedSet,			kItemPS11Target6, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData15() { +	static int trackData[] = { +		kPMTIActivate,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,	kItemPS11Target7, +		kPMTIObstacleReset,	kItemPS11Target8, +		kPMTITargetSet,		kItemPS11Target7, 1, +		kPMTITargetSet,		kItemPS11Target8, 1, +		kPMTIFacing,		860, +		kPMTIPosition,		0, +		kPMTIWaitRandom,	3000, 7000, +		kPMTIObstacleSet,	kItemPS11Target7, +		kPMTIPlaySound,		29, 33, +		kPMTIEnemyReset,	kItemPS11Target7, +		kPMTIMove,			14, +		kPMTILeave, +		kPMTIWait,			1000, +		kPMTIPausedReset,	kItemPS11Target8, +		kPMTIObstacleReset,	kItemPS11Target7, +		kPMTIObstacleSet,	kItemPS11Target8, +		kPMTIPausedSet,		kItemPS11Target7, +		kPMTIPosition,		0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData16() { +	static int trackData[] = { +		kPMTIFacing,			860, +		kPMTIPosition,			0, +		kPMTIObstacleSet,		kItemPS11Target8, +		kPMTIEnemyReset,		kItemPS11Target8, +		kPMTIMove,				25, +		kPMTIWait,				500, +		kPMTIPlaySound,			32, 33, +		kPMTIRotate,			644, 100, +		kPMTIWait,				0, +		kPMTIRotate,			388, 200, +		kPMTIWait,				500, +		kPMTIMove,				79, +		kPMTILeave, +		kPMTIObstacleReset,		kItemPS11Target8, +		kPMTIPausedReset1of2,	kItemPS11Target2, kItemPS11Target1, +		kPMTIPausedSet,			kItemPS11Target8, +		kPMTIPosition,			0, +		kPMTIFacing,			860, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData17() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIFacing,			310, +		kPMTIPosition,			0, +		kPMTIObstacleSet,		kItemPS11Target9, +		kPMTITargetSet,			kItemPS11Target9, 1, +		kPMTIEnemySet,			kItemPS11Target9, +		kPMTIWaitRandom,		4000, 8000, +		kPMTIPlaySound,			32, 33, +		kPMTIMove,				10, +		kPMTIWait,				0, +		kPMTIShoot,				27, 33, +		kPMTIMove,				0, +		kPMTITargetSet,			kItemPS11Target9, 1, +		kPMTIEnemySet,			kItemPS11Target9, +		kPMTIMove,				24, +		kPMTITargetSet,			kItemPS11Target9, 1, +		kPMTIEnemySet,			kItemPS11Target9, +		kPMTIMove,				10, +		kPMTIWait,				0, +		kPMTIShoot,				27, 33, +		kPMTIMove,				24, +		kPMTIWait,				1000, +		kPMTIObstacleReset,		kItemPS11Target9, +		kPMTIPausedReset1of2,	kItemPS11Target15, kItemPS11Target14, +		kPMTIPausedSet, 		kItemPS11Target9, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData18() { +	static int trackData[] = { +		kPMTIActivate,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,	kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,	kItemPS11Target10, +		kPMTIObstacleReset,	kItemPS11Target11, +		kPMTIFacing,		900, +		kPMTIPosition,		0, +		kPMTITargetSet,		kItemPS11Target10, 1, +		kPMTITargetSet,		kItemPS11Target11, 1, +		kPMTIEnemyReset,	kItemPS11Target10, +		kPMTIWaitRandom,	4000, 6000, +		kPMTIObstacleSet,	kItemPS11Target10, +		kPMTIMove,			5, +		kPMTIPlaySound,		kItemPS11Target11, 33, +		kPMTIPlaySound,		3, 33, +		kPMTIWait,			1000, +		kPMTILeave, +		kPMTIRotate,		700, 80, +		kPMTIEnemySet,		kItemPS11Target10, +		kPMTIWait,			0, +		kPMTIRotate,		512, 200, +		kPMTIWait,			1000, +		kPMTIShoot,			12, 33, +		kPMTIPausedReset,	kItemPS11Target11, +		kPMTIObstacleReset,	kItemPS11Target10, +		kPMTIObstacleSet,	kItemPS11Target11, +		kPMTIPausedSet,		kItemPS11Target10, +		kPMTIPosition,		0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData19() { +	static int trackData[] = { +		kPMTIFacing,			512, +		kPMTIPosition,			0, +		kPMTIEnemySet,			kItemPS11Target11, +		kPMTIMove,				8, +		kPMTIWait,				4000, +		kPMTITargetSet,			kItemPS11Target11, 1, +		kPMTIEnemySet,			kItemPS11Target11, +		kPMTIMove,				2, +		kPMTIPlaySound,			32, 33, +		kPMTIWait,				1000, +		kPMTIShoot,				12, 33, +		kPMTIMove,				kItemPS11Target11, +		kPMTIWait,				500, +		kPMTIObstacleReset,		kItemPS11Target11, +		kPMTIPausedReset1of2,	kItemPS11Target5, kItemPS11Target6, +		kPMTIPausedSet,			kItemPS11Target11, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData20() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target12, +		kPMTIFacing,			280, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		5000, 7000, +		kPMTITargetSet,			kItemPS11Target12, 1, +		kPMTIEnemySet,			kItemPS11Target12, +		kPMTIObstacleSet,		kItemPS11Target12, +		kPMTIMove,				9, +		kPMTIPlaySound,			32, 33, +		kPMTIWait,				1000, +		kPMTIShoot,				27, 33, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target12, +		kPMTIPausedReset1of2,	kItemPS11Target13, kItemPS11Target4, +		kPMTIPausedSet,			kItemPS11Target12, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData21() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target13, +		kPMTIFacing,			280, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		5000, 8000, +		kPMTITargetSet,			kItemPS11Target13, 1, +		kPMTIEnemyReset,		kItemPS11Target13, +		kPMTIObstacleSet,		kItemPS11Target13, +		kPMTIMove,				5, +		kPMTILeave, +		kPMTIWait,				1000, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target13, +		kPMTIPausedReset1of2,	kItemPS11Target12, kItemPS11Target4, +		kPMTIPausedSet,			kItemPS11Target13, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData22() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target14, +		kPMTIFacing,			255, +		kPMTIPosition,			0, +		kPMTITargetSet,			kItemPS11Target14, 1, +		kPMTIEnemySet,			kItemPS11Target14, +		kPMTIWaitRandom,		5000, 5000, +		kPMTIObstacleSet,		kItemPS11Target14, +		kPMTIMove,				7, +		kPMTIPlaySound,			32, 33, +		kPMTIWait,				1000, +		kPMTIShoot,				12, 33, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target14, +		kPMTIPausedReset1of2,	23, kItemPS11Target9, +		kPMTIPausedSet,			kItemPS11Target14, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData23() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target15, +		kPMTIFacing,			310, +		kPMTIPosition,			0, +		kPMTIWaitRandom,		3000, 6000, +		kPMTITargetSet,			kItemPS11Target15, 1, +		kPMTIEnemyReset,		kItemPS11Target15, +		kPMTIObstacleSet,		kItemPS11Target15, +		kPMTIWait,				1000, +		kPMTIMove,				24, +		kPMTIWait,				1000, +		kPMTIMove,				0, +		kPMTILeave, +		kPMTIObstacleReset,		kItemPS11Target15, +		kPMTIPausedReset1of2,	kItemPS11Target14, kItemPS11Target9, +		kPMTIPausedSet,			kItemPS11Target15, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} + +static const int *getPoliceMazePS11TrackData27() { +	static int trackData[] = { +		kPMTIActivate,			kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIVariableInc,		kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, +		kPMTIObstacleReset,		kItemPS11Target16, +		kPMTIFacing,			346, +		kPMTIPosition,			0, +		kPMTIWait,				0, +		kPMTITargetSet,			kItemPS11Target16, 1, +		kPMTIEnemySet,			kItemPS11Target16, +		kPMTIObstacleSet,		kItemPS11Target16, +		kPMTIMove,				14, +		kPMTIWait,				1000, +		kPMTIShoot,				12, 33, +		kPMTIMove,				0, +		kPMTIObstacleReset,		kItemPS11Target16, +		kPMTIPausedReset1of2,	kItemPS11Target13, kItemPS11Target12, +		kPMTIPausedSet,			kItemPS11Target16, +		kPMTIPosition,			0, +		kPMTIRestart +	}; +	return trackData; +} +  void SceneScriptPS11::SceneLoaded() {  	Obstacle_Object("PARKMETR01", true); @@ -76,6 +508,7 @@ void SceneScriptPS11::SceneLoaded() {  	Unclickable_Object("PARKMETR11");  	Unclickable_Object("PARKMETR15");  	Unclickable_Object("PARKMETR16"); +  	if (!Query_System_Currently_Loading_Game()) {  		Item_Add_To_World(kItemPS11Target1,  449, kSetPS10_PS11_PS12_PS13,  -450.0f,  -7.5f, 335.0f,  50, 72, 36, true, false, false, true);  		Item_Add_To_World(kItemPS11Target2,  449, kSetPS10_PS11_PS12_PS13,  -740.0f,  27.0f, -30.0f, 860, 72, 36, true, false, false, true); @@ -95,22 +528,23 @@ void SceneScriptPS11::SceneLoaded() {  		Item_Add_To_World(kItemPS11Target16, 445, kSetPS10_PS11_PS12_PS13,  -800.0f, -9.23f, -75.0f, 346, 72, 36, true, false, false, true);  	} -	Police_Maze_Target_Track_Add(kItemPS11Target1,   -450.0f,  -7.5f, 335.0f,  -450.0f,  -7.5f, 295.0f,   8, track_data_9,   true); -	Police_Maze_Target_Track_Add(kItemPS11Target2,   -740.0f,  27.0f, -30.0f,  -740.0f,  99.0f, -30.0f,  15, track_data_10, false); -	Police_Maze_Target_Track_Add(kItemPS11Target3,   -740.0f,  99.0f, -30.0f,  -200.0f,  99.0f, -30.0f,  80, track_data_11, false); -	Police_Maze_Target_Track_Add(kItemPS11Target4,   -400.0f, -9.23f, -75.0f,  -800.0f, -9.23f, -75.0f, 100, track_data_12, false); -	Police_Maze_Target_Track_Add(kItemPS11Target5,  -803.72f, -72.7f, 60.22f, -803.72f,  -0.7f, 60.22f,   6, track_data_13,  true); -	Police_Maze_Target_Track_Add(kItemPS11Target6,   -853.0f, -70.0f, 195.0f,  -853.0f,   2.0f, 195.0f,   6, track_data_14, false); -	Police_Maze_Target_Track_Add(kItemPS11Target7,   -740.0f,  27.0f, -30.0f,  -740.0f,  99.0f, -30.0f,  15, track_data_15, false); -	Police_Maze_Target_Track_Add(kItemPS11Target8,   -740.0f,  99.0f, -30.0f,  -200.0f,  99.0f, -30.0f,  80, track_data_16, false); -	Police_Maze_Target_Track_Add(kItemPS11Target9,   -888.0f, 155.0f, 100.0f,  -888.0f, 155.0f,  30.0f,  25, track_data_17, false); -	Police_Maze_Target_Track_Add(kItemPS11Target10,  -430.0f, 164.0f,  11.0f,  -430.0f, -0.86f,  11.0f,   6, track_data_18, false); -	Police_Maze_Target_Track_Add(kItemPS11Target11,  -430.0f, -0.86f,  11.0f,  -300.0f, -0.86f, -80.0f,  20, track_data_19, false); -	Police_Maze_Target_Track_Add(kItemPS11Target12,  -891.0f,   3.1f,  90.0f,  -891.0f,   3.1f, 105.0f,  10, track_data_20,  true); -	Police_Maze_Target_Track_Add(kItemPS11Target13,  -891.0f,   3.1f,  90.0f,  -891.0f,   3.1f, 105.0f,   6, track_data_21, false); -	Police_Maze_Target_Track_Add(kItemPS11Target14,  -891.0f, 171.0f, 190.0f,  -891.0f, 171.0f, 147.0f,   8, track_data_22, false); -	Police_Maze_Target_Track_Add(kItemPS11Target15,  -888.0f, 155.0f,  30.0f,  -888.0f, 155.0f, 100.0f,  25, track_data_23,  true); -	Police_Maze_Target_Track_Add(kItemPS11Target16,  -800.0f, -9.23f, -75.0f,  -740.0f, -9.23f, -75.0f,  15, track_data_27, false); +	Police_Maze_Target_Track_Add(kItemPS11Target1,   -450.0f,  -7.5f, 335.0f,  -450.0f,  -7.5f, 295.0f,   8, getPoliceMazePS11TrackData9(),   true); +	Police_Maze_Target_Track_Add(kItemPS11Target2,   -740.0f,  27.0f, -30.0f,  -740.0f,  99.0f, -30.0f,  15, getPoliceMazePS11TrackData10(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target3,   -740.0f,  99.0f, -30.0f,  -200.0f,  99.0f, -30.0f,  80, getPoliceMazePS11TrackData11(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target4,   -400.0f, -9.23f, -75.0f,  -800.0f, -9.23f, -75.0f, 100, getPoliceMazePS11TrackData12(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target5,  -803.72f, -72.7f, 60.22f, -803.72f,  -0.7f, 60.22f,   6, getPoliceMazePS11TrackData13(),  true); +	Police_Maze_Target_Track_Add(kItemPS11Target6,   -853.0f, -70.0f, 195.0f,  -853.0f,   2.0f, 195.0f,   6, getPoliceMazePS11TrackData14(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target7,   -740.0f,  27.0f, -30.0f,  -740.0f,  99.0f, -30.0f,  15, getPoliceMazePS11TrackData15(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target8,   -740.0f,  99.0f, -30.0f,  -200.0f,  99.0f, -30.0f,  80, getPoliceMazePS11TrackData16(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target9,   -888.0f, 155.0f, 100.0f,  -888.0f, 155.0f,  30.0f,  25, getPoliceMazePS11TrackData17(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target10,  -430.0f, 164.0f,  11.0f,  -430.0f, -0.86f,  11.0f,   6, getPoliceMazePS11TrackData18(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target11,  -430.0f, -0.86f,  11.0f,  -300.0f, -0.86f, -80.0f,  20, getPoliceMazePS11TrackData19(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target12,  -891.0f,   3.1f,  90.0f,  -891.0f,   3.1f, 105.0f,  10, getPoliceMazePS11TrackData20(),  true); +	Police_Maze_Target_Track_Add(kItemPS11Target13,  -891.0f,   3.1f,  90.0f,  -891.0f,   3.1f, 105.0f,   6, getPoliceMazePS11TrackData21(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target14,  -891.0f, 171.0f, 190.0f,  -891.0f, 171.0f, 147.0f,   8, getPoliceMazePS11TrackData22(), false); +	Police_Maze_Target_Track_Add(kItemPS11Target15,  -888.0f, 155.0f,  30.0f,  -888.0f, 155.0f, 100.0f,  25, getPoliceMazePS11TrackData23(),  true); +	Police_Maze_Target_Track_Add(kItemPS11Target16,  -800.0f, -9.23f, -75.0f,  -740.0f, -9.23f, -75.0f,  15, getPoliceMazePS11TrackData27(), false); +  	Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);  	Ambient_Sounds_Add_Looping_Sound(387, 50, 1, 1);  	Ambient_Sounds_Add_Looping_Sound( 54, 50, 1, 1);  | 
