2 * Empire - A multi-player, client/server Internet based war game.
3 * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
4 * Ken Stevens, Steve McClure
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23 * related information and legal notices. It is expected that any future
24 * projects/authors will amend these files as needed.
28 * prototypes.h: Prototypes for server functions
30 * Known contributors to this file:
32 * Steve McClure, 1998,2000
35 #ifndef _PROTOTYPES_H_
36 #define _PROTOTYPES_H_
39 #include "empthread.h"
48 #include "commodity.h"
50 /* src/server/main.c */
51 extern emp_sig_t panic(int sig);
52 extern emp_sig_t shutdwn(int sig);
54 /*****************************************************************************
56 *****************************************************************************/
58 /* src/lib/empthread/lwp.c */
60 extern int empth_init (char **ctx, int flags);
61 extern empth_t *empth_create (int prio, void (*entry)(), int size,
62 int flags, char *name, char *desc, void *ud);
64 extern void empth_setctx(void *ctx);
66 extern empth_t *empth_self(void);
67 extern void empth_exit (void);
68 extern void empth_yield (void);
69 extern void empth_terminate(empth_t *a);
70 extern void empth_select(int fd, int flags);
71 extern void empth_wakeup(empth_t *a);
72 extern void empth_sleep(long int until);
73 extern empth_sem_t *empth_sem_create(char *name, int cnt);
74 extern void empth_sem_signal(empth_sem_t *sm);
75 extern void empth_sem_wait (empth_sem_t *sm);
76 extern emp_sig_t empth_alarm(int sig);
77 #endif /* _EMPTH_LWP */
79 /* src/lib/empthread/pthread.c */
81 extern void *empth_start(void *ctx);
82 extern int empth_init (char **ctx_ptr, int flags);
83 extern empth_t *empth_create (int prio, void (*entry)(),
85 char *name, char *desc, void *ud);
86 extern empth_t *empth_self(void);
87 extern void empth_exit (void);
88 extern void empth_yield (void);
89 extern void empth_terminate(empth_t *a);
90 extern void empth_select(int fd, int flags);
91 extern emp_sig_t empth_alarm(int sig);
92 extern void empth_wakeup(empth_t *a);
93 extern void empth_sleep(long until);
94 extern empth_sem_t *empth_sem_create(char *name, int cnt);
95 extern void empth_sem_signal(empth_sem_t *sm);
96 extern void empth_sem_wait (empth_sem_t *sm);
97 #endif /* _EMPTH_POSIX */
100 * src/lib/commands/ *.c
102 extern int acce(void );
103 extern int add(void );
104 extern int anti(void );
105 extern int arm(void );
106 extern int army(void );
107 extern int assa(void );
108 extern int atta(void );
109 extern int bdes(void );
110 extern int best(void );
111 extern int boar(void );
112 extern int pinflak_planedamage(struct plnstr * , struct plchrstr * , natid , int );
113 extern int bomb(void );
114 extern int brea(void );
115 extern s_char * dotsprintf(s_char * , s_char * , int );
116 extern int goodsect(char );
117 extern void prexpense(long , int * , s_char , int );
118 extern int budg(void );
119 extern int buil(void );
120 extern int buy(void );
121 extern int check_market(void );
122 extern int capi(void );
123 extern int carg(void );
124 extern int lcarg(void );
125 extern int cede_sect(struct nstr_sect * , natid );
126 extern void grab_sect(register struct sctstr * , natid );
127 extern int cede_ship(struct nstr_item * , natid );
128 extern void grab_ship(register struct shpstr * , natid );
129 extern int cede(void );
130 extern int cens(void );
131 extern void set_coastal(struct sctstr * );
132 extern int chan(void );
133 extern int coas(void );
134 extern int coll(void );
135 extern int comm(void );
136 extern int cons(void );
137 extern long do_conv(struct nstr_sect , int , int );
138 extern int conv(void );
139 extern int coun(void );
140 extern int cuto(void );
141 extern int decl(void );
142 extern int deli(void );
143 extern long do_demo(struct natstr * , struct nstr_sect , int , s_char * , int );
144 extern int demo(void );
145 extern long do_desi(struct natstr * , s_char * , s_char * , long , int );
146 extern int desi(void );
147 extern int disa(void );
148 extern int diss(void );
149 extern int dist(void );
150 extern int drop(void );
151 extern int dump(void );
152 extern int echo(void );
153 extern int doland(s_char , int , struct sctstr * );
154 extern int docountry(s_char , int , s_char * , float , natid , struct natstr * );
155 extern int doship(s_char , int , s_char * , struct shpstr * );
156 extern int dounit(s_char , int , s_char * , struct lndstr * );
157 extern int doplane(s_char , int , s_char * , struct plnstr * );
158 extern int edit(void );
159 extern int getin(s_char * * , s_char * * , int * , s_char *);
160 extern int errcheck(int , int , int );
161 extern int enab(void );
162 extern int enli(void );
163 extern int explore(void );
164 extern int fina(void );
165 extern int flash(void );
166 extern int sendmessage(struct natstr * , struct natstr * , char * , int );
167 extern int wall(void );
168 extern int flee(void );
169 extern int fly(void );
170 extern int foll(void );
171 extern int force(void );
172 extern int fort(void );
173 extern int is_engineer(int , int );
174 extern int fuel(void );
175 extern int give(void );
176 extern int grin(void );
177 extern int hard(void );
178 extern int head(void );
179 extern int hidd(void );
180 extern int improve(void );
181 extern int info(void );
182 extern int apro(void );
183 extern int land(void );
184 extern int laun(void );
185 extern int ldump(void );
186 extern int ledg(void );
187 extern int leve(void );
188 extern void gift(int , int , s_char * , int , s_char * );
189 extern int load(void );
190 extern int lload(void );
191 extern int look(void );
192 extern int llook(void );
193 extern int lost(void );
194 extern int lstats(void );
195 extern int ltend(void );
196 extern int map(void );
197 extern int march(void );
198 extern int mark(void );
199 extern int display_mark(s_char * );
200 extern int quiet_bigdef(int , struct emp_qelem * , natid , natid , coord , coord , int * );
201 extern int multifire(void );
202 extern void use_ammo(struct emp_qelem * );
203 extern void do_defdam(struct emp_qelem * , double );
204 extern void add_to_fired_queue(struct emp_qelem * , struct emp_qelem * );
205 extern int mine(void );
206 extern int landmine(void );
207 extern int mission(void );
208 extern int mobq(void );
209 extern int mobupdate(void);
210 extern int morale(void );
211 extern int move(void );
212 extern int want_to_abandon(struct sctstr * , int , int, struct lndstr * );
213 extern int would_abandon(struct sctstr * , int , int, struct lndstr * );
214 extern int mult(void );
215 extern int name(void );
216 extern int nati(void );
217 extern int navi(void );
218 extern int nav_map(int , int , int );
219 extern int ndump(void );
220 extern int new(void );
221 extern int deity_build_land(int , coord , coord , natid , int );
222 extern int newe(void );
223 extern int news(void );
224 extern int nuke(void );
225 extern int offe(void );
226 extern int offs(void );
227 extern int orde(void );
228 extern int qorde(void );
229 extern int sorde(void );
230 extern int orig(void );
231 extern int para(void );
232 extern int path(void );
233 extern int pdump(void );
234 extern int plan(void );
235 extern int play(void );
236 extern int powe(void );
237 extern int set_target(s_char * , int * );
238 extern int count_pop(register int );
239 extern int prod(void );
240 extern int pstat(void );
241 extern int rada(void );
242 extern int range(void );
243 extern int lrange(void );
244 extern int rea(void );
245 extern int real(void );
246 extern int reco(void );
247 extern int reje(void );
248 extern int rela(void );
249 extern int repa(void );
250 extern int repo(void );
251 extern int rese(void );
252 extern int reso(void );
253 extern int retr(void );
254 extern int lretr(void );
255 extern int rout(void );
256 extern int sail(void );
257 extern int sate(void );
258 extern int scra(void );
259 extern int scuttle_tradeship(struct shpstr *, int);
260 extern int scut(void );
261 extern void scuttle_ship(struct shpstr * );
262 extern void scuttle_land(struct lndstr * );
263 extern int sdump(void );
264 extern int sct(void );
265 extern int sell(void );
266 extern int set(void );
267 extern int setres(void );
268 extern int setsector(void );
269 extern void resnoise(struct sctstr *sptr, int public_amt, s_char *name, int old, int new);
270 extern int shar(void );
271 extern int shark(void );
272 extern int shi(void );
273 extern int shoo(void );
274 extern int show(void );
275 extern int shut(void );
276 extern int sinfra(void );
277 extern int skyw(void );
278 extern int line_of_sight(s_char **rad, int ax, int ay, int bx, int by);
279 extern int sona(void );
280 extern int blankrow(s_char * );
281 extern void plane_sona(struct emp_qelem * , int , int , struct shiplook * );
282 extern int spy(void );
283 extern int num_units(int , int );
284 extern void prunits(int , int );
285 extern void prplanes(int , int );
286 extern int sstat(void );
287 extern int start(void );
288 extern int stop(void );
289 extern int stre(void );
290 extern int starve(void );
291 extern int supp(void );
292 extern int surv(void );
293 extern int swaps(void );
294 extern void print_res(struct sctstr * );
295 extern int tele(void );
296 extern int tend(void );
297 extern int tend_nxtitem(struct nstr_item * , caddr_t );
298 extern int terr(void );
299 extern int thre(void );
300 extern int togg(void );
301 extern void anti_torp(int , int , int );
302 extern void fire_dchrg(struct shpstr * , struct shpstr * , int , int );
303 extern s_char * prsub(struct shpstr * );
304 extern int torp(void );
305 extern int canshoot(struct shpstr * , struct shpstr * );
306 extern int cantorp(struct shpstr * , struct shpstr * );
307 extern int fire_torp(struct shpstr * , struct shpstr * , int , int );
308 extern int candchrg(struct shpstr * , struct shpstr * );
309 extern int trad(void );
310 extern int check_trade(void );
311 extern int ontradingblock(int , int * );
312 extern void trdswitchown(int , int * , int );
313 extern int tran(void );
314 extern int trea(void );
315 extern int turn(void );
316 extern int upda(void );
317 extern int upgr(void );
318 extern int supgr(void );
319 extern int pupgr(void );
320 extern int lupgr(void );
321 extern int vers(void );
322 extern int wai(void );
323 extern int wing(void );
324 extern int wipe(void );
325 extern int work(void );
326 extern int buildeff(struct sctstr * , int , double * );
327 extern int zdon(void );
330 * src/lib/common/ *.c
333 extern s_char * bestownedpath(s_char * , s_char * , int , int , int ,
334 int , s_char * , int );
336 extern void bridgefall(struct sctstr * , struct emp_qelem *);
337 extern void knockdown(struct sctstr *, struct emp_qelem *);
339 extern void landdamage(struct lndstr * , int );
340 extern void ship_damage(struct shpstr * , int );
341 extern int damage(register int , int );
342 extern void shipdamage(struct shpstr * , int );
343 extern void land_damage(struct lndstr * , int );
344 extern void planedamage(struct plnstr * , int );
345 extern int nukedamage(struct nchrstr * , int , int );
346 extern int effdamage(register int , int );
347 extern int commdamage(register int , int , int );
349 extern int check_sect_ok(struct sctstr *);
350 extern int check_ship_ok(struct shpstr *);
351 extern int check_land_ok(struct lndstr *);
352 extern int check_nuke_ok(struct nukstr *);
353 extern int check_plane_ok(struct plnstr *);
354 extern int check_comm_ok(struct comstr *);
355 extern int check_loan_ok(struct lonstr *);
357 extern int fsize(int );
358 extern int blksize(int );
359 extern time_t fdate(int );
360 extern void filetruncate(s_char * );
362 extern int getvar(int , s_char * , int );
363 extern int getvec(int , int * , s_char * , int );
364 extern int putvar(int , int , s_char * , int );
365 extern int putvec(int , int * , s_char * , int );
367 extern double hap_fact(struct natstr * , struct natstr * );
369 extern int gamehours(time_t , int * );
371 extern int has_units(coord , coord , natid, struct lndstr * );
372 extern int has_units_with_mob(coord , coord , natid );
373 extern int adj_units(coord , coord , natid );
375 extern void loginit(void );
376 extern void logerror(s_char *, ...);
377 extern void filelogerror(s_char *, ...);
379 extern int draw_map(int , s_char , int , struct nstr_sect * , int );
380 extern int bmnxtsct(register struct nstr_sect * );
381 extern void bitinit2(struct nstr_sect * , u_char * , int );
382 extern int unit_map(int , int , struct nstr_sect * , s_char * );
383 extern int bmaps_intersect(natid , natid );
384 extern int share_bmap(natid , natid , struct nstr_sect * , s_char ,
387 extern double sector_mcost(struct sctstr * , int );
389 extern s_char * decodep(long , void * );
390 extern int decode(natid , long , void * , int );
391 extern int nstr_exec(struct nscstr * , register int , void * , int );
393 extern s_char * bp_init(void );
394 extern int best_path(struct sctstr * , struct sctstr * , s_char * , int);
395 extern void bp_enable_cachepath();
396 extern void bp_disable_cachepath();
397 extern void bp_clear_cachepath();
398 extern s_char * BestDistPath(s_char * , struct sctstr * , struct sctstr * ,
400 extern s_char * BestLandPath(s_char * , struct sctstr * , struct sctstr * ,
402 extern s_char * BestShipPath(s_char *, int, int, int, int, int);
403 extern s_char * BestAirPath(s_char *, int, int, int, int);
404 extern double pathcost(struct sctstr * , s_char * , int );
406 extern int max_pop(float , struct sctstr * );
408 extern int sect_damage(struct sctstr * , int, struct emp_qelem * );
409 extern int sectdamage(struct sctstr * , int, struct emp_qelem * );
411 extern void snxtitem_area(register struct nstr_item * , int, struct range *);
412 extern void snxtitem_dist(register struct nstr_item * , int , int, int, int);
413 extern void snxtitem_xy(register struct nstr_item * , int , coord , coord );
414 extern void snxtitem_all(register struct nstr_item * , int );
415 extern void snxtitem_group(register struct nstr_item * , int , s_char );
416 extern void snxtitem_rewind(struct nstr_item * );
417 extern int snxtitem_list(register struct nstr_item * , int , int * , int );
418 /* snxtsect_subs.c */
419 extern void snxtsct_area(register struct nstr_sect * , struct range * );
420 extern void xydist_range(coord , coord , register int , struct range * );
421 extern void xysize_range(register struct range * );
422 extern void snxtsct_all(struct nstr_sect * );
423 extern void snxtsct_rewind(struct nstr_sect * );
424 extern void snxtsct_dist(register struct nstr_sect * , coord , coord , int);
426 extern int stmtch(register s_char * , s_char * , int , int );
427 extern int mineq(register s_char * , register s_char * );
429 extern int typematch(s_char * , int );
431 extern int vl_find(register int , u_char * , u_short * , int );
432 extern int vl_set(register int , u_int , u_char * , u_short * ,
434 extern int vl_damage(register int , register u_char * , register u_short *,
436 extern int vl_getvec(register u_char * , register u_short * , register int,
437 register int , register int * );
438 extern int vl_setvec(register u_char * , register u_short * , u_char * ,
439 int , register int , register int * );
441 extern int demand_update_want(int * , int * , int );
442 extern int update_maxmissed(void );
443 extern int demandupdatecheck(void );
444 extern int update_between(void );
445 extern int updatetime(time_t * );
446 extern void demand_update_info(int * , int * , int * , int * );
447 extern void next_update_time(time_t * , time_t * , time_t * );
448 extern void next_update_check_time(time_t * , time_t * , time_t * );
449 extern int updates_disabled(void );
455 extern int emp_config (char *file);
456 extern void print_config (FILE *fp);
458 extern int atoip(s_char * * );
459 extern int atopi(s_char * );
460 extern int roll(int );
461 extern int roundavg(double );
462 extern int chance(double );
463 extern s_char * copy(register s_char * , register s_char * );
464 extern void disassoc(void );
465 extern int getfdtablesize(void );
466 extern void setfdtablesize(int , int );
467 extern s_char * getstarg(s_char * , s_char * , s_char * );
468 extern s_char * getstring(s_char * , s_char * );
469 extern int ifloor(double );
470 extern int iceil(double );
472 extern s_char * inet_ntoa(struct in_addr );
474 extern int file_lock(int );
475 extern int file_unlock(int );
476 extern int deltax(int , int );
477 extern int deltay(int , int );
478 extern int mapdist(int , int , int , int );
479 extern int mapdsq(int , int , int , int );
480 extern double dmin(double , double );
482 extern int max(int , int );
483 extern int min(int , int );
485 extern double dmax(double , double );
486 extern s_char * numstr(s_char * , int );
487 extern s_char * effadv(int );
488 extern int onearg(s_char * , s_char * );
489 extern int parse(register s_char * , s_char * * , s_char * * , s_char * ,
491 extern s_char * esplur(int );
492 extern s_char * splur(int );
493 extern s_char * iesplur(int );
494 extern s_char * plur(int , s_char * , s_char * );
495 extern int ldround(double , int );
496 extern int roundintby(int , int );
497 extern int same(register s_char * , register s_char * );
498 extern int scthash(register int , register int , int );
499 extern void blocksig(void );
500 extern void unblocksig(void );
501 extern const s_char * signame(int );
503 extern char *strdup(char *x);
505 extern int strscan(s_char *target, s_char *string);
509 * src/lib/global/ *.c
511 extern void global_init(void );
512 extern void init_pchr(void );
513 extern void init_mchr(void );
514 extern void init_plchr(void );
519 * src/lib/player/ *.c
522 extern void player_init(void );
523 extern struct player * player_new(int , struct sockaddr_in * );
524 extern struct player * player_delete(struct player * );
525 extern struct player * player_next(struct player * );
526 extern struct player * player_prev(struct player * );
527 extern struct player * getplayer(natid );
528 extern struct player * player_find_other(struct player * , register natid );
529 extern void player_wakeup_all(natid );
530 extern void player_wakeup(struct player * );
531 extern void player_accept(void * );
533 extern int dispatch(s_char * , s_char * );
535 extern int getcommand(s_char * );
536 extern void init_player_commands(void );
537 extern void log_last_commands(void );
538 extern int explain(void );
539 extern int gamedown(void );
540 extern void daychange(time_t );
541 extern void getconstants(void );
542 extern int getminleft(time_t , int * , int * );
545 extern int init_nats(void );
546 extern int nat_cap(int );
548 extern void player_login(void * );
549 extern int client_cmd(struct player * , int , char * * );
550 extern int user_cmd(struct player * , int , char * * );
551 extern int sanc_cmd(struct player * , int , char * * );
552 extern int coun_cmd(struct player * , int , char * * );
553 extern int pass_cmd(struct player * , int , char * * );
554 extern int play_cmd(struct player * , int , char * * );
555 extern int kill_cmd(struct player * , int , char * * );
556 extern int list_cmd(struct player * , int , char * * );
557 extern int quit_cmd(struct player * , int , char * * );
559 extern int natbyname(s_char * , natid * );
560 extern int natpass(int , s_char * );
562 extern struct player *player; /* current player's context */
563 extern s_char * praddr(struct player * );
564 extern void player_main(struct player * );
565 extern int show_motd(void );
566 extern int match_user(char * , struct player * );
567 extern int status(void );
568 extern int command(void );
569 extern int execute(void );
570 extern int quit(void );
572 extern int recvclient(s_char * , int );
578 extern int confirm(s_char * );
579 extern int askyn(s_char * );
581 extern void bsanct(void );
583 extern void caploss(struct sctstr * , natid , s_char * );
585 extern int chkmoney(long , long , s_char * );
586 extern int check_cost(int , int , long , int * , s_char * );
588 extern int cnumb(s_char * );
590 extern int military_control(struct sctstr * );
592 extern int detonate(struct plnstr * , int , int );
594 extern int disloan(int , register struct lonstr * );
596 extern int distrea(int , register struct trtstr * );
598 extern void ef_init(void );
600 extern int sd(natid , natid , coord , coord , int , int , int );
601 extern int dd(natid , natid , coord , coord , int , int );
602 extern int sb(natid , natid , struct sctstr * , coord , coord , int, int);
603 extern int shipdef(natid , natid , coord , coord );
605 extern int emp_getbit(int , int , u_char * );
606 extern void emp_setbit(int , int , u_char * );
607 extern void emp_setbitmap(int ,int, u_char *, int *);
608 extern void emp_bitinit(struct nstr_sect * , u_char * );
610 extern int getele(s_char * , s_char * );
612 extern s_char * prland(struct lndstr * );
613 extern int lnd_postread(int, s_char * );
614 extern int lnd_prewrite(int , s_char * );
615 extern void lnd_init(int , s_char * );
617 extern double seagun(int , int );
618 extern double landgun(int , int );
619 extern double landunitgun(int, int, int, int, int );
620 extern int roundrange(double );
622 extern int shipsatxy(coord , coord , int , int );
623 extern int carriersatxy(coord , coord , int , int , natid );
624 extern int unitsatxy(coord , coord , int , int );
625 extern int planesatxy(coord , coord , int , int, struct emp_qelem * );
626 extern int asw_shipsatxy(coord , coord , int , int , struct plnstr * ,
628 extern int num_shipsatxy(coord , coord , int , int );
629 extern int islist(s_char * );
630 /* src/lib/subs/mission.c */
631 extern s_char * mission_name(short );
632 extern s_char * nameofitem(s_char * , struct genitem * , int );
633 extern int collateral_damage(coord , coord , int , struct emp_qelem *);
634 extern int dosupport(struct genlist * , coord , coord , natid , natid );
635 extern void build_mission_list(struct genlist * , coord, coord, int, natid );
636 extern void build_mission_list_type(struct genlist *, coord, coord, int, int,
638 extern int perform_mission(coord , coord , natid , struct emp_qelem * ,
639 int , s_char * , int );
640 extern void mission_pln_sel(struct emp_qelem * , int , int , int );
641 extern int mission_pln_arm(struct emp_qelem * , coord , coord , int ,
642 int , struct ichrstr * , int , int , int * );
643 extern int mission_pln_equip(struct plist * , struct ichrstr *, int, s_char);
644 extern int find_airport(struct emp_qelem * , coord , coord );
645 extern void add_airport(struct emp_qelem * , coord , coord );
646 extern void divide(struct emp_qelem * , struct emp_qelem * , coord , coord);
647 extern int air_damage(struct emp_qelem * , coord , coord , int , natid ,
649 extern int ground_interdict(coord , coord , natid , s_char * );
650 extern int unit_interdict(coord , coord , natid , s_char * , int , int );
651 extern int off_support(coord , coord , natid , natid );
652 extern int def_support(coord , coord , natid , natid );
653 extern int oprange(struct genitem * , int , int * );
654 extern void find_escorts(coord , coord , natid , struct emp_qelem * );
655 extern int cando(int , int );
656 extern s_char * mission_short_name(int );
657 extern void show_mission(int , struct nstr_item * );
658 extern int air_defense(coord , coord , natid , struct emp_qelem * ,
659 struct emp_qelem * );
661 extern int move_map(s_char * , coord , coord , s_char * );
662 extern int check_lmines(coord , coord , double );
663 extern int move_ground(s_char * , struct sctstr * , struct sctstr * ,
664 double , double , s_char * ,
665 int (* )(s_char *, coord , coord , s_char *) ,
667 extern int fly_map(coord , coord );
669 extern int msl_intercept(coord , coord , natid , int , int , int , int );
670 extern int msl_equip(struct plnstr * );
671 extern int msl_hit(struct plnstr * , int , int , int , int , s_char * ,
672 coord , coord , int );
673 extern void msl_sel(struct emp_qelem * , coord , coord , natid , int ,
675 extern int msl_launch_mindam(struct emp_qelem * , coord , coord , int ,
676 int , int , s_char * , int , int );
678 extern int intmatch(register int , register int * , int );
679 extern int comtch(register s_char * , struct cmndstr * , int , int );
681 extern int natarg(s_char * , s_char * );
683 extern int neigh(coord , coord , natid );
685 extern void nreport(natid , int , natid , int );
686 extern void filereport(int , int , int , int );
688 extern int nuk_postread(int, s_char * );
689 extern int nuk_prewrite(int , s_char * );
690 extern void nuk_init(int , s_char * );
691 extern void nuk_add(coord , coord , int , int );
692 extern void nuk_delete(struct nukstr * , int , int );
694 extern int nxtitem(struct nstr_item * , caddr_t );
696 extern int nxtsct(register struct nstr_sect * , struct sctstr * );
698 extern s_char * prplane(struct plnstr * );
699 extern int pln_postread(int, s_char * );
700 extern int pln_prewrite(int , s_char * );
701 extern void pln_init(int , s_char * );
703 extern void count_planes(struct shpstr * );
704 extern int pln_equip(struct plist * , struct ichrstr * , int , s_char );
705 extern int pln_onewaymission(struct sctstr * , int * , int * );
706 extern void pln_newlanding(struct emp_qelem * , coord , coord , int );
707 extern int can_be_on_ship(int , int );
708 extern int put_plane_on_ship(struct plnstr * , struct shpstr * );
709 extern void pln_dropoff(struct emp_qelem * , struct ichrstr * , coord ,
710 coord , s_char * , int );
711 extern void pln_sel(struct nstr_item * , struct emp_qelem * ,
712 struct sctstr * , int , int , int , int );
713 extern int pln_arm(struct emp_qelem * , int , int , struct ichrstr * ,
715 extern int pln_mobcost(int , struct plnstr * , int );
716 extern void pln_put(struct emp_qelem * );
717 extern void pln_removedupes(struct emp_qelem * , struct emp_qelem * );
718 extern int take_plane_off_ship(struct plnstr * , struct shpstr * );
719 extern int take_plane_off_land(struct plnstr * , struct lndstr * );
720 extern void plane_sweep(struct emp_qelem * , coord , coord );
721 extern void count_land_planes(struct lndstr * );
722 extern int count_sect_planes(struct sctstr * );
723 extern int put_plane_on_land(struct plnstr * , struct lndstr * );
724 extern int pln_hitchance(struct plnstr * , int , int );
725 extern int pln_damage(struct plnstr * , coord , coord , s_char , int *, int );
726 extern int pln_identchance(struct plnstr * , int , int );
728 extern void pr(s_char *, ...);
729 extern void prnf(s_char *buf);
730 extern void pr_id(struct player *, int, s_char *, ...);
731 extern void pr_flash(struct player *, s_char *, ...);
732 extern void pr_inform(struct player *, s_char *, ...);
733 extern void pr_wall(s_char *, ...);
734 extern void pr_player(struct player *pl, int id, s_char *buf);
735 extern void pr_hilite(s_char *buf);
736 extern void outid(struct player *pl, int n);
737 extern void prredir(s_char *redir);
738 extern void prexec(s_char *file);
739 extern void prprompt(int min, int btu);
740 extern void showvers(int vers);
741 extern int prmptrd(s_char *prompt, s_char *str, int size);
742 extern void prdate(void);
743 extern void prxy(s_char *format, coord x, coord y, natid country);
744 extern void PR(int, s_char *, ...);
745 extern void PRdate(natid cn);
746 extern void pr_beep(void);
747 extern void mpr(int, s_char *, ...);
750 extern void radmap2(int, int , int , int , int , double , int );
751 extern int deltx(struct range * , coord );
752 /* Prototype include a typedef name.
753 It should be moved after the typedef declaration */
754 extern int delty(struct range * , coord );
755 /* Prototype include a typedef name.
756 It should be moved after the typedef declaration */
757 extern void radmap(int , int , int , int , double );
758 extern void radmapnopr(int , int , int , int , double );
759 extern void radmapupd(int, int , int , int , int , double );
761 extern int setrel(natid , natid , int );
762 extern int setcont(natid , natid , int );
763 extern int setrej(natid , natid , int , int );
765 extern void retreat_ship(struct shpstr * , s_char );
766 extern int retreat_ship1(struct shpstr * , s_char , int );
767 extern int findcondition(s_char );
768 extern void retreat_land(struct lndstr * , s_char );
769 extern int retreat_land1(struct lndstr * , s_char , int );
770 extern int check_retreat_and_do_shipdamage(struct shpstr * , int );
771 extern int check_retreat_and_do_landdamage(struct lndstr * , int );
773 extern int sarg_type(s_char * );
774 extern int sarg_xy(s_char * , coord * , coord * );
775 extern int sarg_getrange(s_char * , register struct range * );
776 extern int sarg_area(s_char * , register struct range * );
777 extern int sarg_range(s_char * , coord * , coord * , int * );
778 extern int sarg_list(s_char * , register int * , int );
780 extern void satdisp(struct sctstr * , int , int );
781 extern void satmap(int , int , int , int , int , int );
782 extern void sathead(void );
784 extern int sct_postread(int, s_char * );
785 extern int checksect(struct sctstr * );
786 extern int sct_prewrite(int , s_char * );
787 extern int issector(s_char * );
788 extern void sct_init(coord , coord , s_char * );
790 extern s_char * prship(struct shpstr * );
791 extern int shp_postread(int, s_char * );
792 extern int shp_prewrite(int , s_char * );
793 extern void shp_init(int , s_char * );
795 extern void sort_lookup_list(void );
796 extern void show_bridge(int );
797 extern void show_tower(int );
798 extern void show_nuke_stats(int );
799 extern void show_nuke_capab(int );
800 extern void show_nuke_build(int );
801 extern void show_ship_build(int );
802 extern void show_ship_stats(int );
803 extern void show_ship_capab(int );
804 extern void show_plane_stats(int );
805 extern void show_plane_capab(int );
806 extern void show_plane_build(int );
807 extern void show_land_build(int );
808 extern void show_land_capab(int );
809 extern void show_land_stats(int );
810 extern void show_sect_build(int );
811 extern void show_sect_stats(int );
812 extern void show_sect_capab(int );
814 extern void shp_sel(struct nstr_item * , struct emp_qelem * );
815 extern void shp_nav(struct emp_qelem * , double * , double * , int * ,
817 extern int shp_check_one_mines(struct mlist *);
818 extern int shp_sweep(struct emp_qelem * , int , natid );
819 extern int shp_interdict(struct emp_qelem * , coord , coord , natid );
820 extern void shp_mess(s_char * , struct mlist * );
821 extern int shp_check_mines(struct emp_qelem * );
822 extern int shp_check_nav(struct sctstr * );
823 extern s_char * shp_path(int , struct shpstr * , s_char * );
824 extern void shp_put(struct emp_qelem * , natid );
825 extern int shp_hit_mine(struct shpstr * , struct mchrstr * );
826 extern void shp_list(struct emp_qelem * );
827 extern int shp_hardtarget(struct shpstr * );
828 extern void shp_view(struct emp_qelem * );
829 extern int shp_nav_one_sector(struct emp_qelem * , int , natid , int );
830 extern int shp_missile_defense(coord , coord , natid , int );
831 extern void shp_missdef(struct shpstr * , natid );
833 extern int snxtitem(register struct nstr_item * , int , s_char * );
835 extern int snxtsct(register struct nstr_sect * , s_char * );
837 extern void resupply_all(struct lndstr * );
838 extern void resupply_commod(struct lndstr * , int );
839 extern int get_minimum(struct lndstr * , int );
840 extern int supply_commod(int , int , int , int , int );
841 extern int s_commod(int , int , int , int , int , int );
842 extern int try_supply_commod(int , int , int , int , int );
843 extern s_char * itemname(int );
844 extern int at_minimum(struct lndstr * , int );
845 extern int has_supply(struct lndstr * );
846 extern int use_supply(struct lndstr * );
848 extern void takeover_land(register struct lndstr * , natid , int );
849 extern void takeover(register struct sctstr * , natid );
850 extern void takeover_ship(register struct shpstr * , natid , int );
852 extern int trade_check_ok(int, struct trdstr *, union trdgenstr *);
853 extern s_char * trade_nameof(struct trdstr * , union trdgenstr * );
854 extern int trade_desc(struct trdstr * , union trdgenstr * );
855 extern int trade_getitem(struct trdstr * , union trdgenstr * );
856 extern long get_couval(int );
857 extern long get_outstand(int );
858 extern struct ichrstr * whichitem(char );
860 extern int trechk(register natid , register natid , int );
862 extern struct ichrstr * whatitem(s_char * , s_char * );
864 extern int typed_wire(natid , natid , s_char * , int );
866 extern void clear_telegram_is_new(natid );
867 extern int typed_wu(natid , natid , s_char * , int );
868 extern int wu(natid, natid, s_char *, ...);
871 * src/lib/update/ *.c
874 extern void age_levels(int );
876 extern void delete_old_announcements(void );
878 extern void fill_update_array(int * , struct sctstr * );
879 extern int * get_wp(int * , struct sctstr * , int );
880 extern int gt_bg_nmbr(int * , struct sctstr * , int );
881 extern void pt_bg_nmbr(int * , struct sctstr * , int , int );
883 extern int deliver(register struct sctstr * , struct ichrstr * , int , int , int , int );
885 extern int dodistribute(struct sctstr * , int , s_char * , double , double );
887 extern void finish_sects(int );
889 extern int do_feed(register struct sctstr * , register struct natstr * ,
890 int * , int * , int * , int );
891 extern int growfood(struct sctstr * , register int * , int , int );
892 extern int feed_people(register int * , int , int * );
893 extern void starvation(struct sctstr * );
894 extern int grow_people(struct sctstr * , register int ,
895 register struct natstr * , int * , int ,
897 extern void trunc_people(struct sctstr * , register struct natstr * ,
900 extern void upd_land(register struct lndstr * , int , register int , struct natstr * , int * , int );
901 extern int prod_land(int , int , int * , int );
902 extern int landrepair(register struct lndstr * , int * , struct natstr * , int * , int );
903 extern int feed_land(struct lndstr * , register int * , int , int * , int );
904 extern int plague_land(struct lndstr * , struct natstr * , register int * , register int * , int );
906 extern void update_main(void * );
907 extern void do_prod(int , int , int , int * , long int (*)[2] , int * , int * , int * , int * , int * , int * );
909 extern void get_materials(struct sctstr * , int * , int * , int );
911 extern void mob_sect(register int );
912 extern void do_mob_sect(register struct sctstr * , register int );
913 extern void mob_ship(register int );
914 extern void do_mob_ship(register struct shpstr * , register int );
915 extern void mob_land(register int );
916 extern void do_mob_land(register struct lndstr * , register int );
917 extern void mob_plane(register int );
918 extern void do_mob_plane(register struct plnstr * , register int );
919 extern void do_mob_sect(register struct sctstr *sp, register int etus);
920 extern void update_all_mob(void);
921 extern void update_timestamps(time_t offset);
922 extern void sct_do_upd_mob(register struct sctstr *sp);
923 extern void shp_do_upd_mob(register struct shpstr *sp);
924 extern void lnd_do_upd_mob(register struct lndstr *lp);
925 extern void pln_do_upd_mob(register struct plnstr *pp);
927 extern void move_sat(register struct plnstr * );
929 extern double logx(double , double );
930 extern double limit_level(double , int , int );
931 extern void prod_nat(int );
932 extern void share_incr(register double * , register double * );
934 extern void scuttle_it(register struct shpstr * );
935 extern void swap(register struct shpstr * );
936 extern int nav_ship(register struct shpstr * );
938 extern int check_nav(struct sctstr * );
939 extern int load_it(register struct shpstr * , register struct sctstr * , int );
940 extern int com_num(s_char * );
941 extern void unload_it(register struct shpstr * );
942 extern void auto_fuel_ship(register struct shpstr * );
944 extern s_char * nxtitemp(struct nstr_item * , int );
946 extern struct sctstr * nxtsctp(register struct nstr_sect * );
948 extern void do_plague(struct sctstr * , struct natstr * , int );
949 extern int infect_people(struct natstr * , register int * , u_int , int , struct sctstr *);
950 extern int plague_people(struct natstr * , register int * , register int * , int );
952 extern int prod_plane(int , int , int * , int );
954 extern void populace(struct natstr * , register struct sctstr * , register int * , int );
955 extern int total_work(register int , register int , register int , register int , register int );
957 extern void tax(struct sctstr * , struct natstr * , int , long * , int * , int * , int * );
958 extern int upd_slmilcosts(natid , int );
959 extern void prepare_sects(int , int * );
960 extern int bank_income(struct sctstr * , int );
962 extern int produce(struct natstr * , struct sctstr * , int * , int , int , int , int , int * , int * );
963 extern int materials_cost(struct pchrstr * , register int * , int * );
964 extern void materials_charge(struct pchrstr * , register int * , register int );
966 extern int update_removewants(void );
968 extern void take_casualties(struct sctstr * , int );
969 extern void revolt(struct sctstr * );
970 extern void guerrilla(struct sctstr * );
972 extern void fltp_to_list(struct fltheadstr * , struct emp_qelem * );
973 extern void sail_ship(natid );
975 extern int dodeliver(struct sctstr * , int * );
976 extern int upd_buildeff(struct natstr * , register struct sctstr * , int * , int * , int , int * , int , int * );
977 extern int enlist(register int * , int , int * );
978 extern void meltitems(int , int , int , int * , int , int , int , int );
979 extern void do_fallout(register struct sctstr * , register int );
980 extern void spread_fallout(struct sctstr * , int );
981 extern void decay_fallout(struct sctstr * , int );
982 extern void produce_sect(int natnum, int etu, int *bp, long int (*p_sect)[2],
985 extern void upd_ship(register struct shpstr * , int , register int , struct natstr * , int * , int );
986 extern int prod_ship(int , int , int * , int );
987 extern int shiprepair(register struct shpstr * , int * , struct natstr * , int * , int );
988 extern int feed_ship(struct shpstr * , register int * , int , int * , int );
994 extern void shutdown_init(void);
995 extern void shutdown_sequence(int argc, s_char **argv);
997 #endif /* _PROTOTYPES_H_ */