Engines
AS _BYTE 'Engines remaining 0-4 Vents
AS _BYTE 'Vents remaining 0-16 (0 explodes ship) Silos
AS _BYTE 'Silos remaining 0-5 ShotsFired
AS _BYTE 'how may shots are currently active Ships
AS _BYTE 'Dreadnaughts destroied Distance
AS _BYTE 'Dreadnaught Distance remaining
CONST TRUE
= -1, FALSE
= NOT TRUE
, SPRITES
= 0, MASK
= 3 CONST Shot
= 1, Bomb
= 2, SGun
= 3, LGun
= 4, STorp
= 5, LTorp
= 6, Trakr
= 7
Layer
(0) = _LOADIMAGE("DFsprit8.bmp") ' Sprite LayerLayer
(2) = _NEWIMAGE(640, 480, 32) 'ship draw layerLayer
(3) = _NEWIMAGE(640, 480, 32) 'screen mask, top 32 and bottom 80 pixels masked
LINE (0, 464)-(639, 479), _RGB32(1, 1, 1), BF
'debugging
LoadDreadnaughtlayout
Xloc%
= 1000: start!
= TIMER DrawDreadnaught Xloc%, -32, 2
ClearLayer 2
Xloc% = Xloc% - 1
IF Xloc%
<= -1000 THEN Xloc%
= 1000 c% = c% + 1
Delta:
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0T
,0V
,0F,0A
,0A
,0I
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,0A
,0A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1V
,1V
,1U
,0A
data 00,00,00,00,00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,0A
data 00,00,00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,1A
,1A
,0A
data 00,00,00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,2T
,2V
,2U
,1A
,0A
data 00,00,00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,1A
,1A
,2A
,2A
,2A
,1A
,0A
data 00,00,00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,1A
,1A
,2T
,2F,2A
,2A
,2A
,1A
,0A
data 00,0T
,0F,0A
,0A
,0A
,0A
,0A
,1T
,1F,1A
,1A
,1A
,1A
,2T
,2A
,1A
,1A
,2A
,2A
,2A
,3T
,3A
,1A
,0A
data 0B
,0A
,0A
,0A
,0A
,0A
,0A
,1L
,1A
,1A
,1A
,1A
,1A
,2B
,3L
,3A
,1A
,1A
,2A
,2A
,3L
,3A
,3A
,1A
,0A
data 0C
,0A
,0A
,0A
,0A
,0A
,0A
,1M
,1A
,1A
,1A
,1A
,1A
,2C
,3M
,3A
,1A
,1A
,2A
,2A
,3M
,3A
,3A
,1A
,0A
data 00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,2J
,2A
,1A
,1A
,2A
,2A
,2A
,3J
,3A
,1A
,0A
data 00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,1A
,1A
,2J
,2G
,2A
,2A
,2A
,1A
,0A
data 00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,1A
,1A
,2J
,2A
,2A
,1A
,0A
data 00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,1A
,2W
,2K
,1A
,0A
data 00,00,00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,1A
,1A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1G
,1A
,1A
,1A
,1A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,1J
,1W
,1W
,1K
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,0A
,0A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0J
,0G
,0A
,0A
,0A
,0A
,0A
,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0J
,0W
,0G
,0A
,0A
,0H
DeltaWepondry:
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2G
,00,00,0E
,0F,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2A
,00,00,00,00,1E
,1F,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2E
,00,00,0I
,0J
,00,00,00,00,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,00,0E
,0F,00,0A
data 00,00,00,00,00,00,00,00,00,00,00,2G
,00,00,0I
,0J
,00,00,2A
,00,00,1E
,1F,00,1A
data 00,00,00,00,00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,0E
,0F,00,00,00,00,00,00,00 data 00,00,00,00,00,00,00,2E
,00,00,0I
,0J
,00,00,00,00,1E
,1F,00,00,2A
,00,0M
,00,00 data 00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,00,00,2A
,00,00,00,00,00,2A
,00,1M
,00,0A
data 00,00,00,2A
,00,00,0I
,0J
,00,00,00,2A
,00,00,00,2C
,00,0M
,2A
,0I
,0J
,00,2C
,00,1A
data 00,2A
,00,0E
,0F,00,0M
,00,2A
,00,0E
,0F,00,00,00,0C
,00,1M
,2A
,00,00,00,0C
,00,00 data 00,2A
,00,1E
,1F,00,1M
,00,2A
,00,1E
,1F,00,00,00,1C
,00,0M
,2A
,00,00,00,1C
,00,00 data 00,00,00,2A
,00,00,0I
,0J
,00,00,00,2A
,00,00,00,2C
,00,1M
,2A
,0I
,0J
,00,2C
,00,0A
data 00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,00,00,2A
,00,00,00,00,00,2A
,00,0M
,00,1A
data 00,00,00,00,00,00,00,2E
,00,00,0I
,0J
,00,00,00,00,0E
,0F,00,00,2A
,00,1M
,00,00 data 00,00,00,00,00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,1E
,1F,00,00,00,00,00,00,00 data 00,00,00,00,00,00,00,00,00,00,00,2G
,00,00,0I
,0J
,00,00,2A
,00,00,0E
,0F,00,0A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,2A
,00,00,0I
,0J
,00,00,00,1E
,1F,00,1A
data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2E
,00,00,0I
,0J
,00,00,00,00,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2A
,00,00,00,00,0E
,0F,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2G
,00,00,1E
,1F,00 data 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
SUB DrawDreadnaught
(Xloc%
, Yloc%
, LayerID%%
) 'find last tile to display
Endx%% = (640 - Xloc%) / 32
Endy%% = (400 - Yloc%) / 32
'range check keep values within array size(or dreadnaught data size)
IF Endx%%
> S.Xsize
THEN Endx%%
= S.Xsize
IF Endy%%
> S.Ysize
THEN Endy%%
= S.Ysize
'find first tile to display
Startx%% = (0 + Xloc%) / 32
Starty%% = (0 + Yloc%) / 32
'make sure value is always negative(-) otherwise start at 0
IF Startx%%
> 0 THEN Startx%%
= 0 IF Starty%%
> 0 THEN Starty%%
= 0 'fix negative value to positive, this means that portion is off screen so
'start at the + array location in other words don't bother with whats off
'screen
FOR y%
= Starty%%
TO Endy%%
FOR x%
= Startx%%
TO Endx%%
layer% = Ship(x%, y%, 0)
xoff% = 16 * (Ship(x%, y%, 1) - 65)
XL% = Xloc% + xoffs% + 0 + x% * 32
YL% = Yloc% + yoff% + y% * 32
IF layer%
> 0 THEN _PUTIMAGE (XL%
, YL%
)-(XL%
+ 32, YL%
+ 32), Layer
(SPRITES
), Layer
(LayerID%%
), (0, 0 + ((layer%
- 1) * 16))-(15, 15 + ((layer%
- 1) * 16)) _PUTIMAGE (XL%
, YL%
)-(XL%
+ 32, YL%
+ 32), Layer
(SPRITES
), Layer
(LayerID%%
), (0 + xoff%
, 0 + (layer%
* 16))-(15 + xoff%
, 15 + (layer%
* 16)) layer% = Arms(x%, y%, 0) + 4
xoff% = 16 * (Arms(x%, y%, 1) - 65)
XL% = Xloc% + xoffs% + 0 + x% * 32
YL% = Yloc% + yoff% + y% * 32
_PUTIMAGE (XL%
, YL%
)-(XL%
+ 32, YL%
+ 32), Layer
(SPRITES
), Layer
(LayerID%%
), (0 + xoff%
, 0 + (layer%
* 16))-(15 + xoff%
, 15 + (layer%
* 16))
SUB LoadDreadnaughtlayout