retreat lretreat: Change query syntax to match mission
Optional arguments can save typing. Mandatory arguments are more easily discoverable: just run the command and answer its prompts. Empire traditionally uses optional arguments only for expert features. Consider mission: [0:640] Command : mission Ship, plane or land unit (p,sh,la)? s ship(s)? 0 Mission (int, sup, osup, dsup, esc, res, air, query, clear)? int operations point? . frg frigate Early Bird(#0) on an interdiction mission, centered on 21,-3, radius 0 1 ship Compare retreat: [0:638] Command : retreat ship(s)? 0 shp# ship type x,y fl path as flt? flags 0 frg frigate 21,-3 1 ship Arguments are not discoverable this way. Change retreat to work like mission: make the second argument mandatory, and if it's 'q', show retreat orders, else treat it as path and ask for conditions: [0:637] Command : retreat ship(s)? 0 Retreat path, or q to query? jj Retreat conditions ('?' to list available ones)? i shp# ship type x,y fl path as flt? flags 0 frg frigate 21,-3 jj i 1 ship To reduce smart client and script breakage, keep retreat with one argument working as before, but print a deprecation warning. Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
4de4da259a
commit
482d54c953
7 changed files with 55 additions and 24 deletions
|
@ -1,7 +1,8 @@
|
||||||
.TH Command LRETREAT
|
.TH Command LRETREAT
|
||||||
.NA lretreat "Set retreat conditions/paths for units or armies"
|
.NA lretreat "Set retreat conditions/paths for units or armies"
|
||||||
.LV Expert
|
.LV Expert
|
||||||
.SY "lretreat <UNIT/ARMY> [<PATH> <CONDITIONS>]"
|
.SY "lretreat <UNIT/ARMY> <PATH> <CONDITIONS>"
|
||||||
|
.SY "lretreat <UNIT/ARMY> q"
|
||||||
The lretreat command allows you to examine or modify the retreat
|
The lretreat command allows you to examine or modify the retreat
|
||||||
paths and conditions of your land units.
|
paths and conditions of your land units.
|
||||||
.s1
|
.s1
|
||||||
|
@ -9,7 +10,8 @@ The first argument selects land units to view or give orders for.
|
||||||
If an army designation is given when specifying orders, the orders
|
If an army designation is given when specifying orders, the orders
|
||||||
apply to all members of that army.
|
apply to all members of that army.
|
||||||
.s1
|
.s1
|
||||||
Without further arguments, current retreat orders are shown.
|
With 'q' instead of a retreat path, the current retreat paths and
|
||||||
|
conditions will be listed.
|
||||||
The report format contains the following fields:
|
The report format contains the following fields:
|
||||||
.s1
|
.s1
|
||||||
.in \w'unit type\0\0'u
|
.in \w'unit type\0\0'u
|
||||||
|
@ -30,15 +32,13 @@ what conditions will trigger retreat.
|
||||||
.in
|
.in
|
||||||
.s1
|
.s1
|
||||||
For example:
|
For example:
|
||||||
.EX lretreat *
|
.EX lretreat * q
|
||||||
.NF
|
.NF
|
||||||
lnd# unit type x,y ar path as army? flags
|
lnd# unit type x,y ar path as army? flags
|
||||||
0 cav cavalry 2,0 jjuuj I
|
0 cav cavalry 2,0 jjuuj I
|
||||||
1 unit
|
1 unit
|
||||||
.FI
|
.FI
|
||||||
.s1
|
.s1
|
||||||
.L Overview
|
|
||||||
.s1
|
|
||||||
A player may give retreat orders for a land unit or an army. Retreat
|
A player may give retreat orders for a land unit or an army. Retreat
|
||||||
orders include a set of conditions that determine when the army/unit
|
orders include a set of conditions that determine when the army/unit
|
||||||
will retreat, and a path that the army/unit will follow. When a condition
|
will retreat, and a path that the army/unit will follow. When a condition
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
.TH Command RETREAT
|
.TH Command RETREAT
|
||||||
.NA retreat "Set retreat conditions/paths for ships or fleets"
|
.NA retreat "Set retreat conditions/paths for ships or fleets"
|
||||||
.LV Expert
|
.LV Expert
|
||||||
.SY "retreat <SHIP/FLEET> [<PATH> <CONDITIONS>]"
|
.SY "retreat <SHIP/FLEET> <PATH> <CONDITIONS>"
|
||||||
|
.SY "retreat <SHIP/FLEET> q"
|
||||||
The retreat command allows you to examine or modify the retreat
|
The retreat command allows you to examine or modify the retreat
|
||||||
paths and conditions of your ships.
|
paths and conditions of your ships.
|
||||||
.s1
|
.s1
|
||||||
|
@ -9,7 +10,8 @@ The first argument selects ships to view or give orders for.
|
||||||
If a fleet designation is given when specifying orders, the orders
|
If a fleet designation is given when specifying orders, the orders
|
||||||
apply to all members of that fleet.
|
apply to all members of that fleet.
|
||||||
.s1
|
.s1
|
||||||
Without further arguments, current retreat orders are shown.
|
With 'q' instead of a retreat path, the current retreat paths and
|
||||||
|
conditions will be listed.
|
||||||
The report format contains the following fields:
|
The report format contains the following fields:
|
||||||
.s1
|
.s1
|
||||||
.in \w'ship type\0\0'u
|
.in \w'ship type\0\0'u
|
||||||
|
@ -30,15 +32,13 @@ what conditions will trigger retreat.
|
||||||
.in
|
.in
|
||||||
.s1
|
.s1
|
||||||
For example:
|
For example:
|
||||||
.EX retreat *
|
.EX retreat * q
|
||||||
.NF
|
.NF
|
||||||
shp# ship type x,y fl path as flt? flags
|
shp# ship type x,y fl path as flt? flags
|
||||||
0 bb battleship 2,0 jjuuj i
|
0 bb battleship 2,0 jjuuj i
|
||||||
1 ship
|
1 ship
|
||||||
.FI
|
.FI
|
||||||
.s1
|
.s1
|
||||||
.L Overview
|
|
||||||
.s1
|
|
||||||
A player may give retreat orders for a ship or a fleet. Retreat
|
A player may give retreat orders for a ship or a fleet. Retreat
|
||||||
orders include a set of conditions that determine when the fleet/ship
|
orders include a set of conditions that determine when the fleet/ship
|
||||||
will retreat, and a path that the fleet/ship will follow. When a condition
|
will retreat, and a path that the fleet/ship will follow. When a condition
|
||||||
|
|
|
@ -84,10 +84,27 @@ retreat(int type)
|
||||||
if (!snxtitem(&ni, type, player->argp[1], NULL))
|
if (!snxtitem(&ni, type, player->argp[1], NULL))
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
nunits = 0;
|
nunits = 0;
|
||||||
if (player->argp[2] != NULL) {
|
|
||||||
pq = getstarg(player->argp[2], "Retreat path? ", buf1);
|
if (player->argp[1] && !player->argp[2]) {
|
||||||
if (!pq)
|
pr("Omitting the second argument is deprecated and will cease to work in a\n"
|
||||||
|
"future release. Please use '%s q' to query retreat orders.\n\n",
|
||||||
|
player->combuf);
|
||||||
|
pq = "q";
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* TODO getpath() or similar would be nice once the deprecated
|
||||||
|
* syntax is gone.
|
||||||
|
*/
|
||||||
|
pq = getstarg(player->argp[2], "Retreat path, or q to query? ",
|
||||||
|
buf1);
|
||||||
|
if (!pq || !*pq)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
}
|
||||||
|
|
||||||
|
rflags = 0;
|
||||||
|
if (*pq == 'q') {
|
||||||
|
pq = NULL;
|
||||||
|
} else {
|
||||||
for (i = 0; i < RET_LEN - 1 && pq[i]; i++) {
|
for (i = 0; i < RET_LEN - 1 && pq[i]; i++) {
|
||||||
if (chkdir(pq[i], DIR_STOP, DIR_LAST) < 0) {
|
if (chkdir(pq[i], DIR_STOP, DIR_LAST) < 0) {
|
||||||
pr("'%c' is not a valid direction...\n", pq[i]);
|
pr("'%c' is not a valid direction...\n", pq[i]);
|
||||||
|
@ -97,11 +114,7 @@ retreat(int type)
|
||||||
}
|
}
|
||||||
for (i--; i >= 0 && pq[i] == dirch[DIR_STOP]; i--)
|
for (i--; i >= 0 && pq[i] == dirch[DIR_STOP]; i--)
|
||||||
pq[i] = 0;
|
pq[i] = 0;
|
||||||
} else
|
|
||||||
pq = NULL;
|
|
||||||
|
|
||||||
rflags = 0;
|
|
||||||
if (pq != NULL) {
|
|
||||||
again:
|
again:
|
||||||
fl = getstarg(player->argp[3],
|
fl = getstarg(player->argp[3],
|
||||||
"Retreat conditions ('?' to list available ones)? ",
|
"Retreat conditions ('?' to list available ones)? ",
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
* Thomas Ruschak, 1992
|
* Thomas Ruschak, 1992
|
||||||
* Ken Stevens, 1995
|
* Ken Stevens, 1995
|
||||||
* Steve McClure, 1996-2000
|
* Steve McClure, 1996-2000
|
||||||
* Markus Armbruster, 2004-2014
|
* Markus Armbruster, 2004-2015
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -144,7 +144,7 @@ struct cmndstr player_coms[] = {
|
||||||
{"lookout <SHIPS>", 1, look, 0, NORM + CAP},
|
{"lookout <SHIPS>", 1, look, 0, NORM + CAP},
|
||||||
{"lost", 0, lost, 0, NORM},
|
{"lost", 0, lost, 0, NORM},
|
||||||
{"lradar <UNITS | SECTS>", 1, lrad, C_MOD, NORM + CAP},
|
{"lradar <UNITS | SECTS>", 1, lrad, C_MOD, NORM + CAP},
|
||||||
{"lretreat <UNITS|ARMY> [<PATH> <i|h|b|c>]",
|
{"lretreat <UNITS|ARMY> [q | <PATH> <i|h|b|c>]",
|
||||||
1, lretr, C_MOD, NORM + CAP},
|
1, lretr, C_MOD, NORM + CAP},
|
||||||
{"lstat <UNITS>", 0, lsta, 0, NORM},
|
{"lstat <UNITS>", 0, lsta, 0, NORM},
|
||||||
{"ltend <COMM> <tender-SHIPS> <NUM> <UNITS>",
|
{"ltend <COMM> <tender-SHIPS> <NUM> <UNITS>",
|
||||||
|
@ -205,7 +205,7 @@ struct cmndstr player_coms[] = {
|
||||||
{"report <NATS>", 0, repo, 0, 0},
|
{"report <NATS>", 0, repo, 0, 0},
|
||||||
{"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP},
|
{"reset <lot #> <0|price>", 1, rese, C_MOD, NORM + CAP},
|
||||||
{"resource <SECTS>", 0, reso, 0, NONVIS},
|
{"resource <SECTS>", 0, reso, 0, NONVIS},
|
||||||
{"retreat <SHIPS|FLEET> [<PATH> <i|t|s|h|b|d|u|c>]",
|
{"retreat <SHIPS|FLEET> [q | <PATH> <i|t|s|h|b|d|u|c>]",
|
||||||
1, retr, C_MOD, NORM + CAP},
|
1, retr, C_MOD, NORM + CAP},
|
||||||
{"route <COMM> <SECTS>", 1, rout, C_MOD, NORM},
|
{"route <COMM> <SECTS>", 1, rout, C_MOD, NORM},
|
||||||
{"sabotage <UNITS>", 1, sabo, C_MOD, NORM + MONEY + CAP},
|
{"sabotage <UNITS>", 1, sabo, C_MOD, NORM + MONEY + CAP},
|
||||||
|
|
|
@ -1491,6 +1491,9 @@
|
||||||
Play#0 output Play#0 6 0 640
|
Play#0 output Play#0 6 0 640
|
||||||
Play#0 input retr * ?rflags#0
|
Play#0 input retr * ?rflags#0
|
||||||
Play#0 command retreat
|
Play#0 command retreat
|
||||||
|
Play#0 output Play#0 1 Omitting the second argument is deprecated and will cease to work in a
|
||||||
|
Play#0 output Play#0 1 future release. Please use 'retr * ?rflags#0 q' to query retreat orders.
|
||||||
|
Play#0 output Play#0 1
|
||||||
Play#0 output Play#0 1 own shp# ship type x,y fl path as flt? flags
|
Play#0 output Play#0 1 own shp# ship type x,y fl path as flt? flags
|
||||||
Play#0 output Play#0 1 1 4 oe oil explora 1,1 hhhhn b
|
Play#0 output Play#0 1 1 4 oe oil explora 1,1 hhhhn b
|
||||||
Play#0 output Play#0 1 2 11 pt patrol boat 0,0 hhhhn b
|
Play#0 output Play#0 1 2 11 pt patrol boat 0,0 hhhhn b
|
||||||
|
@ -1598,6 +1601,9 @@
|
||||||
Play#0 output Play#0 6 0 637
|
Play#0 output Play#0 6 0 637
|
||||||
Play#0 input lret * ?rflags#0
|
Play#0 input lret * ?rflags#0
|
||||||
Play#0 command lretreat
|
Play#0 command lretreat
|
||||||
|
Play#0 output Play#0 1 Omitting the second argument is deprecated and will cease to work in a
|
||||||
|
Play#0 output Play#0 1 future release. Please use 'lret * ?rflags#0 q' to query retreat orders.
|
||||||
|
Play#0 output Play#0 1
|
||||||
Play#0 output Play#0 1 own lnd# unit type x,y ar path as army? flags
|
Play#0 output Play#0 1 own lnd# unit type x,y ar path as army? flags
|
||||||
Play#0 output Play#0 1 1 1 tra train 1,1 hhhhn b
|
Play#0 output Play#0 1 1 1 tra train 1,1 hhhhn b
|
||||||
Play#0 output Play#0 1 1 4 eng engineer 1,1 hhhhn b
|
Play#0 output Play#0 1 1 4 eng engineer 1,1 hhhhn b
|
||||||
|
|
|
@ -18,6 +18,7 @@ __cmd added 1 0 0
|
||||||
| show retreat orders
|
| show retreat orders
|
||||||
retr
|
retr
|
||||||
0/1/2/3/4/7
|
0/1/2/3/4/7
|
||||||
|
q
|
||||||
|| lretreat command
|
|| lretreat command
|
||||||
| garbage path
|
| garbage path
|
||||||
lret 0 garbage i
|
lret 0 garbage i
|
||||||
|
@ -37,6 +38,7 @@ __cmd added 1 0 0
|
||||||
| show retreat orders
|
| show retreat orders
|
||||||
lret
|
lret
|
||||||
0/1/2/3/4/7
|
0/1/2/3/4/7
|
||||||
|
q
|
||||||
||| Ships
|
||| Ships
|
||||||
|| ships failing to retreat
|
|| ships failing to retreat
|
||||||
| sunk
|
| sunk
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
Play#1 output Play#1 1 y u
|
Play#1 output Play#1 1 y u
|
||||||
Play#1 output Play#1 1 g j
|
Play#1 output Play#1 1 g j
|
||||||
Play#1 output Play#1 1 b n
|
Play#1 output Play#1 1 b n
|
||||||
Play#1 output Play#1 1 Usage: retreat <SHIPS|FLEET> [<PATH> <i|t|s|h|b|d|u|c>]
|
Play#1 output Play#1 1 Usage: retreat <SHIPS|FLEET> [q | <PATH> <i|t|s|h|b|d|u|c>]
|
||||||
Play#1 output Play#1 6 0 640
|
Play#1 output Play#1 6 0 640
|
||||||
Play#1 input __cmd added 0 -1 0
|
Play#1 input __cmd added 0 -1 0
|
||||||
Play#1 command __cmd
|
Play#1 command __cmd
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
Play#1 output Play#1 4 Retreat conditions ('?' to list available ones)?
|
Play#1 output Play#1 4 Retreat conditions ('?' to list available ones)?
|
||||||
Play#1 input junk
|
Play#1 input junk
|
||||||
Play#1 output Play#1 1 Bad retreat condition 'j'
|
Play#1 output Play#1 1 Bad retreat condition 'j'
|
||||||
Play#1 output Play#1 1 Usage: retreat <SHIPS|FLEET> [<PATH> <i|t|s|h|b|d|u|c>]
|
Play#1 output Play#1 1 Usage: retreat <SHIPS|FLEET> [q | <PATH> <i|t|s|h|b|d|u|c>]
|
||||||
Play#1 output Play#1 6 0 639
|
Play#1 output Play#1 6 0 639
|
||||||
Play#1 input retr 2/3 bgyujnbgyujnbgyujn itshbdu
|
Play#1 input retr 2/3 bgyujnbgyujnbgyujn itshbdu
|
||||||
Play#1 command retreat
|
Play#1 command retreat
|
||||||
|
@ -79,6 +79,8 @@
|
||||||
Play#1 command retreat
|
Play#1 command retreat
|
||||||
Play#1 output Play#1 4 ship(s)?
|
Play#1 output Play#1 4 ship(s)?
|
||||||
Play#1 input 0/1/2/3/4/7
|
Play#1 input 0/1/2/3/4/7
|
||||||
|
Play#1 output Play#1 4 Retreat path, or q to query?
|
||||||
|
Play#1 input q
|
||||||
Play#1 output Play#1 1 shp# ship type x,y fl path as flt? flags
|
Play#1 output Play#1 1 shp# ship type x,y fl path as flt? flags
|
||||||
Play#1 output Play#1 1 0 lc light cruis -3,1 a
|
Play#1 output Play#1 1 0 lc light cruis -3,1 a
|
||||||
Play#1 output Play#1 1 1 lc light cruis -3,1 a
|
Play#1 output Play#1 1 1 lc light cruis -3,1 a
|
||||||
|
@ -95,7 +97,7 @@
|
||||||
Play#1 output Play#1 1 y u
|
Play#1 output Play#1 1 y u
|
||||||
Play#1 output Play#1 1 g j
|
Play#1 output Play#1 1 g j
|
||||||
Play#1 output Play#1 1 b n
|
Play#1 output Play#1 1 b n
|
||||||
Play#1 output Play#1 1 Usage: lretreat <UNITS|ARMY> [<PATH> <i|h|b|c>]
|
Play#1 output Play#1 1 Usage: lretreat <UNITS|ARMY> [q | <PATH> <i|h|b|c>]
|
||||||
Play#1 output Play#1 6 0 635
|
Play#1 output Play#1 6 0 635
|
||||||
Play#1 input __cmd added 0 -1 0
|
Play#1 input __cmd added 0 -1 0
|
||||||
Play#1 command __cmd
|
Play#1 command __cmd
|
||||||
|
@ -111,7 +113,7 @@
|
||||||
Play#1 output Play#1 4 Retreat conditions ('?' to list available ones)?
|
Play#1 output Play#1 4 Retreat conditions ('?' to list available ones)?
|
||||||
Play#1 input junk
|
Play#1 input junk
|
||||||
Play#1 output Play#1 1 Bad retreat condition 'j'
|
Play#1 output Play#1 1 Bad retreat condition 'j'
|
||||||
Play#1 output Play#1 1 Usage: lretreat <UNITS|ARMY> [<PATH> <i|h|b|c>]
|
Play#1 output Play#1 1 Usage: lretreat <UNITS|ARMY> [q | <PATH> <i|h|b|c>]
|
||||||
Play#1 output Play#1 6 0 634
|
Play#1 output Play#1 6 0 634
|
||||||
Play#1 input lret 2/3 yujnbgyujnbgyujnbg ihb
|
Play#1 input lret 2/3 yujnbgyujnbgyujnbg ihb
|
||||||
Play#1 command lretreat
|
Play#1 command lretreat
|
||||||
|
@ -143,6 +145,8 @@
|
||||||
Play#1 command lretreat
|
Play#1 command lretreat
|
||||||
Play#1 output Play#1 4 land(s)?
|
Play#1 output Play#1 4 land(s)?
|
||||||
Play#1 input 0/1/2/3/4/7
|
Play#1 input 0/1/2/3/4/7
|
||||||
|
Play#1 output Play#1 4 Retreat path, or q to query?
|
||||||
|
Play#1 input q
|
||||||
Play#1 output Play#1 1 lnd# unit type x,y ar path as army? flags
|
Play#1 output Play#1 1 lnd# unit type x,y ar path as army? flags
|
||||||
Play#1 output Play#1 1 0 inf infantry -3,1 a
|
Play#1 output Play#1 1 0 inf infantry -3,1 a
|
||||||
Play#1 output Play#1 1 1 inf infantry -3,1 a
|
Play#1 output Play#1 1 1 inf infantry -3,1 a
|
||||||
|
@ -1596,6 +1600,9 @@
|
||||||
Play#0 output Play#0 6 0 640
|
Play#0 output Play#0 6 0 640
|
||||||
Play#0 input retr * ?rflags#0
|
Play#0 input retr * ?rflags#0
|
||||||
Play#0 command retreat
|
Play#0 command retreat
|
||||||
|
Play#0 output Play#0 1 Omitting the second argument is deprecated and will cease to work in a
|
||||||
|
Play#0 output Play#0 1 future release. Please use 'retr * ?rflags#0 q' to query retreat orders.
|
||||||
|
Play#0 output Play#0 1
|
||||||
Play#0 output Play#0 1 own shp# ship type x,y fl path as flt? flags
|
Play#0 output Play#0 1 own shp# ship type x,y fl path as flt? flags
|
||||||
Play#0 output Play#0 1 1 2 lc light cruis -3,1 bgyujnbgy itshbdu
|
Play#0 output Play#0 1 1 2 lc light cruis -3,1 bgyujnbgy itshbdu
|
||||||
Play#0 output Play#0 1 1 4 lc light cruis -5,1 a b Yes h
|
Play#0 output Play#0 1 1 4 lc light cruis -5,1 a b Yes h
|
||||||
|
@ -1697,6 +1704,9 @@
|
||||||
Play#0 output Play#0 6 0 637
|
Play#0 output Play#0 6 0 637
|
||||||
Play#0 input lretr * ?rflags#0
|
Play#0 input lretr * ?rflags#0
|
||||||
Play#0 command lretreat
|
Play#0 command lretreat
|
||||||
|
Play#0 output Play#0 1 Omitting the second argument is deprecated and will cease to work in a
|
||||||
|
Play#0 output Play#0 1 future release. Please use 'lretr * ?rflags#0 q' to query retreat orders.
|
||||||
|
Play#0 output Play#0 1
|
||||||
Play#0 output Play#0 1 own lnd# unit type x,y ar path as army? flags
|
Play#0 output Play#0 1 own lnd# unit type x,y ar path as army? flags
|
||||||
Play#0 output Play#0 1 1 2 inf infantry -3,1 yujnbgyuj ihb
|
Play#0 output Play#0 1 1 2 inf infantry -3,1 yujnbgyuj ihb
|
||||||
Play#0 output Play#0 1 1 4 inf infantry -4,0 a b Yes h
|
Play#0 output Play#0 1 1 4 inf infantry -4,0 a b Yes h
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue