1 /*
2  * all defines that can change the compiling
3  */
4 
5 #ifndef simconst_h
6 #define simconst_h
7 
8 // color depth (default assumes RGB565), undefine only for rgb555 builds!
9 //#define RGB555
10 
11 // number of player
12 #define MAX_PLAYER_COUNT (16)
13 #define PLAYER_UNOWNED (15)
14 
15 /* Flag for non Intel byte order
16  * SET THIS IN YOUR COMPILER COMMAND LINE!
17  */
18 //#define SIM_BIG_ENDIAN
19 
20 /* crossconnect industry and half heights like openTTD */
21 //#define OTTD_LIKE
22 
23 /* single height is only 8 pixel (default 16) */
24 //#define HALF_HEIGHT
25 
26 /* construct automatic bridges also as active player */
27 //#define AUTOMATIC_BRIDGES
28 
29 /* construct automatic tunnels also as active player */
30 //#define AUTOMATIC_TUNNELS
31 
32 /* citycars have a destination; if they could get near, they dissolve */
33 //#define DESTINATION_CITYCARS
34 
35 /* need to emulate the mouse pointer with a graphic */
36 //#define USE_SOFTPOINTER
37 
38 /* Use assembly imepmentation of routines if available
39 * Some routines, eg for drawing, can have assembly implementations for certaint platforms that may perform better */
40 #define USE_ASSEMBLER
41 
42 /* Use low level C/C++ implementations of routines
43  * Some routines, eg for drawing, can have low level C++ implementations that might perform better on certain platforms */
44 #define LOW_LEVEL
45 
46 // The wind (i.e. approach direction) is random all over the map (not recommended, since it confuses players)
47 //#define USE_DIFFERENT_WIND
48 
49 // define this for automatically joining stations next to a public stop with it
50 //#define AUTOJOIN_PUBLIC
51 
52 // allow minspeed and private way signs on waterways (imho pointless)
53 //#define ENABLE_WATERWAY_SIGNS
54 
55 // Maximum number of threads
56 #define MAX_THREADS (12)
57 
58 
59 /*********************** Useful things for debugging ... ********************/
60 
61 /* will highlight marked areas and convoi will leave traces */
62 //#define DEBUG_ROUTES
63 
64 /* shows which tiles are drawn as dings (used in boden/grund.cc) */
65 //#define SHOW_FORE_GRUND
66 
67 /* shows with block needed update and which not */
68 //#define DEBUG_FLUSH_BUFFER
69 
70 /* define USE_VALGRIND_MEMCHECK to make valgrind aware of the freelist memory pool */
71 //#define USE_VALGRIND_MEMCHECK
72 
73 /* define this to check for double free and sizes for freelist */
74 //#define DEBUG_FREELIST
75 
76 
77 /**************************** automatic stuff ********************************/
78 
79 
80 // inclination types
81 // constants used in tools tool_setslope / tool_restoreslope_t
82 #define ALL_UP_SLOPE (82)
83 #define ALL_DOWN_SLOPE (83)
84 #define RESTORE_SLOPE (84)
85 #define ALL_UP_SLOPE_SINGLE (16)
86 #define ALL_DOWN_SLOPE_SINGLE (17)
87 #define RESTORE_SLOPE_SINGLE (18)
88 
89 
90 // 16 internal pixels per tile, for purposes of object visual offsets.
91 #define OBJECT_OFFSET_STEPS (16)
92 // These must be changed (along with lots of other code) if OBJECT_OFFSET_STEPS is changed.
93 #define tile_raster_scale_x(v, rw)   (((v)*(rw)) >> 6)
94 #define tile_raster_scale_y(v, rh)   (((v)*(rh)) >> 6)
95 
96 #define INVALID_INDEX (65530u)
97 
98 // offsets for mouse pointer
99 #define Z_PLAN (4)
100 #define Z_GRID (0)
101 
102 #endif
103