'===========================================================================
' Subject: STAR TREK WARP DEMO                Date: 06-19-98 (19:52)       
'  Author: Adam Dalke                         Code: QB, QBasic, PDS        
'  Origin: jwdalke@worldnet.att.net         Packet: DEMOS.ABC
'===========================================================================
'/~~~~~~~~~~~~~~~~\ WARPDEMO.BAS, a look at work in progess on The Dark Star
'| A              | Project. A Star Trek: The Next Generation RPG of epic
'|                | proportions being created by Ace in the Hole Software Ltd.
'|                | Being as this is a demo of an unfinished program, please
'|       /\       | don't use my Enterprise graphic in your programs, this is
'|      (  )      | not public domain (at least wait until I release the whole
'|       /\       | program). This program was not created, approved, licensed,
'|                | or endorsed by any entity involved in creating or producing
'|              A | the Star Trek(R) television series or films.
'\________________/
'
'
'                      \                             /
'              --------->Press F5 to begin the demo.<---------
'                      /                             \
'
'
'
DECLARE SUB warp ()
SCREEN 12
DIM SHARED trek%(197, 35)
FOR B = 270 TO 292.5 STEP .5
        LINE (B, 240)-(B - 9.38, 260), 8
NEXT
FOR B = 173.12 TO 190 STEP .01
        LINE (B, 260)-(B + 10, 245), 8
NEXT

FOR a = 1 TO 50
        CIRCLE (320, 240), a, 7, , , -.9
NEXT
FOR a = 1 TO 60
        CIRCLE (233.12, 260), a, 7, , , -.85
NEXT
LINE (173.12, 261)-(203.12, 270), 0, BF
FOR c = 1 TO 8
        CIRCLE (203.12, 270), c, 0
NEXT
FOR c = 1 TO 8
        CIRCLE (204.12, 270), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (293.12, 260), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (294.12, 260), c, 0
NEXT
LINE (163.12, 245)-(233.12, 237.5), 7, BF
FOR a = 1 TO 3 STEP .05
        CIRCLE (163.12, 242.25), a, 7
NEXT
FOR a = 1 TO 3 STEP .05
        CIRCLE (164.12, 242.25), a, 7
NEXT
FOR a = 1 TO 10
        CIRCLE (233.12, 242.25), a, 4, , , -.7
NEXT
LINE (161.12, 242.25)-(220, 242.25), 1, B
k = 238
FOR B = 215 TO 210 STEP -1
        LINE (220, k)-(B, k), 1
        k = k + .8
NEXT
FOR B = 210 TO 215
        LINE (220, k)-(B, k), 1
        k = k + .4
NEXT
FOR d = 271 TO 369 STEP 4
        PSET (d, 240), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 243), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 237), 14
NEXT
FOR d = 176 TO 286 STEP 4
        PSET (d, 258), 14
NEXT
FOR d = 196 TO 266 STEP 4
        PSET (d, 255), 14
NEXT
FOR d = 216 TO 286 STEP 4
        PSET (d, 261), 14
NEXT
FOR d = 216 TO 272 STEP 4
        PSET (d, 264), 14
NEXT
GET (160, 235)-(370, 267), trek%
'SLEEP
CLS
DIM SHARED trek2%(197, 35)
FOR B = 270 TO 292.5 STEP .5
        LINE (B, 240)-(B - 9.38, 260), 8
NEXT
FOR B = 173.12 TO 190 STEP .01
        LINE (B, 260)-(B + 10, 245), 8
NEXT

FOR a = 1 TO 50
        CIRCLE (320, 240), a, 7, , , -.9
NEXT
FOR a = 1 TO 60
        CIRCLE (233.12, 260), a, 7, , , -.85
NEXT
LINE (173.12, 261)-(203.12, 270), 0, BF
FOR c = 1 TO 8
        CIRCLE (203.12, 270), c, 0
NEXT
FOR c = 1 TO 8
        CIRCLE (204.12, 270), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (293.12, 260), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (294.12, 260), c, 0
NEXT
LINE (163.12, 245)-(233.12, 237.5), 7, BF
FOR a = 1 TO 3 STEP .05
        CIRCLE (163.12, 242.25), a, 7
NEXT
FOR a = 1 TO 3 STEP .05
        CIRCLE (164.12, 242.25), a, 7
NEXT
FOR a = 1 TO 10
        CIRCLE (233.12, 242.25), a, 4, , , -.7
NEXT
LINE (161.12, 242.25)-(220, 242.25), 9, B
k = 238
FOR B = 215 TO 210 STEP -1
        LINE (220, k)-(B, k), 9
        k = k + .8
NEXT
FOR B = 210 TO 215
        LINE (220, k)-(B, k), 9
        k = k + .4
NEXT
FOR d = 271 TO 369 STEP 4
        PSET (d, 240), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 243), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 237), 14
NEXT
FOR d = 176 TO 286 STEP 4
        PSET (d, 258), 14
NEXT
FOR d = 196 TO 266 STEP 4
        PSET (d, 255), 14
NEXT
FOR d = 216 TO 286 STEP 4
        PSET (d, 261), 14
NEXT
FOR d = 216 TO 272 STEP 4
        PSET (d, 264), 14
NEXT
GET (160, 235)-(370, 267), trek2%
'SLEEP
CLS
DIM SHARED trek3%(197, 35)
FOR B = 270 TO 292.5 STEP .5
        LINE (B, 240)-(B - 9.38, 260), 8
NEXT
FOR B = 173.12 TO 190 STEP .01
        LINE (B, 260)-(B + 10, 245), 8
NEXT

FOR a = 1 TO 50
        CIRCLE (320, 240), a, 7, , , -.9
NEXT
FOR a = 1 TO 60
        CIRCLE (233.12, 260), a, 7, , , -.85
NEXT
LINE (173.12, 261)-(203.12, 270), 0, BF
FOR c = 1 TO 8
        CIRCLE (203.12, 270), c, 0
NEXT
FOR c = 1 TO 8
        CIRCLE (204.12, 270), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (293.12, 260), c, 0
NEXT
FOR c = 1 TO 5
        CIRCLE (294.12, 260), c, 0
NEXT
LINE (163.12, 245)-(233.12, 237.5), 7, BF
FOR a = 1 TO 3 STEP .05
        CIRCLE (163.12, 242.25), a, 7
NEXT
FOR a = 1 TO 3 STEP .05
        CIRCLE (164.12, 242.25), a, 7
NEXT
FOR a = 1 TO 10
        CIRCLE (233.12, 242.25), a, 4, , , -.7
NEXT
LINE (161.12, 242.25)-(220, 242.25), 11, B
k = 238
FOR B = 215 TO 210 STEP -1
        LINE (220, k)-(B, k), 11
        k = k + .8
NEXT
FOR B = 210 TO 215
        LINE (220, k)-(B, k), 11
        k = k + .4
NEXT
FOR d = 271 TO 369 STEP 4
        PSET (d, 240), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 243), 14
NEXT
FOR d = 291 TO 349 STEP 4
        PSET (d, 237), 14
NEXT
FOR d = 176 TO 286 STEP 4
        PSET (d, 258), 14
NEXT
FOR d = 196 TO 266 STEP 4
        PSET (d, 255), 14
NEXT
FOR d = 216 TO 286 STEP 4
        PSET (d, 261), 14
NEXT
FOR d = 216 TO 272 STEP 4
        PSET (d, 264), 14
NEXT
GET (160, 235)-(370, 267), trek3%
CLS
CALL warp

DEFINT A-Z
SUB warp
n = 150       'number of stars
DIM y(n)
DIM x(n)
DIM s(n)
DIM c(n)
DIM x1(n)
DIM y1(n)
DIM c1(n)
DIM s1(n)
RANDOMIZE TIMER
CLS
FOR i = 1 TO n
x(i) = INT(RND * 640 + 1)
y(i) = INT(RND * 480 + 1)
s(i) = INT(RND * 5 + 1)
s1(i) = INT(RND * 5 + 1)
x1(i) = INT(RND * 640 + 1)
y1(i) = INT(RND * 480 + 1)
IF s1(i) <= 3 THEN c1(i) = 8
IF s1(i) = 4 THEN c1(i) = 7
IF s1(i) = 5 THEN c1(i) = 15
IF s(i) <= 3 THEN c(i) = 8
IF s(i) = 4 THEN c(i) = 7
IF s(i) = 5 THEN c(i) = 15
NEXT i
secondprise = 1
DO
FOR i = 1 TO n
PSET (x(i), y(i)), 0
PSET (x1(i), y1(i)), 0
x(i) = x(i) - s(i)                 'change + to - to go in opposite direction
x1(i) = x1(i) - s1(i)              'change + to - if you change the thing above
IF x(i) <= 1 THEN GOSUB 22          'change < to > if you change the thing above
IF x1(i) >= 640 THEN GOSUB 33       'change > to < if you change the thing above
PSET (x(i), y(i)), c(i)
PSET (x1(i), y1(i)), c1(i)
a$ = INKEY$: IF a$ <> "" THEN END
NEXT i
IF secondprise > 425 THEN
LINE (secondprise - 22, 200)-(secondprise + 212, 236), 0, BF
LINE (630, 147)-(630, 257), 11
LINE (secondprise - 223, 207)-(640, 207), 11
SLEEP 1
LINE (630, 147)-(630, 257), 0
LINE (177, 207)-(640, 207), 0
EXIT SUB
END IF
IF secondprise < 100 THEN
LINE (secondprise - 1, 200)-(secondprise + 212, 236), 0, BF
PUT (secondprise, 200), trek%
speed = 1
secondprise = secondprise + speed
END IF
IF secondprise >= 100 THEN
LINE (secondprise - 2, 200)-(secondprise + 212, 236), 0, BF
PUT (secondprise, 200), trek2%
speed = 2
secondprise = secondprise + speed
END IF
IF secondprise = 200 THEN warped = 1
IF warped = 1 THEN
LINE (secondprise - 22, 200)-(secondprise + 212, 236), 0, BF
PUT (secondprise, 200), trek3%
LINE (secondprise + 1, 207)-(secondprise - 23, 207), 11
speed = 20
secondprise = secondprise + speed
END IF
LOOP
22 x(i) = 640
y(i) = INT(RND * 480 + 1)
RETURN
33 x1(i) = 1
y1(i) = INT(RND * 480 + 1)
RETURN

END SUB
