home *** CD-ROM | disk | FTP | other *** search
/ ISV Strong Games / ISV_STRONG_GAMES.iso / shootemup / balloon / !BallonInv / _Resources / !Runimage (.txt) next >
RISC OS BBC BASIC V Source  |  1999-12-05  |  39KB  |  1,708 lines

  1.  >!Runimage
  2. (-99)=
  3. :*Desktop
  4.  hi(10),hi$(10)
  5.  r%(15),g%(15),b%(15)
  6.  code&200
  7.  table 256
  8.  block% 20,dat% 512
  9.  WD$(7)
  10. pointer
  11. ("Load <BIX$Dir>.FadeList "+
  12. ~table)
  13. ("Load <BIX$Dir>.MCFade2 "+
  14. ~code)
  15. loadhi
  16. FILE$="<BIXG$Dir>.Sprites"
  17.  FILE%=OPENIN(FILE$)
  18. size%=&4E200+&17000
  19.  CLOSE #FILE%
  20.  area% size%
  21.  in% 20,out% 20
  22.  zoom 16
  23.  tankh(2)
  24.  bullet(2)
  25.  bird(4)
  26.  tanke(20)
  27.  heli(4)
  28.  c(9)
  29.  mk$(10),ml$(10),md(10),mt% 256,cb% 64
  30.  mk$(A),ml$(A):
  31.  -TM=10:
  32.  t(TM),ts(TM),tp(TM),tx(TM),ty(TM)
  33.  e(TM),ex(TM),ey(TM),es(TM),ez(TM)
  34.  el(TM),elx(TM),ely(TM)
  35.  b(TM),bx(TM),by(TM),bd(TM),bf(TM)
  36.  h(TM),hx(TM),hy(TM),hf(TM)
  37.  bb(TM),bbx(TM),bby(TM)
  38.  px(TM),ps(TM)
  39. '%PIX=100:
  40.  zx(PIX),zy(PIX),zd(PIX)
  41. zoom!0=1:zoom!8=1:
  42.  X1/X2
  43. zoom!4=1:zoom!12=1:
  44.  Y1/Y2
  45.  SYS 46,512+34,area%,blok%,X,Y,8,zoom
  46.  SYS 46,512+34,area%,blok%,X,Y,8
  47. area%!0=size%
  48. 46,256+9,area%
  49. "Squashed_Load",FILE$,area%+4
  50.  SYS 46,256+10,area%,FILE$
  51. 46,256+24,area%,"tankl"
  52. ,,tankl
  53. 46,256+24,area%,"tankr"
  54. ,,tankr
  55. 46,256+24,area%,"tankh"+
  56. ,,tankh(A)
  57. 46,256+24,area%,"bullet"+
  58. ,,bullet(A)
  59. 46,256+24,area%,"bird"+
  60. ,,bird(A)
  61. 46,256+24,area%,"tanke"+
  62. ,,tanke(A)
  63. 46,256+24,area%,"sun"
  64. ,,sun
  65. 46,256+24,area%,"base"
  66. ,,base
  67. 46,256+24,area%,"balloon"
  68. ,,balloon
  69. 46,256+24,area%,"balloonh"
  70. ,,balloonh
  71. 46,256+24,area%,"heli"+
  72. ,,heli(A)
  73. 46,256+24,area%,"helif"
  74. ,,helif
  75. 46,256+24,area%,"explo"
  76. ,,explo
  77. 46,256+24,area%,
  78. ,,c(A)
  79. 46,256+24,area%,"vliegveld"
  80. ,,vliegveld
  81. 46,256+24,area%,"vliegveldwit"
  82. ,,vliegveldwit
  83. 46,256+24,area%,"vliegveldweg"
  84. ,,vliegveldweg
  85. 46,256+24,area%,"barrage"
  86. ,,barrage
  87. 46,256+24,area%,"auto"
  88. ,,auto
  89. 46,256+24,area%,"vliegtuig"
  90. ,,vliegtuig
  91. 46,256+24,area%,"vliegtuigwit"
  92. ,,vlwit
  93. 46,256+24,area%,"berg1"
  94. ,,berg
  95. 46,256+24,area%,"parachutist"
  96. ,,you
  97. "QTM_Load","<BIXS$Dir>._Songs.Short",0
  98. "QTM_SetSampleSpeed",24
  99. *QtmStop
  100. WD$(1)="Not much later..."
  101. WD$(2)="the enemy is gone"
  102. WD$(3)="the evil forces"
  103. WD$(4)="defeated in battle"
  104. WD$(5)="Now, the way"
  105. WD$(6)="is clear for..."
  106. ^"WD$(7)="the balloon invasion!"
  107. newgame
  108. 263874
  109.  An EJG Production
  110. pointer
  111. :*SCREENSIZE 160
  112. =0:VO=0:SHW=0
  113. 6,112,2:
  114. 6,113,1
  115.  TM=10 
  116. *CHANNELVOICE 1 GUNSHOT
  117. *CHANNELVOICE 2 HEAVYEXPLO
  118. *CHANNELVOICE 3 HEAVYEXPLO
  119. *CHANNELVOICE 4 SHOTGUN
  120. *CHANNELVOICE 5 EEND
  121. *CHANNELVOICE 6 HIT
  122. *CHANNELVOICE 7 TICK
  123. *TUNING 0
  124. *TUNING -&2FFF
  125.  s1%,s2%:
  126. 6,112,s1%:
  127. 6,113,s2%
  128. 24,0;128;1279;1023;
  129. col(lur,lug,lub,0):
  130. 0,MY:
  131. 97,1280,SY-MY
  132. 46,512+34,area%,lucht,0,SY,0
  133. 46,512+34,area%,sun,72,720,8
  134. 46,512+34,area%,base,BX,BY,8
  135. 46,512+34,area%,berg,MX,MY,0
  136.  MX<0 
  137. 46,512+34,area%,berg,MX+1279,MY,8 
  138. 46,512+34,area%,berg,MX-1279,MY,8
  139.  t(A)=1 
  140. tank(A)
  141.  t(A)=2 
  142. tanke(A)
  143.  t(A)=3 
  144. bootz
  145.  tx(A)>VX-128
  146. MIS=8
  147.  tx(A)=VX-128
  148.  el(A)=1
  149. 46,512+34,area%,bullet(2),elx(A),ely(A),8:ely(A)=ely(A)+8*sp:
  150.  ely(A)>1024
  151. ely(A)>BY-256
  152.  el(A)=0:
  153. newexpl(elx(A)-64,ely(A),1,1)
  154.  el(A)=1 
  155.  elx(A)<X+128 
  156.  elx(A)+64>X 
  157.  ely(A)<Y+196 
  158.  ely(A)+64>Y 
  159. youhit:el(A)=0
  160.  b(A)=1 
  161.  b(A)=0 
  162.  sp>1 
  163. (1000/sp)=1 
  164. newbird:ee=ee+1
  165.  h(A)=0 
  166.  HS>1 
  167.  HE>1 
  168.  h(A)=1:hx(A)=HSX+64+(96*A):hy(A)=MY:hf(A)=0:HS=HS-1
  169.  h(A)=1 
  170. heliu
  171.  h(A)=2 
  172.  h(A)=3 
  173. helif
  174.  BB=1 
  175.  bb(A)=1 
  176. showb
  177.  BB=1 
  178.  bb(A)=2 
  179. showb:bby(A)=bby(A)-64:
  180.  bby(A)<MY 
  181.  bb(A)=0
  182.  MIS=1 
  183.  px(A)=px(A)+3.5*sp:
  184. 46,512+34,area%,auto,px(A),MY,8
  185.  MIS=1 
  186.  V=2 
  187.  px(A)>VX-(A*96) 
  188.  px(A)=VX-(A*96)
  189.  MIS=2 
  190.  MIS=7 
  191.  MIS=9 
  192. 46,512+34,area%,vliegtuig,px(A),MY,8:
  193.  L=1 
  194.  LY<MY+128 
  195.  LX<px(A)+96 
  196.  LX+64>px(A) 
  197. hitplane
  198.  MIS=3 
  199.  BTS>0 
  200. megawap:
  201. 46,512+34,area%,mist,BTX,BTY,8
  202.  MIS=3 
  203.  BTL=0 
  204.  BTS>0 
  205.  BTL=1:BTLX=BTX:BTLY=BTY+128:
  206. vol(BTX,BTY),50,1
  207.  BTL=1 
  208. 46,512+34,area%,mlaser,BTLX,BTLY,8
  209.  L=1 
  210. LY<256+MY 
  211.  LX<BTX+128 
  212.  LX+64>BTX 
  213.  BTS>0 
  214. 46,512+34,area%,mistwit,BTX,BTY,8:BTS=BTS-1:L=0:
  215.  BTS<1 
  216.  BTS=-255:
  217. newexpl(BTX,BTY,3,2):
  218. vol(BTX,BTY),50,1:DONE=1:SC=SC+10
  219.  W=1 
  220.  MIS=8 
  221.  DONE=0 
  222. col(0,0,240,0):
  223. 97,VX+256,MY+golf:
  224. VX+256,0:
  225. 97,2560,(MY/2)+golf:
  226. col(120,120,120,0):
  227. VX,0:
  228. 97,512,MY:golf=golf+gd
  229.  MIS=3 
  230.  BTS<0 
  231. 46,512+34,area%,mistweg,BTX,BTY,8
  232.  VS=1 
  233.  V=3 
  234. 46,512+34,area%,mist,VX,VY,8:VY=VY-4*sp:
  235.  VY<MY 
  236.  VS=0:
  237.  VX<HSX+1280+128 
  238.  VX+64>HSX+1280 
  239.  MIS=6 
  240. vol(HSX,HSY),150,1:SM=SM+1:
  241.  SM>25 
  242.  DONE=1
  243.  VS=1 
  244.  V=3 
  245.  VY<MY+128 
  246.  VX>bbx(1)-256 
  247.  MIS=10 
  248. 7,-15,150,1:VS=0:SM=SM+1:
  249.  SM>5 
  250.  DONE=1
  251.  HS>0 
  252.  HE>0 
  253. 46,512+34,area%,vliegveld,HSX,HSY+golf,8
  254.  HS>0 
  255.  HE<1 
  256. 46,512+34,area%,vliegveldweg,HSX,HSY+golf,8
  257.  L=1 
  258.  LY<256+HSY 
  259.  LX<HSX+420 
  260.  LX+64>HSX 
  261.  HE>0 
  262. 46,512+34,area%,vliegveldwit,HSX,HSY+golf,8:
  263. newexpl(LX,HSY,1,1):HE=HE-1:L=0:SC=SC+1:
  264.  HE<1 
  265. newexpl(HSX-128,HSY-256,4,1):
  266. vol(HSX,HSY),50,1:
  267.  MIS=4 
  268. newexpl(HSX-128,HSY,8,2):
  269. 8,-15,50,1:DONE=1
  270.  V=1 
  271. 46,512+34,area%,mist,VX,MY,8
  272.  L=1 
  273.  LY<256+MY 
  274.  LX<VX+420 
  275.  LX+64>VX 
  276.  V=1 
  277. 46,512+34,area%,mistwit,VX,MY,8:
  278. newexpl(LX,MY+64,1,1):VS=VS-1:L=0:SC=SC+1:
  279.  VS<0 
  280.  V=2:
  281. newexpl(VX+64,MY,4,2):
  282. 8,-15,50,1
  283.  V=2 
  284. 46,512+34,area%,mistweg,VX,MY,8:
  285.  MIS=1 
  286.  (MIS=2 
  287.  ps(1)<1 
  288.  ps(2)<1 
  289.  ps(3)<1) 
  290.  MIS=8 
  291.  DONE=1
  292.  V=1 
  293.  px(3)>VX-96 
  294.  MIS=1 
  295.  DEAD=0 
  296. 46,512+34,area%,balloon,X,Y,8
  297.  done%=
  298.  DEAD=0 
  299.  DEAD=25
  300.  DEAD=1 
  301.  DEAD=1 
  302. 46,512+34,area%,you,X,Y,8
  303.  LY<MY 
  304.  L=1 
  305. 46,512+34,area%,bullet(1),LX,LY,8:LY=LY-16*sp
  306.  W=1 
  307.  (MIS<>8
  308. (MIS=8
  309. DONE=1))
  310. col(0,0,240,0):
  311. 97,1280,MY+golf:golf=golf+gd
  312.  W=2 
  313. col(240,240,240,0):
  314. 97,1280,MY-4
  315.  MIS=8 
  316.  lur=60:lub=120:lug=120
  317.  MIS=6 
  318. col(0,240,0,2):
  319. 97,1280,1024
  320.  golf>32 
  321.  MIS<>8
  322.  gd=-1
  323.  golf>64 
  324.  gd=-1
  325.  golf<0 
  326.  gd=1
  327.  L=1 
  328.  LX=LX+LDX*sp
  329.  A=1 
  330.  e(A)=1 
  331. explo(A)
  332.  e(A)=2 
  333. explo2(A)
  334. (-1) 
  335.  G>0 
  336.  SPY=SPY+2*sp:G=G-1:
  337.  VO>10/sp 
  338.  VO=0
  339. VO=VO+1
  340. (-114) 
  341. pause=0 
  342.  pause=1:OSPY=SPY:OG=G
  343. (-115) 
  344. pause=1 
  345.  pause=0:SPY=OSPY:G=OG:
  346.  gm=0
  347. (-98) 
  348. (-67) 
  349. right
  350. (-74) 
  351.  pause=0 
  352. fire:
  353. 4,-15,75,1:fi=fi+1:G=G-5
  354. (-97) 
  355.  FO=1 
  356.  MIS=5 
  357.  FO=0:
  358. 0,63:
  359. 97,1280,1024:
  360. 8,-15,75,1:
  361.  X<VX+128 
  362.  X+128>VX 
  363.  Y<MY+256 
  364.  MIS=5 
  365.  DONE=1
  366. (-99)
  367.  V=3 
  368.  VS=0 
  369.  VS=1:VX=X+64:VY=Y-64:
  370. 1,-15,200,1
  371.  sp>0 
  372.  SPY=SPY-sp:
  373.  MY>Y 
  374. :SPY=4:
  375. down:
  376.  MY<Y:SPY=0:
  377.  DEAD=1 
  378.  DEAD=2
  379.  DEAD>1 
  380.  DEAD+=1
  381.  sp<1 
  382.  SPY=0
  383.  SY<Y 
  384.  SPY=-4
  385.  X<BX+96 
  386.  X+128>BX 
  387.  Y<BY+48 
  388.  Y>BY 
  389.  SPY=0:FO=1:
  390.  G<999 
  391.  G=G+
  392. (sp*2):GA=GA+1:
  393.  GA>2/sp 
  394.  GA=0:
  395. 7,-15,75,1
  396.  X<BX+96 
  397. X+128>BX 
  398.  Y<BY+48 
  399.  Y>BY 
  400.  DONE=1 
  401. (-99) 
  402.  code:
  403.  G>999 
  404.  G=999
  405.  sp>0 
  406.  DEAD=0 
  407. score(G,900,900):
  408.  gm=1 
  409.  G=999
  410. score(SC,0,900)
  411.  G<1 
  412. newboom 
  413.  DEAD=0
  414. 24,0;0;1279;1023;
  415. +TE=TE+0.1:
  416.  TE>1 
  417. tekst:
  418.  TE>2 
  419.  TE=0
  420.  gm=1 
  421. 0,0);
  422. :SHW=1
  423. :sp=sp/2
  424.  pause=1
  425.  sp=0.0000001:
  426.  gm=1 
  427. (-21) 
  428. ("Screensave BIX")
  429. (-30) 
  430. ("FX21"):
  431.  DEAD=25 
  432.  done%=
  433. :*SCREENSIZE 160K
  434. *QTMStart
  435. *QTMVolume 64
  436. 6,112,2:
  437. 6,112,1:
  438. 6,113,2:
  439. list=-1
  440. inicols
  441.  SC>hi(9)
  442. newhi
  443. 6,112,1:
  444. 6,113,2
  445. inicols
  446. sethi
  447. fade2
  448. 6,113,1
  449. fade5
  450. newgame
  451. (-99)
  452. (-51)
  453. (-113)
  454. ("FX21"):
  455. fade1:
  456. (-99)
  457. fade1:
  458. ("FX21"):
  459. font(text$,x,y,size,r,g,b)
  460. gcol=
  461. #b2=gcol>>4:gcol-=16*b2:b2=b2*80
  462. "g2=gcol>>2:gcol-=4*g2:g2=g2*80
  463. r2=gcol:r2=r2*80
  464. font$="Homerton.Medium"
  465. 262273,,font$,size*16,size*16,0,0
  466. handle%
  467.  fore%=(b<<24)+(g<<16)+(r<<8)
  468. #back%=(b2<<24)+(g2<<16)+(r2<<8)
  469. 264015,handle%,back%,fore%,14
  470. 262278,handle%,text$,784,x,y
  471. inicols
  472. r%(A)=A*80
  473. g%(A+3)=A*80
  474. b%(A+3)=A*80
  475. b%(A+6)=A*80
  476. r%(A+9)=A*80
  477. g%(A+9)=A*80
  478. g%(A+12)=A*80
  479. b%(A+12)=A*80
  480. r%(A+12)=A*80
  481.  A,r%(A),g%(A),b%(A)
  482. fade1
  483. $r%(A)=r%(A)-4:
  484.  r%(A)<0
  485.  r%(A)=0
  486. $g%(A)=g%(A)-4:
  487.  g%(A)<0
  488.  g%(A)=0
  489. $b%(A)=b%(A)-4:
  490.  b%(A)<0
  491.  b%(A)=0
  492.  A,r%(A),g%(A),b%(A)
  493.  r%(3)=0
  494. fade2
  495.  A=0 
  496.  15:r%(A)=0:g%(A)=0:b%(A)=0
  497. (r%(A)=r%(A)+4:
  498.  r%(A)>240
  499.  r%(A)=240
  500. (g%(A)=g%(A)+4:
  501.  g%(A)>240
  502.  g%(A)=240
  503. (b%(A)=b%(A)+4:
  504.  b%(A)>240
  505.  b%(A)=240
  506.  A,r%(A),g%(A),b%(A)
  507.  r%(0)=240
  508. fade3
  509. 7r%(A)=r%(A)+A:r%(A+12)=r%(A+12)+A:r%(A+9)=r%(A+9)+A
  510. 'g%(A+3)=g%(A+3)+A:b%(A+3)=b%(A+3)+A
  511. )g%(A+9)=g%(A+9)+A:g%(A+12)=g%(A+12)+A
  512. )b%(A+6)=b%(A+6)+A:b%(A+12)=b%(A+12)+A
  513.  A,r%(A),g%(A),b%(A)
  514.  A+3,r%(A+3),g%(A+3),b%(A+3)
  515.  A+6,r%(A+6),g%(A+6),b%(A+6)
  516.  A+9,r%(A+9),g%(A+9),b%(A+9)
  517.  A+12,r%(A+12),g%(A+12),b%(A+12)
  518.  r%(3)>224
  519. fade4
  520. (    A=240
  521. *    A=A-4
  522.  B,A,A,A
  523. r%(B)=A:g%(B)=A:b%(B)=A
  524.  r%(1)=0
  525. fade5
  526. BL=240
  527. 15:r%(C)=r%(C)-1:g%(C)=g%(C)-1:b%(C)=b%(C)-1:
  528.  r%(B)<B*80
  529.  r%(B)=B*80
  530.  g%(B+3)<B*80
  531.  g%(B+3)=B*80
  532.  b%(B+3)<B*80
  533.  b%(B+3)=B*80
  534.  b%(B+6)<B*80
  535.  b%(B+6)=B*80
  536.  r%(B+9)<B*80
  537.  r%(B+9)=B*80
  538.  g%(B+9)<B*80
  539.  g%(B+9)=B*80
  540.  g%(B+12)<B*80
  541.  g%(B+12)=B*80
  542.  b%(B+12)<B*80
  543.  b%(B+12)=B*80
  544.  r%(B+12)<B*80
  545.  r%(B+12)=B*80
  546.  B,r%(B),g%(B),b%(B)
  547.  B+3,r%(B+3),g%(B+3),b%(B+3)
  548.  B+6,r%(B+6),g%(B+6),b%(B+6)
  549.  B+9,r%(B+9),g%(B+9),b%(B+9)
  550.  B+12,r%(B+12),g%(B+12),b%(B+12)
  551. 0,BL,BL,BL:BL=BL-1*3
  552.  BL<5
  553. inicols
  554. sethi
  555. font(
  556. (A+1),0,800-(A*64),24,240,0,0)
  557. font(
  558. (hi(A))),"0")+
  559. (hi(A)),128,800-(A*64),24,240,240,240)
  560. font(hi$(A),320,800-(A*64),24,0,240,240)
  561. 97,1280,128
  562. font("Hit spacebar to continue",128,64,32,240,240,240)
  563. 0,864:
  564. 97,1280,256
  565. font("Hiscore table",256,900,48,240,240,0)
  566. col(RE,GR,BL,GC):red%=RE:green%=GR:blue%=BL
  567. 264003,(blue%<<24)+(green%<<16)+(red%<<8),,,&0,GC
  568. col2(RE,GR,BL,GC):red%=RE:green%=GR:blue%=BL
  569. 264003,(blue%<<24)+(green%<<16)+(red%<<8),,,&100,GC
  570.  DEAD=1
  571. PIX:zy(A)=zy(A)-SPY:
  572. MY=MY-SPY:HSY=HSY-SPY
  573. BY=BY-SPY
  574. SY=SY-SPY
  575. LY=LY-SPY
  576. RY=RY-SPY:RLY=RLY-SPY
  577. FBY=FBY-SPY
  578. VY=VY-SPY
  579. BTY=BTY-SPY:BTLY=BTLY-SPY
  580. TM:ty(A)=ty(A)-SPY:ely(A)=ely(A)-SPY:ey(A)=ey(A)-SPY:by(A)=by(A)-SPY/2:hy(A)=hy(A)-SPY:bby(A)=bby(A)-SPY
  581. left:
  582.  DEAD=1
  583. MX=MX+sp*4:HSX=HSX+sp*4
  584. BX=BX+sp*4
  585. LX=LX+sp*4
  586. RX=RX+sp*4:RLX=RLX+sp*4
  587. FBX=FBX+sp*4
  588. VX=VX+sp*4
  589. BTX=BTX+sp*4:BTLX=BTLX+sp*4
  590. TM:tx(A)=tx(A)+4*sp:elx(A)=elx(A)+4*sp:ex(A)=ex(A)+4*sp:hx(A)=hx(A)+4*sp:bbx(A)=bbx(A)+4*sp
  591. s%px(A)=px(A)+4*sp:bx(A)=bx(A)+4*sp
  592.  MX>1280
  593.  MX=MX-2560
  594.  BX>1280
  595.  BX=MX-2560
  596. right:
  597.  DEAD=1
  598. MX=MX-sp*4:HSX=HSX-sp*4
  599. BX=BX-sp*4
  600. LX=LX-sp*4
  601. RX=RX-sp*4:RLX=RLX-sp*4
  602. FBX=FBX-sp*4
  603. VX=VX-sp*4
  604. BTX=BTX-sp*4:BTLX=BTLX-sp*4
  605. TM:tx(A)=tx(A)-4*sp:elx(A)=elx(A)-4*sp:ex(A)=ex(A)-4*sp:hx(A)=hx(A)-4*sp:bbx(A)=bbx(A)-4*sp
  606. )px(A)=px(A)-4*sp:bx(A)=bx(A)-4*sp:
  607.  MX<-1280
  608.  MX=MX+2560
  609.  BX<-1280
  610.  BX=BX+2560
  611.     LDX=0
  612. (-98)
  613.  LDX=-4
  614. (-67)
  615.  LDX=4
  616. L=1:LX=X+48:LY=Y-64
  617. tank(A)
  618.  X+(A*64)-(TM*32)<tx(A)
  619.  tx(A)=tx(A)-(2/TM)*sp*4:k=1
  620.  X+(A*64)-(TM*32)>tx(A)
  621.  tx(A)=tx(A)+(2/TM)*sp*4:k=2
  622. 46,512+34,area%,tankl,tx(A),ty(A)+
  623. (4)+golf,8
  624. 46,512+34,area%,tankr,tx(A),ty(A)+
  625. (4)+golf,8
  626.  LX<tx(A)+96
  627. LX+64>tx(A)
  628. LY<MY+128
  629.  tp(A)=tp(A)-1:
  630. hit:L=0:SC=SC+1:
  631. vol(tx(A),ty(A)),75,1:
  632.  tp(A)<1
  633.  t(A)=2:ts(A)=1:
  634. 3,Vl,50,1:
  635. 2,Vl,50,1:ta=ta+1:
  636.  t(A)=3:ty(A)=ty(A)-32
  637.  tx(A)<-256 
  638.  tx(A)=1280+
  639. (256)
  640.  tx(A)>1364 
  641.  tx(A)=-128-
  642. (128)
  643.  tx(A)<X+256 
  644.  tx(A)+320>X 
  645.  el(A)=0 
  646.  DEAD<2 
  647.  el(A)=1:elx(A)=tx(A)+24:ely(A)=ty(A)+64:
  648. vol(tx(A),ty(A)),90,1
  649.  IF LX<BX+48 AND LX+64>BX
  650. tanke(A)
  651. 46,512+34,area%,tanke(ts(A)),tx(A),ty(A),8
  652. ts(A)=ts(A)+1:
  653.  ts(A)>16
  654. Dt(A)=1:ty(A)=MY:ts(A)=1:tp(A)=3:
  655. (2)=1
  656.  tx(A)=-128
  657.  tx(A)=1280
  658. 46,512+34,area%,tankh(1),tx(A),ty(A)+golf,8
  659. 46,512+34,area%,tankh(2),tx(A),ty(A)+golf,8
  660. explo(A)
  661. zoom!8=ez(A):zoom!12=ez(A)
  662. zoom!0=es(A):zoom!4=es(A)
  663. 46,512+52,area%,explo,ex(A)+((192*es(A)-((192*es(A))/ez(A)))/2),ey(A)+((192*es(A)-((192*es(A))/ez(A)))/2),8,zoom
  664. $ez(A)=ez(A)+1:
  665.  ez(A)>20
  666.  e(A)=0
  667. explo2(A)
  668. zoom!8=1:zoom!12=1
  669. zoom!0=es(A):zoom!4=es(A)
  670. 46,512+52,area%,tanke(ez(A)),ex(A),ey(A),8,zoom
  671. $ez(A)=ez(A)+1:
  672.  ez(A)>16
  673.  e(A)=0
  674. newexpl(exn,eyn,esn,etn)
  675. 2,-15,50,1
  676.  etn=1
  677.  e(U)=0
  678.  E=1:NR=U
  679.  U=1 
  680.  E=0 
  681.  es(U)<=esn 
  682.  e(U)=1
  683. :E=1:NR=U
  684.  etn=2 
  685.  U=1 
  686.  e(U)=0 
  687.  E=0 
  688.  E=2:NR=U
  689.  U=1 
  690.  E=0 
  691.  es(U)<=esn 
  692.  E=2:NR=U
  693.  E=1 
  694.  ex(NR)=exn:ey(NR)=eyn:es(NR)=esn:ez(NR)=1:e(NR)=1
  695.  E=2 
  696.  ex(NR)=exn:ey(NR)=eyn:es(NR)=esn:ez(NR)=1:e(NR)=2
  697. scoreO(f,Ha,Ia):F$=
  698. (F$):Ja$=
  699. F$,F,1):Ja=
  700. (Ja$)-48
  701. 46,512+34,area%,c(Ja),Ha,Ia,8:Ha+=48:
  702. score(N,NX,NY)
  703.  NL<>4
  704.  NA=1
  705. 46,512+34,area%,c(0),NX+(NA*48),NY,8
  706.  NA=1
  707.  N,NA,1))
  708. 46,512+34,area%,c(NN),NX+((4-NL+NA)*48),NY,8
  709. 46,512+34,area%,bird((((bd(A))*2)-1)+bf(A)),bx(A),by(A),8
  710.  bx(A)<X+128 
  711.  bx(A)+64>X 
  712.  by(A)<Y+196 
  713.  by(A)+64>Y 
  714.  b(A)=0:
  715. youhit
  716.  bd(A)=1 
  717.  bx(A)=bx(A)+8*sp
  718.  bd(A)=2 
  719.  bx(A)=bx(A)-8*sp
  720.  bf(A)=1 
  721.  bf(A)=0 
  722.  bf(A)=1
  723.  bx(A)<0 
  724.  bx(A)>1280 
  725.  b(A)=0
  726. (10*sp)=1 
  727. vol(bx(A),by(A)),50+
  728. (15),1
  729. newbird
  730. b(A)=1
  731. bd(A)=B
  732.  bx(A)=0
  733.  bx(A)=1280
  734. by(A)=Y+
  735. (128)-64
  736. bf(A)=0
  737. heliu
  738.  hf(A)=1
  739.  hf(A)=2
  740.  hf(A)=1
  741. +hy(A)=hy(A)+sp*A:
  742.  hy(A)>MY+320
  743.  h(A)=2
  744.  X<hx(A)
  745. 46,512+34,area%,heli(hf(A)),hx(A),hy(A),8
  746.  X>hx(A)
  747. 46,512+34,area%,heli(hf(A)+2),hx(A),hy(A),8
  748. LX<hx(A)+96
  749. LX+64>hx(A)
  750. LY<hy(A)+64
  751. LY+64>hy(A)
  752.  h(A)=3:L=0:SC=SC+3:
  753. newexpl(hx(A),hy(A),1,1):
  754. vol(hx(A),hy(A)),75,1
  755.  X<hx(A)+96
  756. X+128>hx(A)
  757. Y<hy(A)+64
  758. Y+196>hy(A)
  759. youhit:h(A)=3
  760.  X<hx(A) 
  761.  HD=1:hx(A)=hx(A)-sp*(TM+1-A)
  762.  X>hx(A) 
  763.  HD=2:hx(A)=hx(A)+sp*(TM+1-A)
  764.  Y>hy(A)-256 
  765.  hy(A)=hy(A)+sp*A
  766.  Y<hy(A)-256 
  767.  hy(A)=hy(A)-sp*A
  768.  L=1 
  769.  LX<hx(A)+96 
  770.  LX+64>hx(A) 
  771.  LY<hy(A)+64 
  772.  LY+64>hy(A) 
  773.  h(A)=3:L=0:SC=SC+2:
  774. newexpl(hx(A),hy(A),1,1):
  775. vol(hx(A),hy(A)),75,1
  776.  X<hx(A)+96 
  777.  X+128>hx(A) 
  778.  Y<hy(A)+64 
  779.  Y+196>hy(A) 
  780. youhit:h(A)=3
  781.  hf(A)=1 
  782.  hf(A)=2
  783.  hf(A)=1
  784.  HD=1 
  785. 46,512+34,area%,heli(hf(A)),hx(A),hy(A),8
  786.  HD=2 
  787. 46,512+34,area%,heli(hf(A)+2),hx(A),hy(A),8
  788. helif
  789. 46,512+34,area%,helif,hx(A),hy(A),8
  790. hy(A)=hy(A)-8*sp
  791.  hy(A)<MY 
  792.  hy(A)=MY:h(A)=0:
  793. newexpl(hx(A),hy(A),1,1):
  794. vol(hx(A),hy(A)),50,1:he=he+1
  795. tekst
  796.  gm=1
  797. font("GEK",0,0,24,240,0,240)
  798.  DONE=1
  799. font("DONE",900,0,48,240,240,0)
  800.  G<300
  801. pause=0
  802. DEAD=0
  803. font("Energy",0,32,24,0,240,240)
  804. font("Mission "+
  805. (MIS),512,32,24,0,240,0)
  806. MIS=6
  807. font("=",HSX+1280,MY+128,48,240,240,240)
  808.  pause=1
  809. font("Pause",0,32,32,240,240,240)
  810.  DEAD>0
  811. font("GAME OVER",0,520,80,240,240,240)
  812. showb
  813.  bb(A)=1
  814. 46,512+34,area%,barrage,bbx(A),bby(A),8
  815. bbx(A)+20,bby(A)+12:
  816.  bbx(A)+72,MY
  817. bbx(A)+72,bby(A)+12:
  818.  bbx(A)+20,MY
  819.  X<bbx(A)+96
  820. X+96>bbx(A)
  821. Y<bby(A)
  822.  LX<bbx(A)+96
  823. LX+64>bbx(A)
  824. LY+64>bby(A)
  825. LY<bby(A)+96
  826.  L=0:SC=SC+5:bb(A)=2:
  827. newexpl(bbx(A),bby(A),1,1):
  828. vol(bbx(A),bby(A)),75,1
  829. ini1:TM=3
  830. 3:px(A)=-2560+(A*128):
  831.  A:V=1:VX=2560:VS=50:HS=25:HSX=VX+512:HSY=MY:HE=50
  832. 46,256+24,area%,"brug"
  833. ,,mist
  834. 46,256+24,area%,"brugwit"
  835. ,,mistwit
  836. 46,256+24,area%,"brugweg"
  837. ,,mistweg
  838. ini2:TM=3
  839. V=1:VX=-2560:VS=50
  840. 46,256+24,area%,"fabriek"
  841. ,,mist
  842. 46,256+24,area%,"fabriekwit"
  843. ,,mistwit
  844. 46,256+24,area%,"fabriekweg"
  845. ,,mistweg
  846. 46,256+24,area%,"vliegtuig"
  847. ,,vliegtuig
  848. 46,256+24,area%,"vliegtuigwit"
  849. ,,vlwit
  850. 3:px(A)=VX+(A*128)+420:ps(A)=10:BB=1:BBX=-1280:BBY=SY-256:
  851. hitplane:L=0:SC=SC+4:ps(A)=ps(A)-1:
  852. 46,512+34,area%,vlwit,px(A),MY,8:
  853.  ps(A)<0
  854. newexpl(px(A),MY,2,2):
  855. vol(px(A),MY),50,1:px(A)=px(A)-5120
  856. D%=0:
  857.  MIS=7
  858. MIS=9
  859.  px(U)<-3200 
  860.  D%=D%+1
  861.  D%=TM 
  862.  DONE=1
  863. ini3:TM=3
  864.  .BTX=5120:BTY=MY:BTS=15:BTL=0:BTLX=0:BTLY=0
  865. HS=25:HSX=2560:HSY=MY:HE=50
  866. 46,256+24,area%,"megawapenr"
  867. ,,mist
  868. 46,256+24,area%,"megawapwit"
  869. ,,mistwit
  870. 46,256+24,area%,"megawapenweg"
  871. ,,mistweg
  872. 46,256+24,area%,"megalaser1"
  873. ,,mlaser
  874. megawap
  875.  BTX<X 
  876.  BTX=BTX+2*sp:
  877. 46,256+24,area%,"megawapenr"
  878. ,,mist:
  879. 46,256+24,area%,"megawaprwit"
  880. ,,mistwit
  881.  BTX>X 
  882.  BTX=BTX-2*sp:
  883. 46,256+24,area%,"megawapen"
  884. ,,mist:
  885. 46,256+24,area%,"megawapwit"
  886. ,,mistwit
  887.  BTL=1 
  888. ,CBTLY=BTLY+sp*4:
  889.  BTLY>MY+720 
  890.  BTL=0:
  891. newexpl(BTLX-64,BTLY,1,1)
  892. BTLM=0
  893.  BTLX<X+64 
  894.  BTLX=BTLX+4*sp:
  895. 46,256+24,area%,"megalaser2"
  896. ,,mlaser:BTLM=BTLM+1
  897.  BTLX>X+64 
  898.  BTLX=BTLX-4*sp:
  899. 46,256+24,area%,"megalaser1"
  900. ,,mlaser:BTLM=BTLM+1
  901.  BTLM=2 
  902. 46,256+24,area%,"megalaser3"
  903. ,,mlaser
  904.  BTLX<X+128 
  905.  BTLX+96>X 
  906.  BTLY<Y+196 
  907.  BTLY+64>Y 
  908.  BTL=0:
  909. youhit
  910. ini4:TM=3
  911. 5"HS=100:HSX=-5120:HSY=MY:HE=100
  912. iniland
  913. 46,256+24,area%,"tankl"
  914. ,,tankl
  915. 46,256+24,area%,"tankr"
  916. ,,tankr
  917. 46,256+24,area%,"tankh"+
  918. ,,tankh(A)
  919. 46,256+24,area%,"vliegveld"
  920. ,,vliegveld
  921. 46,256+24,area%,"vliegveldwit"
  922. ,,vliegveldwit
  923. 46,256+24,area%,"vliegveldweg"
  924. ,,vliegveldweg
  925. lur=0:lug=180:lub=240
  926. iniwat
  927. 46,256+24,area%,"bootl"
  928. ,,tankl
  929. 46,256+24,area%,"bootr"
  930. ,,tankr
  931. 46,256+24,area%,"booth"+
  932. ,,tankh(A)
  933. 46,256+24,area%,"bootz"
  934. ,,bootz
  935. 46,256+24,area%,"vliegdek"
  936. ,,vliegveld
  937. 46,256+24,area%,"vliegdekwit"
  938. ,,vliegveldwit
  939. 46,256+24,area%,"vliegdekweg"
  940. ,,vliegveldweg
  941. lur=0:lug=180:lub=240
  942. bootz
  943. 46,512+34,area%,bootz,tx(A),ty(A),8
  944. ty(A)=ty(A)-4
  945.  ty(A)<MY-128
  946. SDt(A)=1:ty(A)=MY:ts(A)=1:tp(A)=3:
  947. (2)=1
  948.  tx(A)=-128
  949.  tx(A)=1280
  950. ini5:TM=3
  951. V=2:VX=3180:VY=MY:VS=50
  952. BB=1:BBX=1960:BBY=SY-196
  953. 46,256+24,area%,"geheim"
  954. ,,mistweg
  955. *CHANNELVOICE 8 FOTO
  956. a HS=100:HSX=5120:HSY=MY:HE=10
  957. V=3:VX=6400
  958. 46,256+24,area%,"mijnen"
  959. ,,mist
  960. W=2:TM=3
  961. 3:px(A)=-3200+(A*128):ps(A)=25:
  962. i!HS=25:HSX=-4800:HSY=MY:HE=200
  963. BB=1:BBX=-2560:BBY=SY-128
  964. 46,256+24,area%,"mijn"
  965. ,,vliegtuig
  966. 46,256+24,area%,"mijnwit"
  967. ,,vlwit
  968. W=1:TM=3
  969. V=1:VX=0:VY=MY:VS=100
  970. BB=1:BBX=640:BBY=SY-128
  971. HS=50:HSX=-512:HSY=MY:HE=20
  972. 46,256+24,area%,"dijk"
  973. ,,mist
  974. 46,256+24,area%,"dijkwit"
  975. ,,mistwit
  976. 46,256+24,area%,"dijkweg"
  977. ,,mistweg
  978. W=1:TM=5
  979. 5:px(A)=-3200+(A*256):ps(A)=25:
  980. z HS=50:HSX=-4800:HSY=MY:HE=25
  981. BB=1:BBX=-2560:BBY=SY-256
  982. 46,256+24,area%,"olieding"
  983. ,,vliegtuig
  984. 46,256+24,area%,"oliedingwit"
  985. ,,vlwit
  986. ini10
  987. W=2:TM=7
  988. 46,256+24,area%,"parachutist"
  989. ,,mist
  990.  HS=100:HSX=2560:HSY=MY:HE=10
  991. BB=1:BBX=10240:BBY=SY+256
  992. V=3:VX=6400:VY=9999
  993. 6,113,s1%
  994. *QTMVolume 63
  995. *QTMStart
  996. -!in%=148:in%!4=150:in%!8=-1:
  997. 49,in%,out%
  998. "Squashed_Load","<BIXG$Dir>.Base",!out%
  999. (-113)=
  1000.  *QTMStop
  1001.  *<BIX$Dir>.Terminate
  1002.  *Desktop
  1003.  mx,my,mb
  1004.  mx>364
  1005. mx<748
  1006. my<960
  1007. my>592
  1008.  mx>0
  1009. mx<428
  1010. my<420
  1011. mi<>0
  1012.  mx>928
  1013. my<500
  1014. mx<1104
  1015. my>412
  1016.  m=3:
  1017.  mb<>0
  1018. minfo
  1019.  done%=
  1020.  A=63
  1021. ("QTMVolume "+
  1022. (A)):
  1023. ("QTMStop"):mi=1:MIS=mi:
  1024. resetini:md(MIS)=1:
  1025. mb<>0
  1026.  gm>19
  1027. (-102)
  1028. (-55)
  1029. (-100)
  1030. (-35)
  1031.  gm=1:
  1032. 19,0,24,
  1033. (240),
  1034. (240),
  1035. (240)
  1036.  mb<>0
  1037.  A=63
  1038. ("QTMVolume "+
  1039. (A)):
  1040. *QTMStop
  1041.  code
  1042. MIS=mi:
  1043. resetini:md(MIS)=1
  1044.  MIS<>5
  1045. *CHANNELVOICE 8 HEAVYEXPLO
  1046. declick
  1047.  qw,er,ty
  1048.  ty=0
  1049. declick
  1050. 16,312,1240,688
  1051. 24,320,1224,672
  1052. 28,1,20,38,1
  1053. 0,0);
  1054.  v=1 
  1055.  md(v)=1 
  1056.  d+=1
  1057.  d=10 
  1058. done:done%=
  1059.  md(mi)=0
  1060. 24,320,1224,672
  1061. declick
  1062.  mx,my,mb
  1063. (-(my-948)/48)
  1064.  mi<1
  1065.  mi=1
  1066.  mi>10
  1067.  mi=10
  1068. mk$(A),
  1069. (mk$(A))-1)
  1070.  mi<>A 
  1071.  md(A)=0 
  1072. font(mk$,128,900-(A*48),20,0,240,0)
  1073.  mi<>A 
  1074.  md(A)=1 
  1075. font(mk$,128,900-(A*48),20,0,160,0)
  1076.  mi=A 
  1077.  md(A)=0 
  1078. font(mk$,128,900-(A*48),20,240,0,0)
  1079.  mi=A 
  1080.  md(A)=1 
  1081. font(mk$,128,900-(A*48),20,160,0,0)
  1082.  md(A)=1 
  1083.  d+=1
  1084. dir$=
  1085. mk$(mi),1)
  1086.  mb<>0
  1087. md(mi)=0
  1088. declick
  1089. fore%=&FFFFFF00
  1090. back%=&00000000
  1091. 262291,,0,1,14,back%,fore%,&65757254
  1092. size%=32
  1093. 262273,,"homerton.Medium",size%*16,size%*12,0,0
  1094. font%
  1095. width%=1200
  1096. px%=32
  1097. py%=900
  1098. spa%=-64
  1099. text$=ml$(mi)
  1100. 264015,font%,back%,fore%,14
  1101. $mt%=text$
  1102. (text$)
  1103. loc%=0
  1104. cy%=py%
  1105. cb%!0=0
  1106. cb%!4=0
  1107. cb%!8=0
  1108. cb%!12=0
  1109. cb%!16=32
  1110. 262281,,width%,1024
  1111. ,jx%,jy%
  1112. 262305,font%,mt%+loc%,800,jx%,jy%,cb%
  1113. ,split%
  1114. split%-=mt%+loc%
  1115.  SYS "Font_Paint",font%,MID$(text$,loc%+1,split%),784,px%,cy%
  1116. 262305,font%,mt%+loc%,800,jx%,jy%,cb%
  1117. ,split%
  1118. split%-=mt%+loc%
  1119.  loc% += split% + 1
  1120.  cy%  += spa%
  1121.  UNTIL loc% >= l%
  1122. px%+width%,cy%
  1123. (loc%+split%+1)<=l%
  1124. 262278,font%,
  1125. text$,loc%+1,split%),785,px%,cy%
  1126. 262278,font%,
  1127. text$,loc%+1,split%),784,px%,cy%
  1128. loc%+=split%+1
  1129. cy%+=spa%
  1130.  loc%>=l%
  1131. dc=240:dd=-1
  1132.  mx,my,mb
  1133. font(dir$,500,500,48,0,dc,0)
  1134. $dc=dc-dd*4:
  1135.  dc<8
  1136. dc>255
  1137.  dd=-dd
  1138.  mb=1
  1139.  gm=gm+1:
  1140.  mx,my,mb:
  1141.  mb=0
  1142.  mb=4:
  1143. declick
  1144. "Squashed_Load","<BIXG$Dir>.Base",!out%
  1145. X=X+128
  1146. MX=MX+128:HSX=HSX+128
  1147. BX=BX+128
  1148. LX=LX+128
  1149. RX=RX+128:RLX=RLX+128
  1150. FBX=FBX+128
  1151. VX=VX+128
  1152. BTX=BTX+128:BTLX=BTLX+128
  1153. TM:tx(A)=tx(A)+128:elx(A)=elx(A)+128:ex(A)=ex(A)+128:hx(A)=hx(A)+128:bbx(A)=bbx(A)+128:bx(A)=bx(A)+128
  1154. px(A)=px(A)+128:
  1155.  MX>1280
  1156.  MX=MX-2560
  1157. X=X-128
  1158. MX=MX-128:HSX=HSX-128
  1159. BX=BX-128
  1160. LX=LX-128
  1161. RX=RX-128:RLX=RLX-128
  1162. FBX=FBX-128
  1163. VX=VX-128
  1164. BTX=BTX-128:BTLY=BTLY-128
  1165. TM:tx(A)=tx(A)-128:elx(A)=elx(A)-128:ex(A)=ex(A)-128:hx(A)=hx(A)-128:bbx(A)=bbx(A)-128:bx(A)=bx(A)-128
  1166. px(A)=px(A)-128:
  1167.  MX<-1280
  1168.  MX=MX+2560
  1169. Y=Y-128
  1170. MY=MY-128:HSY=HSY-128
  1171. BY=BY-128
  1172. SY=SY-128
  1173. LY=LY-128
  1174. RY=RY-128:RLY=RLY-128
  1175. FBY=FBY-128
  1176. VY=VY-128
  1177. BTY=BTY-128:BTLY=BTLY-128
  1178. TM:ty(A)=ty(A)-128:ely(A)=ely(A)-128:ey(A)=ey(A)-128:by(A)=by(A)-128:hy(A)=hy(A)-128:bby(A)=bby(A)-128
  1179. Y=Y+128
  1180. MY=MY+128:HSY=HSY+128
  1181. BY=BY+128
  1182. SY=SY+128
  1183. LY=LY+128
  1184. RY=RY+128:RLY=RLY+128
  1185. FBY=FBY+128
  1186. VY=VY+128
  1187. BTY=BTY+128:BTLY=BTLY+128
  1188. TM:ty(A)=ty(A)+128:ely(A)=ely(A)+128:ey(A)=ey(A)+128:by(A)=by(A)+128:hy(A)=hy(A)+128:bby(A)=bby(A)+128
  1189.  X<640
  1190.  X>640
  1191.  Y<512
  1192.  Y>512
  1193.  Y=512
  1194. X=640
  1195. (-26)
  1196. (-122)
  1197. (-42)
  1198. (-58)
  1199. resetini
  1200. G)b(A)=0:h(A)=0:bb(A)=0:px(A)=0:ps(A)=0
  1201. X=640:Y=512:SPY=0:OSPY=0
  1202. G=999:GA=0:FO=0:OG=0
  1203. K5BTS=0:BTX=0:BTY=0:BTL=0:BTLX=0:BTLY=0:golf=0:gd=4
  1204. L=0:LX=0:LY=0:LDX=0
  1205. BX=640:BY=448
  1206. SY=1024
  1207. s1%=2:s2%=1
  1208. MX=0:MY=-512
  1209. HS=0:HSX=0:HSY=0:HE=0
  1210. V=0:VX=10:VS=0:SM=0:VY=0
  1211. BB=0:BBX=0:BBY=0
  1212. sp=1:
  1213. =0:pause=0
  1214. DONE=0
  1215.  MIS=1
  1216.  MIS=2
  1217.  MIS=3
  1218.  MIS=4
  1219.  MIS=5
  1220.  MIS=6
  1221.  MIS=7
  1222.  MIS=8
  1223.  MIS=9
  1224.  MIS=10
  1225. ini10
  1226.  MIS<>0
  1227. iniland
  1228. iniwat
  1229. iniberg
  1230. TM:t(A)=1:tx(A)=
  1231. (1280):ty(A)=MY:ts(A)=1:tp(A)=3:hf(A)=1
  1232.  BB=1
  1233.  bbx(A)=BBX+(A*128):bby(A)=BBY:bb(A)=1
  1234. lur=0:lug=180:lub=240
  1235.  lur=200:lub=200:lug=200
  1236.  MIS=8 
  1237.  MIS=9 
  1238.  lur=60:lub=120:lug=120
  1239.  MIS<>0
  1240. lucht
  1241. youhit
  1242.  DEAD=1
  1243. q"G=G-50:
  1244. newexpl(X-96,Y-64,2,1)
  1245. 3,-15,50,1
  1246. hi=hi+1
  1247. newboom
  1248.  DEAD>0
  1249. zx(A)=X+(((PIX/2)-A)*4)
  1250. zy(A)=Y+(((PIX/2)-A)*4)
  1251. zd(A)=
  1252. (PIX)*2
  1253. newexpl(X-256,Y-128,4,1)
  1254.  DEAD=0
  1255.  DEAD=1
  1256. zx(A)=zx(A)+((PIX/2)-A)
  1257. zy(A)=zy(A)+zd(A)
  1258. zd(A)=zd(A)-1
  1259. col(A*(240/PIX),0,0,0)
  1260.  zx(A),zy(A)
  1261. savehi
  1262. detect_writeprotect=
  1263. ("<BIX$Dir>.Hiscore")
  1264. #X,hi(A),hi$(A)
  1265. *CLOSE
  1266. loadhi
  1267. ("<BIX$Dir>.Hiscore")
  1268. #X,hi(A),hi$(A)
  1269. *CLOSE
  1270. lucht
  1271. lr2=lur
  1272. lg2=lug
  1273. lb2=lub
  1274.  A=240
  1275.  lr2>A 
  1276.  lr2=A
  1277.  lb2>A 
  1278.  lb2=A
  1279.  lg2>A 
  1280.  lg2=A
  1281. col2(lr2,lg2,lb2,0)
  1282. 0,240-A:
  1283. 97,1280,8
  1284. 46,256+16,area%,"lucht",0,0,0,1280,240
  1285. 46,256+24,area%,"lucht"
  1286. ,,lucht
  1287. newgame
  1288. MIS=0:W=0
  1289. resetini
  1290. SC=0:s1%=2:s2%=1
  1291. sp=1:
  1292. =0:pause=0
  1293. gm=0:TE=0:DEAD=0
  1294. 10:md(A)=0:
  1295.  A:TM=10
  1296. TM:t(A)=1:tx(A)=
  1297. (1280):ty(A)=MY:ts(A)=1:tp(A)=3:hf(A)=1
  1298.  BB=1
  1299.  bbx(A)=BBX+(A*128):bby(A)=BBY:bb(A)=1
  1300.  A:hi=0:fi=0:he=0:ta=0:ee=0
  1301. done%=
  1302. vol(eX,eY)
  1303. Xd=X-eX
  1304. Yd=Y-eY
  1305. ((Xd*Xd)+(Yd*Yd))
  1306.  D>2000 D=2000
  1307. Vl=2000-D
  1308. Vl=-15*( Vl/2000)
  1309. newhi
  1310.  SC>hi(A)
  1311.  list=A
  1312. (list+1)
  1313. !hi(A)=hi(A-1):hi$(A)=hi$(A-1)
  1314. hi(list)=SC
  1315.     *FX21
  1316. 6,112,1:
  1317. 6,112,2:
  1318. 6,113,1
  1319. inicols
  1320. font("Well done",256,800,64,240,240,0)
  1321. 256,800-32:
  1322. 964,800-32
  1323. font("Please indentify yourself:",164,640,32,0,240,240)
  1324.  gm=1
  1325. font("Sorry, but you are cheating! Click mouse to continue",128,500,16,240,240,240):
  1326. 6,113,0:
  1327.  X,Y,B:
  1328.  B<>0:
  1329. fade2:
  1330. fade4:NAME$="GEK Programs":
  1331. fade1:
  1332. 6,113,2:
  1333. fade3
  1334. NAME$=""
  1335.     *FX21
  1336. (N$)=13
  1337.  o%=2
  1338. (N$)=127
  1339. (N$)=8
  1340.  o%=1:NAME$=
  1341. NAME$,
  1342. (NAME$)-1)
  1343.  o%=0
  1344.  NAME$=NAME$+N$
  1345. 0,128:
  1346. 97,1280,128:
  1347. font(NAME$,0,148,48,240,0,0)
  1348.  o%=2
  1349.  PROCfade2:PROCfade4
  1350. hi$(list)=NAME$:
  1351. savehi
  1352. minfo
  1353.  TM=10
  1354. 16,312,1240,688
  1355. 24,320,1224,672
  1356. 28,1,20,38,1
  1357. miy=900:mid=64
  1358. font("You were hit",64,miy,24,240,240,240)
  1359. font(":"+
  1360.  hi,512,miy,24,240,240,0):miy=miy-mid
  1361. font("You fired",64,miy,24,240,240,240)
  1362. font(":"+
  1363.  fi,512,miy,24,240,240,0):miy=miy-mid
  1364. font("helicopters hit",64,miy,24,240,240,240)
  1365. font(":"+
  1366.  he,512,miy,24,240,240,0):miy=miy-mid
  1367. font("tanks hit",64,miy,24,240,240,240)
  1368. font(":"+
  1369.  ta,512,miy,24,240,240,0):miy=miy-mid
  1370. font("Click Mouse ",320,480,24,0,240,0)
  1371. declick:
  1372.  mx,my,mb:
  1373.  mb<>0:
  1374. declick:mb=0
  1375. "Squashed_Load","<BIXG$Dir>.Base",!out%
  1376. pointer
  1377.  I%=1
  1378.  num%,A$
  1379. XPOS=
  1380. A$,"*")
  1381. YPOS=0
  1382.  X%=0
  1383. P%=dat%+X%*8
  1384.  Y%=0
  1385.  Z%=0
  1386. $N%=(
  1387. A$,Y%*4+Z%/2+1,1)-46)<<Z%
  1388. Q%=Q%+N%
  1389. P%?Y%=Q%
  1390. A$,1)="*"
  1391.  YPOS=X%
  1392. ?block%=0
  1393. block%?1=num%
  1394. block%?2=8
  1395. block%?3=&20
  1396. block%?4=XPOS
  1397. block%?5=YPOS
  1398. block%!6=dat%
  1399. 7,&15,block%
  1400. iniberg
  1401. 46,256+24,area%,"berg"+
  1402. ,,berg
  1403.  MIS=8 
  1404.  MIS=9 
  1405. 46,256+24,area%,"berg3"
  1406. ,,berg
  1407. initialise
  1408. finished%
  1409. "*Filer_Run <BIX$Dir>.Terminate
  1410. 262365
  1411. initialise
  1412. "*IconSprites <BIXG$Dir>.Horror
  1413. selection1%=1
  1414. selection2%=1
  1415. selection3%=1
  1416. selection4%=1
  1417. selection5%=1
  1418. init_application
  1419. init_memory
  1420. init_windows
  1421. init_icons
  1422. init_menus
  1423. init_application
  1424. finished%=
  1425. 262336,200,&4B534154,"BalloonInvaders"
  1426. init_memory
  1427.  block% 255
  1428. init_menus
  1429.  icon_menu% 500
  1430. create_menu(icon_menu%)
  1431. create_menu(menu%)
  1432.  title$,num%:$menu%=title$
  1433. width%=(
  1434. (title$)-2)*16
  1435. 5-menu%!12=&00070207:menu%!20=44:menu%!24=0
  1436. ptr%=menu%+28:
  1437.  i%=1
  1438.  mflags%,subptr%,item$
  1439. 80!ptr%=mflags%:ptr%!4=subptr%:ptr%!8=&7000021
  1440. $(ptr%+12)=item$
  1441. (item$)+1)*16
  1442.  a%>width% width%=a%
  1443. ptr%+=24:
  1444. menu%!16=width%
  1445.   menu's - flag;pointer;name
  1446.     flag : &80 means Last item in menu
  1447.            &0  means Nothing special
  1448.            for dashed underline, add &2
  1449.            for tick, add &1
  1450.            for writable icon, add &4
  1451.  pointer : window or submenu pointer ( variable, e.g. info_window% or s_menu% )
  1452. init_icons
  1453.  standard 3D validations - R1)raised slab, R2)sunken slab, R3)ridge, R4)channel
  1454.                            R5)action button ( slab ), R6)action button ( channel )
  1455.                            R7)editable field
  1456.  std_valid1% 20,std_valid2% 20,std_valid3% 20,std_valid4% 20
  1457.  std_valid5% 20,std_valid6% 20,std_valid7% 100
  1458. SK$std_valid1%="R1":$std_valid2%="R2":$std_valid3%="R3":$std_valid4%="R4"
  1459. TD$std_valid5%="R5":$std_valid6%="R6":$std_valid7%="R7;Pptr_caret"
  1460.  standard option and radio button validations
  1461.  std_radio_valid% 20,std_option_valid% 20
  1462. Y&$std_option_valid%="Soptoff,opton"
  1463. Z)$std_radio_valid%="Sradiooff,radioon"
  1464.  standard 3D RISC OS 3 info-box text icons data
  1465.  info_name% 100,info_purpose% 100,info_author% 100,info_version% 100,info_copyright% 100
  1466. _!$info_name%="BalloonInvaders"
  1467. `&$info_purpose%="Invade by balloon"
  1468. a $info_author%="GEK Programs"
  1469. b.$info_version%="11.12 ( 28 January 1997 )"
  1470. c#$info_copyright%="The Datafile"
  1471.  standard sprite icons name data
  1472.  sprite1% 20
  1473. $sprite1%="ejg"
  1474.  create icon for icon bar
  1475. kAbar_icon%=
  1476. create_icon(-1,0,0,68,68,&3002,"!BallonInv",0,0,0)
  1477.  Create standard 3D RISC OS 3 info-box icons
  1478. nOinfo_icon1%=
  1479. create_icon(info_window%,8,-52,144,44,&17000211,"Name:",0,0,0)
  1480. oSinfo_icon2%=
  1481. create_icon(info_window%,8,-112,144,44,&17000211,"Purpose:",0,0,0)
  1482. pRinfo_icon3%=
  1483. create_icon(info_window%,8,-172,144,44,&17000211,"Author:",0,0,0)
  1484. qSinfo_icon4%=
  1485. create_icon(info_window%,8,-232,144,44,&17000211,"Version:",0,0,0)
  1486. r`info_icon5%=
  1487. create_icon(info_window%,160,-60,404,50,&700031D,"",info_name%,std_valid2%,255)
  1488. sdinfo_icon6%=
  1489. create_icon(info_window%,160,-114,404,50,&700031D,"",info_purpose%,std_valid2%,255)
  1490. tcinfo_icon7%=
  1491. create_icon(info_window%,160,-176,404,50,&700031D,"",info_author%,std_valid2%,255)
  1492. udinfo_icon8%=
  1493. create_icon(info_window%,160,-236,404,50,&700031D,"",info_version%,std_valid2%,255)
  1494. vOinfo_icon4%=
  1495. create_icon(info_window%,8,-292,144,44,&17000211,"For:",0,0,0)
  1496. wfinfo_icon9%=
  1497. create_icon(info_window%,160,-296,404,50,&700031D,"",info_copyright%,std_valid2%,255)
  1498. xQinfo_icon10%=
  1499. create_icon(info_window%,632,-177,240,44,&11A,"",sprite1%,1,11)
  1500. create_icon(window%,x%,y%,w%,h%,flag%,text$,ptr1%,ptr2%,ptr3%)
  1501. !block%=window%
  1502. block%!4=x%
  1503. block%!8=y%
  1504. block%!12=x%+w%
  1505. block%!16=y%+h%
  1506. block%!20=flag%
  1507.  ptr1%=0
  1508. $(block%+24)=text$
  1509. block%!24=ptr1%
  1510. block%!28=ptr2%
  1511. block%!32=ptr3%
  1512. 262338,,block%
  1513. handle%
  1514. =handle%
  1515. init_windows
  1516. Pinfo_window%=
  1517. create_window(0,0,600,314,346,0,-1,&8C000012,"Program info",0)
  1518. create_window(x%,y%,w%,h%,extx%,exty%,behind%,flags%,title$,iconnum%)
  1519. !block%=x%
  1520. block%!4=y%
  1521. block%!8=x%+w%
  1522. block%!12=y%+h%
  1523. block%!16=0
  1524. block%!20=0
  1525. block%!24=behind%
  1526. block%!28=flags%
  1527. block%?32=7
  1528. block%?33=2
  1529. block%?34=7
  1530. block%?35=1
  1531. block%?36=3
  1532. block%?37=1
  1533. block%?38=12
  1534. block%!40=0
  1535. block%!44=-h%-exty%
  1536. block%!48=w%+extx%
  1537. block%!52=0
  1538. block%!56=&19
  1539. block%!60=3<<12
  1540. block%!64=0
  1541. block%!68=0
  1542. $(block%+72)=title$
  1543. block%!84=iconnum%
  1544. 262337,,block%
  1545. handle%
  1546. =handle%
  1547. open_window(window%)
  1548. !block%=window%
  1549. 262347,,block%
  1550. 262341,,block%
  1551. 262343,0,block%
  1552. reason%
  1553.  reason%
  1554. 262341,,block%
  1555. 262342,,block%
  1556. click(block%!12,block%!16)
  1557. startsave
  1558. keypress(block%!24)
  1559. select_menu
  1560. 17,18:
  1561. receive
  1562. receive
  1563.  block%!16
  1564. 0:finished%=
  1565. datasave
  1566.  WHEN3:PROCdataload_wimp(block%!40)
  1567. click(window%,icon%)
  1568.  window%
  1569. click_on_iconbar(block%!8)
  1570. click_on_iconbar(button%)
  1571.  button%
  1572. game:
  1573. "QTM_Stop":
  1574. 262371,m%
  1575. 262356,,icon_menu%,!block%-64,(96+(3*44)+24)
  1576. select_menu
  1577. item%=!block%
  1578. 262351,,block%
  1579. button%=block%!8
  1580.  item%
  1581. 1:*Filer_Run "<BIX$Dir>.Story"
  1582.  finished%=
  1583.  button%=1
  1584. 262356,,icon_menu%,0,0
  1585. A!in%=148:in%!4=150:in%!8=-1:
  1586.  "OS_ReadVduVariables",in%,out%
  1587.  "Squashed_Load","<BIXG$Dir>.Done",!out%
  1588.  "QTM_Load","<BIXS$Dir>._Songs.Affair"
  1589. *QTMStart
  1590.  A=1 
  1591.  WD$:
  1592. 0, 57 
  1593.  196:
  1594. 300,672:
  1595. 97,748,96:
  1596. font2(WD$(A),300,700,1):
  1597. >250:
  1598. font2(text$,x,y,size):r=240:g=120:b=80
  1599. b2=240:g2=176:r2=112
  1600.  size=0 
  1601.  r=r2:g=g2:b=b2
  1602. size=24
  1603. font$="Homerton.Medium"
  1604.  "Font_FindFont",,font$,size*24,size*16,0,0 
  1605.  handle%
  1606.  fore%=(b<<24)+(g<<16)+(r<<8)
  1607. #back%=(b2<<24)+(g2<<16)+(r2<<8)
  1608.  "ColourTrans_SetFontColours",handle%,back%,fore%,14
  1609.  "Font_Paint",handle%,text$,784,x,y
  1610.  *** Add to detect write protection, BIX is now able to
  1611.  run from read-only devices...wow
  1612. detect_writeprotect
  1613.  "XOS_CLI","Save <BIX$Dir>.T 0 0" 
  1614.  ok=6 
  1615.  "XOS_CLI","Delete <BIX$Dir>.T" 
  1616.  ok=7 
  1617.  .....*..........................
  1618.  ................................
  1619.  ................................
  1620.  ................................
  1621.  ................................
  1622.  ...........//...................
  1623.  ........../0/...................
  1624.  ........./00/...................
  1625.  ......../000/...................
  1626.  ......./0000//..................
  1627.  ....../0000000//................
  1628.  ...../0000000000//..............*
  1629.  ...../000000000000/.............
  1630.  ....../000000000000/............
  1631.  ......./0000//000000/...........
  1632.  ......../000/.//0000/...........
  1633.  ........./00/.../0000/..........
  1634.  ........../0/..../000/..........
  1635.  ...........//..../0000/.........
  1636.  /////............./000/.........
  1637.  /000/............./000/.........
  1638.  /000/............./000/.........
  1639.  /000/............./000/.........
  1640.  /0000/.........../0000/.........
  1641.  ./000/.........../000/..........
  1642.  ./0000/........./0000/..........
  1643.  ../0000//.....//0000/...........
  1644.  ../000000/////000000/...........
  1645.  .../000000000000000/............
  1646.  ..../0000000000000/.............
  1647.  .....//000000000//..............
  1648.  .......//00000//................
  1649.  ........./////..................
  1650.  .......*........................
  1651.  /////....../////................
  1652.  /000/....../000/................
  1653.  /0///......///0/................
  1654.  /0/........../0/................
  1655.  ///..........///................
  1656.  .......//.......................
  1657.  .......00.......................
  1658.  ...../0000/.....................*
  1659.  ...../0000/.....................
  1660.  .......00.......................
  1661.  .......//.......................
  1662.  ///..........///................
  1663.  /0/........../0/................
  1664.  /0///......///0/................
  1665.  /000/....../000/................
  1666.  /////....../////................
  1667.  ................................
  1668.  ................................
  1669.  ................................
  1670.  ................................
  1671.  ................................
  1672.  ................................
  1673.  ................................
  1674.  ................................
  1675.  ................................
  1676.  ................................
  1677.  ................................
  1678.  ................................
  1679.  ................................
  1680.  ................................
  1681.  ................................
  1682.  ................................
  1683.  "Destroy a bridge>"
  1684.  "To the east, the enemy has a bridge, laid over a small river. This is being used by various trucks to supply the enemy's airfield. Destroy it before the trucks arrive."
  1685.  "Blow up three planes<"
  1686.  "After its defeat, the enemy has quickly rebuilt its factories to produce new and highly advanced fighter aircraft. Destroy the factory and the three planes."
  1687.  "The secret weapon>"
  1688.  "The enemy's secret weapon has been spotted - This must be destroyed or otherwise our planes will be shot down during the invasion."
  1689.  "Destroy airplane carrier<"
  1690.  "In the large bay of the enemy's territory, a huge aircraft carrier has been sighted. This represents a massive weapon, so destroy it. Should give some fireworks."
  1691.  "Photograph headquarters>"
  1692.  "Deep in the deserts of the enemy country, is a secret headquarters. Hover low above it and make a camera picture. Get back to base for a new one if you don't succeed at first."
  1693.  "Night mission>"
  1694.  "Night mission this time, so put on your infra-red glasses and throw some mines near the = spot."
  1695.  "Destroy mines<"
  1696.  "The enemy needs raw metals for its production plants, so destroy those mines to the west. It'll be cold out there, so we'll give you a J
  1697. gerMeister if you get back home."
  1698.  "Blow up a dam="
  1699.  "It's been raining for days now, so a realy good idea has come to us: Let's drown those enemy hounds! Destroy the dam near you and then let's party."
  1700.  "Destroy five oil platforms<"
  1701.  "Err. It seems the enemy has five oil platforms in the sea. We want you to blow the hell out of 'em. They are armoured, though, so you can only hit them at the pipes."
  1702.  "Drop some para's>"
  1703.  "It;s time that the others get to do something too, don't you think? Drop all your para's near the barrage balloons so that they can clear the way into the enemy country."
  1704.  BI v11.12,3
  1705.  &2,info_window%,Info
  1706.  0,-1,Story
  1707.  &80,-1,Quit
  1708.