' Blurred Visions presents... ' JARED AND THE SUBWAY ADVENTURE... ' http:\\www.redrival.com\retna DECLARE SUB RestoreLevel () DECLARE SUB Font (X, Y, Variable$, Colour) DECLARE SUB MenuSelect () DECLARE SUB JumpLevel (Number) DECLARE SUB MainScreen () DECLARE SUB GotSub () DECLARE SUB Load.Graphics () DECLARE SUB Load.Variables () DECLARE SUB Load.Map () DECLARE SUB Load.Level () DECLARE SUB Draw.Tiles () DECLARE SUB Draw.Jared () DECLARE SUB Draw.Temp () DECLARE SUB Draw.Mask () DECLARE SUB MainLoop () DECLARE SUB Change.X (Value) DECLARE SUB Change.Y (Value) DECLARE SUB Change.Block (Value) DECLARE SUB Change.AddBlock (Value) DECLARE SUB Falling () DECLARE SUB Jumping () DECLARE SUB Delay () DECLARE SUB StartDelay () DECLARE FUNCTION Inpot$ (WLength) DECLARE FUNCTION Test.Sides (R.or.L) DECLARE FUNCTION Test.Dead () DECLARE FUNCTION Test.InAir () DECLARE FUNCTION Test.MoveRight () DECLARE FUNCTION Test.MoveLeft () DECLARE FUNCTION Test.BlockRight () DECLARE FUNCTION Test.BlockLeft () DECLARE FUNCTION Test.GetBlock (Value) DECLARE FUNCTION Test.PlaceBlock (Value) DECLARE FUNCTION Test.MoveUP () DECLARE FUNCTION Test.GetSub () DECLARE FUNCTION Test.GotBack () DECLARE FUNCTION BRightJared () DECLARE FUNCTION BLeftJared () DECLARE FUNCTION AboveJared () DECLARE FUNCTION OnJared () DECLARE FUNCTION UnderJared () DIM SHARED VertiCenter, HorizCenter DIM SHARED NumJared, NumGraphics, JaredX, JaredY, JaredDirection, DataX, DataY DIM SHARED InAir, CurTime!, DelayTime!, DelayGoing DIM SHARED HaveBlock, HaveSub, Level, MaxLevel DIM SHARED JaredRight, JaredLeft, JaredRightMask, JaredLeftMask, JaredRightBlock, JaredLeftBlock, JaredRightBlockMask, JaredLeftBlockMask DIM SHARED Water, Grass, Ground, StartGrass, EndGrass, Ladder, Blank, Block ' JaredX and JaredY tell where Jared is on the screen. The Graphics. ' DataX and DataY tell where Jared is in the DataMap. Load.Variables DIM SHARED DataMap(28, 11) DIM SHARED DataMap2(28, 11) DIM SHARED Jared(NumJared * 200 + NumJared * 200 + 1) '<- The extra part is DIM SHARED Graphics(NumGraphics * 100) ' For the masks... DIM SHARED Temp(10 * 20) ' Loading is easier ' This way... ' Temp is for the image that is ' behind where Jared is placed... SCREEN 13 Load.Graphics MainScreen Draw.Tiles Draw.Jared MainLoop DATA 104,1 ,0 ,0 ,0 ,0 ,1 ,0 ,105,0 DATA 105,104,1 ,105,104,1 ,105,104,1 ,104 DATA 1 ,104,1 ,104,1 ,104,1 ,104,1 ,104 DATA 104,1 ,105,1 ,105,1 ,105,1 ,104,1 DATA 1 ,104,1 ,104,1 ,104,1 ,104,1 ,104 DATA 104,1 ,104,1 ,105,1 ,104,1 ,105,1 DATA 1 ,104,1 ,104,1 ,104,1 ,104,1 ,104 DATA 104,1 ,105,1 ,105,1 ,105,1 ,104,1 DATA 1 ,104,114 ,137 ,114 ,104,1 ,104,1 ,104 DATA 105,114 ,137 ,114 ,137 ,114 ,137 ,114 ,105,1 '117,120,142,11379,192,215 DATA 117,192,0 ,192,120,192,120,192,0 ,192 DATA 192,120,192,117,192,120,192,120,192,117 DATA 117,192,120,137 ,120,137 ,114 ,137 ,120,137 DATA 137 ,120,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114, 137, 114, 137, 114, 137, 114, 137, 114, 137 DATA 137, 114, 137, 114, 137, 114, 137, 114, 137, 114 DATA 114, 137, 114, 137, 114, 137, 114, 137, 114, 137 DATA 137, 114, 137, 114, 137, 114, 137, 114, 137, 114 DATA 114, 137, 114, 137, 114, 137, 114, 137, 114, 137 DATA 137, 114, 137, 114, 137, 114, 137, 114, 137, 114 DATA 114, 137, 114, 137, 114, 137, 114, 137, 114, 137 DATA 137, 114, 137, 114, 137, 114, 137, 114, 137, 114 DATA 114, 137, 114, 137, 114, 137, 114, 137, 114, 137 DATA 137, 114, 137, 114, 137, 114, 137, 114, 137, 114 '114,137,11375 DATA 117,192,0 ,192,120,192,120,192,0 ,192 DATA 192,120,192,117,192,120,192,120,192,117 DATA 117,192,120,137 ,120,137 ,114 ,137 ,120,137 DATA 137 ,120,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 0 ,0 ,0 ,114 ,114 ,114 ,114 ,0 ,0 ,192 DATA 192,0 ,114 ,2 ,2 ,137 ,2 ,114 ,0 ,117 DATA 117,137 ,0 ,114 ,114 ,114 ,114 ,0 ,120,137 DATA 137 ,117,120,192,117,192,120,117,192,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 DATA 137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 ,137 ,114 DATA 12, 6, 0, 0, 0, 0, 0, 0, 8, 6 DATA 8, 6, 0, 0, 0, 0, 0, 0,12, 6 DATA 12, 6, 0, 0, 0, 0, 0, 0, 8, 6 DATA 8, 6, 0, 0, 0, 0, 0, 0,12, 6 DATA 12, 6,12, 8,12, 8,12, 8, 6, 6 DATA 8, 6, 6, 6, 6, 6, 6, 6, 6, 6 DATA 12, 6, 0, 0, 0, 0, 0, 0, 8, 6 DATA 8, 6, 0, 0, 0, 0, 0, 0,12, 6 DATA 12, 6, 0, 0, 0, 0, 0, 0, 8, 6 DATA 8, 6, 0, 0, 0, 0, 0, 0,12, 6 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0,24,23,23,23,24, 0, 0 DATA 0, 0,24,23,24,24,23,23,24, 0 DATA 0,23,23,24,24,25,24,24,24,24 DATA 0,24,24,24,25,24,25,25,24,24 DATA 0,25,24,25,24,25,25,25,25,25 DATA 0,24,25,24,25,25,25,25,25,25 DATA 0,25,24,25,25,25,25,25,25,25 DATA 0,24,25,25,25,25,25,25,25,25 DATA 0,25,24,25,25,25,25,25,25,25 DATA 0, 0,25,25,25,25,25,25,25, 0 DATA 0, 0, 0,25,25,25, 0, 0, 0, 0 DATA 0, 0,25,25,14,14,25, 0, 0, 0 DATA 0,25,25,14, 1,14, 0, 0, 0, 0 DATA 0,25,25,14, 1,14, 0, 0, 0, 0 DATA 0,25,25,14,14,14, 0, 0, 0, 0 DATA 0,25,14,14,14, 0, 0, 0, 0, 0 DATA 0, 0, 9, 9, 9, 0, 0, 0, 0, 0 DATA 0, 9, 9, 9, 9, 9, 0, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9, 0, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9, 0, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9, 9, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9, 9, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9, 9, 0, 0, 0 DATA 0, 8,14,14, 9, 8, 8, 0, 0, 0 DATA 0, 8, 8,14, 8, 8, 8, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 7, 7, 0, 0, 0, 0 DATA 0, 8,15,15,15,15,15, 0, 0, 0 DATA 0, 0, 0, 0,25,25,25, 0, 0, 0 DATA 0, 0, 0,25,14,14,25,25, 0, 0 DATA 0, 0, 0, 0,14, 1,14,25,25, 0 DATA 0, 0, 0, 0,14, 1,14,25,25, 0 DATA 0, 0, 0, 0,14,14,14,25,25, 0 DATA 0, 0, 0, 0, 0,14,14,14,25, 0 DATA 0, 0, 0, 0, 0, 9, 9, 9, 0, 0 DATA 0, 0, 0, 0, 9, 9, 9, 9, 9, 0 DATA 0, 0, 0, 0, 9, 9, 1, 1, 9, 0 DATA 0, 0, 0, 0, 9, 9, 1, 1, 9, 0 DATA 0, 0, 0, 9, 9, 9, 1, 1, 9, 0 DATA 0, 0, 0, 9, 9, 9, 1, 1, 9, 0 DATA 0, 0, 0, 9, 9, 9, 1, 1, 9, 0 DATA 0, 0, 0, 8, 8, 9,14,14, 8, 0 DATA 0, 0, 0, 8, 8, 8,14, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 7, 7, 8, 8, 8, 0 DATA 0, 0, 0,15,15,15,15,15, 8, 0 DATA 0, 0, 0,25,25,25, 0, 0, 0, 0 DATA 0, 0,25,25,14,14,25, 0, 0, 0 DATA 0,25,25,14, 1,14, 0, 0, 0, 0 DATA 0,25,25,14, 1,14, 0, 0, 0, 0 DATA 0,25,25,14,14,14, 0, 0, 0, 0 DATA 0,25,14,14,14, 0, 0, 0, 0, 0 DATA 0, 0, 9, 9, 9, 0, 0, 0, 0, 0 DATA 0, 9, 9, 9, 9, 9, 0, 0, 0, 0 DATA 0, 9, 1, 1, 9, 9,25,25, 0, 0 DATA 0, 9, 1, 1, 9, 9,25,25, 0, 0 DATA 0, 9, 1, 1, 1, 1,14,14, 0, 0 DATA 0, 9, 1, 1, 1, 1,14, 0, 0, 0 DATA 0, 9, 9, 9, 9, 9, 9, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 8, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 8, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 8, 8, 0, 0, 0, 0 DATA 0, 8, 8, 8, 7, 7, 0, 0, 0, 0 DATA 0, 8,15,15,15,15,15, 0, 0, 0 DATA 0, 0, 0, 0,25,25,25, 0, 0, 0 DATA 0, 0, 0,25,14,14,25,25, 0, 0 DATA 0, 0, 0, 0,14, 1,14,25,25, 0 DATA 0, 0, 0, 0,14, 1,14,25,25, 0 DATA 0, 0, 0, 0,14,14,14,25,25, 0 DATA 0, 0, 0, 0, 0,14,14,14,25, 0 DATA 0, 0, 0, 0, 0, 9, 9, 9, 0, 0 DATA 0, 0, 0, 0, 9, 9, 9, 9, 9, 0 DATA 0, 0,25,25, 9, 9, 1, 1, 9, 0 DATA 0, 0,25,25, 9, 9, 1, 1, 9, 0 DATA 0, 0,14,14, 1, 1, 1, 1, 9, 0 DATA 0, 0, 0,14, 1, 1, 1, 1, 9, 0 DATA 0, 0, 0, 9, 9, 9, 9, 9, 9, 0 DATA 0, 0, 0, 8, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 8, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 8, 8, 8, 8, 8, 0 DATA 0, 0, 0, 0, 7, 7, 8, 8, 8, 0 DATA 0, 0, 0,15,15,15,15,15, 8, 0 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,2,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,2,2,2,7,7,7,7,7,8,8,7,7,3,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,2,3,3,3,7,2,2,7,2,2,2,7,6,3,6,7,7,7,6,7,7,8,7,7,7,7 DATA 4,2,3,3,3,3,2,3,3,7,3,3,3,2,2,3,2,2,2,1,2,2,2,2,2,2,2,5 DATA 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,6,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,2,7,7,7,7,7,7,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,2,3,2,7,7,2,1,1,1,3,1,2,2,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,2,3,3,3,2,2,3,3,3,3,3,3,3,3,2,7,7,7,7,7,7,7,7,7,7,7 DATA 4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,5 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,6,2,7,7,6,2,7,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,6,7,7,6,3,7,7,6,3,7,7,3,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,2,7,7,6,3,7,7,6,3,7,7,3,7,7,7,7,7,7,7,8,7,7,7,7,7 DATA 7,7,6,3,7,8,6,3,7,7,2,3,2,2,3,2,7,7,7,7,7,7,8,7,7,7,7,7 DATA 7,8,2,3,2,2,3,3,2,2,3,3,3,3,3,3,7,7,7,7,8,7,8,8,8,7,7,7 DATA 4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,5 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,8,6,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,6,2,2,2,7,7,7,7,7,7,7,7,6,7,7,7,7,8,8,7,7,7,7,7,7 DATA 7,7,7,6,3,3,3,6,7,7,7,7,7,7,7,6,7,7,7,7,8,8,7,7,7,7,7,7 DATA 4,2,2,2,3,3,3,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,5 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,2,2,2,2,6,2,2,2,2,5,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,3,3,3,7,6,7,3,3,3,3,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,7,7,7 DATA 4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,2,2,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,5 DATA 7,7,7,7,7,7,2,3,3,7,3,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3 DATA 7,7,7,7,7,2,3,3,3,2,3,3,2,7,7,7,7,7,7,7,8,7,8,7,7,7,7,3 DATA 7,7,8,7,2,3,3,3,3,3,3,3,3,7,7,7,7,7,7,7,8,7,8,7,7,7,2,3 DATA 4,2,2,2,3,3,3,3,3,3,3,3,3,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,8,8,7,7,7,7,7,7 DATA 7,7,7,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,6,8,8,7,7,7,7,7,7 DATA 7,8,7,3,3,3,3,7,7,7,7,7,7,7,7,7,7,7,7,6,8,8,7,7,7,7,7,7 DATA 4,2,2,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,5 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,7,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,6,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 DATA 7,7,7,6,7,7,7,7,7,7,7,6,7,7,7,6,7,7,7,7,7,7,6,7,7,7,7,7 DATA 7,7,7,6,7,7,8,7,7,7,7,6,7,7,7,6,7,7,7,7,7,7,6,7,7,7,8,7 DATA 7,7,2,2,1,1,2,2,2,1,1,2,1,1,1,2,7,7,7,7,7,7,6,7,7,8,8,7 DATA 4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,2,1,2,1,1,2,2,5 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 FUNCTION AboveJared ' This tells what is above Jared AboveJared = DataMap(DataX, DataY - 1) END FUNCTION FUNCTION BLeftJared ' This will tell what is to the bottom left of Jared. BLeftJared = DataMap(DataX - 1, DataY + 1) END FUNCTION FUNCTION BRightJared ' This will tell what is to the bottom right of Jared. BRightJared = DataMap(DataX + 1, DataY + 1) END FUNCTION SUB Change.AddBlock (Value) ' This will draw and add a block. Cuz you can place blocks in empty space ' while you are in the air... This also makes the blocks fall to the right ' spot. X = JaredX * 10 + (Value * 10) Y = JaredY * 10 + 10 DX = DataX + Value DY = DataY + 1 DO IF DataMap(DX, DY + 1) = 7 THEN DY = DY + 1 Y = Y + 10 END IF LOOP UNTIL DataMap(DX, DY + 1) <> 7 IF DataMap(DX, DY + 1) <> 1 THEN DataMap(DX, DY) = 8 ' 8 is the block PUT (X, Y), Graphics(Block), PSET ' Place the block ELSE LOCATE 1, 1: PRINT "Splash!" END IF END SUB SUB Change.Block (Value) ' This will get rid of a block if there is already a block to the right ' or left X = JaredX * 10 + (Value * 10) Y = JaredY * 10 + 10 DX = DataX + Value DY = DataY + 1 DataMap(DX, DY) = 7 ' 7 is blank space PUT (X, Y), Graphics(Blank), PSET ' Clear the block END SUB SUB Change.X (Value) ' This will change both the JaredX (Graphics) and DataX (DataMap) Variables ' at the same time. DataX = DataX + Value JaredX = JaredX + Value END SUB SUB Change.Y (Value) ' This will change the DataY and JaredY values at the same time... DataY = DataY + Value JaredY = JaredY + Value END SUB SUB Draw.Jared X = JaredX * 10 Y = JaredY * 10 ' Value 1 = Jared is Right ' Value 0 = Jared is Left IF JaredDirection THEN IF HaveBlock THEN GET (X, Y)-STEP(10, 20), Temp PUT (X, Y), Jared(JaredRightBlockMask), AND PUT (X, Y), Jared(JaredRightBlock), OR ELSE GET (X, Y)-STEP(10, 20), Temp PUT (X, Y), Jared(JaredRightMask), AND PUT (X, Y), Jared(JaredRight), OR END IF ELSE IF HaveBlock THEN GET (X, Y)-STEP(10, 20), Temp PUT (X, Y), Jared(JaredLeftBlockMask), AND PUT (X, Y), Jared(JaredLeftBlock), OR ELSE GET (X, Y)-STEP(10, 20), Temp PUT (X, Y), Jared(JaredLeftMask), AND PUT (X, Y), Jared(JaredLeft), OR END IF END IF END SUB SUB Draw.Mask FOR a = 1 TO 20 FOR b = 1 TO 10 IF POINT(b, a) <> 0 THEN PSET (b, a), 0 ELSE PSET (b, a), 255 END IF NEXT NEXT END SUB SUB Draw.Temp X = JaredX * 10 Y = JaredY * 10 PUT (X, Y), Temp, PSET END SUB SUB Draw.Tiles TileLength = 10 TileHeight = 10 FOR a = (1 * (VertiCenter * TileHeight)) TO (11 * TileHeight) + (1 * (VertiCenter * TileHeight)) STEP TileHeight FOR b = (1 * (HorizCenter * TileLength)) TO (28 * TileLength) + (1 * (HorizCenter * TileLength)) - 10 STEP TileLength SELECT CASE DataMap(b / 10, a / 10 - VertiCenter) CASE 1 PUT (b, a), Graphics(Water), PSET CASE 2 PUT (b, a), Graphics(Grass), PSET CASE 3 PUT (b, a), Graphics(Ground), PSET CASE 4 PUT (b, a), Graphics(StartGrass), PSET CASE 5 PUT (b, a), Graphics(EndGrass), PSET CASE 6 PUT (b, a), Graphics(Ladder), PSET CASE 7 PUT (b, a), Graphics(Blank), PSET CASE 8 PUT (b, a), Graphics(Block), PSET END SELECT NEXT NEXT END SUB SUB Falling IF (TIMER - CurTime!) > DelayTime THEN ' I already am testing if Jared is Draw.Temp ' in the air in the MainLoop. Each Change.Y (1) ' Time it tests it sets InAir to 1. DelayGoing = 0 ' So each time I go here I'll set Draw.Jared ' InAir to 0. StartDelay InAir = 0 END IF END SUB SUB Font (X, Y, Variable$, Colour) Colour$ = "c" + LTRIM$(RTRIM$(STR$(Colour))) FOR a = 1 TO LEN(Variable$) PSET (X, Y), 0 DRAW Colour$ SELECT CASE UCASE$(MID$(Variable$, a, 1)) CASE "0" DRAW "bl1 l2 bd1 bl1 d2 bd1 br1 r2 br1 bu1 u2 bl1 g2" CASE "1" DRAW "bd4 l4 br2 u4 ng2" CASE "2" DRAW "bl1 l2 ng1 br3 bd1 g3 bl1 r4" CASE "3" DRAW "d4 l4 r4 u2 l4 r4 u2 l4" CASE "4" DRAW "nd4 d2 l3 u2" CASE "5" DRAW "l3 bd1 d1 r2 br1 bd1 d1 l3 br3 c0 r1" CASE "6" DRAW "bl1 l2 bl1 bd1 d3 r3 bu1 u1 l2 br2" CASE "7" DRAW "bl1 l3 r3 d4" CASE "8" DRAW "bd1 d2 bd1 bl1 l2 bl1 bu1 u2 bu1 br1 r2 br1 bd2 l3" CASE "9" DRAW "l4 d2 r4 u2 d4" CASE "A" DRAW "bl1 l2 bl1 bd1 d3 u 1 r4 d1 u3" CASE "B" DRAW "bd1 d2 bd1 bl1 l3 u4 r3 l3 d2 r3" CASE "C" DRAW "l3 bl1 bd1 d2 bd1 br1 r3" CASE "D" DRAW "bd1 d2 bd1 bl1 l3 u4 r3" CASE "E" DRAW "l4 d4 r4 l4 u2 r4" CASE "F" DRAW "l4 d4 u2 r4" CASE "G" DRAW "l3 bl1 bd1 d2 bd1 br1 r2 br1 bu1 u1 l1" CASE "H" DRAW "d4 u2 l4 u2 d4" CASE "I" DRAW "l4 r2 d4 r2 l4" CASE "J" DRAW "l4 r2 d4 l2 u1" CASE "K" DRAW "g2 nf2 l2 u2 d4" CASE "L" DRAW "bd4 l4 u4" CASE "M" DRAW "l4 d4 u4 r2 d4 u4 r2 d4" CASE "N" DRAW "d4 h4 d4" CASE "O" DRAW "bd1 d2 bd1 bl1 l2 bl1 bu1 u2 bu1 br1 r2" CASE "P" DRAW "d2 l4 u2 nr4 d4" CASE "Q" DRAW "bd1 d2 bd1 bl1 l2 bl1 bu1 u2 bu1 br1 r2 br1 bd4 bd1 r1" CASE "R" DRAW "d2 l4 u2 nr4 d4 u2 br2 f2" CASE "S" DRAW "l4 d2 r4 d2 l4" CASE "T" DRAW "l4 r2 d4" CASE "U" DRAW "d3 bd1 bl1 l2 bl1 bu1 u3" CASE "V" DRAW "d2 bl1 d1 bl1 nd1 bl1 u1 bl1 u2" CASE "W" DRAW "d4 l4 u4 d4 r2 u4" CASE "X" DRAW "d1 l1 d1 l1 u1 l1 u1 d1 r1 d1 r1 d1 r1 d1 u1 l1 u1 l1 d1 l1 d1" CASE "Y" DRAW "d1 l1 d1 l1 u1 l1 u1 d1 r1 d1 r1 nd2 l1 nd2" CASE "Z" DRAW "nl4 g4 r4" CASE "!" DRAW "d2 l1 u2 bd4 r1" CASE "?" DRAW "nl4 d2 l4 bd2 r1" CASE "." DRAW "bd4 bl3 l1 u1 r1" CASE "," DRAW "bd4 bl3 nl1 d1" CASE ":" DRAW "bd4 bl3 l1 u1 r1 bu2 l1 u1 r1" END SELECT X = X + 8 NEXT END SUB SUB GotSub HaveSub = 1 DataMap(DataX, DataY + 2) = 2 PUT (JaredX * 10, JaredY * 10 + 20), Graphics(Grass), PSET LINE (8, 5)-(255, 20), 0, BF Font 8, 10, "Jared got the sub! Take it back now!", 7 END SUB FUNCTION Inpot$ (WLength) StartX = 20 StartY = 3 X = 20 Y = 3 Word$ = "" DO KeyPress$ = INPUT$(1) SELECT CASE UCASE$(KeyPress$) CASE CHR$(8) IF X > StartX THEN Word$ = LEFT$(Word$, LEN(Word$) - 1) X = X - 1 LOCATE Y, X: PRINT " " END IF CASE "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" IF X < StartX + WLength THEN LOCATE Y, X: PRINT KeyPress$ Word$ = Word$ + KeyPress$ X = X + 1 END IF END SELECT LOOP UNTIL KeyPress$ = CHR$(13) Inpot$ = Word$ END FUNCTION SUB Jumping Draw.Temp Change.Y (-1) Draw.Jared StartDelay InAir = 1 Falling END SUB SUB JumpLevel (Number) FOR b = 1 TO Number - 1 FOR a = 1 TO 28 FOR c = 1 TO 11 READ TheData NEXT NEXT NEXT Level = Number END SUB SUB Load.Graphics ' --Load Tiles-- FOR Which = 1 TO (NumGraphics * 100) STEP 100 FOR a = 1 TO 10 FOR b = 1 TO 10 READ ThePixil PSET (b, a), ThePixil NEXT NEXT GET (1, 1)-(10, 10), Graphics(Which) NEXT CLS ' --Load Jared-- FOR Which = 1 TO (NumJared * 200) STEP 200 FOR a = 1 TO 20 FOR b = 1 TO 10 READ ThePixil PSET (b, a), ThePixil NEXT NEXT GET (1, 1)-(10, 20), Jared(Which) Draw.Mask GET (1, 1)-(10, 20), Jared(Which + 800) NEXT CLS END SUB SUB Load.Level IF Level = MaxLevel THEN LOCATE 1, 1: PRINT "THE END " END END IF Level = Level + 1 CLS FOR a = 1 TO 11 FOR b = 1 TO 28 READ TheData DataMap(b, a) = TheData DataMap2(b, a) = TheData NEXT NEXT JaredDirection = 1 HaveSub = 0 HaveBlock = 0 Draw.Tiles Draw.Jared END SUB SUB Load.Map FOR a = 1 TO 11 FOR b = 1 TO 28 READ TheData DataMap(b, a) = TheData DataMap2(b, a) = TheData NEXT NEXT END SUB SUB Load.Variables VertiCenter = 3 ' These tell where to center the tiles... HorizCenter = 1 ' This is a pain in the butt... I'm just gunna ' Leave these like this... I won't be changing them... ' The program gets jacked up if you change em'... NumJared = 4 NumGraphics = 8 JaredRight = 1 JaredLeft = 201 JaredRightBlock = 401 JaredLeftBlock = 601 JaredRightMask = 801 JaredLeftMask = 1001 JaredRightBlockMask = 1201 JaredLeftBlockMask = 1401 Water = 1 ' Be 1 on Data Map Grass = 101 ' Be 2 on Data Map Ground = 201 ' Be 3 on Data Map StartGrass = 301 ' Be 4 on Data Map EndGrass = 401 ' Be 5 on Data Map Ladder = 501 ' Be 6 on Data Map Blank = 601 ' Be 7 on Data Map Block = 701 ' Be 8 on Data Map JaredX = 1 ' X Num of Tiles Right JaredY = 8 + VertiCenter ' Y Num of Tiles Down DataX = 1 DataY = 8 JaredDirection = 1 ' Value 1 = Right; Value 0 = Left InAir = 0 ' Value 1 = In Air; Value 0 = Not In Air DelayGoing = 0 HaveSub = 0 Level = 1 MaxLevel = 8 END SUB SUB MainLoop DO IF Test.GotBack THEN IF HaveSub = 1 THEN Load.Level END IF END IF IF Test.GetSub THEN GotSub END IF IF Test.Dead THEN JaredX = 1 JaredY = 11 DataX = 1 DataY = 8 JaredDirection = 1 InAir = 0 DelayGoing = 0 HaveSub = 0 HaveBlock = 0 CLS RestoreLevel Draw.Tiles Draw.Jared Font 10, 10, "Jared Died!", 7 END IF IF Test.InAir THEN ' This tests if your in the air. If you are StartDelay ' It will start the Delay... Make in in air InAir = 1 ' And go to Falling... Falling END IF IF Test.InAir = 0 THEN ' If you are not in the air... Then it will InAir = 0 ' make sure that InAir = 0 and that the delay DelayGoing = 0 ' has stopped totaly... END IF SELECT CASE INKEY$ CASE CHR$(27) MenuSelect CASE CHR$(0) + "H" IF Test.MoveUP THEN IF OnJared = 6 THEN ' 6 is the ladder Data number Draw.Temp Change.Y (-1) Draw.Jared ELSEIF UnderJared <> 7 THEN Jumping END IF END IF CASE CHR$(0) + "P" IF UnderJared = 6 THEN Draw.Temp Change.Y (1) Draw.Jared END IF CASE CHR$(0) + "M" IF Test.Sides(1) THEN IF Test.MoveRight THEN Draw.Temp IF JaredDirection = 1 THEN ' If Jared is already directed right Change.X (1) ' He will just move right 1. If not ELSE ' he will just change directions. JaredDirection = 1 END IF Draw.Jared END IF IF JaredDirection = 0 THEN ' Same as below... Draw.Temp JaredDirection = 1 Draw.Jared END IF END IF CASE CHR$(0) + "K" IF Test.Sides(0) THEN IF Test.MoveLeft THEN Draw.Temp IF JaredDirection = 0 THEN ' Same thing as above... only Left. Change.X (-1) ELSE JaredDirection = 0 END IF Draw.Jared ELSE IF JaredDirection = 1 THEN ' This is so you can change direction Draw.Temp ' Even if you are by something you JaredDirection = 0 ' can't walk on. Draw.Jared END IF END IF END IF CASE CHR$(32) IF JaredDirection = 1 THEN IF Test.GetBlock(1) THEN Change.Block (1) HaveBlock = 1 Draw.Temp Draw.Jared ELSEIF Test.PlaceBlock(1) THEN Change.AddBlock (1) HaveBlock = 0 Draw.Temp Draw.Jared END IF ELSE IF Test.GetBlock(-1) THEN Change.Block (-1) HaveBlock = 1 Draw.Temp Draw.Jared ELSEIF Test.PlaceBlock(-1) THEN Change.AddBlock (-1) HaveBlock = 0 Draw.Temp Draw.Jared END IF END IF END SELECT LOOP END SUB SUB MainScreen COLOR 7 LOCATE 1, 7: PRINT "Jared and the Subway Adventure" LOCATE 4, 16: PRINT "Play Jared" LOCATE 6, 16: PRINT "Jump Level" LOCATE 8, 19: PRINT "Quit" X = 111 Y = 20 L = 96 H = 15 Selection = 1 DO GOSUB DrawIt SELECT CASE INKEY$ CASE CHR$(0) + "H" IF Selection <> 1 THEN Selection = Selection - 1 GOSUB ClearIt Y = Y - 16 ELSE Selection = 3 GOSUB ClearIt Y = 20 + 16 + 16 END IF GOSUB DrawIt SOUND 1500, 1 CASE CHR$(0) + "P" IF Selection <> 3 THEN Selection = Selection + 1 GOSUB ClearIt Y = Y + 16 ELSE Selection = 1 GOSUB ClearIt Y = 20 END IF GOSUB DrawIt SOUND 1500, 1 CASE CHR$(13) SELECT CASE Selection CASE 1 Load.Map CLS EXIT SUB CASE 2 CLS LOCATE 1, 7: PRINT "Jared and the Subway Adventure" DO LOCATE 3, 7: PRINT "Enter Level: " LOCATE 4, 7: PRINT "(1 to 8)" Number$ = Inpot$(2) Number = VAL(Number$) LOOP UNTIL Number >= 1 AND Number <= 8 JumpLevel (Number) Load.Map CLS EXIT SUB CASE 3 END END SELECT END SELECT LOOP DrawIt: LINE (X + 1, Y + 1)-STEP(L - 2, H - 2), 15, B LINE (X, Y)-STEP(L, H), 7, B LINE (X - 1, Y - 1)-STEP(L + 2, H + 2), 8, B RETURN ClearIt: LINE (X + 1, Y + 1)-STEP(L - 2, H - 2), 0, B LINE (X, Y)-STEP(L, H), 0, B LINE (X - 1, Y - 1)-STEP(L + 2, H + 2), 0, B RETURN END SUB SUB MenuSelect MenuL = 75 MenuH = 50 MenuOpen = 0 LINE (1, 1)-(320, 7), 8, BF DIM MenuTemp(MenuL * MenuH) Font 6, 2, "F", 15 Font 14, 2, "ile", 7 DO SELECT CASE UCASE$(INKEY$) CASE CHR$(27) IF MenuOpen = 0 THEN LINE (1, 1)-(320, 7), 0, BF EXIT SUB ELSE LINE (1, 9)-STEP(MenuL, MenuH), 0, BF MenuOpen = 0 END IF CASE "F" GET (1, 9)-STEP(MenuL, MenuH), MenuTemp LINE (1, 9)-STEP(MenuL, MenuH), 8, BF Font 6, 10, "R", 15 Font 14, 10, "estart", 7 Font 6, 17, "E", 15 Font 14, 17, "xit", 7 DO SELECT CASE UCASE$(INKEY$) CASE "R" JaredX = 1 JaredY = 11 DataX = 1 DataY = 8 JaredDirection = 1 InAir = 0 DelayGoing = 0 HaveSub = 0 HaveBlock = 0 CLS RestoreLevel Draw.Tiles Draw.Jared EXIT SUB CASE "E" CLS Font 120, 30, "Bye! Bye!", 7 END CASE CHR$(27) PUT (1, 9), MenuTemp, PSET MenuOpen = 0 EXIT DO END SELECT LOOP END SELECT LOOP END END SUB FUNCTION OnJared ' This tell what jared is on... Like a ladder... what is actully behind him. OnJared = DataMap(DataX, DataY + 1) END FUNCTION SUB RestoreLevel FOR a = 1 TO 11 FOR b = 1 TO 28 DataMap(b, a) = DataMap2(b, a) NEXT NEXT END SUB SUB StartDelay IF DelayGoing = 0 THEN DelayGoing = 1 CurTime! = TIMER DelayTime! = .2 END IF END SUB FUNCTION Test.BlockLeft ' Test if there is a block to Jareds Left IF BLeftJared = 8 THEN Test.BlockLeft = 1 END FUNCTION FUNCTION Test.BlockRight ' Test if there is a block to Jareds Right IF BRightJared = 8 THEN Test.BlockRight = 1 END FUNCTION FUNCTION Test.Dead ' 1 is the Data Numbe for water IF UnderJared = 1 THEN Test.Dead = 1 END FUNCTION FUNCTION Test.GetBlock (Value) ' Cuz there are a lot of things that need to be considered when getting a ' block I made a function to test all these factors... X = JaredX * 10 + (Value * 10) Y = JaredY * 10 + 10 DX = DataX + Value DY = DataY + 1 IF DataMap(DX, DY) = 8 THEN ' If there is a block there IF HaveBlock = 0 THEN ' If you don't already have a block IF InAir = 0 THEN ' If your not in the air IF DataMap(DX, DY - 1) = 7 THEN ' If there is nothing on top Test.GetBlock = 1 END IF END IF END IF END IF END FUNCTION FUNCTION Test.GetSub ' Tests if Jared is under the sub. IF UnderJared = 5 THEN Test.GetSub = 1 END FUNCTION FUNCTION Test.GotBack ' Tests if Jared Got Back ok... IF UnderJared = 4 THEN Test.GotBack = 1 END FUNCTION FUNCTION Test.InAir ' 7 is the Data number for empty space IF UnderJared = 7 THEN Test.InAir = 1 END FUNCTION FUNCTION Test.MoveLeft ' This test if Jared can move Left IF BLeftJared = 7 OR BLeftJared = 6 THEN IF DataMap(DataX - 1, DataY) = 7 OR DataMap(DataX - 1, DataY) = 6 THEN Test.MoveLeft = 1 END IF END IF END FUNCTION FUNCTION Test.MoveRight ' This test if Jared can move right IF BRightJared = 7 OR BRightJared = 6 THEN IF DataMap(DataX + 1, DataY) = 7 OR DataMap(DataX + 1, DataY) = 6 THEN Test.MoveRight = 1 END IF END IF END FUNCTION FUNCTION Test.MoveUP ' This tests if Jared can move up... IF AboveJared = 7 OR AboveJared = 6 THEN Test.MoveUP = 1 END FUNCTION FUNCTION Test.PlaceBlock (Value) ' Factors for placing a block... X = JaredX * 10 + (Value * 10) Y = JaredY * 10 + 10 DX = DataX + Value DY = DataY + 1 IF DataMap(DX, DY) = 7 THEN ' Has to be nothing there IF DataMap(DX, DY - 1) = 7 THEN ' Has to be nothing above it IF HaveBlock = 1 THEN Test.PlaceBlock = 1 END IF END IF END IF END FUNCTION FUNCTION Test.Sides (R.or.L) ' This will test if you can move left or right... either cuz of a block... ' Or maybe cuz your at the edge of the screen. ' Value 1 is Right; Value 0 is Left IF R.or.L = 1 THEN IF DataX <> 28 THEN Test.Sides = 1: EXIT FUNCTION ' Cuz I'm starting at END IF ' 1 I think I have to ' subtract 1 from the ' 28 total length... ' Thus... 27 IF R.or.L = 0 THEN IF DataX <> 1 THEN Test.Sides = 1: EXIT FUNCTION END IF END FUNCTION FUNCTION UnderJared 'This tell what Jared is standing on... UnderJared = DataMap(DataX, DataY + 2) END FUNCTION