00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef PROTOTYPES_H
00036 #define PROTOTYPES_H
00037
00038 #include <stdio.h>
00039 #include <stdlib.h>
00040 #include <string.h>
00041 #include <time.h>
00042 #include "item.h"
00043 #include "nsc.h"
00044 #include "misc.h"
00045 #include "types.h"
00046
00047
00048 extern void shutdwn(int sig);
00049 extern void init_server(unsigned);
00050 extern void start_server(int);
00051 extern void finish_server(void);
00052
00053
00054
00055
00056
00057
00058
00059 extern int check_market(void);
00060 extern void gift(natid, natid, void *, char *);
00061 extern int display_mark(i_type, int);
00062 extern int want_to_abandon(struct sctstr *, i_type, int, struct lndstr *);
00063 extern int would_abandon(struct sctstr *, i_type, int, struct lndstr *);
00064 extern int nav_map(int, int, int);
00065 extern int do_unit_move(struct emp_qelem *land_list, int *together,
00066 double *minmob, double *maxmob);
00067 extern int count_pop(int);
00068 extern int scuttle_tradeship(struct shpstr *, int);
00069 extern void scuttle_ship(struct shpstr *);
00070 extern void resnoise(struct sctstr *sptr, int public_amt, char *name,
00071 int old, int new);
00072 extern int line_of_sight(char **rad, int ax, int ay, int bx, int by);
00073 extern void plane_sona(struct emp_qelem *, int, int, struct shiplist **);
00074 extern char *prsub(struct shpstr *);
00075 extern int check_trade(void);
00076 extern int ontradingblock(int, void *);
00077 extern void trdswitchown(int, void *, int);
00078 extern int do_look(short);
00079 extern int radar(short);
00080 extern void update_power(void);
00081
00082 int acce(void);
00083 int add(void);
00084 int anti(void);
00085 int apro(void);
00086 int arm(void);
00087 int army(void);
00088 int assa(void);
00089 int atta(void);
00090 int bdes(void);
00091 int best(void);
00092 int boar(void);
00093 int bomb(void);
00094 int brea(void);
00095 int budg(void);
00096 int buil(void);
00097 int buy(void);
00098 int capi(void);
00099 int carg(void);
00100 int cede(void);
00101 int cens(void);
00102 int chan(void);
00103 int coas(void);
00104 int coll(void);
00105 int comm(void);
00106 int cons(void);
00107 int conv(void);
00108 int coun(void);
00109 int cuto(void);
00110 int decl(void);
00111 int deli(void);
00112 int demo(void);
00113 int desi(void);
00114 int disa(void);
00115 int disarm(void);
00116 int dist(void);
00117 int drop(void);
00118 int dump(void);
00119 int echo(void);
00120 int edit(void);
00121 int enab(void);
00122 int enli(void);
00123 int execute(void);
00124 int explain(void);
00125 int explore(void);
00126 int fina(void);
00127 int flash(void);
00128 int flee(void);
00129 int fly(void);
00130 int foll(void);
00131 int force(void);
00132 int fort(void);
00133 int fuel(void);
00134 int give(void);
00135 int grin(void);
00136 int hard(void);
00137 int head(void);
00138 int improve(void);
00139 int info(void);
00140 int land(void);
00141 int landmine(void);
00142 int laun(void);
00143 int lboa(void);
00144 int lcarg(void);
00145 int ldump(void);
00146 int ledg(void);
00147 int leve(void);
00148 int lload(void);
00149 int llook(void);
00150 int load(void);
00151 int look(void);
00152 int lost(void);
00153 int lrad(void);
00154 int lrange(void);
00155 int lretr(void);
00156 int lsta(void);
00157 int ltend(void);
00158 int map(void);
00159 int march(void);
00160 int mark(void);
00161 int mine(void);
00162 int mission(void);
00163 int mobq(void);
00164 int morale(void);
00165 int move(void);
00166 int multifire(void);
00167 int name(void);
00168 int nati(void);
00169 int navi(void);
00170 int ndump(void);
00171 int new(void);
00172 int newe(void);
00173 int news(void);
00174 int nuke(void);
00175 int offe(void);
00176 int orde(void);
00177 int orig(void);
00178 int para(void);
00179 int path(void);
00180 int payo(void);
00181 int pboa(void);
00182 int pdump(void);
00183 int peek(void);
00184 int plan(void);
00185 int play(void);
00186 int powe(void);
00187 int prod(void);
00188 int pstat(void);
00189 int qorde(void);
00190 int quit(void);
00191 int rada(void);
00192 int range(void);
00193 int rea(void);
00194 int real(void);
00195 int reco(void);
00196 int reje(void);
00197 int rela(void);
00198 int relo(void);
00199 int repa(void);
00200 int repo(void);
00201 int rese(void);
00202 int reso(void);
00203 int retr(void);
00204 int rout(void);
00205 int sabo(void);
00206 int sail(void);
00207 int sate(void);
00208 int scra(void);
00209 int sct(void);
00210 int scut(void);
00211 int sdump(void);
00212 int sell(void);
00213 int set(void);
00214 int setres(void);
00215 int setsector(void);
00216 int shar(void);
00217 int shark(void);
00218 int shi(void);
00219 int shoo(void);
00220 int show(void);
00221 int show_motd(void);
00222 int shut(void);
00223 int sinfra(void);
00224 int skyw(void);
00225 int sona(void);
00226 int sorde(void);
00227 int spy(void);
00228 int sstat(void);
00229 int start(void);
00230 int starve(void);
00231 int stop(void);
00232 int stre(void);
00233 int supp(void);
00234 int surv(void);
00235 int swaps(void);
00236 int tele(void);
00237 int tend(void);
00238 int terr(void);
00239 int thre(void);
00240 int togg(void);
00241 int torp(void);
00242 int trad(void);
00243 int tran(void);
00244 int trea(void);
00245 int turn(void);
00246 int upda(void);
00247 int upgr(void);
00248 int vers(void);
00249 int wall(void);
00250 int wing(void);
00251 int wipe(void);
00252 int work(void);
00253 int xdump(void);
00254 int xedit(void);
00255 int zdon(void);
00256
00257
00258
00259
00260
00261 extern char *bestownedpath(char *, char *, int, int, int, int, int);
00262
00263 extern void bridgefall(struct sctstr *, struct emp_qelem *);
00264 extern void knockdown(struct sctstr *, struct emp_qelem *);
00265
00266 extern void landdamage(struct lndstr *, int);
00267 extern void ship_damage(struct shpstr *, int);
00268 extern int damage(int, int);
00269 extern void shipdamage(struct shpstr *, int);
00270 extern void land_damage(struct lndstr *, int);
00271 extern void planedamage(struct plnstr *, int);
00272 extern int nukedamage(struct nchrstr *, int, int);
00273 extern int effdamage(int, int);
00274 extern void item_damage(int, short *);
00275 extern int commdamage(int, int, i_type);
00276
00277 extern int check_sect_ok(struct sctstr *);
00278 extern int check_ship_ok(struct shpstr *);
00279 extern int check_land_ok(struct lndstr *);
00280 extern int check_nuke_ok(struct nukstr *);
00281 extern int check_plane_ok(struct plnstr *);
00282 extern int check_comm_ok(struct comstr *);
00283 extern int check_loan_ok(struct lonstr *);
00284 extern int check_trade_ok(struct trdstr *);
00285
00286 extern int read_builtin_tables(void);
00287 extern int read_custom_tables(void);
00288
00289
00290
00291 extern int fsize(int);
00292 extern int blksize(int);
00293 extern time_t fdate(int);
00294
00295 extern double hap_fact(struct natstr *, struct natstr *);
00296 extern double hap_req(struct natstr *np);
00297
00298 extern int is_wday_allowed(int, char *);
00299 extern int is_daytime_allowed(int, char *);
00300 extern int gamehours(time_t);
00301
00302 extern int has_units(coord, coord, natid, struct lndstr *);
00303 extern int has_units_with_mob(coord, coord, natid);
00304 extern int adj_units(coord, coord, natid);
00305 extern int has_helpful_engineer(coord x, coord y, natid cn);
00306
00307 extern int loginit(char *);
00308 extern int logreopen(void);
00309 extern void logerror(char *, ...) ATTRIBUTE((format (printf, 1, 2)));
00310
00311
00312 extern int do_map(int bmap, int unit_type, char *arg1, char *arg2);
00313 extern int draw_map(int, char, int, struct nstr_sect *);
00314 extern int unit_map(int, int, struct nstr_sect *, char *);
00315 extern int display_region_map(int bmap, int unit_type, coord curx,
00316 coord cury, char *arg);
00317 extern int bmaps_intersect(natid, natid);
00318 extern int share_bmap(natid, natid, struct nstr_sect *, char, char *);
00319
00320
00321
00322
00323
00324 extern void bp_enable_cachepath(void);
00325 extern void bp_disable_cachepath(void);
00326 extern void bp_clear_cachepath(void);
00327 extern char *BestDistPath(char *, struct sctstr *, struct sctstr *,
00328 double *);
00329 extern char *BestLandPath(char *, struct sctstr *, struct sctstr *,
00330 double *, int);
00331 extern char *BestShipPath(char *, int, int, int, int, int);
00332 extern char *BestAirPath(char *, int, int, int, int);
00333 extern double pathcost(struct sctstr *, char *, int);
00334
00335 extern int read_schedule(char *, time_t[], int, time_t, time_t);
00336
00337 extern int max_population(float, int, int);
00338 extern int max_pop(float, struct sctstr *);
00339
00340 extern int sect_damage(struct sctstr *, int, struct emp_qelem *);
00341 extern int sectdamage(struct sctstr *, int, struct emp_qelem *);
00342
00343
00344
00345 extern int sct_typematch(char *);
00346
00347 extern int demand_update_want(int *, int *, int);
00348 extern int demand_check(void);
00349 extern int demandupdatecheck(void);
00350
00351 extern int xundump(FILE *, char *, int *, int);
00352
00353
00354
00355
00356
00357 extern int emp_config(char *file);
00358 extern void print_config(FILE * fp);
00359
00360 extern int roll(int);
00361 extern int roundavg(double);
00362 extern int chance(double);
00363 extern int disassoc(void);
00364 extern int diffx(int, int);
00365 extern int diffy(int, int);
00366 extern int deltax(int, int);
00367 extern int deltay(int, int);
00368 extern int mapdist(int, int, int, int);
00369 extern char *effadv(int);
00370 extern int onearg(char *, char *);
00371 extern int parse(char *, char *, char **, char **, char **, char **);
00372 extern int ldround(double, int);
00373 extern int roundintby(int, int);
00374 extern int scthash(int, int, int);
00375 extern int tcp_listen(char *, char *, size_t *);
00376 extern char *numstr(char buf[], int n);
00377
00378 extern char *esplur(int n);
00379 extern char *splur(int n);
00380 extern char *iesplur(int n);
00381 extern char *plurize(char *buf, int max_len, int n);
00382
00383
00384
00385
00386
00387 extern void global_init(void);
00388
00389
00390
00391
00392
00393
00394 extern void player_init(void);
00395 extern struct player *player_new(int);
00396 extern struct player *player_delete(struct player *);
00397 extern struct player *player_next(struct player *);
00398 extern struct player *player_prev(struct player *);
00399 extern struct player *getplayer(natid);
00400 extern void player_accept(void *);
00401
00402 extern int dispatch(char *, char *);
00403
00404 extern int getcommand(char *);
00405 extern void init_player_commands(void);
00406 extern void log_last_commands(void);
00407 extern int gamedown(void);
00408 extern void daychange(time_t);
00409 extern int getminleft(time_t, int);
00410
00411
00412
00413 extern int init_nats(void);
00414 extern int player_set_nstat(struct player *, struct natstr *);
00415
00416 extern void player_login(void *);
00417
00418 extern int natbyname(char *, natid *);
00419 extern int natpass(int, char *);
00420
00421 extern struct player *player;
00422 extern char *praddr(struct player *);
00423 extern void player_main(struct player *);
00424
00425
00426 extern int recvclient(char *, int);
00427
00428
00429 extern void stop_service(void);
00430
00431
00432
00433
00434
00435
00436 extern int confirm(char *);
00437 extern int askyn(char *);
00438
00439 extern void bsanct(void);
00440
00441 extern void caploss(struct sctstr *, natid, char *);
00442
00443 extern int chkmoney(long, long, char *);
00444 extern int check_cost(int, int, long, int *, char *);
00445
00446 extern int cnumb(char *);
00447
00448 extern void set_coastal(struct sctstr *, int, int);
00449
00450 extern int military_control(struct sctstr *);
00451
00452 extern int detonate(struct nukstr *, coord, coord, int);
00453
00454 extern int disloan(int, struct lonstr *);
00455
00456 extern int distrea(int, struct trtstr *);
00457
00458 extern void ef_init_srv(void);
00459 extern void ef_fin_srv(void);
00460
00461 extern int sd(natid, natid, coord, coord, int, int, int);
00462 extern int dd(natid, natid, coord, coord, int, int);
00463 extern int shipdef(natid, natid, coord, coord);
00464
00465 extern int emp_getbit(int, int, unsigned char *);
00466 extern void emp_setbit(int, int, unsigned char *);
00467 extern void bitinit2(struct nstr_sect *, unsigned char *, int);
00468
00469 extern int getele(char *, char *);
00470
00471 extern char *prland(struct lndstr *);
00472 extern int lnd_postread(int, void *);
00473 extern int lnd_prewrite(int, void *);
00474 extern void lnd_init(int, void *);
00475
00476 extern double seagun(int, int);
00477 extern double landgun(int, int);
00478 extern double landunitgun(int, int, int, int, int);
00479 extern double effrange(int, double);
00480 extern double torprange(struct shpstr *);
00481 extern double fortrange(struct sctstr *);
00482 extern int roundrange(double);
00483
00484 extern int shipsatxy(coord, coord, int, int);
00485 extern int carriersatxy(coord, coord, natid);
00486 extern int unitsatxy(coord, coord, int, int);
00487 extern int planesatxy(coord, coord, int, int, struct emp_qelem *);
00488 extern int asw_shipsatxy(coord, coord, int, int, struct plnstr *,
00489 struct shiplist **);
00490 extern int num_shipsatxy(coord, coord, int, int);
00491 extern int islist(char *);
00492
00493 extern char *mission_name(short);
00494 extern int collateral_damage(coord, coord, int, struct emp_qelem *);
00495 extern int mission_pln_equip(struct plist *, struct ichrstr *, int, char);
00496 extern int ground_interdict(coord, coord, natid, char *);
00497 extern int unit_interdict(coord, coord, natid, char *, int, int);
00498 extern int off_support(coord, coord, natid, natid);
00499 extern int def_support(coord, coord, natid, natid);
00500 extern int oprange(struct empobj *, int *);
00501 extern int cando(int, int);
00502 extern void show_mission(int, struct nstr_item *);
00503 extern int air_defense(coord, coord, natid, struct emp_qelem *,
00504 struct emp_qelem *);
00505
00506 extern int check_lmines(coord, coord, double);
00507 extern int move_ground(struct sctstr *, struct sctstr *,
00508 double, char *,
00509 int (*)(coord, coord, char *),
00510 int, int *);
00511 extern int fly_map(coord, coord);
00512
00513 extern int msl_intercept(coord, coord, natid, int, int, int, int);
00514 extern int msl_equip(struct plnstr *);
00515 extern int msl_hit(struct plnstr *, int, int, int, int, char *,
00516 coord, coord, int);
00517 extern void msl_sel(struct emp_qelem *, coord, coord, natid, int,
00518 int, int);
00519 extern int msl_launch_mindam(struct emp_qelem *, coord, coord, int,
00520 int, int, char *, int, int);
00521
00522 extern int comtch(char *, struct cmndstr *, int);
00523
00524 extern struct natstr *natargp(char *, char *);
00525 extern int natarg(char *, char *);
00526
00527 extern int neigh(coord, coord, natid);
00528
00529 extern void delete_old_news(void);
00530 extern void init_nreport(void);
00531 extern void nreport(natid, int, natid, int);
00532
00533 extern char *prnuke(struct nukstr *);
00534 extern int nuk_postread(int, void *);
00535 extern int nuk_prewrite(int, void *);
00536 extern void nuk_init(int, void *);
00537 extern int nuk_on_plane(struct nukstr *, int);
00538
00539 extern int nxtitem(struct nstr_item *, void *);
00540
00541 extern int nxtsct(struct nstr_sect *, struct sctstr *);
00542
00543 extern char *prplane(struct plnstr *);
00544 extern int pln_postread(int, void *);
00545 extern int pln_prewrite(int, void *);
00546 extern void pln_init(int, void *);
00547
00548 extern void count_planes(struct shpstr *);
00549 extern struct sctstr *get_assembly_point(char *, struct sctstr *, char *);
00550 extern int pln_onewaymission(struct sctstr *, int *, int *);
00551 extern int pln_oneway_to_carrier_ok(struct emp_qelem *,
00552 struct emp_qelem *, int);
00553 extern void pln_newlanding(struct emp_qelem *, coord, coord, int);
00554 extern int could_be_on_ship(struct plnstr *, struct shpstr *);
00555 extern int put_plane_on_ship(struct plnstr *, struct shpstr *);
00556 extern void pln_dropoff(struct emp_qelem *, struct ichrstr *,
00557 coord, coord, void *, int);
00558 extern void pln_mine(struct emp_qelem *list, struct sctstr *sectp);
00559 extern int pln_capable(struct plnstr *, int, int);
00560 extern int pln_airbase_ok(struct plnstr *, int, int);
00561 extern int carrier_planes(struct shpstr *, int);
00562 extern void pln_sel(struct nstr_item *, struct emp_qelem *,
00563 struct sctstr *, int, int, int, int);
00564 extern int pln_arm(struct emp_qelem *, int, char, struct ichrstr *,
00565 int, int);
00566 extern int pln_mobcost(int, struct plnstr *, int);
00567 extern void pln_put(struct emp_qelem *);
00568 extern void pln_removedupes(struct emp_qelem *, struct emp_qelem *);
00569 extern void take_plane_off_ship(struct plnstr *, struct shpstr *);
00570 extern void take_plane_off_land(struct plnstr *, struct lndstr *);
00571 extern void plane_sweep(struct emp_qelem *, coord, coord);
00572 extern void count_land_planes(struct lndstr *);
00573 extern int count_sect_planes(struct sctstr *);
00574 extern int put_plane_on_land(struct plnstr *, struct lndstr *);
00575 extern int pln_hitchance(struct plnstr *, int, int);
00576 extern int pln_damage(struct plnstr *, coord, coord, char, int *, int);
00577 extern int pln_identchance(struct plnstr *, int, int);
00578 extern void pln_set_tech(struct plnstr *, int);
00579
00580 extern void pr(char *, ...) ATTRIBUTE((format (printf, 1, 2)));
00581 extern void uprnf(char *buf);
00582 extern void pr_id(struct player *, int, char *, ...)
00583 ATTRIBUTE((format (printf, 3, 4)));
00584 extern void pr_flash(struct player *, char *, ...)
00585 ATTRIBUTE((format (printf, 2, 3)));
00586 extern void pr_inform(struct player *, char *, ...)
00587 ATTRIBUTE((format (printf, 2, 3)));
00588 extern void pr_wall(char *, ...)
00589 ATTRIBUTE((format (printf, 1, 2)));
00590 extern void prredir(char *redir);
00591 extern void prexec(char *file);
00592 extern void prprompt(int min, int btu);
00593 extern int prmptrd(char *prompt, char *str, int size);
00594 extern int uprmptrd(char *prompt, char *str, int size);
00595 extern void prdate(void);
00596 extern void prxy(char *format, coord x, coord y, natid country);
00597 extern void PR(int, char *, ...) ATTRIBUTE((format (printf, 2, 3)));
00598 extern void PRdate(natid cn);
00599 extern void pr_beep(void);
00600 extern void mpr(int, char *, ...) ATTRIBUTE((format (printf, 2, 3)));
00601 extern size_t copy_ascii_no_funny(char *, char *);
00602 extern size_t copy_utf8_no_funny(char *, char *);
00603 extern size_t copy_utf8_to_ascii_no_funny(char *, char *);
00604 extern int ufindpfx(char *, int);
00605
00606
00607 extern int deltx(struct range *, coord);
00608 extern int delty(struct range *, coord);
00609 extern void radmap(int, int, int, int, double);
00610 extern void radmapnopr(int, int, int, int, double);
00611 extern void radmapupd(int, int, int, int, int, double);
00612
00613 extern int setrel(natid, natid, int);
00614 extern int setcont(natid, natid, int);
00615 extern int setrej(natid, natid, int, int);
00616
00617 extern void retreat_ship(struct shpstr *, char);
00618 extern void retreat_land(struct lndstr *, char);
00619 extern int check_retreat_and_do_shipdamage(struct shpstr *, int);
00620 extern int check_retreat_and_do_landdamage(struct lndstr *, int);
00621
00622 extern ns_seltype sarg_type(char *);
00623 extern int sarg_xy(char *, coord *, coord *);
00624 extern int sarg_area(char *, struct range *);
00625 extern int sarg_range(char *, coord *, coord *, int *);
00626 extern int sarg_list(char *, int *, int);
00627
00628 extern void satdisp_sect(struct sctstr *, int);
00629 extern void satdisp_units(coord, coord);
00630 extern void satmap(int, int, int, int, int, int);
00631 extern void sathead(void);
00632
00633 extern int sct_postread(int, void *);
00634 extern int sct_prewrite(int, void *);
00635 extern void item_prewrite(short *);
00636 extern int issector(char *);
00637
00638 extern char *prship(struct shpstr *);
00639 extern int shp_postread(int, void *);
00640 extern int shp_prewrite(int, void *);
00641 extern void shp_init(int, void *);
00642
00643 extern void show_bridge(int);
00644 extern void show_tower(int);
00645 extern void show_nuke_stats(int);
00646 extern void show_nuke_capab(int);
00647 extern void show_nuke_build(int);
00648 extern void show_ship_build(int);
00649 extern void show_ship_stats(int);
00650 extern void show_ship_capab(int);
00651 extern void show_plane_stats(int);
00652 extern void show_plane_capab(int);
00653 extern void show_plane_build(int);
00654 extern void show_land_build(int);
00655 extern void show_land_capab(int);
00656 extern void show_land_stats(int);
00657 extern void show_sect_build(int);
00658 extern void show_sect_stats(int);
00659 extern void show_sect_capab(int);
00660 extern void show_item(int);
00661 extern void show_news(int);
00662 extern void show_updates(int);
00663
00664 extern void shp_sel(struct nstr_item *, struct emp_qelem *);
00665 extern void shp_nav(struct emp_qelem *, double *, double *, int *, natid);
00666 extern int shp_sweep(struct emp_qelem *, int, int, natid);
00667 extern int shp_check_nav(struct sctstr *, struct shpstr *);
00668 extern int sect_has_dock(struct sctstr *);
00669 extern int shp_hardtarget(struct shpstr *);
00670 extern int shp_nav_one_sector(struct emp_qelem *, int, natid, int);
00671 extern int shp_missile_defense(coord, coord, natid, int);
00672 extern void shp_missdef(struct shpstr *, natid);
00673 extern double shp_mobcost(struct shpstr *);
00674 extern void shp_set_tech(struct shpstr *, int);
00675
00676 extern int snxtitem(struct nstr_item *, int, char *);
00677 extern void snxtitem_area(struct nstr_item *, int,
00678 struct range *);
00679 extern void snxtitem_dist(struct nstr_item *, int, int, int, int);
00680 extern void snxtitem_xy(struct nstr_item *, int, coord, coord);
00681 extern void snxtitem_all(struct nstr_item *, int);
00682 extern void snxtitem_group(struct nstr_item *, int, char);
00683 extern void snxtitem_rewind(struct nstr_item *);
00684 extern int snxtitem_list(struct nstr_item *, int, int *, int);
00685
00686 extern int snxtsct(struct nstr_sect *, char *);
00687 extern void snxtsct_area(struct nstr_sect *, struct range *);
00688 extern void xydist_range(coord, coord, int, struct range *);
00689 extern void xysize_range(struct range *);
00690 extern void snxtsct_all(struct nstr_sect *);
00691 extern void snxtsct_rewind(struct nstr_sect *);
00692 extern void snxtsct_dist(struct nstr_sect *, coord, coord, int);
00693
00694 extern void resupply_all(struct lndstr *);
00695 extern void resupply_commod(struct lndstr *, i_type);
00696 extern int supply_commod(int, int, int, i_type, int);
00697 extern int try_supply_commod(int, int, int, i_type, int);
00698 extern int has_supply(struct lndstr *);
00699 extern int use_supply(struct lndstr *);
00700
00701 extern void takeover_land(struct lndstr *, natid, int);
00702 extern void takeover(struct sctstr *, natid);
00703 extern void takeover_ship(struct shpstr *, natid, int);
00704 extern void takeover_plane(struct plnstr *, natid);
00705
00706
00707 extern int trechk(natid, natid, int);
00708
00709
00710
00711 extern void clear_telegram_is_new(natid);
00712 extern int typed_wu(natid, natid, char *, int);
00713 extern int wu(natid, natid, char *, ...) ATTRIBUTE((format (printf, 3, 4)));
00714
00715
00716
00717
00718
00719 extern void age_levels(int);
00720
00721 extern void delete_old_announcements(void);
00722
00723
00724
00725 extern void dodeliver(struct sctstr *);
00726
00727 extern int dodistribute(struct sctstr *, int, char *, double, double);
00728
00729 extern void finish_sects(int);
00730
00731 extern int new_work(struct sctstr *, int);
00732 extern int do_feed(struct sctstr *, struct natstr *, short *, int *, int);
00733 extern int feed_people(short *, int);
00734 extern double food_needed(short *, int);
00735 extern int famine_victims(short *, int);
00736
00737 extern int prod_land(int, int, struct bp *, int);
00738
00739
00740
00741
00742
00743 extern void mob_sect(void);
00744 extern void mob_ship(void);
00745 extern void mob_land(void);
00746 extern void mob_plane(void);
00747 extern void sct_do_upd_mob(struct sctstr *sp);
00748 extern void shp_do_upd_mob(struct shpstr *sp);
00749 extern void lnd_do_upd_mob(struct lndstr *lp);
00750 extern void pln_do_upd_mob(struct plnstr *pp);
00751
00752 extern void move_sat(struct plnstr *);
00753
00754 extern double logx(double, double);
00755 extern void prod_nat(int);
00756
00757 extern int nav_ship(struct shpstr *);
00758
00759 extern int load_it(struct shpstr *, struct sctstr *,
00760 int);
00761 extern void unload_it(struct shpstr *);
00762 extern void auto_fuel_ship(struct shpstr *);
00763
00764 extern void *nxtitemp(struct nstr_item *);
00765
00766 extern void do_plague(struct sctstr *, struct natstr *, int);
00767 extern int plague_people(struct natstr *, short *, int *, int *, int);
00768
00769 extern int prod_plane(int, int, struct bp *, int);
00770
00771 extern void populace(struct natstr *, struct sctstr *, int);
00772 extern int total_work(int, int, int, int, int, int);
00773
00774 extern void tax(struct sctstr *, struct natstr *, int, long *, int *,
00775 int *, int *);
00776 extern int upd_slmilcosts(natid, int);
00777 extern void prepare_sects(int, struct bp *);
00778 extern int bank_income(struct sctstr *, int);
00779
00780 extern int produce(struct natstr *, struct sctstr *, short *, int, int,
00781 int, int *, int *);
00782 extern double prod_eff(int, float);
00783
00784 extern int update_removewants(void);
00785
00786 extern void revolt(struct sctstr *);
00787 extern void guerrilla(struct sctstr *);
00788
00789 extern void sail_ship(natid);
00790
00791 extern void do_fallout(struct sctstr *, int);
00792 extern void spread_fallout(struct sctstr *, int);
00793 extern void decay_fallout(struct sctstr *, int);
00794 extern void produce_sect(int, int, struct bp *, long [][2]);
00795
00796 extern int prod_ship(int, int, struct bp *, int);
00797
00798
00799
00800
00801
00802
00803
00804 #endif