Import of Empire 4.2.12

This commit is contained in:
Markus Armbruster 2003-08-23 12:23:04 +00:00
commit d8b7fdfae1
817 changed files with 126589 additions and 0 deletions

997
include/prototypes.h Normal file
View file

@ -0,0 +1,997 @@
/*
* Empire - A multi-player, client/server Internet based war game.
* Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* ---
*
* See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
* related information and legal notices. It is expected that any future
* projects/authors will amend these files as needed.
*
* ---
*
* prototypes.h: Prototypes for server functions
*
* Known contributors to this file:
* Curtis Larsen, 1998
* Steve McClure, 1998,2000
*/
#ifndef _PROTOTYPES_H_
#define _PROTOTYPES_H_
#include "misc.h"
#include "empthread.h"
#include "player.h"
#include "commands.h"
#include "common.h"
#include "gen.h"
#include "global.h"
#include "subs.h"
#include "update.h"
#include "empio.h"
#include "commodity.h"
/* src/server/main.c */
extern emp_sig_t panic(int sig);
extern emp_sig_t shutdwn(int sig);
/*****************************************************************************
* src/lib/ * / *.c
*****************************************************************************/
/* src/lib/empthread/lwp.c */
#ifdef _EMPTH_LWP
extern int empth_init (char **ctx, int flags);
extern empth_t *empth_create (int prio, void (*entry)(), int size,
int flags, char *name, char *desc, void *ud);
#if 0
extern void empth_setctx(void *ctx);
#endif
extern empth_t *empth_self(void);
extern void empth_exit (void);
extern void empth_yield (void);
extern void empth_terminate(empth_t *a);
extern void empth_select(int fd, int flags);
extern void empth_wakeup(empth_t *a);
extern void empth_sleep(long int until);
extern empth_sem_t *empth_sem_create(char *name, int cnt);
extern void empth_sem_signal(empth_sem_t *sm);
extern void empth_sem_wait (empth_sem_t *sm);
extern emp_sig_t empth_alarm(int sig);
#endif /* _EMPTH_LWP */
/* src/lib/empthread/pthread.c */
#ifdef _EMPTH_POSIX
extern void *empth_start(void *ctx);
extern int empth_init (char **ctx_ptr, int flags);
extern empth_t *empth_create (int prio, void (*entry)(),
int size, int flags,
char *name, char *desc, void *ud);
extern empth_t *empth_self(void);
extern void empth_exit (void);
extern void empth_yield (void);
extern void empth_terminate(empth_t *a);
extern void empth_select(int fd, int flags);
extern emp_sig_t empth_alarm(int sig);
extern void empth_wakeup(empth_t *a);
extern void empth_sleep(long until);
extern empth_sem_t *empth_sem_create(char *name, int cnt);
extern void empth_sem_signal(empth_sem_t *sm);
extern void empth_sem_wait (empth_sem_t *sm);
#endif /* _EMPTH_POSIX */
/*
* src/lib/commands/ *.c
*/
extern int acce(void );
extern int add(void );
extern int anti(void );
extern int arm(void );
extern int army(void );
extern int assa(void );
extern int atta(void );
extern int bdes(void );
extern int best(void );
extern int boar(void );
extern int pinflak_planedamage(struct plnstr * , struct plchrstr * , natid , int );
extern int bomb(void );
extern int brea(void );
extern s_char * dotsprintf(s_char * , s_char * , int );
extern int goodsect(char );
extern void prexpense(long , int * , s_char , int );
extern int budg(void );
extern int buil(void );
extern int buy(void );
extern int check_market(void );
extern int capi(void );
extern int carg(void );
extern int lcarg(void );
extern int cede_sect(struct nstr_sect * , natid );
extern void grab_sect(register struct sctstr * , natid );
extern int cede_ship(struct nstr_item * , natid );
extern void grab_ship(register struct shpstr * , natid );
extern int cede(void );
extern int cens(void );
extern void set_coastal(struct sctstr * );
extern int chan(void );
extern int coas(void );
extern int coll(void );
extern int comm(void );
extern int cons(void );
extern long do_conv(struct nstr_sect , int , int );
extern int conv(void );
extern int coun(void );
extern int cuto(void );
extern int decl(void );
extern int deli(void );
extern long do_demo(struct natstr * , struct nstr_sect , int , s_char * , int );
extern int demo(void );
extern long do_desi(struct natstr * , s_char * , s_char * , long , int );
extern int desi(void );
extern int disa(void );
extern int diss(void );
extern int dist(void );
extern int drop(void );
extern int dump(void );
extern int echo(void );
extern int doland(s_char , int , struct sctstr * );
extern int docountry(s_char , int , s_char * , float , natid , struct natstr * );
extern int doship(s_char , int , s_char * , struct shpstr * );
extern int dounit(s_char , int , s_char * , struct lndstr * );
extern int doplane(s_char , int , s_char * , struct plnstr * );
extern int edit(void );
extern int getin(s_char * * , s_char * * , int * , s_char *);
extern int errcheck(int , int , int );
extern int enab(void );
extern int enli(void );
extern int explore(void );
extern int fina(void );
extern int flash(void );
extern int sendmessage(struct natstr * , struct natstr * , char * , int );
extern int wall(void );
extern int flee(void );
extern int fly(void );
extern int foll(void );
extern int force(void );
extern int fort(void );
extern int is_engineer(int , int );
extern int fuel(void );
extern int give(void );
extern int grin(void );
extern int hard(void );
extern int head(void );
extern int hidd(void );
extern int improve(void );
extern int info(void );
extern int apro(void );
extern int land(void );
extern int laun(void );
extern int ldump(void );
extern int ledg(void );
extern int leve(void );
extern void gift(int , int , s_char * , int , s_char * );
extern int load(void );
extern int lload(void );
extern int look(void );
extern int llook(void );
extern int lost(void );
extern int lstats(void );
extern int ltend(void );
extern int map(void );
extern int march(void );
extern int mark(void );
extern int display_mark(s_char * );
extern int quiet_bigdef(int , struct emp_qelem * , natid , natid , coord , coord , int * );
extern int multifire(void );
extern void use_ammo(struct emp_qelem * );
extern void do_defdam(struct emp_qelem * , double );
extern void add_to_fired_queue(struct emp_qelem * , struct emp_qelem * );
extern int mine(void );
extern int landmine(void );
extern int mission(void );
extern int mobq(void );
extern int mobupdate(void);
extern int morale(void );
extern int move(void );
extern int want_to_abandon(struct sctstr * , int , int, struct lndstr * );
extern int would_abandon(struct sctstr * , int , int, struct lndstr * );
extern int mult(void );
extern int name(void );
extern int nati(void );
extern int navi(void );
extern int nav_map(int , int , int );
extern int ndump(void );
extern int new(void );
extern int deity_build_land(int , coord , coord , natid , int );
extern int newe(void );
extern int news(void );
extern int nuke(void );
extern int offe(void );
extern int offs(void );
extern int orde(void );
extern int qorde(void );
extern int sorde(void );
extern int orig(void );
extern int para(void );
extern int path(void );
extern int pdump(void );
extern int plan(void );
extern int play(void );
extern int powe(void );
extern int set_target(s_char * , int * );
extern int count_pop(register int );
extern int prod(void );
extern int pstat(void );
extern int rada(void );
extern int range(void );
extern int lrange(void );
extern int rea(void );
extern int real(void );
extern int reco(void );
extern int reje(void );
extern int rela(void );
extern int repa(void );
extern int repo(void );
extern int rese(void );
extern int reso(void );
extern int retr(void );
extern int lretr(void );
extern int rout(void );
extern int sail(void );
extern int sate(void );
extern int scra(void );
extern int scuttle_tradeship(struct shpstr *, int);
extern int scut(void );
extern void scuttle_ship(struct shpstr * );
extern void scuttle_land(struct lndstr * );
extern int sdump(void );
extern int sct(void );
extern int sell(void );
extern int set(void );
extern int setres(void );
extern int setsector(void );
extern void resnoise(struct sctstr *sptr, int public_amt, s_char *name, int old, int new);
extern int shar(void );
extern int shark(void );
extern int shi(void );
extern int shoo(void );
extern int show(void );
extern int shut(void );
extern int sinfra(void );
extern int skyw(void );
extern int line_of_sight(s_char **rad, int ax, int ay, int bx, int by);
extern int sona(void );
extern int blankrow(s_char * );
extern void plane_sona(struct emp_qelem * , int , int , struct shiplook * );
extern int spy(void );
extern int num_units(int , int );
extern void prunits(int , int );
extern void prplanes(int , int );
extern int sstat(void );
extern int start(void );
extern int stop(void );
extern int stre(void );
extern int starve(void );
extern int supp(void );
extern int surv(void );
extern int swaps(void );
extern void print_res(struct sctstr * );
extern int tele(void );
extern int tend(void );
extern int tend_nxtitem(struct nstr_item * , caddr_t );
extern int terr(void );
extern int thre(void );
extern int togg(void );
extern void anti_torp(int , int , int );
extern void fire_dchrg(struct shpstr * , struct shpstr * , int , int );
extern s_char * prsub(struct shpstr * );
extern int torp(void );
extern int canshoot(struct shpstr * , struct shpstr * );
extern int cantorp(struct shpstr * , struct shpstr * );
extern int fire_torp(struct shpstr * , struct shpstr * , int , int );
extern int candchrg(struct shpstr * , struct shpstr * );
extern int trad(void );
extern int check_trade(void );
extern int ontradingblock(int , int * );
extern void trdswitchown(int , int * , int );
extern int tran(void );
extern int trea(void );
extern int turn(void );
extern int upda(void );
extern int upgr(void );
extern int supgr(void );
extern int pupgr(void );
extern int lupgr(void );
extern int vers(void );
extern int wai(void );
extern int wing(void );
extern int wipe(void );
extern int work(void );
extern int buildeff(struct sctstr * , int , double * );
extern int zdon(void );
/*
* src/lib/common/ *.c
*/
/* bestpath.c */
extern s_char * bestownedpath(s_char * , s_char * , int , int , int ,
int , s_char * , int );
/* bridgefall.c */
extern void bridgefall(struct sctstr * , struct emp_qelem *);
extern void knockdown(struct sctstr *, struct emp_qelem *);
/* damage.c */
extern void landdamage(struct lndstr * , int );
extern void ship_damage(struct shpstr * , int );
extern int damage(register int , int );
extern void shipdamage(struct shpstr * , int );
extern void land_damage(struct lndstr * , int );
extern void planedamage(struct plnstr * , int );
extern int nukedamage(struct nchrstr * , int , int );
extern int effdamage(register int , int );
extern int commdamage(register int , int , int );
/* check.c */
extern int check_sect_ok(struct sctstr *);
extern int check_ship_ok(struct shpstr *);
extern int check_land_ok(struct lndstr *);
extern int check_nuke_ok(struct nukstr *);
extern int check_plane_ok(struct plnstr *);
extern int check_comm_ok(struct comstr *);
extern int check_loan_ok(struct lonstr *);
/* fsize.c */
extern int fsize(int );
extern int blksize(int );
extern time_t fdate(int );
extern void filetruncate(s_char * );
/* getvar.c */
extern int getvar(int , s_char * , int );
extern int getvec(int , int * , s_char * , int );
extern int putvar(int , int , s_char * , int );
extern int putvec(int , int * , s_char * , int );
/* hap_fact.c */
extern double hap_fact(struct natstr * , struct natstr * );
/* hours.c */
extern int gamehours(time_t , int * );
/* land.c */
extern int has_units(coord , coord , natid, struct lndstr * );
extern int has_units_with_mob(coord , coord , natid );
extern int adj_units(coord , coord , natid );
/* log.c */
extern void loginit(void );
extern void logerror(s_char *, ...);
extern void filelogerror(s_char *, ...);
/* maps.c */
extern int draw_map(int , s_char , int , struct nstr_sect * , int );
extern int bmnxtsct(register struct nstr_sect * );
extern void bitinit2(struct nstr_sect * , u_char * , int );
extern int unit_map(int , int , struct nstr_sect * , s_char * );
extern int bmaps_intersect(natid , natid );
extern int share_bmap(natid , natid , struct nstr_sect * , s_char ,
s_char * );
/* move.c */
extern double sector_mcost(struct sctstr * , int );
/* nstr_subs.c */
extern s_char * decodep(long , void * );
extern int decode(natid , long , void * , int );
extern int nstr_exec(struct nscstr * , register int , void * , int );
/* path.c */
extern s_char * bp_init(void );
extern int best_path(struct sctstr * , struct sctstr * , s_char * , int);
extern void bp_enable_cachepath();
extern void bp_disable_cachepath();
extern void bp_clear_cachepath();
extern s_char * BestDistPath(s_char * , struct sctstr * , struct sctstr * ,
double * , int );
extern s_char * BestLandPath(s_char * , struct sctstr * , struct sctstr * ,
double * , int );
extern s_char * BestShipPath(s_char *, int, int, int, int, int);
extern s_char * BestAirPath(s_char *, int, int, int, int);
extern double pathcost(struct sctstr * , s_char * , int );
/* res_pop.c */
extern int max_pop(float , struct sctstr * );
/* sectdamage.c */
extern int sect_damage(struct sctstr * , int, struct emp_qelem * );
extern int sectdamage(struct sctstr * , int, struct emp_qelem * );
/* snxtit_subs.c */
extern void snxtitem_area(register struct nstr_item * , int, struct range *);
extern void snxtitem_dist(register struct nstr_item * , int , int, int, int);
extern void snxtitem_xy(register struct nstr_item * , int , coord , coord );
extern void snxtitem_all(register struct nstr_item * , int );
extern void snxtitem_group(register struct nstr_item * , int , s_char );
extern void snxtitem_rewind(struct nstr_item * );
extern int snxtitem_list(register struct nstr_item * , int , int * , int );
/* snxtsect_subs.c */
extern void snxtsct_area(register struct nstr_sect * , struct range * );
extern void xydist_range(coord , coord , register int , struct range * );
extern void xysize_range(register struct range * );
extern void snxtsct_all(struct nstr_sect * );
extern void snxtsct_rewind(struct nstr_sect * );
extern void snxtsct_dist(register struct nstr_sect * , coord , coord , int);
/* stmtch.c */
extern int stmtch(register s_char * , s_char * , int , int );
extern int mineq(register s_char * , register s_char * );
/* type.c */
extern int typematch(s_char * , int );
/* vlist.c */
extern int vl_find(register int , u_char * , u_short * , int );
extern int vl_set(register int , u_int , u_char * , u_short * ,
u_char * , int );
extern int vl_damage(register int , register u_char * , register u_short *,
register int );
extern int vl_getvec(register u_char * , register u_short * , register int,
register int , register int * );
extern int vl_setvec(register u_char * , register u_short * , u_char * ,
int , register int , register int * );
/* wantupd.c */
extern int demand_update_want(int * , int * , int );
extern int update_maxmissed(void );
extern int demandupdatecheck(void );
extern int update_between(void );
extern int updatetime(time_t * );
extern void demand_update_info(int * , int * , int * , int * );
extern void next_update_time(time_t * , time_t * , time_t * );
extern void next_update_check_time(time_t * , time_t * , time_t * );
extern int updates_disabled(void );
/*
* src/lib/gen/ *.c
*/
/* emp_config.c */
extern int emp_config (char *file);
extern void print_config (FILE *fp);
extern int atoip(s_char * * );
extern int atopi(s_char * );
extern int roll(int );
extern int roundavg(double );
extern int chance(double );
extern s_char * copy(register s_char * , register s_char * );
extern void disassoc(void );
extern int getfdtablesize(void );
extern void setfdtablesize(int , int );
extern s_char * getstarg(s_char * , s_char * , s_char * );
extern s_char * getstring(s_char * , s_char * );
extern int ifloor(double );
extern int iceil(double );
#if !defined(_WIN32)
extern s_char * inet_ntoa(struct in_addr );
#endif
extern int file_lock(int );
extern int file_unlock(int );
extern int deltax(int , int );
extern int deltay(int , int );
extern int mapdist(int , int , int , int );
extern int mapdsq(int , int , int , int );
extern double dmin(double , double );
#if !defined(_WIN32)
extern int max(int , int );
extern int min(int , int );
#endif
extern double dmax(double , double );
extern s_char * numstr(s_char * , int );
extern s_char * effadv(int );
extern int onearg(s_char * , s_char * );
extern int parse(register s_char * , s_char * * , s_char * * , s_char * ,
s_char * * );
extern s_char * esplur(int );
extern s_char * splur(int );
extern s_char * iesplur(int );
extern s_char * plur(int , s_char * , s_char * );
extern int ldround(double , int );
extern int roundintby(int , int );
extern int same(register s_char * , register s_char * );
extern int scthash(register int , register int , int );
extern void blocksig(void );
extern void unblocksig(void );
extern const s_char * signame(int );
#ifdef NOSTRDUP
extern char *strdup(char *x);
#endif
extern int strscan(s_char *target, s_char *string);
/*
* src/lib/global/ *.c
*/
extern void global_init(void );
extern void init_pchr(void );
extern void init_mchr(void );
extern void init_plchr(void );
/*
* src/lib/player/ *.c
*/
/* accept.c */
extern void player_init(void );
extern struct player * player_new(int , struct sockaddr_in * );
extern struct player * player_delete(struct player * );
extern struct player * player_next(struct player * );
extern struct player * player_prev(struct player * );
extern struct player * getplayer(natid );
extern struct player * player_find_other(struct player * , register natid );
extern void player_wakeup_all(natid );
extern void player_wakeup(struct player * );
extern void player_accept(void * );
/* dispatch.c */
extern int dispatch(s_char * , s_char * );
/* empdis.c */
extern int getcommand(s_char * );
extern void init_player_commands(void );
extern void log_last_commands(void );
extern int explain(void );
extern int gamedown(void );
extern void daychange(time_t );
extern void getconstants(void );
extern int getminleft(time_t , int * , int * );
/* empmod.c */
/* init_nats.c */
extern int init_nats(void );
extern int nat_cap(int );
/* login.c */
extern void player_login(void * );
extern int client_cmd(struct player * , int , char * * );
extern int user_cmd(struct player * , int , char * * );
extern int sanc_cmd(struct player * , int , char * * );
extern int coun_cmd(struct player * , int , char * * );
extern int pass_cmd(struct player * , int , char * * );
extern int play_cmd(struct player * , int , char * * );
extern int kill_cmd(struct player * , int , char * * );
extern int list_cmd(struct player * , int , char * * );
extern int quit_cmd(struct player * , int , char * * );
/* nat.c */
extern int natbyname(s_char * , natid * );
extern int natpass(int , s_char * );
/* player.c */
extern struct player *player; /* current player's context */
extern s_char * praddr(struct player * );
extern void player_main(struct player * );
extern int show_motd(void );
extern int match_user(char * , struct player * );
extern int status(void );
extern int command(void );
extern int execute(void );
extern int quit(void );
/* recvclient.c */
extern int recvclient(s_char * , int );
/*
* src/lib/subs/ *.c
*/
/* askyn.c */
extern int confirm(s_char * );
extern int askyn(s_char * );
/* bsanct.c */
extern void bsanct(void );
/* caploss.c */
extern void caploss(struct sctstr * , natid , s_char * );
/* chkmoney.c */
extern int chkmoney(long , long , s_char * );
extern int check_cost(int , int , long , int * , s_char * );
/* cnumb.c */
extern int cnumb(s_char * );
/* control.c */
extern int military_control(struct sctstr * );
/* detonate.c */
extern int detonate(struct plnstr * , int , int );
/* disloan.c */
extern int disloan(int , register struct lonstr * );
/* distrea.c */
extern int distrea(int , register struct trtstr * );
/* fileinit.c */
extern void ef_init(void );
/* fortdef.c */
extern int sd(natid , natid , coord , coord , int , int , int );
extern int dd(natid , natid , coord , coord , int , int );
extern int sb(natid , natid , struct sctstr * , coord , coord , int, int);
extern int shipdef(natid , natid , coord , coord );
/* getbit.c */
extern int emp_getbit(int , int , u_char * );
extern void emp_setbit(int , int , u_char * );
extern void emp_setbitmap(int ,int, u_char *, int *);
extern void emp_bitinit(struct nstr_sect * , u_char * );
/* getele.c */
extern int getele(s_char * , s_char * );
/* land.c */
extern s_char * prland(struct lndstr * );
extern int lnd_postread(int, s_char * );
extern int lnd_prewrite(int , s_char * );
extern void lnd_init(int , s_char * );
/* landgun.c */
extern double seagun(int , int );
extern double landgun(int , int );
extern double landunitgun(int, int, int, int, int );
extern int roundrange(double );
/* list.c */
extern int shipsatxy(coord , coord , int , int );
extern int carriersatxy(coord , coord , int , int , natid );
extern int unitsatxy(coord , coord , int , int );
extern int planesatxy(coord , coord , int , int, struct emp_qelem * );
extern int asw_shipsatxy(coord , coord , int , int , struct plnstr * ,
struct shiplook * );
extern int num_shipsatxy(coord , coord , int , int );
extern int islist(s_char * );
/* src/lib/subs/mission.c */
extern s_char * mission_name(short );
extern s_char * nameofitem(s_char * , struct genitem * , int );
extern int collateral_damage(coord , coord , int , struct emp_qelem *);
extern int dosupport(struct genlist * , coord , coord , natid , natid );
extern void build_mission_list(struct genlist * , coord, coord, int, natid );
extern void build_mission_list_type(struct genlist *, coord, coord, int, int,
natid);
extern int perform_mission(coord , coord , natid , struct emp_qelem * ,
int , s_char * , int );
extern void mission_pln_sel(struct emp_qelem * , int , int , int );
extern int mission_pln_arm(struct emp_qelem * , coord , coord , int ,
int , struct ichrstr * , int , int , int * );
extern int mission_pln_equip(struct plist * , struct ichrstr *, int, s_char);
extern int find_airport(struct emp_qelem * , coord , coord );
extern void add_airport(struct emp_qelem * , coord , coord );
extern void divide(struct emp_qelem * , struct emp_qelem * , coord , coord);
extern int air_damage(struct emp_qelem * , coord , coord , int , natid ,
s_char *, int);
extern int ground_interdict(coord , coord , natid , s_char * );
extern int unit_interdict(coord , coord , natid , s_char * , int , int );
extern int off_support(coord , coord , natid , natid );
extern int def_support(coord , coord , natid , natid );
extern int oprange(struct genitem * , int , int * );
extern void find_escorts(coord , coord , natid , struct emp_qelem * );
extern int cando(int , int );
extern s_char * mission_short_name(int );
extern void show_mission(int , struct nstr_item * );
extern int air_defense(coord , coord , natid , struct emp_qelem * ,
struct emp_qelem * );
/* move.c */
extern int move_map(s_char * , coord , coord , s_char * );
extern int check_lmines(coord , coord , double );
extern int move_ground(s_char * , struct sctstr * , struct sctstr * ,
double , double , s_char * ,
int (* )(s_char *, coord , coord , s_char *) ,
int , int * );
extern int fly_map(coord , coord );
/* mslsub.c */
extern int msl_intercept(coord , coord , natid , int , int , int , int );
extern int msl_equip(struct plnstr * );
extern int msl_hit(struct plnstr * , int , int , int , int , s_char * ,
coord , coord , int );
extern void msl_sel(struct emp_qelem * , coord , coord , natid , int ,
int , int );
extern int msl_launch_mindam(struct emp_qelem * , coord , coord , int ,
int , int , s_char * , int , int );
/* mtch.c */
extern int intmatch(register int , register int * , int );
extern int comtch(register s_char * , struct cmndstr * , int , int );
/* natarg.c */
extern int natarg(s_char * , s_char * );
/* neigh.c */
extern int neigh(coord , coord , natid );
/* nreport.c */
extern void nreport(natid , int , natid , int );
extern void filereport(int , int , int , int );
/* nuke.c */
extern int nuk_postread(int, s_char * );
extern int nuk_prewrite(int , s_char * );
extern void nuk_init(int , s_char * );
extern void nuk_add(coord , coord , int , int );
extern void nuk_delete(struct nukstr * , int , int );
/* nxtitem.c */
extern int nxtitem(struct nstr_item * , caddr_t );
/* nxtsct.c */
extern int nxtsct(register struct nstr_sect * , struct sctstr * );
/* plane.c */
extern s_char * prplane(struct plnstr * );
extern int pln_postread(int, s_char * );
extern int pln_prewrite(int , s_char * );
extern void pln_init(int , s_char * );
/* plnsub.c */
extern void count_planes(struct shpstr * );
extern int pln_equip(struct plist * , struct ichrstr * , int , s_char );
extern int pln_onewaymission(struct sctstr * , int * , int * );
extern void pln_newlanding(struct emp_qelem * , coord , coord , int );
extern int can_be_on_ship(int , int );
extern int put_plane_on_ship(struct plnstr * , struct shpstr * );
extern void pln_dropoff(struct emp_qelem * , struct ichrstr * , coord ,
coord , s_char * , int );
extern void pln_sel(struct nstr_item * , struct emp_qelem * ,
struct sctstr * , int , int , int , int );
extern int pln_arm(struct emp_qelem * , int , int , struct ichrstr * ,
int , int , int * );
extern int pln_mobcost(int , struct plnstr * , int );
extern void pln_put(struct emp_qelem * );
extern void pln_removedupes(struct emp_qelem * , struct emp_qelem * );
extern int take_plane_off_ship(struct plnstr * , struct shpstr * );
extern int take_plane_off_land(struct plnstr * , struct lndstr * );
extern void plane_sweep(struct emp_qelem * , coord , coord );
extern void count_land_planes(struct lndstr * );
extern int count_sect_planes(struct sctstr * );
extern int put_plane_on_land(struct plnstr * , struct lndstr * );
extern int pln_hitchance(struct plnstr * , int , int );
extern int pln_damage(struct plnstr * , coord , coord , s_char , int *, int );
extern int pln_identchance(struct plnstr * , int , int );
/* pr.c */
extern void pr(s_char *, ...);
extern void prnf(s_char *buf);
extern void pr_id(struct player *, int, s_char *, ...);
extern void pr_flash(struct player *, s_char *, ...);
extern void pr_inform(struct player *, s_char *, ...);
extern void pr_wall(s_char *, ...);
extern void pr_player(struct player *pl, int id, s_char *buf);
extern void pr_hilite(s_char *buf);
extern void outid(struct player *pl, int n);
extern void prredir(s_char *redir);
extern void prexec(s_char *file);
extern void prprompt(int min, int btu);
extern void showvers(int vers);
extern int prmptrd(s_char *prompt, s_char *str, int size);
extern void prdate(void);
extern void prxy(s_char *format, coord x, coord y, natid country);
extern void PR(int, s_char *, ...);
extern void PRdate(natid cn);
extern void pr_beep(void);
extern void mpr(int, s_char *, ...);
/* radmap.c */
extern void radmap2(int, int , int , int , int , double , int );
extern int deltx(struct range * , coord );
/* Prototype include a typedef name.
It should be moved after the typedef declaration */
extern int delty(struct range * , coord );
/* Prototype include a typedef name.
It should be moved after the typedef declaration */
extern void radmap(int , int , int , int , double );
extern void radmapnopr(int , int , int , int , double );
extern void radmapupd(int, int , int , int , int , double );
/* rej.c */
extern int setrel(natid , natid , int );
extern int setcont(natid , natid , int );
extern int setrej(natid , natid , int , int );
/* retreat.c */
extern void retreat_ship(struct shpstr * , s_char );
extern int retreat_ship1(struct shpstr * , s_char , int );
extern int findcondition(s_char );
extern void retreat_land(struct lndstr * , s_char );
extern int retreat_land1(struct lndstr * , s_char , int );
extern int check_retreat_and_do_shipdamage(struct shpstr * , int );
extern int check_retreat_and_do_landdamage(struct lndstr * , int );
/* sarg.c */
extern int sarg_type(s_char * );
extern int sarg_xy(s_char * , coord * , coord * );
extern int sarg_getrange(s_char * , register struct range * );
extern int sarg_area(s_char * , register struct range * );
extern int sarg_range(s_char * , coord * , coord * , int * );
extern int sarg_list(s_char * , register int * , int );
/* satmap.c */
extern void satdisp(struct sctstr * , int , int );
extern void satmap(int , int , int , int , int , int );
extern void sathead(void );
/* sect.c */
extern int sct_postread(int, s_char * );
extern int checksect(struct sctstr * );
extern int sct_prewrite(int , s_char * );
extern int issector(s_char * );
extern void sct_init(coord , coord , s_char * );
/* ship.c */
extern s_char * prship(struct shpstr * );
extern int shp_postread(int, s_char * );
extern int shp_prewrite(int , s_char * );
extern void shp_init(int , s_char * );
/* show.c */
extern void sort_lookup_list(void );
extern void show_bridge(int );
extern void show_tower(int );
extern void show_nuke_stats(int );
extern void show_nuke_capab(int );
extern void show_nuke_build(int );
extern void show_ship_build(int );
extern void show_ship_stats(int );
extern void show_ship_capab(int );
extern void show_plane_stats(int );
extern void show_plane_capab(int );
extern void show_plane_build(int );
extern void show_land_build(int );
extern void show_land_capab(int );
extern void show_land_stats(int );
extern void show_sect_build(int );
extern void show_sect_stats(int );
extern void show_sect_capab(int );
/* shpsub.c */
extern void shp_sel(struct nstr_item * , struct emp_qelem * );
extern void shp_nav(struct emp_qelem * , double * , double * , int * ,
natid );
extern int shp_check_one_mines(struct mlist *);
extern int shp_sweep(struct emp_qelem * , int , natid );
extern int shp_interdict(struct emp_qelem * , coord , coord , natid );
extern void shp_mess(s_char * , struct mlist * );
extern int shp_check_mines(struct emp_qelem * );
extern int shp_check_nav(struct sctstr * );
extern s_char * shp_path(int , struct shpstr * , s_char * );
extern void shp_put(struct emp_qelem * , natid );
extern int shp_hit_mine(struct shpstr * , struct mchrstr * );
extern void shp_list(struct emp_qelem * );
extern int shp_hardtarget(struct shpstr * );
extern void shp_view(struct emp_qelem * );
extern int shp_nav_one_sector(struct emp_qelem * , int , natid , int );
extern int shp_missile_defense(coord , coord , natid , int );
extern void shp_missdef(struct shpstr * , natid );
/* snxtitem.c */
extern int snxtitem(register struct nstr_item * , int , s_char * );
/* snxtsct.c */
extern int snxtsct(register struct nstr_sect * , s_char * );
/* supply.c */
extern void resupply_all(struct lndstr * );
extern void resupply_commod(struct lndstr * , int );
extern int get_minimum(struct lndstr * , int );
extern int supply_commod(int , int , int , int , int );
extern int s_commod(int , int , int , int , int , int );
extern int try_supply_commod(int , int , int , int , int );
extern s_char * itemname(int );
extern int at_minimum(struct lndstr * , int );
extern int has_supply(struct lndstr * );
extern int use_supply(struct lndstr * );
/* takeover.c */
extern void takeover_land(register struct lndstr * , natid , int );
extern void takeover(register struct sctstr * , natid );
extern void takeover_ship(register struct shpstr * , natid , int );
/* trdsub.c */
extern int trade_check_ok(int, struct trdstr *, union trdgenstr *);
extern s_char * trade_nameof(struct trdstr * , union trdgenstr * );
extern int trade_desc(struct trdstr * , union trdgenstr * );
extern int trade_getitem(struct trdstr * , union trdgenstr * );
extern long get_couval(int );
extern long get_outstand(int );
extern struct ichrstr * whichitem(char );
/* trechk.c */
extern int trechk(register natid , register natid , int );
/* whatitem.c */
extern struct ichrstr * whatitem(s_char * , s_char * );
/* wire.c */
extern int typed_wire(natid , natid , s_char * , int );
/* wu.c */
extern void clear_telegram_is_new(natid );
extern int typed_wu(natid , natid , s_char * , int );
extern int wu(natid, natid, s_char *, ...);
/*
* src/lib/update/ *.c
*/
/* age.c */
extern void age_levels(int );
/* anno.c */
extern void delete_old_announcements(void );
/* bp.c */
extern void fill_update_array(int * , struct sctstr * );
extern int * get_wp(int * , struct sctstr * , int );
extern int gt_bg_nmbr(int * , struct sctstr * , int );
extern void pt_bg_nmbr(int * , struct sctstr * , int , int );
/* deliver.c */
extern int deliver(register struct sctstr * , struct ichrstr * , int , int , int , int );
/* distribute.c */
extern int dodistribute(struct sctstr * , int , s_char * , double , double );
/* finish.c */
extern void finish_sects(int );
/* human.c */
extern int do_feed(register struct sctstr * , register struct natstr * ,
int * , int * , int * , int );
extern int growfood(struct sctstr * , register int * , int , int );
extern int feed_people(register int * , int , int * );
extern void starvation(struct sctstr * );
extern int grow_people(struct sctstr * , register int ,
register struct natstr * , int * , int ,
register int * );
extern void trunc_people(struct sctstr * , register struct natstr * ,
register int * );
/* land.c */
extern void upd_land(register struct lndstr * , int , register int , struct natstr * , int * , int );
extern int prod_land(int , int , int * , int );
extern int landrepair(register struct lndstr * , int * , struct natstr * , int * , int );
extern int feed_land(struct lndstr * , register int * , int , int * , int );
extern int plague_land(struct lndstr * , struct natstr * , register int * , register int * , int );
/* main.c */
extern void update_main(void * );
extern void do_prod(int , int , int , int * , long int (*)[2] , int * , int * , int * , int * , int * , int * );
/* material.c */
extern void get_materials(struct sctstr * , int * , int * , int );
/* mobility.c */
extern void mob_sect(register int );
extern void do_mob_sect(register struct sctstr * , register int );
extern void mob_ship(register int );
extern void do_mob_ship(register struct shpstr * , register int );
extern void mob_land(register int );
extern void do_mob_land(register struct lndstr * , register int );
extern void mob_plane(register int );
extern void do_mob_plane(register struct plnstr * , register int );
extern void do_mob_sect(register struct sctstr *sp, register int etus);
extern void update_all_mob(void);
extern void update_timestamps(time_t offset);
extern void sct_do_upd_mob(register struct sctstr *sp);
extern void shp_do_upd_mob(register struct shpstr *sp);
extern void lnd_do_upd_mob(register struct lndstr *lp);
extern void pln_do_upd_mob(register struct plnstr *pp);
/* move_sat.c */
extern void move_sat(register struct plnstr * );
/* nat.c */
extern double logx(double , double );
extern double limit_level(double , int , int );
extern void prod_nat(int );
extern void share_incr(register double * , register double * );
/* nav_ship.c */
extern void scuttle_it(register struct shpstr * );
extern void swap(register struct shpstr * );
extern int nav_ship(register struct shpstr * );
/* nav_util.c */
extern int check_nav(struct sctstr * );
extern int load_it(register struct shpstr * , register struct sctstr * , int );
extern int com_num(s_char * );
extern void unload_it(register struct shpstr * );
extern void auto_fuel_ship(register struct shpstr * );
/* nxtitemp.c */
extern s_char * nxtitemp(struct nstr_item * , int );
/* nxtsctp.c */
extern struct sctstr * nxtsctp(register struct nstr_sect * );
/* plague.c */
extern void do_plague(struct sctstr * , struct natstr * , int );
extern int infect_people(struct natstr * , register int * , u_int , int , struct sctstr *);
extern int plague_people(struct natstr * , register int * , register int * , int );
/* plane.c */
extern int prod_plane(int , int , int * , int );
/* populace.c */
extern void populace(struct natstr * , register struct sctstr * , register int * , int );
extern int total_work(register int , register int , register int , register int , register int );
/* prepare.c */
extern void tax(struct sctstr * , struct natstr * , int , long * , int * , int * , int * );
extern int upd_slmilcosts(natid , int );
extern void prepare_sects(int , int * );
extern int bank_income(struct sctstr * , int );
/* produce.c */
extern int produce(struct natstr * , struct sctstr * , int * , int , int , int , int , int * , int * );
extern int materials_cost(struct pchrstr * , register int * , int * );
extern void materials_charge(struct pchrstr * , register int * , register int );
/* removewants.c */
extern int update_removewants(void );
/* revolt.c */
extern void take_casualties(struct sctstr * , int );
extern void revolt(struct sctstr * );
extern void guerrilla(struct sctstr * );
/* sail.c */
extern void fltp_to_list(struct fltheadstr * , struct emp_qelem * );
extern void sail_ship(natid );
/* sect.c */
extern int dodeliver(struct sctstr * , int * );
extern int upd_buildeff(struct natstr * , register struct sctstr * , int * , int * , int , int * , int , int * );
extern int enlist(register int * , int , int * );
extern void meltitems(int , int , int , int * , int , int , int , int );
extern void do_fallout(register struct sctstr * , register int );
extern void spread_fallout(struct sctstr * , int );
extern void decay_fallout(struct sctstr * , int );
extern void produce_sect(int natnum, int etu, int *bp, long int (*p_sect)[2],
int sector_type);
/* ship.c */
extern void upd_ship(register struct shpstr * , int , register int , struct natstr * , int * , int );
extern int prod_ship(int , int , int * , int );
extern int shiprepair(register struct shpstr * , int * , struct natstr * , int * , int );
extern int feed_ship(struct shpstr * , register int * , int , int * , int );
/*
* src/server
*/
/* shutdown.c */
extern void shutdown_init(void);
extern void shutdown_sequence(int argc, s_char **argv);
#endif /* _PROTOTYPES_H_ */