User Tools

Site Tools


mmbasic_original:maxitrek

MaxiTrek

maxitrek.zip

This module is part of the original MMBasic library. It is reproduced here with kind permission of Hugh Buckle and Geoff Graham. Be aware it may reference functionality which has changed or is deprecated in the latest versions of MMBasic.

MAXITREK.BAS:

'****************************
'* MaxiTrek v1.0 - Title    *
'* a game by Juri Fossaroli *
'* mpt@cbmzone.com          *
'****************************

Mode 4:Dim t$(2):Option error continue
Open "A:title.mod" For input As #1
If MM.Errno=0 Then Close 1:GoTo loadall

Copy "spchase.mod" To "a:title.mod"

loadall:
Sprite Load "title.spr"
PlayMOD "a:title.mod"
LoadBMP "title"
Line (0,12)-(181,12),1
t$(1)=" "+CLR$(2)+"<   Welcome to the incredible"+CLR$(4)+"  MaxiTrek V1.0   @ "
t$(1)=t$(1)+CLR$(2)+"created by "+CLR$(6)+"Juri Fossaroli   @ "+CLR$(2)
t$(1)=t$(1)+">The Arduitrons attacked your planet, it's time to counter "
t$(1)=t$(1)+"attack!!!  Destroy the entire Arduitrons force and free the "
t$(1)=t$(1)+"galaxy!"+String$(29,32)
t$(2)=CLR$(2)+"<Program, graphic and sfx by "+CLR$(6)+"Juri Fossaroli"+CLR$(2)
t$(2)=t$(2)+" title music by "+CLR$(6)+"The master/Silents dk"+CLR$(2)
t$(2)=t$(2)+"> press "+CLR$(3)+"I"+CLR$(2)+" to toggle the command list used "
t$(2)=t$(2)+"in game, press "+CLR$(3)+"SPACE"+CLR$(2)+" key to start the "
t$(2)=t$(2)+"game..."+String$(6,32)+CLR$(6)+"               GOOD LUCK!        @"
t$(2)=t$(2)+"     >"+String$(11,32)
SetTick 50,irq
l=0:c=1:w=0:wd=0:s=1:wdd=5:cnt=0:i=0

Do
cnt=cnt+1
If cnt=1 Then
  x=30+Int(Rnd(1)*180):y=(50-(x/9))+(Int(Rnd(1)*60))-(x/12):sc=Int(Rnd(1)*3)
EndIf
If cnt=20 And sc=2 Then Sprite on 7,x,y
If cnt=40 And sc=2 Then Sprite off 7:Sprite on 8,x,y
If cnt=60 And sc=2 Then Sprite off 8:Sprite on 9,x,y
If cnt=80 And sc=2 Then Sprite off 9:Sprite on 8,x,y
If cnt=100 And sc=2 Then Sprite off 8:Sprite on 7,x,y
If cnt=120 And sc=2 Then Sprite off 7
If cnt=20 And sc=1 Then Sprite on 1,x,y
If cnt=40 And sc=1 Then Sprite off 1:Sprite on 2,x,y
If cnt=60 And sc=1 Then Sprite off 2:Sprite on 3,x,y
If cnt=80 And sc=1 Then Sprite off 3:Sprite on 2,x,y
If cnt=100 And sc=1 Then Sprite off 2:Sprite on 1,x,y
If cnt=120 And sc=1 Then Sprite off 1
If cnt=20 And sc=0 Then Sprite on 4,x,y
If cnt=40 And sc=0 Then Sprite off 4:Sprite on 5,x,y
If cnt=60 And sc=0 Then Sprite off 5:Sprite on 6,x,y
If cnt=80 And sc=0 Then Sprite off 6:Sprite on 5,x,y
If cnt=100 And sc=0 Then Sprite off 5:Sprite on 4,x,y
If cnt=120 And sc=0 Then Sprite off 4
If cnt=140 Then cnt=0
a$=Inkey$
If a$="i" Then GoSub shwkys
If a$=" " Then GoSub rungame
Loop

shwkys:
If i=0 Then LoadBMP "ti",100,120:i=1:Return
If i=1 Then LoadBMP "tr",100,120:i=0:Return

rungame:
PlayMOD stop
Sprite off all
SetTick 0,0
Cls:Clear
Run "Game"
End

irq:
If c=500 Then c=1:l=0
If c=246 Then l=1:c=256
If s=0 And w=>0 Then w=w-1:IReturn
If w=-1 Then w=0:s=1
If wd=0 And l=0 And w=0 Then txt$=Mid$(t$(1),c,1):GoTo stampa
If wd=0 And l=1 And w=0 Then txt$=Mid$(t$(2),c-255,1):GoTo stampa
wd=wd-1:GoTo stampa2
stampa:
c=c+1:wd=wdd
If Asc(txt$)>127 And Asc(txt$)<136 Then cl=Asc(txt$)-128
If txt$="@" Then s=0:w=30:txt$="":IReturn
If txt$="<" Then s=1:wdd=5:txt$=""
If txt$=">" Then s=2:wdd=2:txt$=""
stampa2:
BLIT 0,0,-1*s,0,181,12:Print @(174+(wd*s),0)Chr$(128+cl)txt$
Line (179,0)-(186,11),0,bf:Line (181,0)-(181,11),1
IReturn

GAME.BAS:

Option base 1:Mode 4:md=1:fr=1:enemy=20
LoadBMP "game":Sprite Load "maxitrek.spr":SetTick 10,engine
Dim starx(10),stary(10),starz(10),ox(10),oy(10),map(8,8),cndt$(3),maph(8,8)
cndt$(2)=CLR$(4,6)+"   RED   ":cndt$(1)=CLR$(6,2)+"  GREEN  "
cndt$(3)=CLR$(1,3)+" DOCKED  ":Sprite on 7,240,85
Sprite on 1,1,220,0:Sprite on 2,1,220,0:Sprite on 3,1,220,0
Sprite on 4,1,220,0:Sprite on 5,1,220,0:Sprite on 6,1,220,0
energy=100:shields=0:damage=0:dock=0:enpr=0:endam=0:enty=0:lr=1:sh=1:nv=1:mp=1
For t=1 To 8:For e=1 To 8
  maph(t,e)=0
Next e,t
For e=1 To enemy
  rifai:
  ex=Cint(Rnd(1)*7)+1:ey=Cint(Rnd(1)*7)+1
  If map(ex,ey)>0 Or ex+ey=2 Then GoTo rifai
  map(ex,ey)=1
Next e
rifai2:
px=Cint(Rnd(1)*7)+1:py=Cint(Rnd(1)*7)+1
If map(px,py)>0 Or px+py=2 Then GoTo rifai2
map(px,py)=2
map(1,1)=0:px=1:py=1
Print @(20,8)CLR$(7)"ENERGY: "CLR$(2)" "energy"%"CLR$(7)@(160,8)"CONDITION"
Print @(20,21)CLR$(7)"SHIELDS:"CLR$(2)" "shields"%"@(160,20)cndt$(1)
std=0
Do
a$=Inkey$:If a$="" Then GoTo ggiu
If a$="m" Then GoSub showmap:If dock=1 Then GoSub showdock
If a$="l" Then GoSub longrange
If a$="d" Then GoSub damage
'If a$="c" Then energy=999:damage=0:lr=1:mp=1:sh=1:nv=1:shields=999
If a$="j" Then GoSub hyperjump:If dock=1 Then GoSub showdock
If a$="b" Then GoSub battlepc:If dock=1 Then GoSub showdock
If enpr=1 Then
  Sprite move 7,cx,cy,0
  If Asc(a$)=128 Then cy=cy-1:If cy<45 Then cy=45
  If Asc(a$)=129 Then cy=cy+1:If cy>125 Then cy=125
  If Asc(a$)=130 Then cx=cx-1:If cx<10 Then cx=10
  If Asc(a$)=131 Then cx=cx+1:If cx>215 Then cx=215
  If Asc(a$)=139 And fr=1 Then GoSub fire
EndIf
ggiu:
t=t+1:fr=fr-1:If fr<1Then fr=1
If t=10 And dock=0 Then t=0:GoSub starfield:If enpr=1 Then GoSub updenemy
If dock=1 Then
  damage=0:energy=100:sh=1:nv=1:lr=1:mp=1:Print @(74,8)CLR$(2)energy"% "
EndIf
If std=>9999 Or energy<=0 Or damage=>100 Then GoTo badend
Loop

fire:
Line(2,144)-(cx+8,cy+8),3:Line(237,144)-(cx+8,cy+8),3
dur=100:dt=50:energy=energy-1:SetTick 5,laser:Pause 250
Line(2,144)-(cx+8,cy+8),0:Line(237,144)-(cx+8,cy+8),0
If cx-ex<=3 And cx-ex=>-3 Then
  If cy-ey<=3 And cy-ey=>-3 Then dur=100:SetTick 5,boom:GoSub enemyhit
EndIf
fr=150
Return

enemyhit:
endam=Int(endam+(20-(enty*2.5))):If endam>100 Then endam=100
Print@(203,190)CLR$(5)endam"%"@(74,8)CLR$(2)energy"% "
If endam=100 Then
  enpr=0:map(px,py)=0:enemy=enemy-1:dur=100:SetTick 10,boom
  Sprite move 7,1,220,0
  Sprite move enty,1,220,0:Sprite on 8,ex,ey,0:Pause 300
  Sprite off 8:Sprite on 9,ex,ey,0:Pause 300
  Sprite off 9:Sprite on 10,ex,ey,0:Pause 300:Sprite off 10
  Line(203,190)-(232,202),0,bf
  Print @(160,20)cndt$(enpr+1)
  If enemy=0 Then Line(100,100)-(100,100),0,bf:Print @(80,180)"Return to base"
EndIf
Return

updenemy:
mm=Int(Rnd(1)*20)+1:If mm>4 Then Return
If mm=1 Then ey=ey-2:If ey<45 Then ey=45
If mm=2 Then ey=ey+2:If ey>125 Then ey=125
If mm=3 Then ex=ex-2:If ex<10 Then ex=10
If mm=4 Then ex=ex+2:If ex>215 Then ex=215
Sprite move enty,ex,ey,0:Pause 100
mm=Int(Rnd(1)*40)+1:If mm>39 Then GoSub enfire
Return

enfire:
Line(ex+8,ey+8)-(112,144),4
dur=100:dt=50:SetTick 1,enemy:Pause 250
Line(ex+8,ey+8)-(112,144),0
If shields=>5 Then shields=shields-5:dur=100:SetTick 5,shield
If shields<5 Then damage=damage+5:dur=100:SetTick 5,boom:GoSub damage
If damage=>20 Then lr=0
If damage=>40 Then mp=0
If damage=>60 Then nv=0
If damage=>80 Then sh=0
Print @(74,8)CLR$(2)energy"% ":Print @(74,21)CLR$(2)shields"% "
Return

initenemy:
enty=Int(Rnd(1)*5)+1:If enemy=1 Then enty=6
ex=30+Int(Rnd(1)*130):ey=60+Int(Rnd(1)*70):endam=0
Sprite move enty,ex,ey,0:Print@(203,190)CLR$(5)endam"%"
Return

battlepc:
Line(60,167)-(179,204),0,bf:Line(2,40)-(237,144),0,bf
Print @(40,42)CLR$(2,1)" BATTLE COMPUTER - ONLINE "
Print @(40,60)CLR$(2)" Systems energy: "energy"% "
Print @(40,75)CLR$(3)" Hull integrity: "100-damage"% "
Print @(40,90)CLR$(5)"  Shields power: "shields"% "
Print @(40,105)CLR$(6)"    Enemys left:"CLR$(4)" "enemy
Print @(30,120)CLR$(2,1)" Press"CLR$(3,1)" S "CLR$(2,1)"to set shields power"
GoSub waitkey
If a$="s" Then
  oe=energy+(Cint(shields/1.2))
  If sh=0 Then
    Print @(60,168)CLR$(4)"Shield system damage"
    Print @(60,180)CLR$(4)"shields level to 20%"
    Print @(62,192)CLR$(4)"if energy available"
    shields=20
  EndIf
  If sh=1 Then
    Print @(62,168)CLR$(3)"press 1 to 9 to set"
    Print @(62,180)CLR$(3)" shields level or "
    Print @(60,192)CLR$(3)"press X to max power"
    pupu:
    GoSub waitkey
    a1=Val(a$):If a1<1 Or a1>9 And a$<>"x" Then GoTo pupu
    If a1>0 And a1<10 Then shields=a1*10
    If a$="x" Then shields=100
  EndIf
  energy=oe-(Cint(shields/1.2))
  If energy<0 Then shields=shields-(Cint((Abs(energy)-5)/1.2)):energy=5
EndIf
Print @(74,8)CLR$(2)energy"% ":Print @(74,21)CLR$(2)shields"% "
Line(60,167)-(179,204),0,bf:Line(2,40)-(237,144),0,bf
Return

goodend:
t=KeyDown:If t<>0 Then GoTo goodend
SetTick 0,0
Line(60,167)-(179,204),0,bf
Print @(66,46,1)CLR$(0)"CONGRATULATIONS!!!"
Print @(65,45,1)CLR$(5)"CONGRATULATIONS!!!"
Print @(36,61,1)CLR$(0)"You destroyed all Arduitrons"
Print @(35,60,1)CLR$(5)"You destroyed all Arduitrons"
Print @(16,76,1)CLR$(0)"and bring back peace in the galaxy!"
Print @(15,75,1)CLR$(5)"and bring back peace in the galaxy!"
Pause 1000
Print @(55,120)CLR$(3,1)"  PRESS A KEY TO END  "
GoSub waitkey:Cls
Run "maxitrek"
End

badend:
t=KeyDown:If t<>0 Then GoTo badend
SetTick 0,0
Line(60,167)-(179,204),0,bf:Line(2,40)-(237,144),0,bf
Print @(55,45)CLR$(3)"You failed your mission"
Print @(35,60)CLR$(3)"to defeat the Arduitrons force"
Print @(65,75)CLR$(3)"and free the galaxy.."
Pause 1000
If std=>9999 Then Print @(50,90)CLR$(6)"You didn't make it in time"
If energy<=0 Then Print @(65,90)CLR$(6)"You run out of energy"
If damage=>100 Then Print @(68,90)CLR$(6)"You was destroyed !!"
Pause 1000
Print @(55,120)CLR$(3,1)"  PRESS A KEY TO END  "
GoSub waitkey:Cls
Run "maxitrek"
End

showdock:
LoadBMP "dock",2,40:Line(238,40)-(238,144),1
Print @(160,20)cndt$(3):If enemy=0 Then GoTo goodend
Return

hyperjump:
If enpr=1 Then Sprite move enty,1,220,0
Line(60,167)-(179,204),0,bf:Line(2,40)-(237,144),0,bf
Print @(25,40)CLR$(3,1)" Navigation system - JUMP DRIVE "
Print @(57,60)CLR$(2)"Current ship position"
Print @(87,74)CLR$(3)"sector "Str$(px)","Str$(py)
Print @(33,94)CLR$(5)"Alien presence in this sector"
If map(px,py)=0 Then Print @(87,108)CLR$(2)"sector free"
If map(px,py)=1 Then Print @(77,108)CLR$(4)"sector occupied"
If map(px,py)=2 Then Print @(100,108)CLR$(2)"docked"
Print @(55,130)CLR$(6,2)" Jump drive: "CLR$(7,2)"*READY* "
If nv=0 Then Print @(127,130)CLR$(6,4)"*DAMAGED*"
Print @(67,170)CLR$(7)"Insert destination"
Line(90,183)-(150,198),7,b:tx=0:ty=0
gtcoord:
a$=Inkey$
tz=Val(a$):If tz=9 Or tz=0 Then a$=""
If tz>0 And tz<9 And tx=0 Then tx=Val(a$):a$=""
If tz>0 And tz<9 And ty=0 Then ty=Val(a$)
If tx<>0 Then Print @(105,186,1)CLR$(5)Str$(tx)" ,":Pause 100
If ty<>0 Then Print @(127,186,1)CLR$(5)Str$(ty):Pause 100
If a$="" Then GoTo gtcoord
If px=tx And py=ty Then
  Pause 200:Line(60,167)-(179,204),0,bf
  Print @(75,180)CLR$(2)"Jump not needed"
  Pause 1000:Line(60,167)-(179,204),0,bf
  Line(2,40)-(237,144),0,bf:Return
EndIf
px=tx:py=ty
jumpseq:
Print @(160,20)cndt$(1)
If nv=0 Then
  px=px+Cint(Rnd(1)*2)-1:py=py+Cint(Rnd(1)*2)+1
  If px=tx And py=ty Then GoTo jumpseq
  If px=0 Then px=1
  If px=9 Then px=8
  If py=0 Then py=1
  If py=9 Then py=8
EndIf
Pause 500:Line(60,167)-(179,204),0,bf:Line(2,40)-(237,144),0,bf
Print @(90,168)CLR$(2)"Destination"
Print @(93,180)CLR$(2)" acquired"
Print @(87,192)CLR$(2)"successfully":tx=0:dock=0
Do
tx=tx+1
For ty=1 To 10:GoSub starfield:Next ty:Pause 50
Loop Until tx=15
Line(60,167)-(179,204),0,bf:dur=100:ph=0:SetTick 2,jump
Print @(63,180)CLR$(6)"Charging Hyperdrive"
Pause 1900:Line(60,167)-(179,204),0,bf
Print @(70,180)CLR$(5)"   - JUMPING -"
Pause 650:Line(60,167)-(179,204),0,bf
If nv=1 Then Print @(70,180)CLR$(2)"Jump Successfull!"
If nv=0 Then Print @(70,170)CLR$(4)"  Jump failed!"@(70,185)" Wrong position!"
Pause 1000:Line(60,167)-(179,204),0,bf
enpr=map(px,py):energy=energy-15
If enpr=2 Then dock=1:enpr=0:SetTick 0,0
If enpr=1 Then dur=100:rp=3:cx=112:cy=85:SetTick 4,alarm:GoSub initenemy
If enpr=0 Then Sprite move 7,240,85:Line(203,190)-(227,202),0,bf
Print @(160,20)cndt$(enpr+1)@(74,8)CLR$(2)energy"% "
Return

damage:
Line(60,167)-(179,204),0,bf
Print @(60,168)CLR$(4)"DAMAGES:":cl=2
If damage=>50 Then cl=6
If damage=>80 Then cl=4
Print @(110,168)CLR$(cl)" Hull "Str$(100-damage)"%"
If lr=1 And mp=1 And nv=1 And sh=1 Then Print @(90,185)CLR$(2)"NO DAMAGES"
If lr=0 Then Print @(60,180)CLR$(4)"Long Range"
If mp=0 Then Print @(138,180)CLR$(4)"Map"
If nv=0 Then Print @(60,192)CLR$(4)"Navigation"
If sh=0 Then Print @(138,192)CLR$(4)"Shields"
Return

longrange:
If enpr=1 Then Return
If lr=0 Then
  Line(60,167)-(179,204),0,bf
  Print @(63,172,1)CLR$(4)"Long range scanners"
  Print @(63,188,1)CLR$(4)"      damaged"
  Return
EndIf
Line(60,167)-(179,204),0,bf
sgx=px-1:egx=px+1:sgy=py-1:egy=py+1
If sgx=0 Then sgx=1
If egx=9 Then egx=8
If sgy=0 Then sgy=1
If egy=9 Then egy=8
For t=sgx To egx:For t1=sgy To egy
  maph(t,t1)=1
Next t1,t
For x=-1 To 1:For y=-1 To 1
sgx=px+x:sgy=py+y:a$=""
If sgx=0 Then a$=CLR$(7)+"X"
If sgx=9 Then a$=CLR$(7)+"X"
If sgy=0 Then a$=CLR$(7)+"X"
If sgy=9 Then a$=CLR$(7)+"X"
If a$="" Then
  t=map(sgx,sgy)
  If t=0 Then a$=CLR$(7)+"."
  If t=1 Then a$=CLR$(4)+"*"
  If t=2 Then a$=CLR$(2)+"o"
EndIf
Print @(75+(x*10),181+(y*10),1)a$
Next y,x
Line(72,170)-(72,200),7:Line(82,170)-(82,200),7
Line(62,180)-(92,180),7:Line(62,190)-(92,190),7
Print @(75,181,1)CLR$(3)"+"@(100,168)CLR$(6,1)" Long range "
Print @(97,182)CLR$(4)"*"CLR$(7)"Enemy "CLR$(3)"+"CLR$(7)"Ship"
Print @(97,194,1)CLR$(7)".Space "CLR$(2)"o"CLR$(7)"Planet"
Return

showmap:
If mp=0 Then
  Line(60,167)-(179,204),0,bf
  Print @(61,180,1)CLR$(4)"Map computer damaged"
  Return
EndIf
Line(2,40)-(237,144),0,bf
Print @(80,40)CLR$(6,1)"   STARMAP   "
For t=0 To 8
  Line(20,64+(10*t))-(100,64+(10*t)),7
  Line(20+(10*t),64)-(20+(10*t),144),7
  If t>0 Then Print @(7+(10*t),54,1)t:Print @(7,54+(10*t),1)t
Next t
For mx=1 To 8:For my=1 To 8
  t=map(mx,my):h=maph(mx,my)
  If t=1 And h=1 Then Print @(13+(10*mx),55+(10*my),1)CLR$(4)"*"
  If t=2 And h=1 Then Print @(13+(10*mx),54+(10*my),1)CLR$(2)"o"
  If t=0 And h=1 Then Print @(13+(10*mx),52+(10*my),1)CLR$(7)"."
Next my,mx
Print @(13+(10*px),55+(10*py),1)CLR$(3)"+"
Print @(110,64)CLR$(3)"+"CLR$(6)" - your ship"
Print @(110,76)CLR$(4)"*"CLR$(6)" - enemy force"
Print @(110,88)CLR$(2)"o"CLR$(6)" - planet"
Print @(110,98,1)CLR$(7)"."@(116,100)CLR$(6)" - free space"
Print @(110,125)CLR$(6)"your position:"CLR$(3)px","py
GoSub waitkey
Line(2,40)-(237,144),0,bf
Return

waitkey:
a$=Inkey$
If a$="" Then GoTo waitkey
Return

boom:
r=Int(Rnd(1)*dur):dur=dur-.6
PWM 20000,r,r
If dur<1 Then PWM stop:SetTick 10,engine
IReturn

laser:
r=Int(Rnd(1)*dur):dur=dur-3:dt=dt-1
PWM 21+(dur*100),dt,dt
If dur<3 Then PWM stop:SetTick 10,engine
IReturn

enemy:
dur=dur-3:fq=Int(Rnd(1)*5000)+1000
If dur<5 Then PWM stop:SetTick 10,engine:IReturn
If dt=50 Then dt=0:PWM fq,dt,dt:IReturn
If dt=0 Then dt=50:PWM fq,dt,dt:IReturn

jump:
If ph=0 Or ph=2 Then dur=dur-.1
If ph=1 Then dur=dur-1:r=Int(Rnd(1)*100)
If ph=0 Then Tone 2101-(dur*20),2101-(dur*20)
If ph=1 Then PWM 20000,r,r:PWM 40000,r,r:GoSub starfield
If ph=2 And dur>99 Then Line(90,85)-(150,95),0,bf:IReturn
If ph=2 Then
  Tone 101+(dur*20),101+(dur*20):dur=dur-.2
  Line(1+dur,40+(dur/2))-(238-dur,144-(dur/2)),0,b
EndIf
If dur<1 And ph=0 Then ph=1:dur=1500:md=0
If dur<1 And ph=1 Then ph=2:dur=100
If dur<1 And ph=2 Then Tone 40,40,10:PWM stop:SetTick 10,engine:md=1:IReturn
IReturn

shield:
dur=dur-1
Tone 100+dur,100+dur
If dur<1 Then Tone 1,1,0:PWM stop:SetTick 10,engine:IReturn
IReturn

alarm:
dur=dur-.5
If dur<1 Then rp=rp-1:dur=100
Tone 400-(dur*2),400-(dur*2)
If rp=0 Then Tone 20,20,10:SetTick 10,engine:IReturn
IReturn

engine:
std=std+.1
r=Int(Rnd(1)*10):PWM 20000,r,r:Print @(10,192)Format$(std/10,"%05.1f")
IReturn

starfield:
star=star-1:If star<1 Then star=10
If starx(star)=0 Or stary(star)=0 Then
  starx(star)=Int(Rnd(1)*40)-20:stary(star)=Int(Rnd(1)*40)-20
  starz(star)=(Int(Rnd(1)*50)/100)+0.50
EndIf
If md=1 Then Pixel(ox(star),oy(star))=0
x=(starx(star)/starz(star))+120
y=(stary(star)/starz(star))+92
If starz(star)>.3 Then cl=3 Else cl=7
If starz(star)>.6 Then cl=1
starz(star)=starz(star)-0.025
If x>2 And x<237 And y>40 And y<144 Then Pixel(x,y)=cl:ox(star)=x:oy(star)=y
If x<2 Or x>237 Or y<40 Or y>144 Then starx(star)=0:stary(star)=0
Return
mmbasic_original/maxitrek.txt · Last modified: 2024/01/19 09:39 by 127.0.0.1