Skip to navigation

Elite on the BBC Micro

Ship blueprints J [Elite-A]

ELITE-A SHIP BLUEPRINTS FILE J Elite-A is an extended version of BBC Micro Elite by Angus Duggan The original Elite was written by Ian Bell and David Braben and is copyright Acornsoft 1984, and the extra code in Elite-A is copyright Angus Duggan The code on this site is identical to Angus Duggan's source discs (it's just been reformatted, and the label names have been changed to be consistent with the sources for the original BBC Micro disc version on which it is based) The commentary is copyright Mark Moxon, and any misunderstandings or mistakes in the documentation are entirely my fault The terminology and notations used in this commentary are explained at https://www.bbcelite.com/about_site/terminology_used_in_this_commentary.html The deep dive articles referred to in this commentary can be found at https://www.bbcelite.com/deep_dives
This source file produces the following binary file: * S.J.bin
INCLUDE "1-source-files/main-sources/elite-header.h.asm" _RELEASED = (_RELEASE = 1) _SOURCE_DISC = (_RELEASE = 2) _BUG_FIX = (_RELEASE = 3) GUARD &6000 \ Guard against assembling over screen memory
Configuration variables
SHIP_MISSILE = &7F00 \ The address of the missile ship blueprint CODE% = &5600 \ The flight code loads this file at address &5600, at LOAD% = &5600 \ label XX21 ORG CODE%
Name: XX21 [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprints lookup table for the S.J file Deep dive: Ship blueprints in Elite-A
Context: See this variable on its own page References: No direct references to this variable in this source file
.XX21 EQUW SHIP_MISSILE \ MSL = 1 = Missile Missile EQUW SHIP_DODO \ 2 = Dodo space station Station EQUW SHIP_ESCAPE_POD \ ESC = 3 = Escape pod Escape pod EQUW SHIP_PLATE \ PLT = 4 = Alloy plate Cargo EQUW SHIP_CANISTER \ OIL = 5 = Cargo canister Cargo EQUW 0 \ Mining EQUW 0 \ Mining EQUW 0 \ Mining EQUW 0 \ Shuttle EQUW 0 \ Transporter EQUW 0 \ Trader EQUW SHIP_MORAY \ 12 = Moray Trader EQUW SHIP_FER_DE_LANCE \ 13 = Fer-de-lance Trader EQUW 0 \ Large ship EQUW 0 \ Small ship EQUW SHIP_VIPER \ COPS = 16 = Viper Cop EQUW SHIP_MAMBA \ 17 = Mamba Pirate EQUW SHIP_SIDEWINDER \ 18 = Sidewinder Pirate EQUW SHIP_GECKO \ 19 = Gecko Pirate EQUW SHIP_BUSHMASTER \ 20 = Bushmaster Pirate EQUW 0 \ Pirate EQUW SHIP_MORAY \ 22 = Moray Pirate EQUW SHIP_WORM \ 23 = Worm Pirate EQUW SHIP_FER_DE_LANCE \ 24 = Fer-de-lance Pirate EQUW SHIP_FER_DE_LANCE \ 25 = Fer-de-lance Bounty hunter EQUW SHIP_BUSHMASTER \ 26 = Bushmaster Bounty hunter EQUW SHIP_MORAY \ 27 = Moray Bounty hunter EQUW SHIP_MAMBA \ 28 = Mamba Bounty hunter EQUW 0 \ Thargoid EQUW 0 \ Thargoid EQUW 0 \ Constrictor
Name: E% [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprints default NEWB flags for the S.J file Deep dive: Ship blueprints in Elite-A Advanced tactics with the NEWB flags
Context: See this variable on its own page References: No direct references to this variable in this source file
.E% EQUB %00000000 \ Missile EQUB %01000000 \ Dodo space station Cop EQUB %01000001 \ Escape pod Trader, cop EQUB %00000000 \ Alloy plate EQUB %00000000 \ Cargo canister EQUB 0 EQUB 0 EQUB 0 EQUB 0 EQUB 0 EQUB 0 EQUB %10100001 \ Moray Trader, innocent, escape pod EQUB %10100000 \ Fer-de-lance Innocent, escape pod EQUB 0 EQUB 0 EQUB %11000010 \ Viper Bounty hunter, cop, escape pod EQUB %10001100 \ Mamba Hostile, pirate, escape pod EQUB %00001100 \ Sidewinder Hostile, pirate EQUB %10000100 \ Gecko Hostile, escape pod EQUB %10001100 \ Bushmaster Hostile, pirate, escape pod EQUB 0 EQUB %10001100 \ Moray Hostile, pirate, escape pod EQUB %00000100 \ Worm Hostile EQUB %10001100 \ Fer-de-lance Hostile, pirate, escape pod EQUB %10000010 \ Fer-de-lance Bounty hunter, escape pod EQUB %10100010 \ Bushmaster Bounty hunter, innocent, escape pod EQUB %10000010 \ Moray Bounty hunter, escape pod EQUB %10100010 \ Mamba Bounty hunter, innocent, escape pod EQUB 0 EQUB 0 EQUB 0
Name: VERTEX [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding vertices to ship blueprints Deep dive: Ship blueprints
Context: See this macro on its own page References: No direct references to this macro in this source file

The following macro is used to build the ship blueprints: VERTEX x, y, z, face1, face2, face3, face4, visibility See the deep dive on "Ship blueprints" for details of how vertices are stored in the ship blueprints, and the deep dive on "Drawing ships" for information on how vertices are used to draw 3D wiremesh ships. Arguments: x The vertex's x-coordinate y The vertex's y-coordinate z The vertex's z-coordinate face1 The number of face 1 associated with this vertex face2 The number of face 2 associated with this vertex face3 The number of face 3 associated with this vertex face4 The number of face 4 associated with this vertex visibility The visibility distance, beyond which the vertex is not shown
MACRO VERTEX x, y, z, face1, face2, face3, face4, visibility IF x < 0 s_x = 1 << 7 ELSE s_x = 0 ENDIF IF y < 0 s_y = 1 << 6 ELSE s_y = 0 ENDIF IF z < 0 s_z = 1 << 5 ELSE s_z = 0 ENDIF s = s_x + s_y + s_z + visibility f1 = face1 + (face2 << 4) f2 = face3 + (face4 << 4) ax = ABS(x) ay = ABS(y) az = ABS(z) EQUB ax, ay, az, s, f1, f2 ENDMACRO
Name: EDGE [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding edges to ship blueprints Deep dive: Ship blueprints
Context: See this macro on its own page References: No direct references to this macro in this source file

The following macro is used to build the ship blueprints: EDGE vertex1, vertex2, face1, face2, visibility See the deep dive on "Ship blueprints" for details of how edges are stored in the ship blueprints, and the deep dive on "Drawing ships" for information on how edges are used to draw 3D wiremesh ships. Arguments: vertex1 The number of the vertex at the start of the edge vertex1 The number of the vertex at the end of the edge face1 The number of face 1 associated with this edge face2 The number of face 2 associated with this edge visibility The visibility distance, beyond which the edge is not shown
MACRO EDGE vertex1, vertex2, face1, face2, visibility f = face1 + (face2 << 4) EQUB visibility, f, vertex1 << 2, vertex2 << 2 ENDMACRO
Name: FACE [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding faces to ship blueprints Deep dive: Ship blueprints
Context: See this macro on its own page References: No direct references to this macro in this source file

The following macro is used to build the ship blueprints: FACE normal_x, normal_y, normal_z, visibility See the deep dive on "Ship blueprints" for details of how faces are stored in the ship blueprints, and the deep dive on "Drawing ships" for information on how faces are used to draw 3D wiremesh ships. Arguments: normal_x The face normal's x-coordinate normal_y The face normal's y-coordinate normal_z The face normal's z-coordinate visibility The visibility distance, beyond which the edge is always shown
MACRO FACE normal_x, normal_y, normal_z, visibility IF normal_x < 0 s_x = 1 << 7 ELSE s_x = 0 ENDIF IF normal_y < 0 s_y = 1 << 6 ELSE s_y = 0 ENDIF IF normal_z < 0 s_z = 1 << 5 ELSE s_z = 0 ENDIF s = s_x + s_y + s_z + visibility ax = ABS(normal_x) ay = ABS(normal_y) az = ABS(normal_z) EQUB s, ax, ay, az ENDMACRO
Name: SHIP_DODO [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Dodecahedron ("Dodo") space station Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_DODO
.SHIP_DODO EQUB 0 \ Max. canisters on demise = 0 EQUW 180 * 180 \ Targetable area = 180 * 180 EQUB LO(SHIP_DODO_EDGES - SHIP_DODO) \ Edges data offset (low) EQUB LO(SHIP_DODO_FACES - SHIP_DODO) \ Faces data offset (low) EQUB 97 \ Max. edge count = (97 - 1) / 4 = 24 EQUB 0 \ Gun vertex = 0 EQUB 54 \ Explosion count = 12, as (4 * n) + 6 = 54 EQUB 144 \ Number of vertices = 144 / 6 = 24 EQUB 34 \ Number of edges = 34 EQUW 0 \ Bounty = 0 EQUB 48 \ Number of faces = 48 / 4 = 12 EQUB 125 \ Visibility distance = 125 EQUB 240 \ Max. energy = 240 EQUB 0 \ Max. speed = 0 EQUB HI(SHIP_DODO_EDGES - SHIP_DODO) \ Edges data offset (high) EQUB HI(SHIP_DODO_FACES - SHIP_DODO) \ Faces data offset (high) EQUB 0 \ Normals are scaled by = 2^0 = 1 EQUB %00000000 \ Laser power = 0 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 150, 196, 1, 0, 5, 5, 31 \ Vertex 0 VERTEX 143, 46, 196, 1, 0, 2, 2, 31 \ Vertex 1 VERTEX 88, -121, 196, 2, 0, 3, 3, 31 \ Vertex 2 VERTEX -88, -121, 196, 3, 0, 4, 4, 31 \ Vertex 3 VERTEX -143, 46, 196, 4, 0, 5, 5, 31 \ Vertex 4 VERTEX 0, 243, 46, 5, 1, 6, 6, 31 \ Vertex 5 VERTEX 231, 75, 46, 2, 1, 7, 7, 31 \ Vertex 6 VERTEX 143, -196, 46, 3, 2, 8, 8, 31 \ Vertex 7 VERTEX -143, -196, 46, 4, 3, 9, 9, 31 \ Vertex 8 VERTEX -231, 75, 46, 5, 4, 10, 10, 31 \ Vertex 9 VERTEX 143, 196, -46, 6, 1, 7, 7, 31 \ Vertex 10 VERTEX 231, -75, -46, 7, 2, 8, 8, 31 \ Vertex 11 VERTEX 0, -243, -46, 8, 3, 9, 9, 31 \ Vertex 12 VERTEX -231, -75, -46, 9, 4, 10, 10, 31 \ Vertex 13 VERTEX -143, 196, -46, 6, 5, 10, 10, 31 \ Vertex 14 VERTEX 88, 121, -196, 7, 6, 11, 11, 31 \ Vertex 15 VERTEX 143, -46, -196, 8, 7, 11, 11, 31 \ Vertex 16 VERTEX 0, -150, -196, 9, 8, 11, 11, 31 \ Vertex 17 VERTEX -143, -46, -196, 10, 9, 11, 11, 31 \ Vertex 18 VERTEX -88, 121, -196, 10, 6, 11, 11, 31 \ Vertex 19 VERTEX -16, 32, 196, 0, 0, 0, 0, 30 \ Vertex 20 VERTEX -16, -32, 196, 0, 0, 0, 0, 30 \ Vertex 21 VERTEX 16, 32, 196, 0, 0, 0, 0, 23 \ Vertex 22 VERTEX 16, -32, 196, 0, 0, 0, 0, 23 \ Vertex 23 .SHIP_DODO_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 1, 0, 31 \ Edge 0 EDGE 1, 2, 2, 0, 31 \ Edge 1 EDGE 2, 3, 3, 0, 31 \ Edge 2 EDGE 3, 4, 4, 0, 31 \ Edge 3 EDGE 4, 0, 5, 0, 31 \ Edge 4 EDGE 5, 10, 6, 1, 31 \ Edge 5 EDGE 10, 6, 7, 1, 31 \ Edge 6 EDGE 6, 11, 7, 2, 31 \ Edge 7 EDGE 11, 7, 8, 2, 31 \ Edge 8 EDGE 7, 12, 8, 3, 31 \ Edge 9 EDGE 12, 8, 9, 3, 31 \ Edge 10 EDGE 8, 13, 9, 4, 31 \ Edge 11 EDGE 13, 9, 10, 4, 31 \ Edge 12 EDGE 9, 14, 10, 5, 31 \ Edge 13 EDGE 14, 5, 6, 5, 31 \ Edge 14 EDGE 15, 16, 11, 7, 31 \ Edge 15 EDGE 16, 17, 11, 8, 31 \ Edge 16 EDGE 17, 18, 11, 9, 31 \ Edge 17 EDGE 18, 19, 11, 10, 31 \ Edge 18 EDGE 19, 15, 11, 6, 31 \ Edge 19 EDGE 0, 5, 5, 1, 31 \ Edge 20 EDGE 1, 6, 2, 1, 31 \ Edge 21 EDGE 2, 7, 3, 2, 31 \ Edge 22 EDGE 3, 8, 4, 3, 31 \ Edge 23 EDGE 4, 9, 5, 4, 31 \ Edge 24 EDGE 10, 15, 7, 6, 31 \ Edge 25 EDGE 11, 16, 8, 7, 31 \ Edge 26 EDGE 12, 17, 9, 8, 31 \ Edge 27 EDGE 13, 18, 10, 9, 31 \ Edge 28 EDGE 14, 19, 10, 6, 31 \ Edge 29 EDGE 20, 21, 0, 0, 30 \ Edge 30 EDGE 21, 23, 0, 0, 20 \ Edge 31 EDGE 23, 22, 0, 0, 23 \ Edge 32 EDGE 22, 20, 0, 0, 20 \ Edge 33 .SHIP_DODO_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 0, 196, 31 \ Face 0 FACE 103, 142, 88, 31 \ Face 1 FACE 169, -55, 89, 31 \ Face 2 FACE 0, -176, 88, 31 \ Face 3 FACE -169, -55, 89, 31 \ Face 4 FACE -103, 142, 88, 31 \ Face 5 FACE 0, 176, -88, 31 \ Face 6 FACE 169, 55, -89, 31 \ Face 7 FACE 103, -142, -88, 31 \ Face 8 FACE -103, -142, -88, 31 \ Face 9 FACE -169, 55, -89, 31 \ Face 10 FACE 0, 0, -196, 31 \ Face 11
Name: SHIP_ESCAPE_POD [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for an escape pod Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_ESCAPE_POD
.SHIP_ESCAPE_POD EQUB 0 + (2 << 4) \ Max. canisters on demise = 0 \ Market item when scooped = 2 + 1 = 3 (slaves) EQUW 16 * 16 \ Targetable area = 16 * 16 EQUB LO(SHIP_ESCAPE_POD_EDGES - SHIP_ESCAPE_POD) \ Edges data offset (low) EQUB LO(SHIP_ESCAPE_POD_FACES - SHIP_ESCAPE_POD) \ Faces data offset (low) EQUB 25 \ Max. edge count = (25 - 1) / 4 = 6 EQUB 0 \ Gun vertex = 0 EQUB 22 \ Explosion count = 4, as (4 * n) + 6 = 22 EQUB 24 \ Number of vertices = 24 / 6 = 4 EQUB 6 \ Number of edges = 6 EQUW 0 \ Bounty = 0 EQUB 16 \ Number of faces = 16 / 4 = 4 EQUB 8 \ Visibility distance = 8 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 17 \ Max. energy = 17 \ --- And replaced by: --------------------------------> EQUB 8 \ Max. energy = 8 \ --- End of replacement ------------------------------> EQUB 8 \ Max. speed = 8 EQUB HI(SHIP_ESCAPE_POD_EDGES - SHIP_ESCAPE_POD) \ Edges data offset (high) EQUB HI(SHIP_ESCAPE_POD_FACES - SHIP_ESCAPE_POD) \ Faces data offset (high) EQUB 4 \ Normals are scaled by = 2^4 = 16 EQUB %00000000 \ Laser power = 0 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX -7, 0, 36, 2, 1, 3, 3, 31 \ Vertex 0 VERTEX -7, -14, -12, 2, 0, 3, 3, 31 \ Vertex 1 VERTEX -7, 14, -12, 1, 0, 3, 3, 31 \ Vertex 2 VERTEX 21, 0, 0, 1, 0, 2, 2, 31 \ Vertex 3 .SHIP_ESCAPE_POD_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 3, 2, 31 \ Edge 0 EDGE 1, 2, 3, 0, 31 \ Edge 1 EDGE 2, 3, 1, 0, 31 \ Edge 2 EDGE 3, 0, 2, 1, 31 \ Edge 3 EDGE 0, 2, 3, 1, 31 \ Edge 4 EDGE 3, 1, 2, 0, 31 \ Edge 5 .SHIP_ESCAPE_POD_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 52, 0, -122, 31 \ Face 0 FACE 39, 103, 30, 31 \ Face 1 FACE 39, -103, 30, 31 \ Face 2 FACE -112, 0, 0, 31 \ Face 3
Name: SHIP_CANISTER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a cargo canister Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_CANISTER
.SHIP_CANISTER EQUB 0 \ Max. canisters on demise = 0 EQUW 20 * 20 \ Targetable area = 20 * 20 EQUB LO(SHIP_CANISTER_EDGES - SHIP_CANISTER) \ Edges data offset (low) EQUB LO(SHIP_CANISTER_FACES - SHIP_CANISTER) \ Faces data offset (low) EQUB 49 \ Max. edge count = (49 - 1) / 4 = 12 EQUB 0 \ Gun vertex = 0 EQUB 18 \ Explosion count = 3, as (4 * n) + 6 = 18 EQUB 60 \ Number of vertices = 60 / 6 = 10 EQUB 15 \ Number of edges = 15 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUW 0 \ Bounty = 0 \ --- And replaced by: --------------------------------> EQUW 1 \ Bounty = 1 \ --- End of replacement ------------------------------> EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 12 \ Visibility distance = 12 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 17 \ Max. energy = 17 \ --- And replaced by: --------------------------------> EQUB 8 \ Max. energy = 8 \ --- End of replacement ------------------------------> EQUB 15 \ Max. speed = 15 EQUB HI(SHIP_CANISTER_EDGES - SHIP_CANISTER) \ Edges data offset (high) EQUB HI(SHIP_CANISTER_FACES - SHIP_CANISTER) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 EQUB %00000000 \ Laser power = 0 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 24, 16, 0, 0, 1, 5, 5, 31 \ Vertex 0 VERTEX 24, 5, 15, 0, 1, 2, 2, 31 \ Vertex 1 VERTEX 24, -13, 9, 0, 2, 3, 3, 31 \ Vertex 2 VERTEX 24, -13, -9, 0, 3, 4, 4, 31 \ Vertex 3 VERTEX 24, 5, -15, 0, 4, 5, 5, 31 \ Vertex 4 VERTEX -24, 16, 0, 1, 5, 6, 6, 31 \ Vertex 5 VERTEX -24, 5, 15, 1, 2, 6, 6, 31 \ Vertex 6 VERTEX -24, -13, 9, 2, 3, 6, 6, 31 \ Vertex 7 VERTEX -24, -13, -9, 3, 4, 6, 6, 31 \ Vertex 8 VERTEX -24, 5, -15, 4, 5, 6, 6, 31 \ Vertex 9 .SHIP_CANISTER_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 0, 1, 31 \ Edge 0 EDGE 1, 2, 0, 2, 31 \ Edge 1 EDGE 2, 3, 0, 3, 31 \ Edge 2 EDGE 3, 4, 0, 4, 31 \ Edge 3 EDGE 0, 4, 0, 5, 31 \ Edge 4 EDGE 0, 5, 1, 5, 31 \ Edge 5 EDGE 1, 6, 1, 2, 31 \ Edge 6 EDGE 2, 7, 2, 3, 31 \ Edge 7 EDGE 3, 8, 3, 4, 31 \ Edge 8 EDGE 4, 9, 4, 5, 31 \ Edge 9 EDGE 5, 6, 1, 6, 31 \ Edge 10 EDGE 6, 7, 2, 6, 31 \ Edge 11 EDGE 7, 8, 3, 6, 31 \ Edge 12 EDGE 8, 9, 4, 6, 31 \ Edge 13 EDGE 9, 5, 5, 6, 31 \ Edge 14 .SHIP_CANISTER_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 96, 0, 0, 31 \ Face 0 FACE 0, 41, 30, 31 \ Face 1 FACE 0, -18, 48, 31 \ Face 2 FACE 0, -51, 0, 31 \ Face 3 FACE 0, -18, -48, 31 \ Face 4 FACE 0, 41, -30, 31 \ Face 5 FACE -96, 0, 0, 31 \ Face 6
Name: SHIP_VIPER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Viper Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_VIPER
.SHIP_VIPER EQUB 0 \ Max. canisters on demise = 0 EQUW 75 * 75 \ Targetable area = 75 * 75 EQUB LO(SHIP_VIPER_EDGES - SHIP_VIPER) \ Edges data offset (low) EQUB LO(SHIP_VIPER_FACES - SHIP_VIPER) \ Faces data offset (low) EQUB 77 \ Max. edge count = (77 - 1) / 4 = 19 EQUB 0 \ Gun vertex = 0 EQUB 42 \ Explosion count = 9, as (4 * n) + 6 = 42 EQUB 90 \ Number of vertices = 90 / 6 = 15 EQUB 20 \ Number of edges = 20 EQUW 0 \ Bounty = 0 EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 23 \ Visibility distance = 23 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 100 \ Max. energy = 100 \ --- And replaced by: --------------------------------> EQUB 91 \ Max. energy = 91 \ --- End of replacement ------------------------------> EQUB 32 \ Max. speed = 32 EQUB HI(SHIP_VIPER_EDGES - SHIP_VIPER) \ Edges data offset (high) EQUB HI(SHIP_VIPER_FACES - SHIP_VIPER) \ Faces data offset (high) EQUB 1 \ Normals are scaled by = 2^1 = 2 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010001 \ Laser power = 2 \ \ Missiles = 1 \ --- And replaced by: --------------------------------> EQUB %00101001 \ Laser power = 5 \ Missiles = 1 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 0, 72, 1, 2, 3, 4, 31 \ Vertex 0 VERTEX 0, 16, 24, 0, 1, 2, 2, 30 \ Vertex 1 VERTEX 0, -16, 24, 3, 4, 5, 5, 30 \ Vertex 2 VERTEX 48, 0, -24, 2, 4, 6, 6, 31 \ Vertex 3 VERTEX -48, 0, -24, 1, 3, 6, 6, 31 \ Vertex 4 VERTEX 24, -16, -24, 4, 5, 6, 6, 30 \ Vertex 5 VERTEX -24, -16, -24, 5, 3, 6, 6, 30 \ Vertex 6 VERTEX 24, 16, -24, 0, 2, 6, 6, 31 \ Vertex 7 VERTEX -24, 16, -24, 0, 1, 6, 6, 31 \ Vertex 8 VERTEX -32, 0, -24, 6, 6, 6, 6, 19 \ Vertex 9 VERTEX 32, 0, -24, 6, 6, 6, 6, 19 \ Vertex 10 VERTEX 8, 8, -24, 6, 6, 6, 6, 19 \ Vertex 11 VERTEX -8, 8, -24, 6, 6, 6, 6, 19 \ Vertex 12 VERTEX -8, -8, -24, 6, 6, 6, 6, 18 \ Vertex 13 VERTEX 8, -8, -24, 6, 6, 6, 6, 18 \ Vertex 14 .SHIP_VIPER_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 3, 2, 4, 31 \ Edge 0 EDGE 0, 1, 1, 2, 30 \ Edge 1 EDGE 0, 2, 3, 4, 30 \ Edge 2 EDGE 0, 4, 1, 3, 31 \ Edge 3 EDGE 1, 7, 0, 2, 30 \ Edge 4 EDGE 1, 8, 0, 1, 30 \ Edge 5 EDGE 2, 5, 4, 5, 30 \ Edge 6 EDGE 2, 6, 3, 5, 30 \ Edge 7 EDGE 7, 8, 0, 6, 31 \ Edge 8 EDGE 5, 6, 5, 6, 30 \ Edge 9 EDGE 4, 8, 1, 6, 31 \ Edge 10 EDGE 4, 6, 3, 6, 30 \ Edge 11 EDGE 3, 7, 2, 6, 31 \ Edge 12 EDGE 3, 5, 6, 4, 30 \ Edge 13 EDGE 9, 12, 6, 6, 19 \ Edge 14 EDGE 9, 13, 6, 6, 18 \ Edge 15 EDGE 10, 11, 6, 6, 19 \ Edge 16 EDGE 10, 14, 6, 6, 18 \ Edge 17 EDGE 11, 14, 6, 6, 16 \ Edge 18 EDGE 12, 13, 6, 6, 16 \ Edge 19 .SHIP_VIPER_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 32, 0, 31 \ Face 0 FACE -22, 33, 11, 31 \ Face 1 FACE 22, 33, 11, 31 \ Face 2 FACE -22, -33, 11, 31 \ Face 3 FACE 22, -33, 11, 31 \ Face 4 FACE 0, -32, 0, 31 \ Face 5 FACE 0, 0, -48, 31 \ Face 6
Name: SHIP_BUSHMASTER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Bushmaster Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_BUSHMASTER
\ --- Mod: Whole section added for Elite-A: -----------> .SHIP_BUSHMASTER EQUB 0 \ Max. canisters on demise = 0 EQUW 4250 \ Targetable area = 65.19 * 65.19 EQUB LO(SHIP_BUSHMASTER_EDGES - SHIP_BUSHMASTER) \ Edges data offset (low) EQUB LO(SHIP_BUSHMASTER_FACES - SHIP_BUSHMASTER) \ Faces data offset (low) EQUB 81 \ Max. edge count = (81 - 1) / 4 = 20 EQUB 0 \ Gun vertex = 0 EQUB 30 \ Explosion count = 6, as (4 * n) + 6 = 30 EQUB 72 \ Number of vertices = 72 / 6 = 12 EQUB 19 \ Number of edges = 19 EQUW 150 \ Bounty = 150 EQUB 36 \ Number of faces = 36 / 4 = 9 EQUB 20 \ Visibility distance = 20 EQUB 74 \ Max. energy = 74 EQUB 35 \ Max. speed = 35 EQUB HI(SHIP_BUSHMASTER_EDGES - SHIP_BUSHMASTER) \ Edges data offset (high) EQUB HI(SHIP_BUSHMASTER_FACES - SHIP_BUSHMASTER) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 EQUB %00100001 \ Laser power = 4 \ Missiles = 1 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 0, 60, 3, 2, 1, 0, 31 \ Vertex 0 VERTEX 50, 0, 20, 7, 5, 3, 1, 31 \ Vertex 1 VERTEX -50, 0, 20, 6, 4, 2, 0, 31 \ Vertex 2 VERTEX 0, 20, 0, 5, 4, 1, 0, 31 \ Vertex 3 VERTEX 0, -20, -40, 15, 15, 15, 15, 31 \ Vertex 4 VERTEX 0, 14, -40, 8, 8, 5, 4, 31 \ Vertex 5 VERTEX 40, 0, -40, 8, 8, 7, 5, 31 \ Vertex 6 VERTEX -40, 0, -40, 8, 8, 6, 4, 31 \ Vertex 7 VERTEX 0, 4, -40, 8, 8, 8, 8, 10 \ Vertex 8 VERTEX 10, 0, -40, 8, 8, 8, 8, 10 \ Vertex 9 VERTEX 0, -4, -40, 8, 8, 8, 8, 10 \ Vertex 10 VERTEX -10, 0, -40, 8, 8, 8, 8, 10 \ Vertex 11 .SHIP_BUSHMASTER_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 3, 1, 31 \ Edge 0 EDGE 0, 2, 2, 0, 31 \ Edge 1 EDGE 0, 3, 1, 0, 31 \ Edge 2 EDGE 0, 4, 3, 2, 31 \ Edge 3 EDGE 3, 5, 5, 4, 31 \ Edge 4 EDGE 2, 3, 4, 0, 31 \ Edge 5 EDGE 1, 3, 5, 1, 31 \ Edge 6 EDGE 2, 7, 6, 4, 31 \ Edge 7 EDGE 1, 6, 7, 5, 31 \ Edge 8 EDGE 2, 4, 6, 2, 31 \ Edge 9 EDGE 1, 4, 7, 3, 31 \ Edge 10 EDGE 5, 7, 8, 4, 31 \ Edge 11 EDGE 5, 6, 8, 5, 31 \ Edge 12 EDGE 4, 7, 8, 6, 31 \ Edge 13 EDGE 4, 6, 8, 7, 31 \ Edge 14 EDGE 8, 9, 8, 8, 10 \ Edge 15 EDGE 9, 10, 8, 8, 10 \ Edge 16 EDGE 10, 11, 8, 8, 10 \ Edge 17 EDGE 11, 8, 8, 8, 10 \ Edge 18 .SHIP_BUSHMASTER_FACES \FACE normal_x, normal_y, normal_z, visibility FACE -23, 88, 29, 31 \ Face 0 FACE 23, 88, 29, 31 \ Face 1 FACE -14, -93, 18, 31 \ Face 2 FACE 14, -93, 18, 31 \ Face 3 FACE -31, 89, -13, 31 \ Face 4 FACE 31, 89, -13, 31 \ Face 5 FACE -42, -85, -7, 31 \ Face 6 FACE 42, -85, -7, 31 \ Face 7 FACE 0, 0, -96, 31 \ Face 8 \ --- End of added section ---------------------------->
Name: SHIP_MAMBA [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Mamba Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_MAMBA
.SHIP_MAMBA EQUB 1 \ Max. canisters on demise = 1 EQUW 70 * 70 \ Targetable area = 70 * 70 EQUB LO(SHIP_MAMBA_EDGES - SHIP_MAMBA) \ Edges data offset (low) EQUB LO(SHIP_MAMBA_FACES - SHIP_MAMBA) \ Faces data offset (low) EQUB 93 \ Max. edge count = (93 - 1) / 4 = 23 EQUB 0 \ Gun vertex = 0 EQUB 34 \ Explosion count = 7, as (4 * n) + 6 = 34 EQUB 150 \ Number of vertices = 150 / 6 = 25 EQUB 28 \ Number of edges = 28 EQUW 150 \ Bounty = 150 EQUB 20 \ Number of faces = 20 / 4 = 5 EQUB 25 \ Visibility distance = 25 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 90 \ Max. energy = 90 \ --- And replaced by: --------------------------------> EQUB 80 \ Max. energy = 80 \ --- End of replacement ------------------------------> EQUB 30 \ Max. speed = 30 EQUB HI(SHIP_MAMBA_EDGES - SHIP_MAMBA) \ Edges data offset (high) EQUB HI(SHIP_MAMBA_FACES - SHIP_MAMBA) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010010 \ Laser power = 2 \ \ Missiles = 2 \ --- And replaced by: --------------------------------> EQUB %00100010 \ Laser power = 4 \ Missiles = 2 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 0, 64, 0, 1, 2, 3, 31 \ Vertex 0 VERTEX -64, -8, -32, 0, 2, 4, 4, 31 \ Vertex 1 VERTEX -32, 8, -32, 1, 2, 4, 4, 30 \ Vertex 2 VERTEX 32, 8, -32, 1, 3, 4, 4, 30 \ Vertex 3 VERTEX 64, -8, -32, 0, 3, 4, 4, 31 \ Vertex 4 VERTEX -4, 4, 16, 1, 1, 1, 1, 14 \ Vertex 5 VERTEX 4, 4, 16, 1, 1, 1, 1, 14 \ Vertex 6 VERTEX 8, 3, 28, 1, 1, 1, 1, 13 \ Vertex 7 VERTEX -8, 3, 28, 1, 1, 1, 1, 13 \ Vertex 8 VERTEX -20, -4, 16, 0, 0, 0, 0, 20 \ Vertex 9 VERTEX 20, -4, 16, 0, 0, 0, 0, 20 \ Vertex 10 VERTEX -24, -7, -20, 0, 0, 0, 0, 20 \ Vertex 11 VERTEX -16, -7, -20, 0, 0, 0, 0, 16 \ Vertex 12 VERTEX 16, -7, -20, 0, 0, 0, 0, 16 \ Vertex 13 VERTEX 24, -7, -20, 0, 0, 0, 0, 20 \ Vertex 14 VERTEX -8, 4, -32, 4, 4, 4, 4, 13 \ Vertex 15 VERTEX 8, 4, -32, 4, 4, 4, 4, 13 \ Vertex 16 VERTEX 8, -4, -32, 4, 4, 4, 4, 14 \ Vertex 17 VERTEX -8, -4, -32, 4, 4, 4, 4, 14 \ Vertex 18 VERTEX -32, 4, -32, 4, 4, 4, 4, 7 \ Vertex 19 VERTEX 32, 4, -32, 4, 4, 4, 4, 7 \ Vertex 20 VERTEX 36, -4, -32, 4, 4, 4, 4, 7 \ Vertex 21 VERTEX -36, -4, -32, 4, 4, 4, 4, 7 \ Vertex 22 VERTEX -38, 0, -32, 4, 4, 4, 4, 5 \ Vertex 23 VERTEX 38, 0, -32, 4, 4, 4, 4, 5 \ Vertex 24 .SHIP_MAMBA_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 0, 2, 31 \ Edge 0 EDGE 0, 4, 0, 3, 31 \ Edge 1 EDGE 1, 4, 0, 4, 31 \ Edge 2 EDGE 1, 2, 2, 4, 30 \ Edge 3 EDGE 2, 3, 1, 4, 30 \ Edge 4 EDGE 3, 4, 3, 4, 30 \ Edge 5 EDGE 5, 6, 1, 1, 14 \ Edge 6 EDGE 6, 7, 1, 1, 12 \ Edge 7 EDGE 7, 8, 1, 1, 13 \ Edge 8 EDGE 5, 8, 1, 1, 12 \ Edge 9 EDGE 9, 11, 0, 0, 20 \ Edge 10 EDGE 9, 12, 0, 0, 16 \ Edge 11 EDGE 10, 13, 0, 0, 16 \ Edge 12 EDGE 10, 14, 0, 0, 20 \ Edge 13 EDGE 13, 14, 0, 0, 14 \ Edge 14 EDGE 11, 12, 0, 0, 14 \ Edge 15 EDGE 15, 16, 4, 4, 13 \ Edge 16 EDGE 17, 18, 4, 4, 14 \ Edge 17 EDGE 15, 18, 4, 4, 12 \ Edge 18 EDGE 16, 17, 4, 4, 12 \ Edge 19 EDGE 20, 21, 4, 4, 7 \ Edge 20 EDGE 20, 24, 4, 4, 5 \ Edge 21 EDGE 21, 24, 4, 4, 5 \ Edge 22 EDGE 19, 22, 4, 4, 7 \ Edge 23 EDGE 19, 23, 4, 4, 5 \ Edge 24 EDGE 22, 23, 4, 4, 5 \ Edge 25 EDGE 0, 2, 1, 2, 30 \ Edge 26 EDGE 0, 3, 1, 3, 30 \ Edge 27 .SHIP_MAMBA_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, -24, 2, 30 \ Face 0 FACE 0, 24, 2, 30 \ Face 1 FACE -32, 64, 16, 30 \ Face 2 FACE 32, 64, 16, 30 \ Face 3 FACE 0, 0, -127, 30 \ Face 4
Name: SHIP_SIDEWINDER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Sidewinder Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_SIDEWINDER
.SHIP_SIDEWINDER EQUB 0 \ Max. canisters on demise = 0 EQUW 65 * 65 \ Targetable area = 65 * 65 EQUB LO(SHIP_SIDEWINDER_EDGES - SHIP_SIDEWINDER) \ Edges data offset (low) EQUB LO(SHIP_SIDEWINDER_FACES - SHIP_SIDEWINDER) \ Faces data offset (low) EQUB 61 \ Max. edge count = (61 - 1) / 4 = 15 EQUB 0 \ Gun vertex = 0 EQUB 30 \ Explosion count = 6, as (4 * n) + 6 = 30 EQUB 60 \ Number of vertices = 60 / 6 = 10 EQUB 15 \ Number of edges = 15 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUW 50 \ Bounty = 50 \ --- And replaced by: --------------------------------> EQUW 100 \ Bounty = 100 \ --- End of replacement ------------------------------> EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 20 \ Visibility distance = 20 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 70 \ Max. energy = 70 \ --- And replaced by: --------------------------------> EQUB 73 \ Max. energy = 73 \ --- End of replacement ------------------------------> EQUB 37 \ Max. speed = 37 EQUB HI(SHIP_SIDEWINDER_EDGES - SHIP_SIDEWINDER) \ Edges data offset (high) EQUB HI(SHIP_SIDEWINDER_FACES - SHIP_SIDEWINDER) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010000 \ Laser power = 2 \ \ Missiles = 0 \ --- And replaced by: --------------------------------> EQUB %00100000 \ Laser power = 4 \ Missiles = 0 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX -32, 0, 36, 0, 1, 4, 5, 31 \ Vertex 0 VERTEX 32, 0, 36, 0, 2, 5, 6, 31 \ Vertex 1 VERTEX 64, 0, -28, 2, 3, 6, 6, 31 \ Vertex 2 VERTEX -64, 0, -28, 1, 3, 4, 4, 31 \ Vertex 3 VERTEX 0, 16, -28, 0, 1, 2, 3, 31 \ Vertex 4 VERTEX 0, -16, -28, 3, 4, 5, 6, 31 \ Vertex 5 VERTEX -12, 6, -28, 3, 3, 3, 3, 15 \ Vertex 6 VERTEX 12, 6, -28, 3, 3, 3, 3, 15 \ Vertex 7 VERTEX 12, -6, -28, 3, 3, 3, 3, 12 \ Vertex 8 VERTEX -12, -6, -28, 3, 3, 3, 3, 12 \ Vertex 9 .SHIP_SIDEWINDER_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 0, 5, 31 \ Edge 0 EDGE 1, 2, 2, 6, 31 \ Edge 1 EDGE 1, 4, 0, 2, 31 \ Edge 2 EDGE 0, 4, 0, 1, 31 \ Edge 3 EDGE 0, 3, 1, 4, 31 \ Edge 4 EDGE 3, 4, 1, 3, 31 \ Edge 5 EDGE 2, 4, 2, 3, 31 \ Edge 6 EDGE 3, 5, 3, 4, 31 \ Edge 7 EDGE 2, 5, 3, 6, 31 \ Edge 8 EDGE 1, 5, 5, 6, 31 \ Edge 9 EDGE 0, 5, 4, 5, 31 \ Edge 10 EDGE 6, 7, 3, 3, 15 \ Edge 11 EDGE 7, 8, 3, 3, 12 \ Edge 12 EDGE 6, 9, 3, 3, 12 \ Edge 13 EDGE 8, 9, 3, 3, 12 \ Edge 14 .SHIP_SIDEWINDER_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 32, 8, 31 \ Face 0 FACE -12, 47, 6, 31 \ Face 1 FACE 12, 47, 6, 31 \ Face 2 FACE 0, 0, -112, 31 \ Face 3 FACE -12, -47, 6, 31 \ Face 4 FACE 0, -32, 8, 31 \ Face 5 FACE 12, -47, 6, 31 \ Face 6
Name: SHIP_FER_DE_LANCE [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Fer-de-Lance Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_FER_DE_LANCE
.SHIP_FER_DE_LANCE EQUB 0 \ Max. canisters on demise = 0 EQUW 40 * 40 \ Targetable area = 40 * 40 EQUB LO(SHIP_FER_DE_LANCE_EDGES - SHIP_FER_DE_LANCE) \ Edges data offset (low) EQUB LO(SHIP_FER_DE_LANCE_FACES - SHIP_FER_DE_LANCE) \ Faces data offset (low) EQUB 105 \ Max. edge count = (105 - 1) / 4 = 26 EQUB 0 \ Gun vertex = 0 EQUB 26 \ Explosion count = 5, as (4 * n) + 6 = 26 EQUB 114 \ Number of vertices = 114 / 6 = 19 EQUB 27 \ Number of edges = 27 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUW 0 \ Bounty = 0 \ --- And replaced by: --------------------------------> EQUW 250 \ Bounty = 250 \ --- End of replacement ------------------------------> EQUB 40 \ Number of faces = 40 / 4 = 10 EQUB 40 \ Visibility distance = 40 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 160 \ Max. energy = 160 \ --- And replaced by: --------------------------------> EQUB 83 \ Max. energy = 83 \ --- End of replacement ------------------------------> EQUB 30 \ Max. speed = 30 EQUB HI(SHIP_FER_DE_LANCE_EDGES - SHIP_FER_DE_LANCE) \ Edges data offset (high) EQUB HI(SHIP_FER_DE_LANCE_FACES - SHIP_FER_DE_LANCE) \ Faces data offset (high) EQUB 1 \ Normals are scaled by = 2^1 = 2 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010010 \ Laser power = 2 \ \ Missiles = 2 \ --- And replaced by: --------------------------------> EQUB %00110010 \ Laser power = 6 \ Missiles = 2 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, -14, 108, 1, 0, 9, 5, 31 \ Vertex 0 VERTEX -40, -14, -4, 2, 1, 9, 9, 31 \ Vertex 1 VERTEX -12, -14, -52, 3, 2, 9, 9, 31 \ Vertex 2 VERTEX 12, -14, -52, 4, 3, 9, 9, 31 \ Vertex 3 VERTEX 40, -14, -4, 5, 4, 9, 9, 31 \ Vertex 4 VERTEX -40, 14, -4, 1, 0, 6, 2, 28 \ Vertex 5 VERTEX -12, 2, -52, 3, 2, 7, 6, 28 \ Vertex 6 VERTEX 12, 2, -52, 4, 3, 8, 7, 28 \ Vertex 7 VERTEX 40, 14, -4, 4, 0, 8, 5, 28 \ Vertex 8 VERTEX 0, 18, -20, 6, 0, 8, 7, 15 \ Vertex 9 VERTEX -3, -11, 97, 0, 0, 0, 0, 11 \ Vertex 10 VERTEX -26, 8, 18, 0, 0, 0, 0, 9 \ Vertex 11 VERTEX -16, 14, -4, 0, 0, 0, 0, 11 \ Vertex 12 VERTEX 3, -11, 97, 0, 0, 0, 0, 11 \ Vertex 13 VERTEX 26, 8, 18, 0, 0, 0, 0, 9 \ Vertex 14 VERTEX 16, 14, -4, 0, 0, 0, 0, 11 \ Vertex 15 VERTEX 0, -14, -20, 9, 9, 9, 9, 12 \ Vertex 16 VERTEX -14, -14, 44, 9, 9, 9, 9, 12 \ Vertex 17 VERTEX 14, -14, 44, 9, 9, 9, 9, 12 \ Vertex 18 .SHIP_FER_DE_LANCE_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 9, 1, 31 \ Edge 0 EDGE 1, 2, 9, 2, 31 \ Edge 1 EDGE 2, 3, 9, 3, 31 \ Edge 2 EDGE 3, 4, 9, 4, 31 \ Edge 3 EDGE 0, 4, 9, 5, 31 \ Edge 4 EDGE 0, 5, 1, 0, 28 \ Edge 5 EDGE 5, 6, 6, 2, 28 \ Edge 6 EDGE 6, 7, 7, 3, 28 \ Edge 7 EDGE 7, 8, 8, 4, 28 \ Edge 8 EDGE 0, 8, 5, 0, 28 \ Edge 9 EDGE 5, 9, 6, 0, 15 \ Edge 10 EDGE 6, 9, 7, 6, 11 \ Edge 11 EDGE 7, 9, 8, 7, 11 \ Edge 12 EDGE 8, 9, 8, 0, 15 \ Edge 13 EDGE 1, 5, 2, 1, 14 \ Edge 14 EDGE 2, 6, 3, 2, 14 \ Edge 15 EDGE 3, 7, 4, 3, 14 \ Edge 16 EDGE 4, 8, 5, 4, 14 \ Edge 17 EDGE 10, 11, 0, 0, 8 \ Edge 18 EDGE 11, 12, 0, 0, 9 \ Edge 19 EDGE 10, 12, 0, 0, 11 \ Edge 20 EDGE 13, 14, 0, 0, 8 \ Edge 21 EDGE 14, 15, 0, 0, 9 \ Edge 22 EDGE 13, 15, 0, 0, 11 \ Edge 23 EDGE 16, 17, 9, 9, 12 \ Edge 24 EDGE 16, 18, 9, 9, 12 \ Edge 25 EDGE 17, 18, 9, 9, 8 \ Edge 26 .SHIP_FER_DE_LANCE_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 24, 6, 28 \ Face 0 FACE -68, 0, 24, 31 \ Face 1 FACE -63, 0, -37, 31 \ Face 2 FACE 0, 0, -104, 31 \ Face 3 FACE 63, 0, -37, 31 \ Face 4 FACE 68, 0, 24, 31 \ Face 5 FACE -12, 46, -19, 28 \ Face 6 FACE 0, 45, -22, 28 \ Face 7 FACE 12, 46, -19, 28 \ Face 8 FACE 0, -28, 0, 31 \ Face 9
Name: SHIP_MORAY [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Moray Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_MORAY
.SHIP_MORAY EQUB 1 \ Max. canisters on demise = 1 EQUW 30 * 30 \ Targetable area = 30 * 30 EQUB LO(SHIP_MORAY_EDGES - SHIP_MORAY) \ Edges data offset (low) EQUB LO(SHIP_MORAY_FACES - SHIP_MORAY) \ Faces data offset (low) EQUB 69 \ Max. edge count = (69 - 1) / 4 = 17 EQUB 0 \ Gun vertex = 0 EQUB 26 \ Explosion count = 5, as (4 * n) + 6 = 26 EQUB 84 \ Number of vertices = 84 / 6 = 14 EQUB 19 \ Number of edges = 19 EQUW 50 \ Bounty = 50 EQUB 36 \ Number of faces = 36 / 4 = 9 EQUB 40 \ Visibility distance = 40 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 100 \ Max. energy = 100 \ --- And replaced by: --------------------------------> EQUB 89 \ Max. energy = 89 \ --- End of replacement ------------------------------> EQUB 25 \ Max. speed = 25 EQUB HI(SHIP_MORAY_EDGES - SHIP_MORAY) \ Edges data offset (high) EQUB HI(SHIP_MORAY_FACES - SHIP_MORAY) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010000 \ Laser power = 2 \ \ Missiles = 0 \ --- And replaced by: --------------------------------> EQUB %00101010 \ Laser power = 5 \ Missiles = 2 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 15, 0, 65, 2, 0, 8, 7, 31 \ Vertex 0 VERTEX -15, 0, 65, 1, 0, 7, 6, 31 \ Vertex 1 VERTEX 0, 18, -40, 15, 15, 15, 15, 17 \ Vertex 2 VERTEX -60, 0, 0, 3, 1, 6, 6, 31 \ Vertex 3 VERTEX 60, 0, 0, 5, 2, 8, 8, 31 \ Vertex 4 VERTEX 30, -27, -10, 5, 4, 8, 7, 24 \ Vertex 5 VERTEX -30, -27, -10, 4, 3, 7, 6, 24 \ Vertex 6 VERTEX -9, -4, -25, 4, 4, 4, 4, 7 \ Vertex 7 VERTEX 9, -4, -25, 4, 4, 4, 4, 7 \ Vertex 8 VERTEX 0, -18, -16, 4, 4, 4, 4, 7 \ Vertex 9 VERTEX 13, 3, 49, 0, 0, 0, 0, 5 \ Vertex 10 VERTEX 6, 0, 65, 0, 0, 0, 0, 5 \ Vertex 11 VERTEX -13, 3, 49, 0, 0, 0, 0, 5 \ Vertex 12 VERTEX -6, 0, 65, 0, 0, 0, 0, 5 \ Vertex 13 .SHIP_MORAY_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 7, 0, 31 \ Edge 0 EDGE 1, 3, 6, 1, 31 \ Edge 1 EDGE 3, 6, 6, 3, 24 \ Edge 2 EDGE 5, 6, 7, 4, 24 \ Edge 3 EDGE 4, 5, 8, 5, 24 \ Edge 4 EDGE 0, 4, 8, 2, 31 \ Edge 5 EDGE 1, 6, 7, 6, 15 \ Edge 6 EDGE 0, 5, 8, 7, 15 \ Edge 7 EDGE 0, 2, 2, 0, 15 \ Edge 8 EDGE 1, 2, 1, 0, 15 \ Edge 9 EDGE 2, 3, 3, 1, 17 \ Edge 10 EDGE 2, 4, 5, 2, 17 \ Edge 11 EDGE 2, 5, 5, 4, 13 \ Edge 12 EDGE 2, 6, 4, 3, 13 \ Edge 13 EDGE 7, 8, 4, 4, 5 \ Edge 14 EDGE 7, 9, 4, 4, 7 \ Edge 15 EDGE 8, 9, 4, 4, 7 \ Edge 16 EDGE 10, 11, 0, 0, 5 \ Edge 17 EDGE 12, 13, 0, 0, 5 \ Edge 18 .SHIP_MORAY_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 43, 7, 31 \ Face 0 FACE -10, 49, 7, 31 \ Face 1 FACE 10, 49, 7, 31 \ Face 2 FACE -59, -28, -101, 24 \ Face 3 FACE 0, -52, -78, 24 \ Face 4 FACE 59, -28, -101, 24 \ Face 5 FACE -72, -99, 50, 31 \ Face 6 FACE 0, -83, 30, 31 \ Face 7 FACE 72, -99, 50, 31 \ Face 8
Name: SHIP_WORM [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Worm Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_WORM
.SHIP_WORM EQUB 0 \ Max. canisters on demise = 0 EQUW 99 * 99 \ Targetable area = 99 * 99 EQUB LO(SHIP_WORM_EDGES - SHIP_WORM) \ Edges data offset (low) EQUB LO(SHIP_WORM_FACES - SHIP_WORM) \ Faces data offset (low) EQUB 73 \ Max. edge count = (73 - 1) / 4 = 18 EQUB 0 \ Gun vertex = 0 EQUB 18 \ Explosion count = 3, as (4 * n) + 6 = 18 EQUB 60 \ Number of vertices = 60 / 6 = 10 EQUB 16 \ Number of edges = 16 EQUW 0 \ Bounty = 0 EQUB 32 \ Number of faces = 32 / 4 = 8 EQUB 19 \ Visibility distance = 19 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 30 \ Max. energy = 30 \ --- And replaced by: --------------------------------> EQUB 32 \ Max. energy = 32 \ --- End of replacement ------------------------------> EQUB 23 \ Max. speed = 23 EQUB HI(SHIP_WORM_EDGES - SHIP_WORM) \ Edges data offset (high) EQUB HI(SHIP_WORM_FACES - SHIP_WORM) \ Faces data offset (high) EQUB 3 \ Normals are scaled by = 2^3 = 8 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00001000 \ Laser power = 1 \ \ Missiles = 0 \ --- And replaced by: --------------------------------> EQUB %00011000 \ Laser power = 3 \ Missiles = 0 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 10, -10, 35, 2, 0, 7, 7, 31 \ Vertex 0 VERTEX -10, -10, 35, 3, 0, 7, 7, 31 \ Vertex 1 VERTEX 5, 6, 15, 1, 0, 4, 2, 31 \ Vertex 2 VERTEX -5, 6, 15, 1, 0, 5, 3, 31 \ Vertex 3 VERTEX 15, -10, 25, 4, 2, 7, 7, 31 \ Vertex 4 VERTEX -15, -10, 25, 5, 3, 7, 7, 31 \ Vertex 5 VERTEX 26, -10, -25, 6, 4, 7, 7, 31 \ Vertex 6 VERTEX -26, -10, -25, 6, 5, 7, 7, 31 \ Vertex 7 VERTEX 8, 14, -25, 4, 1, 6, 6, 31 \ Vertex 8 VERTEX -8, 14, -25, 5, 1, 6, 6, 31 \ Vertex 9 .SHIP_WORM_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 7, 0, 31 \ Edge 0 EDGE 1, 5, 7, 3, 31 \ Edge 1 EDGE 5, 7, 7, 5, 31 \ Edge 2 EDGE 7, 6, 7, 6, 31 \ Edge 3 EDGE 6, 4, 7, 4, 31 \ Edge 4 EDGE 4, 0, 7, 2, 31 \ Edge 5 EDGE 0, 2, 2, 0, 31 \ Edge 6 EDGE 1, 3, 3, 0, 31 \ Edge 7 EDGE 4, 2, 4, 2, 31 \ Edge 8 EDGE 5, 3, 5, 3, 31 \ Edge 9 EDGE 2, 8, 4, 1, 31 \ Edge 10 EDGE 8, 6, 6, 4, 31 \ Edge 11 EDGE 3, 9, 5, 1, 31 \ Edge 12 EDGE 9, 7, 6, 5, 31 \ Edge 13 EDGE 2, 3, 1, 0, 31 \ Edge 14 EDGE 8, 9, 6, 1, 31 \ Edge 15 .SHIP_WORM_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 88, 70, 31 \ Face 0 FACE 0, 69, 14, 31 \ Face 1 FACE 70, 66, 35, 31 \ Face 2 FACE -70, 66, 35, 31 \ Face 3 FACE 64, 49, 14, 31 \ Face 4 FACE -64, 49, 14, 31 \ Face 5 FACE 0, 0, -200, 31 \ Face 6 FACE 0, -80, 0, 31 \ Face 7
Name: SHIP_GECKO [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Gecko Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_GECKO
.SHIP_GECKO EQUB 0 \ Max. canisters on demise = 0 EQUW 99 * 99 \ Targetable area = 99 * 99 EQUB LO(SHIP_GECKO_EDGES - SHIP_GECKO) \ Edges data offset (low) EQUB LO(SHIP_GECKO_FACES - SHIP_GECKO) \ Faces data offset (low) EQUB 65 \ Max. edge count = (65 - 1) / 4 = 16 EQUB 0 \ Gun vertex = 0 EQUB 26 \ Explosion count = 5, as (4 * n) + 6 = 26 EQUB 72 \ Number of vertices = 72 / 6 = 12 EQUB 17 \ Number of edges = 17 EQUW 55 \ Bounty = 55 EQUB 36 \ Number of faces = 36 / 4 = 9 EQUB 18 \ Visibility distance = 18 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 70 \ Max. energy = 70 \ --- And replaced by: --------------------------------> EQUB 65 \ Max. energy = 65 \ --- End of replacement ------------------------------> EQUB 30 \ Max. speed = 30 EQUB HI(SHIP_GECKO_EDGES - SHIP_GECKO) \ Edges data offset (high) EQUB HI(SHIP_GECKO_FACES - SHIP_GECKO) \ Faces data offset (high) EQUB 3 \ Normals are scaled by = 2^3 = 8 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB %00010000 \ Laser power = 2 \ \ Missiles = 0 \ --- And replaced by: --------------------------------> EQUB %00100000 \ Laser power = 4 \ Missiles = 0 \ --- End of replacement ------------------------------> \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX -10, -4, 47, 3, 0, 5, 4, 31 \ Vertex 0 VERTEX 10, -4, 47, 1, 0, 3, 2, 31 \ Vertex 1 VERTEX -16, 8, -23, 5, 0, 7, 6, 31 \ Vertex 2 VERTEX 16, 8, -23, 1, 0, 8, 7, 31 \ Vertex 3 VERTEX -66, 0, -3, 5, 4, 6, 6, 31 \ Vertex 4 VERTEX 66, 0, -3, 2, 1, 8, 8, 31 \ Vertex 5 VERTEX -20, -14, -23, 4, 3, 7, 6, 31 \ Vertex 6 VERTEX 20, -14, -23, 3, 2, 8, 7, 31 \ Vertex 7 VERTEX -8, -6, 33, 3, 3, 3, 3, 16 \ Vertex 8 VERTEX 8, -6, 33, 3, 3, 3, 3, 17 \ Vertex 9 VERTEX -8, -13, -16, 3, 3, 3, 3, 16 \ Vertex 10 VERTEX 8, -13, -16, 3, 3, 3, 3, 17 \ Vertex 11 .SHIP_GECKO_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 3, 0, 31 \ Edge 0 EDGE 1, 5, 2, 1, 31 \ Edge 1 EDGE 5, 3, 8, 1, 31 \ Edge 2 EDGE 3, 2, 7, 0, 31 \ Edge 3 EDGE 2, 4, 6, 5, 31 \ Edge 4 EDGE 4, 0, 5, 4, 31 \ Edge 5 EDGE 5, 7, 8, 2, 31 \ Edge 6 EDGE 7, 6, 7, 3, 31 \ Edge 7 EDGE 6, 4, 6, 4, 31 \ Edge 8 EDGE 0, 2, 5, 0, 29 \ Edge 9 EDGE 1, 3, 1, 0, 30 \ Edge 10 EDGE 0, 6, 4, 3, 29 \ Edge 11 EDGE 1, 7, 3, 2, 30 \ Edge 12 EDGE 2, 6, 7, 6, 20 \ Edge 13 EDGE 3, 7, 8, 7, 20 \ Edge 14 EDGE 8, 10, 3, 3, 16 \ Edge 15 EDGE 9, 11, 3, 3, 17 \ Edge 16 .SHIP_GECKO_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 31, 5, 31 \ Face 0 FACE 4, 45, 8, 31 \ Face 1 FACE 25, -108, 19, 31 \ Face 2 FACE 0, -84, 12, 31 \ Face 3 FACE -25, -108, 19, 31 \ Face 4 FACE -4, 45, 8, 31 \ Face 5 FACE -88, 16, -214, 31 \ Face 6 FACE 0, 0, -187, 31 \ Face 7 FACE 88, 16, -214, 31 \ Face 8
Name: SHIP_PLATE [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for an alloy plate Deep dive: Ship blueprints
Context: See this variable on its own page References: This variable is used as follows: * XX21 calls SHIP_PLATE
.SHIP_PLATE EQUB 0 + (8 << 4) \ Max. canisters on demise = 0 \ Market item when scooped = 8 + 1 = 9 (Alloys) EQUW 10 * 10 \ Targetable area = 10 * 10 EQUB LO(SHIP_PLATE_EDGES - SHIP_PLATE) \ Edges data offset (low) EQUB LO(SHIP_PLATE_FACES - SHIP_PLATE) \ Faces data offset (low) EQUB 17 \ Max. edge count = (17 - 1) / 4 = 4 EQUB 0 \ Gun vertex = 0 EQUB 10 \ Explosion count = 1, as (4 * n) + 6 = 10 EQUB 24 \ Number of vertices = 24 / 6 = 4 EQUB 4 \ Number of edges = 4 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUW 0 \ Bounty = 0 \ --- And replaced by: --------------------------------> EQUW 1 \ Bounty = 1 \ --- End of replacement ------------------------------> EQUB 4 \ Number of faces = 4 / 4 = 1 EQUB 5 \ Visibility distance = 5 \ --- Mod: Original Acornsoft code removed: -----------> \ EQUB 16 \ Max. energy = 16 \ --- And replaced by: --------------------------------> EQUB 8 \ Max. energy = 8 \ --- End of replacement ------------------------------> EQUB 16 \ Max. speed = 16 EQUB HI(SHIP_PLATE_EDGES - SHIP_PLATE) \ Edges data offset (high) EQUB HI(SHIP_PLATE_FACES - SHIP_PLATE) \ Faces data offset (high) EQUB 3 \ Normals are scaled by = 2^3 = 8 EQUB %00000000 \ Laser power = 0 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX -15, -22, -9, 15, 15, 15, 15, 31 \ Vertex 0 VERTEX -15, 38, -9, 15, 15, 15, 15, 31 \ Vertex 1 VERTEX 19, 32, 11, 15, 15, 15, 15, 20 \ Vertex 2 VERTEX 10, -46, 6, 15, 15, 15, 15, 20 \ Vertex 3 .SHIP_PLATE_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 15, 15, 31 \ Edge 0 EDGE 1, 2, 15, 15, 16 \ Edge 1 EDGE 2, 3, 15, 15, 20 \ Edge 2 EDGE 3, 0, 15, 15, 16 \ Edge 3 .SHIP_PLATE_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 0, 0, 0 \ Face 0 EQUB 6 \ This byte appears to be unused
Save S.J.bin
PRINT "S.S.J ", ~CODE%, " ", ~P%, " ", ~LOAD%, " ", ~LOAD% SAVE "3-assembled-output/S.J.bin", CODE%, CODE% + &0A00