1 /* ---------------------------------------------------------------------- *
2  * lin-city.h
3  * This file is part of lincity.
4  * Lincity is copyright (c) I J Peters 1995-1997, (c) Greg Sharp 1997-2001.
5  * ---------------------------------------------------------------------- */
6 
7 #ifndef __lin_city_h__
8 #define __lin_city_h__
9 
10 #include <stdio.h>
11 
12 #define LC_X11
13 
14 /*
15   When your money reaches 1 million or more, to make it easier to
16   read, it is split into two parts; a millions part, and the rest.
17    For example  12,355232    You can choose any character you like,
18    but I have given some other examples. Just comment out the one
19    above, and uncomment one below. IT MUST NOT BE NULL.
20   #define MONEY_SEPARATOR '.'
21   #define MONEY_SEPARATOR ' '
22   #define MONEY_SEPARATOR ':'
23 */
24 #define MONEY_SEPARATOR ','
25 
26 /*
27        ************************************************
28         NO USER CONFIGURABLE OPTIONS BEYOND THIS POINT
29        ************************************************
30 */
31 #if defined (_MSC_VER)
32 #   define snprintf _snprintf
33 #endif
34 #define USE_X11_PIXMAPS
35 
36 #ifndef TRUE
37 #   define TRUE 1
38 #endif
39 #ifndef FALSE
40 #   define FALSE 0
41 #endif
42 
43 /* Used by HandleError () */
44 #define FATAL   -1
45 #define WARNING -2
46 
47 /* comment out the the next three lines for _slightly_ faster X drawing. */
48 #if defined LC_X11 || defined WIN32
49 #   define ALLOW_PIX_DOUBLING
50 #endif
51 
52 #if defined (LC_X11) || defined (WIN32)
53 #    define BORDERX 30
54 #    define BORDERY 30
55 #endif
56 
57 #define TEXT_FG_COLOUR  (white(24))
58 #define TEXT_BG_COLOUR  105
59 #define YN_DIALBOX_BG_COLOUR (red(10))
60 #define LOAD_BG_COLOUR       (cyan(10))
61 #define SAVE_BG_COLOUR       (magenta(10))
62 #define NW_BG_COLOUR         (green(10))
63 
64 /* GCS: We are about to run out of bits on the flags, so in the future we
65    might need to implement compression.  For example, FLAG_IS_RIVER is
66    only used for GROUP_WATER, FLAG_MB_COAL for GROUP_MARKET, and so on. */
67 /* WCK: Compression would work, but that's complicated.   I would rather move
68    FLAG_M?_* into an int_? variable.  And add more int_? variables.  That keeps
69    it simple and squeezes some life out of 32 bits.  I don't think we need to
70    hurry.  I'd rather replace the whole scheme. */
71 
72 #define FLAG_LEFT               (1)             // Used for transports, power lines, rivers, and desert borders.
73 #define FLAG_UP                 (2)             // Algorithm relies on the numerical values of
74 #define FLAG_RIGHT              (4)             // the flags. (a check is done at compile time)
75 #define FLAG_DOWN               (8)             //
76 #define FLAG_POWERED            (0x10)
77 #define FLAG_FED                (0x20)
78 #define FLAG_EMPLOYED           (0x40)
79 #define FLAG_IS_TRANSPORT       (0x80)
80 #define FLAG_MB_FOOD            (0x100)
81 #define FLAG_MS_FOOD            (0x200)
82 #define FLAG_MB_JOBS            (0x400)
83 #define FLAG_MS_JOBS            (0x800)
84 #define FLAG_MB_COAL            (0x1000)
85 #define FLAG_MS_COAL            (0x2000)
86 #define FLAG_MB_ORE             (0x4000)
87 #define FLAG_MS_ORE             (0x8000)
88 #define FLAG_MB_GOODS           (0x10000)
89 #define FLAG_MS_GOODS           (0x20000)
90 #define FLAG_MB_STEEL           (0x40000)
91 #define FLAG_MS_STEEL           (0x80000)
92 #define FLAG_FIRE_COVER         (0x100000)
93 #define FLAG_HEALTH_COVER       (0x200000)
94 #define FLAG_CRICKET_COVER      (0x400000)
95 #define FLAG_IS_RIVER           (0x800000)
96 #define FLAG_HAD_POWER          (0x1000000)
97 #define FLAG_MULTI_TRANSPORT    (0x2000000)   /* Is it a multitransport? */     /* AL1: unused in NG 1.1 */
98 #define FLAG_LACK_JOBS          (0x4000000)     /* 1.92 svn , replace previous unused one. */
99 #define FLAG_POWER_LINE         (0x8000000)
100 #define FLAG_WATERWELL_COVER    (0x10000000)
101 #define FLAG_HAS_UNDERGROUND_WATER (0x20000000)
102 #define FLAG_ASKED_FOR_POWER       (0x40000000)
103 #define FLAG_GOT_POWER             (0x80000000) /* 2^31 = last flag */  //nearly duplicate of FLAG_POWERED 0x10
104 
105 /* XXX: It would appear that the following T_ are used exactly two times each,
106    in market.c.  */
107 #define T_FOOD  0
108 #define T_JOBS  1
109 #define T_COAL  2
110 #define T_GOODS 3
111 #define T_ORE   4
112 #define T_STEEL 5
113 #define T_WASTE 6
114 
115 /* XXX: screen.h? */
116 
117 #define MINI_SCREEN_NORMAL_FLAG    (0)
118 #define MINI_SCREEN_POL_FLAG       (1)
119 #define MINI_SCREEN_UB40_FLAG      (2)
120 #define MINI_SCREEN_STARVE_FLAG    (3)
121 #define MINI_SCREEN_PORT_FLAG      (4)
122 #define MINI_SCREEN_POWER_FLAG     (5)
123 #define MINI_SCREEN_FIRE_COVER     (6)
124 #define MINI_SCREEN_CRICKET_COVER  (7)
125 #define MINI_SCREEN_HEALTH_COVER   (8)
126 #define MINI_SCREEN_COAL_FLAG      (9)
127 
128 #define MAIN_SCREEN_NORMAL_FLAG    (1)
129 #define MAIN_SCREEN_EQUALS_MINI    (2)
130 
131 #define WORLD_SIDE_LEN 100      /* Minimap size is hardcoded 200 pixel => some job to do ... */
132 #define NUMOF_DAYS_IN_MONTH 100
133 #define NUMOF_DAYS_IN_YEAR (NUMOF_DAYS_IN_MONTH*12)
134 #define FAST_TIME_FOR_YEAR 9
135 #define MED_TIME_FOR_YEAR  20
136 #define SLOW_TIME_FOR_YEAR 60
137 
138 /* interest rate *10  ie 10 is 1% */
139 #define INTEREST_RATE 15
140 
141 #define HELPERRORPAGE "error.hlp"
142 #define HELPBACKGROUNDCOLOUR (white(8))
143 #define HELPBUTTON_COLOUR (white(25))
144 #define MAX_NUMOF_HELP_BUTTONS 40
145 #define MAX_LENOF_HELP_FILENAME 40
146 #define MAX_HELP_HISTORY 20
147 #define CS_MOUSE_BUTTON_DELAY 5
148 #define RIGHT_MOUSE_MOVE_VAL 5
149 
150 #define GOOD 1
151 #define BAD (-1)
152 #define RESULTS 0
153 
154 /************* Buildings stuff *********************/
155 
156 #define WINDMILL_POWER      450
157 #define WINDMILL_JOBS       10
158 /* WINDMILL_RCOST is days per quid */
159 #define WINDMILL_RCOST      3
160 #define ANTIQUE_WINDMILL_ANIM_SPEED 160
161 #define MODERN_WINDMILL_ANIM_SPEED 120
162 
163 #define OLD_MAX_NUMOF_SUBSTATIONS 100
164 #define MAX_NUMOF_SUBSTATIONS 512
165 #define SUBSTATION_RANGE 10
166 #define POWER_USE_PER_PERSON 3
167 #define POWER_RES_OVERHEAD 30
168 #define POWERS_COAL_OUTPUT 22000
169 #define MAX_COAL_AT_POWER_STATION 100000
170 
171 #define MAX_ORE_AT_INDUSTRY_L 20000
172 #define MAX_JOBS_AT_INDUSTRY_L 500
173 #define MAX_GOODS_AT_INDUSTRY_L 65000
174 #define INDUSTRY_L_GET_JOBS    120
175 #define INDUSTRY_L_GET_ORE     600
176 #define INDUSTRY_L_GET_STEEL   60
177 #define INDUSTRY_L_JOBS_LOAD_ORE 1
178 #define INDUSTRY_L_JOBS_LOAD_STEEL 4
179 #define INDUSTRY_L_ORE_USED  125
180 #define INDUSTRY_L_STEEL_USED  12
181 #define INDUSTRY_L_JOBS_USED       30
182 #define INDUSTRY_L_MAKE_GOODS 225
183 #define MAX_STEEL_AT_INDUSTRY_L 2000
184 #define MIN_JOBS_AT_INDUSTRY_L (INDUSTRY_L_JOBS_LOAD_ORE\
185 +INDUSTRY_L_JOBS_LOAD_STEEL+INDUSTRY_L_JOBS_USED)
186 #define INDUSTRY_L_ANIM_SPEED 290
187 #define INDUSTRY_L_POL_PER_GOOD 0.05
188 #define INDUSTRY_L_POLLUTION    10
189 
190 #define MAX_ORE_AT_INDUSTRY_H 10000
191 #define MAX_COAL_AT_INDUSTRY_H 1000
192 #define MAX_MADE_AT_INDUSTRY_H MAX_ORE_AT_INDUSTRY_H/16
193 #define POWER_MAKE_STEEL 200
194 #define INDUSTRY_H_ANIM_SPEED  290
195 
196 #define DAYS_PER_POLLUTION      14
197 #define POWERS_COAL_POLLUTION   20
198 #define INDUSTRY_H_POLLUTION    10
199 #define COALMINE_POLLUTION      3
200 #define PORT_POLLUTION          1
201 #define RAIL_POLLUTION          1
202 #define DAYS_PER_RAIL_POLLUTION 30
203 #define ROAD_POLLUTION          1
204 #define DAYS_PER_ROAD_POLLUTION 20
205 #define UNNAT_DEATHS_COST       500
206 #define POL_DIV                 64      /* GCS -- from engine.c */
207 
208 #define FINANCE_X 91
209 #define FINANCE_W 120
210 #define FINANCE_Y 200
211 #define FINANCE_H 56
212 #define INCOME_TAX_RATE 8
213 #define COAL_TAX_RATE 20
214 #define GOODS_TAX_RATE 1
215 #define DOLE_RATE 15
216 #define TRANSPORT_COST_RATE 14
217 #define IM_PORT_COST_RATE 1
218 #define PORT_FOOD_RATE    1
219 #define PORT_JOBS_RATE    5
220 #define PORT_COAL_RATE    50
221 #define PORT_ORE_RATE     1
222 #define PORT_GOODS_RATE   3
223 #define PORT_STEEL_RATE   100
224 /*
225   These next two control the stuff bought or sold as a % of what's on the
226   transport.  1000=100%  500=50% etc.
227 */
228 #define PORT_EXPORT_RATE  500
229 #define PORT_IMPORT_RATE  500
230 
231 #define NUMOF_DISCOUNT_TRIGGERS 6
232 #define EX_DISCOUNT_TRIGGER_1   25000
233 #define EX_DISCOUNT_TRIGGER_2   50000
234 #define EX_DISCOUNT_TRIGGER_3  100000
235 #define EX_DISCOUNT_TRIGGER_4  200000
236 #define EX_DISCOUNT_TRIGGER_5  400000
237 #define EX_DISCOUNT_TRIGGER_6  800000
238 
239 #define MIN_RES_POPULATION 10
240 #define MAX_TECH_LEVEL	   1000000
241 #define TECH_LEVEL_LOSS_START 11000
242 /*
243    tech-level/TECH_LEVEL_LOSS is lost every month when
244    above TECH_LEVEL_LOSS_START
245  */
246 #define TECH_LEVEL_LOSS    500
247 #define TECH_LEVEL_UNAIDED 2
248 #define MODERN_WINDMILL_TECH 450000
249 
250 #define BUILD_MONUMENT_JOBS     350000
251 #define MONUMENT_GET_JOBS       100
252 #define MONUMENT_DAYS_PER_TECH  3
253 #define MONUMENT_TECH_EXPIRE    400
254 #define MONUMENT_ANIM_SPEED     300
255 
256 #define BLACKSMITH_JOBS    35
257 #define BLACKSMITH_GET_COAL 6
258 #define MAX_GOODS_AT_BLACKSMITH 200
259 #define MAX_COAL_AT_BLACKSMITH  100
260 #define BLACKSMITH_STEEL_USED 1
261 #define BLACKSMITH_COAL_USED  1
262 #define GOODS_MADE_BY_BLACKSMITH 50
263 #define BLACKSMITH_BATCH (GOODS_MADE_BY_BLACKSMITH*100)
264 #define BLACKSMITH_ANIM_THRESHOLD 10
265 #define BLACKSMITH_ANIM_SPEED    200
266 
267 #define MILL_JOBS          35
268 #define MAX_GOODS_AT_MILL  200
269 #define MAX_FOOD_AT_MILL   500
270 #define MAX_COAL_AT_MILL   50
271 #define GOODS_MADE_BY_MILL 75
272 #define MILL_GET_FOOD      51
273 #define MILL_GET_COAL      4
274 #define MILL_POWER_PER_COAL 60
275 #define FOOD_USED_BY_MILL  (GOODS_MADE_BY_MILL/2)
276 #define COAL_USED_BY_MILL  1
277 #define MILL_ANIM_THRESHOLD 10
278 #define MILL_ANIM_SPEED    300
279 
280 #define SCHOOL_JOBS        50
281 #define SCHOOL_GOODS	   75
282 #define JOBS_MAKE_TECH_SCHOOL  200
283 #define GOODS_MAKE_TECH_SCHOOL  75
284 #define TECH_MADE_BY_SCHOOL    2
285 #define MAX_JOBS_AT_SCHOOL     400
286 #define MAX_GOODS_AT_SCHOOL    200
287 #define SCHOOL_RUNNING_COST    2
288 
289 #define DAYS_BETWEEN_COVER (NUMOF_DAYS_IN_MONTH*3)
290 #define DAYS_BETWEEN_FIRES (NUMOF_DAYS_IN_YEAR*2)
291 #define FIRESTATION_JOBS   6
292 #define FIRESTATION_GET_JOBS 7
293 #define MAX_JOBS_AT_FIRESTATION (FIRESTATION_JOBS*NUMOF_DAYS_IN_YEAR)
294 #define FIRESTATION_GOODS  2
295 #define FIRESTATION_GET_GOODS 3
296 #define MAX_GOODS_AT_FIRESTATION (FIRESTATION_GOODS*NUMOF_DAYS_IN_YEAR)
297 #define FIRESTATION_RANGE  18
298 #define FIRESTATION_RUNNING_COST 1
299 #define FIRESTATION_RUNNING_COST_MUL 6
300 #define FIRESTATION_ANIMATION_SPEED 250
301 #define FIRE_ANIMATION_SPEED 350
302 #define FIRE_DAYS_PER_SPREAD (NUMOF_DAYS_IN_YEAR/8)
303 #define FIRE_LENGTH (NUMOF_DAYS_IN_YEAR*5)
304 #define AFTER_FIRE_LENGTH (NUMOF_DAYS_IN_YEAR*10)
305 
306 #define CRICKET_JOBS   8
307 #define CRICKET_GET_JOBS 9
308 #define MAX_JOBS_AT_CRICKET (CRICKET_JOBS*NUMOF_DAYS_IN_YEAR)
309 #define CRICKET_GOODS  2
310 #define CRICKET_GET_GOODS 3
311 #define MAX_GOODS_AT_CRICKET (CRICKET_GOODS*NUMOF_DAYS_IN_YEAR)
312 #define CRICKET_RANGE  10
313 #define CRICKET_RUNNING_COST 1
314 #define CRICKET_ANIMATION_SPEED 750
315 
316 #define MAX_GOODS_AT_POTTERY     200
317 #define POTTERY_ORE_MAKE_GOODS    11
318 #define POTTERY_COAL_MAKE_GOODS    2
319 #define POTTERY_JOBS              35
320 #define MAX_ORE_AT_POTTERY        (POTTERY_ORE_MAKE_GOODS*60)
321 #define POTTERY_GET_ORE           (POTTERY_ORE_MAKE_GOODS*20)
322 #define MAX_COAL_AT_POTTERY       (POTTERY_COAL_MAKE_GOODS*60)
323 #define POTTERY_GET_COAL          (POTTERY_COAL_MAKE_GOODS*21)
324 #define MAX_JOBS_AT_POTTERY       (POTTERY_JOBS*20)
325 #define POTTERY_GET_JOBS          (POTTERY_JOBS*2)
326 #define POTTERY_MADE_GOODS        35
327 #define POTTERY_ANIM_SPEED        280
328 #define POTTERY_CLOSE_TIME        20
329 
330 #define UNIVERSITY_JOBS   250
331 #define UNIVERSITY_JOBS_STORE 5000
332 #define UNIVERSITY_GOODS  750
333 #define UNIVERSITY_GOODS_STORE 7000
334 #define UNIVERSITY_RUNNING_COST 23
335 #define UNIVERSITY_TECH_MADE    4
336 
337 #define ROCKET_PAD_JOBS         1000
338 #define ROCKET_PAD_JOBS_STORE   10000
339 #define ROCKET_PAD_GOODS        10000
340 #define ROCKET_PAD_GOODS_STORE  500000
341 #define ROCKET_PAD_STEEL	500
342 #define ROCKET_PAD_STEEL_STORE  12000
343 #define ROCKET_PAD_RUNNING_COST 200
344 #define ROCKET_PAD_LAUNCH       100
345 #define ROCKET_ANIMATION_SPEED  450
346 #define ROCKET_LAUNCH_BAD       1
347 #define ROCKET_LAUNCH_GOOD      2
348 #define ROCKET_LAUNCH_EVAC      3
349 
350 #define TIP_DEGRADE_TIME 200 * NUMOF_DAYS_IN_YEAR
351 
352 #define MAX_WASTE_AT_RECYCLE 20000
353 #define BURN_WASTE_AT_RECYCLE (MAX_WASTE_AT_RECYCLE/200)
354 #define MAX_ORE_AT_RECYCLE   (MAX_ORE_ON_RAIL*2)
355 #define GOODS_RECYCLED       500
356 #define RECYCLE_GOODS_JOBS   (GOODS_RECYCLED/50)
357 #define RECYCLE_RUNNING_COST 3
358 
359 #define HEALTH_CENTRE_JOBS   6
360 #define HEALTH_CENTRE_GET_JOBS 7
361 #define MAX_JOBS_AT_HEALTH_CENTRE (HEALTH_CENTRE_JOBS*NUMOF_DAYS_IN_YEAR)
362 #define HEALTH_CENTRE_GOODS  40
363 #define HEALTH_CENTRE_GET_GOODS 41
364 #define MAX_GOODS_AT_HEALTH_CENTRE (HEALTH_CENTRE_GOODS*NUMOF_DAYS_IN_YEAR)
365 #define HEALTH_RUNNING_COST  2
366 #define HEALTH_RUNNING_COST_MUL 9
367 #define HEALTH_CENTRE_RANGE  15
368 
369 #define OREMINE_ANIMATION_SPEED 200
370 
371 #define OLD_MAX_NUMOF_MARKETS 100
372 #define MAX_NUMOF_MARKETS 512
373 #define MARKET_RANGE      10
374 #define MAX_FOOD_ON_TRACK 2048
375 #define MAX_FOOD_ON_ROAD (MAX_FOOD_ON_TRACK*4)
376 #define MAX_FOOD_ON_RAIL (MAX_FOOD_ON_TRACK*16)
377 #define MAX_FOOD_IN_MARKET (MAX_FOOD_ON_RAIL*8)
378 #define MARKET_FOOD_SEARCH_TRIGGER (MAX_FOOD_IN_MARKET/5)
379 #define MAX_JOBS_ON_TRACK 1024
380 #define MAX_JOBS_ON_ROAD (MAX_JOBS_ON_TRACK*5)
381 #define MAX_JOBS_ON_RAIL (MAX_JOBS_ON_TRACK*25)
382 #define MAX_JOBS_IN_MARKET (MAX_JOBS_ON_RAIL*3)
383 #define MARKET_JOBS_SEARCH_TRIGGER (MAX_JOBS_IN_MARKET/5)
384 #define MARKET_ANIM_SPEED 750
385 #define EMPLOYER_RANGE 10
386 #define WORKING_POP_PERCENT 45
387 #define JOB_SWING 15
388 #define HC_JOB_SWING 10
389 #define CRICKET_JOB_SWING 4
390 
391 #define ORGANIC_FARM_FOOD_OUTPUT 550
392 #define ORGANIC_FARM_ANIM_SPEED 3000
393 #define FARM_JOBS_USED 13
394 #define ORG_FARM_RANGE 10
395 #define ORG_FARM_POWER_REC 50
396 /* gets waste only when powered */
397 #define ORG_FARM_WASTE_GET 6
398 #define MIN_FOOD_SOLD_FOR_ANIM 200
399 #define DAYS_PER_STARVE 20
400 
401 #define NUMOF_COAL_RESERVES 100
402 #define COAL_RESERVE_SIZE 10000
403 #define ORE_RESERVE       1000
404 #define MIN_ORE_RESERVE_FOR_MINE (ORE_RESERVE)
405 #define MAX_COAL_AT_MINE 100000
406 #define MAX_ORE_AT_MINE 100000
407 /* COAL_RESERVE_SEARCH_LEN acts in both directions, so 5 is 10*10 */
408 #define COAL_RESERVE_SEARCH_LEN 8
409 #define JOBS_DIG_COAL 900
410 #define JOBS_DIG_ORE  200
411 #define JOBS_COALPS_GENERATE 100
412 #define MAX_JOBS_AT_COALPS 2000
413 #define JOBS_LOAD_COAL 18
414 #define JOBS_LOAD_ORE  9
415 #define JOBS_LOAD_STEEL 15
416 #define JOBS_AT_COMMUNE_GATE 4
417 #define COMMUNE_ANIM_SPEED 750
418 #define COMMUNE_POP  5
419 
420 #define MAX_COAL_ON_TRACK 64
421 #define MAX_COAL_ON_ROAD (MAX_COAL_ON_TRACK*8)
422 #define MAX_COAL_ON_RAIL (MAX_COAL_ON_TRACK*64)
423 #define MAX_COAL_IN_MARKET (MAX_COAL_ON_RAIL*2)
424 #define MARKET_COAL_SEARCH_TRIGGER (MAX_COAL_IN_MARKET/5)
425 
426 #define MAX_GOODS_ON_TRACK 2048
427 #define MAX_GOODS_ON_ROAD (MAX_GOODS_ON_TRACK*5)
428 #define ROAD_GOODS_USED_MASK 0x1f
429 #define MAX_GOODS_ON_RAIL (MAX_GOODS_ON_TRACK*25)
430 #define RAIL_GOODS_USED_MASK 0xf
431 #define MAX_GOODS_IN_MARKET (MAX_GOODS_ON_RAIL*4)
432 #define MARKET_GOODS_SEARCH_TRIGGER (MAX_GOODS_IN_MARKET/5)
433 #define MAX_ORE_ON_TRACK 4096
434 #define MAX_ORE_ON_ROAD (MAX_ORE_ON_TRACK*4)
435 #define MAX_ORE_ON_RAIL (MAX_ORE_ON_TRACK*16)
436 #define MAX_ORE_IN_MARKET (MAX_ORE_ON_RAIL*2)
437 #define MARKET_ORE_SEARCH_TRIGGER (MAX_ORE_IN_MARKET/5)
438 
439 #define MAX_STEEL_ON_TRACK 128
440 #define MAX_STEEL_ON_ROAD (MAX_STEEL_ON_TRACK*4)
441 #define MAX_STEEL_ON_RAIL (MAX_STEEL_ON_TRACK*16)
442 #define RAIL_STEEL_USED_MASK 0x7f
443 #define MAX_STEEL_AT_INDUSTRY_H (MAX_STEEL_ON_RAIL*10)
444 
445 #define MAX_WASTE_ON_TRACK 1024
446 #define MAX_WASTE_ON_ROAD (MAX_WASTE_ON_TRACK*5)
447 #define MAX_WASTE_ON_RAIL (MAX_WASTE_ON_TRACK*25)
448 #define MAX_WASTE_IN_MARKET (MAX_WASTE_ON_RAIL*3)
449 #define MARKET_WASTE_SEARCH_TRIGGER (MAX_WASTE_IN_MARKET/5)
450 #define MAX_WASTE_AT_TIP  10000000
451 #define WASTE_BURN_ON_TRANSPORT 20
452 #define TRANSPORT_BURN_WASTE_COUNT 75000
453 
454 #define WATERWELL_RANGE 20
455 
456 /*
457   JOBS_MAKE_STEEL is the steel made per job at the steel works
458   what's it doing here?
459  */
460 #define JOBS_MAKE_STEEL 70
461 /*
462   ORE_MAKE_STEEL is the ore used per unit of STEEL at a steel works
463   what's it doing here?
464  */
465 #define ORE_MAKE_STEEL 17
466 #define MAX_STEEL_IN_MARKET (MAX_STEEL_ON_RAIL*2)
467 #define MARKET_STEEL_SEARCH_TRIGGER (MAX_STEEL_IN_MARKET/5)
468 
469 #define SUST_ORE_COAL_COL 34
470 #define SUST_PORT_COL     white(24)
471 #define SUST_MONEY_COL    green(26)
472 #define SUST_POP_COL      cyan(24)
473 #define SUST_TECH_COL     yellow(26)
474 #define SUST_FIRE_COL     red(26)
475 #define SUST_ORE_COAL_YEARS_NEEDED 180
476 #define SUST_PORT_YEARS_NEEDED     180
477 #define SUST_MONEY_YEARS_NEEDED    60
478 #define SUST_POP_YEARS_NEEDED      60
479 #define SUST_TECH_YEARS_NEEDED     120
480 #define SUST_FIRE_YEARS_NEEDED     60
481 
482 #define SUST_MIN_POPULATION 5000
483 #define SUST_MIN_TECH_LEVEL (MAX_TECH_LEVEL/2)
484 
485 #define STATS_X 232
486 #define STATS_Y 428
487 #define STATS_W 304
488 #define STATS_H 32
489 
490 #define GRAPHS_B_COLOUR (white(6))
491 
492 //#define MARKET_CB_W (18*8)
493 #define MARKET_CB_W (17*8 - 2)
494 #define MARKET_CB_H (23*8)
495 
496 #define SHUFFLE_MAPPOINT_COUNT 4
497 
498 /******* Buildings // GROUPS ************/
499 #define NUM_OF_TYPES    404
500 #define NUM_OF_GROUPS    50
501 #define GROUP_NAME_LEN   20
502 
503 #define GROUP_BARE 	   0
504 #define GROUP_BARE_COLOUR  (green(12))
505 #define GROUP_BARE_COST    0
506 #define GROUP_BARE_COST_MUL 1
507 #define GROUP_BARE_BUL_COST 1
508 #define GROUP_BARE_TECH    0
509 #define GROUP_BARE_FIREC   0
510 
511 #define GROUP_POWER_LINE   1
512 #define GROUP_POWER_LINE_COLOUR (yellow(26))
513 #define GROUP_POWER_LINE_COST 100
514 #define GROUP_POWER_LINE_COST_MUL 2
515 #define GROUP_POWER_LINE_BUL_COST 100
516 #define GROUP_POWER_LINE_TECH 200
517 #define GROUP_POWER_LINE_FIREC 0
518 
519 #define GROUP_SOLAR_POWER 2
520 #define GROUP_SOLAR_POWER_COLOUR (yellow(22))
521 #define GROUP_SOLAR_POWER_COST 500000
522 #define GROUP_SOLAR_POWER_COST_MUL 5
523 #define GROUP_SOLAR_POWER_BUL_COST 100000
524 #define GROUP_SOLAR_POWER_TECH 500
525 #define GROUP_SOLAR_POWER_FIREC 33
526 #define SOLAR_POWER_JOBS 50
527 #define POWERS_SOLAR_OUTPUT 1800
528 
529 #define GROUP_SUBSTATION   3
530 #define GROUP_SUBSTATION_COLOUR (yellow(18))
531 #define GROUP_SUBSTATION_COST 500
532 #define GROUP_SUBSTATION_COST_MUL 2
533 #define GROUP_SUBSTATION_BUL_COST 100
534 #define GROUP_SUBSTATION_TECH 200
535 #define GROUP_SUBSTATION_FIREC 50
536 
537 #define GROUP_RESIDENCE_LL 4
538 #define GROUP_RESIDENCE_LL_COLOUR (cyan(24))
539 #define GROUP_RESIDENCE_LL_COST 1000
540 #define GROUP_RESIDENCE_LL_COST_MUL 25
541 #define GROUP_RESIDENCE_LL_BUL_COST 1000
542 #define GROUP_RESIDENCE_LL_TECH 0
543 #define GROUP_RESIDENCE_LL_FIREC 75
544 
545 /* RESIDENCE?_BRM is the birth rate modifier */
546 /* RESIDENCE?_DRM is the death rate modifier */
547 #define RESIDENCE_BASE_BR     100
548 #define RESIDENCE_BASE_DR     (68*12)
549 #define RESIDENCE_BRM_HEALTH  5
550 #define RESIDENCE1_BRM (RESIDENCE_BASE_BR*12)
551 #define RESIDENCE1_DRM ((RESIDENCE_BASE_DR*3)/4)
552 #define RESIDENCE2_BRM 0
553 #define RESIDENCE2_DRM 0
554 #define RESIDENCE3_BRM (RESIDENCE_BASE_BR+RESIDENCE_BASE_BR/4)
555 #define RESIDENCE3_DRM ((RESIDENCE_BASE_DR)/2)
556 #define RESIDENCE4_BRM (RESIDENCE_BASE_BR*18)
557 #define RESIDENCE4_DRM ((RESIDENCE_BASE_DR*3)/4)
558 #define RESIDENCE5_BRM (RESIDENCE_BASE_BR/2)
559 #define RESIDENCE5_DRM ((RESIDENCE_BASE_DR)/4)
560 #define RESIDENCE6_BRM 0
561 #define RESIDENCE6_DRM ((RESIDENCE_BASE_DR)/4)
562 /* RESIDENCE_PPM is the people_pool mobitily. Higher number=less mobile. */
563 #define RESIDENCE_PPM   20
564 
565 #define GROUP_ORGANIC_FARM 5
566 #define GROUP_ORGANIC_FARM_COLOUR (green(30))
567 #define GROUP_ORGANIC_FARM_COST 1000
568 #define GROUP_ORGANIC_FARM_COST_MUL 20
569 #define GROUP_ORGANIC_FARM_BUL_COST 100
570 #define GROUP_ORGANIC_FARM_TECH 0
571 #define GROUP_ORGANIC_FARM_FIREC 20
572 
573 #define GROUP_MARKET       6
574 #define GROUP_MARKET_COLOUR (blue(28))
575 #define GROUP_MARKET_COST 100
576 #define GROUP_MARKET_COST_MUL 25
577 #define GROUP_MARKET_BUL_COST 100
578 #define GROUP_MARKET_TECH 0
579 #define GROUP_MARKET_FIREC 80
580 
581 #define GROUP_TRACK	   7
582 #define GROUP_TRACK_COLOUR 32   /* 32 is a brown */
583 #define GROUP_TRACK_COST   1
584 #define GROUP_TRACK_COST_MUL 25
585 #define GROUP_TRACK_BUL_COST   10
586 #define GROUP_TRACK_TECH   0
587 #define GROUP_TRACK_FIREC  4
588 
589 #define GROUP_COALMINE     8
590 #define GROUP_COALMINE_COLOUR 0
591 #define GROUP_COALMINE_COST   10000
592 #define GROUP_COALMINE_COST_MUL 25
593 #define GROUP_COALMINE_BUL_COST   10000
594 #define GROUP_COALMINE_TECH   85
595 #define GROUP_COALMINE_FIREC  85
596 
597 #define GROUP_RAIL         9
598 #define GROUP_RAIL_COLOUR  (magenta(18))
599 #define GROUP_RAIL_COST    500
600 #define GROUP_RAIL_COST_MUL 10
601 #define GROUP_RAIL_BUL_COST    1000
602 #define GROUP_RAIL_TECH    180
603 #define GROUP_RAIL_FIREC   6
604 
605 #define GROUP_COAL_POWER 10
606 #define GROUP_COAL_POWER_COLOUR 0
607 #define GROUP_COAL_POWER_COST   100000
608 #define GROUP_COAL_POWER_COST_MUL 5
609 #define GROUP_COAL_POWER_BUL_COST   200000
610 #define GROUP_COAL_POWER_TECH   200
611 #define GROUP_COAL_POWER_FIREC  80
612 
613 #define GROUP_ROAD         11
614 #define GROUP_ROAD_COLOUR  (white(18))
615 #define GROUP_ROAD_COST    100
616 #define GROUP_ROAD_COST_MUL 25
617 #define GROUP_ROAD_BUL_COST    50
618 #define GROUP_ROAD_TECH    50
619 #define GROUP_ROAD_FIREC   4
620 
621 #define GROUP_INDUSTRY_L   12
622 #define GROUP_INDUSTRY_L_COLOUR (cyan(18))
623 #define GROUP_INDUSTRY_L_COST 20000
624 #define GROUP_INDUSTRY_L_COST_MUL 25
625 #define GROUP_INDUSTRY_L_BUL_COST 20000
626 #define GROUP_INDUSTRY_L_TECH 160
627 #define GROUP_INDUSTRY_L_FIREC 70
628 
629 #define GROUP_UNIVERSITY   13
630 #define GROUP_UNIVERSITY_COLOUR (blue(22))
631 #define GROUP_UNIVERSITY_COST 20000
632 #define GROUP_UNIVERSITY_COST_MUL 25
633 #define GROUP_UNIVERSITY_BUL_COST 20000
634 #define GROUP_UNIVERSITY_TECH 150
635 #define GROUP_UNIVERSITY_FIREC 40
636 
637 #define GROUP_COMMUNE      14
638 #define GROUP_COMMUNE_COLOUR (green(30))
639 #define GROUP_COMMUNE_COST  1
640 #define GROUP_COMMUNE_COST_MUL 2
641 #define GROUP_COMMUNE_BUL_COST  1000
642 #define GROUP_COMMUNE_TECH  0
643 #define GROUP_COMMUNE_FIREC 30
644 
645 #define GROUP_OREMINE      15
646 #define GROUP_OREMINE_COLOUR (red(18))
647 #define GROUP_OREMINE_COST 500
648 #define GROUP_OREMINE_COST_MUL 10
649 #define GROUP_OREMINE_BUL_COST 500000
650 #define GROUP_OREMINE_TECH 0
651 #define GROUP_OREMINE_FIREC 0
652 
653 #define GROUP_TIP      16
654 #define GROUP_TIP_COLOUR (white(16))
655 #define GROUP_TIP_COST 10000
656 #define GROUP_TIP_COST_MUL 25
657 #define GROUP_TIP_BUL_COST 1000000
658 #define GROUP_TIP_TECH 0
659 #define GROUP_TIP_FIREC 50
660 
661 #define GROUP_PORT      17
662 #define GROUP_PORT_COLOUR (blue(28))
663 #define GROUP_PORT_COST 100000
664 #define GROUP_PORT_COST_MUL 2
665 #define GROUP_PORT_BUL_COST 1000
666 #define GROUP_PORT_TECH 35
667 #define GROUP_PORT_FIREC 50
668 
669 #define GROUP_INDUSTRY_H   18
670 #define GROUP_INDUSTRY_H_COLOUR (7)     /* colour 7 is an orange, sort of */
671 #define GROUP_INDUSTRY_H_COST 50000
672 #define GROUP_INDUSTRY_H_COST_MUL 20
673 #define GROUP_INDUSTRY_H_BUL_COST 70000
674 #define GROUP_INDUSTRY_H_TECH 170
675 #define GROUP_INDUSTRY_H_FIREC 80
676 
677 #define GROUP_PARKLAND     19
678 #define GROUP_PARKLAND_COLOUR (green(31))
679 #define GROUP_PARKLAND_COST   1000
680 #define GROUP_PARKLAND_COST_MUL 25
681 #define GROUP_PARKLAND_BUL_COST   1000
682 #define GROUP_PARKLAND_TECH   2
683 #define GROUP_PARKLAND_FIREC 1
684 
685 #define GROUP_RECYCLE      20
686 #define GROUP_RECYCLE_COLOUR   (green(28))
687 #define GROUP_RECYCLE_COST    100000
688 #define GROUP_RECYCLE_COST_MUL 5
689 #define GROUP_RECYCLE_BUL_COST    1000
690 #define GROUP_RECYCLE_TECH    232
691 #define GROUP_RECYCLE_FIREC 10
692 
693 #define GROUP_WATER	   21
694 #define GROUP_WATER_COLOUR    (blue(31))
695 #define GROUP_WATER_COST      1000000
696 #define GROUP_WATER_COST_MUL 2
697 #define GROUP_WATER_BUL_COST      1000000
698 #define GROUP_WATER_TECH      0
699 #define GROUP_RIVER (GROUP_WATER)       /* oops -- GCS: Why oops? */
700 #define GROUP_WATER_FIREC 0
701 
702 #define GROUP_HEALTH       22
703 #define GROUP_HEALTH_COLOUR   (green(24))
704 #define GROUP_HEALTH_COST     100000
705 #define GROUP_HEALTH_COST_MUL 2
706 #define GROUP_HEALTH_BUL_COST     1000
707 #define GROUP_HEALTH_TECH     110
708 #define GROUP_HEALTH_FIREC 2
709 
710 #define GROUP_ROCKET	   23
711 #define GROUP_ROCKET_COLOUR   (magenta(20))
712 #define GROUP_ROCKET_COST     700000
713 #define GROUP_ROCKET_COST_MUL 2
714 #define GROUP_ROCKET_BUL_COST     1
715 #define GROUP_ROCKET_TECH     750
716 #define GROUP_ROCKET_FIREC 0
717 
718 #define GROUP_WINDMILL     24
719 #define GROUP_WINDMILL_COLOUR (green(25))
720 #define GROUP_WINDMILL_COST   20000
721 #define GROUP_WINDMILL_COST_MUL 25
722 #define GROUP_WINDMILL_BUL_COST   1000
723 #define GROUP_WINDMILL_TECH   30
724 #define GROUP_WINDMILL_FIREC  10
725 
726 #define GROUP_MONUMENT     25
727 #define GROUP_MONUMENT_COLOUR (white(15))
728 #define GROUP_MONUMENT_COST   10000
729 #define GROUP_MONUMENT_COST_MUL 25
730 #define GROUP_MONUMENT_BUL_COST   1000000
731 #define GROUP_MONUMENT_TECH   0
732 #define GROUP_MONUMENT_FIREC  0
733 
734 #define GROUP_SCHOOL     26
735 #define GROUP_SCHOOL_COLOUR (white(15))
736 #define GROUP_SCHOOL_COST   10000
737 #define GROUP_SCHOOL_COST_MUL 25
738 #define GROUP_SCHOOL_BUL_COST   10000
739 #define GROUP_SCHOOL_TECH   1
740 #define GROUP_SCHOOL_FIREC 40
741 
742 #define GROUP_BLACKSMITH     27
743 #define GROUP_BLACKSMITH_COLOUR (white(15))
744 #define GROUP_BLACKSMITH_COST   5000
745 #define GROUP_BLACKSMITH_COST_MUL 25
746 #define GROUP_BLACKSMITH_BUL_COST   1000
747 #define GROUP_BLACKSMITH_TECH   3
748 #define GROUP_BLACKSMITH_FIREC 60
749 
750 #define GROUP_MILL     28
751 #define GROUP_MILL_COLOUR (white(15))
752 #define GROUP_MILL_COST   10000
753 #define GROUP_MILL_COST_MUL 25
754 #define GROUP_MILL_BUL_COST   1000
755 #define GROUP_MILL_TECH   25
756 #define GROUP_MILL_FIREC  60
757 
758 #define GROUP_POTTERY  29
759 #define GROUP_POTTERY_COLOUR (red(12))
760 #define GROUP_POTTERY_COST   1000
761 #define GROUP_POTTERY_COST_MUL 25
762 #define GROUP_POTTERY_BUL_COST 1000
763 #define GROUP_POTTERY_TECH  0
764 #define GROUP_POTTERY_FIREC 50
765 
766 #define GROUP_FIRESTATION 30
767 #define GROUP_FIRESTATION_COLOUR (red(20))
768 #define GROUP_FIRESTATION_COST   20000
769 #define GROUP_FIRESTATION_COST_MUL 10
770 #define GROUP_FIRESTATION_BUL_COST 1000
771 #define GROUP_FIRESTATION_TECH     22
772 #define GROUP_FIRESTATION_FIREC 0
773 
774 #define GROUP_CRICKET 31
775 #define GROUP_CRICKET_COLOUR (white(20))
776 #define GROUP_CRICKET_COST   2000
777 #define GROUP_CRICKET_COST_MUL 3
778 #define GROUP_CRICKET_BUL_COST 1000
779 #define GROUP_CRICKET_TECH     12
780 #define GROUP_CRICKET_FIREC 20
781 
782 #define GROUP_BURNT        32
783 #define GROUP_BURNT_COLOUR    (red(30))
784 #define GROUP_BURNT_COST   0    /* Unused */
785 #define GROUP_BURNT_COST_MUL   1        /* Unused */
786 #define GROUP_BURNT_BUL_COST  1000
787 #define GROUP_BURNT_TECH   0    /* Unused */
788 #define GROUP_BURNT_FIREC  0
789 
790 #define GROUP_SHANTY        33
791 #define GROUP_SHANTY_COLOUR    (red(22))
792 #define GROUP_SHANTY_COST   0   /* Unused */
793 #define GROUP_SHANTY_COST_MUL   1       /* Unused */
794 #define GROUP_SHANTY_BUL_COST  100000
795 #define GROUP_SHANTY_TECH   0   /* Unused */
796 #define GROUP_SHANTY_FIREC     25
797 
798 #define SHANTY_MIN_PP     150
799 #define SHANTY_POP        50
800 #define DAYS_BETWEEN_SHANTY (NUMOF_DAYS_IN_MONTH*5)
801 #define SHANTY_GET_FOOD   50
802 #define SHANTY_GET_JOBS   5
803 #define SHANTY_GET_GOODS  50
804 #define SHANTY_GET_COAL   1
805 #define SHANTY_GET_ORE    10
806 #define SHANTY_GET_STEEL  1
807 
808 #define GROUP_FIRE        34
809 #define GROUP_FIRE_COLOUR    (red(30))
810 #define GROUP_FIRE_COST   0     /* Unused */
811 #define GROUP_FIRE_COST_MUL   1 /* Unused */
812 #define GROUP_FIRE_BUL_COST  1000
813 #define GROUP_FIRE_TECH   0     /* Unused */
814 #define GROUP_FIRE_FIREC  0
815 
816 #define GROUP_USED        35
817 #define GROUP_USED_COLOUR (green(12))   /* Unused */
818 #define GROUP_USED_COST   0     /* Unused */
819 #define GROUP_USED_COST_MUL  1  /* Unused */
820 #define GROUP_USED_BUL_COST  0  /* Unused */
821 #define GROUP_USED_TECH   0     /* Unused */
822 #define GROUP_USED_FIREC  0     /* Unused */
823 
824 #define GROUP_RESIDENCE_ML 36
825 #define GROUP_RESIDENCE_ML_COLOUR (cyan(24))
826 #define GROUP_RESIDENCE_ML_COST 2000
827 #define GROUP_RESIDENCE_ML_COST_MUL 25
828 #define GROUP_RESIDENCE_ML_BUL_COST 1000
829 #define GROUP_RESIDENCE_ML_TECH 0
830 #define GROUP_RESIDENCE_ML_FIREC 75
831 
832 #define GROUP_RESIDENCE_HL 37
833 #define GROUP_RESIDENCE_HL_COLOUR (cyan(24))
834 #define GROUP_RESIDENCE_HL_COST 4000
835 #define GROUP_RESIDENCE_HL_COST_MUL 25
836 #define GROUP_RESIDENCE_HL_BUL_COST 1000
837 #define GROUP_RESIDENCE_HL_TECH 0
838 #define GROUP_RESIDENCE_HL_FIREC 75
839 
840 #define GROUP_RESIDENCE_LH 38
841 #define GROUP_RESIDENCE_LH_COLOUR (cyan(24))
842 #define GROUP_RESIDENCE_LH_COST 800
843 #define GROUP_RESIDENCE_LH_COST_MUL 25
844 #define GROUP_RESIDENCE_LH_BUL_COST 1000
845 #define GROUP_RESIDENCE_LH_TECH 0       /* ?? */
846 #define GROUP_RESIDENCE_LH_FIREC 75
847 
848 #define GROUP_RESIDENCE_MH 39
849 #define GROUP_RESIDENCE_MH_COLOUR (cyan(24))
850 #define GROUP_RESIDENCE_MH_COST 1600
851 #define GROUP_RESIDENCE_MH_COST_MUL 25
852 #define GROUP_RESIDENCE_MH_BUL_COST 1000
853 #define GROUP_RESIDENCE_MH_TECH 0
854 #define GROUP_RESIDENCE_MH_FIREC 75
855 
856 #define GROUP_RESIDENCE_HH 40
857 #define GROUP_RESIDENCE_HH_COLOUR (cyan(24))
858 #define GROUP_RESIDENCE_HH_COST 3200
859 #define GROUP_RESIDENCE_HH_COST_MUL 25
860 #define GROUP_RESIDENCE_HH_BUL_COST 1000
861 #define GROUP_RESIDENCE_HH_TECH 0
862 #define GROUP_RESIDENCE_HH_FIREC 75
863 
864 #define GROUP_WATERWELL	   41
865 #define GROUP_WATERWELL_COLOUR    (blue(31))
866 #define GROUP_WATERWELL_COST      1
867 #define GROUP_WATERWELL_COST_MUL 2
868 #define GROUP_WATERWELL_BUL_COST      1
869 #define GROUP_WATERWELL_TECH      0
870 #define GROUP_WATERWELL_FIREC 0
871 
872 #define GROUP_DESERT 	  42
873 #define GROUP_DESERT_COLOUR  (yellow(18))
874 #define GROUP_DESERT_COST    0
875 #define GROUP_DESERT_COST_MUL 1
876 #define GROUP_DESERT_BUL_COST 1
877 #define GROUP_DESERT_TECH    0
878 #define GROUP_DESERT_FIREC   0
879 
880 #define GROUP_TREE 	   43
881 #define GROUP_TREE_COLOUR  (green(12))
882 #define GROUP_TREE_COST    0
883 #define GROUP_TREE_COST_MUL 1
884 #define GROUP_TREE_BUL_COST 1
885 #define GROUP_TREE_TECH    0
886 #define GROUP_TREE_FIREC   0
887 
888 #define GROUP_TREE2 	   44
889 #define GROUP_TREE2_COLOUR  (green(12))
890 #define GROUP_TREE2_COST    0
891 #define GROUP_TREE2_COST_MUL 1
892 #define GROUP_TREE2_BUL_COST 1
893 #define GROUP_TREE2_TECH    0
894 #define GROUP_TREE2_FIREC   0
895 
896 #define GROUP_TREE3 	   45
897 #define GROUP_TREE3_COLOUR  (green(12))
898 #define GROUP_TREE3_COST    0
899 #define GROUP_TREE3_COST_MUL 1
900 #define GROUP_TREE3_BUL_COST 1
901 #define GROUP_TREE3_TECH    0
902 #define GROUP_TREE3_FIREC   0
903 
904 #define BRIDGE_FACTOR 500 /* a bridge is that much more expensive than the land transport */
905 
906 #define GROUP_TRACK_BRIDGE        46
907 #define GROUP_TRACK_BRIDGE_COLOUR 32   /* 32 is a brown */
908 #define GROUP_TRACK_BRIDGE_COST   GROUP_TRACK_COST * BRIDGE_FACTOR
909 #define GROUP_TRACK_BRIDGE_COST_MUL 2
910 #define GROUP_TRACK_BRIDGE_BUL_COST GROUP_TRACK_BUL_COST * BRIDGE_FACTOR
911 #define GROUP_TRACK_BRIDGE_TECH   GROUP_TRACK_TECH
912 #define GROUP_TRACK_BRIDGE_FIREC  0    /* unused */
913 
914 #define GROUP_ROAD_BRIDGE         47
915 #define GROUP_ROAD_BRIDGE_COLOUR  (white(18))
916 #define GROUP_ROAD_BRIDGE_COST    GROUP_ROAD_COST * BRIDGE_FACTOR
917 #define GROUP_ROAD_BRIDGE_COST_MUL 2
918 #define GROUP_ROAD_BRIDGE_BUL_COST GROUP_ROAD_BUL_COST * BRIDGE_FACTOR
919 #define GROUP_ROAD_BRIDGE_TECH    GROUP_ROAD_TECH
920 #define GROUP_ROAD_BRIDGE_FIREC   0
921 
922 #define GROUP_RAIL_BRIDGE         48
923 #define GROUP_RAIL_BRIDGE_COLOUR  (magenta(18))
924 #define GROUP_RAIL_BRIDGE_COST    GROUP_RAIL_COST * BRIDGE_FACTOR
925 #define GROUP_RAIL_BRIDGE_COST_MUL 2
926 #define GROUP_RAIL_BRIDGE_BUL_COST GROUP_RAIL_BUL_COST * BRIDGE_FACTOR
927 #define GROUP_RAIL_BRIDGE_TECH    GROUP_RAIL_TECH
928 #define GROUP_RAIL_BRIDGE_FIREC   0
929 
930 #define GROUP_IS_RESIDENCE(group) \
931             ((group == GROUP_RESIDENCE_LL) || \
932              (group == GROUP_RESIDENCE_ML) || \
933              (group == GROUP_RESIDENCE_HL) || \
934              (group == GROUP_RESIDENCE_LH) || \
935              (group == GROUP_RESIDENCE_MH) || \
936              (group == GROUP_RESIDENCE_HH))
937 
938 #define GROUP_IS_BARE(group) \
939 	    ((group == GROUP_BARE) || \
940 	     (group == GROUP_DESERT) || \
941 	     (group == GROUP_TREE) || \
942 	     (group == GROUP_TREE2) || \
943 	     (group == GROUP_TREE3))
944 
945 #define red(x) (32 + x)
946 #define green(x) (64 + x)
947 #define yellow(x) (96 + x)
948 #define blue(x) (128 + x)
949 #define magenta(x) (160 + x)
950 #define cyan(x) (192 + x)
951 #define white(x) (224 + x)
952 
953 /*
954   *******   end of lin-city.h   ***********
955   *****************************************
956 */
957 
958 /* FIXME : isn't it forbidden to include .h in .h ?  :-) */
959 #include "lintypes.h"
960 
961 #endif /* __lin_city_h__ */
962