If Extension_4_013C(4)<-50 Then Extension_4_0328 4,0,0,0,20,1 : Extension_4_0090 4 : N(4)=0
Return
HIT:
For Z=4 To 7
If M(Z-4)=0 Then Goto NOPE
XX= Extension_4_0344(Z)
If N(4)=0 Then Goto NOPE
If XX=-1 Then Goto NOPE
Gosub SPLAT
NOPE:
Next Z
If Extension_4_0344(0)<>-1 Then Add HL,-10 : Boom : Colour 0,$FFF : CT=4 : Gosub HEALTH
Return
SPIN:
XP=(X Mouse-288)*25
YP=(Y Mouse-140)*25
Extension_4_01A6 0,YP,XP,0
If Mouse Key=0 or TM>0 or MS=0 Then Return
Z=1
HMM:
If M(Z)=0 Then Goto SHOT
Inc Z
If Z=4 Then Return
Goto HMM
SHOT:
M(Z)=1
Extension_4_0036 Z+4,"bullet",0,0,0,YP,XP,0
Extension_4_0100 Z+4,750 : TM=8 : Dec MS : Music Off : Sam Play 1
Goto MISSILE
MOVE:
For Z=5 To 7
If M(Z-4)=0 Then Goto OOH
Extension_4_0100 Z,450
If Extension_4_013C(Z)>30000 Then Extension_4_0090 Z : M(Z-4)=0 : Inc MS : Gosub MISSILE : Dec HL : Gosub HEALTH
OOH:
Next Z
Return
ZONS:
For Q=1 To 2
Extension_4_0328 Q,Q,0,0,0,700
Next Q
If N(4)=1 Then Extension_4_0328 4,4,0,0,0,250
For Q=5 To 7
If M(Q-4)=1 Then Extension_4_0328 Q,Q,0,0,0,200
Next Q
Extension_4_0328 0,0,0,0,0,500
Return
Procedure SETUP
Get Disc Fonts
Load ":amos_3d_demos/game.abk"
Extension_4_04D6 ":amos_3d_demos/objects"
Extension_4_0024 : Hide On : Cls 0 : Flash Off
Extension_4_0054 180
Extension_4_0016 "game_ship"
Extension_4_0016 "rocket"
Extension_4_0016 "bullet"
Extension_4_0016 "game"
Extension_4_0016 "over"
Load ":AMOS_3d_demos/samples.abk"
Screen Open 1,320,200,16,Lowres : Screen To Back 1 : Load Iff ":AMOS_3d_demos/gamepic.iff",1 : Screen Hide 1
Screen Open 2,320,20,16,Lowres : Cls 0 : Screen To Front 2 : Screen Display 2,128,230,320,20
Flash Off : Get Palette(1)
Screen 0
Double Buffer : Autoback 0
Screen Copy 1,0,0,320,20 To 2,0,0
End Proc
SPLAT:
SC=SC+ Extension_4_013C(XX)/10 : Extension_4_0328 XX,0,0,-500,20,1 : Extension_4_0090 XX : N(XX)=0 : Music Off : Sam Play 1,1,3500 : M(Z-4)=0 : Extension_4_0328 Z,0,0,500,20,1 : Extension_4_0090 Z : Inc MS : Gosub MISSILE
SCORE:
If SC>999999 Then SC=SC-1000000
SC$=Str$(SC) : SC$=Mid$(SC$,2,7)
If Len(SC$)<7 Then SC$=String$("0",7-Len(SC$))+SC$
Screen 2 : Ink 0,1 : Text 260,12,SC$
Z=Free
Screen 0
Return
MISSILE:
Screen 2 : Ink 0 : Bar 210,5 To 240,13
Screen 0
If MS=0 Then Return
Screen Copy 1,210,5,208+(MS*11),14 To 2,210,5
Return
HEALTH:
HL=Min(HL,183)
HL=Max(HL,0)
Screen 2 : If HL>0 Then Ink 7 : Bar 9,5 To 9+HL,13