103 lines
1.5 KiB
Bash
Executable file
103 lines
1.5 KiB
Bash
Executable file
#!/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
|