]> git.pond.sub.org Git - empserver/blob - include/prototypes.h
Import of Empire 4.2.12
[empserver] / include / prototypes.h
1 /*
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
5  *
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.
10  *
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.
15  *
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
19  *
20  *  ---
21  *
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.
25  *
26  *  ---
27  *
28  *  prototypes.h: Prototypes for server functions
29  * 
30  *  Known contributors to this file:
31  *     Curtis Larsen, 1998
32  *     Steve McClure, 1998,2000
33  */
34
35 #ifndef _PROTOTYPES_H_
36 #define _PROTOTYPES_H_
37
38 #include "misc.h"
39 #include "empthread.h"
40 #include "player.h"
41 #include "commands.h"
42 #include "common.h"
43 #include "gen.h"
44 #include "global.h"
45 #include "subs.h"
46 #include "update.h"
47 #include "empio.h"
48 #include "commodity.h"
49
50 /* src/server/main.c */
51 extern emp_sig_t panic(int sig);
52 extern emp_sig_t shutdwn(int sig);
53
54 /*****************************************************************************
55  * src/lib/ * / *.c 
56  *****************************************************************************/
57
58 /* src/lib/empthread/lwp.c */
59 #ifdef _EMPTH_LWP
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);
63 #if 0
64 extern void empth_setctx(void *ctx);
65 #endif
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 */
78
79 /* src/lib/empthread/pthread.c */
80 #ifdef _EMPTH_POSIX
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)(),
84                                   int size, int flags,
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 */
98  
99 /*
100  * src/lib/commands/ *.c 
101  */
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 );
328
329 /*
330  * src/lib/common/ *.c 
331  */
332 /* bestpath.c */
333 extern s_char * bestownedpath(s_char *  , s_char *  , int  , int  , int  ,
334                               int  , s_char *  , int );
335 /* bridgefall.c */
336 extern void bridgefall(struct sctstr * , struct emp_qelem *);
337 extern void knockdown(struct sctstr *, struct emp_qelem *);
338 /* damage.c */
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 );
348 /* check.c */
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 *);
356 /* fsize.c */
357 extern int fsize(int );
358 extern int blksize(int );
359 extern time_t fdate(int );
360 extern void filetruncate(s_char * );
361 /* getvar.c */
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 );
366 /* hap_fact.c */
367 extern double hap_fact(struct natstr *  , struct natstr * );
368 /* hours.c */
369 extern int gamehours(time_t  , int * );
370 /* land.c */
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 );
374 /* log.c */
375 extern void loginit(void );
376 extern void logerror(s_char *, ...);    
377 extern void filelogerror(s_char *, ...);
378 /* maps.c */
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  ,
385                       s_char * );
386 /* move.c */
387 extern double sector_mcost(struct sctstr *  , int );
388 /* nstr_subs.c */
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 );
392 /* path.c */
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 *  ,
399                              double *  , int );
400 extern s_char * BestLandPath(s_char *  , struct sctstr *  , struct sctstr *  ,
401                              double *  , int );
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 );
405 /* res_pop.c */
406 extern int max_pop(float  , struct sctstr * );
407 /* sectdamage.c */
408 extern int sect_damage(struct sctstr *  , int, struct emp_qelem * );
409 extern int sectdamage(struct sctstr *  , int, struct emp_qelem * );
410 /* snxtit_subs.c */
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);
425 /* stmtch.c */
426 extern int stmtch(register s_char *  , s_char *  , int  , int );
427 extern int mineq(register s_char *  , register s_char * );
428 /* type.c */
429 extern int typematch(s_char *  , int );
430 /* vlist.c */
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 *  ,
433                   u_char *  , int );
434 extern int vl_damage(register int  , register u_char *  , register u_short *,
435                      register int );
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 * );
440 /* wantupd.c */
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 );
450
451 /*
452  * src/lib/gen/ *.c 
453  */
454 /* emp_config.c */
455 extern int emp_config (char *file);
456 extern void print_config (FILE *fp);
457
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 );
471 #if !defined(_WIN32)
472 extern s_char * inet_ntoa(struct in_addr );
473 #endif
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 );
481 #if !defined(_WIN32)
482 extern int max(int  , int );
483 extern int min(int  , int );
484 #endif
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 *  ,
490                  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 );
502 #ifdef NOSTRDUP
503 extern char *strdup(char *x);
504 #endif
505 extern int strscan(s_char *target, s_char *string);
506
507
508 /*
509  * src/lib/global/ *.c 
510  */
511 extern void global_init(void );
512 extern void init_pchr(void );
513 extern void init_mchr(void );
514 extern void init_plchr(void );
515
516
517
518 /*
519  * src/lib/player/ *.c 
520  */
521 /* accept.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 * );
532 /* dispatch.c */
533 extern int dispatch(s_char *  , s_char * );
534 /* empdis.c */
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 * );
543 /* empmod.c */
544 /* init_nats.c */
545 extern int init_nats(void );
546 extern int nat_cap(int );
547 /* login.c */
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 * * );
558 /* nat.c */
559 extern int natbyname(s_char *  , natid * );
560 extern int natpass(int  , s_char * );
561 /* player.c */
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 );
571 /* recvclient.c */
572 extern int recvclient(s_char *  , int );
573
574 /*
575  * src/lib/subs/ *.c 
576  */
577 /* askyn.c */
578 extern int confirm(s_char * );
579 extern int askyn(s_char * );
580 /* bsanct.c */
581 extern void bsanct(void );
582 /* caploss.c */
583 extern void caploss(struct sctstr *  , natid  , s_char * );
584 /* chkmoney.c */
585 extern int chkmoney(long  , long  , s_char * );
586 extern int check_cost(int  , int  , long  , int *  , s_char * );
587 /* cnumb.c */
588 extern int cnumb(s_char * );
589 /* control.c */
590 extern int military_control(struct sctstr * );
591 /* detonate.c */
592 extern int detonate(struct plnstr *  , int  , int );
593 /* disloan.c */
594 extern int disloan(int  , register struct lonstr * );
595 /* distrea.c */
596 extern int distrea(int  , register struct trtstr * );
597 /* fileinit.c */
598 extern void ef_init(void );
599 /* fortdef.c */
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 );
604 /* getbit.c */
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 * );
609 /* getele.c */
610 extern int getele(s_char *  , s_char * );
611 /* land.c */
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 * );
616 /* landgun.c */
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 );
621 /* list.c */
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 *  ,
627                          struct shiplook * );
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,
637                                     natid);
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  ,
648                       s_char *, int);
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 * );
660 /* move.c */
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 *) ,
666                        int  , int * );
667 extern int fly_map(coord  , coord );
668 /* mslsub.c */
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  ,
674                    int  , int );
675 extern int msl_launch_mindam(struct emp_qelem *  , coord  , coord  , int  ,
676                              int  , int  , s_char *  , int  , int );
677 /* mtch.c */
678 extern int intmatch(register int  , register int *  , int );
679 extern int comtch(register s_char *  , struct cmndstr *  , int  , int );
680 /* natarg.c */
681 extern int natarg(s_char *  , s_char * );
682 /* neigh.c */
683 extern int neigh(coord  , coord  , natid );
684 /* nreport.c */
685 extern void nreport(natid  , int  , natid  , int );
686 extern void filereport(int  , int  , int  , int );
687 /* nuke.c */
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 );
693 /* nxtitem.c */
694 extern int nxtitem(struct nstr_item *  , caddr_t );
695 /* nxtsct.c */
696 extern int nxtsct(register struct nstr_sect *  , struct sctstr * );
697 /* plane.c */
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 * );
702 /* plnsub.c */
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 *  ,
714                    int  , int  , int * );
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 );
727 /* pr.c */
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 *, ...);
748
749 /* radmap.c */
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 );
760 /* rej.c */
761 extern int setrel(natid  , natid  , int );
762 extern int setcont(natid , natid , int );
763 extern int setrej(natid  , natid  , int  , int );
764 /* retreat.c */
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 );
772 /* sarg.c */
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 );
779 /* satmap.c */
780 extern void satdisp(struct sctstr *  , int  , int );
781 extern void satmap(int  , int  , int  , int  , int  , int );
782 extern void sathead(void );
783 /* sect.c */
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 * );
789 /* ship.c */
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 * );
794 /* show.c */
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 );
813 /* shpsub.c */
814 extern void shp_sel(struct nstr_item *  , struct emp_qelem * );
815 extern void shp_nav(struct emp_qelem *  , double *  , double *  , int *  ,
816                     natid );
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 );
832 /* snxtitem.c */
833 extern int snxtitem(register struct nstr_item *  , int  , s_char * );
834 /* snxtsct.c */
835 extern int snxtsct(register struct nstr_sect *  , s_char * );
836 /* supply.c */
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 * );
847 /* takeover.c */
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 );
851 /* trdsub.c */
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 );
859 /* trechk.c */
860 extern int trechk(register natid  , register natid  , int );
861 /* whatitem.c */
862 extern struct ichrstr * whatitem(s_char *  , s_char * );
863 /* wire.c */
864 extern int typed_wire(natid  , natid  , s_char *  , int );
865 /* wu.c */
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 *, ...);
869
870 /*
871  * src/lib/update/ *.c 
872  */
873 /* age.c */
874 extern void age_levels(int );
875 /* anno.c */
876 extern void delete_old_announcements(void );
877 /* bp.c */
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 );
882 /* deliver.c */
883 extern int deliver(register struct sctstr *  , struct ichrstr *  , int  , int  , int  , int );
884 /* distribute.c */
885 extern int dodistribute(struct sctstr *  ,  int  , s_char *  , double  , double );
886 /* finish.c */
887 extern void finish_sects(int );
888 /* human.c */
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  ,
896                        register int * );
897 extern void trunc_people(struct sctstr *  , register struct natstr *  ,
898                          register int * );
899 /* land.c */
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 );
905 /* main.c */
906 extern void update_main(void * );
907 extern void do_prod(int  , int  , int  , int *  , long int (*)[2]  , int *  , int *  , int *  , int *  , int *  , int * );
908 /* material.c */
909 extern void get_materials(struct sctstr *  , int *  , int *  , int );
910 /* mobility.c */
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);
926 /* move_sat.c */
927 extern void move_sat(register struct plnstr * );
928 /* nat.c */
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 * );
933 /* nav_ship.c */
934 extern void scuttle_it(register struct shpstr * );
935 extern void swap(register struct shpstr * );
936 extern int nav_ship(register struct shpstr * );
937 /* nav_util.c */
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 * );
943 /* nxtitemp.c */
944 extern s_char * nxtitemp(struct nstr_item *  , int );
945 /* nxtsctp.c */
946 extern struct sctstr * nxtsctp(register struct nstr_sect * );
947 /* plague.c */
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 );
951 /* plane.c */
952 extern int prod_plane(int  , int  , int *  , int );
953 /* populace.c */
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 );
956 /* prepare.c */
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 );
961 /* produce.c */
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 );
965 /* removewants.c */
966 extern int update_removewants(void );
967 /* revolt.c */
968 extern void take_casualties(struct sctstr *  , int );
969 extern void revolt(struct sctstr * );
970 extern void guerrilla(struct sctstr * );
971 /* sail.c */
972 extern void fltp_to_list(struct fltheadstr *  , struct emp_qelem * );
973 extern void sail_ship(natid );
974 /* sect.c */
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],
983                          int sector_type);
984 /* ship.c */
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 );
989
990 /*
991  * src/server
992  */
993 /* shutdown.c */
994 extern void shutdown_init(void);
995 extern void shutdown_sequence(int argc, s_char **argv);
996
997 #endif /* _PROTOTYPES_H_ */