X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=doc%2FHACKING;h=abb692a03c587f1713645034d9ac8aa82058e7cb;hb=HEAD;hp=93c0df68d136ba983ee5a707e1579f48bf1c6b51;hpb=0e91d76d5d2dd36b5c650e25ccd4fa806de3a55b;p=super-star-trek.git diff --git a/doc/HACKING b/doc/HACKING index 93c0df6..e940439 100644 --- a/doc/HACKING +++ b/doc/HACKING @@ -40,11 +40,15 @@ Dave also says the Space Thingy should not be preserved across saved games, so you can't prove to others that you've seen it. He says it shouldn't fire back, either. It should do nothing except scream and disappear when hit by photon torpedos. It's OK that it may move -when attacked, but it didn't in the original. (Whether the Thingy -can fire back is now controlled by OPTION_THINGY and turned off if the -game type is "plain" or "almy". The no-save behavior has been restored.) +when attacked, but it didn't in the original. (The no-save behavior +has been restored.) -The Faerie Queen, black holes, and time warping were in the original. +Dave says the Faerie Queen, black holes, and time warping were in the +original. However, either he is misremembering about time warping or +the original implementation was lost during the FORTRAN-to-C +translation, as Stas Sergeev added a time-warping feature not +previiusly present in 2006. Tom Almy also claims to have added +timewarping! Here are Tom Almy's changes: @@ -56,7 +60,7 @@ however mine had some feature it didn't have. So I merged its features that I liked. I also took a peek at the DECUS version (a port, less sources, to the PDP-10), and some other variations. -1, Compared to the original UT version, I've changed the "help" +1. Compared to the original UT version, I've changed the "help" command to "call" and the "terminate" command to "quit" to better match user expectations. The DECUS version apparently made those changes as well as changing "freeze" to "save". However I like @@ -210,6 +214,11 @@ and added more: the LRSCAN command is no longer needed. (Controlled by OPTION_AUTOSCAN and turned off if game type is "plain" or "almy".) +10. I imported Tom Almy's SCORE, CAPTURE, and CLOAK command from his +2013 version. + +11. I added color. + TESTING: This code has been designed to be tested. A simple shellscript @@ -217,7 +226,26 @@ included in the distribution, 'replay', automatically reruns the last game you played. See the "test" directory for regression-test logs and checkfiles. +Please run 'make check' every time you change this game to be sure +you haven't broken anything. + +When you fix a bug, add the log of the game that triggered it (and +a checkfile) to the regression tests. This is how we improve the code +coverage of the suite. + +Two things to do to the log before dropping it in the test directory: + +(a) Strip out all lines beginning with "#curses:" - these are for debugging +the curses interface and are not needed for regression testing; removing +them makes it easier to see the game commands. + +(b) Add a header comment line explaining what the log is a test for. +It should begin with "# Tests". This is what gets echoed before each +regression test is run. +Then drop it into the test directory and "make buildregress" to create +the check file. (Don't forget to commit and push the log and checkfile +to the repository.) NOTES ON THE PYTHON TRANSLATION: @@ -274,3 +302,7 @@ clockface-to-radian conversions. For this reason, and others, the trig code is still a bit wacky and obscure. Modify with caution and test thoroughly. +Adding or remobing random() calls is very likely to break lots of +regression tests. If you have to add new one, wrap them in a +save/restore of the LCG state; there's an example of this around +the setup for the Space Thingy.