 			trigger: Bool,
 			unused: [Bool])
 		{
-			self.backgroundOffset = backgroundOffset
-			self.foregroundOffsets = foregroundOffsets
+			self.backgroundIndex = backgroundIndex
+			self.foregroundIndices = foregroundIndices
 			self.user1 = user1
 			self.user2 = user2
 			self.user3 = user3

			static var br : CollisionSet { return CollisionSet(rawValue: 1 << 3) }
		}

		let backgroundOffset : Int
		let foregroundOffsets : [Int]
		let user1 : Int
		let user2 : Int
		let user3 : Int16


		for _ in 0..<blockCount
		{
			guard let bgoff = inputStream.readInt32(swapBytes) else
			{
				self.blockStructures = blockStructures
				return nil
			}
			guard let fgoff1 = inputStream.readInt32(swapBytes) else
			{
				self.blockStructures = blockStructures
				return nil
			}
			guard let fgoff2 = inputStream.readInt32(swapBytes) else
			{
				self.blockStructures = blockStructures
				return nil
			}
			guard let fgoff3 = inputStream.readInt32(swapBytes) else
			{
				self.blockStructures = blockStructures
				return nil
			}
			let bgIndex : Int
			let fgIndices : [Int]
			if (mapHeader.mapType > .FMP05)
			{
				bgIndex = bgoff
				fgIndices = [fgoff1, fgoff2, fgoff3]
			}
			else
			{
				let blockWidth = Int(mapHeader.blockSize.width)
				let blockHeight = Int(mapHeader.blockSize.height)
				let blockDepth = mapHeader.blockColorDepth
				bgIndex = bgoff / (blockWidth * blockHeight * ((blockDepth + 1) / 8))
				let fgIndex1 = fgoff1 / (blockWidth * blockHeight * ((blockDepth + 1) / 8))
				let fgIndex2 = fgoff2 / (blockWidth * blockHeight * ((blockDepth + 1) / 8))
				let fgIndex3 = fgoff3 / (blockWidth * blockHeight * ((blockDepth + 1) / 8))
				fgIndices = [fgIndex1, fgIndex2, fgIndex3]
			}
			guard let user1 = inputStream.readInt32(swapBytes) else
			{
