Untitled Document
"WE ARE LOOKING FOR PARTNER...!!!"

Jika Anda seorang Designer Freelance, kami membutuhkan jasa anda untuk membuat themes-themes dan template halaman web, baik statik ataupun dinamik dengan flash.
Kirimkan contoh original karya Anda ke contact@wahyukurniawan.info.

Kami juga mencari programmer freelance (khususnya Visual Basic) untuk mengerjakan project database. Silakan menghubungi kami dengan menyertakan contoh-contoh project yang pernah ditangani.


PAKET HOSTING WEB

K.I.D.D.I.E.S
HOSTING SPACE 25 MB
TERMASUK DOMAIN .COM/ .ORG
HANYA Rp. 270.000,- / th
J.U.N.I.O.R
HOSTING SPACE 50 MB
TERMASUK DOMAIN .COM/ .ORG
HANYA Rp. 480.000,- / th
S.E.N.I.O.R
HOSTING SPACE 100 MB
TERMASUK DOMAIN .COM/ .ORG
HANYA Rp. 750.000,- / th


PAKET DESAIN WEB

Dapatkan Website 5 - 10 Halaman untuk Personal Web ataupun Perusahaan anda.

Untuk permintaan yang lebih spesifik silakan menghubungi contact@wahyukurniawan.info


PAKET TRAINING KOMPUTER

Kami juga melayani Training Komputer
Paket2 materi yang diajarkan:
* Animasi Shockwave Flash
* Web Design
* Web Programming
* Database Programming
* Les Privat siswa SD, SMP, SMA dan Mahasiswa sesuai kebutuhan


CITA HATI SECTION


Untuk melihat materi pelajaran yang saya ajarkan silakan klik disini

Klik disini untuk masuk ke Beltsazar House



PROGRAM GAME PETUALANGAN ROSETTA




Game ini dibikin pakai Quick Basic. Tapi karena ini dibuatnya tahun 1998, jadi grafiknya kurang bagus, gamenya juga cuma jalan 256 color, animasi objectnya juga kacau dan gambarnya juga kurang bagus. Tapi untuk menggambar semua object yang ada, saya menggunakan program yang ditulis dalam Quick Basic juga. Tapi dari sisi algoritma program, kurang baik karena banyak lompatan di dalamnya. Jadi program ini tidak bisa dicompile jadi EXE karena disamping baris programnya yang panjang, manajemen memori yang ngga diatur dan compiler Quick Basic yang saya gunakan adalah versi 4.5.
Untuk mereka yang baru belajar algoritma dan pemrograman, lumayanlah buat referensi. bisa dilihat sourcenya di sini. Dan silakan dimodifikasi, tapi kalo sudah dimodifikasi tolong saya dikasihtahu...
Game ini sangat mudah, bahkan dapat anda selesaikan dengan cepat. Menceritakan petualangan Rosetta yang mengumpulkan barang-barang sihir dan mantra sihir untuk menghadapi musuh terakhirnya. Hanya sayangnya karena tidak ada unsur arcadenya, game jadi keliatan monoton. Saya sempat membuat sekuel dari game ini, hanya saja belum selesai. Berikut adalah source codenya...

'*************************************************
'
' QUEST of ROSETTA ( Demo Version )
' Programmed by Yulius Candra Wahyu Kurniawan
' An Experiment Program Logic Adventures Game
'
'*************************************************

DECLARE FUNCTION Pilihan% (x.pos%, y.pos%, y.awal%, y.akhir%, y.ofset%)
DECLARE SUB Peace ()
DECLARE SUB Inventory ()
DECLARE SUB Cek17 ()
DECLARE SUB Cek19 ()
DECLARE SUB Cek22 ()
DECLARE SUB Cek28kiri ()
DECLARE SUB Cek28kanan ()
DECLARE SUB Final ()
DECLARE SUB Tyverra ()
DECLARE SUB HouseNol ()
DECLARE SUB HouseOne ()
DECLARE SUB HouseTwo ()
DECLARE SUB Box (x1%, y1%, x2%, y2%, c1%, c2%, c3%)
DECLARE SUB PutFont (col%, row%, delay%, text$)
DECLARE SUB Waitkey (keys%)
DECLARE SUB Winkle ()
DECLARE SUB Camiria ()

COMMON SHARED house AS INTEGER, house1 AS INTEGER, shouse AS INTEGER, shouse1 AS INTEGER, shouse2 AS INTEGER
COMMON SHARED hut AS INTEGER, cave AS INTEGER, gold AS INTEGER
COMMON SHARED protect AS INTEGER, satana AS INTEGER, akylla AS INTEGER
COMMON SHARED ceksound AS INTEGER

CLEAR

CONST item1$ = "Magic Book"
CONST item2$ = "Magic Candle"
CONST item3$ = "Magic Horn"
CONST item4$ = "Magic Potion"
CONST item5$ = "Magic Key"
CONST item6$ = "Magic Bow"
CONST item7$ = "Magic Arrow"
CONST item8$ = "Magic Shield"
CONST item9$ = "Magic Rod"
CONST item10$ = "Magic Ring"
CONST item11$ = "Protect"
CONST item12$ = "Flame"
CONST item13$ = "Thunder"
CONST d = 10000
CONST x1 = 5, y1 = 120, x2 = 315, y2 = 190
CONST x3 = 5, y3 = 10, x4 = 100, y4 = 110
CONST x.awal = 210, y.awal = 50
CONST x.ofset = 2, y.ofset = 2
CONST batas1 = 30, batas2 = 140, batas3 = 260, batas4 = 70

DEFINT A-Z

PRINT "QUEST of ROSETTA ( Demo Version )"
PRINT "Created on December 1998 by Yulius Candra Wahyu Kurniawan"
PRINT "Copyright (C) 1998 MagicTouch Software Inc."
PRINT "Kind of language : "
PRINT "1. Indonesian"
PRINT "2. English"
INPUT "Input Language do you wish to use ( Default. English ) : ", language
IF language = 1 THEN filetext$ = "indones.dat" ELSE filetext$ = "english.dat"
PRINT "Loading Text ";
OPEN filetext$ FOR INPUT AS #1
DIM SHARED t$(475)
FOR i = 0 TO 475
INPUT #1, t$(i)
IF i MOD 50 = 0 THEN PRINT ".";
NEXT
CLOSE #1
PRINT

PRINT "Loading Font ";

OPEN "gothic.dat" FOR INPUT AS #1
DIM SHARED sa(33): FOR i = 0 TO 33: INPUT #1, sa(i): NEXT: PRINT ".";
DIM SHARED sb(29): FOR i = 0 TO 29: INPUT #1, sb(i): NEXT: PRINT ".";
DIM SHARED sc(29): FOR i = 0 TO 29: INPUT #1, sc(i): NEXT: PRINT ".";
DIM SHARED sd(33): FOR i = 0 TO 33: INPUT #1, sd(i): NEXT: PRINT ".";
DIM SHARED se(29): FOR i = 0 TO 29: INPUT #1, se(i): NEXT: PRINT ".";
DIM SHARED sf(29): FOR i = 0 TO 29: INPUT #1, sf(i): NEXT: PRINT ".";
DIM SHARED sg(33): FOR i = 0 TO 33: INPUT #1, sg(i): NEXT: PRINT ".";
DIM SHARED sh(29): FOR i = 0 TO 29: INPUT #1, sh(i): NEXT: PRINT ".";
DIM SHARED si(20): FOR i = 0 TO 20: INPUT #1, si(i): NEXT: PRINT ".";
DIM SHARED sj(20): FOR i = 0 TO 20: INPUT #1, sj(i): NEXT: PRINT ".";
DIM SHARED sk(33): FOR i = 0 TO 33: INPUT #1, sk(i): NEXT: PRINT ".";
DIM SHARED sl(20): FOR i = 0 TO 20: INPUT #1, sl(i): NEXT: PRINT ".";
DIM SHARED sm(51): FOR i = 0 TO 51: INPUT #1, sm(i): NEXT: PRINT ".";
DIM SHARED sn(38): FOR i = 0 TO 38: INPUT #1, sn(i): NEXT: PRINT ".";
DIM SHARED so(29): FOR i = 0 TO 29: INPUT #1, so(i): NEXT: PRINT ".";
DIM SHARED sp(33): FOR i = 0 TO 33: INPUT #1, sp(i): NEXT: PRINT ".";
DIM SHARED sq(33): FOR i = 0 TO 33: INPUT #1, sq(i): NEXT: PRINT ".";
DIM SHARED sr(33): FOR i = 0 TO 33: INPUT #1, sr(i): NEXT: PRINT ".";
DIM SHARED ss(29): FOR i = 0 TO 29: INPUT #1, ss(i): NEXT: PRINT ".";
DIM SHARED st(24): FOR i = 0 TO 24: INPUT #1, st(i): NEXT: PRINT ".";
DIM SHARED su(38): FOR i = 0 TO 38: INPUT #1, su(i): NEXT: PRINT ".";
DIM SHARED sv(33): FOR i = 0 TO 33: INPUT #1, sv(i): NEXT: PRINT ".";
DIM SHARED sw(47): FOR i = 0 TO 47: INPUT #1, sw(i): NEXT: PRINT ".";
DIM SHARED sx(38): FOR i = 0 TO 38: INPUT #1, sx(i): NEXT: PRINT ".";
DIM SHARED sy(33): FOR i = 0 TO 33: INPUT #1, sy(i): NEXT: PRINT ".";
DIM SHARED sz(24): FOR i = 0 TO 24: INPUT #1, sz(i): NEXT: PRINT ".";
DIM SHARED ba(42): FOR i = 0 TO 42: INPUT #1, ba(i): NEXT: PRINT ".";
DIM SHARED bb(38): FOR i = 0 TO 38: INPUT #1, bb(i): NEXT: PRINT ".";
DIM SHARED bc(29): FOR i = 0 TO 29: INPUT #1, bc(i): NEXT: PRINT ".";
DIM SHARED bd(42): FOR i = 0 TO 42: INPUT #1, bd(i): NEXT: PRINT ".";
DIM SHARED be(42): FOR i = 0 TO 42: INPUT #1, be(i): NEXT: PRINT ".";
DIM SHARED BF(38): FOR i = 0 TO 38: INPUT #1, BF(i): NEXT: PRINT ".";
DIM SHARED bg(38): FOR i = 0 TO 38: INPUT #1, bg(i): NEXT: PRINT ".";
DIM SHARED bh(42): FOR i = 0 TO 42: INPUT #1, bh(i): NEXT: PRINT ".";
DIM SHARED bi(29): FOR i = 0 TO 29: INPUT #1, bi(i): NEXT: PRINT ".";
DIM SHARED bj(29): FOR i = 0 TO 29: INPUT #1, bj(i): NEXT: PRINT ".";
DIM SHARED bk(42): FOR i = 0 TO 42: INPUT #1, bk(i): NEXT: PRINT ".";
DIM SHARED bl(33): FOR i = 0 TO 33: INPUT #1, bl(i): NEXT: PRINT ".";
DIM SHARED bm(51): FOR i = 0 TO 51: INPUT #1, bm(i): NEXT: PRINT ".";
DIM SHARED bn(42): FOR i = 0 TO 42: INPUT #1, bn(i): NEXT: PRINT ".";
DIM SHARED bo(38): FOR i = 0 TO 38: INPUT #1, bo(i): NEXT: PRINT ".";
DIM SHARED bp(38): FOR i = 0 TO 38: INPUT #1, bp(i): NEXT: PRINT ".";
DIM SHARED bq(42): FOR i = 0 TO 42: INPUT #1, bq(i): NEXT: PRINT ".";
DIM SHARED br(42): FOR i = 0 TO 42: INPUT #1, br(i): NEXT: PRINT ".";
DIM SHARED bs(33): FOR i = 0 TO 33: INPUT #1, bs(i): NEXT: PRINT ".";
DIM SHARED bt(38): FOR i = 0 TO 38: INPUT #1, bt(i): NEXT: PRINT ".";
DIM SHARED bu(38): FOR i = 0 TO 38: INPUT #1, bu(i): NEXT: PRINT ".";
DIM SHARED bv(38): FOR i = 0 TO 38: INPUT #1, bv(i): NEXT: PRINT ".";
DIM SHARED bw(51): FOR i = 0 TO 51: INPUT #1, bw(i): NEXT: PRINT ".";
DIM SHARED bx(42): FOR i = 0 TO 42: INPUT #1, bx(i): NEXT: PRINT ".";
DIM SHARED by(38): FOR i = 0 TO 38: INPUT #1, by(i): NEXT: PRINT ".";
DIM SHARED bz(38): FOR i = 0 TO 38: INPUT #1, bz(i): NEXT: PRINT ".";
DIM SHARED f0(33): FOR i = 0 TO 33: INPUT #1, f0(i): NEXT: PRINT ".";
DIM SHARED f1(24): FOR i = 0 TO 24: INPUT #1, f1(i): NEXT: PRINT ".";
DIM SHARED f2(33): FOR i = 0 TO 33: INPUT #1, f2(i): NEXT: PRINT ".";
DIM SHARED f3(33): FOR i = 0 TO 33: INPUT #1, f3(i): NEXT: PRINT ".";
DIM SHARED f4(33): FOR i = 0 TO 33: INPUT #1, f4(i): NEXT: PRINT ".";
DIM SHARED f5(33): FOR i = 0 TO 33: INPUT #1, f5(i): NEXT: PRINT ".";
DIM SHARED f6(33): FOR i = 0 TO 33: INPUT #1, f6(i): NEXT: PRINT ".";
DIM SHARED f7(33): FOR i = 0 TO 33: INPUT #1, f7(i): NEXT: PRINT ".";
DIM SHARED f8(29): FOR i = 0 TO 29: INPUT #1, f8(i): NEXT: PRINT ".";
DIM SHARED f9(33): FOR i = 0 TO 33: INPUT #1, f9(i): NEXT: PRINT ".";
DIM SHARED tanya(33): FOR i = 0 TO 33: INPUT #1, tanya(i): NEXT: PRINT ".";
DIM SHARED seru(20): FOR i = 0 TO 20: INPUT #1, seru(i): NEXT: PRINT ".";
DIM SHARED titik(20): FOR i = 0 TO 20: INPUT #1, titik(i): NEXT: PRINT ".";
DIM SHARED koma(20): FOR i = 0 TO 20: INPUT #1, koma(i): NEXT: PRINT ".";
DIM SHARED petik1(20): FOR i = 0 TO 20: INPUT #1, petik1(i): NEXT: PRINT ".";
DIM SHARED petik2(20): FOR i = 0 TO 20: INPUT #1, petik2(i): NEXT: PRINT ".";
DIM SHARED buka(20): FOR i = 0 TO 20: INPUT #1, buka(i): NEXT: PRINT ".";
DIM SHARED tutup(20): FOR i = 0 TO 20: INPUT #1, tutup(i): NEXT: PRINT ".";
DIM SHARED ttkdua(20): FOR i = 0 TO 20: INPUT #1, ttkdua(i): NEXT: PRINT ".";
DIM SHARED ttkoma(20): FOR i = 0 TO 20: INPUT #1, ttkoma(i): NEXT: PRINT "."
CLOSE #1

PRINT "Loading Sprite ";
OPEN "sprite.dat" FOR INPUT AS #1
DIM SHARED spru1(222): FOR i = 0 TO 222: INPUT #1, spru1(i): NEXT: PRINT ".";
DIM SHARED spru2(222): FOR i = 0 TO 222: INPUT #1, spru2(i): NEXT: PRINT ".";
DIM SHARED sprl1(222): FOR i = 0 TO 222: INPUT #1, sprl1(i): NEXT: PRINT ".";
DIM SHARED sprl2(222): FOR i = 0 TO 222: INPUT #1, sprl2(i): NEXT: PRINT ".";
DIM SHARED sprr1(222): FOR i = 0 TO 222: INPUT #1, sprr1(i): NEXT: PRINT ".";
DIM SHARED sprr2(222): FOR i = 0 TO 222: INPUT #1, sprr2(i): NEXT: PRINT ".";
DIM SHARED sprd1(222): FOR i = 0 TO 222: INPUT #1, sprd1(i): NEXT: PRINT ".";
DIM SHARED sprd2(222): FOR i = 0 TO 222: INPUT #1, sprd2(i): NEXT: PRINT "."
CLOSE #1

PRINT "Loading Object ";
OPEN "object.dat" FOR INPUT AS #1
DIM SHARED pointer(34): FOR i = 0 TO 34: INPUT #1, pointer(i): NEXT: PRINT ".";
DIM SHARED book(172): FOR i = 0 TO 172: INPUT #1, book(i): NEXT: PRINT ".";
DIM SHARED candle(189): FOR i = 0 TO 189: INPUT #1, candle(i): NEXT: PRINT ".";
DIM SHARED horn(117): FOR i = 0 TO 117: INPUT #1, horn(i): NEXT: PRINT ".";
DIM SHARED potion(145): FOR i = 0 TO 145: INPUT #1, potion(i): NEXT: PRINT ".";
DIM SHARED keys(78): FOR i = 0 TO 78: INPUT #1, keys(i): NEXT: PRINT ".";
DIM SHARED bow(114): FOR i = 0 TO 114: INPUT #1, bow(i): NEXT: PRINT ".";
DIM SHARED arrow(77): FOR i = 0 TO 77: INPUT #1, arrow(i): NEXT: PRINT ".";
DIM SHARED shield(189): FOR i = 0 TO 189: INPUT #1, shield(i): NEXT: PRINT ".";
DIM SHARED rod(77): FOR i = 0 TO 77: INPUT #1, rod(i): NEXT: PRINT ".";
DIM SHARED ring(42): FOR i = 0 TO 42: INPUT #1, ring(i): NEXT: PRINT ".";
DIM SHARED rock1(222): FOR i = 0 TO 222: INPUT #1, rock1(i): NEXT: PRINT ".";
DIM SHARED rock2(222): FOR i = 0 TO 222: INPUT #1, rock2(i): NEXT: PRINT ".";
DIM SHARED tree(222): FOR i = 0 TO 222: INPUT #1, tree(i): NEXT: PRINT ".";
DIM SHARED town(222): FOR i = 0 TO 222: INPUT #1, town(i): NEXT: PRINT ".";
DIM SHARED home(222): FOR i = 0 TO 222: INPUT #1, home(i): NEXT: PRINT ".";
DIM SHARED river(222): FOR i = 0 TO 222: INPUT #1, river(i): NEXT: PRINT "."
CLOSE #1

PRINT "Loading Character ";
OPEN "face.dat" FOR INPUT AS #1
DIM SHARED man1(340): FOR i = 0 TO 340: INPUT #1, man1(i): NEXT: PRINT ".";
DIM SHARED man2(340): FOR i = 0 TO 340: INPUT #1, man2(i): NEXT: PRINT ".";
DIM SHARED oldman1(340): FOR i = 0 TO 340: INPUT #1, oldman1(i): NEXT: PRINT ".";
DIM SHARED oldman2(340): FOR i = 0 TO 340: INPUT #1, oldman2(i): NEXT: PRINT ".";
DIM SHARED oldman3(340): FOR i = 0 TO 340: INPUT #1, oldman3(i): NEXT: PRINT ".";
DIM SHARED girl1(340): FOR i = 0 TO 340: INPUT #1, girl1(i): NEXT: PRINT ".";
CLOSE #1

CLS
SCREEN 13

ON KEY(1) GOSUB toggle

DIM SHARED item$(13)
FOR i = 1 TO 13
item$(i) = ""
NEXT
house = 0: house1 = 0: shouse = 0: shouse1 = 0: shouse2 = 0
hut = 0: cave = 0: gold = 0
protect = 0: satana = 0: akylla = 0
ceksound = 0

PutFont 80, 80, 1, t$(0)
PutFont 50, 100, 1, t$(1)
a$ = INPUT$(1)

CLS

KEY(1) ON
Box 5, 10, 100, 110, 15, 9, 12
Box 5, 120, 315, 190, 15, 9, 12
GOSUB sc10
Peace

x.pos = x.awal: y.pos = y.awal
x.old = x.pos: y.old = y.pos
y.atas = batas1: x.kiri = batas2: x.kanan = batas3: y.bawah = batas4
md = 0: mu = 0: ml = 0: mr = 0
c = 4
cek = 1
GOSUB sc1
Inventory
FOR z = 1 TO 10
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprd1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprl1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), spru1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
PUT (x.pos, y.pos), sprr1: FOR delay = 1 TO 25000: NEXT
NEXT
PUT (x.pos, y.pos), sprd1

main:
DO WHILE NOT Salah
a$ = INKEY$
IF a$ = CHR$(27) THEN GOTO ending
IF a$ = "" THEN n = 0
IF LEN(a$) = 2 THEN n = ASC(MID$(a$, 2, 1)) ELSE n = 0
IF n = 72 THEN GOSUB atas
IF n = 75 THEN GOSUB kiri
IF n = 77 THEN GOSUB kanan
IF n = 80 THEN GOSUB bawah
LOOP

atas:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 1
SELECT CASE cek
CASE 0
y.bawah = y.atas
CASE 1
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 2, 3, 4, 14
y.bawah = y.atas
CASE 5
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
CASE 6, 8, 15, 17, 18, 19, 22, 23, 24
y.atas = y.atas + 20
y.bawah = y.atas
CASE 7, 9, 28, 29
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.atas + 20: y.bawah = y.atas
CASE 10
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 25, 33, 34
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.atas + 20: y.bawah = y.atas
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
y.bawah = y.atas
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.atas
CASE 31
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
y.bawah = y.atas
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF mu = 0 THEN
IF y.pos <= y.atas THEN
IF cek = 1 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 0: GOSUB sc0
IF cek = 5 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 2: GOSUB sc2
IF cek = 7 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 4: GOSUB sc4
IF cek = 9 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 10: GOSUB sc10
IF cek = 12 THEN cek = 13: GOSUB sc13
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 12: GOSUB sc12
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 6: GOSUB sc6
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 21 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 25 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 15: GOSUB sc15
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 31: GOSUB sc31
IF cek = 29 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 32 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 37: GOSUB sc10
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 33 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
y.pos = y.bawah
ELSE
y.pos = y.pos - y.ofset
END IF
PUT (x.pos, y.pos), spru2
x.old = x.pos: y.old = y.pos
mu = 1
ELSE
IF y.pos <= y.atas THEN
IF cek = 1 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 0: GOSUB sc0
IF cek = 5 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 2: GOSUB sc2
IF cek = 7 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 4: GOSUB sc4
IF cek = 9 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 10: GOSUB sc10
IF cek = 12 THEN cek = 13: GOSUB sc13
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 12: GOSUB sc12
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 6: GOSUB sc6
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 21 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 25 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 15: GOSUB sc15
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 31: GOSUB sc31
IF cek = 29 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 32 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 37: GOSUB sc10
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 33 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
y.pos = y.bawah
ELSE
y.pos = y.pos - y.ofset
END IF
PUT (x.pos, y.pos), spru1
x.old = x.pos: y.old = y.pos
mu = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

kiri:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 2
SELECT CASE cek
CASE 0, 4, 16, 26, 27, 29, 30, 33, 35, 36
x.kiri = x.kiri + 40
x.kanan = x.kiri
CASE 1
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 6, 12
x.kanan = x.kiri
CASE 7, 9, 25, 32
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 10
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 34
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
x.kanan = x.kiri
CASE 15
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
CASE 17
IF (x.pos >= 240 AND y.pos >= 50) AND (x.pos <= 260 AND y.pos <= 70) THEN Cek17: cek = 19: GOSUB sc8: GOSUB Initsprite: GOTO main
x.kiri = x.kiri + 100
x.kanan = x.kiri
CASE 19
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN
Cek19
IF protect = 0 THEN
cek = 19: GOSUB sc8: GOSUB Initsprite: GOTO main
ELSE
cek = 18: GOSUB sc8: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
x.kanan = x.kiri
CASE 22
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Cek22: GOSUB Initsprite: GOTO main
CASE 28
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN
Cek28kiri
IF satana = 0 THEN
cek = 28: GOSUB sc28: GOSUB Initsprite: GOTO main
ELSE
cek = 29: GOSUB sc29: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 31
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kiri + 40: x.kanan = x.kiri
x.kanan = x.kiri
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF ml = 0 THEN
IF x.pos <= x.kiri THEN
IF cek = 2 THEN cek = 1: GOSUB sc1
IF cek = 3 THEN cek = 2: GOSUB sc2
IF cek = 5 THEN cek = 4: GOSUB sc4
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 6: GOSUB sc6
IF cek = 8 THEN cek = 7: GOSUB sc7
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 11 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 9: GOSUB sc7
IF cek = 14 THEN cek = 13: GOSUB sc13
IF cek = 15 THEN cek = 14: GOSUB sc14
IF cek = 18 THEN cek = 17: GOSUB sc17
IF cek = 19 THEN cek = 18: GOSUB sc8
IF cek = 20 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 19: GOSUB sc8
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 22: GOSUB sc22
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 25 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 29: GOSUB sc29
IF cek = 34 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
x.pos = x.kanan
ELSE
x.pos = x.pos - x.ofset
END IF
PUT (x.pos, y.pos), sprl2
x.old = x.pos: y.old = y.pos
ml = 1
ELSE
IF x.pos <= x.kiri THEN
IF cek = 2 THEN cek = 1: GOSUB sc1
IF cek = 3 THEN cek = 2: GOSUB sc2
IF cek = 5 THEN cek = 4: GOSUB sc4
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 6: GOSUB sc6
IF cek = 8 THEN cek = 7: GOSUB sc7
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 11 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 9: GOSUB sc7
IF cek = 14 THEN cek = 13: GOSUB sc13
IF cek = 15 THEN cek = 14: GOSUB sc14
IF cek = 18 THEN cek = 17: GOSUB sc17
IF cek = 19 THEN cek = 18: GOSUB sc8
IF cek = 20 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 19: GOSUB sc8
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 22: GOSUB sc22
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 25 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 29: GOSUB sc29
IF cek = 34 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
x.pos = x.kanan
ELSE
x.pos = x.pos - x.ofset
END IF
PUT (x.pos, y.pos), sprl1
x.old = x.pos: y.old = y.pos
ml = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

kanan:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 3
SELECT CASE cek
CASE 0, 11, 15, 16, 20, 25, 26, 27, 30, 33, 34, 35, 36
x.kanan = x.kanan - 40
x.kiri = x.kanan
CASE 1
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 3, 5, 12
x.kiri = x.kanan
CASE 6
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kanan
CASE 7, 9, 29, 32
IF y.pos >= 25 AND y.pos <= 48 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
CASE 10
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
CASE 14
IF y.pos >= 25 AND y.pos <= 48 THEN x.kiri = x.kanan
IF y.pos >= 57 AND y.pos <= 100 THEN x.kiri = x.kanan
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
x.kiri = x.kanan
CASE 28
IF y.pos >= 25 AND y.pos <= 48 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
IF (x.pos >= 240 AND y.pos >= 50) AND (x.pos <= 260 AND y.pos <= 70) THEN
Cek28kanan
IF akylla = 0 THEN
cek = 28: GOSUB sc28: GOSUB Initsprite: GOTO main
ELSE
cek = 34: GOSUB sc34: GOSUB Initsprite: GOTO main
END IF
END IF
CASE 31
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 37
IF y.pos >= 57 AND y.pos <= 100 THEN x.kanan = x.kanan - 40: x.kiri = x.kanan
x.kiri = x.kanan
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF mr = 0 THEN
IF x.pos >= x.kanan THEN
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 34: GOSUB sc34
IF cek = 29 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 25: GOSUB sc25
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 22 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 19 THEN cek = 20: GOSUB sc11
IF cek = 18 THEN cek = 19: GOSUB sc8
IF cek = 17 THEN cek = 18: GOSUB sc8
IF cek = 14 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 15: GOSUB sc15
IF cek = 13 THEN cek = 14: GOSUB sc14
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 11: GOSUB sc11
IF cek = 8 THEN cek = 9: GOSUB sc7
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 6 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 7: GOSUB sc7
IF cek = 4 THEN cek = 5: GOSUB sc5
IF cek = 2 THEN cek = 3: GOSUB sc3
IF cek = 1 THEN cek = 2: GOSUB sc2
x.pos = x.kiri
ELSE
x.pos = x.pos + x.ofset
END IF
PUT (x.pos, y.pos), sprr2
x.old = x.pos: y.old = y.pos
mr = 1
ELSE
IF x.pos >= x.kanan THEN
IF cek = 28 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 34: GOSUB sc34
IF cek = 29 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 28: GOSUB sc28
IF cek = 24 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 25: GOSUB sc25
IF cek = 23 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 24: GOSUB sc23
IF cek = 22 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 23: GOSUB sc23
IF cek = 19 THEN cek = 20: GOSUB sc11
IF cek = 18 THEN cek = 19: GOSUB sc8
IF cek = 17 THEN cek = 18: GOSUB sc8
IF cek = 14 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 15: GOSUB sc15
IF cek = 13 THEN cek = 14: GOSUB sc14
IF cek = 9 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 11: GOSUB sc11
IF cek = 8 THEN cek = 9: GOSUB sc7
IF cek = 7 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 8: GOSUB sc8
IF cek = 6 THEN IF y.pos >= 49 AND y.pos <= 56 THEN cek = 7: GOSUB sc7
IF cek = 4 THEN cek = 5: GOSUB sc5
IF cek = 2 THEN cek = 3: GOSUB sc3
IF cek = 1 THEN cek = 2: GOSUB sc2
x.pos = x.kiri
ELSE
x.pos = x.pos + x.ofset
END IF
PUT (x.pos, y.pos), sprr1
x.old = x.pos: y.old = y.pos
mr = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

bawah:
SELECT CASE c
CASE 1
IF mu = 0 THEN PUT (x.old, y.old), spru1 ELSE PUT (x.old, y.old), spru2
CASE 2
IF ml = 0 THEN PUT (x.old, y.old), sprl1 ELSE PUT (x.old, y.old), sprl2
CASE 3
IF mr = 0 THEN PUT (x.old, y.old), sprr1 ELSE PUT (x.old, y.old), sprr2
CASE 4
IF md = 0 THEN PUT (x.old, y.old), sprd1 ELSE PUT (x.old, y.old), sprd2
END SELECT
c = 4
SELECT CASE cek
CASE 1
y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Camiria: GOSUB Initsprite: GOTO main
CASE 3, 5, 14
y.atas = y.bawah
CASE 2, 4, 6, 15
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.bawah
CASE 7, 8, 9, 17, 18, 19, 22, 23, 24, 25, 29, 33
y.bawah = y.bawah - 20
y.atas = y.bawah
CASE 10
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah - 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseNol: GOSUB Initsprite: GOTO main
CASE 11, 20, 28, 34
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah - 20: y.atas = y.bawah
CASE 12
IF x.pos <= 170 OR x.pos >= 230 THEN y.atas = y.bawah
CASE 13
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Tyverra: GOSUB Initsprite: GOTO main
CASE 21
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseOne: GOSUB Initsprite: GOTO main
y.bawah = y.bawah - 20: y.atas = y.bawah
CASE 31
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah - 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN Winkle: GOSUB Initsprite: GOTO main
CASE 32
y.bawah = y.bawah - 40
y.atas = y.bawah
CASE 37
IF x.pos <= 170 OR x.pos >= 230 THEN y.bawah = y.bawah - 20: y.atas = y.bawah
IF (x.pos >= 160 AND y.pos >= 50) AND (x.pos <= 180 AND y.pos <= 70) THEN HouseTwo: GOSUB Initsprite: GOTO main
END SELECT
IF md = 0 THEN
IF y.pos >= y.bawah THEN
IF cek = 0 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 1: GOSUB sc1
IF cek = 2 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 5: GOSUB sc5
IF cek = 4 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 7: GOSUB sc7
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 21: GOSUB sc21
IF cek = 6 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 10 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 9: GOSUB sc7
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 33: GOSUB sc33
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 37 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 32: GOSUB sc32
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 29: GOSUB sc29
IF cek = 31 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 15 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 25: GOSUB sc25
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 12 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 13 THEN cek = 12: GOSUB sc12
y.pos = y.atas
ELSE
y.pos = y.pos + y.ofset
END IF
PUT (x.pos, y.pos), sprd2
x.old = x.pos: y.old = y.pos
md = 1
ELSE
IF y.pos >= y.bawah THEN
IF cek = 0 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 1: GOSUB sc1
IF cek = 2 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 5: GOSUB sc5
IF cek = 4 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 7: GOSUB sc7
IF cek = 16 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 21: GOSUB sc21
IF cek = 6 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 16: GOSUB sc16
IF cek = 10 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 9: GOSUB sc7
IF cek = 34 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 33: GOSUB sc33
IF cek = 35 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 34: GOSUB sc34
IF cek = 36 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 35: GOSUB sc35
IF cek = 37 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 36: GOSUB sc35
IF cek = 28 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 32: GOSUB sc32
IF cek = 27 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 28: GOSUB sc28
IF cek = 30 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 29: GOSUB sc29
IF cek = 31 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 30: GOSUB sc16
IF cek = 26 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 27: GOSUB sc16
IF cek = 15 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 26: GOSUB sc16
IF cek = 20 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 25: GOSUB sc25
IF cek = 11 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 20: GOSUB sc11
IF cek = 12 THEN IF x.pos > 170 AND x.pos < 230 THEN cek = 11: GOSUB sc11
IF cek = 13 THEN cek = 12: GOSUB sc12
y.pos = y.atas
ELSE
y.pos = y.pos + y.ofset
END IF
PUT (x.pos, y.pos), sprd1
x.old = x.pos: y.old = y.pos
md = 0
END IF
y.atas = batas1
x.kiri = batas2
x.kanan = batas3
y.bawah = batas4
RETURN

sc0:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (160 + 20 * i, 10), rock1
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (100 + 20 * j, 10 + 20 * i), rock2
PUT (220 + 20 * j, 10 + 20 * i), rock2
NEXT
NEXT
RETURN

sc1:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (120, 10 + 20 * i), rock2
NEXT
PUT (160, 50), town
RETURN

sc2:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 90), rock2
NEXT
RETURN

sc3:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), rock2
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (280, 10 + 20 * i), rock2
NEXT
RETURN

sc4:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 90), tree
NEXT
FOR i = 1 TO 3
FOR j = 1 TO 4
PUT (100 + 20 * i, 10 + 20 * j), tree
NEXT
NEXT
RETURN

sc5:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), rock2
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 90), rock2
NEXT
FOR i = 1 TO 3
PUT (280, 10 + 20 * i), rock2
NEXT
RETURN

sc6:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 90), tree
NEXT
PUT (120, 50), tree
PUT (120, 70), tree
PUT (280, 70), tree
RETURN

sc7:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
FOR j = 0 TO 1
PUT (100 + 20 * i, 10 + 20 * j), tree
PUT (220 + 20 * i, 10 + 20 * j), tree
NEXT
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
RETURN

sc8:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
RETURN

sc10:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 2
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (220 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
PUT (160, 50), home
RETURN

sc11:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc12:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 3
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
RETURN

sc13:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 4
PUT (120, 10 + 20 * i), tree
NEXT
PUT (160, 50), town
RETURN

sc14:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 90), tree
NEXT
PUT (280, 30), tree
PUT (280, 70), tree
RETURN

sc15:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 1 TO 6
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
NEXT
RETURN

sc16:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc17:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 8
PUT (120 + 20 * i, 10), tree
PUT (120 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
PUT (120, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 30), tree
PUT (220 + 20 * i, 70), tree
NEXT
FOR i = 1 TO 5
FOR j = 1 TO 3
PUT (120 + 20 * i, 10 + 20 * j), river
NEXT
NEXT
RETURN

sc21:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (220 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
PUT (120, 30), tree
PUT (120, 50), tree
PUT (160, 50), home
PUT (280, 30), tree
PUT (280, 50), tree
RETURN

sc22:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
PUT (160, 50), rock1
PUT (120, 50), tree
LINE (165, 60)-(175, 69), 0, BF
RETURN

sc23:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc25:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
FOR i = 0 TO 2
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

sc28:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
PUT (220 + 20 * i, 70), tree
PUT (220 + 20 * i, 90), tree
NEXT
RETURN

sc29:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
FOR i = 1 TO 3
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 6
PUT (160 + 20 * i, 70), tree
PUT (160 + 20 * i, 90), tree
NEXT
RETURN

sc31:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 9
PUT (100 + 20 * i, 10), tree
NEXT
FOR i = 1 TO 2
PUT (120, 10 + 20 * i), tree
PUT (280, 10 + 20 * i), tree
NEXT
FOR i = 1 TO 3
PUT (100 + 20 * i, 70), tree
PUT (220 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
PUT (220 + 20 * i, 90), tree
NEXT
PUT (160, 50), town
RETURN

sc32:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (220 + 20 * i, 10), tree
PUT (220 + 20 * i, 30), tree
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 50), tree
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc33:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 50), tree
PUT (220 + 20 * i, 10), river
PUT (220 + 20 * i, 30), river
PUT (220 + 20 * i, 50), river
NEXT
FOR i = 1 TO 9
PUT (100 + 20 * i, 70), river
PUT (100 + 20 * i, 90), river
NEXT
RETURN

sc34:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 1 TO 3
PUT (100 + 20 * i, 10), tree
PUT (100 + 20 * i, 30), tree
PUT (100 + 20 * i, 70), tree
PUT (100 + 20 * i, 90), tree
NEXT
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), river
NEXT
NEXT
RETURN

sc35:
LINE (120, 10)-(300, 110), 0, BF
FOR i = 0 TO 4
FOR j = 1 TO 3
PUT (220 + 20 * j, 10 + 20 * i), river
PUT (100 + 20 * j, 10 + 20 * i), tree
NEXT
NEXT
RETURN

ending:
SCREEN 0
WIDTH 80
CLS
PRINT "QUEST of ROSETTA ( Demo Version )"
PRINT "Created on December 1998 by Yulius Candra Wahyu Kurniawan"
PRINT "Copyright (C) 1998 MagicTouch Software Inc."
PRINT "Thank you for testing..."
END

Initsprite:
x.pos = x.awal: y.pos = y.awal
x.old = x.pos: y.old = y.pos
y.atas = batas1: x.kiri = batas2: x.kanan = batas3: y.bawah = batas4
md = 0
c = 4
PUT (x.pos, y.pos), sprd1
RETURN

toggle:
IF ceksound = 1 THEN ceksound = 0 ELSE ceksound = 1
RETURN

SUB Box (x1%, y1%, x2%, y2%, c1%, c2%, c3%)

LINE (x1 - 1, y1 - 1)-(x1 + 3, y1 + 3), c1, B
LINE (x1, y1)-(x1 + 2, y1 + 2), c3, BF
LINE (x2 - 1, y1 - 1)-(x2 + 3, y1 + 3), c1, B
LINE (x2, y1)-(x2 + 2, y1 + 2), c3, BF
LINE (x1 + 5, y1)-(x2 - 3, y1), c1
LINE (x1 + 5, y1 + 1)-(x2 - 3, y1 + 1), c2
LINE (x1 + 5, y1 + 2)-(x2 - 3, y1 + 2), c1
FOR i = y1 + 5 TO y2 - 3
LINE (x1, y1 + 5)-(x1, i), c1
LINE (x1 + 1, y1 + 5)-(x1 + 1, i), c2
LINE (x1 + 2, y1 + 5)-(x1 + 2, i), c1
LINE (x2, y1 + 5)-(x2, i), c1
LINE (x2 + 1, y1 + 5)-(x2 + 1, i), c2
LINE (x2 + 2, y1 + 5)-(x2 + 2, i), c1
NEXT
LINE (x1 - 1, y2 - 1)-(x1 + 3, y2 + 3), c1, B
LINE (x1, y2)-(x1 + 2, y2 + 2), c3, BF
LINE (x2 - 1, y2 - 1)-(x2 + 3, y2 + 3), c1, B
LINE (x2, y2)-(x2 + 2, y2 + 2), c3, BF
LINE (x1 + 5, y2)-(x2 - 3, y2), c1
LINE (x1 + 5, y2 + 1)-(x2 - 3, y2 + 1), c2
LINE (x1 + 5, y2 + 2)-(x2 - 3, y2 + 2), c1

END SUB

SUB Camiria
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
LINE (x3 + 5, y3 + 5)-(x4 - 5, y4 - 5), 0, BF
PutFont 100, 155, d, t$(8)
Waitkey 13
PutFont 30, 25, 1, t$(9)
PutFont 30, 40, 1, t$(10)
PutFont 30, 55, 1, t$(11)
PutFont 30, 70, 1, t$(12)
PutFont 30, 85, 1, t$(13)

DO WHILE NOT False
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
PutFont 100, 155, 1, t$(14)
a = Pilihan(15, 25, 25, 85, 15)

SELECT CASE a

CASE 1
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(15)
PutFont 50, 160, d, t$(16)
PutFont 50, 170, d, t$(17)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
PutFont 50, 150, 1, t$(18)
PutFont 50, 160, 1, t$(19)
PutFont 150, 150, 1, t$(20)
PutFont 150, 160, 1, t$(21)
a = Pilihan(50, 150, 150, 160, 10)
IF a = 1 THEN
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
IF item$(2) <> "" THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(22)
END IF
IF gold < 50 THEN
IF item$(2) = "" THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(23)
PutFont 50, 160, d, t$(24)
END IF
ELSE
IF item$(2) = "" THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(25)
PutFont 50, 160, d, t$(26)
PutFont 50, 170, d, t$(27)
Waitkey 13
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
PUT (150, 140), candle
PutFont 100, 170, 1, t$(28)
gold = gold - 50
item$(2) = item2$
IF ceksound = 1 THEN
FOR i = 1 TO 5
PLAY "l64 t255 cc#dd#eff#gg#aa#bc"
NEXT
END IF
END IF
END IF
END IF
IF a = 2 THEN
LINE (x1 + 5, y1 + 5)-(x2 - 5, y2 - 5), 0, BF
IF item$(3) <> "" THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(29)
END IF
IF gold < 150 THEN
IF item$(3) = "" THEN
PUT (20, 125), man2
PutFont 50, 140, d, t$(3)
PutFont 50, 150, d, t$(30)
PutFont 50, 160, d, t$(31)