'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' 3D Vector tunnel demo, released in September 2001  
' by Shockwave of fanatix..
'
' Only gay people use other's code without giving credit
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

open window 400,400
rings=10
scx=0
   dim x(80)
   dim y(80)
   dim z(80)
   dim tx(80)
   dim ty(80)
   dim orz(80)

   ox=320
   oy=250
   oz=0
   pp=1

t$="                                                                   "

t$=t$+"SHOCKWAVE PRESENTS SOME NEW PSYCHEDILIA FOR YOU!! "
t$=t$+"I HAD THE IDEA FOR THIS STRETCHY VECTOR TUNNEL "
t$=t$+"WHEN I DID THE DOT TUNNEL DEMO... UNFORTUNATELY "
t$=t$+"IT USES UP TOO MUCH PROCESSOR TIME TO HAVE ANY "
t$=t$+"OTHER EFFECTS HAPPENING (SORRY!) IF YOU WANT TO "
t$=t$+"CONTACT ME:   NICKSIMPSON007@AOL.COM   WILL DO THE"
t$=t$+" TRICK, OR YOU CAN CHECK ME OUT ON THE FORUMS "
t$=t$+"AT THE AWESOME YABASIC SITE :   WWW.YABASIC.CO.UK "
t$=t$+"GREETINGS TO THESE (IN NO SPECIAL ORDER) : VICKI, "
t$=t$+"PAUL DUNLOP, ANSEL LAWRENCE, GERRY SQUIRE, JASON "
t$=t$+"SEEMUNGAL, ADAM LAY, MARK GALE, MASTER TONBERY, "
t$=t$+"PHILIP, SEANY BLEWOG, THE CAPTAIN KIRK DEEKS "
t$=t$+"AND ALL MY FRIENDS... IF I MISSED YOU I'M SORRY!! "
t$=t$+"THAT'S ALL FOLKS!!                 "

for a=1 to 80
read x(a),y(a),z(a)
orz(a)=z(a)
next a

label loop
    setdispbuf dw
    dw=1-dw
    setdrawbuf dw
    clear window
        gosub draw
        gosub printdetail
goto loop


label printdetail
setrgb 1,70,115,70
fill rectangle 40,50 to 600,70
SETRGB 1,0,0,0
text 42,66,"TUNNEL VISION DEMO CODED BY SHOCKWAVE/FANATIX (C) 2001!"
SETRGB 1,255,255,255
text 42,64,"TUNNEL VISION DEMO CODED BY SHOCKWAVE/FANATIX (C) 2001!"
text scx,480,mid$(t$,p,68)
 scx=scx-2
 if scx<-10 p=p+1
 if scx<-10 scx=scx+10
 if p>len(t$) p=0
return

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'Draw the tunnel object!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

label draw
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Transform Tunnel object
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  mc=mc+1
  mc2=mc2+1
  mmm=80+80*sin(mc2/15)

for a=1 to 58
    sofx=(80*sin((a+mc)/15))+ox
    sofy=(mmm*cos((a+mc)/15))+oy
    tx(a)=(x(a)*(z(a)*z(a))/1.5)+sofx
    ty(a)=(y(a)*(z(a)*z(a))/1.5)+sofy 
    z(a)=z(a)+.1
next a

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Draw tunnel object!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for a=5 to 44 step 4
 

 setrgb 1,4*z(a),4*z(a),10*z(a)
fill triangle tx(a),ty(a) to tx(a+1),ty(a+1) to tx(a+5),ty(a+5)
fill triangle tx(a),ty(a) to tx(a+4),ty(a+4) to tx(a+5),ty(a+5)
fill triangle tx(a+2),ty(a+2) to tx(a+3),ty(a+3) to tx(a+7),ty(a+7)
fill triangle tx(a+2),ty(a+2) to tx(a+6),ty(a+6) to tx(a+7),ty(a+7)


setrgb 1,15*z(a),4*z(a),4*z(a)
fill triangle tx(a+1),ty(a+1) to tx(a+6),ty(a+6) to tx(a+5),ty(a+5)
fill triangle tx(a+1),ty(a+1) to tx(a+2),ty(a+2) to tx(a+6),ty(a+6)
fill triangle tx(a),ty(a) to tx(a+7),ty(a+7) to tx(a+4),ty(a+4)
fill triangle tx(a),ty(a) to tx(a+7),ty(a+7) to tx(a+3),ty(a+3)

next a

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Move into screen!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if z(1)>=orz(1)+1 then 
mc=mc-4
for a=1 to 58
  z(a)=orz(a)+.1
next a
end if 

return

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'                      Object Data!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data -5,-5,0, 5,-5,0, 5,5,0, -5,5,0
data -5,-5,1, 5,-5,1, 5,5,1, -5,5,1
data -5,-5,2, 5,-5,2, 5,5,2, -5,5,2
data -5,-5,3, 5,-5,3, 5,5,3, -5,5,3
data -5,-5,4, 5,-5,4, 5,5,4, -5,5,4
data -5,-5,5, 5,-5,5, 5,5,5, -5,5,5
data -5,-5,6, 5,-5,6, 5,5,6, -5,5,6
data -5,-5,7, 5,-5,7, 5,5,7, -5,5,7
data -5,-5,8, 5,-5,8, 5,5,8, -5,5,8
data -5,-5,9, 5,-5,9, 5,5,9, -5,5,9
data -5,-5,10, 5,-5,10, 5,5,10, -5,5,10
data -5,-5,11, 5,-5,11, 5,5,11, -5,5,11
data -5,-5,12, 5,-5,12, 5,5,12, -5,5,12
data -5,-5,13, 5,-5,13, 5,5,13, -5,5,13
data -5,-5,14, 5,-5,14, 5,5,14, -5,5,14
data -5,-5,15, 5,-5,15, 5,5,15, -5,5,15
data -5,-5,16, 5,-5,16, 5,5,16, -5,5,16
data -5,-5,17, 5,-5,17, 5,5,17, -5,5,17
data -5,-5,18, 5,-5,18, 5,5,18, -5,5,18
data -5,-5,19, 5,-5,19, 5,5,19, -5,5,19




