forked from github/server
parent
21aee8ece8
commit
2e41c4972c
|
@ -1129,14 +1129,14 @@ int get_spell_level_faction(const spell * sp, void * cbdata)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void read_spellbook(spellbook **bookp, struct storage *store, int(*get_level)(const spell * sp, void *), void * cbdata)
|
||||
void read_spellbook(spellbook **bookp, gamedata *data, int(*get_level)(const spell * sp, void *), void * cbdata)
|
||||
{
|
||||
for (;;) {
|
||||
spell *sp = 0;
|
||||
char spname[64];
|
||||
int level = 0;
|
||||
|
||||
READ_TOK(store, spname, sizeof(spname));
|
||||
READ_TOK(data->store, spname, sizeof(spname));
|
||||
if (strcmp(spname, "end") == 0)
|
||||
break;
|
||||
if (bookp) {
|
||||
|
@ -1145,8 +1145,8 @@ void read_spellbook(spellbook **bookp, struct storage *store, int(*get_level)(co
|
|||
log_error("read_spells: could not find spell '%s'\n", spname);
|
||||
}
|
||||
}
|
||||
if (global.data_version >= SPELLBOOK_VERSION) {
|
||||
READ_INT(store, &level);
|
||||
if (data->version >= SPELLBOOK_VERSION) {
|
||||
READ_INT(data->store, &level);
|
||||
}
|
||||
if (sp) {
|
||||
spellbook * sb = *bookp;
|
||||
|
@ -1157,7 +1157,7 @@ void read_spellbook(spellbook **bookp, struct storage *store, int(*get_level)(co
|
|||
*bookp = create_spellbook(0);
|
||||
sb = *bookp;
|
||||
}
|
||||
if (level > 0 && (global.data_version >= SPELLBOOK_VERSION || !spellbook_get(sb, sp))) {
|
||||
if (level > 0 && (data->version >= SPELLBOOK_VERSION || !spellbook_get(sb, sp))) {
|
||||
spellbook_add(sb, sp, level);
|
||||
}
|
||||
}
|
||||
|
@ -1375,7 +1375,7 @@ faction *readfaction(struct gamedata * data)
|
|||
read_groups(data, f);
|
||||
f->spellbook = 0;
|
||||
if (data->version >= REGIONOWNER_VERSION) {
|
||||
read_spellbook(FactionSpells() ? &f->spellbook : 0, data->store, get_spell_level_faction, (void *)f);
|
||||
read_spellbook(FactionSpells() ? &f->spellbook : 0, data, get_spell_level_faction, (void *)f);
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ extern "C" {
|
|||
void read_items(struct storage *store, struct item **it);
|
||||
void write_items(struct storage *store, struct item *it);
|
||||
|
||||
void read_spellbook(struct spellbook **bookp, struct storage *store, int(*get_level)(const struct spell * sp, void *), void * cbdata);
|
||||
void read_spellbook(struct spellbook **bookp, struct gamedata *data, int(*get_level)(const struct spell * sp, void *), void * cbdata);
|
||||
void write_spellbook(const struct spellbook *book, struct storage *store);
|
||||
|
||||
void write_attribs(struct storage *store, struct attrib *alist, const void *owner);
|
||||
|
|
|
@ -294,10 +294,10 @@ static int read_mage(attrib * a, void *owner, struct gamedata *data)
|
|||
}
|
||||
}
|
||||
if (mage->magietyp == M_GRAY) {
|
||||
read_spellbook(&mage->spellbook, store, get_spell_level_mage, mage);
|
||||
read_spellbook(&mage->spellbook, data, get_spell_level_mage, mage);
|
||||
}
|
||||
else {
|
||||
read_spellbook(0, store, 0, mage);
|
||||
read_spellbook(0, data, 0, mage);
|
||||
}
|
||||
return AT_READ_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue