Wolfpack Empire - mirror of https://git.pond.sub.org/empserver
http://wolfpackempire.com/
Planes normally sit in their base (sector or carrier), where they can be spied, damaged, captured, loaded, unloaded, upgraded and so forth. All this must not be possible while they fly. There are two kinds of flying planes: satellites in orbit, and planes flying a sortie. Satellites in orbit have always been marked with flag PLN_LAUNCHED. Works. What didn't work was tracking planes flying a sortie. If you look at one sortie in isolation, up to three groups of planes can be flying at any point of time: the primary group, which carries out the sortie's mission (bomb, transport, ...), their escorts, and a group of hostile planes flying interception or air defense. The old code attempted to track these planes by passing those groups to the places that need to know whether a plane is flying. This was complex and incomplete, and broke down completely for the pin-bombing command. It was complex, because the plane code needs to keep track of all the call chains that can lead to a place that needs to know whether a plane flies, and pass the groups down the call chains. This leads to a rather ugly passing of plane groups all over the place. It was incomplete, because it generally failed to pass the escorts. And the whole scheme broke down for the pin-bombing command. That's because pin-bombing asks the player for targets while his planes are loitering above the target sector. This yields the processor and lets other code run. Which does not get the flying planes passed. The new code marks planes and SAMs (but not other missiles) flying a sortie with flag PLN_LAUNCHED (the previous commit laid the groundwork for that), and does away with passing around groups of flying planes. This fixes the following bugs: * Many commands could interact with foreign planes flying for a pin-bombing command as if they were sitting in their base. This includes spying, damaging, capturing, loading, or upgrading them, and even getting intercepted by them. Any changes to those planes were wiped out when they landed. Abusable. * The bomb command could bomb its own escorts, directly (pin-bomb planes) or through collateral damage, strategic sector damage, collapsing bridges or nuke damage. The damage to the escorts was wiped out when they landed. * If you asked for a plane to fly both in the primary group and the escort group, you got charged fuel for two sorties instead of one. * pln_put1() and pln_put() now recognize planes that didn't take off, and refrain from making them land. Intercept (since commit c64e2149) and air defense can do that. Making them land had no ill-effects, but it was still wrong. There's one new problem: if PLN_LAUNCHED doesn't get reset properly, due to game crash during flight or some other bug, the plane gets stuck in the air. Catch and fix that on game start in ef_verify(). |
||
---|---|---|
doc | ||
include | ||
info | ||
m4 | ||
man | ||
scripts | ||
src | ||
.gitignore | ||
bootstrap | ||
compile | ||
config.guess | ||
config.sub | ||
configure.ac | ||
COPYING | ||
CREDITS | ||
depcomp | ||
GNUmakefile.in | ||
INSTALL | ||
install-sh | ||
Make.mk | ||
README |
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're pulling from CVS, check out and 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!