forked from github/server
remove support for versions prior to turn 572 (INTPAK_VERSION).
reading anything prior stopped working some time ago, let's not kid ourselves. nobody needs to read those datafiles, they are more than 7 years old. less code is better. if access to these files is needed, check out an old version from source control.
This commit is contained in:
parent
3d24764e08
commit
d492487a5b
|
@ -104,12 +104,7 @@ static int lc_read(struct attrib *a, void *owner, struct storage *store)
|
||||||
building_action *data = (building_action *)a->data.v;
|
building_action *data = (building_action *)a->data.v;
|
||||||
int result =
|
int result =
|
||||||
read_reference(&data->b, store, read_building_reference, resolve_building);
|
read_reference(&data->b, store, read_building_reference, resolve_building);
|
||||||
if (global.data_version < UNICODE_VERSION) {
|
|
||||||
READ_STR(store, name, sizeof(name));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(store, name, sizeof(name));
|
READ_TOK(store, name, sizeof(name));
|
||||||
}
|
|
||||||
if (strcmp(name, "tunnel_action") == 0) {
|
if (strcmp(name, "tunnel_action") == 0) {
|
||||||
/* E2: Weltentor has a new module, doesn't need this any longer */
|
/* E2: Weltentor has a new module, doesn't need this any longer */
|
||||||
result = 0;
|
result = 0;
|
||||||
|
@ -119,17 +114,12 @@ static int lc_read(struct attrib *a, void *owner, struct storage *store)
|
||||||
data->fname = _strdup(name);
|
data->fname = _strdup(name);
|
||||||
}
|
}
|
||||||
if (global.data_version >= BACTION_VERSION) {
|
if (global.data_version >= BACTION_VERSION) {
|
||||||
if (global.data_version < UNICODE_VERSION) {
|
|
||||||
READ_STR(store, name, sizeof(name));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(store, name, sizeof(name));
|
READ_TOK(store, name, sizeof(name));
|
||||||
if (strcmp(name, "tnnL") == 0) {
|
if (strcmp(name, "tnnL") == 0) {
|
||||||
/* tunnel_action was the old Weltentore, their code has changed. ignore this object */
|
/* tunnel_action was the old Weltentore, their code has changed. ignore this object */
|
||||||
result = 0;
|
result = 0;
|
||||||
data->b = 0;
|
data->b = 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (strcmp(name, NULLSTRING) == 0)
|
if (strcmp(name, NULLSTRING) == 0)
|
||||||
data->param = 0;
|
data->param = 0;
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -226,12 +226,7 @@ int curse_read(attrib * a, void *owner, struct storage *store)
|
||||||
assert(result == 0);
|
assert(result == 0);
|
||||||
return AT_READ_FAIL;
|
return AT_READ_FAIL;
|
||||||
}
|
}
|
||||||
if (global.data_version < CURSEFLAGS_VERSION) {
|
|
||||||
c_setflag(c, flags);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
c->flags = flags;
|
c->flags = flags;
|
||||||
}
|
|
||||||
c_clearflag(c, CURSE_ISNEW);
|
c_clearflag(c, CURSE_ISNEW);
|
||||||
|
|
||||||
if (c->type->read)
|
if (c->type->read)
|
||||||
|
|
|
@ -236,8 +236,6 @@ void read_groups(struct storage *store, faction * f)
|
||||||
READ_INT(store, &fid.i);
|
READ_INT(store, &fid.i);
|
||||||
if (fid.i <= 0)
|
if (fid.i <= 0)
|
||||||
break;
|
break;
|
||||||
if (global.data_version < STORAGE_VERSION && fid.i == 0)
|
|
||||||
break;
|
|
||||||
a = ally_add(pa, findfaction(fid.i));
|
a = ally_add(pa, findfaction(fid.i));
|
||||||
READ_INT(store, &a->status);
|
READ_INT(store, &a->status);
|
||||||
if (!a->faction)
|
if (!a->faction)
|
||||||
|
|
|
@ -645,36 +645,10 @@ unit *read_unit(struct gamedata *data)
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
u->age = (short)n;
|
u->age = (short)n;
|
||||||
|
|
||||||
if (data->version < STORAGE_VERSION) {
|
|
||||||
char *space;
|
|
||||||
READ_STR(data->store, rname, sizeof(rname));
|
|
||||||
space = strchr(rname, ' ');
|
|
||||||
if (space != NULL) {
|
|
||||||
char *inc = space + 1;
|
|
||||||
char *outc = space;
|
|
||||||
do {
|
|
||||||
while (*inc == ' ')
|
|
||||||
++inc;
|
|
||||||
while (*inc) {
|
|
||||||
*outc++ = *inc++;
|
|
||||||
if (*inc == ' ')
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} while (*inc);
|
|
||||||
*outc = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(data->store, rname, sizeof(rname));
|
READ_TOK(data->store, rname, sizeof(rname));
|
||||||
}
|
|
||||||
u_setrace(u, rc_find(rname));
|
u_setrace(u, rc_find(rname));
|
||||||
|
|
||||||
if (data->version < STORAGE_VERSION) {
|
|
||||||
READ_STR(data->store, rname, sizeof(rname));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(data->store, rname, sizeof(rname));
|
READ_TOK(data->store, rname, sizeof(rname));
|
||||||
}
|
|
||||||
if (rname[0] && skill_enabled(SK_STEALTH))
|
if (rname[0] && skill_enabled(SK_STEALTH))
|
||||||
u->irace = rc_find(rname);
|
u->irace = rc_find(rname);
|
||||||
else
|
else
|
||||||
|
@ -869,13 +843,11 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
{
|
{
|
||||||
region *r = findregion(x, y);
|
region *r = findregion(x, y);
|
||||||
const terrain_type *terrain;
|
const terrain_type *terrain;
|
||||||
char token[32];
|
char name[NAMESIZE];
|
||||||
int uid = 0;
|
int uid = 0;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (data->version >= UID_VERSION) {
|
|
||||||
READ_INT(data->store, &uid);
|
READ_INT(data->store, &uid);
|
||||||
}
|
|
||||||
|
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
plane *pl = findplane(x, y);
|
plane *pl = findplane(x, y);
|
||||||
|
@ -906,31 +878,18 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
region_setinfo(r, info);
|
region_setinfo(r, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->version < TERRAIN_VERSION) {
|
|
||||||
int ter;
|
|
||||||
READ_INT(data->store, &ter);
|
|
||||||
terrain = newterrain((terrain_t)ter);
|
|
||||||
if (terrain == NULL) {
|
|
||||||
log_error("while reading datafile from pre-TERRAIN_VERSION, could not find terrain #%d.\n", ter);
|
|
||||||
terrain = newterrain(T_PLAIN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
char name[64];
|
|
||||||
READ_STR(data->store, name, sizeof(name));
|
READ_STR(data->store, name, sizeof(name));
|
||||||
terrain = get_terrain(name);
|
terrain = get_terrain(name);
|
||||||
if (terrain == NULL) {
|
if (terrain == NULL) {
|
||||||
log_error("Unknown terrain '%s'\n", name);
|
log_error("Unknown terrain '%s'\n", name);
|
||||||
assert(!"unknown terrain");
|
assert(!"unknown terrain");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
r->terrain = terrain;
|
r->terrain = terrain;
|
||||||
READ_INT(data->store, &r->flags);
|
READ_INT(data->store, &r->flags);
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
r->age = (unsigned short)n;
|
r->age = (unsigned short)n;
|
||||||
|
|
||||||
if (fval(r->terrain, LAND_REGION)) {
|
if (fval(r->terrain, LAND_REGION)) {
|
||||||
char name[NAMESIZE];
|
|
||||||
r->land = calloc(1, sizeof(land_region));
|
r->land = calloc(1, sizeof(land_region));
|
||||||
READ_STR(data->store, name, sizeof(name));
|
READ_STR(data->store, name, sizeof(name));
|
||||||
r->land->name = _strdup(name);
|
r->land->name = _strdup(name);
|
||||||
|
@ -963,13 +922,13 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
assert(*pres == NULL);
|
assert(*pres == NULL);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
rawmaterial *res;
|
rawmaterial *res;
|
||||||
READ_STR(data->store, token, sizeof(token));
|
READ_STR(data->store, name, sizeof(name));
|
||||||
if (strcmp(token, "end") == 0)
|
if (strcmp(name, "end") == 0)
|
||||||
break;
|
break;
|
||||||
res = malloc(sizeof(rawmaterial));
|
res = malloc(sizeof(rawmaterial));
|
||||||
res->type = rmt_find(token);
|
res->type = rmt_find(name);
|
||||||
if (res->type == NULL) {
|
if (res->type == NULL) {
|
||||||
log_error("invalid resourcetype %s in data.\n", token);
|
log_error("invalid resourcetype %s in data.\n", name);
|
||||||
}
|
}
|
||||||
assert(res->type != NULL);
|
assert(res->type != NULL);
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
|
@ -990,9 +949,9 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
}
|
}
|
||||||
*pres = NULL;
|
*pres = NULL;
|
||||||
|
|
||||||
READ_STR(data->store, token, sizeof(token));
|
READ_STR(data->store, name, sizeof(name));
|
||||||
if (strcmp(token, "noherb") != 0) {
|
if (strcmp(name, "noherb") != 0) {
|
||||||
const resource_type *rtype = rt_find(token);
|
const resource_type *rtype = rt_find(name);
|
||||||
assert(rtype && rtype->itype && fval(rtype->itype, ITF_HERB));
|
assert(rtype && rtype->itype && fval(rtype->itype, ITF_HERB));
|
||||||
rsetherbtype(r, rtype->itype);
|
rsetherbtype(r, rtype->itype);
|
||||||
}
|
}
|
||||||
|
@ -1016,17 +975,15 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
int n;
|
int n;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
const struct resource_type *rtype;
|
const struct resource_type *rtype;
|
||||||
READ_STR(data->store, token, sizeof(token));
|
READ_STR(data->store, name, sizeof(name));
|
||||||
if (!strcmp(token, "end"))
|
if (!strcmp(name, "end"))
|
||||||
break;
|
break;
|
||||||
rtype = rt_find(token);
|
rtype = rt_find(name);
|
||||||
assert(rtype && rtype->ltype);
|
assert(rtype && rtype->ltype);
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
r_setdemand(r, rtype->ltype, n);
|
r_setdemand(r, rtype->ltype, n);
|
||||||
}
|
}
|
||||||
if (data->version >= REGIONITEMS_VERSION) {
|
|
||||||
read_items(data->store, &r->land->items);
|
read_items(data->store, &r->land->items);
|
||||||
}
|
|
||||||
if (data->version >= REGIONOWNER_VERSION) {
|
if (data->version >= REGIONOWNER_VERSION) {
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
r->land->morale = (short)n;
|
r->land->morale = (short)n;
|
||||||
|
@ -1088,10 +1045,8 @@ void writeregion(struct gamedata *data, const region * r)
|
||||||
WRITE_INT(data->store, demand->value);
|
WRITE_INT(data->store, demand->value);
|
||||||
}
|
}
|
||||||
WRITE_TOK(data->store, "end");
|
WRITE_TOK(data->store, "end");
|
||||||
#if RELEASE_VERSION>=REGIONITEMS_VERSION
|
|
||||||
write_items(data->store, r->land->items);
|
write_items(data->store, r->land->items);
|
||||||
WRITE_SECTION(data->store);
|
WRITE_SECTION(data->store);
|
||||||
#endif
|
|
||||||
#if RELEASE_VERSION>=REGIONOWNER_VERSION
|
#if RELEASE_VERSION>=REGIONOWNER_VERSION
|
||||||
WRITE_INT(data->store, r->land->morale);
|
WRITE_INT(data->store, r->land->morale);
|
||||||
write_owner(data, r->land->ownership);
|
write_owner(data, r->land->ownership);
|
||||||
|
@ -1163,16 +1118,6 @@ void read_spellbook(spellbook **bookp, struct storage *store, int(*get_level)(co
|
||||||
char spname[64];
|
char spname[64];
|
||||||
int level = 0;
|
int level = 0;
|
||||||
|
|
||||||
if (global.data_version < SPELLNAME_VERSION) {
|
|
||||||
int i;
|
|
||||||
READ_INT(store, &i);
|
|
||||||
if (i < 0)
|
|
||||||
break;
|
|
||||||
if (bookp) {
|
|
||||||
sp = find_spellbyid((unsigned int)i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(store, spname, sizeof(spname));
|
READ_TOK(store, spname, sizeof(spname));
|
||||||
if (strcmp(spname, "end") == 0)
|
if (strcmp(spname, "end") == 0)
|
||||||
break;
|
break;
|
||||||
|
@ -1182,7 +1127,6 @@ void read_spellbook(spellbook **bookp, struct storage *store, int(*get_level)(co
|
||||||
log_error("read_spells: could not find spell '%s'\n", spname);
|
log_error("read_spells: could not find spell '%s'\n", spname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (global.data_version >= SPELLBOOK_VERSION) {
|
if (global.data_version >= SPELLBOOK_VERSION) {
|
||||||
READ_INT(store, &level);
|
READ_INT(store, &level);
|
||||||
}
|
}
|
||||||
|
@ -1355,15 +1299,7 @@ faction *readfaction(struct gamedata * data)
|
||||||
else {
|
else {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int aid = 0;
|
int aid = 0;
|
||||||
if (data->version < STORAGE_VERSION) {
|
|
||||||
READ_TOK(data->store, name, sizeof(name));
|
|
||||||
if (strcmp(name, "end") != 0) {
|
|
||||||
aid = atoi36(name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_INT(data->store, &aid);
|
READ_INT(data->store, &aid);
|
||||||
}
|
|
||||||
if (aid > 0) {
|
if (aid > 0) {
|
||||||
int state;
|
int state;
|
||||||
READ_INT(data->store, &state);
|
READ_INT(data->store, &state);
|
||||||
|
@ -1445,7 +1381,7 @@ void writefaction(struct gamedata *data, const faction * f)
|
||||||
|
|
||||||
int readgame(const char *filename, int backup)
|
int readgame(const char *filename, int backup)
|
||||||
{
|
{
|
||||||
int i, n, p, nread;
|
int n, p, nread;
|
||||||
faction *f, **fp;
|
faction *f, **fp;
|
||||||
region *r;
|
region *r;
|
||||||
building *b, **bp;
|
building *b, **bp;
|
||||||
|
@ -1594,14 +1530,6 @@ int readgame(const char *filename, int backup)
|
||||||
}
|
}
|
||||||
*fp = 0;
|
*fp = 0;
|
||||||
|
|
||||||
/* ignore the obsolete list of "used" faction ids */
|
|
||||||
if (gdata.version < STORAGE_VERSION) {
|
|
||||||
READ_INT(&store, &i);
|
|
||||||
while (i--) {
|
|
||||||
READ_INT(&store, &n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Regionen */
|
/* Regionen */
|
||||||
|
|
||||||
READ_INT(&store, &nread);
|
READ_INT(&store, &nread);
|
||||||
|
@ -1975,9 +1903,6 @@ void a_writeint(const attrib * a, const void *owner, struct storage *store)
|
||||||
int a_readshorts(attrib * a, void *owner, struct storage *store)
|
int a_readshorts(attrib * a, void *owner, struct storage *store)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
if (global.data_version < ATTRIBREAD_VERSION) {
|
|
||||||
return a_readint(a, store, owner);
|
|
||||||
}
|
|
||||||
READ_INT(store, &n);
|
READ_INT(store, &n);
|
||||||
a->data.sa[0] = (short)n;
|
a->data.sa[0] = (short)n;
|
||||||
READ_INT(store, &n);
|
READ_INT(store, &n);
|
||||||
|
@ -1994,9 +1919,6 @@ void a_writeshorts(const attrib * a, const void *owner, struct storage *store)
|
||||||
int a_readchars(attrib * a, void *owner, struct storage *store)
|
int a_readchars(attrib * a, void *owner, struct storage *store)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
if (global.data_version < ATTRIBREAD_VERSION) {
|
|
||||||
return a_readint(a, store, owner);
|
|
||||||
}
|
|
||||||
for (i = 0; i != 4; ++i) {
|
for (i = 0; i != 4; ++i) {
|
||||||
int n;
|
int n;
|
||||||
READ_INT(store, &n);
|
READ_INT(store, &n);
|
||||||
|
@ -2016,9 +1938,6 @@ void a_writechars(const attrib * a, const void *owner, struct storage *store)
|
||||||
|
|
||||||
int a_readvoid(attrib * a, void *owner, struct storage *store)
|
int a_readvoid(attrib * a, void *owner, struct storage *store)
|
||||||
{
|
{
|
||||||
if (global.data_version < ATTRIBREAD_VERSION) {
|
|
||||||
return a_readint(a, store, owner);
|
|
||||||
}
|
|
||||||
return AT_READ_OK;
|
return AT_READ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,34 +10,6 @@
|
||||||
without prior permission by the authors of Eressea.
|
without prior permission by the authors of Eressea.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* changes from->to: 72->73: struct unit::lock entfernt.
|
|
||||||
* 73->74: struct unit::flags eingeführt.
|
|
||||||
* 74->75: parteitarnung als flag.
|
|
||||||
* 75->76: #ifdef NEW_HP: hp
|
|
||||||
* 76->77: ship->damage
|
|
||||||
* 77->78: neue Message-Option "Orkvermehrung" (MAX_MSG +1)
|
|
||||||
* 78->79: showdata nicht mehr speichern
|
|
||||||
* 79->HEX_VERSION: hex
|
|
||||||
* 80->82: ATTRIB_VERSION
|
|
||||||
* 90: Ebenen
|
|
||||||
* 92: Magiegebiet-Auswahl f->magiegebiet
|
|
||||||
* 94: f->attribs wird gespeichert
|
|
||||||
* 100: NEWMAGIC, neue Message-Option "Zauber" (MAX_MSG +1)
|
|
||||||
* 108: Speichern von Timeouts
|
|
||||||
* 193: curse bekommen id aus struct unit-nummernraum
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
#define HEX_VERSION 81
|
|
||||||
#define GROWTREE_VERSION 305
|
|
||||||
#define RANDOMIZED_RESOURCES_VERSION 306
|
|
||||||
#define NEWRACE_VERSION 307
|
|
||||||
#define INTERIM_VERSION 309
|
|
||||||
#define NEWSKILL_VERSION 309
|
|
||||||
#define WATCHERS_VERSION 310
|
|
||||||
#define OVERRIDE_VERSION 311
|
|
||||||
*/
|
|
||||||
#define CURSETYPE_VERSION 312 /* turn 287 */
|
#define CURSETYPE_VERSION 312 /* turn 287 */
|
||||||
#define ALLIANCES_VERSION 313
|
#define ALLIANCES_VERSION 313
|
||||||
#define DBLINK_VERSION 314
|
#define DBLINK_VERSION 314
|
||||||
|
@ -48,14 +20,6 @@
|
||||||
/* 319 is the HSE4 data version */
|
/* 319 is the HSE4 data version */
|
||||||
#define BACTION_VERSION 319 /* building action gets a param string */
|
#define BACTION_VERSION 319 /* building action gets a param string */
|
||||||
#define NOLASTORDER_VERSION 320 /* do not use lastorder */
|
#define NOLASTORDER_VERSION 320 /* do not use lastorder */
|
||||||
#define SPELLNAME_VERSION 321 /* reference spells by name */
|
|
||||||
#define TERRAIN_VERSION 322 /* terrains are a full type and saved by name */
|
|
||||||
#define REGIONITEMS_VERSION 323 /* regions have items */
|
|
||||||
#define ATTRIBREAD_VERSION 324 /* remove a_readint */
|
|
||||||
#define CURSEFLAGS_VERSION 325 /* remove a_readint */
|
|
||||||
#define UNICODE_VERSION 326 /* 2007-06-27 everything is stored as UTF8 */
|
|
||||||
#define UID_VERSION 327 /* regions have a unique id */
|
|
||||||
#define STORAGE_VERSION 328 /* with storage.h, some things are stored smarter (ids as base36, fractions as float) */
|
|
||||||
#define INTPAK_VERSION 329 /* in binary, ints can get packed */
|
#define INTPAK_VERSION 329 /* in binary, ints can get packed */
|
||||||
#define NOZEROIDS_VERSION 330 /* 2008-05-16 zero is not a valid ID for anything (including factions) */
|
#define NOZEROIDS_VERSION 330 /* 2008-05-16 zero is not a valid ID for anything (including factions) */
|
||||||
#define NOBORDERATTRIBS_VERSION 331 /* 2008-05-17 connection::attribs has been moved to userdata */
|
#define NOBORDERATTRIBS_VERSION 331 /* 2008-05-17 connection::attribs has been moved to userdata */
|
||||||
|
|
19
src/magic.c
19
src/magic.c
|
@ -229,14 +229,6 @@ struct storage *store)
|
||||||
spell *sp;
|
spell *sp;
|
||||||
char spname[64];
|
char spname[64];
|
||||||
|
|
||||||
if (global.data_version < SPELLNAME_VERSION) {
|
|
||||||
int i;
|
|
||||||
READ_INT(store, &i);
|
|
||||||
if (i < 0)
|
|
||||||
break;
|
|
||||||
sp = find_spellbyid((unsigned int)i);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(store, spname, sizeof(spname));
|
READ_TOK(store, spname, sizeof(spname));
|
||||||
if (strcmp(spname, "end") == 0)
|
if (strcmp(spname, "end") == 0)
|
||||||
break;
|
break;
|
||||||
|
@ -244,7 +236,6 @@ struct storage *store)
|
||||||
if (!sp) {
|
if (!sp) {
|
||||||
log_error("read_spells: could not find spell '%s' in school '%s'\n", spname, magic_school[mtype]);
|
log_error("read_spells: could not find spell '%s' in school '%s'\n", spname, magic_school[mtype]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (sp) {
|
if (sp) {
|
||||||
add_spell(slistp, sp);
|
add_spell(slistp, sp);
|
||||||
}
|
}
|
||||||
|
@ -272,15 +263,6 @@ static int read_mage(attrib * a, void *owner, struct storage *store)
|
||||||
for (i = 0; i != MAXCOMBATSPELLS; ++i) {
|
for (i = 0; i != MAXCOMBATSPELLS; ++i) {
|
||||||
spell *sp = NULL;
|
spell *sp = NULL;
|
||||||
int level = 0;
|
int level = 0;
|
||||||
if (global.data_version < SPELLNAME_VERSION) {
|
|
||||||
int spid;
|
|
||||||
READ_INT(store, &spid);
|
|
||||||
READ_INT(store, &level);
|
|
||||||
if (spid >= 0) {
|
|
||||||
sp = find_spellbyid((unsigned int)spid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_TOK(store, spname, sizeof(spname));
|
READ_TOK(store, spname, sizeof(spname));
|
||||||
READ_INT(store, &level);
|
READ_INT(store, &level);
|
||||||
|
|
||||||
|
@ -290,7 +272,6 @@ static int read_mage(attrib * a, void *owner, struct storage *store)
|
||||||
log_error("read_mage: could not find combat spell '%s' in school '%s'\n", spname, magic_school[mage->magietyp]);
|
log_error("read_mage: could not find combat spell '%s' in school '%s'\n", spname, magic_school[mage->magietyp]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (sp && level >= 0) {
|
if (sp && level >= 0) {
|
||||||
int slot = -1;
|
int slot = -1;
|
||||||
if (sp->sptyp & PRECOMBATSPELL)
|
if (sp->sptyp & PRECOMBATSPELL)
|
||||||
|
|
|
@ -174,17 +174,8 @@ static void wall_read(connection * b, storage * store)
|
||||||
{
|
{
|
||||||
static wall_data dummy;
|
static wall_data dummy;
|
||||||
wall_data *fd = b->data.v ? (wall_data *) b->data.v : &dummy;
|
wall_data *fd = b->data.v ? (wall_data *) b->data.v : &dummy;
|
||||||
variant mno;
|
|
||||||
|
|
||||||
if (global.data_version < STORAGE_VERSION) {
|
|
||||||
READ_INT(store, &mno.i);
|
|
||||||
fd->mage = findunit(mno.i);
|
|
||||||
if (!fd->mage && b->data.v) {
|
|
||||||
ur_add(mno, &fd->mage, resolve_unit);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
read_reference(&fd->mage, store, read_unit_reference, resolve_unit);
|
read_reference(&fd->mage, store, read_unit_reference, resolve_unit);
|
||||||
}
|
|
||||||
READ_INT(store, &fd->force);
|
READ_INT(store, &fd->force);
|
||||||
if (global.data_version >= NOBORDERATTRIBS_VERSION) {
|
if (global.data_version >= NOBORDERATTRIBS_VERSION) {
|
||||||
READ_INT(store, &fd->countdown);
|
READ_INT(store, &fd->countdown);
|
||||||
|
|
25
src/vortex.c
25
src/vortex.c
|
@ -74,39 +74,16 @@ static int a_agedirection(attrib * a)
|
||||||
static int a_readdirection(attrib * a, void *owner, struct storage *store)
|
static int a_readdirection(attrib * a, void *owner, struct storage *store)
|
||||||
{
|
{
|
||||||
spec_direction *d = (spec_direction *)(a->data.v);
|
spec_direction *d = (spec_direction *)(a->data.v);
|
||||||
|
char lbuf[32];
|
||||||
|
|
||||||
(void) owner;
|
(void) owner;
|
||||||
READ_INT(store, &d->x);
|
READ_INT(store, &d->x);
|
||||||
READ_INT(store, &d->y);
|
READ_INT(store, &d->y);
|
||||||
READ_INT(store, &d->duration);
|
READ_INT(store, &d->duration);
|
||||||
if (global.data_version < UNICODE_VERSION) {
|
|
||||||
char lbuf[16];
|
|
||||||
dir_lookup *dl = dir_name_lookup;
|
|
||||||
|
|
||||||
READ_TOK(store, NULL, 0);
|
|
||||||
READ_TOK(store, lbuf, sizeof(lbuf));
|
|
||||||
|
|
||||||
untilde(lbuf);
|
|
||||||
for (; dl; dl = dl->next) {
|
|
||||||
if (strcmp(lbuf, dl->oldname) == 0) {
|
|
||||||
d->keyword = _strdup(dl->name);
|
|
||||||
_snprintf(lbuf, sizeof(lbuf), "%s_desc", d->keyword);
|
|
||||||
d->desc = _strdup(dl->name);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (dl == NULL) {
|
|
||||||
log_error("unknown spec_direction '%s'\n", lbuf);
|
|
||||||
assert(!"not implemented");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
char lbuf[32];
|
|
||||||
READ_TOK(store, lbuf, sizeof(lbuf));
|
READ_TOK(store, lbuf, sizeof(lbuf));
|
||||||
d->desc = _strdup(lbuf);
|
d->desc = _strdup(lbuf);
|
||||||
READ_TOK(store, lbuf, sizeof(lbuf));
|
READ_TOK(store, lbuf, sizeof(lbuf));
|
||||||
d->keyword = _strdup(lbuf);
|
d->keyword = _strdup(lbuf);
|
||||||
}
|
|
||||||
d->active = true;
|
d->active = true;
|
||||||
return AT_READ_OK;
|
return AT_READ_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue