home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Magazine 7 / Multimedia-No7-11-1995.iso / APPLICAT / EDUCATE / VPADDONS / VPHT200.ZIP / VPHOST.DOC < prev    next >
Text File  |  1994-11-13  |  39KB  |  807 lines

  1.  
  2. VPHOST - VGA Planets host support utility.   (c) 1993-94  Sysma Automatisering
  3.  
  4.  
  5.  
  6. Disclaimer of Warranties
  7. ========================
  8.  
  9. The program is delivered to you as is. Although copyrighted,
  10. Sysma Automatisering shall not be liable for any damage whatsoever arising
  11. out of your use of this program, either in it's original form or any altered
  12. form, even if you have been advised of the possibility of such damages.
  13.  
  14. Although distributed freely, this is copyrighted material. You are hereby
  15. granted the rights to use and/or modify the program for your personal use.
  16. You may (re)distribute this program or your own modifications, PROVIDED you
  17. distribute the complete set of original files with your own modified ones
  18. and you distribute them without charging any money or any other form of
  19. compensation.
  20.  
  21.  
  22. History
  23. =======
  24.  
  25. 12/11/94   Version 2.00   Added a command to report player passwords.
  26.                           Incorporated the new storage engine also found in
  27.                           VPUTIL, which, amongst other things, increases the
  28.                           message limit a result file can handle to 500
  29.                           messages.
  30.                           Completely revamped the way VPHOST executes it's
  31.                           commands. Commands are now batch orientied,
  32.                           exploiting a configuration file. This was needed,
  33.                           because of the many commands and features added.
  34.                           VPHOST now comes in a DPMI version, because the
  35.                           memory requirements exceed DOS's 640 Kb limit.
  36. 08/09/93   Version 1.99i  Fixed a bug in the shrink message function. The
  37.                           messages did get smaller, but the terminating \0
  38.                           character was not placed correctly, causing
  39.                           rubbish trailing in the messages.
  40. 07/09/93   Version 1.99h  Added mine field report detection conforming to the
  41.                           message format of HOST version 3.1x
  42. 06/09/93   Version 1.99g  Disabled the processing of the host mail base for
  43.                           now, since it appearently causes occasional system
  44.                           crashes. I haven't had time to investigate. Added
  45.                           a function which strippes messages from superfluous
  46.                           spaces and carriage returns. In certain messages
  47.                           this means savings of up to 50 % in memory.
  48. 29/08/93   Version 1.99f  Added a max. allowed minefield switch to the
  49.                           'check mine field' command.
  50. 21/08/93   Version 1.99e  Finally tracked down what caused the Duplicate Id
  51.                           number error, which occationally occured when
  52.                           reading in the Host Data Files. It turns out that
  53.                           a Colonize mission causes the Ship's Id # to be
  54.                           reset to 0. If two ships get colonized WITHOUT
  55.                           immediately being reused by builing new ships, two
  56.                           ships with Id # 0 exist, triggering the error. This
  57.                           version fixes the problem.
  58. 18/08/93   Version 1.99d  Added the feature of adjustable mine field decay.
  59. 03/08/93   Version 1.99c  A few minor bugs were fixed.
  60. 07/08/93   Version 1.99b  Memory allocation and read/write logic changed again.
  61.                           Allocation is now based upon single records and
  62.                           therefore no limitation exists anymore.
  63.                           Note that this version, although stable, is still in
  64.                           beta testing. It is neither complete, nor tested
  65.                           thorough enough to be guaranteed to work under all
  66.                           circumstances. It is therefore advisable to make a
  67.                           backup of your result and/or data files before using
  68.                           this program.
  69. 25/04/93   Version 1.0    First public release of the program. Further
  70.                           enhancements are already planned, but we are
  71.                           awaiting feedback and bug reports of this version
  72.                           first.
  73.  
  74.  
  75. Introduction
  76. ============
  77.  
  78. This utility is designed to support and enhance the host part of the game
  79. VGA Planets versions 3.0 only (ie. Planets.Exe). VGA Planets is a strategic
  80. space war/economy simulation game for upto eleven players. The unique feature
  81. of the game is that it plays the turns off-line. This means that there is a
  82. game server (or Host) somewhere where the entire game universe exists. The
  83. game server executes the commands the players provide each game turn and
  84. provides the results, tailored to every player.
  85.  
  86. Each player gets the results meant for him and uses the game client program
  87. (Planets.Exe) to view the results of the previous set of commands and to issue
  88. new ones. Because each player gets only results from the host concerning his
  89. own ships and planets, it is not possible to see enemy ships or planets when
  90. the game rules don't permit this.
  91.  
  92. Build into the game is an E-mail facility, which enables the possibility to
  93. send messages to other players. This E-mail facility is also used by the
  94. automated host program to report information back to you regarding the previous
  95. issued commands. You can use this E-mail facility just as you like. A good
  96. purpose would be to perform diplomacy with it. Messages you send to a player X
  97. don't arrive by player Y if you so choose.
  98.  
  99. At certain planets there are starbases in orbit. These starbases are very
  100. important, as they act as your space ship factory and a space ship repair/refit
  101. location. At every starbase a set of four technology levels are maintained. The
  102. levels are for space ship hulls (ie. the frame to build a space ship),
  103. transwarp drive engines, beam weapons and photon torpedoes. The higher a
  104. techonoly level, the more powerfull the parts concerned become.
  105.  
  106.  
  107. Purpose
  108. =======
  109.  
  110. The purpose of this program is to fix certain flaws in the HOST.EXE program,
  111. and to enhance the functionality of the HOST program of VGA Planets 3.0
  112.  
  113.  
  114. DPMI protected mode version
  115. ============================
  116.  
  117. VPHOST is now available as a DPMI protected mode version only. This change
  118. was needed, since the VGA Planets HOST normally needs to process an amount
  119. of data that by far exceeds the capabilities of real mode DOS.
  120.  
  121. VPHOSTX is the 16 bits DPMI version, and requires at least a 286 machine
  122. with 2 MB of RAM installed. It calls and uses RTM.EXE as it's DPMI service
  123. provider. RTM detects and uses an already present DPMI server (such as HIMEM
  124. or QEMM), but if a server is not yet installed, it installs it's own server
  125. DPMI16BI.OVL, which must be locateable in the current directory, or via the
  126. PATH.
  127.  
  128. VPHOST32 is the 32 bits DPMI version, and requires at least a 386 machine
  129. with 2 MB of RAM installed. It calls and uses 32RTM.EXE as it's DPMI service
  130. provider. 32RTM detects and uses an already present DPMI server, but if a
  131. server is not yet installed, it installs it's own server DPMI32VM.OVL, which
  132. must be locateable in the current directory, or via the PATH.
  133.  
  134. In addition, if you wish to spawn the 32 bits version from the MS Windows 3.x
  135. environment, be sure to add the following line to your SYSTEM.INI file, in
  136. the [386Enh] section:
  137.  
  138. device=d:\your\path\WINDPMI.386
  139.  
  140. Note that VPHOST as of version 2.00 needs substantially more memory that
  141. previous versions, hence the DPMI releases. Both the 16 and 32 RTM versions
  142. support swapfiles to make the necessary memory available on systems that are
  143. not equipped with enough physical RAM.
  144.  
  145. VPHOSTX has the swapfile support hard coded build into the executable. It will
  146. attempt to create an 8 Mb swapfile on the same drive and path as the host
  147. game data is located in. When not enough disk space is free, the program will
  148. abort.
  149.  
  150. VPHOST32 uses the paged swapping logic of the 32RTM program. To use this
  151. feature, specify the following environment variable prior to running either
  152. 32RTM as TSR, or VPHOST32. Note that VPHOST32 automatically spawns 32RTM when
  153. this program is not already loaded as TSR.
  154.  
  155. DPMI32=MAXMEM xxx SWAPFILE=d:\path\swapfile
  156.  
  157. In this setting, MAXMEM xxx is optional. If specified, xxx specifies the max.
  158. amount of available XMS/extended memory to be used within VPHOST32.
  159.  
  160.  
  161. The message transponder
  162. =======================
  163.  
  164. As of version 2.00 of VPHOST, a message transponder is included. The purpose
  165. of this transponder is to send any binary information from the host to the
  166. players, or vice versa. Typically this transponder is used to pass information
  167. from the host the the players that is not normally included in the result
  168. file format currently in use.
  169.  
  170. Players may receive data via the transponder in any of three ways. The host
  171. may have instructed VPHOST to send information manually, the player itself
  172. may have requested information, or VPHOST may have initiated the transponder
  173. itself based upon some internal processing condition.
  174.  
  175. The transponder sends the information in specially formatted messages, which
  176. are not readable directly. The unpack result file routine of VPUTIL (version
  177. 2.50 upwards) and VPUNPACK (version 2.20 upwards) are capable of both
  178. recognizing this special format and processing the messages. This means that
  179. you normally would never see these messages, except for the results they
  180. produce on your game data.
  181.  
  182.  
  183. Support for team games
  184. ======================
  185.  
  186. If a file named TEAMS.TXT is present in the same directory as the host data
  187. files, it is assumed to contain a list of teams and the assignment of the
  188. players to a team. In this case, scores are calculated as accumulated team
  189. scores and not as individual player scores. This feature enables a host to
  190. let teams play against each other. The amount of ships, planets and starbases
  191. of team members are automatically preserved, in order to keep team members
  192. informed of their progress.
  193.  
  194. The syntax of the TEAMS.TXT file is very simple. Each line contains a team.
  195. The first field is the team name (max 20 characters), the next fields are
  196. the player numbers of the players assigned to the team. The fields are
  197. separated with comma's.
  198.  
  199.  
  200. New features not found in the HOST
  201. ==================================
  202.  
  203. Planets now have special friendly codes to dismantle surplus mines and
  204. factories. Note that these friendly codes are for registered players only,
  205. and that no refunds of any kind are given for mines and factories removed
  206. in this way.
  207.  
  208. The new friendly codes are:
  209. rmq = Remove a quarter of the mines on the surface
  210. rmh = Remove half of the mines on the surface
  211. rm5 = Remove 50 mines on the surface
  212. rm2 = Remove 25 mines on the surface
  213. rfq = Remove a quarter of the factories on the surface
  214. rfh = Remove half of the factories on the surface
  215. rf5 = Remove 50 factories on the surface
  216. rf2 = Remove 25 factories on the surface
  217.  
  218. These FC's may be usefull when you are done producing and want a higher tax
  219. return from your natives/colonists.
  220.  
  221. Starbases may be repaired using supplies from the planet's surface, just as
  222. with space ships. 10 Supply units are needed to repair one percent of damage
  223. to the starbase. Also, a special friendly code needs to be set on the planet
  224. as well. The friendly code is REP, and may be used by shareware players as
  225. well.
  226.  
  227. When recycling a foreign space ship at one of your starbases, you may try
  228. reverse engineering this hull type. First the normal recycle command is
  229. performed, destroying the ship and storing it's engine/weapon/torpedo parts
  230. in the starbase store, and refunding the recovered minerals to the planetary
  231. depots.
  232.  
  233. Then several checks are performed, of which the minerals check is the most
  234. important one. You have to pay research costs for the reverse engineering job.
  235. The cost is equal to the build cost of the hull type times a host
  236. configurable factor, which by default is set to 2. This amount is deducted
  237. from your planetary depots, if there is no shortage in one of them. Otherwise
  238. you simply loose the hull type.
  239.  
  240. The last action for a successfull reverse engineering job is the selection
  241. of a free hull slot. This means altering your section of TrueHull.Dat, so
  242. you MUST have access to VPHOST's message transponder on the client (ie.
  243. PLANETS) side. Otherwise the host side has a different hull list than you on
  244. the client side, with all the nasty cheat check problems that arrise when
  245. you try building a new ship.
  246.  
  247. The slot to use is determined by one of the special planetary friendly codes,
  248. listed here:
  249. r01 - r20 = Designate the hull slot number to use. If another hull type is
  250.             already in this slot, you loose the capability of building this
  251.             ship type in the future !
  252. res       = Designate to use the first free slot. This only works if you
  253.             currently have less than 20 hull types you can build.
  254.  
  255. When you abandon a planet with a starbase, the starbase stays in orbit and
  256. is not destroyed. When you (or another player) then takes control of such
  257. a planet 1 or more turns later, the starbase is taken as well.
  258.  
  259. Three scoring algoritms are included in VPHOST. These are the original
  260. scoring system of the HOST, simply counting occupied planets, and a scoring
  261. system that reflect a player's strength by adding the resources that (s)he
  262. used to build ships, starbases and planetary structures. An example will
  263. clarify the last scoring method:
  264.  
  265.    A starbase has the following build costs:
  266.       402 Kt Tritanium      =   4.02 points
  267.       120 Kt Duranium       =   1.20 points
  268.       340 Kt Molybdenum     =   3.40 points
  269.       900 Mega Credits      =   9.00 points
  270.                                ------
  271.       Total                    17.62 points
  272.  
  273. Two other files are also generated. The file SCORES.TXT contains the scores
  274. in a plain ASCII file. The file SCORES.ANS contains the same score table, but
  275. now with ANSI control sequences inserted. This file is mainly intended to
  276. be posted on a BBS within the menu structure of such a BBS.
  277.  
  278.  
  279. Included configuration editor
  280. =============================
  281.  
  282. A new program, VPCONFIG.EXE, is included in this package. It can be used to
  283. edit the configuration data of both the HOST and VPHOST simultaneously. It
  284. uses the same screens as the configuration editor found in the VPUTIL program.
  285.  
  286. The editor consists of five screens, with each screen convering a particular
  287. set of options.
  288.  
  289. Screen 1:   Ratio editor for each race. It handles the ground combat attack
  290.             and defense factors, and the mining and tax rates.
  291. Screen 2:   Race advantages editor. Configure which racial abilities are
  292.             enabled or disabled.
  293. Screen 3:   Generic options. Edit options not bound to one particular race.
  294. Screen 4:   Enter racial names for each race.
  295. Screen 5:   Editor for VPHOST's extra features. If actions with equivalents
  296.             in the original HOST program are disabled, the original HOST
  297.             program will perform those actions. Otherwise, VPHOST will take
  298.             over those operations.
  299.  
  300.  
  301. Commands
  302. ========
  303.  
  304. In this section the available commands of VPHOST will be covered. The general
  305. command line syntax is to issue one command and zero or more appropriate flags.
  306. A quick overview of the commands and flags follows below.
  307.  
  308. The commands are:                     The flags are:
  309.  
  310. bp  Execute batch commands            -wPath  Specify work dir for host data
  311. ct  Check turn file for cheating      -pt     Process turn files
  312. rp  Report player passwords           -pr     Process result files
  313. rb  Report the battles                -pb     Process pre-host batch
  314. rh  Report space ship hulls           -pa     Process post-host batch
  315. re  Report space ship engines         -sm     Silent Mode. Echo problems only.
  316. rw  Report space ship beam weapons    -sc     Skip cheat check on turn files.
  317. rt  Report space ship torpedoes       -sh     Show hull costs.
  318. sc  Send configuration to players     -sl     Show hulls in a single list.
  319. sn  Send race names to players        -so     Show owners of hulls.
  320.                                       -p??    Specify player Id # ??
  321.                                       -t??    Specify (max) tech level ??
  322.                                       -tm??   Specify min tech level ??
  323.  
  324. There are some flags vaild for more than one command, so they will be listed
  325. here. All other flags and the meaning will be covered with the commands on
  326. which they act.
  327.  
  328.    -wPath
  329.    ------
  330.  
  331.    Specifies the directory 'Path' in which the player data files can be found.
  332.    VPHOST will also look for the global data files in this specified directory.
  333.    If it finds a complete set there, it will use them. Otherwise the current
  334.    directory is assumed to contain these global data files. The latter is
  335.    consistent with the behaviour of both PLANETS and HOST. The first
  336.    possibility is an extention to allow games with different universes to
  337.    be played and kept apart simultaniously.
  338.    If neither the specified directory nor the current directory contain a
  339.    complete set of global data files, the startup directory (ie. the
  340.    directory containing VPHOST) is searched for these files.
  341.  
  342.    -p??
  343.    ----
  344.  
  345.    Specifies a player Id number. Some commands allow this selection and limit
  346.    their operation to the specified player. If no player Id is specified at
  347.    the command line, all players present in the game are assumed.
  348.  
  349.  
  350. Command bp
  351. ==========
  352.  
  353. This command is the core of VPHOST's universe processing. It consists of
  354. four phases, and each phase may be executed separately. Each phase leaves the
  355. universe in a consistent state after processing, to allow other tools to be
  356. used as well.
  357.  
  358.    -sm
  359.    ---
  360.  
  361.    Enable silent mode. When silent mode is selected, only the most minimal
  362.    information is echoed to the console. This information includes which
  363.    phase is entered, and any problems found during the processing of each
  364.    phase.
  365.  
  366.    When silent mode is not selected (default), detailed information about
  367.    the universe processing in each phase is echoed to the console, including
  368.    statistical information.
  369.  
  370.    -sc
  371.    ---
  372.  
  373.    Skip cheat checking when processing turn files. Normally, cheat checking
  374.    will occur whenever a turn file is processed. Any commands that are found
  375.    dubious are echoed to the console, and removed from the command stream,
  376.    to prevent cheating to enter the main universe.
  377.  
  378.    -pt
  379.    ---
  380.  
  381.    Execute the phase of processing the turn files. This phase should be done
  382.    only once for each player every turn, since the commands a player has
  383.    produced are incorporated into the universe, overwriting the previous
  384.    state. Specifying a player Id is allowed, and processing limits to this
  385.    player only in this case. A player's turn file is renamed to PLAYER??.OLD
  386.    after this phase is completed. This automatically deletes the turn file
  387.    and prevents the HOST from processing turn files. This is desirable, since
  388.    the HOST contains nasty bugs when processing turn files.
  389.  
  390.    The following sub phases are handled for each turn file:
  391.  
  392.       + Resource consistency check.
  393.         This sub-phase takes every object (ship/planet/base) for which one
  394.         or more commands were handed in, and breaks them down to their basic
  395.         building components (Mega Credits, Clans, Supplies, Ores). The test
  396.         is simple, on each (x,y) location the totals before and after the
  397.         commands are executed must be equal.
  398.         This check thus catches adding, removal AND spontanious transfer
  399.         of any resource !
  400.         Furthermore, the target for a command (ship/planet/starbase) is
  401.         checked for the actual ownership. If a player sends a command for
  402.         an object that is not owned by this player, all commands for any
  403.         object on the same (x,y) location are canceled.
  404.  
  405.       + Shareware version check
  406.         Only entered when a turn file is send in by a player that used the
  407.         shareware version of PLANETS. Any registered features detected are
  408.         either blocked or rolled back to shareware allowed levels. This check
  409.         extends to registered friendly codes. The checks only apply to the
  410.         actual commands, not every object the player owns. In this way, a
  411.         shareware Borg player (for example) keeps it's tech level 10 bonus
  412.         after all natives are assimilated, which is clearly not the case with
  413.         the original HOST. This is also one of the main reasons the HOST
  414.         must be denied processing of turn files.
  415.  
  416.       + Cheating checks
  417.         Remaining cheat checks are performed. These checks include the
  418.         following:
  419.         * Checking ships for excessive cargo and/or fuel.
  420.         * Checking whether Mega Credits were converted back into supplies.
  421.         * Checking whether ship parts were build without the appropriate
  422.           tech levels. All illegal parts are destroyed. This test is run AFTER
  423.           the shareware check reduces registered tech levels to the shareware
  424.           allowed maximum, if appropriate.
  425.         * Checking whether planet/starbase structures exceed their allowed
  426.           maximum. Planetary structures are completely refunded, due to a
  427.           known bug in PLANETS that actually 'allows' too may structures to
  428.           be build. All other surplus structures are destroyed.
  429.         * Checking whether structures and/or ship parts were illegally
  430.           removed.
  431.         * Checking whether the starbase fighter store contains too many
  432.           fighters. Any surplus fighters are destroyed.
  433.         * Checking whether torpedoes/fighters were illegally build (for ships
  434.           in deep space) or removed (all cases).
  435.  
  436.       + Command execution
  437.         All allowed changes are now incorporated into the main universe files.
  438.         This is also the phase that sets a new player password, and sends
  439.         messages to other players. The messages transponder is used to
  440.         analyse the messages that are send.
  441.  
  442.    Unless stated otherwise, when a cheat is detected, ALL commands for ALL
  443.    objects (ships/planet/base) on the same (x,y) location are blocked and
  444.    removed from the command stream. This preventive action ensures that no
  445.    cheat will ever make it into the universe data itself.
  446.    Also, detailed information about any cheat detected is echoed to the
  447.    console, allowing the host to take whatever action (s)he seems appropriate
  448.    to take.
  449.  
  450.    -sc
  451.    ---
  452.  
  453.    Skip the cheat checks. Used in conjunction with the -pt flag.
  454.  
  455.    -pr
  456.    ---
  457.  
  458.    Execute the phase of generating result files. Basically, this produces the
  459.    same results as the original HOST, but with three major differences. First,
  460.    the external message base is checked, and any messages stored there are
  461.    automatically tossed. Secondly, this command may be used on a single player
  462.    Id and third, this command may be used any number of times on the current
  463.    universe data, without the need to run the HOST at all.
  464.  
  465.    Some extentions are added, however. This routine may send ship, planet
  466.    and/or starbase data of team members with a result file. Ships are send
  467.    as scanned targets, not as the official ship records. Special care should be
  468.    taken whenever starbase data of team members is send, since PLANETS cannot
  469.    handle this correctly. VPUTIL, on the other hand, has no problems with
  470.    starbase data of other players.
  471.  
  472.    This phase also generates the scoring messages and the mine field report
  473.    messages. These messages are entered only in the result file and not in the
  474.    HOST message base. Part of the alternate scoring system is the erasing of
  475.    the object counters the HOST places in each player's result file. Only
  476.    the counters of the player himself, it's team members and the counters
  477.    of objects the host has enabled, are retained.
  478.  
  479.    -pb
  480.    ---
  481.  
  482.    This command is intended to be run before the HOST itself, and after the
  483.    turn files have been processed into the main universe. This phase is the
  484.    most extensive one, and executes almost everything the HOST itself performs
  485.    as well, specifically, the non incremental actions. This means, for example,
  486.    that the HOST is still responsible for ship to ship/planet combat, ship
  487.    movement, tax collection, mine and factory operations, structures decay and
  488.    mine field handling. Everything else is handled by this command, in the
  489.    following order:
  490.  
  491.    * Check and process planets.
  492.      + Handle the new planetary friendly codes.
  493.      + Reduce tax rates of natives to the minimal level that guarantees
  494.        maximum yield. This prevents players from 'blowing up' planets with a
  495.        tax rate of 100 %, which is a nasty way to play and is becoming more
  496.        and more popular with many players.
  497.      + Increase / decrease native government type whenever the native
  498.        happyness state passes one of the thresholds. This feature allows for
  499.        more subtle control over the natives that you rule. It also means that
  500.        natives only start rioting when their government type has reached the
  501.        state of Anarchy, which is more realistic as well.
  502.  
  503.    * Check and process starbases.
  504.      + Check for reparation of a starbase using supplies, just as with space
  505.        ships.
  506.      + Check the build order of a new space ship against the parts present
  507.        in storage.
  508.      + Check the space ship fix/recycle commands, and execute the fix command.
  509.  
  510.    * Check and process space ships.
  511.      + Check for ships that have no fuel. If a ship has no fuel, all orders
  512.        except the beaming up of fuel are cancelled, including a primary
  513.        enemy setting. Beaming up of fuel is processed as the first action
  514.        if the ship has no fuel.
  515.      + Beam down resources to a planet/jettison in deep space.
  516.        Clans are not allowed to be jettisoned into deep space.
  517.        As long as ANY fuel is in the ship, beaming is allowed and fully
  518.        implemented, so no resources are lost. So if you beam all of your
  519.        fuel out of your ship, everything you beam still arrives at the
  520.        correct destination.
  521.        If clans are beamed down and the planet is unowned, the planet will
  522.        be colonized. When an abandoned starbase is still in orbit, the
  523.        starbase is (re)taken as well.
  524.      + Beam up resources from a planet's surface. When beaming up from a
  525.        team member's planet, the friendly codes are not required to match.
  526.        Beam up orders are always reset to exploration, whether a beam up
  527.        order was successfull or not.
  528.      + Repair space ships using supplies. This comes before the alchemy
  529.        function, so Alchemy Ships may be repaired this way as well !
  530.      + Execute alchemy and refinery functions. Also handle the build
  531.        fighters and build torpedoes is space, using the 'mkf' and 'mkt'
  532.        friendly codes respectively.
  533.      + Check ship missions for validity.
  534.        - Colonize (ie. decommission) is only allowed in orbit of unowned or
  535.          your own planets.
  536.        - Check tow mission against the new tow rules. Reset the tow mission
  537.          if the tow fails to comply with any of the new rules that are
  538.          enabled.
  539.        - Check the intercept mission.
  540.        - Check individual race advantage missions to see if they are enabled.
  541.          If not enabled, these missions are reset to none.
  542.        - Check the cloak mission. Reset the cloak mission if cloaking is
  543.          not allowed. This also applies to ships with more damage than the
  544.          cloak damage threshold allows for a successfull cloak.
  545.        These checks ensure, amongst other things, that only one mission can
  546.        be performed by each ship. The original HOST actually allowed a
  547.        tow, intercept AND another mission simultaneously.
  548.      + Evaluate any ground combats that resulted from beaming down orders.
  549.        When evaluating the defense factor, defense posts of a starbase are
  550.        included. When a planet is conquerred, the taxrates are reset to 0,
  551.        and the happyness of both colonists and natives are reset to a random
  552.        value betweem calm and happy. When a starbase is captured as well,
  553.        the hull inventory is checked and rearranged to suit the new owner's
  554.        hull type list. Any hull types the new owner is not capable of building
  555.        are destroyed.
  556.      + Check for any ships without fuel that must surrender to a starbase.
  557.  
  558.    * Check for starbase build commands, and execute the build command if one
  559.      is found and is valid.
  560.  
  561.    * Check for space ships with a colonize (ie. decomission) command. The
  562.      ship is taken apart, and the resources recovered are added to the
  563.      planetary stockpile. If this happens over an unowned planet, and clans
  564.      were on board, the planet will be colonized as well. Note that the
  565.      check on space ships only allows a colonize mission on a ship when it
  566.      is actually in orbit of either an unowned or one of your own planets.
  567.      Finally, the ship build queue for this player is checked and if a build
  568.      order is available, it is executed on this same ship slot.
  569.  
  570.    * Check for space ships that are designated to be recycled. The process is
  571.      equivalent to the previous colonize command, except that the ship must
  572.      be in orbit of your own starbases with a recycle command for this ship.
  573.      When reverse engineering is enabled, the planet/starbase is checked for
  574.      a reverse engineering friendly code. If one is found, the available
  575.      planetary resources are checked as well. If sufficient resources are
  576.      available, the price for reverse engineering is payed, and the new hull
  577.      is added to the list of max. 20 hulls a player can build, scrapping
  578.      another hull type if necessary.
  579.      Note that reverse engineering only takes place on hull types not
  580.      already in the hull type list for the player, and that sufficient
  581.      resources must be present. The recycle command will ALWAYS be executed,
  582.      so be carefull when reverse engineering !
  583.  
  584.    * Check for new space ships to be build.
  585.      By default the same queue as the HOST uses is implemented, but this
  586.      can be overridden by a more sophisticated one. This new queue
  587.      implementation walks players before starbases. So first player 1 is
  588.      checked for a build order, then player 2, player 3, etc. When player 11
  589.      has been checked, player 1 is checked again for a second build order, etc.
  590.      For each player the last starbase that build a ship is remembered. Also,
  591.      the last player that executed a build order is stored, so the next time
  592.      the queue continues at player Id + 1.
  593.      The queue can be overridden by kill bonusses for each player. A kill bonus
  594.      is added to a player whenever this player destroys an enemy ship. The
  595.      kill bonus is cumulative over the turns VPHOST is run, and the bonus
  596.      counter is reduced by one each time the player builds a ship.
  597.      The effect of the kill bonus queue is that active players are rewarded
  598.      for the risks they take and may fill up the slots their actions helped
  599.      become free before non active players get a chance of building a ship.
  600.  
  601.    * Check for Federation refit commands.
  602.      The HOST programs contain major bugs in handling the super refit, hence
  603.      the implementation here. As you can see, Super Refit takes place after
  604.      the building of a ship, so there is no chance anymore that a super refit
  605.      takes the very components away that were intended for the new ship to
  606.      be build at the same base.
  607.  
  608.    -pa
  609.    ---
  610.  
  611.    This command is intended to be used immediately after the HOST has run.
  612.    It checks the universe and cleans up any mess the HOST may have created.
  613.    Typically, it calculates the CORRECT mass for each space ship in the
  614.    universe.
  615.  
  616.    The following phases are executed:
  617.    * Processing every combat and giving each player his correct build queue
  618.      bonus based on the outcome of the battles.
  619.    * Ship missions are checked for invalidated cloak mission (for example when
  620.      a cloaker hits a mine and the damage is now higher than the cloak
  621.      threshold. This is another example of a HOST bug that is fixed), and
  622.      invalidated tow and intercept missions.
  623.    * The scores are calculated and the host score files are produced.
  624.  
  625. Command ct
  626. ==========
  627.  
  628. This command performs the same actions as the bp command with the -pt flag.
  629. The only difference is that execution of the commands doesn't take place. This
  630. effectively produces a command to check a turn file for possible cheats. It
  631. is possible to specify a single player Id.
  632.  
  633. Note that the -sc flag is also recognized by this command, but that this would
  634. produce a meaningless command, since the sole purpose of this command IS cheat
  635. checking.
  636.  
  637. Command rp
  638. ==========
  639.  
  640. This command reports the passwords each player has currently set for himself.
  641. It is equivalent to Tim Wisseman's CRACK program.
  642.  
  643. Command rb
  644. ==========
  645.  
  646. This command lists all battles that were fought the last time the HOST has
  647. run. It is possible to view all battles of one particular player. A host may
  648. use this report to view the activity/progress in the game.
  649.  
  650. Command rh
  651. ==========
  652.  
  653. This command generates a report of all the possible space ship hulls a race
  654. can build. The report comes in two parts, hull capabilities and hull costs.
  655. It is possible to select one player and list only this player's hulls.
  656.  
  657.    -t??
  658.    ----
  659.  
  660.    Specifies upto which technology level the space ship hulls should be
  661.    included in the report. If omitted, technology level 10 is assumed.
  662.  
  663.    -tm??
  664.    -----
  665.  
  666.    Specifies from which technology level the space ship hulls should be
  667.    included in the report. If omiiied, technology level 1 is assumed. If both
  668.    this flag and the previous one are specified, a subrange of technology
  669.    levels can be created. If in this case the value for this flag is larger
  670.    than the value for the previous one, this flag is treated as if it was
  671.    not specified.
  672.  
  673.    -sh
  674.    ---
  675.  
  676.    Generate a report with the building cost of the space ship hulls, instead
  677.    of the hull specifications.
  678.  
  679.    -so
  680.    ---
  681.  
  682.    Generate a report showing which races have a hull in their arsenal. This
  683.    switch overrules the -sc switch if both are specified.
  684.  
  685.    -sl
  686.    ---
  687.  
  688.    Generate the report as one continuous list, instead of compiling a list
  689.    on a per race basis. This switch can be used together with the -so or -sc
  690.    switch.
  691.  
  692. Command re
  693. ==========
  694.  
  695. This command generates a report of all the possible space ship engines every
  696. race can mount on a space ship hull. The report shows both the cost and the
  697. fuel usage factors for every possible warp factor.
  698.  
  699.    -t??
  700.    ----
  701.  
  702.    Specifies upto which technology level the space ship hulls should be
  703.    included in the report. If omitted, technology level 10 is assumed.
  704.  
  705.    -tm??
  706.    -----
  707.  
  708.    Specifies from which technology level the space ship hulls should be
  709.    included in the report. If omiiied, technology level 1 is assumed. If both
  710.    this flag and the previous one are specified, a subrange of technology
  711.    levels can be created. If in this case the value for this flag is larger
  712.    than the value for the previous one, this flag is treated as if it was
  713.    not specified.
  714.  
  715. Command rw
  716. ==========
  717.  
  718. This command generates a report of all the possible beam weapons every race
  719. can mount on a space ship hull. The report shows both the cost and the beam
  720. weapon effectiveness for both kill (crew) power and space hull destructive
  721. (explosive) power.
  722.  
  723.    -t??
  724.    ----
  725.  
  726.    Specifies upto which technology level the space ship hulls should be
  727.    included in the report. If omitted, technology level 10 is assumed.
  728.  
  729.    -tm??
  730.    -----
  731.  
  732.    Specifies from which technology level the space ship hulls should be
  733.    included in the report. If omiiied, technology level 1 is assumed. If both
  734.    this flag and the previous one are specified, a subrange of technology
  735.    levels can be created. If in this case the value for this flag is larger
  736.    than the value for the previous one, this flag is treated as if it was
  737.    not specified.
  738.  
  739. Command rt
  740. ==========
  741.  
  742. This command generates a report of all the possible torpedo launchers every
  743. race can mount on a space ship hull. The report shows both the cost and the
  744. torpedo effectiveness for both kill (crew) power and space hull destructive
  745. (explosive) power. The last cost value is the cost to build one torpedo to
  746. be launched with the launcher. No cost for raw materials is given, since these
  747. values are 1 Duranium, 1 Tritanium and 1 Molybdenum for all possible torpedoes.
  748.  
  749.    -t??
  750.    ----
  751.  
  752.    Specifies upto which technology level the space ship hulls should be
  753.    included in the report. If omitted, technology level 10 is assumed.
  754.  
  755.    -tm??
  756.    -----
  757.  
  758.    Specifies from which technology level the space ship hulls should be
  759.    included in the report. If omiiied, technology level 1 is assumed. If both
  760.    this flag and the previous one are specified, a subrange of technology
  761.    levels can be created. If in this case the value for this flag is larger
  762.    than the value for the previous one, this flag is treated as if it was
  763.    not specified.
  764.  
  765. Command sc
  766. ==========
  767.  
  768. Use the transponder to send the current configuration files to every player
  769. that participates in the game. It is possible to select only one player to
  770. send the information to.
  771.  
  772. Command sn
  773. ==========
  774.  
  775. Use the transponder to send the current race name settings to every player
  776. that participates in the game. It is possible to select only one player to
  777. send the information to.
  778.  
  779.  
  780. Comments
  781. ========
  782.  
  783. When you have comments or find bugs, please do not hesitate to contact us.
  784. Also, if you have ideas on how to expand the program or have suggestions for
  785. new commands or options, please contact us.
  786.  
  787.  
  788.  
  789. Our email address is:
  790.  
  791. FIDO:      'Jan Peter Dijkstra' at 2:283/323.12
  792. INTERNET:  jan-peter@saluton.xs4all.nl
  793.            j.p.dijkstra@sysma6.cnt.antenna.nl
  794.  
  795.  
  796. We can also be contacted by mail. Our mail address is:
  797.  
  798. Sysma Automatisering
  799. tav. J.P. Dijkstra
  800. Fazantstraat 169
  801. 7523 DP  Enschede
  802. The Netherlands
  803.  
  804. Phone: +31 53 337410
  805. Fax:   +31 53 311090
  806.  
  807.