forked from github/server
error message whenever we recruit less than ordered.
This commit is contained in:
parent
1448bc4e98
commit
c0304ff572
3 changed files with 12 additions and 8 deletions
|
@ -549,7 +549,7 @@ static void test_recruit(CuTest *tc) {
|
|||
CuAssertIntEquals(tc, 1, u->number);
|
||||
CuAssertIntEquals(tc, 1, f->num_people);
|
||||
CuAssertIntEquals(tc, 1, f->num_units);
|
||||
add_recruits(u, 1, 1);
|
||||
add_recruits(u, 1, 1, 1);
|
||||
CuAssertIntEquals(tc, 2, u->number);
|
||||
CuAssertIntEquals(tc, 2, f->num_people);
|
||||
CuAssertIntEquals(tc, 1, f->num_units);
|
||||
|
@ -557,9 +557,13 @@ static void test_recruit(CuTest *tc) {
|
|||
CuAssertPtrEquals(tc, NULL, u->nextF);
|
||||
CuAssertPtrEquals(tc, NULL, u->prevF);
|
||||
CuAssertPtrEquals(tc, NULL, test_find_messagetype(f->msgs, "recruit"));
|
||||
add_recruits(u, 1, 2);
|
||||
add_recruits(u, 1, 2, 2);
|
||||
CuAssertIntEquals(tc, 3, u->number);
|
||||
CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "recruit"));
|
||||
test_clear_messages(f);
|
||||
add_recruits(u, 1, 1, 2);
|
||||
CuAssertIntEquals(tc, 4, u->number);
|
||||
CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "recruit"));
|
||||
test_teardown();
|
||||
}
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ static recruitment *select_recruitment(recruit_request ** rop,
|
|||
return recruits;
|
||||
}
|
||||
|
||||
void add_recruits(unit * u, int number, int wanted)
|
||||
void add_recruits(unit * u, int number, int wanted, int ordered)
|
||||
{
|
||||
region *r = u->region;
|
||||
assert(number <= wanted);
|
||||
|
@ -178,9 +178,9 @@ void add_recruits(unit * u, int number, int wanted)
|
|||
remove_unit(&r->units, unew);
|
||||
}
|
||||
}
|
||||
if (number < wanted) {
|
||||
if (number < ordered) {
|
||||
ADDMSG(&u->faction->msgs, msg_message("recruit",
|
||||
"unit region amount want", u, r, number, wanted));
|
||||
"unit region amount want", u, r, number, u->wants));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -265,7 +265,7 @@ static int do_recruiting(recruitment * recruits, int available)
|
|||
/* unit is empty, dead, and cannot recruit */
|
||||
number = 0;
|
||||
}
|
||||
add_recruits(u, number, req->qty);
|
||||
add_recruits(u, number, req->qty, u->wants);
|
||||
if (number > 0) {
|
||||
int dec = (int)(number * multi);
|
||||
if ((rc->ec_flags & ECF_REC_ETHEREAL) == 0) {
|
||||
|
@ -406,6 +406,7 @@ static void recruit_cmd(unit * u, struct order *ord, recruit_request ** recruito
|
|||
}
|
||||
}
|
||||
|
||||
u->wants = n;
|
||||
if (recruitcost < 0) {
|
||||
rc = u_race(u);
|
||||
recruitcost = recruit_cost(f, rc);
|
||||
|
@ -452,7 +453,6 @@ static void recruit_cmd(unit * u, struct order *ord, recruit_request ** recruito
|
|||
}
|
||||
|
||||
u_setrace(u, rc);
|
||||
u->wants = n;
|
||||
o = (recruit_request *)calloc(1, sizeof(recruit_request));
|
||||
if (!o) abort();
|
||||
o->qty = n;
|
||||
|
|
|
@ -13,7 +13,7 @@ extern "C" {
|
|||
struct unit;
|
||||
|
||||
struct message *can_recruit(struct unit *u, const struct race *rc, struct order *ord, int now);
|
||||
void add_recruits(struct unit * u, int number, int wanted);
|
||||
void add_recruits(struct unit* u, int number, int wanted, int ordered);
|
||||
void recruit(struct region * r);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
Loading…
Add table
Reference in a new issue