MACRO 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 blueprints Drawing shipsContext: See this macro in context in the source code References: This macro is used as follows: * SHIP_ADDER uses EDGE * SHIP_ANACONDA uses EDGE * SHIP_ASP_MK_2 uses EDGE * SHIP_ASTEROID uses EDGE * SHIP_BOA uses EDGE * SHIP_BOULDER uses EDGE * SHIP_CANISTER uses EDGE * SHIP_COBRA_MK_1 uses EDGE * SHIP_COBRA_MK_3 uses EDGE * SHIP_COBRA_MK_3_P uses EDGE * SHIP_CONSTRICTOR uses EDGE * SHIP_CORIOLIS uses EDGE * SHIP_COUGAR uses EDGE * SHIP_DODO uses EDGE * SHIP_ESCAPE_POD uses EDGE * SHIP_FER_DE_LANCE uses EDGE * SHIP_GECKO uses EDGE * SHIP_KRAIT uses EDGE * SHIP_MAMBA uses EDGE * SHIP_MISSILE uses EDGE * SHIP_MORAY uses EDGE * SHIP_PLATE uses EDGE * SHIP_PYTHON uses EDGE * SHIP_PYTHON_P uses EDGE * SHIP_ROCK_HERMIT uses EDGE * SHIP_SHUTTLE uses EDGE * SHIP_SIDEWINDER uses EDGE * SHIP_THARGOID uses EDGE * SHIP_TRANSPORTER uses EDGE * SHIP_VIPER uses EDGE * SHIP_WORM uses EDGE
The following macro is used to build the ship blueprints: EDGE vertex1, vertex2, face1, face2, visibility When stored in memory, bytes #2 and #3 contain the vertex numbers multiplied by 4, so we can use them as indices into the heap at XX3 to fetch the screen coordinates for each vertex, as they are stored as four bytes containing two 16-bit numbers (see part 10 of the LL9 routine for details).
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
[X]
Configuration variable f is local to this routine
[X]
[X]
[X]