CheckHit: ' contact with ground
cc1 = ((sy1 + 1) >= gety(-sx1)) ' left pad
cc2 = ((sy2 + 1) >= gety(-sx2)) ' right pad
mingx = 0
mingy = q1
FOR zx
= sx1
TO sx2
' check between pads ty = gety(-zx)
IF ty
< mingy
THEN mingx
= zx: mingy
= ty
i = mingx - sx1
j = sx2 - mingx
GOSUB CWceiling
' car wash
contact = 1
tmt! = 0
py! = py! + rfy ' no time to correct jitter
TexOnLM$ = ""
warp! = 0
lob = 1 ' landed on Borg
vx! = vx! - exv(2)
dead$ = "HIGH SPEED IMPACT!"
dp = 8 + (h - fuel!) \ 25 ' 8 - 12
IF (vy!
> dp
) OR (ABS(vx!
) > 8) THEN ' too fast given load
crash = 1
panelinit = 0
shield = 0
dead$ = "CRASHED"
z = vx! * t + vy! * t
FOR i
= 1 TO rp
' create layer of debris LMrx
(i
) = LMrx
(i
) + RND * z
- (z \
2) LMry
(i
) = gety
(LMrx
(i
)) - RND * 2 - 1 PALETTE green
, 0 ' blank instruments
IF (vy!
> 3) OR (ABS(vx!
) > 3) THEN fb$
= "vehicle damaged"
fb$ = "vehicle severely damaged"
LMdistort ' randomly vary structure
vsd = 1 ' vehicle severely damaged
savea = a + ma
a = 0
py!
= py!
- t
* (ABS(a
) = 45)
' optional, allow ANY part of pad
IF cc1
THEN cd
= -1: cpx
= sx2: cpy
= sy2
+ 1 IF cc2
THEN cd
= 1: cpx
= sx1: cpy
= sy1
+ 1 cpx = cpx + cd
npass = 0
a = a + (cc1 - cc2)
pa:
npass = npass + 1
GOSUB Plotscreen
' show change a = 180 ' upside down
py! = glmax - ny
LMdistort ' optional
cc3 = ((sy1 + 1) >= gety(-sx1))
cc4 = ((sy2 + 1) >= gety(-sx2))
z
= gety
(INT(px!
)) - py!
- ny
+ 5 dead$ = "PUNCTURE DAMAGE"
' dead$ = "PUNCTURE" + STR$(-z)