home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Multimedia 1995 August
/
IMM0895.BIN
/
magazin
/
optix
/
disk1
/
optxppac.set
/
BANDIT_X.OPT
< prev
next >
Wrap
Text File
|
1995-05-08
|
8KB
|
375 lines
REM -*******************************************************************-
REM (c)'95 by Nils Beckmann / CMD FIDO (2:2437/301.33)
REM -*******************************************************************-
REM ! Warning ! This one is far from being optimized !
REM But seems to be not too buggy !
REM Sorry for the lack of comments in source :(
REM But originally this wasn't ment to be released
REM -*******************************************************************-
defs(data$)
defs(dum$)
def(i)
def(j)
def(k)
def(x)
def(y)
def(speed1)
def(speed2)
def(speed3)
def(zeilpos1)
def(zeilpos2)
def(zeilpos3)
def(zd)
def(kdum)
def(zdum)
def(z2dum)
def(cred)
def(zcount)
def(zin)
def(slowdown)
def(startcred,100)
def(pay,10)
def(Cred2,15)
def(Cred3,50)
defs(cred$)
def(runs,25)
def(smin,5)
def(smax,10)
defai(ton,24)
procedure tonleiter
new(ton)
locals(i)
rem Frequenzfaktor (12te Wurzel aus 2) = 1,059 !!
rem Der jeweils nächste Ton ist immer um diesen
rem Faktor höher als der vorangegangene.
rem Kammerton 'A' = 440 Hertz
ton[1] :=440
for i:=2 to 24 do *** über zwei Oktaven
ton[i] := ton[i-1]*1059/1000
next(i)
return
procedure timing
locals(i,j)
j:=systime
for i:=0 to 100 do
loadsprite(0,0,0,0,10,10)
next(i)
j:=systime-j
smin:=smin*j/60
smax:=smax*j/60
return
procedure cutclips
readpic('plakat.tga')
loadpic(0,0)
data$:='080 200 230 100 210 310 330 180 490 070 435 310'
for i:=0 to 5 do
dum$:=data$
mid(dum$,i*8+1,3)
val(dum$,x,j)
dum$:=data$
mid(dum$,i*8+5,3)
val(dum$,y,j)
copywin(x,y,x+79,y+79)
loadwin(0,i*80,0,0)
next(i)
copywin(0,0,79,479)
return
procedure drawscreen
locals(i)
viewport(80,0,xmax,ymax)
cbox(9,0,0)
viewport(80,12,xmax-12,ymax-12)
cbox(0,20,0)
viewport(70,40,600,70)
cbox(0,19,0)
viewport(60,30,590,60)
cbox(0,55,0)
plateau(255,0)
sysfont(3,0)
setbcolor(55)
Printat(100,40, ' *** O N E - A R M E D - B A N D I T ***')
setbcolor(54)
sysfont(1,0)
viewport(90,100,590,125)
cbox(0,19,0)
viewport(80, 90,580,115)
cbox(0,54,0)
plateau(255,0)
Printat(92,100,'Use any key (except [CTRL],[SHIFT], etc to start/stop bandit')
Pause(0)
viewport(80, 90,590,125)
cbox(0,20,0)
kdum:=readkey
viewport(160,120,410,180)
cbox(0,19,0)
viewport(150,110,400,170)
cbox(0,54,0)
plateau(255,0)
viewport(130,270,470,390)
cbox(0,19,0)
viewport(120,260,460,380)
cbox(0,54,0)
plateau(255,0)
for i:=0 to 2 do
viewport(145+i*100,275,234+i*100,364)
plateau(0,255)
incviewport
plateau(0,255)
next(i)
return
procedure gleich(cnt,crd)
locals(i)
setbcolor(49)
printat(160,150,str(cnt,2)+' Gleiche ')
setbcolor(54)
printat(260,150,'+'+str(crd,3)+' Credits')
cred:=cred+crd
if cnt=3
for i:=0 to 2 do
noise(ton[10],200)
pause(200)
noise(ton[15],400)
pause(400)
next(i)
else
noise(ton[3],200)
pause(200)
noise(ton[7],200)
pause(200)
noise(ton[10],200)
pause(200)
noise(ton[15],400)
endif
return
procedure slip(zin)
If zin<40
zd:=0
Endif
if zin>=440
zd:=0
endif
If zin<440
zd:=400
Endif
If zin<360
zd:=320
Endif
If zin<280
zd:=240
Endif
If zin<200
zd:=160
Endif
If zin<120
zd:=80
Endif
return
BEGIN
Break(off)
readsound('ping.snd')
setvol(11)
tonleiter
:start
cutclips
timing
cred:=startcred
drawscreen
kdum:=readkey
:more2
random(smax-smin,speed1)
random(smax-smin,speed2)
random(smax-smin,speed3)
speed1:=speed1+smin
speed2:=speed2+smin
speed3:=speed3+smin
If speed2=speed1
inc(speed2,1)
EndIF
IF speed3=speed1
inc(speed3,1)
Endif
IF speed3=speed2
inc(speed3,1)
Endif
zdum :=0
z2dum:=0
:more
setbcolor(54)
dec(cred,pay)
printat(260,150,' -'+str(pay,2)+' Credits')
Str(cred,5,cred$)
printat(200,120,'Credits left: '+cred$)
:inloop
inc(z2dum,1)
Repeat
startsound
if z2dum>runs-(runs/4)
setbcolor(54)
printat(260,150,' ')
endif
loadsprite(0,(zeilpos1),150,280,80,80)
loadsprite(0,(zeilpos2),250,280,80,80)
loadsprite(0,(zeilpos3),350,280,80,80)
if zeilpos1>400
loadsprite(0,0,150,280+(480-zeilpos1),80,80-(ymax-zeilpos1)-1)
endif
if zeilpos2>400
loadsprite(0,0,250,280+(480-zeilpos2),80,80-(ymax-zeilpos2)-1)
endif
if zeilpos3>400
loadsprite(0,0,350,280+(480-zeilpos3),80,80-(ymax-zeilpos3)-1)
endif
inc(zeilpos1,speed1)
inc(zeilpos2,speed2)
inc(zeilpos3,speed3)
if zeilpos1>480
zeilpos1:=0
endif
if zeilpos2>480
zeilpos2:=0
endif
if zeilpos3>480
zeilpos3:=0
endif
setbcolor(54)
if zdum>=runs/2
printat(200,160,' ')
endif
If keypressed=True
setbcolor(24)
printat(210,220,' Stop gedrückt ')
inc(zdum,1)
slowdown:=zdum/2
bound(slowdown,1,999)
pause(slowdown)
Endif
If zdum < runs
goto('inloop')
EndIf
Until keypressed=True
rem *** Endbild nach Auslaufphase kontrollieren und dann zeichnen
slip(zeilpos1)
zeilpos1:=zd
slip(zeilpos2)
zeilpos2:=zd
slip(zeilpos3)
zeilpos3:=zd
loadsprite(0, zeilpos1 ,150,280,80,80)
loadsprite(0, zeilpos2 ,250,280,80,80)
loadsprite(0, zeilpos3 ,350,280,80,80)
rem *************************************************************
kdum:=readkey
setbcolor(54)
rem *** Paare oder alle Drei gleich ??
If zeilpos1=zeilpos2
if zeilpos1=zeilpos3
gleich(3,cred3)
Else
gleich(2,cred2)
endif
else
If zeilpos1=zeilpos3
gleich(2,cred2)
else
If zeilpos2=zeilpos3
gleich(2,cred2)
endif
endif
endif
rem *************************************************************
:cmp_finish
Str(cred,5,cred$)
printat(200,120,'Credits left: '+cred$)
scrtobuf
viewport(90,420,560,455)
cbox(0,19,0)
viewport(80,410,550,445)
cbox(0,54,0)
printat(100,420,'Drücken sie [ESC] um aufzuhören oder jede andere Taste')
printat(100,430,' um noch mehr Credits zu verspielen.')
pause(0)
loadpic(0,0)
viewport(160,150,250,165)
cbox(0,54,0)
viewport(210,220,560,250)
cbox(0,20,0)
kdum:=readkey
if kdum=esc
goto('ende')
endif
if cred<=0
goto('ende')
endif
if cred>1000
goto('ende')
endif
goto('more2')
:ende
clearscreen(135)
viewport(40,40,630,470)
cbox(0,0,0)
viewport(20,20,620,460)
cbox(0,20,0)
viewport(120,200,510,270)
cbox(0,19,0)
viewport(110,190,500,260)
cbox(0,54,0)
setbcolor(54)
printat(270,200,'ENDE')
If cred>1000
printat(200,220,' So! Mehr gibt`s nicht!')
endif
If cred<=0
sysfont(3,1)
defbutton(200,300,100,30,2,1,1,1,ret,'start')
defbutton(200,300,100,30,2,1,1,1,'n','start')
defbutton(340,300,100,30,2,1,0,1,'b','exit')
setcolor(0)
printat(201,231,'Sie haben ALLES verspielt !!!!')
printat(209,310,'(N) ochmal (B) eenden')
setcolor(255)
printat(200,230,'Sie haben ALLES verspielt !!!!')
printat(208,309,'(N) ochmal (B) eenden')
checkbutton('exit',30,0)
Else
cred$:=cred$+' Credits'
endif
printat(130,245,'Ihr Endkonto : '+cred$)
pause(0)
:exit
end