empserver/include/optlist.h
Markus Armbruster 71320ed67f New update scheduler:
(schedulefil): New.
(set_dirs, set_paths): Rename.  Initialize schedulfil.
(read_schedule): New.  Can read several updates, which will be used in
later changesets.
(update_time): Change to array.  Will be used in later changesets.
(update_schedule_anchor): New.
(update_init): Initialize it.
(update_get_schedule): New.
(update_init): Call it to initialize update_time[].
(update_sched): Rewrite.
(update_forced, update_wanted): Replace.
(update_reschedule): New.
(main): Call it on SIGHUP to reload the schedule.
(update_trigger, update_force, force, player_coms): Drop force's
capability to schedule updates in the future, because it's not worth
the trouble to implement again.  Deities can simply edit the schedule
file to schedule updates.  Remove update_force() and
update_trigger()'s parameter.
(upda): Update for new scheduler.  Take care to keep output the same
as far as possible, even though it's ugly, to avoid breaking clients.
(update_policy, adj_update, update_times, hourslop, blitz_time):
econfig keys removed.
(update_demand, UPD_DEMAND_NONE, UPD_DEMAND_SCHED, UPD_DEMAND_ASYNC)
(update_demandpolicy, UDP_NORMAL, UDP_TIMES, UDP_NORMAL, UDP_BLITZ)
(UDP_MAX, UDP_DEFAULT, UDDEM_TMCHECK, UDDEM_COMSET, UDDEM_DISABLE)
(UDDEM_MAX, UDDEM_DEFAULT): econfig key and values replaced.  Users
changed.  wantupd.h is now empty, remove.
(demand_check): External linkage.
(update_policy_check): Now pointless, remove.
(is_daytime_near, min_to_next_daytime, regular_update_time)
(scheduled_update_time, next_scheduled_time, updatetime)
(next_update_time, next_update_check_time): Unused, Remove.

(demand_check, demandupdatecheck): Move call of demand_update_time()
from demand_check(), which controls all demand updates, to
demandupdatecheck(), which controls only unscheduled ones.  Fixes
update command not to lie about the next scheduled demand update.

(demandupdatecheck): Check updates_disabled() so that zdone no longer
claims to trigger an update when it can't.
2007-07-11 22:27:29 +00:00

80 lines
2.3 KiB
C

/*
* Empire - A multi-player, client/server Internet based war game.
* Copyright (C) 1986-2007, 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 files README, COPYING and CREDITS in the root of the source
* tree for related information and legal notices. It is expected
* that future projects/authors will amend these files as needed.
*
* ---
*
* optlist.h: Definitions of option listings
*
* Known contributors to this file:
* Ken Stevens, 1995
* Steve McClure, 1998
*/
#ifndef OPTLIST_H
#define OPTLIST_H
#include "nsc.h"
extern char dflt_econfig[];
/* Game parameters, can be set in econfig */
#define EMP_CONFIG_H_OUTPUT
#include "econfig-spec.h"
#undef EMP_CONFIG_H_OUTPUT
extern char *configdir;
extern char *schedulefil;
extern char motdfil[];
extern char downfil[];
extern char disablefil[];
extern char annfil[];
extern char timestampfil[];
extern char teldir[];
extern char telfil[];
enum {
KM_ALLOC = 1, /* memory allocated */
KM_INTERNAL = 2, /* not to be disclosed to players */
KM_OPTION = 4 /* historically an option */
};
enum {
UPD_DEMAND_NONE, /* no demand updates */
UPD_DEMAND_SCHED, /* scheduled updates are demand updates */
UPD_DEMAND_ASYNC, /* zdone triggers unscheduled update */
};
struct keymatch {
char *km_key; /* the key */
nsc_type km_type; /* type of associated data */
void *km_data; /* pointer to associated data */
int km_flags; /* useful flags */
char *km_comment; /* Comment (hopefully useful) */
};
extern struct keymatch configkeys[];
#endif