#!/bin/rc

rfork en

# F FEATUREs, M map files, A other arguments
FEATURE=no

if (~ $MAPPROG '')
       MAPPROG=/bin/aux/mapd

if (~ $MAPDIR '')
       MAPDIR=/lib/map

F=(); M=(); A=();
for (i) {
       switch ($FEATURE) {
       case no
               switch ($i) {
               case -f
                       FEATURE=yes
                       F=($F)
               case *
                       A=($A $i)
               }
       case yes
               switch ($i) {
               case -f
               case -*
                       A=($A $i)
                       FEATURE=no
               case riv*2
                       F=($F 201 202)
               case riv*3
                       F=($F 201 202 203)
               case riv*4
                       F=($F 201 202 203 204)
               case riv*
                       F=($F 201)
               case iriv*2
                       F=($F 206 207)
               case iriv*[34]
                       F=($F 206 207 208)
               case iriv*
                       F=($F 206)
               case coast*2 shore*2 lake*2
                       F=($F 102)
               case coast*3 shore*3 lake*3
                       F=($F 102 103)
               case coast*4 shore*4 lake*4
                       F=($F 102 103 104)
               case coast* shore* lake*
               case ilake*[234] ishore*[234]
                       F=($F 106 107)
               case ilake* ishore*
                       F=($F 106)
               case reef*
                       F=($F 108)
               case canal*2
                       F=($F 210 211)
               case canal*[34]
                       F=($F 210 211 212)
               case canal*
                       F=($F 210)
               case glacier*
                       F=($F 115)
               case state* province*
                       F=($F 401)
               case countr*2
                       F=($F 301 302)
               case countr*[34]
                       F=($F 301 302 303)
               case countr*
                       F=($F 301)
               case salt*[234]
                       F=($F 109 110)
               case salt*
                       F=($F 109)
               case ice*[234] shel*[234]
                       F=($F 113 114)
               case ice* shel*
                       F=($F 113)
               case *
                       echo map: unknown feature $i >[1=2]
                       exits "unknown feature"
               }
       }
}

for (j in $F) {
       if (test -r $MAPDIR/$j)
               M=($M $MAPDIR/$j)
}

if (~ $F ?*) {
       if (test -r $MAPDIR/101)
               M=(101 $M)
       M=(-m $M)
}

if (~ $MAP '')
       MAP=world

MAP=$MAP MAPDIR=$MAPDIR $MAPPROG $A $M