DISCLAIMER: The source code of our game has been posted for personal use only, and so every member of the team can easily update to the newest version. Reproducing, selling, or plagarizing any or all of the following code is ILLEGAL.

'Latest version of the Engine
'12 JAN 2004
'
'
'MAP CODE |   Type of tile  (quick reference sheet--you may want to print)
'=========================================================================
'Tempterate Tile Set
'--------------------------------
'GR       |     grass
'WA       |     WATER* (I)
'SA       |     SAND
'MT       |     MOUNTAIN (I)
'DF       |     DECIDUOUS FOREST (THE FIRST FOREST TILE) (I)
'RF       |     RED FOREST (I)
'DP       |     Dirt Path*
'LF       |     Light forest
'Winter Tile Set
'---------------------------------
'SP       |     SMALL PINE FOREST   (I)
'LP       |     LARGE PINE FOREST   (I)
'SN       |     Snow
'
'
'
'* = can be used in either tile set
'** = needs edited
'(I) = impassable


DECLARE SUB encounter ()
DECLARE SUB gfxsetup ()
DECLARE SUB drawscreen ()
DECLARE SUB moveup ()
DECLARE SUB moveright ()
DECLARE SUB movedown ()
DECLARE SUB moveleft ()
COMMON SHARED cactus(), snowpath(), snow(), lightwoods(), iterrain$(), pineforest(), redpine(), largepine(), grass(), Water(), mx, my, map$(), px, py, gx, gy, i, j, sand(), tree(), mountain(), hp, maxhp, weapon$, armor$, dirtpath()


SCREEN 7, 0, 1, 0
CLS

'graphics setup

LOCATE 20, 5
PRINT "Loading, Please Wait"
PCOPY 1, 0

DIM Water(2048)
DIM grass(2048)
DIM sand(2048)
DIM tree(2048)
DIM mountain(2048)
DIM largepine(2048)
DIM redpine(2048)
DIM pineforest(2048)
DIM dirtpath(2048)
DIM lightwoods(2048)
DIM snow(2048)
DIM snowpath(2048)
DIM cactus(2048)

DATA 02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02
DATA 02,02,02,10,02,02,02,02
DATA 02,02,10,02,02,02,02,02
DATA 02,10,10,02,02,10,02,02
DATA 02,10,02,02,10,10,02,02
DATA 02,02,02,02,10,02,02,02
DATA 02,02,02,02,02,02,02,02

GOSUB readdata

DIM grass8(64)
GET (1, 1)-(8, 8), grass8
CLS

FOR yy = 0 TO 32 STEP 8
FOR xx = 0 TO 64 STEP 8
PUT (xx, yy), grass8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), grass
CLS


DIM clist(3)
clist(1) = 0
clist(2) = 1
clist(3) = 9

FOR y = 1 TO 32
FOR x = 1 TO 64
RANDOMIZE TIMER
c = INT(RND * 3) + 1
PRESET (x, y), clist(c)
NEXT x
NEXT y

GET (1, 1)-(64, 32), Water                 'W = water
CLS

DATA 15,14,15,14,15,14,15,14
DATA 14,15,14,15,14,15,14,15
DATA 15,14,15,14,15,14,15,14
DATA 14,15,14,15,14,15,14,15
DATA 15,14,15,14,15,14,15,14
DATA 14,15,14,15,14,15,14,15
DATA 15,14,15,14,15,14,15,14
DATA 14,15,14,15,14,15,14,15

GOSUB readdata

DIM sand8(64)
GET (1, 1)-(8, 8), sand8
CLS

FOR yy = 0 TO 32 STEP 8
FOR xx = 0 TO 64 STEP 8
PUT (xx, yy), sand8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), sand
CLS

DATA 02,02,02,02,02,02,02,02
DATA 02,02,10,10,10,10,02,02
DATA 02,10,10,10,10,10,10,02
DATA 02,10,10,10,10,10,10,02
DATA 02,02,10,10,10,10,02,02
DATA 02,02,02,06,06,02,02,02
DATA 02,02,02,06,06,02,02,02
DATA 02,02,06,06,06,06,02,02

GOSUB readdata

DIM tree8(64)
GET (1, 1)-(8, 8), tree8
CLS

FOR yy = 0 TO 32 STEP 8
FOR xx = 0 TO 64 STEP 8
PUT (xx, yy), tree8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), tree
CLS

DATA 15,15,15,15,15,15,15,15
DATA 15,15,07,15,15,15,15,15
DATA 15,09,09,09,15,15,15,15
DATA 06,06,06,06,06,07,15,15
DATA 15,15,15,15,09,09,09,15
DATA 15,15,07,06,06,06,06,06
DATA 15,09,09,09,15,15,15,15
DATA 06,06,06,06,06,15,15,15

GOSUB readdata

DIM mountain8(64)
GET (1, 1)-(8, 8), mountain8
CLS

FOR yy = 0 TO 32 STEP 8
FOR xx = 0 TO 64 STEP 8
PUT (xx, yy), mountain8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), mountain
CLS

DATA 15,15,15,15,15,15,15,15
DATA 15,15,15,02,02,15,15,15
DATA 15,15,02,02,02,02,15,15
DATA 15,02,02,02,02,02,02,15
DATA 15,15,02,02,02,02,15,15
DATA 15,02,02,02,02,02,02,15
DATA 15,15,15,06,06,15,15,15
DATA 15,15,06,06,06,06,15,15

GOSUB readdata

DIM pine8(64)

GET (1, 1)-(8, 8), pine8
CLS

FOR yy = 1 TO 32 STEP 8
FOR xx = 1 TO 64 STEP 8
PUT (xx, yy), pine8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), pineforest
CLS

DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,15,02,02,15,15,15,15,15,15,15
DATA 15,15,15,15,15,15,02,02,02,02,15,15,15,15,15,15
DATA 15,15,15,15,15,02,02,02,02,02,02,15,15,15,15,15
DATA 15,15,15,15,02,02,02,02,02,02,02,02,15,15,15,15
DATA 15,15,15,02,02,02,02,02,02,02,02,02,02,15,15,15
DATA 15,15,02,02,02,02,02,02,02,02,02,02,02,02,15,15
DATA 15,02,02,02,02,02,02,02,02,02,02,02,02,02,02,15
DATA 15,15,15,15,15,15,06,06,06,06,15,15,15,15,15,15
DATA 15,15,15,15,15,15,06,06,06,06,15,15,15,15,15,15
DATA 15,15,15,15,15,06,06,06,06,06,06,15,15,15,15,15
DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15

GOSUB readdata16

DIM lpine16(256)

GET (1, 1)-(16, 16), lpine16
CLS

FOR yy = 1 TO 32 STEP 16
FOR xx = 1 TO 64 STEP 16
PUT (xx, yy), lpine16
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), largepine
CLS

DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,12,12,12,12,12,12,02,02,02,02,02
DATA 02,02,02,02,12,12,12,12,12,12,12,12,02,02,02,02
DATA 02,02,02,12,12,12,12,12,12,12,12,12,12,02,02,02
DATA 02,02,12,12,12,12,12,12,12,12,12,12,12,12,02,02
DATA 02,02,12,12,12,12,12,12,12,12,12,12,12,12,02,02
DATA 02,02,02,12,12,12,12,12,12,12,12,12,12,02,02,02
DATA 02,02,02,02,12,12,12,12,12,12,12,12,02,02,02,02
DATA 02,02,02,02,02,12,12,12,12,12,12,02,02,02,02,02
DATA 02,02,02,02,02,02,12,12,12,12,02,02,02,02,02,02
DATA 02,02,02,02,02,02,02,06,06,02,02,02,02,02,02,02
DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02
DATA 02,02,02,02,02,06,06,06,06,06,06,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02

GOSUB readdata16

DIM rpine16(256)

GET (1, 1)-(16, 16), rpine16
CLS

FOR yy = 1 TO 32 STEP 16
FOR xx = 1 TO 64 STEP 16
PUT (xx, yy), rpine16
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), redpine
CLS

DATA 02,06,06,06,06,02,06,06
DATA 06,06,06,02,06,06,06,06
DATA 06,02,06,06,06,06,06,06
DATA 02,06,06,06,06,06,02,06
DATA 06,06,06,02,06,06,06,06
DATA 02,06,06,06,06,02,06,06
DATA 06,06,02,06,02,06,06,06
DATA 06,06,06,02,06,06,02,06

GOSUB readdata

DIM path8(64)

GET (1, 1)-(8, 8), path8
CLS

FOR yy = 1 TO 32 STEP 8
FOR xx = 1 TO 64 STEP 8
PUT (xx, yy), path8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), dirtpath
CLS

DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
DATA 02,02,02,02,02,10,10,10,10,10,10,02,02,02,02,02
DATA 02,02,02,02,10,10,10,10,10,10,10,10,02,02,02,02
DATA 02,02,02,10,10,10,10,10,10,10,10,10,10,02,02,02
DATA 02,02,10,10,10,10,10,10,10,10,10,10,10,10,02,02
DATA 02,10,10,10,10,10,10,10,10,10,10,10,10,10,10,02
DATA 02,10,10,10,10,10,10,10,10,10,10,10,10,10,10,02
DATA 02,02,10,10,10,10,10,10,10,10,10,10,10,10,02,02
DATA 02,02,02,10,10,10,10,10,10,10,10,10,10,02,02,02
DATA 02,02,02,02,10,10,10,10,10,10,10,10,02,02,02,02
DATA 02,02,02,02,02,10,10,10,10,10,10,02,02,02,02,02
DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02
DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02
DATA 02,02,02,02,02,06,06,06,06,06,06,02,02,02,02,02
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02

GOSUB readdata16

DIM lwoods16(256)

GET (1, 1)-(16, 16), lwoods16
CLS

PUT (1, 1), grass

xx = 5
yy = 10
PUT (xx, yy), lwoods16, PSET
xx = 20
yy = 17
PUT (xx, yy), lwoods16, PSET
xx = 40
yy = 4
PUT (xx, yy), lwoods16, PSET

GET (1, 1)-(64, 32), lightwoods
CLS

DIM clist2(4)
clist2(1) = 15
clist2(2) = 7
clist2(3) = 15
clist2(4) = 15

FOR y = 1 TO 32
FOR x = 1 TO 64
RANDOMIZE TIMER
c = INT(RND * 4) + 1
PRESET (x, y), clist2(c)
NEXT x
NEXT y

GET (1, 1)-(64, 32), snow
CLS

DATA 07,15,15,15,15,07,15,15
DATA 15,15,15,07,15,15,15,15
DATA 15,07,15,15,15,15,15,15
DATA 15,15,15,15,15,15,07,15
DATA 15,15,15,07,15,15,15,15
DATA 15,15,15,15,15,07,15,15
DATA 15,15,07,15,07,15,15,15
DATA 15,15,15,07,15,15,07,15

GOSUB readdata

DIM spath8(64)

GET (1, 1)-(8, 8), spath8
CLS

FOR yy = 1 TO 32 STEP 8
FOR xx = 1 TO 64 STEP 8
PUT (xx, yy), spath8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), snowpath
CLS

DATA 15,14,15,14,15,14,15,14
DATA 14,02,14,02,02,15,14,15
DATA 15,02,15,02,02,14,15,14
DATA 14,02,02,02,02,15,02,15
DATA 15,02,02,02,02,02,02,14
DATA 14,15,14,02,02,02,02,15
DATA 15,14,15,02,02,14,15,14
DATA 14,15,14,02,02,15,14,15

GOSUB readdata

DIM cactus8(64)
GET (1, 1)-(8, 8), cactus8
CLS

FOR yy = 0 TO 32 STEP 8
FOR xx = 0 TO 64 STEP 8
PUT (xx, yy), cactus8
NEXT xx
NEXT yy

GET (1, 1)-(64, 32), cactus
CLS

DIM map$(60, 60)

DATA WA,WA,WA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,WA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,SA,SA,SA,SA,SA,DF,DF,DP,DP,DP,DP,DP,SA,SA,SA,SA,WA,DF,LF,DF,LF,LF,LF,LF,DF,DF,MT,MT,SR,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,SR,SR,MT,MT,SR,SR,SR,SR,SR,MT,MT
DATA WA,WA,SA,SA,SA,SA,SA,DF,DF,DP,DF,DF,DP,DF,WA,WA,SA,SA,WA,DF,LF,DF,DF,DF,LF,DF,DF,DF,MT,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,SR,SR,MT,SR,SR,MT,MT,SR,MT,SR,SR,MT,SR,SR,SR,SR,SR,MT,MT
DATA DF,DF,DF,GR,GR,DF,DF,DF,DF,DP,DF,DF,DP,DF,WA,WA,WA,WA,WA,DF,LF,LF,DF,DF,LF,LF,DF,DF,MT,MT,MT,MT,MT,SR,SR,SR,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT
DATA DF,DF,DF,GR,GR,DF,DF,DF,DP,DP,DP,DP,DP,DP,DP,SA,SA,WA,WA,DF,DF,LF,DF,DF,LF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,SR,SR,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT
DATA DF,DF,DF,GR,GR,GR,GR,GR,DP,DF,LF,LF,LF,DF,WA,WA,SA,SA,WA,DF,LF,LF,DF,DF,DF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT
DATA DF,DF,DF,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,DF,WA,WA,WA,WA,WA,DF,LF,DF,DF,DF,LF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT
DATA DF,DF,DF,GR,GR,GR,GR,GR,DF,LF,LF,DF,LF,DF,DF,DF,DF,DF,DF,DF,LF,DF,DF,LF,LF,LF,DF,DF,MT,MT,SR,SR,MT,MT,MT,MT,MT,SR,MT,MT,SR,SR,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,MT,MT,MT,SR,MT,MT,SR,SR,SR,SR,MT,SR,SR,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,SR,SR,MT,MT,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,DF,DF,DF,DF,LF,DF,DF,DF,DF,DF,LF,LF,LF,DF,DF,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,MT,SR,MT,SR,MT,SR,SR,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,LF,LF,DF,DF,DF,LF,DF,DF,DF,WA,WA,WA,WA,DF,DF,DF,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,SR,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT,SR,MT,MT,SR,MT,SR,SR,SR,MT,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,SA,SA,WA,WA,WA,DF,DF,DF,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,SR,MT,SR,SR,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,DF,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,SR,MT,MT,MT,SR,SR,SR,SR,SR,SR,SR,SR,SR,SR,MT,MT
DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DP,DP,DP,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT
DATA DF,DF,DF,DF,DF,DF,DF,DF,DF,LF,LF,LF,DP,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT,SR,SR,SR,MT,MT,SR,SR,MT,MT
DATA DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,SR,MT,MT,MT,DP,MT,MT,SR,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT
DATA DF,DF,SA,WA,SA,WA,WA,WA,DF,LF,DF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,SR,SR,MT,MT,MT,DP,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,SA,WA,SA,SA,WA,WA,DF,LF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,SR,MT,MT,MT,MT,DP,DP,DP,DP,MT,MT,SR,SR,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,SA,WA,SA,SA,WA,WA,DF,LF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,SR,SR,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT
DATA WA,WA,SA,GR,GR,GR,GR,WA,DF,DF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,SR,SR,MT,DP,DP,DP,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT
DATA WA,WA,SA,WA,WA,GR,GR,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT
DATA WA,WA,SA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,SR,DP,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT
DATA WA,WA,SA,WA,WA,WA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,DP,SP,SP,SP,LP,LP,LP,LP,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,DP,DP,DP,DP,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT,MT
DATA WA,WA,SA,SA,SA,SA,WA,SA,WA,GR,GR,GR,GR,WA,WA,SP,DP,DP,DP,SP,DP,LP,LP,LP,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT
DATA WA,WA,WA,WA,WA,SA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,SP,SP,DP,SP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,DP,DP,MT,MT,DP,DP,MT,DP,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT
DATA WA,SA,WA,WA,SA,SA,SA,SA,SA,GR,GR,GR,GR,WA,WA,SP,SP,DP,DP,DP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,DP,MT,DP,MT,MT,MT,MT,MT,DP,MT,MT,DP,MT,MT,MT
DATA WA,WA,WA,WA,SA,WA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,SP,DP,SP,LP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,DP,MT,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,MT,MT
DATA WA,WA,SA,WA,SA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SA,DP,DP,SP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,DP,DP,DP,DP,DP,DP,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,SA,SA,SA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SA,SP,SP,SP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA WA,WA,SA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,SP,LP,WA,WA,LP,LP,LP,DP,DP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT
DATA LP,LP,DP,LP,LP,LP,DP,SP,LP,SP,SP,DP,DP,DP,DP,DP,DP,DP,DP,SP,LP,WA,DP,DP,DP,DP,SP,DP,LP,LP,LP,LP,LP,LP,SP,SP,RF,RF,RF,RF,RF,RF,RF,RF,CA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA LP,LP,DP,LP,LP,LP,DP,SP,LP,SP,SP,DP,SP,WA,WA,DP,LP,LP,DP,SP,LP,WA,WA,WA,WA,DP,SP,DP,LP,LP,LP,SP,DP,SP,SP,SP,RF,RF,RF,RF,RF,RF,RF,RF,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA LP,LP,DP,SP,SP,SP,DP,SP,LP,DP,DP,DP,SP,WA,WA,DP,LP,LP,DP,SP,LP,LP,LP,LP,LP,DP,SP,DP,LP,LP,LP,SP,DP,DP,SP,SP,RF,RF,RF,RF,DP,RF,RF,RF,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,CA,SA,WA,WA
DATA LP,LP,DP,DP,DP,DP,DP,SP,LP,DP,LP,LP,LP,DP,DP,DP,DP,LP,DP,DP,LP,LP,LP,LP,LP,DP,SP,DP,LP,LP,LP,SP,SP,DP,SP,SP,RF,RF,DP,DP,DP,RF,RF,RF,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA LP,LP,DP,SP,SP,SP,DP,SP,LP,DP,DP,DP,DP,LP,LP,LP,LP,LP,DP,SP,LP,LP,LP,DP,DP,DP,SP,DP,LP,LP,LP,SP,DP,DP,SP,SP,RF,RF,DP,RF,RF,RF,RF,RF,SP,SP,SP,SP,SA,SA,SA,CA,SA,SA,SA,SA,CA,SA,WA,WA
DATA SP,SP,DP,DP,LP,DP,DP,LP,LP,DP,LP,LP,LP,LP,LP,LP,LP,DP,DP,SP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,DP,DP,SP,SP,DP,DP,DP,DP,RF,RF,DP,DP,RF,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA SP,LP,LP,DP,LP,SP,DP,LP,LP,DP,DP,SP,SP,SP,SP,SP,DP,DP,SP,SP,LP,LP,DP,DP,LP,LP,LP,DP,SP,SP,DP,DP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,DP,RF,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA
DATA LP,LP,LP,DP,DP,LP,DP,LP,LP,SP,DP,SP,SP,SP,SP,SP,DP,LP,LP,LP,LP,LP,DP,SP,LP,LP,LP,DP,SP,SP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,DP,DP,DP,DP,SP,SP,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,WA,WA
DATA LP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,LP,SP,SP,SP,DP,LP,LP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,WA,WA
DATA LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,SP,DP,DP,DP,DP,LP,DP,DP,DP,SP,SP,SP,DP,SP,DP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,DP,DP,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA SP,SP,SP,SP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,DP,DP,DP,DP,LP,LP,LP,DP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,RF,RF,DP,DP,SP,SP,SA,CA,SA,CA,SA,SA,SA,SA,CA,SA,WA,WA
DATA SP,SP,DP,DP,DP,DP,LP,DP,LP,DP,DP,SA,SA,SA,SA,SA,SA,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,DP,RF,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SP,SA,SA,SA,SA,SA,CA,CA,SA,SA,SA,WA,WA
DATA SP,SP,SP,SP,SP,DP,LP,DP,DP,DP,SP,SA,WA,WA,WA,SA,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA SP,SP,SP,SP,SP,DP,SP,SP,SP,SP,SP,SA,WA,WA,WA,SA,SA,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SA,SA,SA,CA,SA,CA,SA,SA,CA,SA,WA,WA
DATA SP,SP,SP,SP,SP,SP,SP,LP,LP,LP,SA,SA,WA,WA,WA,WA,SA,LP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA SP,SP,SP,SP,SP,SP,SP,LP,LP,LP,SA,SA,SA,SA,SA,SA,SA,LP,DP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,SA,SA,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,DP,LP,LP,DP,DP,DP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,DP,DP,SP,DP,DP,DP,DP,DP,DP,DP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,CA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,CA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,CA,SA,CA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,DP,DP,DP,LP,DP,DP,DP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,SA,SA,LP,DP,LP,DP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,CA,CA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,WA,WA,LP,DP,LP,DP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,DP,SP,DP,DP,DP,DP,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,CA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,LP,SP,SP,SP,SP,SP,SP,SP,SP,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,WA,WA
DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,SA,SA,CA,SA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,WA,WA

FOR my = 1 TO 60                     'mx and my are for this loop
FOR mx = 1 TO 60
READ map$(mx, my)
NEXT mx
NEXT my

px = 4                            'px and py are player x and player y
py = 4

DIM iterrain$(7)
iterrain$(1) = "MT"
iterrain$(2) = "WA"
iterrain$(3) = "DF"
iterrain$(4) = "RF"
iterrain$(5) = "SP"
iterrain$(6) = "LP"
iterrain$(7) = "CA"

weapon$ = "Fists"
armor$ = "None"
hp = 15
maxhp = 15


CALL drawscreen

DO
a$ = INKEY$

IF a$ = "8" OR a$ = "w" OR a$ = "W" THEN CALL moveup
IF a$ = "6" OR a$ = "d" OR a$ = "D" THEN CALL moveright
IF a$ = "2" OR a$ = "s" OR a$ = "S" THEN CALL movedown
IF a$ = "4" OR a$ = "a" OR a$ = "A" THEN CALL moveleft

LOOP

'graphical stuff

readdata:
FOR yyy = 1 TO 8
FOR xxx = 1 TO 8
READ pixel
PSET (xxx, yyy), pixel
NEXT xxx
NEXT yyy
RETURN

readdata16:
FOR yyy = 1 TO 16
FOR xxx = 1 TO 16
READ pixel
PSET (xxx, yyy), pixel
NEXT xxx
NEXT yyy
RETURN

SUB drawscreen

CLS
gx = px - 2                            'gx and gy are for graphical purposes
gy = py - 2

FOR i = 0 TO 256 STEP 64
        FOR j = 0 TO 128 STEP 32
       
        IF map$(gx, gy) = "GR" THEN PUT (i, j), grass
        IF map$(gx, gy) = "WA" THEN PUT (i, j), Water
        IF map$(gx, gy) = "SA" THEN PUT (i, j), sand
        IF map$(gx, gy) = "DF" THEN PUT (i, j), tree
        IF map$(gx, gy) = "MT" THEN PUT (i, j), mountain
        IF map$(gx, gy) = "LP" THEN PUT (i, j), largepine
        IF map$(gx, gy) = "RF" THEN PUT (i, j), redpine
        IF map$(gx, gy) = "SP" THEN PUT (i, j), pineforest
        IF map$(gx, gy) = "DP" THEN PUT (i, j), dirtpath
        IF map$(gx, gy) = "LF" THEN PUT (i, j), lightwoods
        IF map$(gx, gy) = "SN" THEN PUT (i, j), snow
        IF map$(gx, gy) = "SR" THEN PUT (i, j), snowpath
        IF map$(gx, gy) = "CA" THEN PUT (i, j), cactus
        gy = gy + 1
        NEXT j
gx = gx + 1
gy = py - 2
NEXT i

DRAW "bm160,70c14bu5r2f2d3l2u2l2d2l2u3e2bf2bd4c07d1c3r4f5g2h3d6g2l1d1c1d9l1u10c3l2d1c1d9l1u10c3l1h2u6g3h2e5r5u1c7l1e1u1l1c14l1u3r3d1l2r3d2bd4p3,3c14bf7bu1"
DRAW "c14be1l4u6r8d9g2l4h2u2bf1p14,14"
DRAW "c04bh1bu3r3u4r2d4l1u3d3r4d1l4f4l1h4r1g4r1e3u1l4"
DRAW "c15bl13bg2bu3l1h2u8e2r1g2d8f2d1c6d3l1u3"

LINE (0, 159)-(319, 199), 14, B
LOCATE 21, 2
COLOR 4
PRINT "HP:     "; hp; "/"; maxhp
LOCATE 22, 2
COLOR 15
PRINT "Weapon:  "; weapon$
LOCATE 23, 2
PRINT "Armor:   "; armor$
LOCATE 21, 25
PRINT "(S)tatus"
LOCATE 22, 25
PRINT "(I)nventory"
LOCATE 23, 25
PRINT "(Q)uit"

PCOPY 1, 0

END SUB

SUB encounter
LINE (2, 160)-(318, 198), 0, BF
LOCATE 21, 2
PRINT "You were attacked by"
PCOPY 1, 0
SLEEP
LINE (2, 160)-(318, 198), 0, BF
PCOPY 1, 0

END SUB

SUB movedown

FOR a = 1 TO 7
IF map$(px, py + 1) = iterrain$(a) THEN EXIT SUB
NEXT a

py = py + 1

RANDOMIZE TIMER
IF INT(RND * 60) = 1 THEN
CALL drawscreen
LOCATE 21, 2
LINE (2, 160)-(318, 198), 0, BF
PRINT "Encounter!!!"
CIRCLE (160, 48), 10, 15
PCOPY 1, 0
DO
IF INKEY$ = " " THEN EXIT DO
LOOP
CALL encounter
END IF

CALL drawscreen

END SUB

SUB moveleft

FOR a = 1 TO 7
IF map$(px - 1, py) = iterrain$(a) THEN EXIT SUB
NEXT a
px = px - 1

RANDOMIZE TIMER
IF INT(RND * 60) = 1 THEN
CALL drawscreen
LOCATE 21, 2
LINE (2, 160)-(318, 198), 0, BF
PRINT "Encounter!!!"
CIRCLE (224, 80), 10, 15
PCOPY 1, 0
DO
IF INKEY$ = " " THEN EXIT DO
LOOP
CALL encounter
END IF


CALL drawscreen


END SUB

SUB moveright

FOR a = 1 TO 7
IF map$(px + 1, py) = iterrain$(a) THEN EXIT SUB
NEXT a
px = px + 1

RANDOMIZE TIMER
IF INT(RND * 60) = 1 THEN
CALL drawscreen
LOCATE 21, 2
LINE (2, 160)-(318, 198), 0, BF
PRINT "Encounter!!!"
CIRCLE (96, 80), 10, 15
PCOPY 1, 0
DO
IF INKEY$ = " " THEN EXIT DO
LOOP
CALL encounter
END IF


CALL drawscreen


END SUB

SUB moveup

FOR a = 1 TO 7
IF map$(px, py - 1) = iterrain$(a) THEN EXIT SUB
NEXT a
py = py - 1

RANDOMIZE TIMER
CALL drawscreen
IF INT(RND * 60) = 1 THEN
LOCATE 21, 2
LINE (2, 160)-(318, 198), 0, BF
PRINT "Encounter!!!"
CIRCLE (160, 112), 10, 15
PCOPY 1, 0
DO
IF INKEY$ = " " THEN EXIT DO
LOOP
CALL encounter
END IF


CALL drawscreen

END SUB




Home