forked from github/server
Merge branch 'master' into develop
This commit is contained in:
commit
c1bacdb5fd
3 changed files with 42 additions and 5 deletions
|
@ -1076,7 +1076,8 @@ void write_faction(gamedata *data, const faction * f)
|
||||||
ursprung *ur;
|
ursprung *ur;
|
||||||
|
|
||||||
assert(f->_alive);
|
assert(f->_alive);
|
||||||
write_faction_reference(f, data->store);
|
assert(f->no > 0 && f->no <= MAX_UNIT_NR);
|
||||||
|
WRITE_INT(data->store, f->no);
|
||||||
WRITE_INT(data->store, f->subscription);
|
WRITE_INT(data->store, f->subscription);
|
||||||
#if RELEASE_VERSION >= SPELL_LEVEL_VERSION
|
#if RELEASE_VERSION >= SPELL_LEVEL_VERSION
|
||||||
WRITE_INT(data->store, f->max_spelllevel);
|
WRITE_INT(data->store, f->max_spelllevel);
|
||||||
|
|
|
@ -88,11 +88,15 @@ int renumber_cmd(unit * u, order * ord)
|
||||||
s = gettoken(token, sizeof(token));
|
s = gettoken(token, sizeof(token));
|
||||||
if (s && *s) {
|
if (s && *s) {
|
||||||
int id = atoi36((const char *)s);
|
int id = atoi36((const char *)s);
|
||||||
attrib *a = a_find(f->attribs, &at_number);
|
if (id > 0 && id <= MAX_UNIT_NR) {
|
||||||
if (!a)
|
attrib *a = a_find(f->attribs, &at_number);
|
||||||
a = a_add(&f->attribs, a_new(&at_number));
|
if (!a)
|
||||||
a->data.i = id;
|
a = a_add(&f->attribs, a_new(&at_number));
|
||||||
|
a->data.i = id;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
cmistake(u, ord, 114, MSG_EVENT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_UNIT:
|
case P_UNIT:
|
||||||
|
|
|
@ -51,6 +51,37 @@ static void test_renumber_faction_duplicate(CuTest *tc) {
|
||||||
test_teardown();
|
test_teardown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_renumber_faction_invalid(CuTest *tc) {
|
||||||
|
unit *u;
|
||||||
|
faction *f;
|
||||||
|
int no;
|
||||||
|
const struct locale *lang;
|
||||||
|
|
||||||
|
test_setup_ex(tc);
|
||||||
|
u = test_create_unit(f = test_create_faction(0), test_create_region(0, 0, 0));
|
||||||
|
no = f->no;
|
||||||
|
lang = f->locale;
|
||||||
|
u->thisorder = create_order(K_NUMBER, lang, "%s [halima]", LOC(lang, parameters[P_FACTION]));
|
||||||
|
renumber_cmd(u, u->thisorder);
|
||||||
|
CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "error114"));
|
||||||
|
renumber_factions();
|
||||||
|
CuAssertIntEquals(tc, no, f->no);
|
||||||
|
|
||||||
|
test_clear_messages(f);
|
||||||
|
free_order(u->thisorder);
|
||||||
|
u->thisorder = create_order(K_NUMBER, lang, "%s 10000", LOC(lang, parameters[P_FACTION]));
|
||||||
|
renumber_cmd(u, u->thisorder);
|
||||||
|
CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "error114"));
|
||||||
|
|
||||||
|
test_clear_messages(f);
|
||||||
|
free_order(u->thisorder);
|
||||||
|
u->thisorder = create_order(K_NUMBER, lang, "%s 0", LOC(lang, parameters[P_FACTION]));
|
||||||
|
renumber_cmd(u, u->thisorder);
|
||||||
|
CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "error114"));
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
static void test_renumber_building(CuTest *tc) {
|
static void test_renumber_building(CuTest *tc) {
|
||||||
unit *u;
|
unit *u;
|
||||||
int uno, no;
|
int uno, no;
|
||||||
|
@ -232,5 +263,6 @@ CuSuite *get_renumber_suite(void)
|
||||||
SUITE_ADD_TEST(suite, test_renumber_ship_duplicate);
|
SUITE_ADD_TEST(suite, test_renumber_ship_duplicate);
|
||||||
SUITE_ADD_TEST(suite, test_renumber_faction);
|
SUITE_ADD_TEST(suite, test_renumber_faction);
|
||||||
SUITE_ADD_TEST(suite, test_renumber_faction_duplicate);
|
SUITE_ADD_TEST(suite, test_renumber_faction_duplicate);
|
||||||
|
SUITE_ADD_TEST(suite, test_renumber_faction_invalid);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue