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;
28 /* must also add new entries to movpos.c:methodinfos */
31 /*========== data from config files and layout cad/cam ==========*/
34 unsigned next_backwards:1;
43 const BoardObject *boob;
49 SegmentLinkInfo backwards, forwards;
54 unsigned invertible:1;
56 const MovFeatInfo *movfeats;
57 MovPosComb n_poscombs;
58 const SegPosCombInfo *poscombs;
59 BoardObject sense, invert;
62 /* This data array has no sentinel member. Use the info_nsegments
63 * constant. Alternatively, it is legal to sed out everything from
64 * <name-of-layout>.layout-data.c from the first #include onwards, and
65 * this will give a definition of NUM_SEGMENTS.
68 extern const SegmentNum info_nsegments;
69 extern const SegmentInfo info_segments[];
71 extern const BoardObject info_maxreverse; /* max. reverse + 1 */
73 #define NOTA(thing) (-1)
74 #define SOMEP(x) ((x) >= 0)
76 #endif /*LAYOUT_DATA_H*/