<root>
<document schema='101' license='1,Dev User,HJVC24' title='' description='' target='PIC.16F.16F1937' >
	<config data='!0,cfe4!10,deff%0,4%3,0%5,1%6,1%7,1%8,1%9,3%b,1%c,0%d,0%10,3%14,3%18,0%19,1%1a,1%1c,1%1d,0' clkspd='32000000' simspd='1' usewdt='0' constif='0' />
	<plugins >
		<dll_dbg_icd enabled='0' >
			<data name='debug' value='1' />
			<data name='userpins' value='0' />
			<data name='speed' value='0' />
			<data name='usev9' value='0' />
			<data name='breaks' value='8' />
			<data name='stacks' value='8' />
			<data name='clkport' value='1' />
			<data name='clkbit' value='6' />
			<data name='dataport' value='1' />
			<data name='databit' value='7' />
			<data name='ghostype' value='0' />
			<data name='monitor' value='1' />
			<data name='ictloop' value='0' />
			<data name='ictrate' value='20000' />
			<data name='ictmask' value='0' />
			<data name='anlpres' value='19' />
			<data name='digmask1' value='-1' />
			<data name='digmask2' value='-1' />
		</dll_dbg_icd>
		<dll_models enabled='1' />
		<dll_upgrader enabled='1' />
		<dll_webhelp enabled='1' />
	</plugins>
	<supplement use='0' head='' body='' />
	<debug >
		<watch expr='SnakeMask' />
		<watch expr='.Check' />
		<watch expr='.Position' />
		<watch expr='.Distance' />
		<watch expr='.PosCheck' />
		<watch expr='FoodCoord' />
		<watch expr='.Return' />
		<watch expr='.DiffX' />
		<watch expr='.DiffY' />
		<watch expr='.Player' />
		<watch expr='ControlVector[1]' />
	</debug>
	<components >
		<settings autoimg='1' center='1' unitscale='0' fixedscale='0' fixedx='1' fixedy='1' fixedz='1' headcode='0' />
		<definition guid='5f9af068-b959-4fdb-87ad-ebdaa559c6e8' vstate='40' vmin='0' vmaj='1' srcleaf='' visiblename='' description='' category='' catenable='1' author='' manuname='' manucode='' sysinfo='0' keywords='' dynamic='0' iconpath='' />
		<component class_type='root' codename='panel' x='0' y='0' z='0' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='0' poslock='0' >
			<resources />
			<properties >
				<property name='FieldHeight' target='FieldHeight' typeid='21' hidden='0' locked='0' info='' />
				<property name='FieldWidth' target='FieldWidth' typeid='21' hidden='0' locked='0' info='' />
				<property name='MaxSnakeLength' target='MaxLength' typeid='21' hidden='0' locked='0' info='' />
				<property name='VoxelSize' target='PixelSize' typeid='21' hidden='0' locked='0' info='' />
				<property name='NumVoxels' target='NumPixels' typeid='21' hidden='0' locked='1' info='' />
				<property name='FieldX' target='FieldX' typeid='21' hidden='0' locked='1' info='' />
				<property name='FieldY' target='FieldY' typeid='21' hidden='0' locked='1' info='' />
				<property name='Wrapping' target='Wrapping' typeid='7' hidden='0' locked='0' info='' />
				<property name='StartX' target='StartX' typeid='21' hidden='0' locked='0' info='' />
				<property name='StartY' target='StartY' typeid='21' hidden='0' locked='0' info='' />
				<property name='MaxWallPieces' target='MaxWalls' typeid='21' hidden='0' locked='0' info='' />
				<property name='WallSize' target='WallSize' typeid='21' hidden='0' locked='0' info='' />
				<property name='Scores' folder='property_1' hidden='0' >
					<property name='ShowScores' target='ShowScores' typeid='7' hidden='0' locked='0' info='' />
					<property name='Player1 X' target='P1X' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player1 Y' target='P1Y' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player2 X' target='P2X' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player2 Y' target='P2Y' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player3 X' target='P3X' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player3 Y' target='P3Y' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player4 X' target='P4X' typeid='21' hidden='0' locked='0' info='' />
					<property name='Player4 Y' target='P4Y' typeid='21' hidden='0' locked='0' info='' />
				</property>
			</properties>
			<values >
				<value target='FieldHeight' data='128' />
				<value target='FieldWidth' data='128' />
				<value target='MaxLength' data='42' />
				<value target='PixelSize' data='6' />
				<value target='NumPixels' data='441' />
				<value target='FieldX' data='21' />
				<value target='FieldY' data='21' />
				<value target='Wrapping' data='1' />
				<value target='StartX' data='0' />
				<value target='StartY' data='16' />
				<value target='MaxWalls' data='8' />
				<value target='WallSize' data='6' />
				<value target='ShowScores' data='1' />
				<value target='P1X' data='11' />
				<value target='P1Y' data='4' />
				<value target='P2X' data='75' />
				<value target='P2Y' data='4' />
				<value target='P3X' data='11' />
				<value target='P3Y' data='148' />
				<value target='P4X' data='75' />
				<value target='P4Y' data='148' />
			</values>
			<events >
				<event class='Components' event='Property' target='Ev_Property' />
			</events>
			<apis />
			<variables >
				<variable public='0' >
					<def class_type='variable' name='false' type='b1' description='' isconst='1' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Score' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' >
						<array size='4' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='HumanPlayers' type='u8' description='' isconst='0' isinit='1' usrinit='1' setinit='1' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='SnakeCoords' type='s16' description='Snake Coordinates' isconst='0' isinit='0' usrinit='0' setinit='' >
						<array size='4' />
						<array size='42' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='LoopDelay' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='SnakeMask' type='u8' description='' isconst='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='NumPlayers' type='u8' description='' isconst='0' isinit='1' usrinit='4' setinit='4' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='FoodCoord' type='s16' description='' isconst='0' isinit='1' usrinit='-1' setinit='-1' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='MazeCoords' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' >
						<array size='8' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='ControlVector' type='u8' description='' isconst='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
						<array size='4' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='true' type='b1' description='' isconst='1' isinit='1' usrinit='1' setinit='1' />
				</variable>
			</variables>
			<macros >
				<macro >
					<flowline name='GetSnakeLength' description='Returns the length of a snake by scanning through the coords array.' >
						<return name='Return' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Return = 0' />
						</command>
						<command class_type='loop' title='Loop through snake coordinates looking for the end' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='SnakeCoords[.Player][.Return] != -1' >
							<flowline >
								<command class_type='calculation' title='Increment length' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Return = .Return + 1' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='AINavigate' description='Navigates an AI player towards the food and away from obstacles' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Position' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='MoveMask' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='PosCheck' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Idx' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='RecDist' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='RecIdx' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Distance' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='DirSkip' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Initialise record variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.RecDist = 9999' />
							<exp exp='.RecIdx = 0' />
						</command>
						<command class_type='calculation' title='Collect snake head position' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Position = SnakeCoords[.Player][0]' />
						</command>
						<command class_type='comment' title='' comment='Opposite direction, keep bit 1, invert bit 0

Left 0b00 - Right Not Allowed 0b01
Right 0b01 - Left Not Allowed 0b00

Up 0b10 - Down Not Allowed 0b11
Down 0b11 - Up Not Allowed 0b10' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='calculation' title='Calculate Opposite Direction' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.DirSkip = (ControlVector[.Player] &amp; 0x2)' />
							<exp exp='.DirSkip = .DirSkip + ((ControlVector[.Player] + 1) &amp; 0x1)' />
						</command>
						<command class_type='loop' title='Loop through - Left, Right, Up, Down' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Idx' exp='4' >
							<flowline >
								<command class_type='decision' title='We cannot go directly backwards, even when only one pixel big' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Idx != .DirSkip' swap='0' >
									<flowline >
										<command class_type='call' title='Get Move Coordinate' cmdcolor='1975743' cmdcolor_sec='1975743' macro='MoveVector' >
											<return exp='.PosCheck' />
											<argument exp='.Position' />
											<argument exp='.Idx' />
										</command>
										<command class_type='call' title='Test coordinate for collisions' cmdcolor='1975743' cmdcolor_sec='1975743' macro='CheckLocation' >
											<return exp='.MoveMask' />
											<argument exp='.PosCheck' />
										</command>
										<command class_type='decision' title='Move Valid?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.MoveMask = 0' swap='0' >
											<flowline >
												<command class_type='decision' title='If there is food available' cmdcolor='3568629' cmdcolor_sec='3568629' exp='FoodCoord &gt;= 0' swap='0' >
													<flowline >
														<command class_type='call' title='Collect distance to food' cmdcolor='1975743' cmdcolor_sec='1975743' macro='CalculateDistance' >
															<return exp='.Distance' />
															<argument exp='FoodCoord' />
															<argument exp='.PosCheck' />
														</command>
														<command class_type='decision' title='Check if we have a lower distance to travel' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Distance &lt; .RecDist' swap='0' >
															<flowline >
																<command class_type='calculation' title='Store distance and movement index' cmdcolor='7895044' cmdcolor_sec='7895044' >
																	<exp exp='.RecDist = .Distance' />
																	<exp exp='.RecIdx = .Idx' />
																</command>
															</flowline>
															<flowline />
														</command>
													</flowline>
													<flowline >
														<command class_type='comment' title='' comment='Food has been consumed, will respawn next cycle
Maintain vector if possible' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
														<command class_type='decision' title='Have we already got a direction?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.RecDist = 9998' swap='0' >
															<flowline >
																<command class_type='decision' title='Is the direction on the same vector as the current' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Idx = ControlVector[.Player]' swap='0' >
																	<flowline >
																		<command class_type='calculation' title='Maintain vector' cmdcolor='7895044' cmdcolor_sec='7895044' >
																			<exp exp='.RecIdx = .Idx' />
																		</command>
																	</flowline>
																	<flowline />
																</command>
															</flowline>
															<flowline >
																<command class_type='calculation' title='Store distance and movement index' cmdcolor='7895044' cmdcolor_sec='7895044' >
																	<exp exp='.RecDist = 9998' />
																	<exp exp='.RecIdx = .Idx' />
																</command>
															</flowline>
														</command>
													</flowline>
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Is there a valid move we can make?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.RecDist &lt; 9999' swap='0' >
							<flowline >
								<command class_type='calculation' title='Assign movement to AI control vector' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='ControlVector[.Player] = .RecIdx' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='AnimateSnakes' description='' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<local name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Position' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Length' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Check' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop Through Each Player and move the snake onwards' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Player' exp='NumPlayers' >
							<flowline >
								<command class_type='decision' title='Is player snake still alive' cmdcolor='3568629' cmdcolor_sec='3568629' exp='SnakeMask &amp; (1 &lt;&lt; .Player)' swap='0' >
									<flowline >
										<command class_type='decision' title='AI Controller Player?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Player &gt;= HumanPlayers' swap='0' >
											<flowline >
												<command class_type='call' title='Control Snake' cmdcolor='1975743' cmdcolor_sec='1975743' macro='AINavigate' >
													<argument exp='.Player' />
												</command>
											</flowline>
											<flowline >
												<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
													<argument exp='.Player' />
												</command>
											</flowline>
										</command>
										<command class_type='call' title='Calculate snake length' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GetSnakeLength' >
											<return exp='.Length' />
											<argument exp='.Player' />
										</command>
										<command class_type='calculation' title='Get current snake head position' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Position = SnakeCoords[.Player][0]' />
										</command>
										<command class_type='call' title='Move Snake along control vector' cmdcolor='1975743' cmdcolor_sec='1975743' macro='MoveVector' >
											<return exp='.Position' />
											<argument exp='.Position' />
											<argument exp='ControlVector[.Player]' />
										</command>
										<command class_type='call' title='Test new snake location to see if we have hit anything' cmdcolor='1975743' cmdcolor_sec='1975743' macro='CheckLocation' >
											<return exp='.Check' />
											<argument exp='.Position' />
										</command>
										<command class_type='decision' title='Check for a collision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Check &gt; 0' swap='0' >
											<flowline >
												<command class_type='calculation' title='Set snake status from alive to dead' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='SnakeMask = SnakeMask &amp; ~ (1 &lt;&lt; .Player)' />
												</command>
											</flowline>
											<flowline >
												<command class_type='call' title='Pick Blanking Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
													<argument exp='6' />
												</command>
												<command class_type='call' title='Clear end of snake from display' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
													<argument exp='SnakeCoords[.Player][.Length - 1]' />
												</command>
												<command class_type='call' title='Set player draw colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
													<argument exp='.Player' />
												</command>
												<command class_type='decision' title='Check for collision with Food coord' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Position = FoodCoord' swap='0' >
													<flowline >
														<command class_type='calculation' title='Flag food as invalid' cmdcolor='7895044' cmdcolor_sec='7895044' >
															<exp exp='FoodCoord = -1' />
														</command>
														<command class_type='calculation' title='Increment Score' cmdcolor='7895044' cmdcolor_sec='7895044' >
															<exp exp='Score[.Player] = Score[.Player] + 1' />
														</command>
														<command class_type='call' title='Draw new score' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawScore' >
															<argument exp='.Player' />
															<argument exp='Score[.Player]' />
														</command>
														<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='MoveSnakeAlong' >
															<argument exp='.Player' />
															<argument exp='.Length' />
															<argument exp='1' />
														</command>
														<command class_type='decision' title='Speed up' cmdcolor='3568629' cmdcolor_sec='3568629' exp='LoopDelay &gt; (10 * PixelSize)' swap='0' >
															<flowline >
																<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
																	<exp exp='LoopDelay = LoopDelay - 1' />
																</command>
															</flowline>
															<flowline />
														</command>
													</flowline>
													<flowline >
														<command class_type='decision' title='Decision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Length &gt; 1' swap='0' >
															<flowline >
																<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='MoveSnakeAlong' >
																	<argument exp='.Player' />
																	<argument exp='.Length' />
																	<argument exp='0' />
																</command>
															</flowline>
															<flowline />
														</command>
													</flowline>
												</command>
												<command class_type='calculation' title='Set new snake head position' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='SnakeCoords[.Player][0] = .Position' />
												</command>
												<command class_type='call' title='Draw New Pixel' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
													<argument exp='.Position' />
												</command>
											</flowline>
										</command>
									</flowline>
									<flowline >
										<command class_type='call' title='Calculate snake length' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GetSnakeLength' >
											<return exp='.Length' />
											<argument exp='.Player' />
										</command>
										<command class_type='decision' title='Is the snake still on the game field' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Length &gt; 0' swap='0' >
											<flowline >
												<command class_type='call' title='Pick Blanking Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
													<argument exp='6' />
												</command>
												<command class_type='call' title='Clear end of snake from display' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
													<argument exp='SnakeCoords[.Player][.Length - 1]' />
												</command>
												<command class_type='calculation' title='Void coord to shrink dead snake' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='SnakeCoords[.Player][.Length - 1] = -1' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetEmptyLocation' description='Finds an empty location for a snake start point or food generation' >
						<return name='Return' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Done' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Check' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Done = 0' />
						</command>
						<command class_type='loop' title='Loop While we hunt for a valid start location' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.Done = 0' >
							<flowline >
								<command class_type='calculation' title='Pick a random address to start the player' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Return = Random ()' />
								</command>
								<command class_type='loop' title='Ensure random address is in range' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.Return &gt;= NumPixels' >
									<flowline >
										<command class_type='calculation' title='Pick a new random address to start the player' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Return = Random ()' />
										</command>
									</flowline>
								</command>
								<command class_type='call' title='Check for anything already in the position' cmdcolor='1975743' cmdcolor_sec='1975743' macro='CheckLocation' >
									<return exp='.Check' />
									<argument exp='.Return' />
								</command>
								<command class_type='decision' title='If location is empty then we&apos;re good' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Check = 0' swap='0' >
									<flowline >
										<command class_type='calculation' title='Position valid - we&apos;re done' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Done = 1' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GenerateMazeWalls' description='Simple algorythm to generate some random maze walls' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<local name='WallCount' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='XStart' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='X' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Y' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='YStart' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Get a random number of walls' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.WallCount = Random ()' />
						</command>
						<command class_type='loop' title='Keep geneating a new number of walls until we are in range' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.WallCount &gt;= MaxWalls' >
							<flowline >
								<command class_type='calculation' title='Get a random number of walls' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.WallCount = Random ()' />
								</command>
							</flowline>
						</command>
						<command class_type='call' title='Set colour to wall colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
							<argument exp='4' />
						</command>
						<command class_type='loop' title='Loop through generating wall pieces' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.WallCount &gt; 0' >
							<flowline >
								<command class_type='calculation' title='Decrement counter' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.WallCount = .WallCount - 1' />
								</command>
								<command class_type='call' title='Pick a location for the wall' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GetEmptyLocation' >
									<return exp='MazeCoords[.WallCount]' />
								</command>
								<command class_type='calculation' title='Work out the middle coordinates for the wall' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Xstart = MazeCoords[.WallCount] % FieldX' />
									<exp exp='.Ystart = MazeCoords[.WallCount] / FieldX' />
								</command>
								<command class_type='calculation' title='Adjust for wall size' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Xstart = .Xstart - (WallSize / 2)' />
									<exp exp='.Ystart = .Ystart - (WallSize / 2)' />
								</command>
								<command class_type='calculation' title='Initialise Y variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Y = .YStart' />
								</command>
								<command class_type='loop' title='Loop through Y coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.Y &lt; (.YStart + WallSize)' >
									<flowline >
										<command class_type='decision' title='Is the coordinate on screen' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.Y &gt;= 0) &amp;&amp; (.Y &lt; FieldY)' swap='0' >
											<flowline >
												<command class_type='calculation' title='Initialise X variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.X = .XStart' />
												</command>
												<command class_type='loop' title='Loop through X coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.X &lt; (.XStart + WallSize)' >
													<flowline >
														<command class_type='decision' title='Is the coordinate on screen' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.X &gt;= 0) &amp;&amp; (.X &lt; FieldX)' swap='0' >
															<flowline >
																<command class_type='call' title='Draw Wall Voxel' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
																	<argument exp='(.Y * FieldX) + .X' />
																</command>
															</flowline>
															<flowline />
														</command>
														<command class_type='calculation' title='Increment X' cmdcolor='7895044' cmdcolor_sec='7895044' >
															<exp exp='.X = .X + 1' />
														</command>
													</flowline>
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='calculation' title='Increment Y' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Y = .Y + 1' />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='HumanNavigate' description='Reads the game control switches and sets the control vector variable' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='sw' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Collect current control vector' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.sw = ControlVector[.Player]' />
						</command>
						<command class_type='switch' title='Collect switch inputs for the correct player' textarea='36,25,36,25' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Player' >
							<case >
								<flowline >
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P1_Left :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Left' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 0' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P1_Right :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Right' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 1' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P1_Up :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Up' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 2' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P1_Down :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Down' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 3' />
											</command>
										</flowline>
										<flowline />
									</command>
								</flowline>
							</case>
							<case exp='1' >
								<flowline >
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P2_Left :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Left' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 0' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P2_Right :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Right' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 1' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P2_Up :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Up' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 2' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P2_Down :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Down' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 3' />
											</command>
										</flowline>
										<flowline />
									</command>
								</flowline>
							</case>
							<case exp='2' >
								<flowline >
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P3_Left :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Left' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 0' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P3_Right :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Right' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 1' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P3_Up :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Up' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 2' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P3_Down :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Down' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 3' />
											</command>
										</flowline>
										<flowline />
									</command>
								</flowline>
							</case>
							<case exp='3' >
								<flowline >
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P4_Left :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Left' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 0' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P4_Right :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Right' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 1' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P4_Up :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Up' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 2' />
											</command>
										</flowline>
										<flowline />
									</command>
									<command class_type='decision' title='Check for switch press' cmdcolor='3568629' cmdcolor_sec='3568629' exp='P4_Down :: ReadState ()' swap='0' >
										<flowline >
											<command class_type='calculation' title='Down' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.sw = 3' />
											</command>
										</flowline>
										<flowline />
									</command>
								</flowline>
							</case>
						</command>
						<command class_type='calculation' title='Assign new control vector' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='ControlVector[.Player] = .sw' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CheckLocation' description='Checks through the snake paths and walls for a matching location.
Returns 0 if the location is empty.
Returns 1 if the location contains a snake.
Returns 2 if the location contains a wall.' >
						<return name='Return' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Position' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Idx' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='X' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Y' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='XStart' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='YStart' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Nothing found so far' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Return = 0' />
						</command>
						<command class_type='loop' title='Loop through each player' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Player' exp='NumPlayers' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Idx = 0' />
								</command>
								<command class_type='loop' title='Loop through all valid snake coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='SnakeCoords[.Player][.Idx] &gt;= 0' >
									<flowline >
										<command class_type='decision' title='Check to see if the location matches the test position' cmdcolor='3568629' cmdcolor_sec='3568629' exp='SnakeCoords[.Player][.Idx] = .Position' swap='0' >
											<flowline >
												<command class_type='calculation' title='Snake found' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.Return = 1' />
												</command>
												<command class_type='goto' title='Goto Connection Point' cmdcolor='3389439' cmdcolor_sec='3389439' labelid='0' labelname='' />
											</flowline>
											<flowline />
										</command>
										<command class_type='calculation' title='Move to next snake location' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Idx = .Idx + 1' />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
						<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Idx = 0' />
						</command>
						<command class_type='loop' title='Loop through all valid maze coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='(MazeCoords[.Idx] &gt;= 0) &amp;&amp; (.Idx &lt; MaxWalls)' >
							<flowline >
								<command class_type='calculation' title='Work out the middle coordinates for the wall' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Xstart = MazeCoords[.Idx] % FieldX' />
									<exp exp='.Ystart = MazeCoords[.Idx] / FieldX' />
								</command>
								<command class_type='calculation' title='Adjust for wall size' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Xstart = .Xstart - (WallSize / 2)' />
									<exp exp='.Ystart = .Ystart - (WallSize / 2)' />
								</command>
								<command class_type='calculation' title='Initialise Y variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Y = .YStart' />
								</command>
								<command class_type='loop' title='Loop through Y coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.Y &lt; (.YStart + WallSize)' >
									<flowline >
										<command class_type='decision' title='Is the coordinate on screen' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.Y &gt;= 0) &amp;&amp; (.Y &lt; FieldY)' swap='0' >
											<flowline >
												<command class_type='calculation' title='Initialise X variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.X = .XStart' />
												</command>
												<command class_type='loop' title='Loop through X coordinates' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.X &lt; (.XStart + WallSize)' >
													<flowline >
														<command class_type='decision' title='Is the coordinate on screen' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.X &gt;= 0) &amp;&amp; (.X &lt; FieldX)' swap='0' >
															<flowline >
																<command class_type='decision' title='Check to see if the location matches the test position' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Position = ((.Y * FieldX) + .X)' swap='0' >
																	<flowline >
																		<command class_type='calculation' title='Wall found' cmdcolor='7895044' cmdcolor_sec='7895044' >
																			<exp exp='.Return = 2' />
																		</command>
																		<command class_type='goto' title='Goto Connection Point' cmdcolor='3389439' cmdcolor_sec='3389439' labelid='0' labelname='' />
																	</flowline>
																	<flowline />
																</command>
															</flowline>
															<flowline />
														</command>
														<command class_type='calculation' title='Increment X' cmdcolor='7895044' cmdcolor_sec='7895044' >
															<exp exp='.X = .X + 1' />
														</command>
													</flowline>
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='calculation' title='Increment Y' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.Y = .Y + 1' />
										</command>
									</flowline>
								</command>
								<command class_type='calculation' title='Move to next maze location' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Idx = .Idx + 1' />
								</command>
							</flowline>
						</command>
						<command class_type='label' title='Connection Point' cmdcolor='3389439' cmdcolor_sec='3389439' labelid='0' labelname='A' />
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Property' description='Sent when a property has been changed by the User
Were using this to do some quick calculations based on the game control properties
' >
						<return name='Return' type='u32' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Assign return variable a value to avoid compiler warning' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Return = 1' />
						</command>
						<command class_type='sim' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;FieldX&quot;' />
							<argument exp='FieldWidth / PixelSize' />
						</command>
						<command class_type='sim' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;FieldY&quot;' />
							<argument exp='FieldHeight / PixelSize' />
						</command>
						<command class_type='sim' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;NumPixels&quot;' />
							<argument exp='FieldX * FieldY' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CountDown' description='Counts down 3,2,1,GO!' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Green' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='0' />
							<argument exp='255' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='3' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot; 3 &quot;' />
							<argument exp='StartX + 47' />
							<argument exp='StartY + 56' />
							<argument exp='2' />
							<argument exp='0' />
						</command>
						<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='1' type='2' />
						<command class_type='call' title='Blue' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='255' />
						</command>
						<command class_type='call' title='2' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot; 2 &quot;' />
							<argument exp='StartX + 47' />
							<argument exp='StartY + 56' />
							<argument exp='2' />
							<argument exp='0' />
						</command>
						<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='1' type='2' />
						<command class_type='call' title='Red' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='255' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='1' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot; 1 &quot;' />
							<argument exp='StartX + 47' />
							<argument exp='StartY + 56' />
							<argument exp='2' />
							<argument exp='0' />
						</command>
						<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='1' type='2' />
						<command class_type='call' title='White' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='255' />
							<argument exp='255' />
							<argument exp='255' />
						</command>
						<command class_type='call' title='GO!' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot;GO!&quot;' />
							<argument exp='StartX + 47' />
							<argument exp='StartY + 56' />
							<argument exp='2' />
							<argument exp='0' />
						</command>
						<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='1' type='2' />
						<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='DrawRectangle' >
							<argument exp='StartX' />
							<argument exp='StartY' />
							<argument exp='StartX + FieldWidth - 1' />
							<argument exp='StartY + FieldHeight - 1' />
							<argument exp='0' />
							<argument exp='1' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='ChooseColour' description='Picks the correct foreground colour to draw the selected object' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Object' type='u8' description='0-3 = Players, 4=Wall, 5=Food, 6=Blank' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='switch' title='Object Colour' textarea='36,25,36,25' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Object' >
							<case >
								<flowline >
									<command class_type='comment' title='' comment='Player 1' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Red' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='255' />
										<argument exp='0' />
										<argument exp='0' />
									</command>
									<command class_type='call' title='Background' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='128' />
										<argument exp='0' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
							<case exp='1' >
								<flowline >
									<command class_type='comment' title='' comment='Player 2' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Green' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='0' />
										<argument exp='255' />
										<argument exp='0' />
									</command>
									<command class_type='call' title='Background' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='0' />
										<argument exp='128' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
							<case exp='2' >
								<flowline >
									<command class_type='comment' title='' comment='Player 3' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Blue' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='0' />
										<argument exp='0' />
										<argument exp='255' />
									</command>
									<command class_type='call' title='Background' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='0' />
										<argument exp='0' />
										<argument exp='128' />
									</command>
								</flowline>
							</case>
							<case exp='3' >
								<flowline >
									<command class_type='comment' title='' comment='Player 4' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Orange' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='255' />
										<argument exp='128' />
										<argument exp='0' />
									</command>
									<command class_type='call' title='Background' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='128' />
										<argument exp='64' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
							<case exp='4' >
								<flowline >
									<command class_type='comment' title='' comment='Wall' textarea='40,20,40,20' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='White' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='255' />
										<argument exp='255' />
										<argument exp='255' />
									</command>
									<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='0' />
										<argument exp='0' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
							<case exp='5' >
								<flowline >
									<command class_type='comment' title='' comment='Food' textarea='40,20,40,20' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Yellow' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='255' />
										<argument exp='255' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
							<case exp='6' >
								<flowline >
									<command class_type='comment' title='' comment='Black' textarea='40,20,40,20' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
										<argument exp='0' />
										<argument exp='0' />
										<argument exp='0' />
									</command>
									<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
										<argument exp='0' />
										<argument exp='0' />
										<argument exp='0' />
									</command>
								</flowline>
							</case>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='DrawVoxel' description='Draws a unit voxel with rationalised coordinates' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Position' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='X' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Y' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Work out X Y coordinates' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.X = .Position % FieldX' />
							<exp exp='.Y = .Position / FieldX' />
						</command>
						<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='DrawRectangle' >
							<argument exp='StartX + (.X * PixelSize)' />
							<argument exp='StartY + (.Y * PixelSize)' />
							<argument exp='StartX + ((.X + 1) * PixelSize) - 1' />
							<argument exp='StartY + ((.Y + 1) * PixelSize) - 1' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='InitPlayingField' description='Sets up the playing field ready for a game.' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<local name='Idx' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop through snake positions' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Idx' exp='MaxLength' >
							<flowline >
								<command class_type='calculation' title='All snake coordinates are marked invalid -1' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='SnakeCoords[0][.Idx] = -1' />
									<exp exp='SnakeCoords[1][.Idx] = -1' />
									<exp exp='SnakeCoords[2][.Idx] = -1' />
									<exp exp='SnakeCoords[3][.Idx] = -1' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop through maze positions' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Idx' exp='MaxWalls' >
							<flowline >
								<command class_type='calculation' title='All maze coordinates are marked invalid -1' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='MazeCoords[.Idx] = -1' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop through control vectors' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Idx' exp='4' >
							<flowline >
								<command class_type='calculation' title='All vectors are 0 - move Left' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='ControlVector[.Idx] = 0' />
								</command>
								<command class_type='calculation' title='All scores are 0' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='Score[.Idx] = 0' />
								</command>
							</flowline>
						</command>
						<command class_type='calculation' title='Flag that food needs to be generated' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='FoodCoord = -1' />
						</command>
						<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetForegroundColour' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='DrawRectangle' >
							<argument exp='StartX' />
							<argument exp='StartY' />
							<argument exp='StartX + FieldWidth - 1' />
							<argument exp='StartY + FieldHeight - 1' />
							<argument exp='0' />
							<argument exp='1' />
						</command>
						<command class_type='decision' title='Should we wipe the scores' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ShowScores' swap='0' >
							<flowline >
								<command class_type='call' title='Player Text Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='0' />
								</command>
								<command class_type='call' title='Match LCD Back Colour' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
									<argument exp='0' />
									<argument exp='128' />
									<argument exp='128' />
								</command>
								<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
									<argument exp='&quot;P1: 0  &quot;' />
									<argument exp='P1X' />
									<argument exp='P1Y' />
									<argument exp='0' />
									<argument exp='0' />
								</command>
								<command class_type='call' title='Player Text Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='1' />
								</command>
								<command class_type='call' title='Match LCD Back Colour' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
									<argument exp='0' />
									<argument exp='128' />
									<argument exp='128' />
								</command>
								<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
									<argument exp='&quot;P2: 0  &quot;' />
									<argument exp='P2X' />
									<argument exp='P2Y' />
									<argument exp='0' />
									<argument exp='0' />
								</command>
								<command class_type='call' title='Player Text Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='2' />
								</command>
								<command class_type='call' title='Match LCD Back Colour' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
									<argument exp='0' />
									<argument exp='128' />
									<argument exp='128' />
								</command>
								<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
									<argument exp='&quot;P3: 0  &quot;' />
									<argument exp='P3X' />
									<argument exp='P3Y' />
									<argument exp='0' />
									<argument exp='0' />
								</command>
								<command class_type='call' title='Player Text Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='3' />
								</command>
								<command class_type='call' title='Match LCD Back Colour' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
									<argument exp='0' />
									<argument exp='128' />
									<argument exp='128' />
								</command>
								<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
									<argument exp='&quot;P4: 0  &quot;' />
									<argument exp='P4X' />
									<argument exp='P4Y' />
									<argument exp='0' />
									<argument exp='0' />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Are the human players?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='HumanPlayers &gt; 0' swap='0' >
							<flowline >
								<command class_type='calculation' title='Start off slow' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='LoopDelay = 100 * PixelSize' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Start off medium' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='LoopDelay = 25 * PixelSize' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Menu' description='A blocking macro used to determine the mode of the game' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<command class_type='comment' title='' comment='Text Colour Initiall White.
Then the colour of the winner.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='call' title='Black' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Print Title' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot;FLOWSNAKE&quot;' />
							<argument exp='StartX + 37' />
							<argument exp='StartY + 40' />
							<argument exp='3' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Set colour to wall colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
							<argument exp='4' />
						</command>
						<command class_type='call' title='Print Player Count' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot;Players 2-4 : &quot;' />
							<argument exp='StartX + 19' />
							<argument exp='StartY + 70' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Print Player Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
							<argument exp='NumPlayers' />
							<argument exp='StartX + 103' />
							<argument exp='StartY + 70' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='ControlVector[0] = 0' />
						</command>
						<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='1' exp='(ControlVector[0] = 1)' >
							<flowline >
								<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='10' type='1' />
								<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
									<argument exp='0' />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ControlVector[0] = 2' swap='0' >
									<flowline >
										<command class_type='decision' title='Increment' cmdcolor='3568629' cmdcolor_sec='3568629' exp='NumPlayers &lt; 4' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='NumPlayers = NumPlayers + 1' />
												</command>
												<command class_type='call' title='Print Player Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
													<argument exp='NumPlayers' />
													<argument exp='StartX + 103' />
													<argument exp='StartY + 70' />
													<argument exp='0' />
													<argument exp='0' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 2' start='0' >
											<flowline >
												<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='ControlVector[0] = 0' />
												</command>
												<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
													<argument exp='0' />
												</command>
											</flowline>
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ControlVector[0] = 3' swap='0' >
									<flowline >
										<command class_type='decision' title='Increment' cmdcolor='3568629' cmdcolor_sec='3568629' exp='NumPlayers &gt; 2' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='NumPlayers = NumPlayers - 1' />
												</command>
												<command class_type='call' title='Print Player Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
													<argument exp='NumPlayers' />
													<argument exp='StartX + 103' />
													<argument exp='StartY + 70' />
													<argument exp='0' />
													<argument exp='0' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 3' start='0' >
											<flowline >
												<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='ControlVector[0] = 0' />
												</command>
												<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
													<argument exp='0' />
												</command>
											</flowline>
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 1' start='0' >
							<flowline >
								<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='ControlVector[0] = 0' />
								</command>
								<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
									<argument exp='0' />
								</command>
							</flowline>
						</command>
						<command class_type='call' title='Print Human Count' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Print' >
							<argument exp='&quot;Humans  0-  : &quot;' />
							<argument exp='StartX + 19' />
							<argument exp='StartY + 85' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Print Player Count as Max' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
							<argument exp='NumPlayers' />
							<argument exp='StartX + 79' />
							<argument exp='StartY + 85' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='call' title='Print Human Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
							<argument exp='HumanPlayers' />
							<argument exp='StartX + 103' />
							<argument exp='StartY + 85' />
							<argument exp='0' />
							<argument exp='0' />
						</command>
						<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='ControlVector[0] = 0' />
						</command>
						<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='1' exp='(ControlVector[0] = 1)' >
							<flowline >
								<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='10' type='1' />
								<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
									<argument exp='0' />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ControlVector[0] = 2' swap='0' >
									<flowline >
										<command class_type='decision' title='Increment' cmdcolor='3568629' cmdcolor_sec='3568629' exp='HumanPlayers &lt; NumPlayers' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='HumanPlayers = HumanPlayers + 1' />
												</command>
												<command class_type='call' title='Print Human Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
													<argument exp='HumanPlayers' />
													<argument exp='StartX + 103' />
													<argument exp='StartY + 85' />
													<argument exp='0' />
													<argument exp='0' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 2' start='0' >
											<flowline >
												<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='ControlVector[0] = 0' />
												</command>
												<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
													<argument exp='0' />
												</command>
											</flowline>
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ControlVector[0] = 3' swap='0' >
									<flowline >
										<command class_type='decision' title='Increment' cmdcolor='3568629' cmdcolor_sec='3568629' exp='HumanPlayers &gt; 0' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='HumanPlayers = HumanPlayers - 1' />
												</command>
												<command class_type='call' title='Print Human Count Variable' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
													<argument exp='HumanPlayers' />
													<argument exp='StartX + 103' />
													<argument exp='StartY + 85' />
													<argument exp='0' />
													<argument exp='0' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 3' start='0' >
											<flowline >
												<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='ControlVector[0] = 0' />
												</command>
												<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
													<argument exp='0' />
												</command>
											</flowline>
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='ControlVector[0] = 1' start='0' >
							<flowline >
								<command class_type='calculation' title='Reset button press' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='ControlVector[0] = 0' />
								</command>
								<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='HumanNavigate' >
									<argument exp='0' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='InitialisePlayers' description='Add players to unallocated area&apos;s on the playing field' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<local name='Player' type='u8' description='' isconst='0' isinit='1' usrinit='0' setinit='0' />
						<local name='PositionIdx' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Clear Player Alive Mask' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='SnakeMask = 0' />
						</command>
						<command class_type='calculation' title='First player' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Player = 0' />
						</command>
						<command class_type='loop' title='Loop Through Each Player and assign a start location' cmdcolor='3568629' cmdcolor_sec='3568629' type='2' forvar='.Player' exp='NumPlayers' >
							<flowline >
								<command class_type='call' title='Get a empty position' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GetEmptyLocation' >
									<return exp='.PositionIdx' />
								</command>
								<command class_type='call' title='Player count selects colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='.Player' />
								</command>
								<command class_type='calculation' title='Assign start position to snake variables' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='SnakeCoords[.Player][0] = .PositionIdx' />
								</command>
								<command class_type='call' title='Draw snake square on gLCD' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
									<argument exp='.PositionIdx' />
								</command>
								<command class_type='calculation' title='Clear Player Alive Mask' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='SnakeMask = SnakeMask | (1 &lt;&lt; .Player)' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GenerateFood' description='Checks to see if food exists on the playing field. 
If not then a new piece is spawned in an empty location.' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<command class_type='decision' title='Check to see if Food coordinate is marked as invalid' cmdcolor='3568629' cmdcolor_sec='3568629' exp='FoodCoord &lt; 0' swap='0' >
							<flowline >
								<command class_type='call' title='Call Macro' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GetEmptyLocation' >
									<return exp='FoodCoord' />
								</command>
								<command class_type='call' title='Food Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
									<argument exp='5' />
								</command>
								<command class_type='call' title='Draw Food' cmdcolor='1975743' cmdcolor_sec='1975743' macro='DrawVoxel' >
									<argument exp='FoodCoord' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='MoveVector' description='Calculates the new position based on a current position and movement direction' >
						<return name='Return' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Position' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Direction' type='u8' description='0=Left, 1=Right, 2=Up, 3=Down' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='switch' title='Switch' textarea='36,25,36,25' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Direction' >
							<case >
								<flowline >
									<command class_type='comment' title='' comment='Move Left' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='decision' title='Are already against the left hand side edge' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.Position % FieldX) = 0' swap='0' >
										<flowline >
											<command class_type='decision' title='Is Wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
												<flowline >
													<command class_type='calculation' title='Move Left and Wrap around' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position + (FieldX - 1)' />
													</command>
												</flowline>
												<flowline >
													<command class_type='calculation' title='Stay put' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position' />
													</command>
												</flowline>
											</command>
										</flowline>
										<flowline >
											<command class_type='calculation' title='Move Left - Subtract 1' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.Return = .Position - 1' />
											</command>
										</flowline>
									</command>
								</flowline>
							</case>
							<case exp='1' >
								<flowline >
									<command class_type='comment' title='' comment='Move Right
' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='decision' title='Are already against the right hand side edge' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(.Position % FieldX) = (FieldX - 1)' swap='0' >
										<flowline >
											<command class_type='decision' title='Is Wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
												<flowline >
													<command class_type='calculation' title='Move Right and Wrap around' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position - (FieldX - 1)' />
													</command>
												</flowline>
												<flowline >
													<command class_type='calculation' title='Stay put' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position' />
													</command>
												</flowline>
											</command>
										</flowline>
										<flowline >
											<command class_type='calculation' title='Move Right - Add 1' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.Return = .Position + 1' />
											</command>
										</flowline>
									</command>
								</flowline>
							</case>
							<case exp='2' >
								<flowline >
									<command class_type='comment' title='' comment='Move Up
' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='decision' title='Are already against the top side edge' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Position &lt; FieldX' swap='0' >
										<flowline >
											<command class_type='decision' title='Is Wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
												<flowline >
													<command class_type='calculation' title='Move Up and Wrap around' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position + ((FieldY - 1) * FieldX)' />
													</command>
												</flowline>
												<flowline >
													<command class_type='calculation' title='Stay put' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position' />
													</command>
												</flowline>
											</command>
										</flowline>
										<flowline >
											<command class_type='calculation' title='Move Up - Subtract FieldX' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.Return = .Position - FieldX' />
											</command>
										</flowline>
									</command>
								</flowline>
							</case>
							<case exp='3' >
								<flowline >
									<command class_type='comment' title='' comment='Move Down
' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									<command class_type='decision' title='Are already against the bottom side edge' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Position &gt;= (FieldY - 1) * FieldX' swap='0' >
										<flowline >
											<command class_type='decision' title='Is Wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
												<flowline >
													<command class_type='calculation' title='Move Down and Wrap around' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position - ((FieldY - 1) * FieldX)' />
													</command>
												</flowline>
												<flowline >
													<command class_type='calculation' title='Stay put' cmdcolor='7895044' cmdcolor_sec='7895044' >
														<exp exp='.Return = .Position' />
													</command>
												</flowline>
											</command>
										</flowline>
										<flowline >
											<command class_type='calculation' title='Move Down - Add FieldX' cmdcolor='7895044' cmdcolor_sec='7895044' >
												<exp exp='.Return = .Position + FieldX' />
											</command>
										</flowline>
									</command>
								</flowline>
							</case>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='DrawScore' description='Displays the players score at the specified coordinates' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Score' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='Should we display the scores' cmdcolor='3568629' cmdcolor_sec='3568629' exp='ShowScores' swap='0' >
							<flowline >
								<command class_type='call' title='Match LCD Back Colour' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='SetBackgroundColour' >
									<argument exp='0' />
									<argument exp='128' />
									<argument exp='128' />
								</command>
								<command class_type='switch' title='Choose which player' textarea='36,25,36,25' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Player' >
									<case >
										<flowline >
											<command class_type='call' title='Print Player 1 Score' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
												<argument exp='.Score' />
												<argument exp='P1X + 24' />
												<argument exp='P1Y' />
												<argument exp='0' />
												<argument exp='0' />
											</command>
										</flowline>
									</case>
									<case exp='1' >
										<flowline >
											<command class_type='call' title='Print Player 2 Score' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
												<argument exp='.Score' />
												<argument exp='P2X + 24' />
												<argument exp='P2Y' />
												<argument exp='0' />
												<argument exp='0' />
											</command>
										</flowline>
									</case>
									<case exp='2' >
										<flowline >
											<command class_type='call' title='Print Player 3 Score' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
												<argument exp='.Score' />
												<argument exp='P3X + 24' />
												<argument exp='P3Y' />
												<argument exp='0' />
												<argument exp='0' />
											</command>
										</flowline>
									</case>
									<case exp='3' >
										<flowline >
											<command class_type='call' title='Print Player 4 Score' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='PrintNumber' >
												<argument exp='.Score' />
												<argument exp='P4X + 24' />
												<argument exp='P4Y' />
												<argument exp='0' />
												<argument exp='0' />
											</command>
										</flowline>
									</case>
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='MoveSnakeAlong' description='Moves a snake forward one place' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<param name='Player' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Length' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Grow' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='Do we need to increase the length of the snake' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Grow = 1' swap='0' >
							<flowline >
								<command class_type='decision' title='Check to see if snake is at max length' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Length = (MaxLength - 1)' swap='0' >
									<flowline />
									<flowline >
										<command class_type='calculation' title='Add new coordinate to the snake' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='SnakeCoords[.Player][.Length] = SnakeCoords[.Player][.Length - 1]' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='calculation' title='Decrement length by one to get 2 : 0,1   --  4 : 0,1,2,3' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Length = .Length - 1' />
						</command>
						<command class_type='loop' title='Loop through the length of the snake' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='.Length &gt; 0' >
							<flowline >
								<command class_type='calculation' title='Shift Coordinates along 2-&gt;3  1-&gt;2  0-&gt;1' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='SnakeCoords[.Player][.Length] = SnakeCoords[.Player][.Length - 1]' />
								</command>
								<command class_type='calculation' title='Decrement length' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.Length = .Length - 1' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Main' description='' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<command class_type='native' title='32MHz IntOSC 16F1937' ccode='OSCCON = 0xF0;' cmdcolor='3389439' cmdcolor_sec='3389439' language='C' />
						<command class_type='call' title='Call Component Macro' cmdcolor='1975743' cmdcolor_sec='1975743' component='gLCD_EBM001' macro='Initialise' />
						<command class_type='call' title='Initial Text Colour' cmdcolor='1975743' cmdcolor_sec='1975743' macro='ChooseColour' >
							<argument exp='4' />
						</command>
						<command class_type='loop' title='Loop' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='1' >
							<flowline >
								<command class_type='call' title='Main Menu - Number Of Players' cmdcolor='1975743' cmdcolor_sec='1975743' macro='Menu' />
								<command class_type='call' title='Initialise Variables' cmdcolor='1975743' cmdcolor_sec='1975743' macro='InitPlayingField' />
								<command class_type='call' title='3,2,1,GO!' cmdcolor='1975743' cmdcolor_sec='1975743' macro='CountDown' />
								<command class_type='call' title='Generate some random walls' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GenerateMazeWalls' />
								<command class_type='call' title='Initialise Players' cmdcolor='1975743' cmdcolor_sec='1975743' macro='InitialisePlayers' />
								<command class_type='loop' title='Loop while there are still snakes playing' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='SnakeMask &gt; 0' >
									<flowline >
										<command class_type='call' title='Check for food and generate if none available' cmdcolor='1975743' cmdcolor_sec='1975743' macro='GenerateFood' />
										<command class_type='call' title='Move the snakes on their control vector' cmdcolor='1975743' cmdcolor_sec='1975743' macro='AnimateSnakes' />
										<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='LoopDelay' type='1' />
									</flowline>
								</command>
								<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='1' type='2' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CalculateDistance' description='Calculates the distance from one pixel location to another' >
						<return name='Return' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Coord1' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<param name='Coord2' type='u16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='X1' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Y1' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='X2' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='Y2' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='DiffX' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='DiffY' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<local name='DiffCheck' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Work out Coord 1 X and Y coordinates' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.X1 = .Coord1 % FieldX' />
							<exp exp='.Y1 = .Coord1 / FieldX' />
						</command>
						<command class_type='calculation' title='Work out Coord 2 X and Y coordinates' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.X2 = .Coord2 % FieldX' />
							<exp exp='.Y2 = .Coord2 / FieldX' />
						</command>
						<command class_type='decision' title='Is X1 bigger than or equal to X2' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.X1 &gt;= .X2' swap='0' >
							<flowline >
								<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.DiffX = .X1 - .X2' />
								</command>
								<command class_type='decision' title='Is wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
									<flowline >
										<command class_type='calculation' title='Find difference based on a wrap' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.DiffCheck = (.X2 + FieldX) - .X1' />
										</command>
										<command class_type='decision' title='Check if wrap is closer' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.DiffX &gt; .DiffCheck' swap='0' >
											<flowline >
												<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.DiffX = .DiffCheck' />
													<exp exp='' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.DiffX = .X2 - .X1' />
								</command>
								<command class_type='decision' title='Is wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
									<flowline >
										<command class_type='calculation' title='Find difference based on a wrap' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.DiffCheck = (.X1 + FieldX) - .X2' />
										</command>
										<command class_type='decision' title='Check if wrap is closer' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.DiffX &gt; .DiffCheck' swap='0' >
											<flowline >
												<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.DiffX = .DiffCheck' />
													<exp exp='' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Is Y1 bigger than or equal to Y2' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.Y1 &gt;= .Y2' swap='0' >
							<flowline >
								<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.DiffY = .Y1 - .Y2' />
								</command>
								<command class_type='decision' title='Is wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
									<flowline >
										<command class_type='calculation' title='Find difference based on a wrap' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.DiffCheck = (.Y2 + FieldY) - .Y1' />
										</command>
										<command class_type='decision' title='Check if wrap is closer' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.DiffY &gt; .DiffCheck' swap='0' >
											<flowline >
												<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.DiffY = .DiffCheck' />
													<exp exp='' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='.DiffY = .Y2 - .Y1' />
								</command>
								<command class_type='decision' title='Is wrapping allowed?' cmdcolor='3568629' cmdcolor_sec='3568629' exp='Wrapping' swap='0' >
									<flowline >
										<command class_type='calculation' title='Find difference based on a wrap' cmdcolor='7895044' cmdcolor_sec='7895044' >
											<exp exp='.DiffCheck = (.Y1 + FieldY) - .Y2' />
										</command>
										<command class_type='decision' title='Check if wrap is closer' cmdcolor='3568629' cmdcolor_sec='3568629' exp='.DiffY &gt; .DiffCheck' swap='0' >
											<flowline >
												<command class_type='calculation' title='Collect Positive Difference' cmdcolor='7895044' cmdcolor_sec='7895044' >
													<exp exp='.DiffY = .DiffCheck' />
													<exp exp='' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
						<command class_type='calculation' title='Return = Moves to food' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='.Return = .DiffX + .DiffY' />
						</command>
					</flowline>
				</macro>
			</macros>
			<component class_type='ref' guid='5a6d2f2e-da92-49b4-ad5c-71f51e8fe24b' vmin='6' vmaj='1' codename='gLCD_EBM001' x='-175' y='-61' z='0.375' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values >
					<value target='pixel_height' data='160' />
					<value target='pixel_width' data='128' />
					<value target='monochrome' data='0' />
					<value target='foreground_colour' data='16777215' />
					<value target='background_colour' data='8421376' />
					<value target='colour_bit_depth' data='16' />
					<value target='red_bit_depth' data='5' />
					<value target='green_bit_depth' data='6' />
					<value target='blue_bit_depth' data='5' />
					<value target='FGCOL' data='65503' />
					<value target='BGCOL' data='1040' />
					<value target='data_pin' data='$PORTB.0' />
					<value target='clock_pin' data='$PORTB.1' />
					<value target='chip_sel_pin' data='$PORTB.2' />
					<value target='a0_pin' data='$PORTB.3' />
					<value target='reset_pin' data='$PORTB.4' />
					<value target='led_pin' data='$PORTB.5' />
					<value target='DisplayMethod' data='000' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='group' codename='group1' x='-267.974' y='13.5' z='-6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values />
				<events />
				<apis />
				<variables />
				<macros />
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P1_Left' x='-18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTA.0' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P1_Down' x='0.000193455' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTA.3' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P1_Right' x='18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTA.1' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P1_Up' x='0.000193455' y='6.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTA.2' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label1' x='-0.0261935' y='28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='Player 1' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label2' x='-18.0262' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='0-A' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label3' x='-1.02619' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='3-S' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label4' x='17.9738' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='1-D' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label5' x='-0.0261935' y='19.5' z='8.425' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='2-W' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
			</component>
			<component class_type='group' codename='group2' x='-199.74' y='13.5' z='-6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values />
				<events />
				<apis />
				<variables />
				<macros />
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P2_Left' x='-18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTC.0' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P2_Down' x='0.000193455' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTC.3' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P2_Right' x='18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTC.1' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P2_Up' x='0.000193455' y='6.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTC.2' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label6' x='-0.0261935' y='28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='Player 2' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label7' x='-18.0262' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='0-J' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label8' x='-1.02619' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='3-K' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label9' x='17.9738' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='1-L' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label10' x='-0.0261935' y='19.5' z='8.425' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='2-I' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
			</component>
			<component class_type='group' codename='group3' x='-136.506' y='13.5' z='-6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values />
				<events />
				<apis />
				<variables />
				<macros />
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P3_Left' x='-18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.0' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P3_Down' x='0.000193455' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.3' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P3_Right' x='18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.1' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P3_Up' x='0.000193455' y='6.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.2' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label11' x='-0.0261935' y='28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='Player 3' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label12' x='-18.0262' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='0-F' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label13' x='-1.02619' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='3-G' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label14' x='17.9738' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='1-H' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label15' x='-0.0261935' y='19.5' z='8.425' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='2-T' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
			</component>
			<component class_type='group' codename='group4' x='-72.2717' y='13.5' z='-6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values />
				<events />
				<apis />
				<variables />
				<macros />
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P4_Left' x='-18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.4' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P4_Down' x='0.000193455' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.7' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P4_Right' x='18.0262' y='-13.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.5' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='5c1da48f-ce54-4622-bdd9-fc812e373696' vmin='1' vmaj='1' codename='P4_Up' x='0.000193455' y='6.5' z='8.88178e-16' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='pin' data='$PORTD.6' />
						<value target='polarity' data='000' />
						<value target='debounce' data='0' />
						<value target='operation' data='000' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label16' x='-0.0261935' y='28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='Player 4' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label17' x='-18.0262' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='0-4' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label18' x='-1.02619' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='3-5' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label19' x='17.9738' y='-28.5' z='6.175' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='1-6' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
				<component class_type='ref' guid='9a971ee1-28e0-4e47-9c09-71268383fc75' vmin='0' vmaj='1' codename='shape_label20' x='-0.0261935' y='19.5' z='8.425' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
					<resources />
					<properties />
					<values >
						<value target='Color' data='16777215' />
						<value target='Background' data='-1' />
						<value target='Font' data='Arial' />
						<value target='Text' data='2-8' />
					</values>
					<events />
					<apis />
					<variables />
					<macros />
				</component>
			</component>
			<component class_type='ref' guid='3e5cc6d0-3e36-46b8-bc40-f238a5735b6e' vmin='0' vmaj='1' codename='IntOscHelper1' x='-239.5' y='-61' z='0' xsz='25' ysz='25' zsz='25' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='1' poslock='0' >
				<resources />
				<properties />
				<values >
					<value target='OscSpeed' data='6' />
					<value target='OscFreq' data='500000' />
					<value target='ClockSpeed' data='32000000' />
					<value target='Info' data='Warning: Clock Speed In Project Options Does Not Match Internal Oscillator Speed' />
					<value target='Code' data='OSCCON = 0x38;' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
		</component>
	</components>
	<keymap >
		<key code='54' >
			<exp exp='ControlVector[3] = 1' />
		</key>
		<key code='76' >
			<exp exp='ControlVector[1] = 1' />
		</key>
		<key code='71' >
			<exp exp='ControlVector[2] = 3' />
		</key>
		<key code='70' >
			<exp exp='ControlVector[2] = 0' />
		</key>
		<key code='53' >
			<exp exp='ControlVector[3] = 3' />
		</key>
		<key code='75' >
			<exp exp='ControlVector[1] = 3' />
		</key>
		<key code='65' >
			<exp exp='ControlVector[0] = 0' />
		</key>
		<key code='84' >
			<exp exp='ControlVector[2] = 2' />
		</key>
		<key code='74' >
			<exp exp='ControlVector[1] = 0' />
		</key>
		<key code='83' >
			<exp exp='ControlVector[0] = 3' />
		</key>
		<key code='73' >
			<exp exp='ControlVector[1] = 2' />
		</key>
		<key code='52' >
			<exp exp='ControlVector[3] = 0' />
		</key>
		<key code='87' >
			<exp exp='ControlVector[0] = 2' />
		</key>
		<key code='56' >
			<exp exp='ControlVector[3] = 2' />
		</key>
		<key code='68' >
			<exp exp='ControlVector[0] = 1' />
		</key>
		<key code='72' >
			<exp exp='ControlVector[2] = 1' />
		</key>
	</keymap>
	<panel2d shadows='0' lighting='0' brightness='256' perspective='0' >
		<background rgb='2105930' img='' style='0' />
		<camera xe='-176.843' ye='-59.4922' ze='124.459' xt='-176.843' yt='-59.4922' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
	</panel2d>
	<panel3d shadows='0' lighting='2' brightness='256' perspective='0' >
		<background rgb='8409120' img='' style='0' />
		<table rgb='7360576' img='' style='0' size='0' />
		<camera xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey0 xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey1 xe='-3.67394e-14' ye='0' ze='-300' xt='0' yt='0' zt='0' xquat='0' yquat='1' zquat='0' wquat='6.12323e-17' />
		<camerakey2 xe='0' ye='-300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.707107' yquat='0' zquat='0' wquat='0.707107' />
		<camerakey3 xe='-3.67394e-14' ye='300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-4.32978e-17' yquat='0.707107' zquat='0.707107' wquat='4.32978e-17' />
		<camerakey4 xe='-300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='0.5' zquat='0.5' wquat='0.5' />
		<camerakey5 xe='300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='-0.5' zquat='-0.5' wquat='0.5' />
		<camerakey6 xe='-173.205' ye='-173.205' ze='173.205' xt='0' yt='0' zt='0' xquat='-0.424708' yquat='0.17592' zquat='0.339851' wquat='0.820473' />
	</panel3d>
	<layout >
		<view type='0' name='InitPlayingField' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAAowQAAKYDAAA' zoom='75' scrollx='0' scrolly='37' flags='0' />
		<view type='0' name='Main' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAAowQAAKYDAAA' zoom='75' scrollx='0' scrolly='285' flags='0' />
		<view type='0' name='AnimateSnakes' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAAowQAAKYDAAA' zoom='75' scrollx='804' scrolly='923' flags='0' />
		<view type='0' name='Menu' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAAowQAAKYDAAA' zoom='75' scrollx='0' scrolly='2418' flags='0' />
	</layout>
</document>
</root>
