<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
\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
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
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
\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
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
<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
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
-\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
-</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
-</para></listitem>\r
-<listitem><para>\r
-<ulink url='http://www.cactus.org/%7Enystrom/startrek.html'>http://www.cactus.org/%7Enystrom/startrek.html</ulink>\r
-</para></listitem>\r
-</itemizedlist>\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
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>Here are some good pages on the history of Star Trek games:</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
+</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
+</para></listitem>\r
+<listitem><para>\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
</sect1>\r
6. Perhaps cloaking to be added later? BSD version
-Here are Stas Sergeev's changes (controlled by the proprocessor symbol
-SERGEEV, not yet completely merged):
+Here are Stas Sergeev's changes:
1. The Space Thingy can be shoved, if you it ram, and can fire back if
fired upon.
- 1 The Tholian can be hit with phasers
+ 2. The Tholian can be hit with phasers
- 2. When you are docked, base covers you with an almost invincible shields
+ 3. When you are docked, base covers you with an almost invincible shields
(a commander can still ram you, or a Romulan can destroy the base,
or a SCom can even succeed with direct attack IIRC, but this rarely
happens).
- 3. SCom can't escape from you if no more enemies remain (without this,
- chasing SCom can take an eternity).
+ 4. SCom can't escape from you if no more enemies remain (without this,
+ chasing SCom can take an eternity).
- 4. Probe target you enter is now the destination quadrant. Before I don't
- remember what it was, but it was something I had difficulty using)
+ 5. Probe target you enter is now the destination quadrant. Before I don't
+ remember what it was, but it was something I had difficulty using)
- 5. Secret password is now autogenerated.
+ 6. Secret password is now autogenerated.
- 6. "Plaque" is adjusted for A4 paper:)
+ 7. "Plaque" is adjusted for A4 paper :-)
- 7. Phasers now tells you how much energy needed, but only if the computer
+ 8. Phasers now tells you how much energy needed, but only if the computer
is alive.
- 8. Planets are auto-scanned when you enter the quadrant.
+ 9. Planets are auto-scanned when you enter the quadrant.
- 9. Mining or using crystals in presense of enemy now yields an attack.
+ 10. Mining or using crystals in presense of enemy now yields an attack.
There are other minor adjustments to what yields an attack
and what does not.
- 10. Ramming a black hole is no longer instant death. There is a
- chance you might get timewarped instead.
+ 11. Ramming a black hole is no longer instant death. There is a
+ chance you might get timewarped instead.
- 11. "freeze" command reverts to "save", most people will understand this
+ 12. "freeze" command reverts to "save", most people will understand this
better anyway.
+ 13. Screen-oriented interface, with sensor scans always up.
+
Eric Raymond's changes:
- 1. "sos" and "call" becomes "mayday", "freeze" and "save" are both good.
+ 1. "sos" and "call" becomes "mayday", "freeze" and "save" are both good.
*/
int value;
}
commands[] = {
-#ifndef SERGEEV
#define SRSCAN 1
{"SRSCAN", SRSCAN},
{"STATUS", SRSCAN},
#define LRSCAN 2
{"LRSCAN", LRSCAN},
-#endif /* SERGEEV */
#define PHASERS 3
{"PHASERS", PHASERS},
#define TORPEDO 4
{"WARP", WARP},
#define SCORE 13
{"SCORE", SCORE},
-#ifndef SERGEEV
#define SENSORS 14
{"SENSORS", SENSORS},
-#endif /* SERGEEV */
#define ORBIT 15
{"ORBIT", ORBIT},
#define TRANSPORT 16
clrscr();
proutn("COMMAND> ");
if (scan() == IHEOL) {
-#ifdef SERGEEV
- _setcursortype(_NOCURSOR);
- setwnd(LOWER_WINDOW);
- clrscr();
- chart(0);
- _setcursortype(_NORMALCURSOR);
-#endif /* SERGEEV */
+ makechart();
continue;
}
ididit=0;
}
commandhook(commands[i].name, TRUE);
switch (i) { /* command switch */
-#ifndef SERGEEV
case SRSCAN: // srscan
srscan(1);
break;
case LRSCAN: // lrscan
lrscan();
break;
-#endif /* SERGEEV */
case PHASERS: // phasers
phasers();
if (ididit) hitme = TRUE;
case SCORE: // score
score();
break;
-#ifndef SERGEEV
case SENSORS: // sensors
sensor();
break;
-#endif /* SERGEEV */
case ORBIT: // orbit
orbit();
if (ididit) hitme = TRUE;