#! /usr/bin/tclsh
-package require "elite" "1.0.0"
+package require "elite" "1.0.1"
if {[llength $argv] < 1} {
puts stderr "usage: $argv0 \[-OPTION | ATTR | ATTR=VALUE\] ..."
proc get/world {a} {
global cmdr gov eco
- set ww [worldinfo $cmdr(gal-seed)]
+ set ww [elite-galaxylist $cmdr(gal-seed)]
set s [nearest-planet $ww \
[expr {$cmdr(world-x) * 4}] [expr {$cmdr(world-y) * 2}]]
elite-worldinfo p $s
}
proc set/world {a v} {
global cmdr
+ set ww [elite-galaxylist $cmdr(gal-seed)]
set s [parse-planet-spec $cmdr(gal-seed) $v]
if {[string equal $s ""]} { error "bad planet spec `$v'" }
if {![in-galaxy-p $cmdr(gal-seed) $s]} {
error "planet `[worldname $s]' not in galaxy $cmdr(gal-seed)"
}
elite-worldinfo p $s
+ set ss [nearest-planet $ww $p(x) $p(y)]
+ if {![string equal $s $ss]} {
+ set n $p(name)
+ elite-worldinfo p $ss
+ puts stderr "can't dock at $n: $p(name) is coincident"
+ }
set cmdr(world-x) [expr {$p(x)/4}]
set cmdr(world-y) [expr {$p(y)/2}]
}
"elite" 6400
} }
credits { tenth 0 429496729.5 }
+ legal-status { choice 0 255
+ { "clean" 0 "offender" 1 "fugitive" 50 } }
cargo { int 4 255 }
gal-number { int 1 8 }
gal-seed { seed }
exit 1
}
}
- "^[a-z][a-z-]*$" {
- if {![info exists attr($a)]} {
- puts stderr "$argv0: no such attribute `$a'"
- exit 1
- }
- puts [format "%-20s %s" $a [eval \
- get/[lindex $attr($a) 0] [lrange $attr($a) 1 end] [list $a]]]
- set acted 1
- }
default {
- if {[catch { elite-unpackcmdr cmdr [read-file $a] } err]} {
- puts stderr "$argv0: couldn't read `$a': $err"
- exit 1
+ set n 0
+ foreach aa $attrs {
+ if {[string match $a $aa]} {
+ incr n
+ puts [format "%-20s %s" $aa [eval \
+ get/[lindex $attr($aa) 0] \
+ [lrange $attr($aa) 1 end] [list $aa]]]
+ }
+ }
+ if {$n} {
+ set acted 1
+ } else {
+ if {[catch { elite-unpackcmdr cmdr [read-file $a] } err]} {
+ puts stderr "$argv0: couldn't read `$a': $err"
+ exit 1
+ }
}
}
}