Main Page | Data Structures | Directories | File List | Data Fields | Globals

lin-city.h

Go to the documentation of this file.
00001 /* ---------------------------------------------------------------------- *
00002  * lin-city.h
00003  * This file is part of lincity.
00004  * Lincity is copyright (c) I J Peters 1995-1997, (c) Greg Sharp 1997-2001.
00005  * ---------------------------------------------------------------------- */
00006 
00007 #ifndef __lin_city_h__
00008 #define __lin_city_h__
00009 
00010 #include <stdio.h>
00011 
00012 /*
00013   The mouse sensitivity can be an integer such as 1, 2, 3 etc.
00014   The higher the number the less you have to move the mouse.
00015   It's a bit crude, it just multiples the mouse movement by this
00016   amount. IMHO 3 is about the maximum useful value, 2 is quite
00017   comfortable.
00018     ** This is only relevant for linux-svgalib. **
00019 */
00020 #define MOUSE_SENSITIVITY 1
00021 
00022 /*
00023   When your money reaches 1 million or more, to make it easier to
00024   read, it is split into two parts; a millions part, and the rest.
00025    For example  12,355232    You can choose any character you like,
00026    but I have given some other examples. Just comment out the one 
00027    above, and uncomment one below. IT MUST NOT BE NULL.
00028   #define MONEY_SEPARATOR '.'
00029   #define MONEY_SEPARATOR ' '
00030   #define MONEY_SEPARATOR ':'
00031 */
00032 #define MONEY_SEPARATOR ','
00033 
00034 /*
00035    #define MP_SANITY_CHECK
00036 */
00037 
00038 /* The number of milliseconds between scrolling text on the initial screen */
00039 #define SPLASH_SCROLL_DELAY 30  /* was 30 */
00040 
00041 /*
00042        ************************************************
00043         NO USER CONFIGURABLE OPTIONS BEYOND THIS POINT
00044        ************************************************
00045 */
00046 
00047 /* VERSION_INT is used in the load/save code.  All other code uses 
00048    the symbol VERSION in config.h */
00049 #define VERSION_INT 112
00050 
00051 /* Don't load if < MIN_LOAD_VERSION */
00052 #define MIN_LOAD_VERSION 97
00053 
00054 /* Load corrections if version <= MM_MS_C_VER (max markets/substations) */
00055 #define MM_MS_C_VER 97
00056 
00057 /* Load corrections if version <= MG_C_VER (max monthgraph size) */
00058 #define MG_C_VER 111
00059 
00060 #if defined (WIN32)
00061 #define PATH_SLASH '\\'
00062 #define PATH_SLASH_STRING "\\"
00063 #else
00064 #define PATH_SLASH '/'
00065 #define PATH_SLASH_STRING "/"
00066 #endif
00067 
00068 #define USE_X11_PIXMAPS
00069 
00070 #ifndef TRUE
00071 #define TRUE 1
00072 #endif
00073 #ifndef FALSE
00074 #define FALSE 0
00075 #endif
00076 
00077 /* Used by HandleError () */
00078 #define FATAL   -1
00079 #define WARNING -2
00080 
00081 #ifndef M_PI
00082 #define M_PI        3.14159265358979323846
00083 #endif
00084 
00085 
00086 /* comment out the the next three lines for _slightly_ faster X drawing. */
00087 #ifdef LC_X11
00088 #define ALLOW_PIX_DOUBLING
00089 #endif
00090 
00091 /*
00092   Gamma correction. The numbers GAMMA_CORRECT_X are between 0.0 and 1.0
00093   The following values are enabled with the -w option. This seems quite
00094   good for 'washed out' monitors that lack red.
00095   You can also set the values from the command line.
00096    [x]lincity -R 1.0 -G 0.0 -B 0.4  is the same as [x]lincity -w
00097  */
00098 #define GAMMA_CORRECT_RED   1.0
00099 #define GAMMA_CORRECT_GREEN 0.0
00100 #define GAMMA_CORRECT_BLUE  0.4
00101 
00102 #define PROFILE_COUNTDOWN 10000
00103 
00104 /* hof is 70 from 28/12 */
00105 
00106 #define DEBUG
00107 
00108 /*
00109 #define DEBUG_ENGINE 1
00110    #define ALLOW_TCORE_DUMP
00111    #define DEBUG_ROCKETS
00112    #define DEBUGMOUSE
00113    #define DEBUG_MOUSE
00114    #define DEBUG_MAIN_SCREEN
00115    #define DEBUG_GET_POWER
00116    if DEBUG_KEYS is defined, pressing certain keys add money, tech points etc.
00117    #define DEBUG_KEYS 1
00118 */
00119 /*
00120    #define CS_PROFILE
00121 */
00122 
00123 #if defined (LC_X11) || defined (WIN32)
00124 #define BORDERX 30
00125 #define BORDERY 30
00126 #endif
00127 
00128 #define TEXT_FG_COLOUR  (white(24))
00129 #define TEXT_BG_COLOUR  105
00130 #define YN_DIALBOX_BG_COLOUR (red(10))
00131 #define LOAD_BG_COLOUR       (cyan(10))
00132 #define SAVE_BG_COLOUR       (magenta(10))
00133 #define NW_BG_COLOUR         (green(10))
00134 
00135 /* GCS: We are about to run out of bits on the flags, so in the future we
00136    might need to implement compression.  For example, FLAG_IS_RIVER is 
00137    only used for GROUP_WATER, FLAG_MB_COAL for GROUP_MARKET, and so on. */
00138 /* WCK: Compression would work, but that's complicated.   I would rather move
00139    FLAG_M?_* into an int_? variable.  And add more int_? variables.  That keeps
00140    it simple and squeezes some life out of 32 bits.  I don't think we need to
00141    hurry.  I'd rather replace the whole scheme. */
00142 #define FLAG_LEFT               (1)
00143 #define FLAG_UP                 (2)
00144 #define FLAG_RIGHT              (4)
00145 #define FLAG_DOWN               (8)
00146 #define FLAG_POWERED            (0x10)
00147 #define FLAG_FED                (0x20)
00148 #define FLAG_EMPLOYED           (0x40)
00149 #define FLAG_IS_TRANSPORT       (0x80)
00150 #define FLAG_MB_FOOD            (0x100)
00151 #define FLAG_MS_FOOD            (0x200)
00152 #define FLAG_MB_JOBS            (0x400)
00153 #define FLAG_MS_JOBS            (0x800)
00154 #define FLAG_MB_COAL            (0x1000)
00155 #define FLAG_MS_COAL            (0x2000)
00156 #define FLAG_MB_ORE             (0x4000)
00157 #define FLAG_MS_ORE             (0x8000)
00158 #define FLAG_MB_GOODS           (0x10000)
00159 #define FLAG_MS_GOODS           (0x20000)
00160 #define FLAG_MB_STEEL           (0x40000)
00161 #define FLAG_MS_STEEL           (0x80000)
00162 #define FLAG_FIRE_COVER         (0x100000)
00163 #define FLAG_HEALTH_COVER       (0x200000)
00164 #define FLAG_CRICKET_COVER      (0x400000)
00165 #define FLAG_IS_RIVER           (0x800000)
00166 #define FLAG_HAD_POWER          (0x1000000)
00167 #define FLAG_MULTI_TRANSPORT    (0x2000000)   /* Is it a multitransport? */
00168 #define FLAG_MULTI_TRANS_PREV   (0x4000000)
00169 #define FLAG_POWER_LINE         (0x8000000)
00170 
00171 #define T_FOOD  0
00172 #define T_JOBS  1
00173 #define T_COAL  2
00174 #define T_GOODS 3
00175 #define T_ORE   4
00176 #define T_STEEL 5
00177 #define T_WASTE 6
00178 
00179 #define MT_FAIL     0
00180 #define MT_START    1
00181 #define MT_CONTINUE 2
00182 #define MT_SUCCESS  3
00183 
00184 #define HOF_START 845830134
00185 #define HOF_STOP 857843038
00186 
00187 #define MINI_SCREEN_NORMAL_FLAG    (0)
00188 #define MINI_SCREEN_POL_FLAG       (1)
00189 #define MINI_SCREEN_UB40_FLAG      (2)
00190 #define MINI_SCREEN_STARVE_FLAG    (3)
00191 #define MINI_SCREEN_PORT_FLAG      (4)
00192 #define MINI_SCREEN_POWER_FLAG     (5)
00193 #define MINI_SCREEN_FIRE_COVER     (6)
00194 #define MINI_SCREEN_CRICKET_COVER  (7)
00195 #define MINI_SCREEN_HEALTH_COVER   (8)
00196 #define MINI_SCREEN_COAL_FLAG      (9)
00197 
00198 #define MAIN_SCREEN_NORMAL_FLAG    (1)
00199 #define MAIN_SCREEN_EQUALS_MINI    (2)
00200 
00201 #define SEED_RAND
00202 #define OLD_LC_SAVE_DIR "Lin-city"
00203 #if defined (WIN32)
00204 #define LC_SAVE_DIR "SAVED_GAMES"
00205 #define LINCITYRC_FILENAME "lincity.ini"
00206 #else
00207 /* GCS: Changed for 1.12 */
00208 /* #define LC_SAVE_DIR ".Lin-city" */
00209 #define LC_SAVE_DIR ".lincity"
00210 #define LINCITYRC_FILENAME ".lincityrc"
00211 #endif
00212 #define RESULTS_FILENAME "results"
00213 
00214 #define MAX_ICON_LEN 4096
00215 #define WORLD_SIDE_LEN 100
00216 #define NUMOF_DAYS_IN_MONTH 100
00217 #define NUMOF_DAYS_IN_YEAR (NUMOF_DAYS_IN_MONTH*12)
00218 #define FAST_TIME_FOR_YEAR 1
00219 #define MED_TIME_FOR_YEAR  20
00220 #define SLOW_TIME_FOR_YEAR  60
00221 
00222 /* interest rate *10  ie 10 is 1% */
00223 #define INTEREST_RATE 15
00224 
00225 #if defined (commentout)
00226 #define HELP_BUTTON_X 608
00227 #define HELP_BUTTON_Y 448
00228 #define HELP_BUTTON_W 32
00229 #define HELP_BUTTON_H 32
00230 #define QUIT_BUTTON_X 608
00231 #define QUIT_BUTTON_Y 416
00232 #define QUIT_BUTTON_W 32
00233 #define QUIT_BUTTON_H 32
00234 #define LOAD_BUTTON_X 576
00235 #define LOAD_BUTTON_Y 416
00236 #define LOAD_BUTTON_W 32
00237 #define LOAD_BUTTON_H 32
00238 #define SAVE_BUTTON_X 576
00239 #define SAVE_BUTTON_Y 448
00240 #define SAVE_BUTTON_W 32
00241 #define SAVE_BUTTON_H 32
00242 #endif
00243 
00244 #define HELPERRORPAGE "error.hlp"
00245 #define HELPBACKGROUNDCOLOUR (white(8))
00246 #define HELPBUTTON_COLOUR (white(25))
00247 #define MAX_NUMOF_HELP_BUTTONS 40
00248 #define MAX_LENOF_HELP_FILENAME 40
00249 #define MAX_HELP_HISTORY 20
00250 #define CS_MOUSE_BUTTON_DELAY 5
00251 #define RIGHT_MOUSE_MOVE_VAL 5
00252 
00253 #define GOOD 1
00254 #define BAD (-1)
00255 #define RESULTS 0
00256 
00257 #define PROGBOXX 170
00258 #define PROGBOXY 180
00259 #define PROGBOXW 300
00260 #define PROGBOXH 120
00261 #define PROGBOX_BG_COLOUR 114
00262 #define PROGBOX_DONE_COL 4
00263 #define PROGBOX_NOTDONE_COL 2
00264 
00265 #define POWER_LINE_CAPACITY 1000000
00266 #define POWERS_SOLAR_OUTPUT 1800
00267 #define WINDMILL_POWER      450
00268 #define WINDMILL_JOBS       10
00269 /* WINDMILL_RCOST is days per quid */
00270 #define WINDMILL_RCOST      3
00271 #define ANTIQUE_WINDMILL_ANIM_SPEED 160
00272 #define MODERN_WINDMILL_ANIM_SPEED 120
00273 
00274 #define OLD_MAX_NUMOF_SUBSTATIONS 100
00275 #define MAX_NUMOF_SUBSTATIONS 512
00276 #define SUBSTATION_RANGE 10
00277 #define POWER_USE_PER_PERSON 3
00278 #define POWER_RES_OVERHEAD 30
00279 #define POWERS_COAL_OUTPUT 22000
00280 #define MAX_COAL_AT_POWER_STATION 100000
00281 #define MAX_ORE_AT_INDUSTRY_L 20000
00282 #define MAX_JOBS_AT_INDUSTRY_L 500
00283 #define MAX_GOODS_AT_INDUSTRY_L 65000
00284 #define INDUSTRY_L_GET_JOBS    120
00285 #define INDUSTRY_L_GET_ORE     600
00286 #define INDUSTRY_L_GET_STEEL   60
00287 #define INDUSTRY_L_JOBS_LOAD_ORE 1
00288 #define INDUSTRY_L_JOBS_LOAD_STEEL 4
00289 #define INDUSTRY_L_ORE_USED  125
00290 #define INDUSTRY_L_STEEL_USED  12
00291 #define INDUSTRY_L_JOBS_USED       30
00292 #define INDUSTRY_L_MAKE_GOODS 225
00293 #define MAX_STEEL_AT_INDUSTRY_L 2000
00294 #define MIN_JOBS_AT_INDUSTRY_L (INDUSTRY_L_JOBS_LOAD_ORE\
00295 +INDUSTRY_L_JOBS_LOAD_STEEL+INDUSTRY_L_JOBS_USED)
00296 #define INDUSTRY_L_ANIM_SPEED 290
00297 
00298 #define MAX_ORE_AT_INDUSTRY_H 10000
00299 #define MAX_COAL_AT_INDUSTRY_H 1000
00300 #define MAX_MADE_AT_INDUSTRY_H MAX_ORE_AT_INDUSTRY_H/16
00301 #define POWER_MAKE_STEEL 200
00302 #define INDUSTRY_H_ANIM_SPEED  290
00303 
00304 #define DAYS_PER_POLLUTION      14
00305 #define POWERS_COAL_POLLUTION   20
00306 #define INDUSTRY_L_POLLUTION    10
00307 #define INDUSTRY_H_POLLUTION    10
00308 #define COALMINE_POLLUTION      3
00309 #define PORT_POLLUTION          1
00310 #define RAIL_POLLUTION          1
00311 #define DAYS_PER_RAIL_POLLUTION 30
00312 #define ROAD_POLLUTION          1
00313 #define DAYS_PER_ROAD_POLLUTION 20
00314 #define UNNAT_DEATHS_COST       500
00315 #define POL_DIV                 64      /* GCS -- from engine.c */
00316 
00317 #define FINANCE_X 91
00318 #define FINANCE_W 120
00319 #define FINANCE_Y 200
00320 #define FINANCE_H 56
00321 #define INCOME_TAX_RATE 8
00322 #define COAL_TAX_RATE 20
00323 #define GOODS_TAX_RATE 1
00324 #define DOLE_RATE 15
00325 #define TRANSPORT_COST_RATE 14
00326 #define IM_PORT_COST_RATE 1
00327 #define PORT_FOOD_RATE    1
00328 #define PORT_JOBS_RATE    5
00329 #define PORT_COAL_RATE    50
00330 #define PORT_ORE_RATE     1
00331 #define PORT_GOODS_RATE   3
00332 #define PORT_STEEL_RATE   100
00333 /*
00334   These next two control the stuff bought or sold as a % of what's on the
00335   transport.  1000=100%  500=50% etc.
00336 */
00337 #define PORT_EXPORT_RATE  500
00338 #define PORT_IMPORT_RATE  500
00339 
00340 #define NUMOF_DISCOUNT_TRIGGERS 6
00341 #define EX_DISCOUNT_TRIGGER_1   25000
00342 #define EX_DISCOUNT_TRIGGER_2   50000
00343 #define EX_DISCOUNT_TRIGGER_3  100000
00344 #define EX_DISCOUNT_TRIGGER_4  200000
00345 #define EX_DISCOUNT_TRIGGER_5  400000
00346 #define EX_DISCOUNT_TRIGGER_6  800000
00347 
00348 #define MIN_RES_POPULATION 10
00349 #define MAX_TECH_LEVEL     1000000
00350 #define TECH_LEVEL_LOSS_START 11000
00351 /*
00352    tech-level/TECH_LEVEL_LOSS is lost every month when
00353    above TECH_LEVEL_LOSS_START
00354  */
00355 #define TECH_LEVEL_LOSS    500
00356 #define TECH_LEVEL_UNAIDED 2
00357 #define MODERN_WINDMILL_TECH 450000
00358 
00359 #define BUILD_MONUMENT_JOBS     350000
00360 #define MONUMENT_GET_JOBS       100
00361 #define MONUMENT_DAYS_PER_TECH  3
00362 #define MONUMENT_TECH_EXPIRE    400
00363 #define MONUMENT_ANIM_SPEED     300
00364 
00365 #define BLACKSMITH_JOBS    35
00366 #define BLACKSMITH_GET_COAL 6
00367 #define MAX_GOODS_AT_BLACKSMITH 200
00368 #define MAX_COAL_AT_BLACKSMITH  100
00369 #define BLACKSMITH_STEEL_USED 1
00370 #define BLACKSMITH_COAL_USED  1
00371 #define GOODS_MADE_BY_BLACKSMITH 50
00372 #define BLACKSMITH_BATCH (GOODS_MADE_BY_BLACKSMITH*100)
00373 #define BLACKSMITH_ANIM_THRESHOLD 10
00374 #define BLACKSMITH_ANIM_SPEED    200
00375 
00376 #define MILL_JOBS          35
00377 #define MAX_GOODS_AT_MILL  200
00378 #define MAX_FOOD_AT_MILL   500
00379 #define MAX_COAL_AT_MILL   50
00380 #define GOODS_MADE_BY_MILL 75
00381 #define MILL_GET_FOOD      51
00382 #define MILL_GET_COAL      4
00383 #define MILL_POWER_PER_COAL 60
00384 #define FOOD_USED_BY_MILL  (GOODS_MADE_BY_MILL/2)
00385 #define COAL_USED_BY_MILL  1
00386 #define MILL_ANIM_THRESHOLD 10
00387 #define MILL_ANIM_SPEED    300
00388 
00389 #define SCHOOL_JOBS        50
00390 #define SCHOOL_GOODS       75
00391 #define JOBS_MAKE_TECH_SCHOOL  200
00392 #define GOODS_MAKE_TECH_SCHOOL  75
00393 #define TECH_MADE_BY_SCHOOL    2
00394 #define MAX_JOBS_AT_SCHOOL     400
00395 #define MAX_GOODS_AT_SCHOOL    200
00396 #define SCHOOL_RUNNING_COST    2
00397 
00398 #define DAYS_BETWEEN_COVER (NUMOF_DAYS_IN_MONTH*3)
00399 #define DAYS_BETWEEN_FIRES (NUMOF_DAYS_IN_YEAR*2)
00400 #define FIRESTATION_JOBS   6
00401 #define FIRESTATION_GET_JOBS 7
00402 #define MAX_JOBS_AT_FIRESTATION (FIRESTATION_JOBS*NUMOF_DAYS_IN_YEAR)
00403 #define FIRESTATION_GOODS  2
00404 #define FIRESTATION_GET_GOODS 3
00405 #define MAX_GOODS_AT_FIRESTATION (FIRESTATION_GOODS*NUMOF_DAYS_IN_YEAR)
00406 #define FIRESTATION_RANGE  18
00407 #define FIRESTATION_RUNNING_COST 1
00408 #define FIRESTATION_RUNNING_COST_MUL 6
00409 #define FIRESTATION_ANIMATION_SPEED 250
00410 #define FIRE_ANIMATION_SPEED 350
00411 #define FIRE_DAYS_PER_SPREAD (NUMOF_DAYS_IN_YEAR/8)
00412 #define FIRE_LENGTH (NUMOF_DAYS_IN_YEAR*5)
00413 #define AFTER_FIRE_LENGTH (NUMOF_DAYS_IN_YEAR*10)
00414 
00415 #define CRICKET_JOBS   8
00416 #define CRICKET_GET_JOBS 9
00417 #define MAX_JOBS_AT_CRICKET (CRICKET_JOBS*NUMOF_DAYS_IN_YEAR)
00418 #define CRICKET_GOODS  2
00419 #define CRICKET_GET_GOODS 3
00420 #define MAX_GOODS_AT_CRICKET (CRICKET_GOODS*NUMOF_DAYS_IN_YEAR)
00421 #define CRICKET_RANGE  10
00422 #define CRICKET_RUNNING_COST 1
00423 #define CRICKET_ANIMATION_SPEED 750
00424 
00425 #define MAX_GOODS_AT_POTTERY     200
00426 #define POTTERY_ORE_MAKE_GOODS    11
00427 #define POTTERY_COAL_MAKE_GOODS    2
00428 #define POTTERY_JOBS              35
00429 #define MAX_ORE_AT_POTTERY        (POTTERY_ORE_MAKE_GOODS*60)
00430 #define POTTERY_GET_ORE           (POTTERY_ORE_MAKE_GOODS*20)
00431 #define MAX_COAL_AT_POTTERY       (POTTERY_COAL_MAKE_GOODS*60)
00432 #define POTTERY_GET_COAL          (POTTERY_COAL_MAKE_GOODS*21)
00433 #define MAX_JOBS_AT_POTTERY       (POTTERY_JOBS*20)
00434 #define POTTERY_GET_JOBS          (POTTERY_JOBS*2)
00435 #define POTTERY_MADE_GOODS        35
00436 #define POTTERY_ANIM_SPEED        280
00437 #define POTTERY_CLOSE_TIME        20
00438 
00439 #define UNIVERSITY_JOBS   250
00440 #define UNIVERSITY_JOBS_STORE 5000
00441 #define UNIVERSITY_GOODS  750
00442 #define UNIVERSITY_GOODS_STORE 7000
00443 #define UNIVERSITY_RUNNING_COST 23
00444 #define UNIVERSITY_TECH_MADE    4
00445 
00446 #define ROCKET_PAD_JOBS         1000
00447 #define ROCKET_PAD_JOBS_STORE   10000
00448 #define ROCKET_PAD_GOODS        10000
00449 #define ROCKET_PAD_GOODS_STORE  500000
00450 #define ROCKET_PAD_STEEL        500
00451 #define ROCKET_PAD_STEEL_STORE  12000
00452 #define ROCKET_PAD_RUNNING_COST 200
00453 #define ROCKET_PAD_LAUNCH       100
00454 #define ROCKET_ANIMATION_SPEED  450
00455 #define ROCKET_LAUNCH_BAD       1
00456 #define ROCKET_LAUNCH_GOOD      2
00457 #define ROCKET_LAUNCH_EVAC      3
00458 
00459 #define TIP_DEGRADE_TIME 200 * NUMOF_DAYS_IN_YEAR
00460 
00461 #define MAX_WASTE_AT_RECYCLE 20000
00462 #define BURN_WASTE_AT_RECYCLE (MAX_WASTE_AT_RECYCLE/200)
00463 #define MAX_ORE_AT_RECYCLE   (MAX_ORE_ON_RAIL*2)
00464 #define GOODS_RECYCLED       500
00465 #define RECYCLE_GOODS_JOBS   (GOODS_RECYCLED/50)
00466 #define RECYCLE_RUNNING_COST 3
00467 
00468 #define HEALTH_CENTRE_JOBS   6
00469 #define HEALTH_CENTRE_GET_JOBS 7
00470 #define MAX_JOBS_AT_HEALTH_CENTRE (HEALTH_CENTRE_JOBS*NUMOF_DAYS_IN_YEAR)
00471 #define HEALTH_CENTRE_GOODS  40
00472 #define HEALTH_CENTRE_GET_GOODS 41
00473 #define MAX_GOODS_AT_HEALTH_CENTRE (HEALTH_CENTRE_GOODS*NUMOF_DAYS_IN_YEAR)
00474 #define HEALTH_RUNNING_COST  2
00475 #define HEALTH_RUNNING_COST_MUL 9
00476 #define HEALTH_CENTRE_RANGE  15
00477 
00478 #define OLD_MAX_NUMOF_MARKETS 100
00479 #define MAX_NUMOF_MARKETS 512
00480 #define MARKET_RANGE      10
00481 #define MAX_FOOD_ON_TRACK 2048
00482 #define MAX_FOOD_ON_RIVER (MAX_FOOD_ON_TRACK*2)
00483 #define MAX_FOOD_ON_ROAD (MAX_FOOD_ON_TRACK*4)
00484 #define MAX_FOOD_ON_RAIL (MAX_FOOD_ON_ROAD*4)
00485 #define MAX_FOOD_IN_MARKET (MAX_FOOD_ON_RAIL*8)
00486 #define MARKET_FOOD_SEARCH_TRIGGER (MAX_FOOD_IN_MARKET/5)
00487 #define MAX_JOBS_ON_TRACK 1024
00488 #define MAX_JOBS_ON_RIVER (MAX_JOBS_ON_TRACK*2)
00489 #define MAX_JOBS_ON_ROAD (MAX_JOBS_ON_TRACK*5)
00490 #define MAX_JOBS_ON_RAIL (MAX_JOBS_ON_ROAD*5)
00491 #define MAX_JOBS_IN_MARKET (MAX_JOBS_ON_RAIL*3)
00492 #define MARKET_JOBS_SEARCH_TRIGGER (MAX_JOBS_IN_MARKET/5)
00493 #define MARKET_ANIM_SPEED 750
00494 #define EMPLOYER_RANGE 10
00495 #define WORKING_POP_PERCENT 45
00496 #define JOB_SWING 15
00497 #define HC_JOB_SWING 10
00498 #define CRICKET_JOB_SWING 4
00499 
00500 #define ORGANIC_FARM_FOOD_OUTPUT 550
00501 #define ORGANIC_FARM_ANIM_SPEED 3000
00502 #define FARM_JOBS_USED 13
00503 #define ORG_FARM_RANGE 10
00504 #define ORG_FARM_POWER_REC 50
00505 /* gets waste only when powered */
00506 #define ORG_FARM_WASTE_GET 6
00507 #define MIN_FOOD_SOLD_FOR_ANIM 200
00508 #define DAYS_PER_STARVE 20
00509 
00510 #define MAX_WASTE_ON_TRACK 1024
00511 #define MAX_WASTE_ON_ROAD (MAX_WASTE_ON_TRACK*5)
00512 #define MAX_WASTE_ON_RAIL (MAX_WASTE_ON_ROAD*5)
00513 #define MAX_WASTE_IN_MARKET (MAX_WASTE_ON_RAIL*3)
00514 #define MARKET_WASTE_SEARCH_TRIGGER (MAX_WASTE_IN_MARKET/5)
00515 #define MAX_WASTE_AT_TIP  10000000
00516 #define WASTE_BURN_ON_TRANSPORT 20
00517 #define TRANSPORT_BURN_WASTE_COUNT 75000
00518 
00519 #define NUMOF_COAL_RESERVES 100
00520 #define COAL_RESERVE_SIZE 10000
00521 #define ORE_RESERVE       1000
00522 #define MIN_ORE_RESERVE_FOR_MINE (ORE_RESERVE)
00523 #define MAX_COAL_AT_MINE 100000
00524 #define MAX_ORE_AT_MINE 100000
00525 /* COAL_RESERVE_SEARCH_LEN acts in both directions, so 5 is 10*10 */
00526 #define COAL_RESERVE_SEARCH_LEN 8
00527 #define JOBS_DIG_COAL 900
00528 #define JOBS_DIG_ORE  200
00529 #define JOBS_COALPS_GENERATE 100
00530 #define MAX_JOBS_AT_COALPS 2000
00531 #define JOBS_LOAD_COAL 18
00532 #define JOBS_LOAD_ORE  9
00533 #define JOBS_LOAD_STEEL 15
00534 #define JOBS_AT_COMMUNE_GATE 4
00535 #define COMMUNE_ANIM_SPEED 750
00536 #define COMMUNE_POP  5
00537 
00538 #define DIG_MORE_COAL_TRIGGER (MAX_COAL_AT_MINE)
00539 #define DIG_MORE_ORE_TRIGGER  (MAX_ORE_AT_MINE)
00540 #define MAX_COAL_ON_TRACK 64
00541 #define MAX_COAL_ON_RIVER (MAX_COAL_ON_TRACK*2)
00542 #define MAX_COAL_ON_ROAD (MAX_COAL_ON_TRACK*8)
00543 #define MAX_COAL_ON_RAIL (MAX_COAL_ON_ROAD*8)
00544 #define MAX_COAL_IN_MARKET (MAX_COAL_ON_RAIL*2)
00545 #define MARKET_COAL_SEARCH_TRIGGER (MAX_COAL_IN_MARKET/5)
00546 
00547 #define MAX_GOODS_ON_TRACK 2048
00548 #define MAX_GOODS_ON_RIVER (MAX_GOODS_ON_TRACK*2)
00549 #define MAX_GOODS_ON_ROAD (MAX_GOODS_ON_TRACK*5)
00550 #define ROAD_GOODS_USED_MASK 0x1f
00551 #define MAX_GOODS_ON_RAIL (MAX_GOODS_ON_ROAD*5)
00552 #define RAIL_GOODS_USED_MASK 0xf
00553 #define MAX_GOODS_IN_MARKET (MAX_GOODS_ON_RAIL*4)
00554 #define MARKET_GOODS_SEARCH_TRIGGER (MAX_GOODS_IN_MARKET/5)
00555 #define MAX_ORE_ON_TRACK 4096
00556 #define MAX_ORE_ON_RIVER (MAX_ORE_ON_TRACK*2)
00557 #define MAX_ORE_ON_ROAD (MAX_ORE_ON_TRACK*4)
00558 #define MAX_ORE_ON_RAIL (MAX_ORE_ON_ROAD*4)
00559 #define MAX_ORE_IN_MARKET (MAX_ORE_ON_RAIL*2)
00560 #define MARKET_ORE_SEARCH_TRIGGER (MAX_ORE_IN_MARKET/5)
00561 
00562 
00563 #define MAX_STEEL_ON_TRACK 128
00564 #define MAX_STEEL_ON_RIVER (MAX_STEEL_ON_TRACK*2)
00565 #define MAX_STEEL_ON_ROAD (MAX_STEEL_ON_TRACK*4)
00566 #define MAX_STEEL_ON_RAIL (MAX_STEEL_ON_ROAD*4)
00567 #define RAIL_STEEL_USED_MASK 0x7f
00568 #define MAX_STEEL_AT_INDUSTRY_H (MAX_STEEL_ON_RAIL*10)
00569 /*
00570   JOBS_MAKE_STEEL is the steel made per job at the steel works
00571   what's it doing here?
00572  */
00573 #define JOBS_MAKE_STEEL 70
00574 /*
00575   ORE_MAKE_STEEL is the ore used per unit of STEEL at a steel works
00576   what's it doing here?
00577  */
00578 #define ORE_MAKE_STEEL 17
00579 #define MAX_STEEL_IN_MARKET (MAX_STEEL_ON_RAIL*2)
00580 #define MARKET_STEEL_SEARCH_TRIGGER (MAX_STEEL_IN_MARKET/5)
00581 
00582 #if defined (commentout)
00583 #define MAIN_WIN_W 448
00584 #define MAIN_WIN_X (640-MAIN_WIN_W-8)
00585 #define MAIN_WIN_Y 8
00586 #define MAIN_WIN_H 400
00587 #endif
00588 
00589 #define SUST_ORE_COAL_COL 34
00590 #define SUST_PORT_COL     white(24)
00591 #define SUST_MONEY_COL    green(26)
00592 #define SUST_POP_COL      cyan(24)
00593 #define SUST_TECH_COL     yellow(26)
00594 #define SUST_FIRE_COL     red(26)
00595 #define SUST_ORE_COAL_YEARS_NEEDED 180
00596 #define SUST_PORT_YEARS_NEEDED     180
00597 #define SUST_MONEY_YEARS_NEEDED    60
00598 #define SUST_POP_YEARS_NEEDED      60
00599 #define SUST_TECH_YEARS_NEEDED     120
00600 #define SUST_FIRE_YEARS_NEEDED     60
00601 
00602 #define SUST_MIN_POPULATION 5000
00603 #define SUST_MIN_TECH_LEVEL (MAX_TECH_LEVEL/2)
00604 
00605 #define STATS_X 232
00606 #define STATS_Y 428
00607 #define STATS_W 304
00608 #define STATS_H 32
00609 
00610 /* GCS FIX: This is still used in static data structure for size 
00611    of monthgraph.  Fix by encapsulating the monthgraph and dynamically
00612    allocating.  */
00613 #if defined (commentout)
00614 #ifndef MONTHGRAPH_W
00615 #define MONTHGRAPH_X 91
00616 #define MONTHGRAPH_W 120
00617 #define MONTHGRAPH_Y 116
00618 #define MONTHGRAPH_H 64
00619 #endif
00620 #define DIFFGRAPH_POWER_COLOUR (yellow(28))
00621 #define DIFFGRAPH_COAL_COLOUR  (white(18))
00622 #define DIFFGRAPH_GOODS_COLOUR (cyan(24))
00623 #define DIFFGRAPH_ORE_COLOUR   (red(22))
00624 #define DIFFGRAPH_POPULATION_COLOUR 7
00625 #endif
00626 
00627 #define GRAPHS_B_COLOUR (white(6))
00628 
00629 /* These constants are still used by save-under buffer */
00630 #if defined (commentout)
00631 #define MARKET_CB_X (79)
00632 #define MARKET_CB_Y 0
00633 #endif
00634 //#define MARKET_CB_W (18*8)
00635 #define MARKET_CB_W (17*8 - 2)
00636 #define MARKET_CB_H (23*8)
00637 
00638 #define SCROLL_LONG_COUNT 5
00639 #define SCROLL_RIGHT_BUTTON_X 100
00640 #define SCROLL_RIGHT_BUTTON_W 32
00641 #define SCROLL_RIGHT_BUTTON_Y 100
00642 #define SCROLL_RIGHT_BUTTON_H 32
00643 #define SCROLL_LEFT_BUTTON_X 100
00644 #define SCROLL_LEFT_BUTTON_W 32
00645 #define SCROLL_LEFT_BUTTON_Y 132
00646 #define SCROLL_LEFT_BUTTON_H 32
00647 #define SCROLL_DOWN_BUTTON_X 100
00648 #define SCROLL_DOWN_BUTTON_W 32
00649 #define SCROLL_DOWN_BUTTON_Y 164
00650 #define SCROLL_DOWN_BUTTON_H 32
00651 #define SCROLL_UP_BUTTON_X 100
00652 #define SCROLL_UP_BUTTON_W 32
00653 #define SCROLL_UP_BUTTON_Y 196
00654 #define SCROLL_UP_BUTTON_H 32
00655 
00656 #define SHUFFLE_MAPPOINT_COUNT 4
00657 
00658 #if defined (commentout)
00659 #define MAPPOINT_STATS_X 91
00660 /* MAPPOINT_STATS_W must be == MONTHGRAPH_W because of the graph drawing. */
00661 #define MAPPOINT_STATS_W MONTHGRAPH_W
00662 #define MAPPOINT_STATS_Y 8
00663 #define MAPPOINT_STATS_H (11*8)
00664 #endif
00665 
00666 #define GROUP_BARE         0
00667 #define GROUP_BARE_COLOUR  (green(12))
00668 #define GROUP_BARE_COST    0
00669 #define GROUP_BARE_COST_MUL 1
00670 #define GROUP_BARE_BUL_COST 1
00671 #define GROUP_BARE_TECH    0
00672 #define GROUP_BARE_FIREC   0
00673 
00674 #define GROUP_POWER_LINE   1
00675 #define GROUP_POWER_LINE_COLOUR (yellow(26))
00676 #define GROUP_POWER_LINE_COST 100
00677 #define GROUP_POWER_LINE_COST_MUL 2
00678 #define GROUP_POWER_LINE_BUL_COST 100
00679 #define GROUP_POWER_LINE_TECH 200
00680 #define GROUP_POWER_LINE_FIREC 0
00681 
00682 #if defined (commentout)
00683 /* GROUP_POWER_SOURCE is a solar ps - change the names  - real soon */
00684 #define GROUP_POWER_SOURCE 2
00685 #define GROUP_POWER_SOURCE_COLOUR (yellow(22))
00686 #define GROUP_POWER_SOURCE_COST 500000
00687 #define GROUP_POWER_SOURCE_COST_MUL 5
00688 #define GROUP_POWER_SOURCE_BUL_COST 100000
00689 #define GROUP_POWER_SOURCE_TECH 500
00690 #define GROUP_POWER_SOURCE_NO_CREDIT
00691 #define GROUP_POWER_SOURCE_FIREC 33
00692 #endif
00693 
00694 #define GROUP_SOLAR_POWER 2
00695 #define GROUP_SOLAR_POWER_COLOUR (yellow(22))
00696 #define GROUP_SOLAR_POWER_COST 500000
00697 #define GROUP_SOLAR_POWER_COST_MUL 5
00698 #define GROUP_SOLAR_POWER_BUL_COST 100000
00699 #define GROUP_SOLAR_POWER_TECH 500
00700 #define GROUP_SOLAR_POWER_NO_CREDIT
00701 #define GROUP_SOLAR_POWER_FIREC 33
00702 
00703 #define GROUP_SUBSTATION   3
00704 #define GROUP_SUBSTATION_COLOUR (yellow(18))
00705 #define GROUP_SUBSTATION_COST 500
00706 #define GROUP_SUBSTATION_COST_MUL 2
00707 #define GROUP_SUBSTATION_BUL_COST 100
00708 #define GROUP_SUBSTATION_TECH 200
00709 #define GROUP_SUBSTATION_FIREC 50
00710 
00711 #define GROUP_RESIDENCE_LL 4
00712 #define GROUP_RESIDENCE_LL_COLOUR (cyan(24))
00713 #define GROUP_RESIDENCE_LL_COST 1000
00714 #define GROUP_RESIDENCE_LL_COST_MUL 25
00715 #define GROUP_RESIDENCE_LL_BUL_COST 1000
00716 #define GROUP_RESIDENCE_LL_TECH 0
00717 #define GROUP_RESIDENCE_LL_FIREC 75
00718 
00719 #if defined (commentout)
00720 #define RESIDENCE_BASE_BR     100
00721 #define RESIDENCE_BRM_HEALTH  5
00722 #define RESIDENCE_BASE_DR     (68*12)
00723 #define GROUP_RESIDENCE    4
00724 #define GROUP_RESIDENCE_COLOUR (cyan(24))
00725 #define GROUP_RESIDENCE_COST   0
00726 #define GROUP_RESIDENCE_COST1  1000
00727 #define RESIDENCE1_BRM (RESIDENCE_BASE_BR*12)
00728 #define RESIDENCE1_DRM ((RESIDENCE_BASE_DR*3)/4)
00729 #define GROUP_RESIDENCE_COST2  2000
00730 #define RESIDENCE2_BRM 0
00731 #define RESIDENCE2_DRM 0
00732 #define GROUP_RESIDENCE_COST3  4000
00733 #define RESIDENCE3_BRM (RESIDENCE_BASE_BR+RESIDENCE_BASE_BR/4)
00734 #define RESIDENCE3_DRM ((RESIDENCE_BASE_DR)/2)
00735 #define GROUP_RESIDENCE_COST4  800
00736 #define RESIDENCE4_BRM (RESIDENCE_BASE_BR*18)
00737 #define RESIDENCE4_DRM ((RESIDENCE_BASE_DR*3)/4)
00738 #define GROUP_RESIDENCE_COST5  1600
00739 #define RESIDENCE5_BRM (RESIDENCE_BASE_BR/2)
00740 #define RESIDENCE5_DRM ((RESIDENCE_BASE_DR)/4)
00741 #define GROUP_RESIDENCE_COST6  3200
00742 #define RESIDENCE6_BRM 0
00743 #define RESIDENCE6_DRM ((RESIDENCE_BASE_DR)/4)
00744 #define GROUP_RESIDENCE_COST_MUL 25
00745 #define GROUP_RESIDENCE_BUL_COST 1000
00746 #define GROUP_RESIDENCE_TECH 0
00747 #define GROUP_RESIDENCE_FIREC 75
00748 /* RESIDENCE_PPM is the people_pool mobitily. Higher number=less mobile. */
00749 #define RESIDENCE_PPM   20
00750 #endif
00751 
00752 /* RESIDENCE?_BRM is the birth rate modifier */
00753 /* RESIDENCE?_DRM is the death rate modifier */
00754 #define RESIDENCE_BASE_BR     100
00755 #define RESIDENCE_BASE_DR     (68*12)
00756 #define RESIDENCE_BRM_HEALTH  5
00757 #define RESIDENCE1_BRM (RESIDENCE_BASE_BR*12)
00758 #define RESIDENCE1_DRM ((RESIDENCE_BASE_DR*3)/4)
00759 #define RESIDENCE2_BRM 0
00760 #define RESIDENCE2_DRM 0
00761 #define RESIDENCE3_BRM (RESIDENCE_BASE_BR+RESIDENCE_BASE_BR/4)
00762 #define RESIDENCE3_DRM ((RESIDENCE_BASE_DR)/2)
00763 #define RESIDENCE4_BRM (RESIDENCE_BASE_BR*18)
00764 #define RESIDENCE4_DRM ((RESIDENCE_BASE_DR*3)/4)
00765 #define RESIDENCE5_BRM (RESIDENCE_BASE_BR/2)
00766 #define RESIDENCE5_DRM ((RESIDENCE_BASE_DR)/4)
00767 #define RESIDENCE6_BRM 0
00768 #define RESIDENCE6_DRM ((RESIDENCE_BASE_DR)/4)
00769 /* RESIDENCE_PPM is the people_pool mobitily. Higher number=less mobile. */
00770 #define RESIDENCE_PPM   20
00771 
00772 #define GROUP_ORGANIC_FARM 5
00773 #define GROUP_ORGANIC_FARM_COLOUR (green(30))
00774 #define GROUP_ORGANIC_FARM_COST 1000
00775 #define GROUP_ORGANIC_FARM_COST_MUL 20
00776 #define GROUP_ORGANIC_FARM_BUL_COST 100
00777 #define GROUP_ORGANIC_FARM_TECH 0
00778 #define GROUP_ORGANIC_FARM_FIREC 20
00779 
00780 #define GROUP_MARKET       6
00781 #define GROUP_MARKET_COLOUR (blue(28))
00782 #define GROUP_MARKET_COST 100
00783 #define GROUP_MARKET_COST_MUL 25
00784 #define GROUP_MARKET_BUL_COST 100
00785 #define GROUP_MARKET_TECH 0
00786 #define GROUP_MARKET_FIREC 80
00787 
00788 #define GROUP_TRACK        7
00789 #define GROUP_TRACK_COLOUR 32   /* 32 is a brown */
00790 #define GROUP_TRACK_COST   1
00791 #define GROUP_TRACK_COST_MUL 25
00792 #define GROUP_TRACK_BUL_COST   10
00793 #define GROUP_TRACK_TECH   0
00794 #define GROUP_TRACK_FIREC  4
00795 
00796 #define GROUP_COALMINE     8
00797 #define GROUP_COALMINE_COLOUR 0
00798 #define GROUP_COALMINE_COST   10000
00799 #define GROUP_COALMINE_COST_MUL 25
00800 #define GROUP_COALMINE_BUL_COST   10000
00801 #define GROUP_COALMINE_TECH   85
00802 #define GROUP_COALMINE_FIREC  85
00803 
00804 #define GROUP_RAIL         9
00805 #define GROUP_RAIL_COLOUR  (magenta(18))
00806 #define GROUP_RAIL_COST    500
00807 #define GROUP_RAIL_COST_MUL 10
00808 #define GROUP_RAIL_BUL_COST    1000
00809 #define GROUP_RAIL_TECH    180
00810 #define GROUP_RAIL_FIREC   6
00811 
00812 #define GROUP_COAL_POWER 10
00813 #define GROUP_COAL_POWER_COLOUR 0
00814 #define GROUP_COAL_POWER_COST   100000
00815 #define GROUP_COAL_POWER_COST_MUL 5
00816 #define GROUP_COAL_POWER_BUL_COST   200000
00817 #define GROUP_COAL_POWER_TECH   200
00818 #define GROUP_COAL_POWER_FIREC  80
00819 
00820 #define GROUP_ROAD         11
00821 #define GROUP_ROAD_COLOUR  (white(18))
00822 #define GROUP_ROAD_COST    100
00823 #define GROUP_ROAD_COST_MUL 25
00824 #define GROUP_ROAD_BUL_COST    50
00825 #define GROUP_ROAD_TECH    50
00826 #define GROUP_ROAD_FIREC   4
00827 
00828 #define GROUP_INDUSTRY_L   12
00829 #define GROUP_INDUSTRY_L_COLOUR (cyan(18))
00830 #define GROUP_INDUSTRY_L_COST 20000
00831 #define GROUP_INDUSTRY_L_COST_MUL 25
00832 #define GROUP_INDUSTRY_L_BUL_COST 20000
00833 #define GROUP_INDUSTRY_L_TECH 160
00834 #define GROUP_INDUSTRY_L_FIREC 70
00835 
00836 #define GROUP_UNIVERSITY   13
00837 #define GROUP_UNIVERSITY_COLOUR (blue(22))
00838 #define GROUP_UNIVERSITY_COST 20000
00839 #define GROUP_UNIVERSITY_COST_MUL 25
00840 #define GROUP_UNIVERSITY_BUL_COST 20000
00841 #define GROUP_UNIVERSITY_TECH 150
00842 #define GROUP_UNIVERSITY_NO_CREDIT
00843 #define GROUP_UNIVERSITY_FIREC 40
00844 
00845 #define GROUP_COMMUNE      14
00846 #define GROUP_COMMUNE_COLOUR (green(30))
00847 #define GROUP_COMMUNE_COST  1
00848 #define GROUP_COMMUNE_COST_MUL 2
00849 #define GROUP_COMMUNE_BUL_COST  1000
00850 #define GROUP_COMMUNE_TECH  0
00851 #define GROUP_COMMUNE_FIREC 30
00852 
00853 #define GROUP_OREMINE      15
00854 #define GROUP_OREMINE_COLOUR (red(18))
00855 #define GROUP_OREMINE_COST 500
00856 #define GROUP_OREMINE_COST_MUL 10
00857 #define GROUP_OREMINE_BUL_COST 500000
00858 #define GROUP_OREMINE_TECH 0
00859 #define GROUP_OREMINE_FIREC 0
00860 
00861 #define GROUP_TIP      16
00862 #define GROUP_TIP_COLOUR (white(16))
00863 #define GROUP_TIP_COST 10000
00864 #define GROUP_TIP_COST_MUL 25
00865 #define GROUP_TIP_BUL_COST 1000000
00866 #define GROUP_TIP_TECH 0
00867 #define GROUP_TIP_FIREC 50
00868 
00869 #define GROUP_PORT      17
00870 #define GROUP_PORT_COLOUR (blue(28))
00871 #define GROUP_PORT_COST 100000
00872 #define GROUP_PORT_COST_MUL 2
00873 #define GROUP_PORT_BUL_COST 1000
00874 #define GROUP_PORT_TECH 35
00875 #define GROUP_PORT_FIREC 50
00876 
00877 #define GROUP_INDUSTRY_H   18
00878 #define GROUP_INDUSTRY_H_COLOUR (7)     /* colour 7 is an orange, sort of */
00879 #define GROUP_INDUSTRY_H_COST 50000
00880 #define GROUP_INDUSTRY_H_COST_MUL 20
00881 #define GROUP_INDUSTRY_H_BUL_COST 70000
00882 #define GROUP_INDUSTRY_H_TECH 170
00883 #define GROUP_INDUSTRY_H_FIREC 80
00884 
00885 #define GROUP_PARKLAND     19
00886 #define GROUP_PARKLAND_COLOUR (green(31))
00887 #define GROUP_PARKLAND_COST   1000
00888 #define GROUP_PARKLAND_COST_MUL 25
00889 #define GROUP_PARKLAND_BUL_COST   1000
00890 #define GROUP_PARKLAND_TECH   2
00891 #define GROUP_PARKLAND_NO_CREDIT
00892 #define GROUP_PARKLAND_FIREC 1
00893 
00894 #define GROUP_RECYCLE      20
00895 #define GROUP_RECYCLE_COLOUR   (green(28))
00896 #define GROUP_RECYCLE_COST    100000
00897 #define GROUP_RECYCLE_COST_MUL 5
00898 #define GROUP_RECYCLE_BUL_COST    1000
00899 #define GROUP_RECYCLE_TECH    232
00900 #define GROUP_RECYCLE_NO_CREDIT
00901 #define GROUP_RECYCLE_FIREC 10
00902 
00903 #define GROUP_WATER        21
00904 #define GROUP_WATER_COLOUR    (blue(31))
00905 #define GROUP_WATER_COST      1000000
00906 #define GROUP_WATER_COST_MUL 2
00907 #define GROUP_WATER_BUL_COST      1000000
00908 #define GROUP_WATER_TECH      0
00909 #define GROUP_RIVER (GROUP_WATER)       /* oops -- GCS: Why oops? */
00910 #define GROUP_WATER_FIREC 0
00911 
00912 #define GROUP_HEALTH       22
00913 #define GROUP_HEALTH_COLOUR   (green(24))
00914 #define GROUP_HEALTH_COST     100000
00915 #define GROUP_HEALTH_COST_MUL 2
00916 #define GROUP_HEALTH_BUL_COST     1000
00917 #define GROUP_HEALTH_TECH     110
00918 #define GROUP_HEALTH_FIREC 2
00919 
00920 #define GROUP_ROCKET       23
00921 #define GROUP_ROCKET_COLOUR   (magenta(20))
00922 #define GROUP_ROCKET_COST     700000
00923 #define GROUP_ROCKET_COST_MUL 2
00924 #define GROUP_ROCKET_BUL_COST     1
00925 #define GROUP_ROCKET_TECH     750
00926 #define GROUP_ROCKET_NO_CREDIT
00927 #define GROUP_ROCKET_FIREC 0
00928 
00929 #define GROUP_WINDMILL     24
00930 #define GROUP_WINDMILL_COLOUR (green(25))
00931 #define GROUP_WINDMILL_COST   20000
00932 #define GROUP_WINDMILL_COST_MUL 25
00933 #define GROUP_WINDMILL_BUL_COST   1000
00934 #define GROUP_WINDMILL_TECH   30
00935 #define GROUP_WINDMILL_FIREC  10
00936 
00937 #define GROUP_MONUMENT     25
00938 #define GROUP_MONUMENT_COLOUR (white(15))
00939 #define GROUP_MONUMENT_COST   10000
00940 #define GROUP_MONUMENT_COST_MUL 25
00941 #define GROUP_MONUMENT_BUL_COST   1000000
00942 #define GROUP_MONUMENT_TECH   0
00943 #define GROUP_MONUMENT_FIREC  0
00944 
00945 #define GROUP_SCHOOL     26
00946 #define GROUP_SCHOOL_COLOUR (white(15))
00947 #define GROUP_SCHOOL_COST   10000
00948 #define GROUP_SCHOOL_COST_MUL 25
00949 #define GROUP_SCHOOL_BUL_COST   10000
00950 #define GROUP_SCHOOL_TECH   1
00951 #define GROUP_SCHOOL_FIREC 40
00952 
00953 #define GROUP_BLACKSMITH     27
00954 #define GROUP_BLACKSMITH_COLOUR (white(15))
00955 #define GROUP_BLACKSMITH_COST   5000
00956 #define GROUP_BLACKSMITH_COST_MUL 25
00957 #define GROUP_BLACKSMITH_BUL_COST   1000
00958 #define GROUP_BLACKSMITH_TECH   3
00959 #define GROUP_BLACKSMITH_FIREC 60
00960 
00961 #define GROUP_MILL     28
00962 #define GROUP_MILL_COLOUR (white(15))
00963 #define GROUP_MILL_COST   10000
00964 #define GROUP_MILL_COST_MUL 25
00965 #define GROUP_MILL_BUL_COST   1000
00966 #define GROUP_MILL_TECH   25
00967 #define GROUP_MILL_FIREC  60
00968 
00969 #define GROUP_POTTERY  29
00970 #define GROUP_POTTERY_COLOUR (red(12))
00971 #define GROUP_POTTERY_COST   1000
00972 #define GROUP_POTTERY_COST_MUL 25
00973 #define GROUP_POTTERY_BUL_COST 1000
00974 #define GROUP_POTTERY_TECH  0
00975 #define GROUP_POTTERY_FIREC 50
00976 
00977 #define GROUP_FIRESTATION 30
00978 #define GROUP_FIRESTATION_COLOUR (red(20))
00979 #define GROUP_FIRESTATION_COST   20000
00980 #define GROUP_FIRESTATION_COST_MUL 10
00981 #define GROUP_FIRESTATION_BUL_COST 1000
00982 #define GROUP_FIRESTATION_TECH     22
00983 #define GROUP_FIRESTATION_FIREC 0
00984 
00985 #define GROUP_CRICKET 31
00986 #define GROUP_CRICKET_COLOUR (white(20))
00987 #define GROUP_CRICKET_COST   2000
00988 #define GROUP_CRICKET_COST_MUL 3
00989 #define GROUP_CRICKET_BUL_COST 1000
00990 #define GROUP_CRICKET_TECH     12
00991 #define GROUP_CRICKET_FIREC 20
00992 
00993 #define GROUP_BURNT        32
00994 #define GROUP_BURNT_COLOUR    (red(30))
00995 #define GROUP_BURNT_COST   0        /* Unused */
00996 #define GROUP_BURNT_COST_MUL   1    /* Unused */
00997 #define GROUP_BURNT_BUL_COST  1000
00998 #define GROUP_BURNT_TECH   0        /* Unused */
00999 #define GROUP_BURNT_FIREC  0
01000 
01001 #define GROUP_SHANTY        33
01002 #define GROUP_SHANTY_COLOUR    (red(22))
01003 #define GROUP_SHANTY_COST   0        /* Unused */
01004 #define GROUP_SHANTY_COST_MUL   1    /* Unused */
01005 #define GROUP_SHANTY_BUL_COST  100000
01006 #define GROUP_SHANTY_TECH   0        /* Unused */
01007 #define GROUP_SHANTY_FIREC     25
01008 
01009 #define SHANTY_MIN_PP     150
01010 #define SHANTY_POP        50
01011 #define DAYS_BETWEEN_SHANTY (NUMOF_DAYS_IN_MONTH*5)
01012 #define SHANTY_GET_FOOD   50
01013 #define SHANTY_GET_JOBS   5
01014 #define SHANTY_GET_GOODS  50
01015 #define SHANTY_GET_COAL   1
01016 #define SHANTY_GET_ORE    10
01017 #define SHANTY_GET_STEEL  1
01018 
01019 #define GROUP_FIRE        34
01020 #define GROUP_FIRE_COLOUR    (red(30))
01021 #define GROUP_FIRE_COST   0        /* Unused */
01022 #define GROUP_FIRE_COST_MUL   1    /* Unused */
01023 #define GROUP_FIRE_BUL_COST  1000
01024 #define GROUP_FIRE_TECH   0        /* Unused */
01025 #define GROUP_FIRE_FIREC  0
01026 
01027 #define GROUP_USED        35
01028 #define GROUP_USED_COLOUR (green(12))  /* Unused */
01029 #define GROUP_USED_COST   0            /* Unused */
01030 #define GROUP_USED_COST_MUL  1         /* Unused */
01031 #define GROUP_USED_BUL_COST  0         /* Unused */
01032 #define GROUP_USED_TECH   0            /* Unused */
01033 #define GROUP_USED_FIREC  0            /* Unused */
01034 
01035 #define GROUP_RESIDENCE_ML 36
01036 #define GROUP_RESIDENCE_ML_COLOUR (cyan(24))
01037 #define GROUP_RESIDENCE_ML_COST 2000
01038 #define GROUP_RESIDENCE_ML_COST_MUL 25
01039 #define GROUP_RESIDENCE_ML_BUL_COST 1000
01040 #define GROUP_RESIDENCE_ML_TECH 0
01041 #define GROUP_RESIDENCE_ML_FIREC 75
01042 
01043 #define GROUP_RESIDENCE_HL 37
01044 #define GROUP_RESIDENCE_HL_COLOUR (cyan(24))
01045 #define GROUP_RESIDENCE_HL_COST 4000
01046 #define GROUP_RESIDENCE_HL_COST_MUL 25
01047 #define GROUP_RESIDENCE_HL_BUL_COST 1000
01048 #define GROUP_RESIDENCE_HL_TECH 0
01049 #define GROUP_RESIDENCE_HL_FIREC 75
01050 
01051 #define GROUP_RESIDENCE_LH 38
01052 #define GROUP_RESIDENCE_LH_COLOUR (cyan(24))
01053 #define GROUP_RESIDENCE_LH_COST 800
01054 #define GROUP_RESIDENCE_LH_COST_MUL 25
01055 #define GROUP_RESIDENCE_LH_BUL_COST 1000
01056 #define GROUP_RESIDENCE_LH_TECH 0          /* ?? */
01057 #define GROUP_RESIDENCE_LH_FIREC 75
01058 
01059 #define GROUP_RESIDENCE_MH 39
01060 #define GROUP_RESIDENCE_MH_COLOUR (cyan(24))
01061 #define GROUP_RESIDENCE_MH_COST 1600
01062 #define GROUP_RESIDENCE_MH_COST_MUL 25
01063 #define GROUP_RESIDENCE_MH_BUL_COST 1000
01064 #define GROUP_RESIDENCE_MH_TECH 0
01065 #define GROUP_RESIDENCE_MH_FIREC 75
01066 
01067 #define GROUP_RESIDENCE_HH 40
01068 #define GROUP_RESIDENCE_HH_COLOUR (cyan(24))
01069 #define GROUP_RESIDENCE_HH_COST 3200
01070 #define GROUP_RESIDENCE_HH_COST_MUL 25
01071 #define GROUP_RESIDENCE_HH_BUL_COST 1000
01072 #define GROUP_RESIDENCE_HH_TECH 0
01073 #define GROUP_RESIDENCE_HH_FIREC 75
01074 
01075 #define GROUP_IS_TRANSPORT(group) \
01076             ((group == GROUP_TRACK) || \
01077              (group == GROUP_ROAD) || \
01078              (group == GROUP_RAIL) || \
01079              (group == GROUP_POWER_LINE))
01080 
01081 #define GROUP_IS_RESIDENCE(group) \
01082             ((group == GROUP_RESIDENCE_LL) || \
01083              (group == GROUP_RESIDENCE_ML) || \
01084              (group == GROUP_RESIDENCE_HL) || \
01085              (group == GROUP_RESIDENCE_LH) || \
01086              (group == GROUP_RESIDENCE_MH) || \
01087              (group == GROUP_RESIDENCE_HH))
01088 
01089 #define GROUP_RESIDENCE_LL 4
01090 #define GROUP_RESIDENCE_LL_COLOUR (cyan(24))
01091 #define GROUP_RESIDENCE_LL_COST 1000
01092 #define GROUP_RESIDENCE_LL_COST_MUL 25
01093 #define GROUP_RESIDENCE_LL_BUL_COST 1000
01094 #define GROUP_RESIDENCE_LL_TECH 0
01095 #define GROUP_RESIDENCE_LL_FIREC 75
01096 
01097 
01098 #define MOUSE_TYPE_NORMAL 1
01099 #define MOUSE_TYPE_SQUARE 2
01100 #define MOUSE_BUTTON_REPEAT 4
01101 
01102 #define red(x) (32 + x)
01103 #define green(x) (64 + x)
01104 #define yellow(x) (96 + x)
01105 #define blue(x) (128 + x)
01106 #define magenta(x) (160 + x)
01107 #define cyan(x) (192 + x)
01108 #define white(x) (224 + x)
01109 
01110 
01111 struct map_point_info_struct
01112 {
01113   int population;
01114   int flags;
01115   unsigned short coal_reserve;
01116   unsigned short ore_reserve;
01117   int int_1;
01118   int int_2;
01119   int int_3;
01120   int int_4;
01121   int int_5;
01122   int int_6;
01123   int int_7;
01124 };
01125 typedef struct map_point_info_struct Map_Point_Info;
01126 
01127 
01128 /* Set these flags to true when they need to be updated on the screen */
01129 struct update_scoreboard_struct
01130 {
01131   int mps;
01132   int mini;
01133   int date;
01134   int money;
01135   int monthly;
01136   int yearly_1;
01137   int yearly_2;
01138   long int message_area;
01139 };
01140 typedef struct update_scoreboard_struct Update_Scoreboard;
01141 
01142 
01143 /*
01144   main functions
01145   **************
01146 */
01147 extern int lincity_main (int, char **);
01148 extern void client_main_loop (void);
01149 extern void do_error (char *);
01150 extern void do_save_city (void);
01151 extern void remove_scene (char *);
01152 extern void save_city (char *);
01153 extern void do_load_city (void);
01154 extern void load_opening_city (char *);
01155 extern void load_city (char *);
01156 extern void reset_animation_times (void);
01157 extern void coal_reserve_setup (void);
01158 extern void ore_reserve_setup (void);
01159 extern void setup_river (void);
01160 extern void setup_river2 (int, int, int);
01161 extern void check_savedir (void);
01162 extern void make_savedir (void);
01163 extern void draw_save_dir (int);
01164 extern void input_save_filename (char *);
01165 extern void load_start_image (void);
01166 extern void start_image_text (void);
01167 extern void si_scroll_text (void);
01168 extern char si_next_char (FILE *);
01169 extern void get_real_time (void);
01170 extern void debug_writeval (int);
01171 extern int cheat (void);
01172 extern void print_cheat (void);
01173 extern void unprint_cheat (void);
01174 extern void order_select_buttons (void);
01175 extern void lincityrc (void);
01176 extern void check_for_old_save_dir (void);
01177 extern int count_groups (int);
01178 extern int compile_results (void);
01179 extern void print_results (void);
01180 extern void mail_results (void);
01181 extern void window_results (void);
01182 extern void init_path_strings (void);
01183 extern void lc_usleep (unsigned long);
01184 extern void dump_tcore (void);
01185 #ifndef LC_X11
01186 extern void parse_args (int, char **);
01187 #endif
01188 extern void sustainability_test (void);
01189 extern int sust_fire_cover (void);
01190 extern void check_endian (void);
01191 extern void eswap32 (int *);
01192 extern void eswap16 (unsigned short *);
01193 extern void malloc_failure (void);
01194 
01195 /*
01196   fileutil
01197   ********
01198 */
01199 void malloc_failure (void);
01200 FILE* fopen_read_gzipped (char* fn);
01201 void fclose_read_gzipped (FILE* fp);
01202 void verify_package (void);
01203 
01204 /*
01205   ldsvgui
01206   *******
01207 */
01208 void load_opening_city (char *s);
01209 void check_savedir (void);
01210 
01211 /*
01212   opening
01213   *******
01214 */
01215 void load_start_image (void);
01216 
01217 
01218 /*
01219   type init functions
01220   *******************
01221 */
01222 extern void init_types (void);
01223 extern void init_type_graphics (void);
01224 void init_costs (void);
01225 int get_selected_type_cost (short selected_type);
01226 extern char *load_graphic (char *);
01227 
01228 /*
01229   screen functions
01230   ****************
01231 */
01232 #ifdef CS_PROFILE
01233 extern void FPgl_write (int, int, char *);
01234 extern void FPgl_getbox (int, int, int, int, void *);
01235 extern void FPgl_putbox (int, int, int, int, void *);
01236 extern void FPgl_fillbox (int, int, int, int, int);
01237 extern void FPgl_hline (int, int, int, int);
01238 extern void FPgl_line (int, int, int, int, int);
01239 extern void FPgl_setpixel (int, int, int);
01240 #endif
01241 extern void check_power_line_graphics (void);
01242 extern void check_water_graphics (void);
01243 extern void check_track_graphics (void);
01244 extern void check_rail_graphics (void);
01245 extern void check_road_graphics (void);
01246 extern int select_power_line_type (int, int, int, int);
01247 extern int select_water_type (int, int, int, int);
01248 extern int select_track_type (int, int, int, int);
01249 extern int select_rail_type (int, int, int, int);
01250 extern int select_road_type (int, int, int, int);
01251 extern void update_select_buttons (void);
01252 extern void draw_main_window_box (int);
01253 extern void draw_select_button_graphic (int, char *);
01254 extern void setcustompalette (void);
01255 extern void clip_main_window (void);
01256 extern void unclip_main_window (void);
01257 extern void initfont (void);
01258 extern void load_scroll_buttons (void);
01259 extern void draw_scroll_buttons (void);
01260 extern void update_mini_screen (void);
01261 extern void draw_mini_screen (void);
01262 extern void draw_big_mini_screen (void);
01263 extern void draw_mini_screen_pollution (void);
01264 extern void draw_mini_screen_fire_cover (void);
01265 extern void draw_mini_screen_cricket_cover (void);
01266 extern void draw_mini_screen_health_cover (void);
01267 extern void draw_mini_screen_ub40 (void);
01268 extern void draw_mini_screen_starve (void);
01269 extern void draw_mini_screen_coal (void);
01270 extern void draw_mini_screen_power (void);
01271 extern void draw_mini_screen_ocost (void);
01272 extern void draw_mini_screen_port (void);
01273 extern void draw_mini_screen_cursor (void);
01274 extern void print_stats (void);
01275 extern void print_total_money (void);
01276 int ask_launch_rocket_now (int x, int y);
01277 void print_date (void);
01278 extern void draw_market_cb (void);
01279 extern void clicked_market_cb (int, int);
01280 extern void close_market_cb (void);
01281 extern void draw_port_cb (void);
01282 extern void clicked_port_cb (int, int);
01283 extern void close_port_cb (void);
01284 extern int yn_dial_box (char *, char *, char *, char *);
01285 extern void ok_dial_box (char *, int, char *);
01286 extern int inv_sbut (int);
01287 extern void call_select_change_up (int);
01288 extern void beg_space_pad (char *, int);
01289 extern void draw_up_pbar (int, int, int, int);
01290 extern void draw_down_pbar (int, int, int, int);
01291 extern void do_pbar_population (int);
01292 extern void do_pbar_tech (int);
01293 extern void do_pbar_food (int);
01294 extern void do_pbar_jobs (int);
01295 extern void do_pbar_coal (int);
01296 extern void do_pbar_goods (int);
01297 extern void do_pbar_ore (int);
01298 extern void do_pbar_steel (int);
01299 extern void do_pbar_money (int);
01300 extern void prog_box (char *, int);
01301 /*
01302   mouse functions -- are now in mouse.h, where they should be!
01303   ***************
01304 */
01305 
01306 /*
01307   engine functions
01308   ****************
01309 */
01310 void initialize_tax_rates (void);
01311 void set_mappoint (int x, int y, short selected_type);
01312 void set_mappoint_used (int, int, int, int);
01313 int no_credit_build (int selected_type);
01314 void set_mappoint_ints (int fromx, int fromy, int x, int y);
01315 void new_city (int* originx, int* originy, int random_village);
01316 extern void engine_do_time_step (void);
01317 extern void do_residence (int, int);
01318 extern void debug_print (int);
01319 extern void do_power_source (int, int);
01320 extern void do_power_source_coal (int, int);
01321 extern void do_industry_l (int, int);
01322 extern void do_industry_h (int, int);
01323 extern void do_power_substation (int, int);
01324 extern int get_power (int, int, int, int);
01325 extern int add_a_substation (int, int);
01326 extern void remove_a_substation (int, int);
01327 extern void do_organic_farm (int, int);
01328 void init_mappoint_array (void);
01329 extern void shuffle_mappoint_array (void);
01330 extern void shuffle_substations (void);
01331 extern void do_coalmine (int, int);
01332 extern void do_oremine (int, int);
01333 extern void do_commune (int, int);
01334 extern void do_port (int, int);
01335 extern int buy_food (int, int);
01336 extern int buy_jobs (int, int);
01337 extern int buy_coal (int, int);
01338 extern int buy_ore (int, int);
01339 extern int buy_goods (int, int);
01340 extern int buy_steel (int, int);
01341 extern int sell_food (int, int);
01342 extern int sell_jobs (int, int);
01343 extern int sell_coal (int, int);
01344 extern int sell_ore (int, int);
01345 extern int sell_goods (int, int);
01346 extern int sell_steel (int, int);
01347 
01348 extern void do_pollution (void);
01349 extern void do_parkland (int, int);
01350 extern void do_university (int, int);
01351 extern void do_recycle (int, int);
01352 extern void do_health_centre (int, int);
01353 extern void do_rocket_pad (int, int);
01354 extern void launch_rocket (int x, int y);
01355 extern void remove_people (int);
01356 extern void do_windmill (int, int);
01357 extern void do_monument (int, int);
01358 extern void do_school (int, int);
01359 extern void do_blacksmith (int, int);
01360 extern void do_mill (int, int);
01361 extern void do_pottery (int, int);
01362 extern void do_firestation (int, int);
01363 extern void do_cricket (int, int);
01364 extern void clear_fire_health_and_cricket_cover (void);
01365 extern void do_fire_health_and_cricket_cover (void);
01366 extern void do_fire_cover (int, int);
01367 extern void do_health_cover (int, int);
01368 extern void do_cricket_cover (int, int);
01369 extern void do_random_fire (int, int, int);
01370 extern void do_fire (int, int);
01371 extern int spiral_find_group (int, int, int);
01372 extern int spiral_find_2x2 (int, int);
01373 extern void add_a_shanty (void);
01374 extern void remove_a_shanty (void);
01375 extern void update_shanty (void);
01376 extern void do_shanty (int, int);
01377 extern void do_tip (int, int);
01378 extern void update_tech_dep (int, int);
01379 /*
01380    transport functions
01381    *******************
01382 */
01383 void connect_transport (int originx, int originy, int w, int h);
01384 extern void do_power_line (int, int);
01385 extern void do_track (int, int);
01386 extern void do_rail (int, int);
01387 extern void do_road (int, int);
01388 extern void general_transport (Map_Point_Info *, int *, int, int *);
01389 
01390 /*
01391    market functions
01392    ****************
01393 */
01394 extern int get_food (int, int, int);
01395 extern int put_food (int, int, int);
01396 extern int get_jobs (int, int, int);
01397 extern int put_jobs (int, int, int);
01398 extern int get_goods (int, int, int);
01399 extern int put_goods (int, int, int);
01400 extern int get_ore (int, int, int);
01401 extern int put_ore (int, int, int);
01402 extern int get_coal (int, int, int);
01403 extern int put_coal (int, int, int);
01404 extern int add_a_market (int, int);
01405 extern void remove_a_market (int, int);
01406 extern void do_market (int, int);
01407 extern void shuffle_markets (void);
01408 extern int deal_with_transport (int, int, int, int);
01409 extern int get_steel (int, int, int);
01410 extern int put_steel (int, int, int);
01411 extern int get_waste (int, int, int);
01412 extern int put_waste (int, int, int);
01413 extern int get_stuff (int, int, int, int);
01414 extern int get_stuff2 (Map_Point_Info *, int, int);
01415 extern int get_stuff3 (Map_Point_Info *, int, int);
01416 extern int get_stuff4 (Map_Point_Info *, int, int);
01417 extern int put_stuff (int, int, int, int);
01418 extern int put_stuff2 (Map_Point_Info *, short *, int, int);
01419 extern int put_stuff3 (Map_Point_Info *, short *, int, int);
01420 extern int put_stuff4 (Map_Point_Info *, short *, int, int);
01421 
01422 #ifdef LC_X11
01423 /* ----- X11 functions ----- */
01424 extern void Fgl_write (int, int, char *);
01425 extern void open_write (int, int, char *);
01426 extern void Fgl_getbox (int, int, int, int, void *);
01427 extern void Fgl_putbox (int, int, int, int, void *);
01428 extern void Fgl_fillbox (int, int, int, int, int);
01429 extern void Fgl_hline (int, int, int, int);
01430 extern void Fgl_line (int, int, int, int, int);
01431 extern void Fgl_setpixel (int, int, int);
01432 extern void Fgl_setfontcolors (int, int);
01433 extern void Fgl_setfont (int, int, void*);
01434 extern void Fgl_enableclipping (void);
01435 extern void Fgl_setclippingwindow (int, int, int, int);
01436 extern void Fgl_disableclipping (void);
01437 #ifdef USE_X11_PIXMAPS
01438 #define USE_PIXMAPS
01439 extern void init_pixmaps (void);
01440 extern void init_icon_pixmap (short);
01441 extern void update_pixmap (int, int, int, int, int, int, int, char *);
01442 #endif
01443 
01444 #elif defined (WIN32)
01445 /* ----- Win32 functions ----- */
01446 extern void gl_setpalettecolor (long, long, long, long);
01447 extern void Fgl_write (int, int, char *);
01448 extern void open_write (int, int, char *);
01449 extern void Fgl_getbox (int, int, int, int, void *);
01450 extern void Fgl_putbox (int, int, int, int, void *);
01451 extern void Fgl_fillbox (int, int, int, int, int);
01452 extern void Fgl_hline (int, int, int, int);
01453 extern void Fgl_line (int, int, int, int, int);
01454 extern void Fgl_setpixel (int, int, int);
01455 extern void Fgl_setfontcolors (int, int);
01456 extern void Fgl_setfont (int, int, void*);
01457 extern void Fgl_enableclipping (void);
01458 extern void Fgl_setclippingwindow (int, int, int, int);
01459 extern void Fgl_disableclipping (void);
01460 #define USE_PIXMAPS             /* Always */
01461 extern void init_pixmaps (void);
01462 extern void init_icon_pixmap (short);
01463 extern void update_pixmap (int, int, int, int, int, int, int, char *);
01464 
01465 #else
01466 /* ----- SVGALIB functions ----- */
01467 /* profiling */
01468 #ifdef CS_PROFILE
01469 #define Fgl_write(a,b,c) FPgl_write(a,b,c)
01470 #define Fgl_getbox(a,b,c,d,e) FPgl_getbox(a,b,c,d,e)
01471 #define Fgl_putbox(a,b,c,d,e) FPgl_putbox(a,b,c,d,e)
01472 #define Fgl_fillbox(a,b,c,d,e) FPgl_fillbox(a,b,c,d,e)
01473 #define Fgl_hline(a,b,c,d) FPgl_hline(a,b,c,d)
01474 #define Fgl_line(a,b,c,d,e) FPgl_line(a,b,c,d,e)
01475 #define Fgl_setpixel(a,b,c) FPgl_setpixel(a,b,c)
01476 #define Fgl_setfontcolors(a,b) gl_setfontcolors(a,b)
01477 #define Fgl_setfont(a,b,c) gl_setfont(a,b,c)
01478 #define Fgl_enableclipping()   gl_enableclipping()
01479 #define Fgl_setclippingwindow(a,b,c,d)   gl_setclippingwindow(a,b,c,d)
01480 #define Fgl_disableclipping()   gl_disableclipping()
01481 #else
01482 #define Fgl_write(a,b,c) gl_write(a,b,c)
01483 #define Fgl_getbox(a,b,c,d,e) gl_getbox(a,b,c,d,e)
01484 #define Fgl_putbox(a,b,c,d,e) gl_putbox(a,b,c,d,e)
01485 #define Fgl_fillbox(a,b,c,d,e) gl_fillbox(a,b,c,d,e)
01486 #define Fgl_hline(a,b,c,d) gl_hline(a,b,c,d)
01487 #define Fgl_line(a,b,c,d,e) gl_line(a,b,c,d,e)
01488 #define Fgl_setpixel(a,b,c) gl_setpixel(a,b,c)
01489 #define Fgl_setfontcolors(a,b) gl_setfontcolors(a,b)
01490 #define Fgl_setfont(a,b,c) gl_setfont(a,b,c)
01491 #define Fgl_enableclipping()   gl_enableclipping()
01492 #define Fgl_setclippingwindow(a,b,c,d)   gl_setclippingwindow(a,b,c,d)
01493 #define Fgl_disableclipping()   gl_disableclipping()
01494 #endif
01495 
01496 #endif
01497 /*
01498   *******   end of lin-city.h   ***********
01499   *****************************************
01500 */
01501 
01502 #include "lintypes.h"
01503 
01504 #endif /* __lin_city_h__ */

Generated on Sun Dec 26 11:23:25 2004 for lincity by  doxygen 1.3.9.1