chiark / gitweb /
New .def files for Windows users.
[rocl] / elite-cmdr
index d94b04b94acc57edc43ad44195525951d2b053a6..f574f68092d659aa86e775604d0ffb122aaafa05 100755 (executable)
@@ -1,6 +1,6 @@
 #! /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\] ..."
@@ -76,7 +76,7 @@ proc set/seed {a v} {
 
 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
@@ -90,7 +90,7 @@ proc dump/world {a} {
 }
 proc set/world {a v} {
   global cmdr
-  set ww [worldinfo $cmdr(gal-seed)]
+  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]} {
@@ -136,6 +136,8 @@ foreach {a type} {
     "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 }
@@ -238,19 +240,23 @@ for {set i 0} {$i < [llength $argv]} {incr i} {
        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
+       }
       }
     }
   }