示例#1
0
static void test_write_flag(CuTest *tc) {
    curse_fixture fix;
    storage store;
    char buf[1024];
    stream out = { 0 };
    size_t len;

    mstream_init(&out);
    binstore_init(&store, &out);
    store.handle.data = &out;

    setup_curse(&fix, "gbdream");
    fix.c->flags = 42 | CURSE_ISNEW;
    curse_write(fix.r->attribs, fix.r, &store);
    out.api->rewind(out.handle);
    len = out.api->read(out.handle, buf, sizeof(buf));
    buf[len] = '\0';
    out.api->rewind(out.handle);
    curse_read(fix.r->attribs, fix.r, &store);
    CuAssertIntEquals(tc, 42 | CURSE_ISNEW, ((curse *) fix.r->attribs->data.v)->flags);
    global.data_version = RELEASE_VERSION;
    CuAssertIntEquals(tc, RELEASE_VERSION, global.data_version);

    mstream_done(&out);
    binstore_done(&store);
    test_cleanup();
}
示例#2
0
static int cw_read_depr(variant *var, void *target, gamedata *data)
{
    storage *store = data->store;

    curse_init(var);
    curse_read(var, store, target);
    curse_done(var);
    READ_INT(store, NULL);
    return AT_READ_DEPR;
}
示例#3
0
文件: borders.c 项目: TomBraun/server
static int cw_read(attrib * a, void *target, storage * store)
{
  bresolve *br = calloc(sizeof(bresolve), 1);
  curse *c = (curse *) a->data.v;
  wallcurse *wc = (wallcurse *) c->data.v;
  variant var;

  curse_read(a, store, target);
  br->self = c;
  READ_INT(store, &br->id);

  var.i = br->id;
  ur_add(var, &wc->wall, resolve_borderid);

  var.v = br;
  ur_add(var, &wc->buddy, resolve_buddy);
  return AT_READ_OK;
}