Commit graph

147 commits

Author SHA1 Message Date
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
Ron Koenderink
856dcb7c5c (journal_entry): Add unsigned char cast to isprint() call.
(parse): Add unsigned char cast to isspace() call.
Portability bug fix for WIN32.
2007-03-10 18:12:29 +00:00
Ron Koenderink
0978c0c4fc (accept.c, io.c, nthread.c, tcp_listen.c) [_WIN32,WIN32]:
Remove the define WIN32.
Not required for VC8.
2007-02-23 22:51:30 +00:00
c5719fb3be (can_listen): Never returns; change return type to void. 2007-01-17 19:22:49 +00:00
63bdc89835 Update copyright notice. 2007-01-09 19:09:31 +00:00
Ron Koenderink
4c9293f9ea Remove optlist.h, not required.
Add empthread.h, needed for empth_request_shutdown() and
empth_wait_for_signal().
2006-07-11 22:08:10 +00:00
c54cb0e8e8 Change system header inclusion order to make crufty old systems happy. 2006-07-11 19:11:55 +00:00
acad2240e0 Fix the previous revision (system header inclusion cleanup), it
doesn't compile on crufty old systems.
2006-07-11 18:42:08 +00:00
f4e018b6ee Back out the previous revision (system header inclusion cleanup), it
doesn't compile on crufty old systems.
2006-07-11 18:11:03 +00:00
e42053d928 Break inclusion cycle: prototypes.h and commands.h included each
other.  Ensure headers in include/ can be included in any order
(except for econfig-spec.h, which is special).  New header types.h to
help avoid inclusion cycles.  Sort include directives.  Remove some
superflous includes.
2006-07-10 06:37:23 +00:00
Ron Koenderink
0e4eb6bf0a (install_service, info, apro) [_WIN32]: Convert to standard snprintf()
from _snprintf().

[_WIN32]: Add #define snprintf to convert to _snprintf for WIN32
Visual Studio.
2006-06-23 00:13:21 +00:00
b9017dbde9 (chance, roundavg): Simplify. No functional change. 2006-06-17 12:40:25 +00:00
3f23320a7e (tcp_listen): Don't print null host. 2006-06-15 18:34:46 +00:00
Ron Koenderink
4a5700e572 (service_main) [_WIN32]: Added the missing empth_wait_for_signal() and
shutdown() for when the server is running at WIN32 service.  This fix
incorporates the changes that where done to the main thread.
2006-06-10 04:11:16 +00:00
0c6d9e108c (cant_listen): Supply missing newline. 2006-06-08 20:55:17 +00:00
f3e85c2f70 Coding style, comments, spelling... 2006-05-26 18:46:50 +00:00
0d842c47f7 Purge the register keyword. 2006-05-21 13:18:57 +00:00
cd73a47dfa Remove superflous casts and parenthesis. 2006-05-21 12:24:30 +00:00
cee8e126a2 Remove declaration that should have been removed in rev. 1.9. Doc
fix.  register purge.
2006-04-30 13:20:48 +00:00
8f998de170 Remove dead code. 2006-04-30 08:43:28 +00:00
0c8c169f88 (s_char): Remove. Use signed char for small integers, plain char for
characters.
2006-04-29 16:25:17 +00:00
a988b907fc s_char purge directed by compiler warnings. 2006-04-29 06:41:45 +00:00
6fee3f4535 (CANT_REACH): New. Use it instead of CANT_HAPPEN() where possible.
(oops): Cope with NULL argument passed by CANT_REACH().
2006-04-17 17:36:07 +00:00
7d5a6b817e (iop): Remove unused members assoc, notify.
(io_open): Remove unused parameters assoc, notify.  Caller changed.
2006-03-29 19:19:47 +00:00
a77a8c3abd (emp_config): Failed to call set_dirs() when default econfig file
doesn't exist.
2006-03-29 13:14:55 +00:00
3aea505aa7 Cosmetics. 2006-03-27 19:50:38 +00:00
21bf6b41d4 Use NULL instead of (FOO *)0, it's easier to read. 2006-03-23 20:48:49 +00:00
Ron Koenderink
2147583a9e (set_dirs) [_WIN32]: Add the ability to deal with Windows
file and directory names.
2006-02-21 20:15:55 +00:00
d69dfc2b09 (set_dirs): New, factored out of emp_config(). Also fix for relative
file name argument.
2006-02-19 18:36:36 +00:00
b4161cd7e2 (mchr, plchr, lchr, nchr): Move initializer to new builtin config
files ship.config, plane.config, land.config, nuke.config.
(empfile): Declare the new config files.
(install, installdirs): Install them.
(builtins): New make variable.
2006-02-19 09:15:46 +00:00
ac0263d2ae (emp_config): Non-portable strndup() crept into rev. 1.33. Replace by
portable code.
2006-02-18 16:48:23 +00:00
3a9f9f6b3e (print_config): When km_comment starts with '#', don't prepend "\n#". 2006-02-18 16:12:50 +00:00
e4865d473e (configdir): New, to be used for loading configuration tables.
(emp_config): Set it to econfig's directory.
2006-02-18 12:43:17 +00:00
4515b84c59 COPYING duplicates information from README. Remove. Move GPL from
LICENSE to COPYING, because that's where it usually is.  Update all
the references to these files.
2006-01-21 19:48:41 +00:00
Ron Koenderink
04a8b84592 (ship_bomb, deli, do_demo, fuel, grin, look_ship)
(ltend, multifire, quite_bigdef, mine, landmine)
(do_loan, prod, printdiff, sell, sona, stre)
(tend, fire_dchrg, vers, work, ac_planedamage)
(ac_shipflak, ask_off, get_mine_dsupport, att_fight)
(ask_move_in_off, detonate, sd, land_gun)
(land_unitgun, lnd_fort_interdiction, lnd_fortify)
(perform_mission, pln_mine, pln_mobcost)
(retreat_ship1, retreat_land1, shp_sweep)
(shp_fort_interdiction, shp_missle_defense)
(new_work, growfood, upd_land, land_repair)
(get_materials, do_mob_ship, do_mob_land)
(load_it, unload_it, prod_plane, produce)
(guerrilla, upd_buildeff, spread_fallout)
(upd_ship, ship_repair, min, dmin, MIN):
Remove min() and dmin() functions and replace
with a MIN macro in misc.h.  Remove local MIN
macros and use the new one in misc.h.  This
change removes the need for the special
case for _WIN32.

(fuel, look_ship, multifire, mission, sona)
(plane_sona, ef_open, player_accept, player_main)
(ac_dog, att_get_combat, calc_mobcost)
(ask_move_in_off, intelligence_report)
(build_mission_list_type, perform_mission)
(show_mission, use_supply, dodistribute)
(allocate_memory, max, dmax, MAX):
Remove max() and dmax() functions and replace
with a MAX macro in misc.h.  Remove local MAX
macros and use the new one in misc.h.  This
change removes the need for the special
case for _WIN32.
2006-01-12 14:23:55 +00:00
3e400c018c Update copyright notice. 2006-01-05 13:36:57 +00:00
Ron Koenderink
eec6fe6207 (service_ctrl_handler) [_WIN32]: Add static declaration.
Fix logerror format to "lu" for GetLastError().
2006-01-01 20:41:45 +00:00
Ron Koenderink
940d35a71a (tcp_listen) [_WIN32]: Move the undef NS_ALL to after include winsock2.h.
The undef is present to prevent namespace conflict the selector code.
2006-01-01 20:38:21 +00:00
Ron Koenderink
0b37d8f508 (tcp_listen) [_WIN32]: Add the WIN32 include files for accessing
the socket functions.

(tcp_listen): Add prototypes.h to verify the extern prototype.
2006-01-01 20:27:24 +00:00
Ron Koenderink
8a25029c75 (disassoc) [_WIN32]: Add #ifndef _WIN32 around disassoc() as
WIN32 does not use it and does not support fork().
2006-01-01 19:29:12 +00:00
19d88af312 Support for IPv6:
(tcp_listen, player_addrlen): New.  IPv4-only code factored out of
player_init().
(player_init): Use them.
(player_accept): Address family independence.
(tcp_connect): New.
(main): Use it.
(hostaddr, hostconnect, hostport): Internal linkage.
2005-12-28 18:50:08 +00:00
3aebb68ee7 Include config.h. 2005-12-27 18:04:19 +00:00
ade510f787 Turn options into ordinary econfig keys:
(configkeys): Add options.
(KM_OPTION): New.
(vers): Find options in configkeys[] instead of Options[].
(xdump): Remove xdump opt syntax.
(xdopt): Remove.
(emp_config, print_config): Remove option special case.
(option_list, Options, setoption): Remove.
2005-12-25 10:32:50 +00:00
a98626df2d Replace the build process. The new one requires GNU Make, Autoconf
and Autoconf macros that come with Automake.  It supports multiple
separate builds of the same source tree, and updates dependencies
automatically.  Targets info, html, install, install-html, uninstall
and dist are not yet implemented.

System configuration is now automatic.  Previously, you had to choose
one of several canned system configurations, defined in Make.sysdefs.
Currently, system configuration always uses UCONTEXT for LWP, and
chooses LWP only if its requirements are met.

Feature configuration changed: instead of editing build.conf (further
processed by doconfig), you pass arguments to configure.  Note that
build.conf settings that can be overridden in econfig have no
configure equivalent; just edit econfig instead.

Because generated headers complicate makefiles, fold gamesdef.h into
its users: path.c and ipglob.c become path.c.in and ipglob.c.in,
constants.c, vers.c, options.h simply hardcode defaults (most of them
are run-time configurable).

Call the client empire instead of emp_client.  This matches what the
old standalone build did.
2005-12-20 20:25:35 +00:00
edaa05b8cb (fillcache, do_write, io_input, io_output): Portability fix: always
check both EAGAIN and EWOULDBLOCK.  These are distinct on some
systems, e.g. HP-UX.
(io_output) [hpux]: Used to treat all errors as EWOULDBLOCK.  This
looks like a inept attempt to `fix' the above.  Remove.
2005-11-22 20:28:18 +00:00
Ron Koenderink
3d68c0a0da (plurize): Fix the max. string length calculation for the 'y' case.
It was off by one because 'y' is removed from the string.
2005-11-19 12:11:09 +00:00
Ron Koenderink
94a0f81f24 (plurize): Change variable name max_len to size to improve readability. 2005-11-14 19:01:36 +00:00
Ron Koenderink
58133fe575 (plurize): Fix initial length check to check for zero length of buf
not non-zero lengths of buf.

(plurize): Change variable name size to len to improve readability.
2005-11-14 18:11:46 +00:00
Ron Koenderink
d581485d32 (plurize): Fix the strncat() len parameter to prevent an overflow of buf.
(numstr, esplur, splur, iesplur, plurize): Move the prototype defintions from
misc.h to prototypes.h.  Remove unneccessary headers in plur.c.
2005-11-13 23:18:37 +00:00
Ron Koenderink
fdcbb5912d (budg): Create the capital/city name from the d_name field instead of
hard coding the strings.

(plurize): New.
2005-11-13 21:23:44 +00:00