(EF_COUNTRY, cou_ca): New.

(empfile): Add it.
(xdvisible): Deal with it.
(ef_open_srv, ef_close_srv): Set it up.
(ef_init_view, ef_fina_view): New.
This commit is contained in:
Markus Armbruster 2006-01-14 16:28:33 +00:00
parent 21e3c9d55e
commit 9eba732cc3
6 changed files with 44 additions and 6 deletions

View file

@ -54,6 +54,8 @@ static struct fileinit fileinit[] = {
static void ef_open_srv(void);
static void ef_close_srv(void);
static int ef_init_view(int, int);
static void ef_fina_view(int);
/*
* Initialize empfile for full server operations.
@ -107,6 +109,7 @@ ef_open_srv(void)
failed |= !ef_open(EF_COMM, 0);
failed |= !ef_open(EF_LOST, 0);
failed |= !ef_open(EF_REALM, EFF_MEM);
failed |= ef_init_view(EF_COUNTRY, EF_NATION);
if (failed) {
logerror("Missing files, giving up");
exit(EXIT_FAILURE);
@ -116,6 +119,7 @@ ef_open_srv(void)
static void
ef_close_srv(void)
{
ef_fina_view(EF_COUNTRY);
ef_close(EF_NATION);
ef_close(EF_SECTOR);
ef_close(EF_SHIP);
@ -133,3 +137,23 @@ ef_close_srv(void)
ef_close(EF_LOST);
ef_close(EF_REALM);
}
static int
ef_init_view(int type, int base)
{
if (CANT_HAPPEN(!(empfile[base].flags & EFF_MEM)))
return -1;
empfile[type].cache = empfile[base].cache;
empfile[type].csize = empfile[base].csize;
empfile[type].flags |= EFF_MEM;
empfile[type].baseid = empfile[base].baseid;
empfile[type].cids = empfile[base].cids;
empfile[type].fids = empfile[base].fids;
return 0;
}
static void
ef_fina_view(int type)
{
empfile[type].cache = NULL;
}