declarations elsewhere. Change linkage of some functions to static.
extern struct castr genitem_ca[];
extern struct castr map_ca[];
extern struct castr bmp_ca[];
+extern struct castr lost_ca[];
extern struct castr commodity_ca[];
/* src/lib/subs/nstr.c */
/* Game parameters that cannot be set in econfig (yet) */
extern int melt_item_denom[];
+extern float start_education;
+extern float start_happiness;
+extern float start_technology;
+extern float start_research;
#ifdef START_UNITS
int start_unit_type[];
#endif
extern s_char *banfil;
extern s_char *authfil;
extern s_char *timestampfil;
+/* teldir, telfil, annfil are in tel.h */
struct keymatch {
s_char *km_key; /* the key */
#endif
#include <string.h>
-void wrmakesrc(char *pathname);
-void wripglob(char *filename);
-void wrauth(char *filename);
-void wrgamesdef(char *filename);
+static void wrmakesrc(char *pathname);
+static void wripglob(char *filename);
+static void wrauth(char *filename);
+static void wrgamesdef(char *filename);
char *_c_copyright_header =
"/*\n * Empire - A multi-player, client/server Internet based war game.\n * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,\n * Ken Stevens, Steve McClure\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * ---\n *\n * See the \"LEGAL\", \"LICENSE\", \"CREDITS\" and \"README\" files for all the\n * related information and legal notices. It is expected that any future\n * projects/authors will amend these files as needed.\n *\n * ---\n *\n * gamesdef.h: This is an auto-generated file.\n * \n * Known contributors to this file:\n * Automatically generated by doconfig.c\n */\n\n";
exit(0);
}
-void
+static void
wrmakesrc(char *pathname)
{
FILE *fp;
fclose(fp);
}
-void
+static void
wripglob(char *filename)
{
FILE *fp;
fclose(fp);
}
-void
+static void
wrauth(char *filename)
{
FILE *fp;
fclose(fp);
}
-void
+static void
wrgamesdef(char *filename)
{
FILE *fp;
#include "tel.h"
#include "land.h"
#include "commands.h"
-
-extern float start_education, start_happiness;
-extern float start_technology, start_research;
+#include "optlist.h"
int
add(void)
#include "commands.h"
#include "optlist.h"
-extern int etu_per_update;
-extern int sect_mob_neg_factor;
/*
* format: anti <SECT>
*/
#define MIN(x,y) ((x) > (y) ? (y) : (x))
#endif
-extern int etu_per_update;
-extern double bankint;
-extern double money_civ;
-extern double money_uw;
-extern double money_mil;
-extern double obrate, uwbrate;
-extern int etu_per_update;
-extern double money_res;
-
static void calc_all(long int (*p_sect)[2], int *taxes, int *Ncivs,
int *Nuws, int *bars, int *Nbars, int *mil,
int *ships, int *sbuild, int *nsbuild, int *smaint,
static int cash; /* static ok */
-extern int morale_base;
-extern int sect_mob_neg_factor;
-extern int etu_per_update;
-
/*
* build <WHAT> <SECTS> <TYPE|DIR|MEG> [NUMBER]
*/
#include "commands.h"
#include "optlist.h"
-extern int MARK_DELAY;
-
/*
* format: buy <COMMODITY>
*
static int explore_map(s_char *what, coord curx, coord cury, s_char *arg);
-extern int etu_per_update;
-extern int sect_mob_neg_factor;
-
int
explore(void)
{
extern int alphasort(const struct dirent *const *,
const struct dirent *const *);
#endif
- extern s_char *infodir;
static time_t lastmodtime;
static int number;
static struct dirent **dp;
int
info(void)
{
- extern s_char *infodir;
s_char buf[255];
FILE *fp;
s_char *bp;
static int
printdir(void)
{
- extern s_char *infodir;
HANDLE hDir;
WIN32_FIND_DATA fData;
int count;
int
apro(void)
{
- extern s_char *infodir;
HANDLE hDir;
WIN32_FIND_DATA fData;
FILE *fp;
#define LOAD 1
#define UNLOAD -1
-void gift(int givee, int giver, s_char *ptr, int type, s_char *mesg);
static int load_plane_ship(struct sctstr *sectp, struct shpstr *sp,
int noisy, int load_unload, int *nshipsp);
static int load_land_ship(struct sctstr *sectp, struct shpstr *sp,
#include "nat.h"
#include "deity.h"
#include "commands.h"
-
-extern int morale_base;
+#include "optlist.h"
int
morale(void)
#include <fcntl.h>
#include <math.h>
-extern float start_education, start_happiness;
-extern float start_technology, start_research;
-extern int morale_base;
-
static int deity_build_land(int, coord, coord, natid, int);
static int isok(int x, int y);
static void ok(s_char *map, int x, int y);
int
new(void)
{
-#ifdef START_UNITS
- extern int start_unit_type[START_UNITS];
-#endif /* START_UNITS */
struct sctstr sect;
struct natstr *natp;
struct boundstr newrealms;
#include "land.h"
#include "commands.h"
-extern int etu_per_update;
static void starv_sects(s_char *range);
static void starv_ships(s_char *range);
static void starv_units(s_char *range);
int ntargets);
static int fire_torp(struct shpstr *, struct shpstr *, int, int);
-s_char *prsub(struct shpstr *sp);
-
int
torp(void)
{
#include "commands.h"
#include "optlist.h"
-extern int sect_mob_neg_factor;
-extern int etu_per_update;
-extern int TRADE_DELAY;
-
/*
* format: trade
*/
#include "optlist.h"
#include "commands.h"
-extern float drnuke_const;
-
int
vers(void)
{
#include "misc.h"
#include "nat.h"
#include "file.h"
-
-extern float fire_range_factor;
+#include "optlist.h"
double
tfact(natid cn, double mult)
#include "match.h"
#include "file.h"
#include "optlist.h"
+#include "tel.h"
#include "gen.h" /* parse */
/* for systems without strdup */
char *name;
};
-extern s_char *upfil, *downfil, *disablefil, *banfil, *authfil;
-extern s_char *commfil, *annfil, *telfil, *teldir, *timestampfil;
-
/* list of other well known files... -maybe tailor these oneday
* anyway - meantime they are all relative to datadir */
static struct otherfiles ofiles[] = {
#include "empthread.h"
-extern struct player *player; /* XXX */
-
struct iop {
int fd;
struct ioqueue *input;
lwpInitContext(volatile struct lwpProc *volatile newp, void *sp)
{
static jmp_buf *cpp;
- extern struct lwpProc *LwpCurrent;
if (!lwpSave(LwpCurrent->context)) {
cpp = (jmp_buf *) & newp->context;
lwpInitContext(struct lwpProc *newp, void *sp)
{
static jmp_buf *cpp;
- extern struct lwpProc *LwpCurrent;
memset(newp->context, 0, sizeof(newp->context));
newp->context[0] = (int)sp;
#include <bounds/unchecked.h>
#endif
-#ifdef hpc
-extern struct lwpProc *initcontext;
-extern int startpoint;
-#endif
-
struct lwpQueue LwpSchedQ[LWP_MAX_PRIO], LwpDeadQ;
struct lwpProc *LwpCurrent = NULL;
/* more inefficient the context switch time */
#define LCOUNT -1
+#ifdef hpc
+extern struct lwpProc *initcontext;
+extern int startpoint;
+#endif
+
#ifdef hpux
int lwpSave(jmp_buf);
void lwpRestore(jmp_buf);
#include <fcntl.h>
struct player *player;
-extern int m_m_p_d;
void
player_main(struct player *p)
#include "optlist.h"
#include "prototypes.h"
-void kaboom(int x, int y, int rad, natid cn);
+static void kaboom(int x, int y, int rad, natid cn);
int
detonate(struct plnstr *pp, int x, int y)
/*
* silly to be sure.
*/
-void
+static void
kaboom(int x, int y, int rad, natid cn)
{
mpr(cn, "\n\nK A B ");
#include "prototypes.h"
#include "optlist.h"
-extern struct castr sect_ca[];
-extern struct castr news_ca[];
-extern struct castr loan_ca[];
-extern struct castr ship_ca[];
-extern struct castr plane_ca[];
-extern struct castr treaty_ca[];
-extern struct castr nuke_ca[];
-extern struct castr trade_ca[];
-extern struct castr commodity_ca[];
-extern struct castr lost_ca[];
-
struct fileinit fileinit[EF_MAX] = {
{(ef_fileinit)sct_init, sct_postread, sct_prewrite, sect_ca},
{shp_init, shp_postread, shp_prewrite, ship_ca},
#define QUIET 0
#define NOISY 1
-extern double tfactfire(natid, double);
-
/*
* See if any nearby ships will open up on the attacker
* Return damage done to attacker, if any.
#include "file.h"
#include "prototypes.h"
-extern s_char *effadv(int);
-
int
shipsatxy(coord x, coord y, int wantflags, int nowantflags)
{
#include "optlist.h"
#include "prototypes.h"
-extern int etu_per_update;
-
int
attack_val(int combat_mode, struct lndstr *lp)
{
lnd_fort_interdiction(struct emp_qelem *list,
coord newx, coord newy, natid victim)
{
- extern int fort_max_interdiction_range;
struct nstr_sect ns;
struct sctstr fsect;
int trange;
#include "optlist.h"
#include "server.h"
-extern s_char *relates[];
-
int
setrel(natid us, natid them, int rel)
{
check_nav(sect)
struct sctstr *sect;
{
- extern struct dchrstr dchr[];
-
switch (dchr[sect->sct_type].d_flg & 03) {
case NAVOK:
break;
#include "prototypes.h"
#include "optlist.h"
-void satdisp(struct sctstr *sp, int acc, int showstuff);
-
static s_char **rad;
static s_char *radbuf;
#include "server.h"
#include "prototypes.h"
-extern double tfactfire(natid, double);
-
-extern int etu_per_update;
-
static int shp_check_nav(struct sctstr *);
static int shp_check_one_mines(struct mlist *);
static int shp_hit_mine(struct shpstr *, struct mchrstr *);
#define CHE_MAX 255
-void takeover_land(register struct lndstr *landp, natid newown,
- int hostile);
-void takeover_plane(register struct plnstr *pp, natid newown);
-
void
takeover(register struct sctstr *sp, natid newown)
{
#endif /* SAVE_FINISH_PATHS */
static void assemble_dist_paths(struct distinfo *distptrs);
-s_char *BestDistPath(s_char *, struct sctstr *, struct sctstr *, double *, int);
-s_char *ReversePath(s_char *path);
-double pathcost(struct sctstr *, s_char *, int);
+static s_char *ReversePath(s_char *path);
void
finish_sects(int etu)
}
}
-s_char *
+static s_char *
ReversePath(s_char *path)
{
s_char *patharray = "aucdefjhigklmyopqrstbvwxnz";
long air_money[MAXNOC];
long tpops[MAXNOC];
-extern int mil_dbl_pay;
int update_pending = 0;
static void do_prod(int, int, int, int *, long int (*)[2], int *, int *,
* level of 0 yields (1) 0.4, (6) 2.2, (12) 3.9, (18) 5.2.
*/
-extern float hap_avg;
-extern float edu_avg;
-extern float ally_factor;
-
static void share_incr(register double *, register double *);
/*
#include "common.h"
#include <stdlib.h>
-extern int check_nav(struct sctstr *sect);
static void swap(register struct shpstr *);
static void
#include "gen.h"
#include "common.h"
-extern float levels[MAXNOC][4];
-
void
prepare_sects(int etu, int *bp)
{
#include "lost.h"
#include "gen.h"
-extern float levels[MAXNOC][4];
-
int
dodeliver(struct sctstr *sp, int *vec)
{
/* Fallout is calculated here. */
-extern int melt_item_denom[];
-
static void
meltitems(int etus, int fallout, int own, int *vec, int type, int x, int y,
int uid)
#include "server.h"
#include "prototypes.h"
-void nullify_objects(void);
-void init_files(void);
-void close_files(void);
+static void nullify_objects(void);
+static void init_files(void);
+static void close_files(void);
#if defined(_WIN32)
static void loc_NTInit(void);
static void loc_NTTerm(void);
#endif
-extern void mobility_init(void);
-extern void mobility_check(void *);
-extern void market_update(void *);
-
#if !defined(_WIN32)
static int mainpid = 0;
#endif
return 0;
}
-void
+static void
init_files(void)
{
ef_open(EF_NATION, O_RDWR, EFF_MEM);
ef_open(EF_LOST, O_RDWR, 0);
}
-void
+static void
close_files(void)
{
ef_close(EF_NATION);
}
-void
+static void
nullify_objects(void)
{
int i, j;
empth_sem_t *update_sem;
-extern void update_main(void *);
static void update_wait(void *argv);
time_t update_time;
const char *numletter =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-void parse_args(int argc, char *argv[]);
-int allocate_memory(void);
-void init(void);
-int drift(void);
-void grow_continents(void);
-void create_elevations(void);
-void write_sects(void);
-int write_file(void);
-void output(void);
-int write_newcap_script(void);
-int stable(void);
-void elevate_land(void);
-void elevate_sea(void);
-void translate_continents(void);
-int map_symbol(int x, int y);
+static void parse_args(int argc, char *argv[]);
+static int allocate_memory(void);
+static void init(void);
+static int drift(void);
+static void grow_continents(void);
+static void create_elevations(void);
+static void write_sects(void);
+static int write_file(void);
+static void output(void);
+static int write_newcap_script(void);
+static int stable(void);
+static void elevate_land(void);
+static void elevate_sea(void);
+static void translate_continents(void);
+static int map_symbol(int x, int y);
static void fl_sct_init(coord x, coord y, s_char *ptr);
-void print_vars(void);
-void fl_move(int);
-void next_coast(int c, int x, int y, int *xp, int *yp);
-void grow_islands(void);
+static void print_vars(void);
+static void fl_move(int);
+static void next_coast(int c, int x, int y, int *xp, int *yp);
+static void grow_islands(void);
/****************************************************************************
MAIN
exit(0);
}
-void
+static void
print_vars(void)
{
if (quiet)
PARSE COMMAND LINE ARGUMENTS
****************************************************************************/
-void
+static void
parse_args(int argc, char *argv[])
{
if (argc < 2 || argc > 8) {
VARIABLE INITIALIZATION
****************************************************************************/
-int
+static int
allocate_memory(void)
{
int i;
return 0;
}
-void
+static void
init(void)
{
int i, j, xx = 0, yy = 0;
/* Drift all the capitals
*/
-int
+static int
drift(void)
{
int i, turns;
/* Check to see if we have stabilized--can we stop drifting the capitals?
*/
-int
+static int
stable(void)
{
int i, isod, d = 0, stab = 1;
/* This routine does the actual drifting
*/
-void
+static void
fl_move(int j)
{
int i, n, newx, newy;
/* Move along the coast in a clockwise direction.
*/
-void
+static void
next_coast(int c, int x, int y, int *xp, int *yp)
{
int i, nx, ny, wat = 0;
/* Grow all the continents
*/
-void
+static void
grow_continents(void)
{
int c;
/* Grow all the islands
*/
-void
+static void
grow_islands(void)
{
int c, x, y, isiz;
/****************************************************************************
CREATE ELEVATIONS
****************************************************************************/
-void
+static void
create_elevations(void)
{
elevate_land();
/* Decide where the mountains go
*/
-void
+static void
elevate_land(void)
{
int i, mountain_search, k, c, total, ns, nm, highest, where, h, newk,
#define distance_to_land() distance_to_what(x, y, 1)
-void
+static void
elevate_sea(void)
{
int x, y;
DESIGNATE THE SECTORS
****************************************************************************/
-void
+static void
write_sects(void)
{
register struct sctstr *sct;
/****************************************************************************
WRITE ALL THIS STUFF TO THE FILE
****************************************************************************/
-int
+static int
write_file(void)
{
int n;
/****************************************************************************
PRINT A PICTURE OF THE MAP TO YOUR SCREEN
****************************************************************************/
-void
+static void
output(void)
{
int i, j;
}
/* Reorder the continents from top left to bottom right */
-void
+static void
translate_continents(void)
{
int i, j, n = 0, k, gotit, c;
}
}
-int
+static int
map_symbol(int x, int y)
{
int c, iscap = 0;
/***************************************************************************
WRITE A SCRIPT FOR PLACING CAPITALS
****************************************************************************/
-int
+static int
write_newcap_script(void)
{
int c;
fputs(str, stdout);
}
-void
+static void
fl_sct_init(coord x, coord y, s_char *ptr)
{
struct sctstr *sp = (struct sctstr *)ptr;