.\" $FreeBSD: src/games/trek/DOC/read_me.nr,v 1.1.1.1.14.1 2001/03/05 12:11:40 kris Exp $ .\" $DragonFly: src/games/trek/DOC/read_me.nr,v 1.2 2003/06/17 04:25:25 dillon Exp $ .de @h 'sp 4 'tl 'TREK SETUP INSTRUCTIONS''%' 'sp 2 .ns .. .de @f 'bp .. .wh 0 @h .wh -6 @f .de pp .sp .ne 2 .ti +5 .. .de s1 .sp 2 .nr S1 +1 .nr S2 0 .ne 5 .in 4 .ti 0 \\n(S1.\ \ \c .. .de s2 .sp 1 .nr S2 +1 .ne 3 .in 8 .ti 4 \\n(S2.\ \ \c .. .br .ce TREK SETUP INSTRUCTIONS .sp 2 .pp This document describes all sorts of nifty things you should know before you start to muck around with the trek source code. Please read them carefully. .s1 MAINTENANCE .s2 There are a number of shell files which you may use to maintain the system. "Prtrek" produces a copy of the source code. It pipes its output to lpr and runs in background. "Comp" compiles up to nine source modules and leaves them in .o files. "Compile" is the same as "comp" except that it loads after compiling. If stated without any arguments, it loads from .o files. "Compall" compiles all the .c files into .o files, but does not load. It redirects its output to the file "output". To recompile the entire system, type .ti +8 compall .ti +8 compile .br .s2 Main.c contains a variable called "Mother". This is initialized to the result of the "getuid()" call for the maintainer of trek at your installation. Only Mother is allowed to set trace flags and run the game at other than the default priority. .s2 Speaking of priorities, trek eats up a lot of system resources. Hence, it normally runs at a very low priority. This makes it almost impossible to play if the system is loaded. However, the -pN flag sets the priority to N, which makes it possible to debug when the system is loaded. The default priority is set by a #define of PRIO, which is set to 10 in the default system. .s2 Trace information is provided which may be useful in debugging things in the system. If you are in a bad way for space, comment out the #define xTRACE which appears in trek.h. This will cause the trace stuff to not occur in the object. .s2 The version of trek released to you is compiled with the -f flag (for no floating point) and should work without problems on your machine. You can edit out the -f flag in "compile" if you have floating point hardware on your machine so that it will take less space. .s1 THE PORTABLE C LIBRARY .pp The portable C library was used to do I/O in trek. Unfortunately, the version which we had at Berkeley had a number of small bugs which caused trek to do bad things at times. For some unknown reason (temporary insanity perhaps) I rewrote the portable C library. This version is much smaller than the old version and has cleaner code. It also works right (???). However, there are a few minor differences which you should be aware of. .s2 Scanf no longer ignores the noise characters "\\n", "\\t", and space in the format string; i.e., these characters now require a match in the input stream. .s2 A variable f_log has been added which is the file descriptor of a "log" file. If f_log is greater than zero a copy of everything read from the standard input and written to the standard output is written in the file f_log. .s1 DISCLAIMERS .s2 Frankly, I am getting pretty sick of playing this game. Hence, the version which you get may have several bugs in it; I freely admit that it is probably buggier than some previous versions. Sorry about that. .s2 Along with being buggy, the game never had quite everything implemented that was originally intended. If you see things that look weird, that may be why. There are even some features which I have taken out (like ghost starsystems) upon deciding that I didn't have the energy to implement them correctly. .s1 REQUESTS .pp There are several things that I would like to ask of anyone who does work on the source code. .s2 Please let me know of any bugs which you find in the code, and any fixes which you may have. Other copies will probably be going out to other people later, and it would be nice if those copies where less buggy. Also, I would be interested in hearing about any enhancements of the game which you might install. .s2 Please note that I have a distinct coding style. I feel that it is cleaner and easier to read than a more casual style. If possible, please stick to it, especially if you end up sending tapes back to me. This goes along with my whole belief in clean code: I ask you to please avoid obscure code whenever possible. If you throw some in, please don't let me see it. It just depresses me. .s2 Unfortunately, the game is huge. There are many neat things which could go in, if there were only enough space. However, I have specifically not gone to separated I/D space. The main reason is that I would like future versions of the game to be 11/40 compatible. .s1 SUGGESTIONS FOR THE FUTURE .pp If you happen to have more energy than I do, you may want to examine the following areas. These are things that I may get to, but don't hold your breath. .s2 Frankly, making the portable C library work (even without bugs) was a bitch. I should have done the I/O in a more ad hoc manner. It is my intent to rewrite the I/O routines to bypass the portable C library entirely. .s2 The routine "capture" is quite unclean. First, it should have a manner of selecting Klingons other than random, either selecting the most likely or asking the captain (probably best). It should either be fully implemented, which includes adding a "board" routine (half written, on some tapes as board.x) which sends a boarding party to forcefully take over the Klingon, or it should go out completely, which is probably what I will end up doing. When this happens, the transporter will go completely. It seems that the space may be better used for something which more directly enhances the game. .sp 3 .in 0 Well, that's about it. To get hold of me, write to: .nf .sp Eric P Allman Electronics Research Laboratory University of California Berkeley, California 94720 .fi Happy trekking!! .pp