From f4dc2e1e79f3deafb697ff190c9b40ff573ca523 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 14 Sep 2017 12:14:14 +0200 Subject: [PATCH] tend ltend: Handle "cannot hold commodity" consistently Transferring commodities from tenders to targets continues with the next tender when a target can't hold this kind of commodity. Transferring them from targets to tenders fails (ltend) or stops tending (tend) when a tender can't hold this kind of commodity. Has always been that way. Change the latter to continue with the next tender. Signed-off-by: Markus Armbruster --- src/lib/commands/lten.c | 2 +- src/lib/commands/tend.c | 2 +- tests/load-tend/journal.log | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/commands/lten.c b/src/lib/commands/lten.c index 3cbc4ada..1dbe216c 100644 --- a/src/lib/commands/lten.c +++ b/src/lib/commands/lten.c @@ -92,7 +92,7 @@ ltend(void) if (maxtender == 0) { pr("A %s cannot hold any %s\n", mchr[(int)tender.shp_type].m_name, ip->i_name); - return RET_FAIL; + continue; } if (!snxtitem(&targets, EF_LAND, player->argp[4], "Units to be tended? ")) diff --git a/src/lib/commands/tend.c b/src/lib/commands/tend.c index deec23a4..66aca256 100644 --- a/src/lib/commands/tend.c +++ b/src/lib/commands/tend.c @@ -126,7 +126,7 @@ tend(void) if (maxtender == 0) { pr("A %s cannot hold any %s\n", mchr[(int)tender.shp_type].m_name, ip->i_name); - break; + continue; } if (!snxtitem(&targets, EF_SHIP, player->argp[4], "Ships to be tended? ")) diff --git a/tests/load-tend/journal.log b/tests/load-tend/journal.log index b051b0e2..d3f6a03e 100644 --- a/tests/load-tend/journal.log +++ b/tests/load-tend/journal.log @@ -2210,6 +2210,7 @@ Play#1 input tend u 170/171 -1 150 Play#1 command tend Play#1 output Play#1 1 A frg frigate cannot hold any uncompensated workers + Play#1 output Play#1 1 A sb submarine cannot hold any uncompensated workers Play#1 output Play#1 6 0 401 Play#1 input tend s 150/152 5 t Play#1 command tend @@ -2567,7 +2568,7 @@ Play#1 input ltend i 200/201 -1 350/352 Play#1 command ltend Play#1 output Play#1 1 A cs cargo ship cannot hold any iron ore - Play#1 output Play#1 1 command failed + Play#1 output Play#1 1 A cs cargo ship cannot hold any iron ore Play#1 output Play#1 6 0 364 Play#1 input ltend c 200/201 -1 350/352 Play#1 command ltend