forked from github/server
remove code for unsupported old region references
This commit is contained in:
parent
902e2126c9
commit
afe4532966
|
@ -606,7 +606,7 @@ int read_borders(gamedata *data)
|
||||||
{
|
{
|
||||||
struct storage *store = data->store;
|
struct storage *store = data->store;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int bid = 0;
|
int fid, tid, bid;
|
||||||
char zText[32];
|
char zText[32];
|
||||||
region *from, *to;
|
region *from, *to;
|
||||||
border_type *type;
|
border_type *type;
|
||||||
|
@ -621,22 +621,10 @@ int read_borders(gamedata *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
READ_INT(store, &bid);
|
READ_INT(store, &bid);
|
||||||
if (data->version < UIDHASH_VERSION) {
|
READ_INT(store, &fid);
|
||||||
int fx, fy, tx, ty;
|
READ_INT(store, &tid);
|
||||||
READ_INT(store, &fx);
|
from = findregionbyid(fid);
|
||||||
READ_INT(store, &fy);
|
to = findregionbyid(tid);
|
||||||
READ_INT(store, &tx);
|
|
||||||
READ_INT(store, &ty);
|
|
||||||
from = findregion(fx, fy);
|
|
||||||
to = findregion(tx, ty);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
int fid, tid;
|
|
||||||
READ_INT(store, &fid);
|
|
||||||
READ_INT(store, &tid);
|
|
||||||
from = findregionbyid(fid);
|
|
||||||
to = findregionbyid(tid);
|
|
||||||
}
|
|
||||||
if (!to || !from) {
|
if (!to || !from) {
|
||||||
log_error("%s connection %d has missing regions", zText, bid);
|
log_error("%s connection %d has missing regions", zText, bid);
|
||||||
if (type->read) {
|
if (type->read) {
|
||||||
|
|
|
@ -1255,24 +1255,11 @@ int production(const region * r)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void * resolve_region_coor(int id, void **address)
|
#define RESOLVE_REGION (TYP_REGION << 24)
|
||||||
{
|
|
||||||
int x = (id >> 16);
|
|
||||||
int y = id & 0xFFFF;
|
|
||||||
return *(region **)address = findregion(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define RESOLVE_REGION_ID (TYP_REGION << 24)
|
|
||||||
#define RESOLVE_REGION_XY ((TYP_REGION|0x10) << 24)
|
|
||||||
|
|
||||||
void resolve_region(region *r)
|
void resolve_region(region *r)
|
||||||
{
|
{
|
||||||
short x = (short)r->x;
|
resolve(RESOLVE_REGION | r->uid, r);
|
||||||
short y = (short)r->y;
|
|
||||||
int id = x << 16 | (y & 0xFFFF);
|
|
||||||
|
|
||||||
resolve(RESOLVE_REGION_XY | id, r);
|
|
||||||
resolve(RESOLVE_REGION_ID | r->uid, r);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int read_region_reference(gamedata * data, void **rp, resolve_fun fun)
|
int read_region_reference(gamedata * data, void **rp, resolve_fun fun)
|
||||||
|
@ -1280,26 +1267,10 @@ int read_region_reference(gamedata * data, void **rp, resolve_fun fun)
|
||||||
struct storage * store = data->store;
|
struct storage * store = data->store;
|
||||||
int id = 0;
|
int id = 0;
|
||||||
|
|
||||||
if (data->version >= UIDHASH_VERSION) {
|
READ_INT(store, &id);
|
||||||
READ_INT(store, &id);
|
*rp = findregionbyid(id);
|
||||||
*rp = findregionbyid(id);
|
if (*rp == NULL) {
|
||||||
if (*rp == NULL) {
|
ur_add(RESOLVE_REGION | id, rp, fun);
|
||||||
ur_add(RESOLVE_REGION_ID | id, rp, fun);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
int n;
|
|
||||||
short x, y;
|
|
||||||
READ_INT(store, &n);
|
|
||||||
x = (short)n;
|
|
||||||
READ_INT(store, &n);
|
|
||||||
y = (short)n;
|
|
||||||
*rp = findregion(x, y);
|
|
||||||
if (*rp == NULL) {
|
|
||||||
id = x << 16 | (y & 0xFFFF);
|
|
||||||
ur_add(RESOLVE_REGION_XY | id, rp, resolve_region_coor);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,16 +96,6 @@ static void wormhole_write(const struct attrib *a, const void *owner, struct sto
|
||||||
write_region_reference(exit, store);
|
write_region_reference(exit, store);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** conversion code, turn 573, 2008-05-23 */
|
|
||||||
static void * resolve_exit(int id, void *data)
|
|
||||||
{
|
|
||||||
building *b = (building *)data;
|
|
||||||
if (b) {
|
|
||||||
return b->region;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int wormhole_read(struct attrib *a, void *owner, struct gamedata *data)
|
static int wormhole_read(struct attrib *a, void *owner, struct gamedata *data)
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
|
@ -113,12 +103,7 @@ static int wormhole_read(struct attrib *a, void *owner, struct gamedata *data)
|
||||||
if (data->version < ATTRIBOWNER_VERSION) {
|
if (data->version < ATTRIBOWNER_VERSION) {
|
||||||
READ_INT(data->store, NULL);
|
READ_INT(data->store, NULL);
|
||||||
}
|
}
|
||||||
if (data->version < UIDHASH_VERSION) {
|
id = read_region_reference(data, &a->data.v, NULL);
|
||||||
id = read_building_reference(data, &a->data.v, resolve_exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
id = read_region_reference(data, &a->data.v, NULL);
|
|
||||||
}
|
|
||||||
return (id <= 0) ? AT_READ_FAIL : AT_READ_OK;
|
return (id <= 0) ? AT_READ_FAIL : AT_READ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue