summaryrefslogtreecommitdiff
path: root/src/table/ai_rail.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
committerrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
commit66bbf336c6af7353ef0aeed58002c46543b30635 (patch)
treead4a63860df2626b22f77e7dac712e958bea54cb /src/table/ai_rail.h
parentccc0a3f4dbf58c005b22341ac8874252924690cd (diff)
downloadopenttd-66bbf336c6af7353ef0aeed58002c46543b30635.tar.xz
(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
Diffstat (limited to 'src/table/ai_rail.h')
-rw-r--r--src/table/ai_rail.h480
1 files changed, 480 insertions, 0 deletions
diff --git a/src/table/ai_rail.h b/src/table/ai_rail.h
new file mode 100644
index 000000000..8e6a49c50
--- /dev/null
+++ b/src/table/ai_rail.h
@@ -0,0 +1,480 @@
+/* $Id$ */
+
+typedef struct {
+ byte mode;
+ byte attr;
+ TileIndexDiffC tileoffs;
+} AiDefaultBlockData;
+
+typedef struct {
+ byte p0;
+ byte p1;
+ byte p2;
+ byte p3;
+ byte dir;
+ AiDefaultBlockData data[VARARRAY_SIZE];
+} AiDefaultRailBlock;
+
+typedef struct {
+ byte dir;
+ AiDefaultBlockData data[VARARRAY_SIZE];
+} AiDefaultRoadBlock;
+
+
+#define MKHDR(a,b,c,d,e) a,b,c,d,e,{
+#define MKDEPOT(a, b, c) {0, a, {b, c}}
+#define MKSTATION(a, b, c) {1, a, {b, c}}
+#define MKRAIL(a, b, c) {2, a, {b, c}}
+#define MKCLRRAIL(a, b, c) {3, a, {b, c}}
+#define MKEND {4, 0, {0, 0}}}
+
+static const AiDefaultRailBlock _raildata_ai_0 = {
+ MKHDR(1, 2, 1, 0, 1)
+ MKDEPOT(2, -1, 1),
+ MKSTATION(0x15, 0, -1),
+ MKRAIL(0x26, 0, 1),
+ MKCLRRAIL(1, 0, 2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_1 = {
+ MKHDR(1, 2, 1, 0, 3)
+ MKDEPOT(2, -1, -1),
+ MKRAIL(0x26, 0, -1),
+ MKSTATION(0x15, 0, 0),
+ MKCLRRAIL(3, 0, -2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_2 = {
+ MKHDR(1, 2, 1, 0, 0)
+ MKDEPOT(1, -1, -1),
+ MKRAIL(0x15, -1, 0),
+ MKSTATION(0x14, 0, 0),
+ MKCLRRAIL(0, -2, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_3 = {
+ MKHDR(1, 2, 1, 0, 2)
+ MKDEPOT(1, 1, -1),
+ MKRAIL(0x15, 1, 0),
+ MKSTATION(0x14, -1, 0),
+ MKCLRRAIL(2, 2, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_4 = {
+ MKHDR(1, 2, 2, 0, 255)
+ MKSTATION(0x15, 0, 0),
+ MKCLRRAIL(3, 0, -1),
+ MKCLRRAIL(1, 0, 2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_5 = {
+ MKHDR(1, 2, 2, 0, 255)
+ MKSTATION(0x14, 0, 0),
+ MKCLRRAIL(0, -1, 0),
+ MKCLRRAIL(2, 2, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_6 = {
+ MKHDR(2, 3, 1, 0, 1)
+ MKSTATION(0x27, 0, -2),
+ MKRAIL(0xC2, 0, 1),
+ MKRAIL(0xC2, 1, 1),
+ MKRAIL(0x1A, 0, 2),
+ MKRAIL(0x26, 1, 2),
+ MKDEPOT(3, 1, 3),
+ MKCLRRAIL(1, 0, 3),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_7 = {
+ MKHDR(2, 3, 1, 0, 3)
+ MKDEPOT(1, 0, -3),
+ MKRAIL(0x1A, 0, -2),
+ MKRAIL(0x26, 1, -2),
+ MKRAIL(0xC2, 0, -1),
+ MKRAIL(0xC2, 1, -1),
+ MKSTATION(0x27, 0, 0),
+ MKCLRRAIL(3, 1, -3),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_8 = {
+ MKHDR(2, 3, 1, 0, 2)
+ MKSTATION(0x26, -2, 0),
+ MKRAIL(0xC1, 1, 0),
+ MKRAIL(0xC1, 1, 1),
+ MKRAIL(0x29, 2, 0),
+ MKRAIL(0x15, 2, 1),
+ MKDEPOT(0, 3, 0),
+ MKCLRRAIL(2, 3, 1),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_9 = {
+ MKHDR(2, 3, 1, 0, 0)
+ MKDEPOT(2, -3, -1),
+ MKRAIL(0x29, -2, -1),
+ MKRAIL(0x15, -2, 0),
+ MKRAIL(0xC1, -1, -1),
+ MKRAIL(0xC1, -1, 0),
+ MKSTATION(0x26, 0, -1),
+ MKCLRRAIL(0, -3, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_10 = {
+ MKHDR(2, 3, 2, 0, 255)
+ MKRAIL(0x1A, 0, -3),
+ MKRAIL(0x20, 1, -3),
+ MKRAIL(0xC2, 0, -2),
+ MKRAIL(0xC2, 1, -2),
+ MKSTATION(0x27, 0, -1),
+ MKRAIL(0xC2, 0, 2),
+ MKRAIL(0xC2, 1, 2),
+ MKRAIL(0x1A, 0, 3),
+ MKRAIL(0x4, 1, 3),
+ MKCLRRAIL(3, 0, -4),
+ MKCLRRAIL(1, 0, 4),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_11 = {
+ MKHDR(2, 3, 2, 0, 255)
+ MKRAIL(0x29, -3, 0),
+ MKRAIL(0x10, -3, 1),
+ MKRAIL(0xC1, -2, 0),
+ MKRAIL(0xC1, -2, 1),
+ MKSTATION(0x26, -1, 0),
+ MKRAIL(0xC1, 2, 0),
+ MKRAIL(0xC1, 2, 1),
+ MKRAIL(0x29, 3, 0),
+ MKRAIL(0x4, 3, 1),
+ MKCLRRAIL(0, -4, 0),
+ MKCLRRAIL(2, 4, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_12 = {
+ MKHDR(2, 3, 2, 1, 3)
+ MKRAIL(0x88, -1, -3),
+ MKRAIL(0x6, 0, -3),
+ MKRAIL(0x2, -1, -2),
+ MKRAIL(0x42, 0, -2),
+ MKRAIL(0x2, -1, -1),
+ MKRAIL(0x2, 0, -1),
+ MKRAIL(0x2, -1, 0),
+ MKRAIL(0x2, 0, 0),
+ MKRAIL(0x82, -1, 1),
+ MKRAIL(0x2, 0, 1),
+ MKRAIL(0xA, -1, 2),
+ MKRAIL(0x44, 0, 2),
+ MKCLRRAIL(3, 0, -4),
+ MKCLRRAIL(1, -1, 3),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_13 = {
+ MKHDR(2, 3, 2, 1, 0)
+ MKRAIL(0x21, -3, 0),
+ MKRAIL(0x50, -3, 1),
+ MKRAIL(0x81, -2, 0),
+ MKRAIL(0x1, -2, 1),
+ MKRAIL(0x1, -1, 0),
+ MKRAIL(0x1, -1, 1),
+ MKRAIL(0x1, 0, 0),
+ MKRAIL(0x1, 0, 1),
+ MKRAIL(0x1, 1, 0),
+ MKRAIL(0x41, 1, 1),
+ MKRAIL(0xA0, 2, 0),
+ MKRAIL(0x11, 2, 1),
+ MKCLRRAIL(0, -4, 0),
+ MKCLRRAIL(2, 3, 1),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_14 = {
+ MKHDR(2, 3, 2, 1, 1)
+ MKRAIL(0x88, -1, -3),
+ MKRAIL(0x6, 0, -3),
+ MKRAIL(0x2, -1, -2),
+ MKRAIL(0x42, 0, -2),
+ MKRAIL(0x2, -1, -1),
+ MKRAIL(0x2, 0, -1),
+ MKRAIL(0x2, -1, 0),
+ MKRAIL(0x2, 0, 0),
+ MKRAIL(0x82, -1, 1),
+ MKRAIL(0x2, 0, 1),
+ MKRAIL(0xA, -1, 2),
+ MKRAIL(0x44, 0, 2),
+ MKCLRRAIL(1, -1, 3),
+ MKCLRRAIL(3, 0, -4),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_15 = {
+ MKHDR(2, 3, 2, 1, 2)
+ MKRAIL(0x21, -3, 0),
+ MKRAIL(0x50, -3, 1),
+ MKRAIL(0x81, -2, 0),
+ MKRAIL(0x1, -2, 1),
+ MKRAIL(0x1, -1, 0),
+ MKRAIL(0x1, -1, 1),
+ MKRAIL(0x1, 0, 0),
+ MKRAIL(0x1, 0, 1),
+ MKRAIL(0x1, 1, 0),
+ MKRAIL(0x41, 1, 1),
+ MKRAIL(0xA0, 2, 0),
+ MKRAIL(0x11, 2, 1),
+ MKCLRRAIL(2, 3, 1),
+ MKCLRRAIL(0, -4, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_16 = {
+ MKHDR(1, 3, 1, 0, 1)
+ MKSTATION(0x17, 0, -2),
+ MKRAIL(0x1A, 0, 1),
+ MKCLRRAIL(1, 0, 2),
+ MKDEPOT(0, 1, 1),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_17 = {
+ MKHDR(1, 3, 1, 0, 3)
+ MKCLRRAIL(3, 0, -2),
+ MKRAIL(0x26, 0, -1),
+ MKDEPOT(2, -1, -1),
+ MKSTATION(0x17, 0, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_18 = {
+ MKHDR(1, 3, 1, 0, 0)
+ MKCLRRAIL(0, -2, 0),
+ MKRAIL(0x29, -1, 0),
+ MKDEPOT(3, -1, 1),
+ MKSTATION(0x16, 0, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_19 = {
+ MKHDR(1, 3, 1, 0, 2)
+ MKSTATION(0x16, -2, 0),
+ MKDEPOT(2, 0, -1),
+ MKRAIL(0x20, 1, -1),
+ MKRAIL(0x15, 1, 0),
+ MKCLRRAIL(2, 2, 0),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_20 = {
+ MKHDR(2, 3, 1, 0, 1)
+ MKSTATION(0x26, -2, 0),
+ MKRAIL(0xC1, 1, 0),
+ MKRAIL(0xC1, 1, 1),
+ MKRAIL(0x26, 2, 0),
+ MKRAIL(0x26, 2, 1),
+ MKDEPOT(1, 2, -1),
+ MKCLRRAIL(1, 2, 2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_21 = {
+ MKHDR(2, 3, 1, 0, 3)
+ MKDEPOT(2, -3, -1),
+ MKRAIL(0x3F, -2, -1),
+ MKRAIL(0x10, -2, 0),
+ MKRAIL(0xC1, -1, -1),
+ MKRAIL(0xC1, -1, 0),
+ MKSTATION(0x26, 0, -1),
+ MKCLRRAIL(3, -2, -2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_22 = {
+ MKHDR(2, 3, 1, 0, 0)
+ MKSTATION(0x27, 0, -2),
+ MKRAIL(0xC2, 0, 1),
+ MKRAIL(0xC2, 1, 1),
+ MKRAIL(0x15, 0, 2),
+ MKRAIL(0x4, 1, 2),
+ MKRAIL(0x15, -1, 2),
+ MKDEPOT(1, -1, 1),
+ MKCLRRAIL(0, -2, 2),
+ MKEND
+};
+
+static const AiDefaultRailBlock _raildata_ai_23 = {
+ MKHDR(2, 3, 1, 0, 2)
+ MKDEPOT(1, 0, -3),
+ MKRAIL(0x1A, 0, -2),
+ MKRAIL(0x29, 1, -2),
+ MKRAIL(0xC2, 0, -1),
+ MKRAIL(0xC2, 1, -1),
+ MKSTATION(0x27, 0, 0),
+ MKCLRRAIL(2, 2, -2),
+ MKEND
+};
+
+
+
+static const AiDefaultRailBlock * const _default_rail_track_data[] = {
+ &_raildata_ai_0,
+ &_raildata_ai_1,
+ &_raildata_ai_2,
+ &_raildata_ai_3,
+ &_raildata_ai_4,
+ &_raildata_ai_5,
+ &_raildata_ai_6,
+ &_raildata_ai_7,
+ &_raildata_ai_8,
+ &_raildata_ai_9,
+ &_raildata_ai_10,
+ &_raildata_ai_11,
+ &_raildata_ai_12,
+ &_raildata_ai_13,
+ &_raildata_ai_14,
+ &_raildata_ai_15,
+ &_raildata_ai_16,
+ &_raildata_ai_17,
+ &_raildata_ai_18,
+ &_raildata_ai_19,
+ &_raildata_ai_20,
+ &_raildata_ai_21,
+ &_raildata_ai_22,
+ &_raildata_ai_23,
+ NULL
+};
+
+#undef MKHDR
+
+#define MKHDR(a) a,{
+
+static const AiDefaultRoadBlock _roaddata_ai_0 = {
+ MKHDR(0)
+ MKDEPOT(2, -1,1),
+ MKSTATION(0x2, -1,0),
+ MKRAIL(0xC, 0,0),
+ MKRAIL(0x9, 0,1),
+ MKCLRRAIL(0, 0,-1),
+ MKCLRRAIL(0, 1,0),
+ MKCLRRAIL(0, 1,1),
+ MKCLRRAIL(0, 0,2),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_1 = {
+ MKHDR(0)
+ MKDEPOT(1, 0,-1),
+ MKSTATION(0x1, 1,-1),
+ MKRAIL(0x3, 0,0),
+ MKRAIL(0x9, 1,0),
+ MKCLRRAIL(0, -1,0),
+ MKCLRRAIL(0, 0,1),
+ MKCLRRAIL(0, 1,1),
+ MKCLRRAIL(0, 2,0),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_2 = {
+ MKHDR(0)
+ MKDEPOT(3, 1,1),
+ MKSTATION(0x3, 0,1),
+ MKRAIL(0x6, 0,0),
+ MKRAIL(0xC, 1,0),
+ MKCLRRAIL(0, -1,0),
+ MKCLRRAIL(0, 0,-1),
+ MKCLRRAIL(0, 1,-1),
+ MKCLRRAIL(0, 2,0),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_3 = {
+ MKHDR(0)
+ MKDEPOT(0, 1,0),
+ MKSTATION(0x0, 1,1),
+ MKRAIL(0x6, 0,0),
+ MKRAIL(0x3, 0,1),
+ MKCLRRAIL(0, 0,-1),
+ MKCLRRAIL(0, -1,0),
+ MKCLRRAIL(0, -1,1),
+ MKCLRRAIL(0, 0,2),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_4 = {
+ MKHDR(1)
+ MKSTATION(0x2, -1,0),
+ MKRAIL(0x8, 0,0),
+ MKCLRRAIL(0, 0,-1),
+ MKCLRRAIL(0, 1,0),
+ MKCLRRAIL(0, 0,1),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_5 = {
+ MKHDR(1)
+ MKSTATION(0x3, 0,1),
+ MKRAIL(0x4, 0,0),
+ MKCLRRAIL(0, -1,0),
+ MKCLRRAIL(0, 0,-1),
+ MKCLRRAIL(0, 1,0),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_6 = {
+ MKHDR(1)
+ MKSTATION(0x0, 1,1),
+ MKRAIL(0x2, 0,1),
+ MKCLRRAIL(0, 0,0),
+ MKCLRRAIL(0, -1,0),
+ MKCLRRAIL(0, 0,2),
+ MKEND
+};
+
+static const AiDefaultRoadBlock _roaddata_ai_7 = {
+ MKHDR(1)
+ MKSTATION(0x1, 1,-1),
+ MKRAIL(0x1, 1,0),
+ MKCLRRAIL(0, 0,0),
+ MKCLRRAIL(0, 1,1),
+ MKCLRRAIL(0, 2,0),
+ MKEND
+};
+
+
+static const AiDefaultRoadBlock * const _road_default_block_data[] = {
+ &_roaddata_ai_0,
+ &_roaddata_ai_1,
+ &_roaddata_ai_2,
+ &_roaddata_ai_3,
+ &_roaddata_ai_4,
+ &_roaddata_ai_5,
+ &_roaddata_ai_6,
+ &_roaddata_ai_7,
+ NULL
+};
+
+#define MKAIR(a, b, c) {0, a, {b, c}}
+
+static const AiDefaultBlockData _airportdata_ai_0[] = {
+ MKAIR(1, 0, 0),
+ {1, 0, {0, 0}},
+};
+
+static const AiDefaultBlockData _airportdata_ai_1[] = {
+ MKAIR(0, 0, 0),
+ {1, 0, {0, 0}}
+};
+
+static const AiDefaultBlockData * const _airport_default_block_data[] = {
+ _airportdata_ai_0, // city airport
+ _airportdata_ai_1, // country airport
+ NULL
+};