CODE_SHIPS% = P% LOAD_SHIPS% = LOAD% + P% - CODE%ELITE SHIP BLUEPRINTS FILE Produces the binary file SHIPS.bin that gets loaded by elite-bcfs.asm..XX21 EQUW SHIP_SIDEWINDER \ 1 = Sidewinder EQUW SHIP_VIPER \ COPS = 2 = Viper EQUW SHIP_MAMBA \ 3 = Mamba EQUW SHIP_PYTHON \ 4 = Python EQUW SHIP_COBRA_MK_3 \ 5 = Cobra Mk III (bounty hunter) EQUW SHIP_THARGOID \ THG = 6 = Thargoid EQUW SHIP_COBRA_MK_3 \ CYL = 7 = Cobra Mk III (trader) EQUW SHIP_CORIOLIS \ SST = 8 = Coriolis space station EQUW SHIP_MISSILE \ MSL = 9 = Missile EQUW SHIP_ASTEROID \ AST = 10 = Asteroid EQUW SHIP_CANISTER \ OIL = 11 = Cargo canister EQUW SHIP_THARGON \ TGL = 12 = Thargon EQUW SHIP_ESCAPE_POD \ ESC = 13 = Escape podName: XX21 [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprints lookup table Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * KILLSHP calls XX21 * Main flight loop (Part 4 of 16) calls XX21 * NWSHP calls XX21MACRO 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 ENDMACROName: VERTEX [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding vertices to ship blueprints Deep dive: Ship blueprintsContext: 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 shownMACRO EDGE vertex1, vertex2, face1, face2, visibility f = face1 + (face2 << 4) EQUB visibility, f, vertex1 << 2, vertex2 << 2 ENDMACROName: EDGE [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding edges to ship blueprints Deep dive: Ship blueprintsContext: 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 shownMACRO 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 ENDMACROName: FACE [Show more] Type: Macro Category: Drawing ships Summary: Macro definition for adding faces to ship blueprints Deep dive: Ship blueprintsContext: 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.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 EQUW 50 \ Bounty = 50 EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 20 \ Visibility distance = 20 EQUB 70 \ Max. energy = 70 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 EQUB %00010000 \ Laser power = 2 \ Missiles = 0 \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 6Name: SHIP_SIDEWINDER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Sidewinder Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_SIDEWINDER.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 EQUB 120 \ Max. energy = 120 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 EQUB %00010001 \ Laser power = 2 \ Missiles = 1 \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 6Name: SHIP_VIPER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Viper Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_VIPER.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 EQUB 90 \ Max. energy = 90 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 EQUB %00010010 \ Laser power = 2 \ Missiles = 2 \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 4Name: SHIP_MAMBA [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Mamba Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_MAMBA.SHIP_COBRA_MK_3 EQUB 3 \ Max. canisters on demise = 3 EQUW 95 * 95 \ Targetable area = 95 * 95 EQUB LO(SHIP_COBRA_MK_3_EDGES - SHIP_COBRA_MK_3) \ Edges data offset (low) EQUB LO(SHIP_COBRA_MK_3_FACES - SHIP_COBRA_MK_3) \ Faces data offset (low) EQUB 153 \ Max. edge count = (153 - 1) / 4 = 38 EQUB 84 \ Gun vertex = 84 / 4 = 21 EQUB 42 \ Explosion count = 9, as (4 * n) + 6 = 42 EQUB 168 \ Number of vertices = 168 / 6 = 28 EQUB 38 \ Number of edges = 38 EQUW 0 \ Bounty = 0 EQUB 52 \ Number of faces = 52 / 4 = 13 EQUB 50 \ Visibility distance = 50 EQUB 150 \ Max. energy = 150 EQUB 28 \ Max. speed = 28 EQUB HI(SHIP_COBRA_MK_3_EDGES - SHIP_COBRA_MK_3) \ Edges data offset (low) EQUB HI(SHIP_COBRA_MK_3_FACES - SHIP_COBRA_MK_3) \ Faces data offset (low) EQUB 1 \ Normals are scaled by = 2^1 = 2 EQUB %00010011 \ Laser power = 2 \ Missiles = 3 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 32, 0, 76, 15, 15, 15, 15, 31 \ Vertex 0 VERTEX -32, 0, 76, 15, 15, 15, 15, 31 \ Vertex 1 VERTEX 0, 26, 24, 15, 15, 15, 15, 31 \ Vertex 2 VERTEX -120, -3, -8, 3, 7, 10, 10, 31 \ Vertex 3 VERTEX 120, -3, -8, 4, 8, 12, 12, 31 \ Vertex 4 VERTEX -88, 16, -40, 15, 15, 15, 15, 31 \ Vertex 5 VERTEX 88, 16, -40, 15, 15, 15, 15, 31 \ Vertex 6 VERTEX 128, -8, -40, 8, 9, 12, 12, 31 \ Vertex 7 VERTEX -128, -8, -40, 7, 9, 10, 10, 31 \ Vertex 8 VERTEX 0, 26, -40, 5, 6, 9, 9, 31 \ Vertex 9 VERTEX -32, -24, -40, 9, 10, 11, 11, 31 \ Vertex 10 VERTEX 32, -24, -40, 9, 11, 12, 12, 31 \ Vertex 11 VERTEX -36, 8, -40, 9, 9, 9, 9, 20 \ Vertex 12 VERTEX -8, 12, -40, 9, 9, 9, 9, 20 \ Vertex 13 VERTEX 8, 12, -40, 9, 9, 9, 9, 20 \ Vertex 14 VERTEX 36, 8, -40, 9, 9, 9, 9, 20 \ Vertex 15 VERTEX 36, -12, -40, 9, 9, 9, 9, 20 \ Vertex 16 VERTEX 8, -16, -40, 9, 9, 9, 9, 20 \ Vertex 17 VERTEX -8, -16, -40, 9, 9, 9, 9, 20 \ Vertex 18 VERTEX -36, -12, -40, 9, 9, 9, 9, 20 \ Vertex 19 VERTEX 0, 0, 76, 0, 11, 11, 11, 6 \ Vertex 20 VERTEX 0, 0, 90, 0, 11, 11, 11, 31 \ Vertex 21 VERTEX -80, -6, -40, 9, 9, 9, 9, 8 \ Vertex 22 VERTEX -80, 6, -40, 9, 9, 9, 9, 8 \ Vertex 23 VERTEX -88, 0, -40, 9, 9, 9, 9, 6 \ Vertex 24 VERTEX 80, 6, -40, 9, 9, 9, 9, 8 \ Vertex 25 VERTEX 88, 0, -40, 9, 9, 9, 9, 6 \ Vertex 26 VERTEX 80, -6, -40, 9, 9, 9, 9, 8 \ Vertex 27 .SHIP_COBRA_MK_3_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 0, 11, 31 \ Edge 0 EDGE 0, 4, 4, 12, 31 \ Edge 1 EDGE 1, 3, 3, 10, 31 \ Edge 2 EDGE 3, 8, 7, 10, 31 \ Edge 3 EDGE 4, 7, 8, 12, 31 \ Edge 4 EDGE 6, 7, 8, 9, 31 \ Edge 5 EDGE 6, 9, 6, 9, 31 \ Edge 6 EDGE 5, 9, 5, 9, 31 \ Edge 7 EDGE 5, 8, 7, 9, 31 \ Edge 8 EDGE 2, 5, 1, 5, 31 \ Edge 9 EDGE 2, 6, 2, 6, 31 \ Edge 10 EDGE 3, 5, 3, 7, 31 \ Edge 11 EDGE 4, 6, 4, 8, 31 \ Edge 12 EDGE 1, 2, 0, 1, 31 \ Edge 13 EDGE 0, 2, 0, 2, 31 \ Edge 14 EDGE 8, 10, 9, 10, 31 \ Edge 15 EDGE 10, 11, 9, 11, 31 \ Edge 16 EDGE 7, 11, 9, 12, 31 \ Edge 17 EDGE 1, 10, 10, 11, 31 \ Edge 18 EDGE 0, 11, 11, 12, 31 \ Edge 19 EDGE 1, 5, 1, 3, 29 \ Edge 20 EDGE 0, 6, 2, 4, 29 \ Edge 21 EDGE 20, 21, 0, 11, 6 \ Edge 22 EDGE 12, 13, 9, 9, 20 \ Edge 23 EDGE 18, 19, 9, 9, 20 \ Edge 24 EDGE 14, 15, 9, 9, 20 \ Edge 25 EDGE 16, 17, 9, 9, 20 \ Edge 26 EDGE 15, 16, 9, 9, 19 \ Edge 27 EDGE 14, 17, 9, 9, 17 \ Edge 28 EDGE 13, 18, 9, 9, 19 \ Edge 29 EDGE 12, 19, 9, 9, 19 \ Edge 30 EDGE 2, 9, 5, 6, 30 \ Edge 31 EDGE 22, 24, 9, 9, 6 \ Edge 32 EDGE 23, 24, 9, 9, 6 \ Edge 33 EDGE 22, 23, 9, 9, 8 \ Edge 34 EDGE 25, 26, 9, 9, 6 \ Edge 35 EDGE 26, 27, 9, 9, 6 \ Edge 36 EDGE 25, 27, 9, 9, 8 \ Edge 37 .SHIP_COBRA_MK_3_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 62, 31, 31 \ Face 0 FACE -18, 55, 16, 31 \ Face 1 FACE 18, 55, 16, 31 \ Face 2 FACE -16, 52, 14, 31 \ Face 3 FACE 16, 52, 14, 31 \ Face 4 FACE -14, 47, 0, 31 \ Face 5 FACE 14, 47, 0, 31 \ Face 6 FACE -61, 102, 0, 31 \ Face 7 FACE 61, 102, 0, 31 \ Face 8 FACE 0, 0, -80, 31 \ Face 9 FACE -7, -42, 9, 31 \ Face 10 FACE 0, -30, 6, 31 \ Face 11 FACE 7, -42, 9, 31 \ Face 12Name: SHIP_COBRA_MK_3 [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Cobra Mk III Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_COBRA_MK_3.SHIP_THARGOID EQUB 0 \ Max. canisters on demise = 0 EQUW 99 * 99 \ Targetable area = 99 * 99 EQUB LO(SHIP_THARGOID_EDGES - SHIP_THARGOID) \ Edges data offset (low) EQUB LO(SHIP_THARGOID_FACES - SHIP_THARGOID) \ Faces data offset (low) EQUB 101 \ Max. edge count = (101 - 1) / 4 = 25 EQUB 60 \ Gun vertex = 60 / 4 = 15 EQUB 38 \ Explosion count = 8, as (4 * n) + 6 = 38 EQUB 120 \ Number of vertices = 120 / 6 = 20 EQUB 26 \ Number of edges = 26 EQUW 500 \ Bounty = 500 EQUB 40 \ Number of faces = 40 / 4 = 10 EQUB 55 \ Visibility distance = 55 EQUB 240 \ Max. energy = 240 EQUB 39 \ Max. speed = 39 EQUB HI(SHIP_THARGOID_EDGES - SHIP_THARGOID) \ Edges data offset (high) EQUB HI(SHIP_THARGOID_FACES - SHIP_THARGOID) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 EQUB %00010110 \ Laser power = 2 \ Missiles = 6 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 32, -48, 48, 0, 4, 8, 8, 31 \ Vertex 0 VERTEX 32, -68, 0, 0, 1, 4, 4, 31 \ Vertex 1 VERTEX 32, -48, -48, 1, 2, 4, 4, 31 \ Vertex 2 VERTEX 32, 0, -68, 2, 3, 4, 4, 31 \ Vertex 3 VERTEX 32, 48, -48, 3, 4, 5, 5, 31 \ Vertex 4 VERTEX 32, 68, 0, 4, 5, 6, 6, 31 \ Vertex 5 VERTEX 32, 48, 48, 4, 6, 7, 7, 31 \ Vertex 6 VERTEX 32, 0, 68, 4, 7, 8, 8, 31 \ Vertex 7 VERTEX -24, -116, 116, 0, 8, 9, 9, 31 \ Vertex 8 VERTEX -24, -164, 0, 0, 1, 9, 9, 31 \ Vertex 9 VERTEX -24, -116, -116, 1, 2, 9, 9, 31 \ Vertex 10 VERTEX -24, 0, -164, 2, 3, 9, 9, 31 \ Vertex 11 VERTEX -24, 116, -116, 3, 5, 9, 9, 31 \ Vertex 12 VERTEX -24, 164, 0, 5, 6, 9, 9, 31 \ Vertex 13 VERTEX -24, 116, 116, 6, 7, 9, 9, 31 \ Vertex 14 VERTEX -24, 0, 164, 7, 8, 9, 9, 31 \ Vertex 15 VERTEX -24, 64, 80, 9, 9, 9, 9, 30 \ Vertex 16 VERTEX -24, 64, -80, 9, 9, 9, 9, 30 \ Vertex 17 VERTEX -24, -64, -80, 9, 9, 9, 9, 30 \ Vertex 18 VERTEX -24, -64, 80, 9, 9, 9, 9, 30 \ Vertex 19 .SHIP_THARGOID_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 7, 4, 8, 31 \ Edge 0 EDGE 0, 1, 0, 4, 31 \ Edge 1 EDGE 1, 2, 1, 4, 31 \ Edge 2 EDGE 2, 3, 2, 4, 31 \ Edge 3 EDGE 3, 4, 3, 4, 31 \ Edge 4 EDGE 4, 5, 4, 5, 31 \ Edge 5 EDGE 5, 6, 4, 6, 31 \ Edge 6 EDGE 6, 7, 4, 7, 31 \ Edge 7 EDGE 0, 8, 0, 8, 31 \ Edge 8 EDGE 1, 9, 0, 1, 31 \ Edge 9 EDGE 2, 10, 1, 2, 31 \ Edge 10 EDGE 3, 11, 2, 3, 31 \ Edge 11 EDGE 4, 12, 3, 5, 31 \ Edge 12 EDGE 5, 13, 5, 6, 31 \ Edge 13 EDGE 6, 14, 6, 7, 31 \ Edge 14 EDGE 7, 15, 7, 8, 31 \ Edge 15 EDGE 8, 15, 8, 9, 31 \ Edge 16 EDGE 8, 9, 0, 9, 31 \ Edge 17 EDGE 9, 10, 1, 9, 31 \ Edge 18 EDGE 10, 11, 2, 9, 31 \ Edge 19 EDGE 11, 12, 3, 9, 31 \ Edge 20 EDGE 12, 13, 5, 9, 31 \ Edge 21 EDGE 13, 14, 6, 9, 31 \ Edge 22 EDGE 14, 15, 7, 9, 31 \ Edge 23 EDGE 16, 17, 9, 9, 30 \ Edge 24 EDGE 18, 19, 9, 9, 30 \ Edge 25 .SHIP_THARGOID_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 103, -60, 25, 31 \ Face 0 FACE 103, -60, -25, 31 \ Face 1 FACE 103, -25, -60, 31 \ Face 2 FACE 103, 25, -60, 31 \ Face 3 FACE 64, 0, 0, 31 \ Face 4 FACE 103, 60, -25, 31 \ Face 5 FACE 103, 60, 25, 31 \ Face 6 FACE 103, 25, 60, 31 \ Face 7 FACE 103, -25, 60, 31 \ Face 8 FACE -48, 0, 0, 31 \ Face 9Name: SHIP_THARGOID [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Thargoid mothership Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_THARGOID.SHIP_CORIOLIS EQUB 0 \ Max. canisters on demise = 0 EQUW 160 * 160 \ Targetable area = 160 * 160 EQUB LO(SHIP_CORIOLIS_EDGES - SHIP_CORIOLIS) \ Edges data offset (low) EQUB LO(SHIP_CORIOLIS_FACES - SHIP_CORIOLIS) \ Faces data offset (low) EQUB 85 \ Max. edge count = (85 - 1) / 4 = 21 EQUB 0 \ Gun vertex = 0 EQUB 54 \ Explosion count = 12, as (4 * n) + 6 = 54 EQUB 96 \ Number of vertices = 96 / 6 = 16 EQUB 28 \ Number of edges = 28 EQUW 0 \ Bounty = 0 EQUB 56 \ Number of faces = 56 / 4 = 14 EQUB 120 \ Visibility distance = 120 EQUB 240 \ Max. energy = 240 EQUB 0 \ Max. speed = 0 EQUB HI(SHIP_CORIOLIS_EDGES - SHIP_CORIOLIS) \ Edges data offset (high) EQUB HI(SHIP_CORIOLIS_FACES - SHIP_CORIOLIS) \ Faces data offset (high) EQUB 0 \ Normals are scaled by = 2^0 = 1 EQUB %00000110 \ Laser power = 0 \ Missiles = 6 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 160, 0, 160, 0, 1, 2, 6, 31 \ Vertex 0 VERTEX 0, 160, 160, 0, 2, 3, 8, 31 \ Vertex 1 VERTEX -160, 0, 160, 0, 3, 4, 7, 31 \ Vertex 2 VERTEX 0, -160, 160, 0, 1, 4, 5, 31 \ Vertex 3 VERTEX 160, -160, 0, 1, 5, 6, 10, 31 \ Vertex 4 VERTEX 160, 160, 0, 2, 6, 8, 11, 31 \ Vertex 5 VERTEX -160, 160, 0, 3, 7, 8, 12, 31 \ Vertex 6 VERTEX -160, -160, 0, 4, 5, 7, 9, 31 \ Vertex 7 VERTEX 160, 0, -160, 6, 10, 11, 13, 31 \ Vertex 8 VERTEX 0, 160, -160, 8, 11, 12, 13, 31 \ Vertex 9 VERTEX -160, 0, -160, 7, 9, 12, 13, 31 \ Vertex 10 VERTEX 0, -160, -160, 5, 9, 10, 13, 31 \ Vertex 11 VERTEX 10, -30, 160, 0, 0, 0, 0, 30 \ Vertex 12 VERTEX 10, 30, 160, 0, 0, 0, 0, 30 \ Vertex 13 VERTEX -10, 30, 160, 0, 0, 0, 0, 30 \ Vertex 14 VERTEX -10, -30, 160, 0, 0, 0, 0, 30 \ Vertex 15 .SHIP_CORIOLIS_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 3, 0, 1, 31 \ Edge 0 EDGE 0, 1, 0, 2, 31 \ Edge 1 EDGE 1, 2, 0, 3, 31 \ Edge 2 EDGE 2, 3, 0, 4, 31 \ Edge 3 EDGE 3, 4, 1, 5, 31 \ Edge 4 EDGE 0, 4, 1, 6, 31 \ Edge 5 EDGE 0, 5, 2, 6, 31 \ Edge 6 EDGE 5, 1, 2, 8, 31 \ Edge 7 EDGE 1, 6, 3, 8, 31 \ Edge 8 EDGE 2, 6, 3, 7, 31 \ Edge 9 EDGE 2, 7, 4, 7, 31 \ Edge 10 EDGE 3, 7, 4, 5, 31 \ Edge 11 EDGE 8, 11, 10, 13, 31 \ Edge 12 EDGE 8, 9, 11, 13, 31 \ Edge 13 EDGE 9, 10, 12, 13, 31 \ Edge 14 EDGE 10, 11, 9, 13, 31 \ Edge 15 EDGE 4, 11, 5, 10, 31 \ Edge 16 EDGE 4, 8, 6, 10, 31 \ Edge 17 EDGE 5, 8, 6, 11, 31 \ Edge 18 EDGE 5, 9, 8, 11, 31 \ Edge 19 EDGE 6, 9, 8, 12, 31 \ Edge 20 EDGE 6, 10, 7, 12, 31 \ Edge 21 EDGE 7, 10, 7, 9, 31 \ Edge 22 EDGE 7, 11, 5, 9, 31 \ Edge 23 EDGE 12, 13, 0, 0, 30 \ Edge 24 EDGE 13, 14, 0, 0, 30 \ Edge 25 EDGE 14, 15, 0, 0, 30 \ Edge 26 EDGE 15, 12, 0, 0, 30 \ Edge 27 .SHIP_CORIOLIS_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 0, 0, 160, 31 \ Face 0 FACE 107, -107, 107, 31 \ Face 1 FACE 107, 107, 107, 31 \ Face 2 FACE -107, 107, 107, 31 \ Face 3 FACE -107, -107, 107, 31 \ Face 4 FACE 0, -160, 0, 31 \ Face 5 FACE 160, 0, 0, 31 \ Face 6 FACE -160, 0, 0, 31 \ Face 7 FACE 0, 160, 0, 31 \ Face 8 FACE -107, -107, -107, 31 \ Face 9 FACE 107, -107, -107, 31 \ Face 10 FACE 107, 107, -107, 31 \ Face 11 FACE -107, 107, -107, 31 \ Face 12 FACE 0, 0, -160, 31 \ Face 13Name: SHIP_CORIOLIS [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Coriolis space station Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_CORIOLIS.SHIP_MISSILE EQUB 0 \ Max. canisters on demise = 0 EQUW 40 * 40 \ Targetable area = 40 * 40 EQUB LO(SHIP_MISSILE_EDGES - SHIP_MISSILE) \ Edges data offset (low) EQUB LO(SHIP_MISSILE_FACES - SHIP_MISSILE) \ Faces data offset (low) EQUB 81 \ Max. edge count = (81 - 1) / 4 = 20 EQUB 0 \ Gun vertex = 0 EQUB 10 \ Explosion count = 1, as (4 * n) + 6 = 10 EQUB 102 \ Number of vertices = 102 / 6 = 17 EQUB 24 \ Number of edges = 24 EQUW 0 \ Bounty = 0 EQUB 36 \ Number of faces = 36 / 4 = 9 EQUB 14 \ Visibility distance = 14 EQUB 2 \ Max. energy = 2 EQUB 44 \ Max. speed = 44 EQUB HI(SHIP_MISSILE_EDGES - SHIP_MISSILE) \ Edges data offset (high) EQUB HI(SHIP_MISSILE_FACES - SHIP_MISSILE) \ 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 0, 0, 68, 0, 1, 2, 3, 31 \ Vertex 0 VERTEX 8, -8, 36, 1, 2, 4, 5, 31 \ Vertex 1 VERTEX 8, 8, 36, 2, 3, 4, 7, 31 \ Vertex 2 VERTEX -8, 8, 36, 0, 3, 6, 7, 31 \ Vertex 3 VERTEX -8, -8, 36, 0, 1, 5, 6, 31 \ Vertex 4 VERTEX 8, 8, -44, 4, 7, 8, 8, 31 \ Vertex 5 VERTEX 8, -8, -44, 4, 5, 8, 8, 31 \ Vertex 6 VERTEX -8, -8, -44, 5, 6, 8, 8, 31 \ Vertex 7 VERTEX -8, 8, -44, 6, 7, 8, 8, 31 \ Vertex 8 VERTEX 12, 12, -44, 4, 7, 8, 8, 8 \ Vertex 9 VERTEX 12, -12, -44, 4, 5, 8, 8, 8 \ Vertex 10 VERTEX -12, -12, -44, 5, 6, 8, 8, 8 \ Vertex 11 VERTEX -12, 12, -44, 6, 7, 8, 8, 8 \ Vertex 12 VERTEX -8, 8, -12, 6, 7, 7, 7, 8 \ Vertex 13 VERTEX -8, -8, -12, 5, 6, 6, 6, 8 \ Vertex 14 VERTEX 8, 8, -12, 4, 7, 7, 7, 8 \ Vertex 15 VERTEX 8, -8, -12, 4, 5, 5, 5, 8 \ Vertex 16 .SHIP_MISSILE_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 1, 2, 31 \ Edge 0 EDGE 0, 2, 2, 3, 31 \ Edge 1 EDGE 0, 3, 0, 3, 31 \ Edge 2 EDGE 0, 4, 0, 1, 31 \ Edge 3 EDGE 1, 2, 4, 2, 31 \ Edge 4 EDGE 1, 4, 1, 5, 31 \ Edge 5 EDGE 3, 4, 0, 6, 31 \ Edge 6 EDGE 2, 3, 3, 7, 31 \ Edge 7 EDGE 2, 5, 4, 7, 31 \ Edge 8 EDGE 1, 6, 4, 5, 31 \ Edge 9 EDGE 4, 7, 5, 6, 31 \ Edge 10 EDGE 3, 8, 6, 7, 31 \ Edge 11 EDGE 7, 8, 6, 8, 31 \ Edge 12 EDGE 5, 8, 7, 8, 31 \ Edge 13 EDGE 5, 6, 4, 8, 31 \ Edge 14 EDGE 6, 7, 5, 8, 31 \ Edge 15 EDGE 6, 10, 5, 8, 8 \ Edge 16 EDGE 5, 9, 7, 8, 8 \ Edge 17 EDGE 8, 12, 7, 8, 8 \ Edge 18 EDGE 7, 11, 5, 8, 8 \ Edge 19 EDGE 9, 15, 4, 7, 8 \ Edge 20 EDGE 10, 16, 4, 5, 8 \ Edge 21 EDGE 12, 13, 6, 7, 8 \ Edge 22 EDGE 11, 14, 5, 6, 8 \ Edge 23 .SHIP_MISSILE_FACES \FACE normal_x, normal_y, normal_z, visibility FACE -64, 0, 16, 31 \ Face 0 FACE 0, -64, 16, 31 \ Face 1 FACE 64, 0, 16, 31 \ Face 2 FACE 0, 64, 16, 31 \ Face 3 FACE 32, 0, 0, 31 \ Face 4 FACE 0, -32, 0, 31 \ Face 5 FACE -32, 0, 0, 31 \ Face 6 FACE 0, 32, 0, 31 \ Face 7 FACE 0, 0, -176, 31 \ Face 8Name: SHIP_MISSILE [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a missile Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_MISSILE.SHIP_ASTEROID EQUB 0 \ Max. canisters on demise = 0 EQUW 80 * 80 \ Targetable area = 80 * 80 EQUB LO(SHIP_ASTEROID_EDGES - SHIP_ASTEROID) \ Edges data offset (low) EQUB LO(SHIP_ASTEROID_FACES - SHIP_ASTEROID) \ Faces data offset (low) EQUB 65 \ Max. edge count = (65 - 1) / 4 = 16 EQUB 0 \ Gun vertex = 0 EQUB 34 \ Explosion count = 7, as (4 * n) + 6 = 34 EQUB 54 \ Number of vertices = 54 / 6 = 9 EQUB 21 \ Number of edges = 21 EQUW 5 \ Bounty = 5 EQUB 56 \ Number of faces = 56 / 4 = 14 EQUB 50 \ Visibility distance = 50 EQUB 60 \ Max. energy = 60 EQUB 30 \ Max. speed = 30 EQUB HI(SHIP_ASTEROID_EDGES - SHIP_ASTEROID) \ Edges data offset (high) EQUB HI(SHIP_ASTEROID_FACES - SHIP_ASTEROID) \ Faces data offset (high) EQUB 1 \ Normals are scaled by = 2^1 = 2 EQUB %00000000 \ Laser power = 0 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 80, 0, 15, 15, 15, 15, 31 \ Vertex 0 VERTEX -80, -10, 0, 15, 15, 15, 15, 31 \ Vertex 1 VERTEX 0, -80, 0, 15, 15, 15, 15, 31 \ Vertex 2 VERTEX 70, -40, 0, 15, 15, 15, 15, 31 \ Vertex 3 VERTEX 60, 50, 0, 5, 6, 12, 13, 31 \ Vertex 4 VERTEX 50, 0, 60, 15, 15, 15, 15, 31 \ Vertex 5 VERTEX -40, 0, 70, 0, 1, 2, 3, 31 \ Vertex 6 VERTEX 0, 30, -75, 15, 15, 15, 15, 31 \ Vertex 7 VERTEX 0, -50, -60, 8, 9, 10, 11, 31 \ Vertex 8 .SHIP_ASTEROID_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 1, 2, 7, 31 \ Edge 0 EDGE 0, 4, 6, 13, 31 \ Edge 1 EDGE 3, 4, 5, 12, 31 \ Edge 2 EDGE 2, 3, 4, 11, 31 \ Edge 3 EDGE 1, 2, 3, 10, 31 \ Edge 4 EDGE 1, 6, 2, 3, 31 \ Edge 5 EDGE 2, 6, 1, 3, 31 \ Edge 6 EDGE 2, 5, 1, 4, 31 \ Edge 7 EDGE 5, 6, 0, 1, 31 \ Edge 8 EDGE 0, 5, 0, 6, 31 \ Edge 9 EDGE 3, 5, 4, 5, 31 \ Edge 10 EDGE 0, 6, 0, 2, 31 \ Edge 11 EDGE 4, 5, 5, 6, 31 \ Edge 12 EDGE 1, 8, 8, 10, 31 \ Edge 13 EDGE 1, 7, 7, 8, 31 \ Edge 14 EDGE 0, 7, 7, 13, 31 \ Edge 15 EDGE 4, 7, 12, 13, 31 \ Edge 16 EDGE 3, 7, 9, 12, 31 \ Edge 17 EDGE 3, 8, 9, 11, 31 \ Edge 18 EDGE 2, 8, 10, 11, 31 \ Edge 19 EDGE 7, 8, 8, 9, 31 \ Edge 20 .SHIP_ASTEROID_FACES \FACE normal_x, normal_y, normal_z, visibility FACE 9, 66, 81, 31 \ Face 0 FACE 9, -66, 81, 31 \ Face 1 FACE -72, 64, 31, 31 \ Face 2 FACE -64, -73, 47, 31 \ Face 3 FACE 45, -79, 65, 31 \ Face 4 FACE 135, 15, 35, 31 \ Face 5 FACE 38, 76, 70, 31 \ Face 6 FACE -66, 59, -39, 31 \ Face 7 FACE -67, -15, -80, 31 \ Face 8 FACE 66, -14, -75, 31 \ Face 9 FACE -70, -80, -40, 31 \ Face 10 FACE 58, -102, -51, 31 \ Face 11 FACE 81, 9, -67, 31 \ Face 12 FACE 47, 94, -63, 31 \ Face 13Name: SHIP_ASTEROID [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for an asteroid Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_ASTEROID.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 EQUW 0 \ Bounty = 0 EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 12 \ Visibility distance = 12 EQUB 17 \ Max. energy = 17 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 6Name: SHIP_CANISTER [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a cargo canister Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_CANISTER.SHIP_THARGON EQUB 0 \ Max. canisters on demise = 0 EQUW 40 * 40 \ Targetable area = 40 * 40 EQUB LO(SHIP_CANISTER_EDGES - SHIP_THARGON) \ Edges from canister EQUB LO(SHIP_THARGON_FACES - SHIP_THARGON) \ Faces data offset (low) EQUB 65 \ Max. edge count = (65 - 1) / 4 = 16 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 EQUW 50 \ Bounty = 50 EQUB 28 \ Number of faces = 28 / 4 = 7 EQUB 20 \ Visibility distance = 20 EQUB 20 \ Max. energy = 20 EQUB 30 \ Max. speed = 30 EQUB HI(SHIP_CANISTER_EDGES - SHIP_THARGON) \ Edges from canister EQUB HI(SHIP_THARGON_FACES - SHIP_THARGON) \ Faces data offset (high) EQUB 2 \ Normals are scaled by = 2^2 = 4 EQUB %00010000 \ Laser power = 2 \ Missiles = 0 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX -9, 0, 40, 1, 0, 5, 5, 31 \ Vertex 0 VERTEX -9, -38, 12, 1, 0, 2, 2, 31 \ Vertex 1 VERTEX -9, -24, -32, 2, 0, 3, 3, 31 \ Vertex 2 VERTEX -9, 24, -32, 3, 0, 4, 4, 31 \ Vertex 3 VERTEX -9, 38, 12, 4, 0, 5, 5, 31 \ Vertex 4 VERTEX 9, 0, -8, 5, 1, 6, 6, 31 \ Vertex 5 VERTEX 9, -10, -15, 2, 1, 6, 6, 31 \ Vertex 6 VERTEX 9, -6, -26, 3, 2, 6, 6, 31 \ Vertex 7 VERTEX 9, 6, -26, 4, 3, 6, 6, 31 \ Vertex 8 VERTEX 9, 10, -15, 5, 4, 6, 6, 31 \ Vertex 9 .SHIP_THARGON_FACES \FACE normal_x, normal_y, normal_z, visibility FACE -36, 0, 0, 31 \ Face 0 FACE 20, -5, 7, 31 \ Face 1 FACE 46, -42, -14, 31 \ Face 2 FACE 36, 0, -104, 31 \ Face 3 FACE 46, 42, -14, 31 \ Face 4 FACE 20, 5, 7, 31 \ Face 5 FACE 36, 0, 0, 31 \ Face 6Name: SHIP_THARGON [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Thargon Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_THARGON

The ship blueprint for the Thargon reuses the edges data from the cargo canister, so the edges data offset is negative..SHIP_ESCAPE_POD EQUB 0 \ Max. canisters on demise = 0 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 EQUB 17 \ Max. energy = 17 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 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 -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 26, 0, -61, 31 \ Face 0 FACE 19, 51, 15, 31 \ Face 1 FACE 19, -51, 15, 31 \ Face 2 FACE -56, 0, 0, 31 \ Face 3Name: SHIP_ESCAPE_POD [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for an escape pod Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_ESCAPE_PODPRINT "SHIPS" PRINT "Assembled at ", ~CODE_SHIPS% PRINT "Ends at ", ~P% PRINT "Code size is ", ~(P% - CODE_SHIPS%) PRINT "Execute at ", ~LOAD% PRINT "Reload at ", ~LOAD_SHIPS% PRINT "S.SHIPS ", ~CODE_SHIPS%, " ", ~P%, " ", ~LOAD%, " ", ~LOAD_SHIPS% SAVE "3-assembled-output/SHIPS.bin", CODE_SHIPS%, P%, LOAD%Save SHIPS.binCLEAR 0, &7F00 CODE_PYTHON% = &7F00 LOAD_PYTHON% = &1B00 ORG CODE_PYTHON%ELITE PYTHON SHIP BLUEPRINT FILE Produces the binary file PYTHON.bin that gets loaded by elite-bcfs.asm..SHIP_PYTHON EQUB 3 \ Max. canisters on demise = 3 EQUW 120 * 120 \ Targetable area = 120 * 120 EQUB LO(SHIP_PYTHON_EDGES - SHIP_PYTHON) \ Edges data offset (low) EQUB LO(SHIP_PYTHON_FACES - SHIP_PYTHON) \ Faces data offset (low) EQUB 85 \ Max. edge count = (85 - 1) / 4 = 21 EQUB 0 \ Gun vertex = 0 EQUB 46 \ Explosion count = 10, as (4 * n) + 6 = 46 EQUB 66 \ Number of vertices = 66 / 6 = 11 EQUB 26 \ Number of edges = 26 EQUW 200 \ Bounty = 200 EQUB 52 \ Number of faces = 52 / 4 = 13 EQUB 40 \ Visibility distance = 40 EQUB 250 \ Max. energy = 250 EQUB 20 \ Max. speed = 20 EQUB HI(SHIP_PYTHON_EDGES - SHIP_PYTHON) \ Edges data offset (high) EQUB HI(SHIP_PYTHON_FACES - SHIP_PYTHON) \ Faces data offset (high) EQUB 0 \ Normals are scaled by = 2^0 = 1 EQUB %00011011 \ Laser power = 3 \ Missiles = 3 \VERTEX x, y, z, face1, face2, face3, face4, visibility VERTEX 0, 0, 224, 0, 1, 2, 3, 31 \ Vertex 0 VERTEX 0, 48, 48, 0, 1, 4, 5, 30 \ Vertex 1 VERTEX 96, 0, -16, 15, 15, 15, 15, 31 \ Vertex 2 VERTEX -96, 0, -16, 15, 15, 15, 15, 31 \ Vertex 3 VERTEX 0, 48, -32, 4, 5, 8, 9, 30 \ Vertex 4 VERTEX 0, 24, -112, 9, 8, 12, 12, 31 \ Vertex 5 VERTEX -48, 0, -112, 8, 11, 12, 12, 31 \ Vertex 6 VERTEX 48, 0, -112, 9, 10, 12, 12, 31 \ Vertex 7 VERTEX 0, -48, 48, 2, 3, 6, 7, 30 \ Vertex 8 VERTEX 0, -48, -32, 6, 7, 10, 11, 30 \ Vertex 9 VERTEX 0, -24, -112, 10, 11, 12, 12, 30 \ Vertex 10 .SHIP_PYTHON_EDGES \EDGE vertex1, vertex2, face1, face2, visibility EDGE 0, 8, 2, 3, 30 \ Edge 0 EDGE 0, 3, 0, 2, 31 \ Edge 1 EDGE 0, 2, 1, 3, 31 \ Edge 2 EDGE 0, 1, 0, 1, 30 \ Edge 3 EDGE 2, 4, 9, 5, 29 \ Edge 4 EDGE 1, 2, 1, 5, 29 \ Edge 5 EDGE 2, 8, 7, 3, 29 \ Edge 6 EDGE 1, 3, 0, 4, 29 \ Edge 7 EDGE 3, 8, 2, 6, 29 \ Edge 8 EDGE 2, 9, 7, 10, 29 \ Edge 9 EDGE 3, 4, 4, 8, 29 \ Edge 10 EDGE 3, 9, 6, 11, 29 \ Edge 11 EDGE 3, 5, 8, 8, 5 \ Edge 12 EDGE 3, 10, 11, 11, 5 \ Edge 13 EDGE 2, 5, 9, 9, 5 \ Edge 14 EDGE 2, 10, 10, 10, 5 \ Edge 15 EDGE 2, 7, 9, 10, 31 \ Edge 16 EDGE 3, 6, 8, 11, 31 \ Edge 17 EDGE 5, 6, 8, 12, 31 \ Edge 18 EDGE 5, 7, 9, 12, 31 \ Edge 19 EDGE 7, 10, 12, 10, 29 \ Edge 20 EDGE 6, 10, 11, 12, 29 \ Edge 21 EDGE 4, 5, 8, 9, 29 \ Edge 22 EDGE 9, 10, 10, 11, 29 \ Edge 23 EDGE 1, 4, 4, 5, 29 \ Edge 24 EDGE 8, 9, 6, 7, 29 \ Edge 25 .SHIP_PYTHON_FACES \FACE normal_x, normal_y, normal_z, visibility FACE -27, 40, 11, 30 \ Face 0 FACE 27, 40, 11, 30 \ Face 1 FACE -27, -40, 11, 30 \ Face 2 FACE 27, -40, 11, 30 \ Face 3 FACE -19, 38, 0, 30 \ Face 4 FACE 19, 38, 0, 30 \ Face 5 FACE -19, -38, 0, 30 \ Face 6 FACE 19, -38, 0, 30 \ Face 7 FACE -25, 37, -11, 30 \ Face 8 FACE 25, 37, -11, 30 \ Face 9 FACE 25, -37, -11, 30 \ Face 10 FACE -25, -37, -11, 30 \ Face 11 FACE 0, 0, -112, 30 \ Face 12 SKIP 11 \ This space appears to be unusedName: SHIP_PYTHON [Show more] Type: Variable Category: Drawing ships Summary: Ship blueprint for a Python Deep dive: Ship blueprintsContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * XX21 calls SHIP_PYTHON.SVN SKIP 1 \ "Saving in progress" flag \ \ * Non-zero while we are saving a commander \ \ * 0 otherwiseName: SVN [Show more] Type: Variable Category: Save and load Summary: The "saving in progress" flagContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * IRQ1 calls SVN * SVE calls SVN.VEC SKIP 2 \ VEC = &7FFE \ \ This gets set to the value of the original IRQ1 vector \ by the loading processName: VEC [Show more] Type: Variable Category: Screen mode Summary: The original value of the IRQ1 vectorContext: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * IRQ1 calls VECPRINT "PYTHON" PRINT "Assembled at ", ~CODE_PYTHON% PRINT "Ends at ", ~P% PRINT "Code size is ", ~(P% - CODE_PYTHON%) PRINT "Execute at ", ~LOAD% PRINT "Reload at ", ~LOAD_PYTHON% PRINT "S.PYTHON ", ~CODE_B%, " ", ~P%, " ", ~LOAD%, " ", ~LOAD_PYTHON% SAVE "3-assembled-output/PYTHON.bin", CODE_PYTHON%, P%, LOAD%Save PYTHON.binPRINT "ELITE game code ", ~(&6000-P%), " bytes free" PRINT "Ends at ", ~P%Show free space

[X]

Variable SHIP_ASTEROID (category: Drawing ships)

Ship blueprint for an asteroid

[X]

Label SHIP_ASTEROID_EDGES in variable SHIP_ASTEROID

[X]

Label SHIP_ASTEROID_FACES in variable SHIP_ASTEROID

[X]

Variable SHIP_CANISTER (category: Drawing ships)

Ship blueprint for a cargo canister

[X]

Label SHIP_CANISTER_EDGES in variable SHIP_CANISTER

[X]

Label SHIP_CANISTER_FACES in variable SHIP_CANISTER

[X]

Variable SHIP_COBRA_MK_3 (category: Drawing ships)

Ship blueprint for a Cobra Mk III

[X]

Label SHIP_COBRA_MK_3_EDGES in variable SHIP_COBRA_MK_3

[X]

Label SHIP_COBRA_MK_3_FACES in variable SHIP_COBRA_MK_3

[X]

Variable SHIP_CORIOLIS (category: Drawing ships)

Ship blueprint for a Coriolis space station

[X]

Label SHIP_CORIOLIS_EDGES in variable SHIP_CORIOLIS

[X]

Label SHIP_CORIOLIS_FACES in variable SHIP_CORIOLIS

[X]

Variable SHIP_ESCAPE_POD (category: Drawing ships)

Ship blueprint for an escape pod

[X]

Label SHIP_ESCAPE_POD_EDGES in variable SHIP_ESCAPE_POD

[X]

Label SHIP_ESCAPE_POD_FACES in variable SHIP_ESCAPE_POD

[X]

Variable SHIP_MAMBA (category: Drawing ships)

Ship blueprint for a Mamba

[X]

Label SHIP_MAMBA_EDGES in variable SHIP_MAMBA

[X]

Label SHIP_MAMBA_FACES in variable SHIP_MAMBA

[X]

Variable SHIP_MISSILE (category: Drawing ships)

Ship blueprint for a missile

[X]

Label SHIP_MISSILE_EDGES in variable SHIP_MISSILE

[X]

Label SHIP_MISSILE_FACES in variable SHIP_MISSILE

[X]

Variable SHIP_PYTHON (category: Drawing ships)

Ship blueprint for a Python

[X]

Label SHIP_PYTHON_EDGES in variable SHIP_PYTHON

[X]

Label SHIP_PYTHON_FACES in variable SHIP_PYTHON

[X]

Variable SHIP_SIDEWINDER (category: Drawing ships)

Ship blueprint for a Sidewinder

[X]

Label SHIP_SIDEWINDER_EDGES in variable SHIP_SIDEWINDER

[X]

Label SHIP_SIDEWINDER_FACES in variable SHIP_SIDEWINDER

[X]

Variable SHIP_THARGOID (category: Drawing ships)

Ship blueprint for a Thargoid mothership

[X]

Label SHIP_THARGOID_EDGES in variable SHIP_THARGOID

[X]

Label SHIP_THARGOID_FACES in variable SHIP_THARGOID

[X]

Variable SHIP_THARGON (category: Drawing ships)

Ship blueprint for a Thargon

[X]

Label SHIP_THARGON_FACES in variable SHIP_THARGON

[X]

Variable SHIP_VIPER (category: Drawing ships)

Ship blueprint for a Viper

[X]

Label SHIP_VIPER_EDGES in variable SHIP_VIPER

[X]

Label SHIP_VIPER_FACES in variable SHIP_VIPER

[X]

[X]

[X]

[X]

[X]

Configuration variable: f1 = &71

Internal key number for red key f1 (Buy Cargo, Rear)

[X]

Configuration variable: f2 = &72

Internal key number for red key f2 (Sell Cargo, Left)

[X]

[X]

[X]

[X]

[X]

[X]

[X]

[X]

[X]

[X]

[X]