forked from github/server
some time ago when races were added to xml, the global familiarrace-list was broken. fixed.
This commit is contained in:
parent
a66e90c25b
commit
af9a86efa7
|
@ -59,7 +59,24 @@
|
|||
|
||||
/** external variables **/
|
||||
race * races;
|
||||
race_list * familiarraces;
|
||||
|
||||
race_list *
|
||||
get_familiarraces(void)
|
||||
{
|
||||
static int init = 0;
|
||||
static race_list * familiarraces;
|
||||
|
||||
if (!init) {
|
||||
race * rc = races;
|
||||
for (;rc!=NULL;rc=rc->next) {
|
||||
if (rc->init_familiar!=NULL) {
|
||||
racelist_insert(&familiarraces, rc);
|
||||
}
|
||||
}
|
||||
init = false;
|
||||
}
|
||||
return familiarraces;
|
||||
}
|
||||
|
||||
void
|
||||
racelist_clear(struct race_list **rl)
|
||||
|
@ -110,9 +127,6 @@ race *
|
|||
rc_add(race * rc)
|
||||
{
|
||||
rc->next = races;
|
||||
if (rc->init_familiar!=NULL) {
|
||||
racelist_insert(&familiarraces, rc);
|
||||
}
|
||||
return races = rc;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ typedef struct race_list {
|
|||
extern void racelist_clear(struct race_list **rl);
|
||||
extern void racelist_insert(struct race_list **rl, const struct race *r);
|
||||
|
||||
extern struct race_list * familiarraces;
|
||||
extern struct race_list * get_familiarraces(void);
|
||||
extern struct race * races;
|
||||
|
||||
extern struct race * rc_find(const char *);
|
||||
|
|
|
@ -521,6 +521,7 @@ select_familiar(const race * magerace, magic_t magiegebiet)
|
|||
|
||||
assert(magerace->familiars[0]);
|
||||
if (rnd < 3) {
|
||||
race_list * familiarraces = get_familiarraces();
|
||||
unsigned int maxlen = listlen(familiarraces);
|
||||
if (maxlen>0) {
|
||||
race_list * rclist = familiarraces;
|
||||
|
|
Loading…
Reference in New Issue