DECLARE SUB bomb (thrust!(), bx!(), by!(), new!, current!, posx!, posy!, t!, obx!(), oby!(), thrust2!(), t2!, d!, bd!()) DECLARE SUB databaseprocessing (inputshort!, inputlong!, etype!(), ex!(), ey!()) DECLARE SUB buildingseg (posx!, posy!) DECLARE SUB levl (lev, ex(), ey(), edx(), en, etype(), posx, oldx) DECLARE SUB levr (lev!, ex!(), ey!(), edx!(), en!, etype!(), posx!, oldx!) DECLARE SUB title () DECLARE SUB enemy (posx!, posy!, ex!(), ey!(), ed!(), oldx!, oldy!, en!, el(), edy!(), da, etype()) DECLARE SUB blowup (pox!, poy!) DECLARE SUB wasoncenukked (pox!, poy!, f!) DECLARE SUB egect (px!, py!, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype()) DECLARE SUB level (lev!, ex!(), ey!(), edx!(), en!, etype()) DECLARE SUB blowitup (pox!, poy!, spdy!, spdx!, auto, da) DECLARE SUB abase (px!, py!) DECLARE SUB imnukingyouhahahaha (posx!, posy!, speed!) DECLARE SUB iamshootingyouwhitamissle (posx!, posy!, d!, size, speed) SCREEN 1: CLS : COLOR 0, 2 hs = 1 power = 10 DIM etype(100) DIM ex(100) DIM ey(100) DIM edx(100) DIM edy(100) DIM el(100) DIM ed(1) DIM bx(100) DIM by(100) DIM thrust(100) DIM obx(100) DIM oby(100) DIM thrust2(100) DIM bd(100) title ' Drawing Animation for Chopper PSET (4, 4), 3 PSET (4, 5), 3 PSET (5, 5), 3 PSET (6, 5), 3 PSET (7, 5), 3 PSET (7, 4), 3 PSET (8, 5), 3 PSET (9, 6), 3 PSET (10, 6), 3 PSET (11, 6), 3 PSET (11, 5), 3 PSET (12, 5), 3 PSET (11, 4), 3 PSET (10, 4), 3 PSET (9, 3), 3 PSET (8, 3), 3 PSET (7, 3), 3 PSET (6, 4), 3 PSET (4, 9), 3 PSET (4, 10), 3 PSET (5, 10), 3 PSET (6, 10), 3 PSET (7, 10), 3 PSET (8, 10), 3 PSET (9, 11), 3 PSET (10, 11), 3 PSET (11, 11), 3 PSET (12, 10), 3 PSET (11, 10), 3 PSET (11, 9), 3 PSET (10, 9), 3 PSET (9, 8), 3 PSET (8, 8), 3 PSET (7, 8), 3 PSET (7, 9), 3 PSET (6, 9), 3 PSET (4, 17), 3 PSET (5, 17), 3 PSET (5, 16), 3 PSET (6, 16), 3 PSET (7, 15), 3 PSET (8, 15), 3 PSET (9, 15), 3 PSET (10, 16), 3 PSET (9, 17), 3 PSET (10, 17), 3 PSET (11, 17), 3 PSET (12, 17), 3 PSET (8, 18), 3 PSET (7, 18), 3 PSET (6, 18), 3 PSET (12, 16), 3 PSET (9, 16), 3 PSET (4, 23), 3 PSET (5, 23), 3 PSET (5, 22), 3 PSET (6, 22), 3 PSET (7, 21), 3 PSET (8, 21), 3 PSET (9, 21), 3 PSET (9, 22), 3 PSET (10, 22), 3 PSET (9, 23), 3 PSET (10, 23), 3 PSET (11, 23), 3 PSET (12, 23), 3 PSET (12, 22), 3 PSET (8, 24), 3 PSET (7, 24), 3 PSET (6, 24), 3 PSET (9, 20), 3 PSET (8, 20), 3 PSET (7, 20), 3 PSET (6, 20), 3 PSET (5, 20), 3 PSET (4, 20), 3 PSET (7, 14), 3 PSET (8, 14), 3 PSET (9, 14), 3 PSET (10, 14), 3 PSET (11, 14), 3 PSET (12, 14), 3 PSET (9, 7), 3 PSET (8, 7), 3 PSET (7, 7), 3 PSET (6, 7), 3 PSET (5, 7), 3 PSET (4, 7), 3 PSET (7, 2), 3 PSET (8, 2), 3 PSET (9, 2), 3 PSET (10, 2), 3 PSET (11, 2), 3 PSET (12, 2), 3 lev = 1 'making array for chopper DIM chop1a(5) DIM chop1b(5) DIM chop2a(5) DIM chop2b(5) 'storing the chopper in memory GET (3, 2)-(13, 6), chop1a GET (3, 7)-(13, 12), chop1b GET (3, 14)-(13, 19), chop2a GET (3, 20)-(13, 25), chop2b 'drawing the man PSET (7, 96), 3 PSET (7, 97), 3 PSET (6, 97), 3 PSET (8, 97), 3 PSET (7, 98), 3 PSET (6, 99), 3 PSET (8, 99), 3 PSET (17, 96), 3 PSET (17, 97), 3 PSET (18, 97), 3 PSET (16, 97), 3 PSET (17, 98), 3 PSET (17, 99), 3 'making an array for the man DIM mana(1) DIM manb(1) 'storing the man in memory GET (6, 96)-(8, 99), mana GET (16, 96)-(18, 99), manb CLS level 1, ex!(), ey!(), edx!(), en!, etype() speed = 0: size = 20 d = 1 posx = 230: posy = 111: cs = 0: cst = .5: da = 0 begina: IF posx < 0 THEN olev = lev IF lev = 2 THEN level 1, ex!(), ey!(), edx!(), en!, etype(): posx = 280: oldx = 280: lev = 1 IF lev = 3 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 280: lev = 2: oldx = 280 REM CALL levr(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF olev = lev THEN posx = oldx ELSE current = 0 END IF END IF IF posx > 290 THEN olev = lev REM CALL levr(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF lev = 2 THEN level 3, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 3: oldx = 1 IF lev = 1 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 2: oldx = 1 inputshort = 1: inputlong = 1 CALL databaseprocessing(inputshort, inputlong, etype(), ex(), ey()) IF olev = lev THEN posx = oldx ELSE current = 0 END IF END IF IF posy < 9 THEN posy = oldy: spdy = 0 IF posy > 180 THEN posy = oldy IF d = 1 THEN PUT (posx, posy), chop1a IF d = 2 THEN PUT (posx, posy), chop2a od = d: oldx = posx: oldy = posy a$ = INKEY$ REM IF a$ = "" THEN a$ = b$ b$ = a$ SELECT CASE a$ CASE CHR$(0) + "H": spdy = spdy - hs CASE CHR$(0) + "P": spdy = spdy + hs CASE CHR$(0) + "K": spdx = spdx - hs: d = 2 CASE CHR$(0) + "M": spdx = spdx + hs: d = 1 CASE "s": LOCATE 1, 1: INPUT speed: b$ = "" CASE "S": LOCATE 1, 1: INPUT speed: b$ = "" CASE "m": CALL iamshootingyouwhitamissle(posx, posy, d, size, speed): b$ = " " CASE "M": CALL iamshootingyouwhitamissle(posx, posy, d, size, speed): b$ = " " CASE "n": CALL imnukingyouhahahaha(posx, posy, speed): b$ = " " CASE "N": CALL imnukingyouhahahaha(posx, posy, speed): b$ = " " CASE "e": egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina CASE "E": egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina CASE "a": IF auto = 1 THEN LOCATE 1, 1: PRINT "Auto Egect Off": auto = 0 ELSE LOCATE 1, 1: PRINT "Auto Egect On ": auto = 1 CASE "A": IF auto = 1 THEN LOCATE 1, 1: PRINT "Auto Egect Off": auto = 0 ELSE LOCATE 1, 1: PRINT "Auto Egect On ": auto = 1 CASE "B": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, 0, bd(): posx = oldx: posy = oldy CASE "b": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, 0, bd(): posx = oldx: posy = oldy CASE " ": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), power, d, bd(): posx = oldx: posy = oldy END SELECT CALL bomb(thrust(), bx(), by(), 0, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, d, bd()) IF POINT(posx, posy) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx + 10, posy) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx, posy + 5) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx + 10, posy + 5) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF da > 0 THEN spdy = spdy + da / 10 posy = posy + spdy posx = posx + spdx RANDOMIZE TIMER CALL enemy(posx!, posy!, ex!(), ey!(), ed!(), oldx!, oldy!, en!, el(), edy!(), da, etype()) FOR a = 1 TO speed: NEXT a: IF cs > 30 THEN SOUND cs, cst IF od = 1 THEN PUT (oldx, oldy), chop1a IF od = 2 THEN PUT (oldx, oldy), chop2a IF posx < 0 THEN olev = lev IF lev = 2 THEN level 1, ex!(), ey!(), edx!(), en!, etype(): posx = 280: oldx = 280: lev = 1 IF lev = 3 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 280: lev = 2: oldx = 280 REM CALL levl(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF olev = lev THEN posx = oldx ELSE current = 0 END IF END IF IF posx > 290 THEN olev = lev REM CALL levr(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF lev = 2 THEN level 3, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 3: oldx = 1 IF lev = 1 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 2: oldx = 1 IF olev = lev THEN posx = oldx IF olev = lev THEN posx = oldx ELSE current = 0 END IF END IF IF posy < 9 THEN posy = oldy: spdy = 0 IF posy > 180 THEN posy = oldy IF d = 1 THEN PUT (posx, posy), chop1b IF d = 2 THEN PUT (posx, posy), chop2b od = d: oldx = posx: oldy = posy REM LOCATE 1, 1: PRINT "Speed="; USING "###"; spdx + spdy; : PRINT " Miles per Hour" a$ = INKEY$ REM IF a$ = "" THEN a$ = b$ b$ = a$ SELECT CASE a$ CASE CHR$(0) + "H": spdy = spdy - hs CASE CHR$(0) + "P": spdy = spdy + hs CASE CHR$(0) + "K": spdx = spdx - hs: d = 2 CASE CHR$(0) + "M": spdx = spdx + hs: d = 1 CASE "m": CALL iamshootingyouwhitamissle(posx, posy, d, size, speed): b$ = " " CASE "M": CALL iamshootingyouwhitamissle(posx, posy, d, size, speed): b$ = " " CASE "n": CALL imnukingyouhahahaha(posx, posy, speed): b$ = " " CASE "N": CALL imnukingyouhahahaha(posx, posy, speed): b$ = " " CASE "e": egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina CASE "E": egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina CASE "a": IF auto = 1 THEN LOCATE 1, 1: PRINT "Auto Egect Off": auto = 0 ELSE LOCATE 1, 1: PRINT "Auto Egect On ": auto = 1 CASE "A": IF auto = 1 THEN LOCATE 1, 1: PRINT "Auto Egect Off": auto = 0 ELSE LOCATE 1, 1: PRINT "Auto Egect On ": auto = 1 CASE "B": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, 0, bd(): posx = oldx: posy = oldy CASE "b": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, 0, bd(): posx = oldx: posy = oldy CASE " ": bomb thrust(), bx(), by(), 1, current, posx, posy + 6, 0, obx(), oby(), thrust2(), power, d, bd(): posx = oldx: posy = oldy END SELECT CALL bomb(thrust(), bx(), by(), 0, current, posx, posy + 6, 0, obx(), oby(), thrust2(), 0, d, bd()) IF POINT(posx, posy) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx + 10, posy) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx, posy + 5) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF POINT(posx + 10, posy + 5) = 0 THEN v = v ELSE blowitup posx, posy, spdx, spdy, auto, da: IF auto = 1 AND da = 3 THEN egect posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype(): spdx = 0: spdy = 0: GOTO begina IF da > 0 THEN spdy = spdy + da / 10 posy = posy + spdy posx = posx + spdx c$ = a$ CALL enemy(posx!, posy!, ex!(), ey!(), edx!(), oldx!, oldy!, en!, el(), edy!(), da, etype()) SOUND 150, .2 FOR a = 1 TO speed: NEXT a: IF cs > 30 THEN SOUND cs, cst LOCATE 22, 20: PRINT "Chopper:"; IF da = 0 THEN PRINT "Perfect" IF da = 1 THEN PRINT "Bruhion" IF da = 2 THEN PRINT "Junk " IF od = 1 THEN PUT (oldx, oldy), chop1b IF od = 2 THEN PUT (oldx, oldy), chop2b GOTO begina SUB abase (px, py) px = px - 21 py = py - 56 PSET (26 + px, 56 + py), 3 LINE (26 + px, 56 + py)-(39 + px, 56 + py), 3 LINE (39 + px, 56 + py)-(43 + px, 60 + py), 3 LINE (43 + px, 60 + py)-(43 + px, 66 + py), 3 LINE (21 + px, 61 + py)-(26 + px, 56 + py), 3 LINE (22 + px, 60 + py)-(22 + px, 66 + py), 3 PSET (21 + px, 61 + py), 0 LINE (22 + px, 66 + py)-(30 + px, 66 + py), 0 PSET (22 + px, 66 + py), 3 LINE (22 + px, 66 + py)-(26 + px, 70 + py), 3 LINE (39 + px, 70 + py)-(43 + px, 66 + py), 3 LINE (26 + px, 71 + py)-(26 + px, 88 + py), 3 LINE (39 + px, 71 + py)-(39 + px, 88 + py), 3 LINE (26 + px, 88 + py)-(20 + px, 90 + py), 3 PSET (39 + px, 88 + py), 3 LINE (39 + px, 87 + py)-(46 + px, 90 + py), 3 LINE (46 + px, 90 + py)-(20 + px, 90 + py), 3 PAINT (25 + px, 89 + py), 3, 3 LINE (23 + px, 60 + py)-(28 + px, 65 + py), 0, BF LINE (30 + px, 60 + py)-(35 + px, 65 + py), 0, BF LINE (37 + px, 60 + py)-(42 + px, 65 + py), 0, BF END SUB SUB blowitup (pox, poy, spdx, spdy, auto, da) IF spdy = 1 AND POINT(pox + 10, poy + 5) = 2 THEN spdy = 0: da = 0: GOTO aaa IF spdy = 0 AND POINT(pox + 10, poy + 5) = 2 THEN da = 0: GOTO aaa IF spdy = -1 AND POINT(pox + 10, poy + 5) = 2 THEN da = 0: GOTO aaa IF da = 0 THEN da = 1 spdy = -3 GOTO aaa: END IF IF da = 1 THEN da = 2 spdy = -4 GOTO aaa: END IF IF da = 2 THEN da = 3 spdy = -5 GOTO aaa: END IF IF auto = 1 THEN GOTO aba: aba: h% = -1.56 IF 2 * (spdy + spdx) + 10 < 0 THEN spdy = 3: spdx = 3 FOR a% = 1 TO 2 * (spdy + spdx) + 10 CIRCLE (pox + f%, poy + 5), a%, 2, , , h% CIRCLE (pox + f%, poy + 5), a% + 1, 1, , , h% SOUND a% + 37, .1 NEXT a% FOR a% = 2 * (spdy + spdx) + 10 TO 1 STEP -1 CIRCLE (pox + f%, poy + 5), a%, 0, , , h% SOUND a% + 37, .1 NEXT a% IF auto = 1 THEN GOTO aaa: END aaa: END SUB SUB blowup (pox, poy) co = POINT(pox, poy) k = poy x = 0 j = k aqw: x = x + 1 j = j + 1 IF POINT(pox, j) = co THEN v = v ELSE GOTO aqw2 GOTO aqw aqw2: j = j / 2 k = j FOR a% = 1 TO x * 2 CIRCLE (pox, poy), a%, 2 SOUND x + 37, .1 NEXT a% FOR a% = x * 2 TO 1 STEP -1 CIRCLE (pox, poy), a%, 0 SOUND x + 37, .1 NEXT a% LOCATE 1, 1: PRINT "Good Base Destroyed" END SUB SUB bomb (thrust(), bx(), by(), new, current, posx, posy, t, obx(), oby(), thrust2(), t2, d, bd()) IF new = 1 THEN IF current < 1 THEN current = 1 bx(current) = posx by(current) = posy thrust(current) = t thrust2(current) = t2 bd(current) = d current = current + 1 GOTO start END IF shotsimstart: FOR h = 1 TO current - 1 thrust(h) = thrust(h) - RND thrust2(h) = thrust2(h) - RND by(h) = by(h) - thrust(h) IF bd(h) = 1 THEN IF thrust2(h) > 0 THEN bx(h) = bx(h) + thrust2(h) IF bd(h) = 2 THEN IF thrust2(h) > 0 THEN bx(h) = bx(h) - thrust2(h) PSET (obx(h), oby(h)), 0 IF POINT(bx(h), by(h)) = 0 THEN v = v ELSE GOSUB explosion: GOTO start PSET (bx(h), by(h)), 2 obx(h) = bx(h): oby(h) = by(h) IF by(h) > 200 THEN GOTO start GOTO jh explosion: FOR a = 1 TO 10 CIRCLE (bx(h), by(h)), a, 2 CIRCLE (bx(h) + 1, by(h) + 1), a, 3 SOUND 37 + a * 5, .1 NEXT a FOR a = 1 TO 10 CIRCLE (bx(h), by(h)), a, 0 CIRCLE (bx(h) + 1, by(h) + 1), a, 0 NEXT a PSET (bx(h), by(h)), 0 FOR v = 1 TO current - 1 bx(h) = bx(current - 1) by(h) = by(current - 1) obx(h) = obx(current - 1) oby(h) = oby(current - 1) thrust2(h) = thrust2(current - 1) thrust(h) = thrust(current - 1) bd(h) = bd(current - 1) NEXT v current = current - 1 RETURN jh: NEXT h start: END SUB SUB buildingseg (posx, posy) LINE (11 - 11 + posx, 34 - 34 + posy)-(28 - 11 + posx, 34 - 34 + posy), 3 LINE (11 - 11 + posx, 35 - 34 + posy)-(28 - 11 + posx, 35 - 34 + posy), 3 LINE (11 - 11 + posx, 36 - 34 + posy)-(28 - 11 + posx, 36 - 34 + posy), 3 LINE (11 - 11 + posx, 37 - 34 + posy)-(13 - 11 + posx, 37 - 34 + posy), 3 PSET (14 - 11 + posx, 37 - 34 + posy), 2 PSET (15 - 11 + posx, 37 - 34 + posy), 2 PSET (16 - 11 + posx, 37 - 34 + posy), 2 PSET (17 - 11 + posx, 37 - 34 + posy), 2 PSET (18 - 11 + posx, 37 - 34 + posy), 3 PSET (19 - 11 + posx, 37 - 34 + posy), 3 PSET (20 - 11 + posx, 37 - 34 + posy), 3 PSET (21 - 11 + posx, 37 - 34 + posy), 2 PSET (22 - 11 + posx, 37 - 34 + posy), 2 PSET (23 - 11 + posx, 37 - 34 + posy), 2 PSET (24 - 11 + posx, 37 - 34 + posy), 2 PSET (25 - 11 + posx, 37 - 34 + posy), 3 PSET (26 - 11 + posx, 37 - 34 + posy), 3 PSET (27 - 11 + posx, 37 - 34 + posy), 3 PSET (28 - 11 + posx, 36 - 34 + posy), 0 PSET (28 - 11 + posx, 35 - 34 + posy), 0 PSET (28 - 11 + posx, 34 - 34 + posy), 0 PSET (14 - 11 + posx, 38 - 34 + posy), 2 PSET (15 - 11 + posx, 38 - 34 + posy), 2 PSET (16 - 11 + posx, 38 - 34 + posy), 2 PSET (17 - 11 + posx, 38 - 34 + posy), 2 PSET (22 - 11 + posx, 38 - 34 + posy), 2 PSET (23 - 11 + posx, 38 - 34 + posy), 2 PSET (24 - 11 + posx, 38 - 34 + posy), 2 PSET (21 - 11 + posx, 38 - 34 + posy), 2 PSET (14 - 11 + posx, 39 - 34 + posy), 2 PSET (15 - 11 + posx, 39 - 34 + posy), 2 PSET (21 - 11 + posx, 39 - 34 + posy), 2 PSET (22 - 11 + posx, 39 - 34 + posy), 2 PSET (23 - 11 + posx, 39 - 34 + posy), 2 PSET (24 - 11 + posx, 39 - 34 + posy), 2 PSET (21 - 11 + posx, 40 - 34 + posy), 2 PSET (22 - 11 + posx, 40 - 34 + posy), 2 PSET (23 - 11 + posx, 40 - 34 + posy), 2 PSET (24 - 11 + posx, 40 - 34 + posy), 2 PSET (14 - 11 + posx, 40 - 34 + posy), 2 PSET (15 - 11 + posx, 40 - 34 + posy), 2 PSET (16 - 11 + posx, 40 - 34 + posy), 2 PSET (17 - 11 + posx, 40 - 34 + posy), 2 PSET (17 - 11 + posx, 39 - 34 + posy), 2 PSET (16 - 11 + posx, 39 - 34 + posy), 2 PSET (11 - 11 + posx, 38 - 34 + posy), 3 PSET (12 - 11 + posx, 38 - 34 + posy), 3 PSET (13 - 11 + posx, 38 - 34 + posy), 3 PSET (11 - 11 + posx, 39 - 34 + posy), 3 PSET (12 - 11 + posx, 39 - 34 + posy), 3 PSET (13 - 11 + posx, 39 - 34 + posy), 3 PSET (11 - 11 + posx, 40 - 34 + posy), 3 PSET (12 - 11 + posx, 40 - 34 + posy), 3 PSET (13 - 11 + posx, 40 - 34 + posy), 3 PSET (18 - 11 + posx, 40 - 34 + posy), 3 PSET (19 - 11 + posx, 40 - 34 + posy), 3 PSET (19 - 11 + posx, 39 - 34 + posy), 3 PSET (18 - 11 + posx, 39 - 34 + posy), 3 PSET (18 - 11 + posx, 38 - 34 + posy), 3 PSET (19 - 11 + posx, 38 - 34 + posy), 3 PSET (20 - 11 + posx, 40 - 34 + posy), 3 PSET (20 - 11 + posx, 39 - 34 + posy), 3 PSET (20 - 11 + posx, 38 - 34 + posy), 3 PSET (25 - 11 + posx, 38 - 34 + posy), 3 PSET (26 - 11 + posx, 38 - 34 + posy), 3 PSET (27 - 11 + posx, 38 - 34 + posy), 3 PSET (25 - 11 + posx, 39 - 34 + posy), 3 PSET (26 - 11 + posx, 39 - 34 + posy), 3 PSET (27 - 11 + posx, 39 - 34 + posy), 3 PSET (25 - 11 + posx, 40 - 34 + posy), 3 PSET (26 - 11 + posx, 40 - 34 + posy), 3 PSET (27 - 11 + posx, 40 - 34 + posy), 3 LINE (11 - 11 + posx, 41 - 34 + posy)-(27 - 11 + posx, 41 - 34 + posy), 3 LINE (11 - 11 + posx, 42 - 34 + posy)-(27 - 11 + posx, 42 - 34 + posy), 3 LINE (11 - 11 + posx, 43 - 34 + posy)-(27 - 11 + posx, 43 - 34 + posy), 3 END SUB SUB databaseprocessing (inputshort, inputlong, etype(), ex(), ey()) GOTO qho CLOSE OPEN "levchop.dat" FOR RANDOM AS #1 REM ********** Section I - Looking it up in the short reference ************ REM GET #1, inputshort, reference REM IF inputshort = 100 THEN LOCATE 1, 1: PRINT "Sorry. No more info in the Game Map.": GOTO qho reference = inputshort REM ********** Section II - Looking it up in the long reference ************ GET #1, reference * 100 + 100 + inputlong, location REM ********** Section III - Retrieving Information ************************ bogalish: GET #1, location, info1$ IF info1$ = "Û" THEN GOTO qho location = location + 1 IF info1$ = CHR$(1) THEN co = 1: GOTO doline IF info1$ = CHR$(2) THEN co = 2: GOTO doline IF info1$ = CHR$(3) THEN co = 3: GOTO doline IF info1$ = CHR$(4) THEN co = 0: GOTO dodot IF info1$ = CHR$(5) THEN co = 1: GOTO dodot IF info1$ = CHR$(6) THEN co = 2: GOTO dodot IF info1$ = CHR$(7) THEN co = 3: GOTO dodot IF info1$ = CHR$(8) THEN co = 0: GOTO docircle IF info1$ = CHR$(9) THEN co = 1: GOTO docircle IF info1$ = CHR$(10) THEN co = 2: GOTO docircle IF info1$ = CHR$(11) THEN co = 3: GOTO docircle REM IF info1$ = CHR$(15) THEN GOTO dobuildingseg GOTO doenemy REM ********** Makes a line on the Screen ********************************** doline: GET #1, location, info2$: location = location + 1 GET #1, location, info3$: location = location + 1 GET #1, location, info4$: location = location + 1 GET #1, location, info5$: location = location + 1 GET #1, location, info6$: location = location + 1 GET #1, location, info7$: location = location + 1 x1 = ASC(info2$) x1b = ASC(info3$) y1 = ASC(info4$) x1 = ASC(info5$) x1b = ASC(info6$) y2 = ASC(info7$) LINE (x1 + x1b, y1)-(x2 + x2b, y2), co GOTO bogalish REM ********** Makes a dot on the Screen *********************************** dodot: GET #1, location, info2$: location = location + 1 GET #1, location, info3$: location = location + 1 GET #1, location, info4$: location = location + 1 x = ASC(info2$) xb = ASC(info3$) y = ASC(info4$) PSET (x + xb, y), co GOTO bogalish REM ********** Makes a circle on the Screen ******************************** docircle: GET #1, location, info2$: location = location + 1 GET #1, location, info3$: location = location + 1 GET #1, location, info4$: location = location + 1 GET #1, location, info5$: location = location + 1 x = ASC(info2$) xb = ASC(info3$) y = ASC(info4$) siz = ASC(info5$) CIRCLE (x + xb, y), co, siz GOTO bogalish REM ********** Tells the computer to make an enemy ************************* doenemy: GET #1, location, info2$: location = location + 1 GET #1, location, info3$: location = location + 1 GET #1, location, info4$: location = location + 1 GET #1, location, info5$: location = location + 1 GET #1, location, info6$: location = location + 1 x = ASC(info2$) xb = ASC(info3$) y = ASC(info4$) et = ASC(info5$) en = ASC(info6$) ex(en) = x + xb ey(en) = y etype(en) = et GOTO bogalish qho: CLOSE END SUB SUB egect (posx, posy, mana(), manb(), speed, lev, da, ex!(), ey!(), edx!(), en!, etype()) FOR a = 1 TO 10 CIRCLE (posx, posy), a, 2: SOUND a * 37, .2 CIRCLE (posx, posy), a, 0 NEXT a FOR a = 1 TO 10 CIRCLE (posx + 1, posy), a, 2: SOUND a * 37, .2 CIRCLE (posx + 1, posy), a, 0 NEXT a d = 1 md = 1 loopstart: IF posx < 0 THEN olev = lev IF lev = 2 THEN level 1, ex!(), ey!(), edx!(), en!, etype(): posx = 300: oldx = 280: lev = 1 IF lev = 3 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 300: lev = 2: oldx = 280 REM CALL levl(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF olev = lev THEN posx = oldx END IF IF posx > 310 THEN olev = lev REM CALL levr(lev, ex(), ey(), edx(), en, etype(), posx, oldx) IF lev = 2 THEN level 3, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 3: oldx = 1 IF lev = 1 THEN level 2, ex!(), ey!(), edx!(), en!, etype(): posx = 1: lev = 2: oldx = 1 IF olev = lev THEN posx = oldx END IF IF posy < 9 THEN posy = oldy: spdy = 0 IF posy > 190 THEN posy = oldy: GOTO lk IF d = 1 THEN PUT (posx, posy), mana IF d = 2 THEN PUT (posx, posy), manb od = d oldx = posx: oldy = posy a$ = INKEY$ IF POINT(posx, posy + 5) = 0 THEN GOTO asq CALL enemy(posx!, posy!, ex!(), ey!(), ey!(), oldx!, oldy!, en!, ey(), ey!(), da, etype()) SELECT CASE a$ CASE CHR$(0) + "H": jump = 1 CASE CHR$(0) + "K": spdx = spdx - 4: md = 2 CASE CHR$(0) + "M": spdx = spdx + 4: md = 1 CASE "x": GOTO lk CASE "X": GOTO lk CASE "m": IF md = 2 THEN hg = 0: CALL iamshootingyouwhitamissle(posx + hg, posy - 5, md, 3, 0) ELSE hg = 3: CALL iamshootingyouwhitamissle(posx + hg, posy - 5, md, 3, 0) CASE "M": IF md = 2 THEN hg = 0: CALL iamshootingyouwhitamissle(posx + hg, posy - 5, md, 3, 0) ELSE hg = 3: CALL iamshootingyouwhitamissle(posx + hg, posy - 5, md, 3, 0) END SELECT IF spdx < 0 THEN posx = posx - 1: IF d = 1 THEN d = 2 ELSE IF d = 2 THEN d = 1 IF spdx > 0 THEN posx = posx + 1: IF d = 1 THEN d = 2 ELSE IF d = 2 THEN d = 1 IF jump = 1 THEN posy = posy - 10 jump = 0 asq: IF POINT(posx, posy + 5) = 1 THEN posy = posy - 1: IF d = 1 THEN d = 2 ELSE IF d = 2 THEN d = 1 IF POINT(posx, posy + 5) = 0 THEN posy = posy + 1: IF d = 1 THEN d = 2 ELSE IF d = 2 THEN d = 1 IF od = 1 THEN PUT (oldx, oldy), mana IF od = 2 THEN PUT (oldx, oldy), manb IF spdx < 0 THEN spdx = spdx + 1 IF spdx > 0 THEN spdx = spdx - 1 GOTO loopstart END lk: IF d = 1 THEN PUT (oldx, oldy), mana ELSE PUT (oldx, oldy), manb posy = posy - 20 da = 0 END SUB SUB enemy (posx!, posy!, ex!(), ey!(), edx(), oldx!, oldy!, en!, el(), edy!(), da, etype()) FOR c = 1 TO en IF etype(c) = 2 THEN GOTO enemy2 IF etype(c) = 3 THEN GOTO enemy3 ox = ex(c): oy = ey(c) IF ex(c) < posx THEN ex(c) = ex(c) + 1 IF ex(c) > posx THEN ex(c) = ex(c) - 1 IF ey(c) < posy THEN ey(c) = ey(c) + 1 IF ey(c) > posy THEN ey(c) = ey(c) - 1 IF POINT(ex(c), ey(c)) = 0 THEN v = v ELSE ex(c) = ox: ey(c) = oy PSET (ox, oy), 0 PSET (ex(c), ey(c)), 2 backintheloop: NEXT c GOTO eendnow enemy2: ox = ex(c): oy = ey(c) IF ex(c) < posx THEN ex(c) = ex(c) + 1 IF ex(c) > posx THEN ex(c) = ex(c) - 1 IF POINT(ex(c), ey(c) + 1) = 0 THEN ey(c) = ey(c) + 1 IF POINT(ex(c), ey(c)) = 1 THEN ey(c) = ey(c) - 1 IF POINT(ex(c), ey(c)) = 0 THEN v = v ELSE GOTO brq PSET (ox, oy), 0 PSET (ex(c), ey(c)), 2 brq: GOTO backintheloop enemy3: ox = ex(c): oy = ey(c) IF ex(c) < posx THEN ex(c) = ex(c) + 5 IF ex(c) > posx THEN ex(c) = ex(c) - 5 IF ey(c) < posy THEN ey(c) = ey(c) + 5 IF ey(c) > posy THEN ey(c) = ey(c) - 5 IF POINT(ex(c), ey(c)) = 0 THEN v = v ELSE ex(c) = ox: ey(c) = oy PSET (ox, oy), 0 PSET (ex(c), ey(c)), 2 CIRCLE (ox, oy), 10, 0 CIRCLE (ex(c), ey(c)), 10, 3 GOTO backintheloop eendnow: END SUB SUB iamshootingyouwhitamissle (posx, posy, d, size, speed) asa: IF d = 2 THEN GOTO asa2 f% = 0 jkla: f% = f% + 1 IF POINT(posx + f% + 1, posy + 5) = 0 THEN v% = posx + f% + 1 ELSE GOTO jklb PSET (posx + f%, posy + 5), 1 GOTO jkla: jklb: FOR a% = posx + f% + 1 TO posx STEP -1 PSET (a%, posy + 5), 0 NEXT a% h% = -1.56 IF POINT(posx + f% + 5, posy + 5) = 3 THEN blowup posx + f% + 5, posy + 5: GOTO al FOR a% = 1 TO 10 CIRCLE (posx + f%, posy + 5), a%, 2, , , h% CIRCLE (posx + f%, posy + 5), a% + 1, 1, , , h% NEXT a% FOR a% = 11 TO 1 STEP -1 CIRCLE (posx + f%, posy + 5), a%, 0, , , h% NEXT a% GOTO al asa2: f% = 0 jkla2: f% = f% + 1 IF POINT(posx - f% - 1, posy + 5) = 0 THEN v% = posx - f% - 1 ELSE GOTO jklb2 PSET (posx - f%, posy + 5), 1 GOTO jkla2: a% = 0 jklb2: a% = 0 FOR a% = posx - f% - 1 TO posx PSET (a%, posy + 5), 0 NEXT a% h% = -1.56 FOR a% = 1 TO 10 STEP 2 CIRCLE (posx - f%, posy + 5), a%, 2, , , h% CIRCLE (posx - f%, posy + 5), a% + 1, 1, , , h% NEXT a% FOR a% = 11 TO 1 STEP -1 CIRCLE (posx - f%, posy + 5), a%, 0, , , h% NEXT a% al: END SUB SUB imnukingyouhahahaha (posx, posy, speed) jka: IF POINT(posx, posy + 1 + f) = 0 THEN GOTO jkaaaaa GOTO aj jkaaaaa: PSET (posx, posy + f), 1 PSET (posx, posy + 1 + f), 1 PSET (posx, posy + f), 0 PSET (posx, posy + 1 + f), 0 f = f + 1 GOTO jka aj: FOR a = 1 TO 80 + x STEP 2 CIRCLE (posx, posy + f), a, 2: SOUND a * 37, .1 CIRCLE (posx, posy + f), a, 0 CIRCLE (posx + 1, posy + f + 1), a, 2: SOUND a * 37, .1 CIRCLE (posx + 1, posy + f + 1), a, 0 CIRCLE (posx + 2, posy + f + 1 + 1), a, 2: SOUND a * 37, .1 CIRCLE (posx + 2, posy + f + 1 + 1), a, 0 CIRCLE (posx - 1, posy + f + 1 + 1 + 1), a, 2: SOUND a * 37, .1 CIRCLE (posx - 1, posy + f + 1 + 1 + 1), a, 0 CIRCLE (posx - 2, posy + f + 1 + 1 + 1 + 1), a, 2: SOUND a * 37, .1 CIRCLE (posx - 2, posy + f + 1 + 1 + 1 + 1), a, 0 NEXT a END SUB SUB level (lev, ex!(), ey!(), edx!(), en!, etype()) SELECT CASE lev CASE 1 SCREEN 1: CLS : COLOR 0, 2 LINE (0, 40)-(34, 135), 1 LINE (35, 135)-(56, 141), 1 LINE (56, 141)-(104, 141), 1 LINE (104, 141)-(121, 137), 1 LINE (122, 137)-(139, 99), 1 LINE (139, 99)-(165, 135), 1 LINE (160, 127)-(192, 98), 1 LINE (192, 98)-(211, 122), 1 LINE (211, 119)-(305, 117), 1 PSET (138, 100), 1 PSET (139, 100), 1 PSET (224, 116), 2 PSET (224, 117), 2 PSET (225, 117), 2 PSET (226, 116), 2 PSET (225, 116), 2 PSET (224, 115), 2 PSET (225, 115), 2 PSET (224, 114), 2 PSET (226, 117), 2 PSET (227, 117), 2 PSET (228, 117), 2 PSET (229, 117), 2 PSET (230, 117), 2 LINE (231, 117)-(256, 117), 2 LINE (227, 116)-(256, 116), 2 PSET (256, 115), 2 PSET (255, 115), 2 PSET (256, 114), 2 LINE (305, 117)-(320, 117), 1 PAINT (5, 190), 1 abase 68, 106 en = 0 CASE 2 SCREEN 1: CLS LINE (0, 117)-(64, 123), 1 LINE (64, 123)-(104, 123), 1 LINE (105, 123)-(143, 75), 1 LINE (143, 75)-(163, 109), 1 LINE (163, 107)-(195, 58), 1 LINE (195, 58)-(216, 92), 1 LINE (216, 92)-(305, 57), 1 LINE (305, 57)-(320, 40), 1 buildingseg 80, 113 buildingseg 80, 103 buildingseg 80, 93 buildingseg 80, 83 buildingseg 63, 113 buildingseg 63, 103 buildingseg 63, 93 buildingseg 63, 83 PAINT (5, 190), 1 ex(1) = 64 ey(1) = 122 etype(1) = 1 ey(2) = 143 ex(2) = 74 etype(2) = 2 en = 2 CASE 3 SCREEN 1: CLS : COLOR 0, 2 LINE (0, 40)-(44, 64), 1 LINE (44, 64)-(63, 45), 1 LINE (63, 45)-(99, 93), 1 LINE (99, 93)-(99, 93), 1 LINE (99, 93)-(162, 115), 1 LINE (162, 115)-(340, 119), 1 PAINT (5, 95), 1, 1 ey(1) = 114 ex(1) = 162 etype(1) = 3 en = 1 END SELECT END SUB SUB title SCREEN 1: CLS : COLOR 0, 2 LINE (77, 33)-(101, 33), 1 LINE (78, 32)-(100, 32), 1 LINE (76, 34)-(82, 34), 1 LINE (76, 35)-(82, 35), 1 LINE (76, 36)-(82, 36), 1 LINE (76, 37)-(82, 37), 1 LINE (76, 38)-(82, 38), 1 LINE (76, 39)-(82, 39), 1 LINE (76, 40)-(82, 40), 1 LINE (76, 41)-(82, 41), 1 LINE (77, 42)-(101, 42), 1 LINE (78, 43)-(100, 43), 1 LINE (88, 52)-(114, 52), 1 LINE (89, 51)-(113, 51), 1 LINE (87, 53)-(94, 53), 1 LINE (87, 54)-(94, 54), 1 LINE (87, 55)-(94, 55), 1 LINE (87, 56)-(94, 56), 1 LINE (87, 57)-(94, 57), 1 LINE (87, 58)-(94, 58), 1 LINE (87, 59)-(94, 59), 1 LINE (87, 60)-(94, 60), 1 LINE (88, 61)-(113, 61), 1 LINE (89, 62)-(112, 62), 1 LOCATE 6, 14: PRINT "hopper" LOCATE 8, 16: PRINT "ommando-X" LOCATE 10, 10: PRINT "Demo Version" LOCATE 14, 15: PRINT "By: Josh Ferguson" DO: LOOP WHILE INKEY$ = "" END SUB SUB wasoncenukked (pox, poy, f) FOR a = 1 TO 80 + x STEP 2 CIRCLE (pox, posy + f), a, 0 CIRCLE (pox + 1, poy + f), a, 0 CIRCLE (pox + 2, poy + f), a, 0 CIRCLE (pox - 1, poy + f), a, 0 CIRCLE (pox - 2, poy + f), a, 0 NEXT a END SUB