static int a_readkey(variant *var, void *owner, struct gamedata *data) { int res = a_readint(var, owner, data); if (data->version >= KEYVAL_VERSION) { return AT_READ_FAIL; } return (res != AT_READ_FAIL) ? AT_READ_DEPR : res; }
static void test_attrib_rwint(CuTest *tc) { gamedata data; storage store; attrib a = { 0 }; test_setup(); a.data.i = 42; mstream_init(&data.strm); gamedata_init(&data, &store, RELEASE_VERSION); a_writeint(&a, NULL, &store); a.data.i = 0; data.strm.api->rewind(data.strm.handle); a_readint(&a, NULL, &data); CuAssertIntEquals(tc, 42, a.data.i); mstream_done(&data.strm); gamedata_done(&data); test_cleanup(); }
static void test_attrib_rwshorts(CuTest *tc) { gamedata data; storage store; attrib a = { 0 }; a.data.sa[0] = -4; a.data.sa[1] = 42; test_setup(); mstream_init(&data.strm); gamedata_init(&data, &store, RELEASE_VERSION); a_writeint(&a, NULL, &store); memset(a.data.ca, 0, 4); data.strm.api->rewind(data.strm.handle); a_readint(&a, NULL, &data); CuAssertIntEquals(tc, -4, a.data.sa[0]); CuAssertIntEquals(tc, 42, a.data.sa[1]); mstream_done(&data.strm); gamedata_done(&data); test_cleanup(); }