forked from github/server
TARNE PARTEI creport test
This commit is contained in:
parent
e2e602e7ba
commit
fc8e6dc6de
|
@ -1,6 +1,7 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include "creport.h"
|
#include "creport.h"
|
||||||
#include "move.h"
|
#include "move.h"
|
||||||
|
#include "spy.h"
|
||||||
#include "travelthru.h"
|
#include "travelthru.h"
|
||||||
#include "keyword.h"
|
#include "keyword.h"
|
||||||
|
|
||||||
|
@ -48,9 +49,59 @@ static void test_cr_unit(CuTest *tc) {
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cr_get_int(stream *strm, const char *match, int def)
|
||||||
|
{
|
||||||
|
char line[1024];
|
||||||
|
|
||||||
|
strm->api->rewind(strm->handle);
|
||||||
|
while (strm->api->readln(strm->handle, line, sizeof(line))==0) {
|
||||||
|
if (strstr(line, match)) {
|
||||||
|
return atoi(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_cr_factionstealth(CuTest *tc) {
|
||||||
|
stream strm;
|
||||||
|
faction *f1, *f2, *fr;
|
||||||
|
region *r;
|
||||||
|
unit *u;
|
||||||
|
|
||||||
|
test_setup();
|
||||||
|
mstream_init(&strm);
|
||||||
|
f1 = test_create_faction(0);
|
||||||
|
f2 = test_create_faction(0);
|
||||||
|
fr = test_create_faction(0);
|
||||||
|
r = test_create_region(0, 0, 0);
|
||||||
|
u = test_create_unit(f1, r);
|
||||||
|
|
||||||
|
cr_output_unit(&strm, u->region, f1, u, seen_unit);
|
||||||
|
CuAssertIntEquals(tc, f1->no, cr_get_int(&strm, ";Partei", -1));
|
||||||
|
CuAssertIntEquals(tc, -1, cr_get_int(&strm, ";Anderepartei", -1));
|
||||||
|
CuAssertIntEquals(tc, -1, cr_get_int(&strm, ";Verraeter", -1));
|
||||||
|
|
||||||
|
set_factionstealth(u, f2);
|
||||||
|
CuAssertPtrNotNull(tc, u->attribs);
|
||||||
|
|
||||||
|
cr_output_unit(&strm, u->region, f1, u, seen_unit);
|
||||||
|
CuAssertIntEquals(tc, f1->no, cr_get_int(&strm, ";Partei", -1));
|
||||||
|
CuAssertIntEquals(tc, f2->no, cr_get_int(&strm, ";Anderepartei", -1));
|
||||||
|
CuAssertIntEquals(tc, -1, cr_get_int(&strm, ";Verraeter", -1));
|
||||||
|
|
||||||
|
cr_output_unit(&strm, u->region, f2, u, seen_unit);
|
||||||
|
CuAssertIntEquals(tc, f1->no, cr_get_int(&strm, ";Partei", -1));
|
||||||
|
CuAssertIntEquals(tc, f2->no, cr_get_int(&strm, ";Anderepartei", -1));
|
||||||
|
CuAssertIntEquals(tc, 1, cr_get_int(&strm, ";Verraeter", -1));
|
||||||
|
|
||||||
|
mstream_done(&strm);
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
CuSuite *get_creport_suite(void)
|
CuSuite *get_creport_suite(void)
|
||||||
{
|
{
|
||||||
CuSuite *suite = CuSuiteNew();
|
CuSuite *suite = CuSuiteNew();
|
||||||
SUITE_ADD_TEST(suite, test_cr_unit);
|
SUITE_ADD_TEST(suite, test_cr_unit);
|
||||||
|
SUITE_ADD_TEST(suite, test_cr_factionstealth);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
22
src/spy.c
22
src/spy.c
|
@ -178,7 +178,7 @@ int spy_cmd(unit * u, struct order *ord)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_factionstealth(unit * u, faction * f)
|
static bool can_set_factionstealth(const unit * u, const faction * f)
|
||||||
{
|
{
|
||||||
region *lastr = NULL;
|
region *lastr = NULL;
|
||||||
/* for all units mu of our faction, check all the units in the region
|
/* for all units mu of our faction, check all the units in the region
|
||||||
|
@ -194,7 +194,7 @@ void set_factionstealth(unit * u, faction * f)
|
||||||
faction *fv = visible_faction(f, ru);
|
faction *fv = visible_faction(f, ru);
|
||||||
if (fv == f) {
|
if (fv == f) {
|
||||||
if (cansee(f, lastr, ru, 0))
|
if (cansee(f, lastr, ru, 0))
|
||||||
break;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ru = ru->next;
|
ru = ru->next;
|
||||||
|
@ -204,13 +204,15 @@ void set_factionstealth(unit * u, faction * f)
|
||||||
}
|
}
|
||||||
mu = mu->nextF;
|
mu = mu->nextF;
|
||||||
}
|
}
|
||||||
if (mu != NULL) {
|
return true;
|
||||||
attrib *a = a_find(u->attribs, &at_otherfaction);
|
}
|
||||||
if (!a)
|
|
||||||
a = a_add(&u->attribs, make_otherfaction(f));
|
void set_factionstealth(unit *u, faction *f) {
|
||||||
else
|
attrib *a = a_find(u->attribs, &at_otherfaction);
|
||||||
a->data.v = f;
|
if (!a)
|
||||||
}
|
a = a_add(&u->attribs, make_otherfaction(f));
|
||||||
|
else
|
||||||
|
a->data.v = f;
|
||||||
}
|
}
|
||||||
|
|
||||||
int setstealth_cmd(unit * u, struct order *ord)
|
int setstealth_cmd(unit * u, struct order *ord)
|
||||||
|
@ -315,7 +317,7 @@ int setstealth_cmd(unit * u, struct order *ord)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
struct faction *f = findfaction(nr);
|
struct faction *f = findfaction(nr);
|
||||||
if (f == NULL) {
|
if (f == NULL || !can_set_factionstealth(u, f)) {
|
||||||
cmistake(u, ord, 66, MSG_EVENT);
|
cmistake(u, ord, 66, MSG_EVENT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
11
src/spy.h
11
src/spy.h
|
@ -26,12 +26,15 @@ extern "C" {
|
||||||
struct region;
|
struct region;
|
||||||
struct strlist;
|
struct strlist;
|
||||||
struct order;
|
struct order;
|
||||||
|
struct faction;
|
||||||
|
|
||||||
extern int setstealth_cmd(struct unit *u, struct order *ord);
|
int setstealth_cmd(struct unit *u, struct order *ord);
|
||||||
extern int spy_cmd(struct unit *u, struct order *ord);
|
int spy_cmd(struct unit *u, struct order *ord);
|
||||||
extern int sabotage_cmd(struct unit *u, struct order *ord);
|
int sabotage_cmd(struct unit *u, struct order *ord);
|
||||||
extern void spy_message(int spy, const struct unit *u,
|
void spy_message(int spy, const struct unit *u,
|
||||||
const struct unit *target);
|
const struct unit *target);
|
||||||
|
void set_factionstealth(struct unit * u, struct faction * f);
|
||||||
|
|
||||||
|
|
||||||
#define OCEAN_SWIMMER_CHANCE 0.1
|
#define OCEAN_SWIMMER_CHANCE 0.1
|
||||||
#define CANAL_SWIMMER_CHANCE 0.9
|
#define CANAL_SWIMMER_CHANCE 0.9
|
||||||
|
|
|
@ -50,14 +50,6 @@ static void test_simple_spy_message(CuTest *tc) {
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_factionstealth(unit *u, faction *f) {
|
|
||||||
attrib *a = a_find(u->attribs, &at_otherfaction);
|
|
||||||
if (!a)
|
|
||||||
a = a_add(&u->attribs, make_otherfaction(f));
|
|
||||||
else
|
|
||||||
a->data.v = f;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_all_spy_message(CuTest *tc) {
|
static void test_all_spy_message(CuTest *tc) {
|
||||||
spy_fixture fix;
|
spy_fixture fix;
|
||||||
item_type *itype;
|
item_type *itype;
|
||||||
|
|
Loading…
Reference in New Issue