3 /* The output from the layout processing system to the control
4 * software, describing the layout and the trains, is a data structure
5 * as described in this header file, in <name-of-layout>.layout-data.o
6 * (where <name-of-layout> is currently `ours').
8 * Alternatively, <name-of-layout>.redacted.forsafety contains data in
9 * the form described at the top of redactgraph.c.
15 /*========== basic types etc. ==========*/
18 typedef int SegmentNum;
19 typedef long MovPosComb;
21 typedef int BoardObject;
30 /*========== data from config files and layout cad/cam ==========*/
33 unsigned next_backwards:1;
42 const BoardObject *boob;
48 SegmentLinkInfo backwards, forwards;
53 unsigned invertible:1;
55 const MovFeatInfo *movfeats;
56 MovPosComb n_poscombs;
57 const SegPosCombInfo *poscombs;
58 BoardObject sense, invert;
61 /* This data array has no sentinel member. Use the info_nsegments
62 * constant. Alternatively, it is legal to sed out everything from
63 * <name-of-layout>.layout-data.c from the first #include onwards, and
64 * this will give a definition of NUM_SEGMENTS.
67 extern const SegmentNum info_nsegments;
68 extern const SegmentInfo info_segments[];
70 extern const BoardObject info_maxreverse; /* max. reverse + 1 */
73 #define SOMEP(x) ((x) >= 0)
75 #endif /*LAYOUT_DATA_H*/