chiark / gitweb /
Allow C-u to erase an entry box. Disallow coinicident planet choice in
[rocl] / README
CommitLineData
1304202a 1RIGHT ON COMMAND-LINE
2 Elite tools for the discerning player
3
41. Installation
5
6 You need a C compiler and a working Tcl/Tk installation. (The
7 elite-editor program needs Tk; the rest of the tools don't.)
8 The Makefile works on my Debian GNU/Linux box, but I'm not
9 making any promises about anyone else's. I've successfully
10 built earlier versions of everything under Cygwin, against
11 ActiveState's Tcl 8.4, but I've forgotten the Holy Runes. I do
12 have the `.def' file I used to build the DLL, though, for
13 whatever that's worth. (If you want to hack the Makefile to
14 work under Windows, I'll take a patch.)
15
16 The theory is that you should edit the Makefile for your system
17 and say `make'; then, as some suitably privileged person, say
18 `make install' and stand well back. Everything should then be
19 installed.
20
21 In practice:
22
23 * If you can't build `pkgIndex.tcl', run `tclsh' and say
24
25 % pkg_mkIndex -verbose -direct . elite.so elite.tcl
26
27 to it. (Use `elite.dll' if you're on Windows.) Say
28
29 % set tcl_pkgPath
30
31 to see a list of suitable places for putting the kit. Pick
32 one. The directory `/usr/local/lib' appears in my
33 installation, so that's what I use.
34
35 * Make a subdirectory in the place you chose, and copy
36 `elite.so', `elite.tcl' and `pkgIndex.tcl' into it. All
37 should now be hunky-dory.
38
39 * Run (say) `elite-describe lave' to check that things are set
40 up properly.
41
42
432. The command-line tools
44
45 A `galaxy-spec' is
46
47 * a number, between 1 and 8, for one of the standard eight
48 galaxies;
49
50 * a `galaxy seed' of 12 hex digits (a 48-bit value), for any
51 arbitrary galaxy; or
52
53 * a string `SEED:N' where SEED is a galaxy seed and N is a
54 number between 1 and 8, for the Nth galaxy in some custom
55 universe.
56
57 A `planet-spec' is interpreted relative to some parent galaxy.
58 It may be
59
60 * a number N, for the Nth planet in the galaxy (planets are
61 numbered pseudorandomly -- this is not often a helpful
62 option);
63
64 * a `planet seed' of 12 hex digits (a 48-bit value), for any
65 arbitrary planet;
66
67 * a pair of numbers `X,Y', for the planet nearest the point X
68 decilightyears rightwards and T decilightyears down from the
69 top left of the galaxy;
70
71 * a glob pattern (a string containing `*' and `?' wildcards,
72 matching any substring or any single character,
73 respectively), for the first planet whose name matches the
74 pattern; or
75
76 * a string `GAL:P', where GAL is a galaxy-spec and P is a
77 planet-spec, for the planet P in galaxy GAL.
78
79
80 elite-describe [-g GAL] PLANET ...
81
82 For each PLANET, print the planet data for that PLANET. The
83 PLANETs are interpreted relative to GAL, or standard galaxy 1 if
84 GAL is not specified.
85
86
8e91ba5d 87 elite-map [-qv] [-g GALAXY] [-d DIST] [-w WEIGHT] [-W WD,HT] [-a ASP]
88 [PLANET ...]
1304202a 89
90 Prints a map of (part of) a galaxy to the terminal.
91
92 If PLANET is specified (which it usually is), a map of the area
93 around PLANET in GALAXY (default standard galaxy 1) is printed,
8e91ba5d 94 showing other planets within a box extending about DIST
95 lightyears around the PLANETs.
1304202a 96
8e91ba5d 97 If no PLANETs are not specified, the entire galaxy is printed.
98 This is usually unhelpful.
1304202a 99
8e91ba5d 100 The `-w' option plots a route through the listed planets,
101 highlighting the waypoints. See `elite-path' for the possible
102 weightings.
1304202a 103
8e91ba5d 104 Planets are shown as numbers or letters (or, occasionally a
105 sequence of letters). If there is only one PLANET, it is shown
106 as a `*'; otherwise, they're labelled `*0', `*1', etc. Planets
107 on the path are labelled `+0', `+1', ..., in the order you're
108 meant to visit them. (Note that if the path doubles back on
109 itself, the planets involved /won't/ be listed twice. Use
110 `elite-path' for a full guide on where to go, and `elite-map' to
111 visualize the route.)
112
113 The `-q' and `-v' options allow optional suppression of the key
114 below the map. The defaults are as follows:
115
116 * A galactic map shows no key.
117
118 * A route map (with the `-w' option) shows the waypoints
119 (named PLANETs) and the planets on the path.
120
121 * An area map (around named planets) shows the names of all
122 planets shown.
123
124 The key can be made more verbose by giving the `-v' option, or
125 less verbose by `-q'. Note that the options parser is currently
126 really shoddy, and won't let you say things like `-qqq'.
127
128 The size of the map may be controlled by the -W option -- set WD
1304202a 129 to the maximum allowable width, and HT to the maximum allowable
130 height (in columns and rows, respectively). The map will be
131 scaled so as to fit. The -a option sets the aspect ratio of
132 your characters, height to width (the default is about 2, and
133 seems right for viewing in an xterm with the standard fixed
134 font).
135
136
8e91ba5d 137
1304202a 138 elite-path [-g GALAXY] [-w WEIGHT] PLANET PLANET ...
139
140 Computes a route through a GALAXY (default is standard galaxy
141 1), starting at the first PLANET listed, via the second, via the
142 third, etc., and ending at the last. For each planet you're
143 meant to stop at on the way, a summary line is printed giving
144 the planet's name, position, government type, economy type and
145 tech level.
146
147 You can affect how elite-path selects its routes using the `-w'
148 option. The default is to minimize the number of hops. Other
149 possibilities are:
150
151 hops Minimize number of hops. This is the default.
152
153 safety Maximize stability of the planets in the route,
154 to attempt to improve safety. Useful during the
155 early stages of the game.
156
157 encounters The opposite of `safety' -- minimizes stability
158 of planets in the route. Useful if you want to
159 maximize kills.
160
161 trading Maximize the difference in economy type between
162 successive planets in the route. This should
163 give you an opportunity to make a good profit as
164 you go.
165
166 fuel Minimize absolute distance. For those on a
167 tight budget.
168
169
170 elite-reach [-d DIST] [GALAXY ...]
171
172 For each GALAXY (default is the 8 standard ones), print summary
173 information for each planet, with blank lines separating
174 disconnected groups of planets, i.e., groups where a ship
175 capable of travelling DIST lightyears (default 7) can't get from
176 one to the other.
177
178
179 elite-find [-g GALAXY] [EXPR]
180
181 Without EXPR, simply prints summary information for each planet
182 in GALAXY (default standard 1).
183
184 If EXPR is specified, it must be a Tcl expression (as for the
185 `expr' command). Information is printed for each planet for
186 which EXPR returns nonzero. The EXPR may use the following
187 variables:
188
189 name The planet name, with initial capital letter.
190
191 x, y X and Y coordinates, from top left, in
192 decilightyears.
193
194 economy From 0 (rich industrial) to 7 (poor
195 agricultural).
196
197 government From 0 (anarchy) to 7 (corporate state).
198
199 techlevel From 1 to 15.
200
201 radius In kilometres.
202
203 productivity In millions of credits.
204
205 population In hundreds of millions.
206
207 inhabitants A Tcl list of words describing the inhabitants.
208
209 description As a Tcl list of words.
210
211
212 elite-pairs [-g GALAXY] [-d DIST] AEXPR BEXPR
213
214 Prints the names of pairs of planets A and B in GALAXY (default
215 standard 1), no further than DIST (default 7) lightyears apart,
216 such that AEXPR returns nonzero for planet A and BEXPR returns
217 nonzero for planet B.
218
219 The expressions AEXPR and BEXPR may use the same variables as
220 for elite-find. In addition, BEXPR may use
221
222 d The distance between planets A and B.
223
224 a An array containing the information about planet
225 A. The indices have the same names and meanings
226 as the variables described above.
227
228
1ded87ba 229 elite-cmdr [FILE] [-OPTION | ATTR | ATTR=VALUE | FILE] ...
230
231 A command-line Elite commander editor and viewer. With a single
232 argument, reads a commander file and displays its contents as a
233 human readable table. The arguments may be special options,
234 attribute names, attribute assignments, or filenames.
235
236 The special options are:
237
238 -show Write the commander data to standard output as a
239 human-readable table. This is the default if no
240 other output action is requested.
241
242 -load FILE Read the commander file named FILE.
243
244 -save FILE Write the modified commander data to FILE.
245
246 -reset Reset the commander to the default `JAMESON'
247 settings.
248
249 -dump Write the commander data to standard output in
250 the form of a script which can be read back by
251 the `-read' option.
252
253 -read FILE Read attribute/value pairs from FILE, and modify
254 the commander accordingly.
255
256 An attribute name on its own is a request to print the current
257 value of that attribute. An assignment ATTR=VALUE makes ATTR
258 have the requested VALUE.
259
260 The attributes, their meanings, and the acceptable values are as
261 follows:
262
263 mission The commander's current mission. (0 is no
264 mission; 1 is searching for the Constrictor; 2
265 is killed the Constrictor; 3 is waiting for the
266 second mission; 4 is heading for Ceerdi; 5 is
267 heading for Birera; and 6 is all missions
268 completed.) Must be an integer between 0 and
269 255.
270
271 score Current number of kills. Must be an integer
272 between 0 a 65535, or one of the strings
273 `harmless', `mostly-harmless', `poor',
274 `average', `above-average', `competent',
275 `dangerous', `deadly', or `elite'.
276
277 credits Number of credits. Must be between 0 and
278 429496729.5.
279
280 cargo Size of cargo bay. Must be between 4 and 255.
281
282 gal-number Number of the current galaxy. Note that this
283 doesn't affect which galaxy the commander is
284 actually in -- set gal-seed for that. Must be
285 between 1 and 8.
286
287 gal-seed Which galaxy the commander is in. May be any
288 galaxy-spec.
289
290 world Which world the commander is docked at. May be
291 any planet-spec describing a world in the
292 correct galaxy. (Note that, since the commander
293 file actually stores the location as an x, y
294 pair and chooses the closest world to those
295 coordinates, and there are coincident pairs of
296 worlds, it is not possible to have a commander
297 start at some worlds.)
298
299 market-fluc The market fluctuation byte. Affects prices at
300 the space station. Must be an integer between 0
301 and 255.
302
303 fuel Amount of fuel. Must be between 0 and 25.5.
304
305 energy-unit Strength of the ship's energy unit. May be an
306 integer between 0 (none) and 255 (scary cheat)
307 or one of the strings `none', `standard', or
308 `naval'.
309
310 front-laser, rear-laser, left-laser, light-laser
311 Strength of appropriate laser. May be an
312 integer between 0 (none) and 255 (scary cheat)
313 or one of the strings `none', `pulse', `beam',
314 `mining', or `military'.
315
316 ecm, fuel-scroop, enery-bomb, escape-pod,
317 docking-computer, gal-hyperdrive
318 Whether the ship has various bits of equipment.
319 One of `yes', `true', or `on' for yes, or `no',
320 `false' or `off' for no.
321
322 missiles Number of missiles carried. Must be an integer
323 between 0 and 255.
324
325 hold-ITEM, station-ITEM
326 Quantity of some item in the ship's hold, or at
327 the station. Must be an integer between 0 and
328 255. ITEM must be one of `food', `textiles',
329 `radioactives', `slaves', `liquor-wines',
330 `luxuries', `narcotics', `computers',
331 `machinery', `alloys', `firearms', `furs',
332 `minerals', `gold', `platinum', `gem-stones', or
333 `alien-items'.
334
335 # A special attribute which is never printed. Its
336 value is ignored. This may be used to insert
337 comments in script files.
338
339 Anything else is assumed to be a filename, and loaded as for the
340 `-load' option.
341
342
8e91ba5d 343 elite-prices [-g GALAXY] [-s SORT] [FROM TO]
344
345 Shows minimum, average and maximum profit (in that order, in
346 credits per unit) for the various commodities, starting at one
347 kind of world and ending at another.
348
349 By default, the commodities are listed in standard order, and
350 the profits are computed going from a poor agricultural world to
351 a rich industrial one.
352
353 You can change the worlds under consideration by typing a pair
354 of planet-specs or economy types (as printed by `elite-find').
355 Any planet-specs are obviously taken relative to GALAXY.
356
357 The SORT parameter may be one of `min', `max', or `avg' to sort
358 by minimum, maximum or average profit (highest at the top).
359
360
1304202a 3613. The graphical editor
362
ceff67f2 363 elite-editor [GALAXY | FILE | -jameson]
1304202a 364
365 Starts the RIGHT ON COMMAND-LINE Commander Editor and Map. This
366 is a Tk program -- you'll need that installed to run it.
367
368 I'll not go into excruciating detail about how to work the
369 program. It's fairly simple, really.
370
371 The map view lets you colour-code planets according to
372 techlevel, government or economy. The colours ought to be as
373 follows:
374
375 Colour Government Economy Techlevel
376
377 Red Anarchy Poor agri 1
378 Orange Feudal Average agri 2 or 3
379 Yellow Multi-gov Rich agri 4 or 5
380 Green Dictatorship Mainly agri 6 or 7
381 Blue Communist Mainly indust 8 or 9
382 Magenta Confederacy Poor indust 10 or 11
383 Violet Democracy Average indust 12 or 13
384 White Corporate Rich indust 14 or 15
385
386 The connectivity map shows how you can get around the galaxy
387 using hops of up to 7 light years.
388
389 Planet names are unhelpful except at small scales. The
390 placement algorithm could do with a lot of work.
391
392 Clicking on the map with button 1 (usually the left one) sets
393 the destination world, marked with an orange cross. Clicking
394 with button 3 (usually the right one) sets the home world,
395 marked with a red cross, and with a green hyperspace-range
396 circle around it. (The circle doesn't actually correspond
397 exactly with hyperspace reachability, because there are rounding
398 errors in the distance computation. ROCL correctly emulates the
399 rounding errors from the original game.)
400
401 Double-clicking opens a window showing information about a
402 planet. Two info windows can be open at any time, one for the
403 home world and one for the destination.
404
405 The bar along the bottom of the map window shows the names of
406 the home and destination worlds, and the distance between them.
407 You can type new names (or any old planet spec) into either to
408 select different planets. The change will take place when you
409 press return or when the input focus moves.
410
411 The `Compute path' lets you do the same kinds of computations as
412 the elite-path tool. It plots a route from the home to the
413 destination. The path is shown in orange on the map.
414
415 The commander editor should be self-explanatory, but maybe a few
416 pointers might be helpful.
417
418 The entry fields for items with pop-up menus are disabled when
419 the menus show values other than `Custom', so you must first
420 choose `Custom' from the menu if you want a fancy value.
421
422 The `Show galaxy map' button opens a map which will be tied to
423 the commander window. When you select a home world (button 3),
424 this will set the world where the commander will start. Note
425 that the market prices (in the `Cargo' window) update
426 automatically as you move about the universe. It is quite
427 possible to travel about entirely new universes by turning off
428 the `Standard galaxy' button and typing some hex number into the
429 `Galaxy seed' box. All of the ROCL tools work in these custom
430 universes. Note that your docked planet is recorded as an x, y
431 coordinate pair, so Elite can't tell which of two coincident
432 planets you're docked at (yes, there are such pairs). ROCL
433 won't cope with this at the moment.
434
435 Lasers are a bit odd. Bit 7 is a `rapid-fire' bit. It doesn't
436 affect the strength of the laser, but means that there's no
437 delay between shots. The low 7 bits control the strength, but
438 without the rapid-fire bit, powerful lasers will tend to fire
439 more slowly than weak ones. Some comparisons in the program are
440 for exact laser power: you can't damage the Constrictor or
441 Cougar ships unless you have military (or 0x17 slow-firing)
442 lasers; and you can't fragment asteroids unless you have mining
443 or 0xb2 rapid-fire lasers. (The 0xb2's pack a serious punch. I
444 recommend them as an upgrade for commanders who don't wish to
445 cheat completely.)
446
8e91ba5d 447 One suggestion I've heard of, if Elite is too easy, is to start
448 at Lave (as usual), with no money, lasers, missiles, or fuel.
449 You can get your first money by ramming asteroids (easy but
450 unrewarding) or pirates (risky and tedious), and start trading
451 food and other cheap items.
452
ceff67f2 453$Id: README,v 1.5 2003/03/02 12:28:14 mdw Exp $
1304202a 454\f
455Local variables:
456mode: text
457End: