 				processSegmentTriggers(playerSegment);
 			}
 			
-			/* Check if player drives onto off-road area. */
-			if ((_playerX < -1) || (_playerX > 1))
-			{
-				if (_speed > _offRoadLimit)
-				{
-					_speed = accel(_speed, _offRoadDecel, _dt);
-				}
-			}
-			
 			/* Check player collisions with other entities. */
 			if (playerSegment.entitiesNum > 0)
 			{
 				processEntityCollisions(playerSegment);
 			}
 			
-			/* Check player collision with opponents. */
+			/* Slow down if player drives onto off-road area. */
+			if ((_playerX < -1 || _playerX > 1) && _speed > _offRoadLimit)
+			{
+				_speed = accel(_speed, _offRoadDecel);
+			}
+			
+			/* Check player collision with other cars. */
 			for (i = 0; i < playerSegment.cars.length; i++)
 			{
 				var car:RTCar = playerSegment.cars[i];

			else
			{
				var dx:Number = _dt * 2 * _speedPercent;
				/* Update left/right steering. */
				if (_isSteeringLeft) _playerX = _playerX - dx;
				else if (_isSteeringRight) _playerX = _playerX + dx;
				
				_playerX = _playerX - (dx * _speedPercent * segment.curve * _centrifugal);
				
				/* Update acceleration & decceleration. */
				if (_isAccelerating) _speed = accel(_speed, _acceleration, _dt);
				else if (_isBraking) _speed = accel(_speed, _braking, _dt);
				else _speed = accel(_speed, _deceleration, _dt);
			}
		}
		

		 * @param clipY
		 * @param hazeAlpha
		 */
		private function renderEntity(entity:RTEntity, scale:Number,
			destX:Number, destY:Number, offsetX:Number = 0.0, offsetY:Number = 0.0,
			clipY:Number = 0.0, hazeAlpha:Number = 1.0):void
		{
			if (!entity.object.image) return;
			
			var image:Image2D = entity.object.image;
			
			//if (sequenceID)
			//{
			//	var seq:RTObjectImageSequence = entity.object.sequences[sequenceID];
			//	if (seq)
			//	{
			//		image = seq.movieClip;
			//	}
			//}
			
			scale *= entity.scale;
			
