A step towards validation.
[super-star-trek.git] / sst-doc.xml
index c5863a7e2a99db378747e3ed0eca2339782c5180..6827f0af040828ffc97c9b128bc17e3d40895263 100644 (file)
@@ -4,8 +4,8 @@
     "docbook/docbookxx.dtd">\r
 \r
 <book>\r
-<title>Super Star Trek</title>\r
 <bookinfo>\r
+<title>Super Star Trek</title>\r
 \r
 <authorgroup>\r
 <author>\r
   <firstname>Tom</firstname>\r
   <surname>Almy</surname>\r
 </author>\r
+<author>\r
+  <firstname>Stas</firstname>\r
+  <surname>Sergeev</surname>\r
+</author>\r
 <author>\r
   <firstname>Eric</firstname>\r
   <othername>Steven</othername>\r
 </author>\r
 </authorgroup>\r
 \r
+<legalnotice>\r
+<para>Permission is hereby granted for the copying, distribution,\r
+modification and use of this program and associated documentation\r
+for recreational purposes, provided that all references to the\r
+authors are retained.  However, permission is not and will not be\r
+granted for the sale or promotional use of this program or program\r
+documentation, or for use in any situation in which profit may be\r
+considered an objective, since it is the desire of the authors to\r
+respect the copyrights of the originators of Star Trek.</para>\r
+</legalnotice>\r
+</bookinfo>\r
+\r
+\r
 <dedication>\r
 <literallayout format='linespecific' class='monospaced'>\r
                 SSSSS   U   U   PPPPP   EEEEE   RRRRR\r
 \r
                             Resurrected By\r
                                Tom Almy\r
+\r
+                         Curses Interface By\r
+                              Stas Sergeev \r
+\r
+                         SST 2K polishing by\r
+                            Eric S. Raymond\r
 </literallayout>\r
 </dedication>\r
 \r
-<legalnotice>\r
-<para>Permission is hereby granted for the copying, distribution,\r
-modification and use of this program and associated documentation\r
-for recreational purposes, provided that all references to the\r
-authors are retained.  However, permission is not and will not be\r
-granted for the sale or promotional use of this program or program\r
-documentation, or for use in any situation in which profit may be\r
-considered an objective, since it is the desire of the authors to\r
-respect the copyrights of the originators of Star Trek.</para>\r
-</legalnotice>\r
-</bookinfo>\r
-\r
 <chapter><title>Introduction</title>\r
 <para>The Organian Peace Treaty has collapsed, and the Federation is at war\r
 with the Klingon Empire.  Joining the Klingons against the Federation\r
@@ -284,7 +295,7 @@ abandon ship) must be written out in full.  Also, in a few cases two
 or more commands begin with the same letter, and in this case that\r
 letter refers to a particular one of the commands; to get the other,\r
 your abbreviation must be two or more characters long.  This sounds\r
-complicated, but you will learn the abbreviations quickly enough.</para>\r
+complicated, but you will learn the abbreviations qGuickly enough.</para>\r
 \r
 <para>What this all boils down to is:</para>\r
 \r
@@ -314,6 +325,11 @@ Full commands:  SRSCAN
                 SRSCAN CHART\r
 </literallayout>\r
 \r
+<!-- This is new in SST 2K -->\r
+<para>If you are using the screen-oriented interface, it should never\r
+be necessary to call this command explicitly; a short-range scan will\r
+always be present on the screen.</para>\r
+\r
 <para>The short-range scan gives you a considerable amount of information\r
 about the quadrant your starship is in.  A short-range scan is best\r
 described by an example.</para>\r
@@ -357,7 +373,6 @@ short-range scan anytime you like.</para>
 \r
 <para>If your short-range sensors are damaged, this command will only show\r
 the contents of adjacent sectors.</para>\r
-\r
 </sect1>\r
 <sect1><title>Status Report</title>\r
 \r
@@ -475,6 +490,11 @@ Mnemonic:  LRSCAN
 Shortest abbreviation:  L\r
 </literallayout>\r
 \r
+<!-- This is new in SST 2K -->\r
+<para>If you are using the screen-oriented interface, it should never\r
+be necessary to call this command explicitly; a long-range scan will\r
+always be present on the screen.</para>\r
+\r
 <para>A long-range scan gives you general information about where you are\r
 and what is around you.  Here is an example output.</para>\r
 \r
@@ -589,7 +609,7 @@ safely even in the midst of battle.</para>
 Mnemonic:  MOVE\r
 Shortest abbreviation:  M\r
 Full command:  MOVE MANUAL &lt;displacement&gt;\r
-               MOVE AUTOMATIC &lt;estination*gt;\r
+               MOVE AUTOMATIC &lt;destination&gt;\r
 </literallayout>\r
 \r
 <para>This command is the usual way to move from one place to another\r
@@ -635,7 +655,7 @@ scan shown earlier.</para>
 \r
 <para>&lt;para&gt;where &lt;qrow&gt; and &lt;qcol&gt; are the row and column\r
 numbers of the destination quadrant, and &lt;srow&gt; and &lt;scol&gt;\r
-are the row and column numbers of thedestination sector in that\r
+are the row and column numbers of the destination sector in that\r
 quadrant.  This command also moves your ship in a straight line path\r
 to the destination.  For moving within a quadrant, &lt;qrow&gt; and\r
 &lt;qcol&gt; may be omitted. For example, to move to sector 2 - 9 in\r
@@ -1605,6 +1625,67 @@ the algorithm.</para>
 <para>The DECUS version had a Deep Space Probe. Looked like a good idea\r
 so I implemented it based on its description.</para>\r
 \r
+</sect1>\r
+<sect1><title>Stas Sergeev's story</title>\r
+\r
+<para>I started from an older Tom Almy version and added features I had\r
+seen in mainframe variants of the game, I wrote a screen-oriented \r
+interface for it based on the curses library.</para>\r
+\r
+<itemizedlist>\r
+<listitem>\r
+<para>The Space Thingy can be shoved, if you ram it, and can fire back if \r
+fired upon.</para>\r
+</listitem>\r
+<listitem>\r
+<para>The Tholian can be hit with phasers.</para>\r
+</listitem>\r
+<listitem>\r
+<para>When you are docked, base covers you with an almost invincible shields \r
+      (a commander can still ram you, or a Romulan can destroy the base,\r
+      or a SCom can even succeed with direct attack IIRC, but this rarely \r
+      happens).</para>\r
+</listitem>\r
+<listitem>\r
+<para>SCom can't escape from you if no more enemies remain (without this, \r
+      chasing SCom can take an eternity).</para>\r
+</listitem>\r
+<listitem>\r
+<para>Probe target you enter is now the destination quadrant. Before I don't \r
+      remember what it was, but it was something I had difficulty using)</para>\r
+</listitem>\r
+<listitem>\r
+<para>Secret password is now autogenerated.</para>\r
+</listitem>\r
+<listitem>\r
+<para>Victory plaque is adjusted for A4 paper rather than 132-column greenbar\r
+:-)</para>\r
+</listitem>\r
+<listitem>\r
+<para>Phasers now tells you how much energy needed, but only if the computer \r
+is alive.</para>\r
+</listitem>\r
+<listitem>\r
+<para>Planets are auto-scanned when you enter the quadrant.</para>\r
+</listitem>\r
+<listitem>\r
+<para>Mining or using crystals in presense of enemy now yields an attack.\r
+There are other minor adjustments to what yields an attack\r
+and what does not.</para>\r
+</listitem>\r
+<listitem>\r
+<para>Ramming a black hole is no longer instant death.  There is a\r
+chance you might get timewarped instead.</para>\r
+</listitem>\r
+<listitem>\r
+<para>"freeze" command reverts to "save", most people will understand this\r
+better anyway.</para>\r
+</listitem>\r
+<listitem>\r
+<para>Screen-oriented interface, with sensor scans always up.</para>\r
+</listitem>\r
+</itemizedlist>\r
+\r
 </sect1>\r
 <sect1><title>Eric Raymond's story</title>\r
 \r
@@ -1638,36 +1719,56 @@ quadrants introduced into many BASIC versions.</para>
 url='http://developer.berlios.de/projects/sst/'>project\r
 site</ulink>.</para>\r
 \r
-<para>Here are some good pages on the history of Star Trek games:</para>\r
+<para>After I launched the Berlios project, Stas Sergeev contacted me\r
+me.  We worked together to merge in his changes.</para>\r
+\r
+<para>Modifications I've made:</para>\r
 \r
 <itemizedlist>\r
 <listitem><para>\r
-<ulink url='http://www.dunnington.u-net.com/public/startrek/'>http://www.dunnington.u-net.com/public/startrek/</ulink>\r
+I converted the flat-text SST.DOC file to XML-Docbook so it can be\r
+webbed. (That's what you're reading now.)\r
 </para></listitem>\r
 <listitem><para>\r
-<ulink url='http://www3.sympatico.ca/maury/games/space/star_trek.html'>http://www3.sympatico.ca/maury/games/space/star_trek.html</ulink>\r
+The command-help code needed a rewrite because the flat-text form of\r
+the documentation is now generated from XML and doesn't have the\r
+easily recognizable section delimiters it used to.  I wrote a script\r
+to filter that flat-text form into an sst.doc that's easy to parse for\r
+command descriptions, and changed some logic in sst.c to match.\r
 </para></listitem>\r
 <listitem><para>\r
-<ulink url='http://www.cactus.org/%7Enystrom/startrek.html'>http://www.cactus.org/%7Enystrom/startrek.html</ulink>\r
+I've cleaned up a lot of grubby FORTRANisms in the code internals --\r
+used sizeof(), replaced magic numeric constants with #defines,\r
+that sort of thing.\r
+</para></listitem>\r
+<listitem><para>\r
+I fixed a surprising number of typos in the code and documentation.\r
+</para></listitem>\r
+<listitem><para>\r
+All the game state now lives in one big structure that can be\r
+written to and read from disk as one blob.  The write gives it an\r
+an identifiable magic number and the thaw logic checks for same. \r
+</para></listitem>\r
+<listitem><para>\r
+I made the internal pager work, nd in the process got rid of a number\r
+of platform dependencies in the code.\r
+</para></listitem>\r
+<listitem><para>\r
+The HELP/CALL/SOS command is now MAYDAY.  SOS and CALL are still accepted.\r
 </para></listitem>\r
 </itemizedlist>\r
 \r
-<para>Modifications I made:</para>\r
+<para>Here are some good pages on the history of Star Trek games:</para>\r
 \r
 <itemizedlist>\r
 <listitem><para>\r
-I converted the flat-text SST.DOC file to XML-Docbook so it could be webbed.\r
-(That's what you're reading now.)\r
-</para></listitem>\r
-<listitem><para>\r
-I cleaned up a lot of grubby FORTRANisms in the code internals.\r
+<ulink url='http://www.dunnington.u-net.com/public/startrek/'>http://www.dunnington.u-net.com/public/startrek/</ulink>\r
 </para></listitem>\r
 <listitem><para>\r
-I fixed a surprising number of typos in the code and documentation.\r
+<ulink url='http://www3.sympatico.ca/maury/games/space/star_trek.html'>http://www3.sympatico.ca/maury/games/space/star_trek.html</ulink>\r
 </para></listitem>\r
 <listitem><para>\r
-I changed the freeze logic to emit an identifiable magic number and \r
-the thaw logic to check for it.\r
+<ulink url='http://www.cactus.org/%7Enystrom/startrek.html'>http://www.cactus.org/%7Enystrom/startrek.html</ulink>\r
 </para></listitem>\r
 </itemizedlist>\r
 \r