Find a file
Markus Armbruster 3e370da58c Get rid of ship and land unit load counters
Load counters are redundant; they can be computed from the carrier
uids.  Keeping them up-to-date as the carriers change is a pain, and
we never got that quite complete.

Computing load counters straight from the carrier uids every time we
need them would be rather inefficient, but computing them from cargo
lists is not.  So do that.

Remove the load counters: struct shpstr members shp_nplane,
shp_nchoppers, shp_nxlight, shp_nland, and struct lndstr members
lnd_nxlight and lnd_nland.

Don't compute/update load counters in build_ship(), build_land(),
land(), ldump(), load_plane_ship(), load_land_ship(),
load_plane_land(), load_land_land(), lstat(), sdump(), shi(), sstat(),
tend_land(), check_trade(), put_combat(), pln_oneway_to_carrier_ok),
pln_newlanding(), fit_plane_on_ship(), fit_plane_on_land(),
unit_list().

Nothing left in fit_plane_off_ship(), fit_plane_off_land(), so remove
them.

load_land_ship(), load_land_land(), check_trade(), pln_newlanding(),
put_plane_on_ship(), take_plane_off_ship(), put_plane_on_land(),
take_plane_off_land() no longer change the carrier, so don't put it.

Remove functions to recompute the load counters from carrier uids:
count_units(), lnd_count_units(), count_planes(), count_land_planes(),
pln_fixup() and lnd_fixup(), along with the latter two's private
copies of fit_plane_on_ship() and fit_plane_on_land().

New cargo list functions to compute load counts: unit_cargo_count()
and unit_nplane(), with convenience wrappers shp_nplane(),
shp_nland(), lnd_nxlight(), lnd_nland().

Use them to make ship selectors nplane, nchoppers, nxlight, nland
virtual.  They now reflect what is loaded, not how the load uses the
available slots.  This makes a difference when x-light planes or
choppers use plane slots.

Use them to make land unit selectors nxlight and nland virtual.

Use them to get load counts in land(), ldump(), load_plane_ship(),
load_land_ship(), load_plane_land(), load_land_land(), sdump(), shi(),
tend_land(), fit_plane_on_land(), trade_desc(), unit_list().

Rewrite fit_plane_on_ship() and could_be_on_ship() to use
shp_nplane().  could_be_on_ship() now takes load count arguments, as
computed by shp_nplane(), so it can be used for checking against an
existing load as well.
2008-09-08 21:32:56 -04:00
doc Update change log again for 4.3.16 2008-08-09 12:10:06 -04:00
include Get rid of ship and land unit load counters 2008-09-08 21:32:56 -04:00
info Update change log again for 4.3.16 2008-08-09 12:10:06 -04:00
m4 Update from http://autoconf-archive.cryp.to/ 2007-07-28 13:09:00 +00:00
man New server option -E to choose what to do on oops 2008-04-21 21:52:27 +02:00
scripts Fix mapper to work with current code 2008-07-04 17:31:33 -04:00
src Get rid of ship and land unit load counters 2008-09-08 21:32:56 -04:00
.gitignore Fix unintentionally broad patterns in .gitignore 2008-02-07 08:01:53 +01:00
bootstrap Update documentation to talk about git instead of CVS 2008-03-28 20:42:49 +01:00
compile Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
config.guess Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
config.sub Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
configure.ac Bump version to 4.3.17 2008-08-15 07:52:36 -04:00
COPYING Update to current version from http://www.gnu.org/licenses/gpl.txt: 2006-01-22 21:29:04 +00:00
CREDITS Update. 2006-03-07 19:06:36 +00:00
depcomp Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
GNUmakefile.in Update known contributors comments 2008-03-14 20:25:44 +01:00
INSTALL Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
install-sh Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
Make.mk Fix remaking of sources.mk with git 2008-07-25 08:34:35 -04:00
README Update documentation to talk about git instead of CVS 2008-03-28 20:42:49 +01:00

Welcome to Empire 4, code-named Wolfpack.

Empire is a multi-player, client/server Internet based war game.
Copyright (C) 1986-2008, 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 (in file
`COPYING'), or (at your option) any later version.

See file `CREDITS' for a list of contributors.

Directory `doc' has additional information.  File `doc/README'
describes the files there and what they talk about.

To build the server and set up a game, follow the steps below.

(1) Unpacking the source tree

    If you downloaded a tarball, unpack it.

    If you cloned a git repository, run bootstrap.  This requires
    recent versions of Autoconf and Automake to be installed.

(2) Building a server

    Prerequisites: IEEE Std 1003.1-2001 (POSIX.1-2001), GNU make, a
    curses library, Perl, and either nroff or GNU troff (`groff').

    See file `INSTALL' for detailed compilation and installation
    instructions.  Quick guide for the impatient: run configure; make;
    make install.  The last step is optional; everything runs fine
    right from the build tree.

    If make fails without doing anything, you're probably not using
    GNU make.  Some systems have it installed as `gmake'.

    Solaris supports POSIX.1-2001, but you need to set up your
    environment for that.  Try passing
        SHELL=/usr/xpg4/bin/sh PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH
    to make.  See standards(5) for details.

(3) Creating a game

    * Create a configuration for your game.  make install installs one
      in $prefix/etc/empire/econfig ($prefix is /usr/local unless you
      chose something else with configure).  You can use pconfig to
      create another one.

    * Edit your configuration file.  See doc/econfig for more
      information.

      Unless you put your configuration file in the default location
      (where make install installs it), you have to use -e with all
      programs to make them use your configuration.

    * Run files to set up your data directory.

    * Run fairland to create a world.  For a sample world, try
      `fairland 10 30'.  This creates file ./newcap_script, which will
      be used below.  You can edit it to change country names and
      passwords.

      Check out fairland's manual page for more information.

    * Start the server.  For development, you want to run it with -d
      in a debugger, see doc/debugging.  Do not use -d for a real
      game!

    * Log in as deity POGO with password peter.  This guide assumes
      you use the included client `empire', but other clients should
      work as well.

      For help, try `info'.

      To change the deity password, use `change re <password>'.

    * Create countries with `exec newcap_script'.

    Your game is now up!

Naturally, there's more to running a real game than that, but that's
beyond the scope of this file.

Please report bugs to <wolfpack@wolfpackempire.com> or via SourceForge
http://sourceforge.net/projects/empserver (registration required).

For more information or help, try rec.games.empire on Usenet, or send
e-mail to <wolfpack@wolfpackempire.com> and we'll try to answer if we
can.  Also check out our web site at "http://www.wolfpackempire.com".

Have fun!

Wolfpack!