 
 	for i in [0...@playfield.width]
 		for j in [0...@playfield.height]
-			char = @playfield.getAt i, j
-
-			if char in ['^', '<', 'v', '>'] and (@pathSet.getStartingFrom i, j, '')?
-				offset = directionsIndexed.get char
-				@hitRegions.push getCellRegion i, j, offset.x, offset.y, char
+			charCode = @playfield.getAt i, j
+
+			if charCode in [S.UP, S.LEFT, S.DOWN, S.RIGHT] and (@pathSet.getStartingFrom i, j, '')?
+				offset = directionsIndexed.get charCode
+				@hitRegions.push getCellRegion i, j, offset.x, offset.y, charCode
 			else
 				for dir in directions
-					if (@pathSet.getStartingFrom i, j, dir.char)?
+					if (@pathSet.getStartingFrom i, j, dir.charCode)?
 						offset = dir.offset
-						@hitRegions.push getCellRegion i, j, offset.x, offset.y, dir.char
+						@hitRegions.push getCellRegion i, j, offset.x, offset.y, dir.charCode
 
 	return
 



getArrowImages = (size) ->
	'^': getArrowImage size, 0
	'<': getArrowImage size, -Math.PI / 2
	'v': getArrowImage size, Math.PI
	'>': getArrowImage size, Math.PI / 2


directions = [
	{ char: '<', offset: { x: 0, y: 1 } }
	{ char: '^', offset: { x: 1, y: 0 } }
	{ char: 'v', offset: { x: 1, y: 2 } }
	{ char: '>', offset: { x: 2, y: 1 } }
]


directionsIndexed = directions.reduce (ret, { char, offset }) ->
		ret.set char, offset
		ret
	, new Map


'use strict'


S = bef.Symbols


colors =
